Vendor dependencies

This commit is contained in:
2026-08-01 16:11:49 +03:00
parent 7f139a0241
commit 6b5e7f0f8b
29706 changed files with 9575646 additions and 0 deletions
+1
View File
@@ -0,0 +1 @@
{"$comment":"This file only protects against accidental modifications. It is not a security mechanism and does not protect against malicious changes.","files":{".cargo_vcs_info.json":"cf7793d4ce5c5a445d334d3881e954475872b34476c8df0f0afe0533a1d2bfb6","COPYING":"01c266bced4a434da0051174d6bee16a4c82cf634e2679b6155d40d75012390f","Cargo.lock":"340b7f0643d575911e94371f8a255b4df1fdaa10707e3d96c819bf6a9d1d47a1","Cargo.toml":"d695bbe04a37c3dc3749bc8f5e2b31159a72c40f6b0369db5d669d622187243d","Cargo.toml.orig":"62c487c8c713cf81c2180ea5a8359b86f6998212d44ab909bbb2ea22b3812aca","LICENSE-MIT":"0f96a83840e146e43c0ec96a22ec1f392e0680e6c1226e6f3ba87e0740af850f","README.md":"027d11013d7eb40513e05b8377db2cb45d41b1d033c25a7d9762a95670247e1e","UNLICENSE":"7e12e5df4bae12cb21581ba157ced20e1986a0508dd10d0e8a4ab9a4cf94e85c","concatenated-zoneinfo.dat":"30e4776efecff613ab094770f3abe83ea2cc3481ae7f8c3bb289e7fd39eb147e","lib.rs":"641913dbe323b5be8a8ed2166bd704218d7dc7c5a49bfe1a35b4ad199079543b","tzname.rs":"6e26ba8f4665b8cc46316d50990dea3f7e0e2972d9564eecd70a4b177d1100a0"},"package":"142bd39932ad231f10513df9ab62661fead8719872150b7ad02a2df79f4e141e"}
+6
View File
@@ -0,0 +1,6 @@
{
"git": {
"sha1": "bc70277861e54973e8a9be91bc92c44de56719b5"
},
"path_in_vcs": "crates/jiff-tzdb"
}
+3
View File
@@ -0,0 +1,3 @@
This project is dual-licensed under the Unlicense and MIT licenses.
You may use this code under the terms of either license.
+7
View File
@@ -0,0 +1,7 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
version = 3
[[package]]
name = "jiff-tzdb"
version = "0.1.8"
+49
View File
@@ -0,0 +1,49 @@
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.
[package]
edition = "2021"
rust-version = "1.70"
name = "jiff-tzdb"
version = "0.1.8"
authors = ["Andrew Gallant <jamslam@gmail.com>"]
build = false
include = [
"/*.rs",
"/*.dat",
"COPYING",
"LICENSE-MIT",
"UNLICENSE",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "The entire Time Zone Database embedded into your binary."
homepage = "https://github.com/BurntSushi/jiff/tree/master/crates/jiff-tzdb"
documentation = "https://docs.rs/jiff-tzdb"
readme = "README.md"
keywords = [
"date",
"time",
"temporal",
"zone",
"iana",
]
categories = ["date-and-time"]
license = "Unlicense OR MIT"
repository = "https://github.com/BurntSushi/jiff"
[lib]
name = "jiff_tzdb"
path = "lib.rs"
bench = false
+20
View File
@@ -0,0 +1,20 @@
[package]
name = "jiff-tzdb"
version = "0.1.8" #:version
authors = ["Andrew Gallant <jamslam@gmail.com>"]
license = "Unlicense OR MIT"
homepage = "https://github.com/BurntSushi/jiff/tree/master/crates/jiff-tzdb"
repository = "https://github.com/BurntSushi/jiff"
documentation = "https://docs.rs/jiff-tzdb"
description = "The entire Time Zone Database embedded into your binary."
categories = ["date-and-time"]
keywords = ["date", "time", "temporal", "zone", "iana"]
workspace = "../.."
edition = "2021"
rust-version = "1.70"
include = ["/*.rs", "/*.dat", "COPYING", "LICENSE-MIT", "UNLICENSE"]
[lib]
name = "jiff_tzdb"
bench = false
path = "lib.rs"
+21
View File
@@ -0,0 +1,21 @@
The MIT License (MIT)
Copyright (c) 2015 Andrew Gallant
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.
+17
View File
@@ -0,0 +1,17 @@
jiff-tzdb
=========
This is an optional dependency of `jiff` that embeds the entire [IANA Time Zone
Database] into the compiled binary. Specifically, it embeds the binary [TZif]
for each time zone.
This is most typically used on Windows where there is no standard location
for a system copy of the Time Zone Database. On macOS and Linux, one must
explicitly opt into using `jiff-tzdb`. By default, in Unix environments, Jiff
will look for a system copy of the Time Zone Database.
[IANA Time Zone Database]: https://www.iana.org/time-zones
[TZif]: https://datatracker.ietf.org/doc/html/rfc8536
### Documentation
https://docs.rs/jiff-tzdb
+24
View File
@@ -0,0 +1,24 @@
This is free and unencumbered software released into the public domain.
Anyone is free to copy, modify, publish, use, compile, sell, or
distribute this software, either in source code form or as a compiled
binary, for any purpose, commercial or non-commercial, and by any
means.
In jurisdictions that recognize copyright laws, the author or authors
of this software dedicate any and all copyright interest in the
software to the public domain. We make this dedication for the benefit
of the public at large and to the detriment of our heirs and
successors. We intend this dedication to be an overt act of
relinquishment in perpetuity of all present and future rights to this
software under copyright law.
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 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.
For more information, please refer to <http://unlicense.org/>
Binary file not shown.
+209
View File
@@ -0,0 +1,209 @@
/*!
A crate that embeds data from the [IANA Time Zone Database].
This crate is meant to be a "raw data" library. That is, it primarily exposes
one routine that permits looking up the raw [TZif] data given a time zone name.
The data returned is embedded into the compiled library. In order to actually
use the data, you'll need a TZif parser, such as the one found in [Jiff] via
`TimeZone::tzif`.
This crate also exposes another routine, [`available`], for iterating over the
names of all time zones embedded into this crate.
# Should I use this crate?
In general, no. It's first and foremost an implementation detail of Jiff, but
if you 1) need raw access to the TZif data and 2) need to bundle it in your
binary, then it's plausible that using this crate is appropriate.
With that said, the _preferred_ way to read TZif data is from your system's
copy of the Time Zone Database. On macOS and most Linux installations, a copy
of this data can be found at `/usr/share/zoneinfo`. Indeed, Jiff will use this
system copy whenever possible, and not use this crate at all. The system copy
is preferred because the Time Zone Database is occasionally updated (perhaps a
few times per year), and it is usually better to rely on your system updates
for such things than some random Rust library.
However, some popular environments, like Windows, do not have a standard
system copy of the Time Zone Database. In those circumstances, Jiff will depend
on this crate and bundle the time zone data into the binary. This is not an
ideal solution, but it makes Most Things Just Work Most of the Time on all
major platforms.
# Data generation
The data in this crate comes from the [IANA Time Zone Database] "data only"
distribution. [`jiff-cli`] is used to first compile the release into binary
TZif data using the `zic` compiler, and secondly, converts the binary data into
a flattened and de-duplicated representation that is embedded into this crate's
source code.
The conversion into the TZif binary data uses the following settings:
* The "rearguard" data is used (see below).
* The binary data itself is compiled using the "slim" format. Which
effectively means that the TZif data primarily only uses explicit
time zone transitions for historical data and POSIX time zones for
current time zone transition rules. This doesn't have any impact
on the actual results. The reason that there are "slim" and "fat"
formats is to support legacy applications that can't deal with
POSIX time zones. For example, `/usr/share/zoneinfo` on my modern
Archlinux installation (2025-02-27) is in the "fat" format.
The reason that rearguard data is used is a bit more subtle and has to do with
a difference in how the IANA Time Zone Database treats its internal "daylight
saving time" flag and what people in the "real world" consider "daylight
saving time." For example, in the standard distribution of the IANA Time Zone
Database, `Europe/Dublin` has its daylight saving time flag set to _true_
during Winter and set to _false_ during Summer. The actual time shifts are the
same as, e.g., `Europe/London`, but which one is actually labeled "daylight
saving time" is not.
The IANA Time Zone Database does this for `Europe/Dublin`, presumably, because
_legally_, time during the Summer in Ireland is called `Irish Standard Time`,
and time during the Winter is called `Greenwich Mean Time`. These legal names
are reversed from what is typically the case, where "standard" time is during
the Winter and daylight saving time is during the Summer. The IANA Time Zone
Database implements this tweak in legal language via a "negative daylight
saving time offset." This is somewhat odd, and some consumers of the IANA Time
Zone Database cannot handle it. Thus, the rearguard format was born for,
seemingly, legacy programs.
Jiff can handle negative daylight saving time offsets just fine, but we use the
rearguard format anyway so that the underlying data more accurately reflects
on-the-ground reality for humans living in `Europe/Dublin`. In particular,
using the rearguard data enables [localization of time zone names] to be done
correctly.
[IANA Time Zone Database]: https://www.iana.org/time-zones
[TZif]: https://datatracker.ietf.org/doc/html/rfc8536
[Jiff]: https://docs.rs/jiff
[`jiff-cli`]: https://github.com/BurntSushi/jiff/tree/master/crates/jiff-cli
[localization of time zone names]: https://github.com/BurntSushi/jiff/issues/258
*/
#![no_std]
mod tzname;
static TZIF_DATA: &[u8] = include_bytes!("concatenated-zoneinfo.dat");
/// The version of the IANA Time Zone Database that was bundled.
///
/// If this bundled database was generated from a pre-existing system copy
/// of the Time Zone Database, then it's possible no version information was
/// available.
pub static VERSION: Option<&str> = tzname::VERSION;
/// Returns the binary TZif data for the time zone name given.
///
/// This also returns the canonical name for the time zone. Namely, since this
/// lookup is performed without regard to ASCII case, the given name may not be
/// the canonical capitalization of the time zone.
///
/// If no matching time zone data exists, then `None` is returned.
///
/// In order to use the data returned, it must be fed to a TZif parser. For
/// example, if you're using [`jiff`](https://docs.rs/jiff), then this would
/// be the `TimeZone::tzif` constructor.
///
/// # Example
///
/// Some basic examples of time zones that exist:
///
/// ```
/// assert!(jiff_tzdb::get("America/New_York").is_some());
/// assert!(jiff_tzdb::get("america/new_york").is_some());
/// assert!(jiff_tzdb::get("America/NewYork").is_none());
/// ```
///
/// And an example of how the canonical name might differ from the name given:
///
/// ```
/// let (canonical_name, data) = jiff_tzdb::get("america/new_york").unwrap();
/// assert_eq!(canonical_name, "America/New_York");
/// // All TZif data starts with the `TZif` header.
/// assert_eq!(&data[..4], b"TZif");
/// ```
pub fn get(name: &str) -> Option<(&'static str, &'static [u8])> {
let index = index(name)?;
let (canonical_name, ref range) = tzname::TZNAME_TO_OFFSET[index];
Some((canonical_name, &TZIF_DATA[range.clone()]))
}
/// Returns a list of all available time zone names bundled into this crate.
///
/// There are no API guarantees on the order of the sequence returned.
///
/// # Example
///
/// This example shows how to determine the total number of time zone names
/// available:
///
/// ```
/// assert_eq!(jiff_tzdb::available().count(), 598);
/// ```
///
/// Note that this number may change in subsequent releases of the Time Zone
/// Database.
pub fn available() -> TimeZoneNameIter {
TimeZoneNameIter { it: tzname::TZNAME_TO_OFFSET.iter() }
}
/// An iterator over all time zone names embedded into this crate.
///
/// There are no API guarantees on the order of this iterator.
///
/// This iterator is created by the [`available`] function.
#[derive(Clone, Debug)]
pub struct TimeZoneNameIter {
it: core::slice::Iter<'static, (&'static str, core::ops::Range<usize>)>,
}
impl Iterator for TimeZoneNameIter {
type Item = &'static str;
fn next(&mut self) -> Option<&'static str> {
self.it.next().map(|&(name, _)| name)
}
}
/// Finds the index of a matching entry in `TZNAME_TO_OFFSET`.
///
/// If the given time zone doesn't exist, then `None` is returned.
fn index(query_name: &str) -> Option<usize> {
tzname::TZNAME_TO_OFFSET
.binary_search_by(|(name, _)| cmp_ignore_ascii_case(name, query_name))
.ok()
}
/// Like std's `eq_ignore_ascii_case`, but returns a full `Ordering`.
fn cmp_ignore_ascii_case(s1: &str, s2: &str) -> core::cmp::Ordering {
let it1 = s1.as_bytes().iter().map(|&b| b.to_ascii_lowercase());
let it2 = s2.as_bytes().iter().map(|&b| b.to_ascii_lowercase());
it1.cmp(it2)
}
#[cfg(test)]
mod tests {
use core::cmp::Ordering;
use crate::tzname::TZNAME_TO_OFFSET;
use super::*;
/// This is a regression test where TZ names were sorted lexicographically
/// but case sensitively, and this could subtly break binary search.
#[test]
fn sorted_ascii_case_insensitive() {
for window in TZNAME_TO_OFFSET.windows(2) {
let (name1, _) = window[0];
let (name2, _) = window[1];
assert_eq!(
Ordering::Less,
cmp_ignore_ascii_case(name1, name2),
"{name1} should be less than {name2}",
);
}
}
}
+602
View File
@@ -0,0 +1,602 @@
pub(super) static VERSION: Option<&str> = Some(r"2026c");
pub(super) static TZNAME_TO_OFFSET: &[(&str, core::ops::Range<usize>)] = &[
(r"Africa/Abidjan", 3982..4112),
(r"Africa/Accra", 3982..4112),
(r"Africa/Addis_Ababa", 12063..12254),
(r"Africa/Algiers", 32214..32684),
(r"Africa/Asmara", 12063..12254),
(r"Africa/Asmera", 12063..12254),
(r"Africa/Bamako", 3982..4112),
(r"Africa/Bangui", 10414..10594),
(r"Africa/Banjul", 3982..4112),
(r"Africa/Bissau", 6252..6401),
(r"Africa/Blantyre", 3851..3982),
(r"Africa/Brazzaville", 10414..10594),
(r"Africa/Bujumbura", 3851..3982),
(r"Africa/Cairo", 163312..164621),
(r"Africa/Casablanca", 102300..103078),
(r"Africa/Ceuta", 41823..42385),
(r"Africa/Conakry", 3982..4112),
(r"Africa/Dakar", 3982..4112),
(r"Africa/Dar_es_Salaam", 12063..12254),
(r"Africa/Djibouti", 12063..12254),
(r"Africa/Douala", 10414..10594),
(r"Africa/El_Aaiun", 63337..64020),
(r"Africa/Freetown", 3982..4112),
(r"Africa/Gaborone", 3851..3982),
(r"Africa/Harare", 3851..3982),
(r"Africa/Johannesburg", 12455..12645),
(r"Africa/Juba", 34101..34559),
(r"Africa/Kampala", 12063..12254),
(r"Africa/Khartoum", 33643..34101),
(r"Africa/Kigali", 3851..3982),
(r"Africa/Kinshasa", 10414..10594),
(r"Africa/Lagos", 10414..10594),
(r"Africa/Libreville", 10414..10594),
(r"Africa/Lome", 3982..4112),
(r"Africa/Luanda", 10414..10594),
(r"Africa/Lubumbashi", 3851..3982),
(r"Africa/Lusaka", 3851..3982),
(r"Africa/Malabo", 10414..10594),
(r"Africa/Maputo", 3851..3982),
(r"Africa/Maseru", 12455..12645),
(r"Africa/Mbabane", 12455..12645),
(r"Africa/Mogadishu", 12063..12254),
(r"Africa/Monrovia", 7800..7964),
(r"Africa/Nairobi", 12063..12254),
(r"Africa/Ndjamena", 7640..7800),
(r"Africa/Niamey", 10414..10594),
(r"Africa/Nouakchott", 3982..4112),
(r"Africa/Ouagadougou", 3982..4112),
(r"Africa/Porto-Novo", 10414..10594),
(r"Africa/Sao_Tome", 8991..9164),
(r"Africa/Timbuktu", 3982..4112),
(r"Africa/Tripoli", 29566..29997),
(r"Africa/Tunis", 31765..32214),
(r"Africa/Windhoek", 56591..57244),
(r"America/Adak", 123380..124349),
(r"America/Anchorage", 125324..126301),
(r"America/Anguilla", 9872..10049),
(r"America/Antigua", 9872..10049),
(r"America/Araguaina", 48342..48934),
(r"America/Argentina/Buenos_Aires", 69647..70355),
(r"America/Argentina/Catamarca", 71063..71771),
(r"America/Argentina/ComodRivadavia", 71063..71771),
(r"America/Argentina/Cordoba", 70355..71063),
(r"America/Argentina/Jujuy", 61957..62647),
(r"America/Argentina/La_Rioja", 76029..76746),
(r"America/Argentina/Mendoza", 72479..73187),
(r"America/Argentina/Rio_Gallegos", 73187..73895),
(r"America/Argentina/Salta", 62647..63337),
(r"America/Argentina/San_Juan", 76746..77463),
(r"America/Argentina/San_Luis", 75312..76029),
(r"America/Argentina/Tucuman", 77463..78189),
(r"America/Argentina/Ushuaia", 71771..72479),
(r"America/Aruba", 9872..10049),
(r"America/Asuncion", 151201..152286),
(r"America/Atikokan", 5647..5796),
(r"America/Atka", 123380..124349),
(r"America/Bahia", 65416..66098),
(r"America/Bahia_Banderas", 68224..68924),
(r"America/Barbados", 18000..18278),
(r"America/Belem", 25850..26244),
(r"America/Belize", 147948..148993),
(r"America/Blanc-Sablon", 9872..10049),
(r"America/Boa_Vista", 29997..30427),
(r"America/Bogota", 9514..9693),
(r"America/Boise", 135840..136839),
(r"America/Buenos_Aires", 69647..70355),
(r"America/Cambridge_Bay", 109685..110568),
(r"America/Campo_Grande", 137791..138743),
(r"America/Cancun", 41285..41823),
(r"America/Caracas", 11873..12063),
(r"America/Catamarca", 71063..71771),
(r"America/Cayenne", 6101..6252),
(r"America/Cayman", 5647..5796),
(r"America/Chicago", 187313..189067),
(r"America/Chihuahua", 64725..65416),
(r"America/Ciudad_Juarez", 66788..67506),
(r"America/Coral_Harbour", 5647..5796),
(r"America/Cordoba", 70355..71063),
(r"America/Costa_Rica", 16493..16725),
(r"America/Coyhaique", 168673..170035),
(r"America/Creston", 16962..17202),
(r"America/Cuiaba", 132926..133860),
(r"America/Curacao", 9872..10049),
(r"America/Danmarkshavn", 31318..31765),
(r"America/Dawson", 141764..142793),
(r"America/Dawson_Creek", 61274..61957),
(r"America/Denver", 146906..147948),
(r"America/Detroit", 113253..114152),
(r"America/Dominica", 9872..10049),
(r"America/Edmonton", 164621..165934),
(r"America/Eirunepe", 30427..30863),
(r"America/El_Salvador", 11514..11690),
(r"America/Ensenada", 167306..168673),
(r"America/Fort_Nelson", 172899..174347),
(r"America/Fort_Wayne", 36056..36587),
(r"America/Fortaleza", 37555..38039),
(r"America/Glace_Bay", 111476..112356),
(r"America/Godthab", 190945..191910),
(r"America/Goose_Bay", 177328..178908),
(r"America/Grand_Turk", 108832..109685),
(r"America/Grenada", 9872..10049),
(r"America/Guadeloupe", 9872..10049),
(r"America/Guatemala", 15573..15785),
(r"America/Guayaquil", 9693..9872),
(r"America/Guyana", 10594..10775),
(r"America/Halifax", 180507..182179),
(r"America/Havana", 152286..153403),
(r"America/Hermosillo", 17468..17726),
(r"America/Indiana/Indianapolis", 36056..36587),
(r"America/Indiana/Knox", 139719..140735),
(r"America/Indiana/Marengo", 40168..40735),
(r"America/Indiana/Petersburg", 59937..60620),
(r"America/Indiana/Tell_City", 35534..36056),
(r"America/Indiana/Vevay", 20689..21058),
(r"America/Indiana/Vincennes", 39610..40168),
(r"America/Indiana/Winamac", 44128..44731),
(r"America/Indianapolis", 36056..36587),
(r"America/Inuvik", 106295..107112),
(r"America/Iqaluit", 107112..107967),
(r"America/Jamaica", 21733..22072),
(r"America/Jujuy", 61957..62647),
(r"America/Juneau", 121493..122459),
(r"America/Kentucky/Louisville", 158248..159490),
(r"America/Kentucky/Monticello", 131954..132926),
(r"America/Knox_IN", 139719..140735),
(r"America/Kralendijk", 9872..10049),
(r"America/La_Paz", 7964..8134),
(r"America/Lima", 18278..18561),
(r"America/Los_Angeles", 160724..162018),
(r"America/Louisville", 158248..159490),
(r"America/Lower_Princes", 9872..10049),
(r"America/Maceio", 38597..39099),
(r"America/Managua", 18561..18856),
(r"America/Manaus", 27858..28270),
(r"America/Marigot", 9872..10049),
(r"America/Martinique", 10049..10227),
(r"America/Matamoros", 28688..29125),
(r"America/Mazatlan", 66098..66788),
(r"America/Mendoza", 72479..73187),
(r"America/Menominee", 115943..116860),
(r"America/Merida", 60620..61274),
(r"America/Metlakatla", 42385..42971),
(r"America/Mexico_City", 98347..99120),
(r"America/Miquelon", 40735..41285),
(r"America/Moncton", 175835..177328),
(r"America/Monterrey", 74603..75312),
(r"America/Montevideo", 129110..130079),
(r"America/Montreal", 183852..185569),
(r"America/Montserrat", 9872..10049),
(r"America/Nassau", 183852..185569),
(r"America/New_York", 185569..187313),
(r"America/Nipigon", 183852..185569),
(r"America/Nome", 124349..125324),
(r"America/Noronha", 36587..37071),
(r"America/North_Dakota/Beulah", 145863..146906),
(r"America/North_Dakota/Center", 133860..134850),
(r"America/North_Dakota/New_Salem", 134850..135840),
(r"America/Nuuk", 190945..191910),
(r"America/Ojinaga", 67506..68224),
(r"America/Panama", 5647..5796),
(r"America/Pangnirtung", 107112..107967),
(r"America/Paramaribo", 10958..11145),
(r"America/Phoenix", 16962..17202),
(r"America/Port-au-Prince", 42971..43536),
(r"America/Port_of_Spain", 9872..10049),
(r"America/Porto_Acre", 28270..28688),
(r"America/Porto_Velho", 26244..26638),
(r"America/Puerto_Rico", 9872..10049),
(r"America/Punta_Arenas", 157030..158248),
(r"America/Rainy_River", 162018..163312),
(r"America/Rankin_Inlet", 105488..106295),
(r"America/Recife", 37071..37555),
(r"America/Regina", 54629..55267),
(r"America/Resolute", 104681..105488),
(r"America/Rio_Branco", 28270..28688),
(r"America/Rosario", 70355..71063),
(r"America/Santa_Isabel", 167306..168673),
(r"America/Santarem", 27449..27858),
(r"America/Santiago", 195142..196496),
(r"America/Santo_Domingo", 19432..19749),
(r"America/Sao_Paulo", 136839..137791),
(r"America/Scoresbysund", 191910..192894),
(r"America/Shiprock", 146906..147948),
(r"America/Sitka", 120537..121493),
(r"America/St_Barthelemy", 9872..10049),
(r"America/St_Johns", 189067..190945),
(r"America/St_Kitts", 9872..10049),
(r"America/St_Lucia", 9872..10049),
(r"America/St_Thomas", 9872..10049),
(r"America/St_Vincent", 9872..10049),
(r"America/Swift_Current", 22414..22782),
(r"America/Tegucigalpa", 13299..13493),
(r"America/Thule", 30863..31318),
(r"America/Thunder_Bay", 183852..185569),
(r"America/Tijuana", 167306..168673),
(r"America/Toronto", 183852..185569),
(r"America/Tortola", 9872..10049),
(r"America/Vancouver", 182179..183852),
(r"America/Virgin", 9872..10049),
(r"America/Whitehorse", 140735..141764),
(r"America/Winnipeg", 162018..163312),
(r"America/Yakutat", 119591..120537),
(r"America/Yellowknife", 164621..165934),
(r"Antarctica/Casey", 18856..19143),
(r"Antarctica/Davis", 13493..13690),
(r"Antarctica/DumontDUrville", 6705..6859),
(r"Antarctica/Macquarie", 138743..139719),
(r"Antarctica/Mawson", 6553..6705),
(r"Antarctica/McMurdo", 144820..145863),
(r"Antarctica/Palmer", 115056..115943),
(r"Antarctica/Rothera", 3295..3427),
(r"Antarctica/South_Pole", 144820..145863),
(r"Antarctica/Syowa", 4777..4910),
(r"Antarctica/Troll", 3427..3585),
(r"Antarctica/Vostok", 8821..8991),
(r"Arctic/Longyearbyen", 64020..64725),
(r"Asia/Aden", 4777..4910),
(r"Asia/Almaty", 51470..52088),
(r"Asia/Amman", 131026..131954),
(r"Asia/Anadyr", 83293..84036),
(r"Asia/Aqtau", 47120..47726),
(r"Asia/Aqtobe", 48934..49549),
(r"Asia/Ashgabat", 24269..24644),
(r"Asia/Ashkhabad", 24269..24644),
(r"Asia/Atyrau", 47726..48342),
(r"Asia/Baghdad", 55961..56591),
(r"Asia/Bahrain", 6401..6553),
(r"Asia/Baku", 88496..89240),
(r"Asia/Bangkok", 5343..5495),
(r"Asia/Barnaul", 94547..95300),
(r"Asia/Beirut", 78924..79656),
(r"Asia/Bishkek", 52088..52706),
(r"Asia/Brunei", 19749..20069),
(r"Asia/Calcutta", 13690..13910),
(r"Asia/Chita", 89240..89990),
(r"Asia/Choibalsan", 45932..46526),
(r"Asia/Chongqing", 25457..25850),
(r"Asia/Chungking", 25457..25850),
(r"Asia/Colombo", 14362..14609),
(r"Asia/Dacca", 14131..14362),
(r"Asia/Damascus", 159490..160724),
(r"Asia/Dhaka", 14131..14362),
(r"Asia/Dili", 8651..8821),
(r"Asia/Dubai", 4511..4644),
(r"Asia/Dushanbe", 23148..23514),
(r"Asia/Famagusta", 128170..129110),
(r"Asia/Gaza", 196496..199446),
(r"Asia/Harbin", 25457..25850),
(r"Asia/Hebron", 199446..202414),
(r"Asia/Ho_Chi_Minh", 15785..16017),
(r"Asia/Hong_Kong", 100736..101511),
(r"Asia/Hovd", 46526..47120),
(r"Asia/Irkutsk", 91496..92256),
(r"Asia/Istanbul", 154610..155810),
(r"Asia/Jakarta", 14856..15104),
(r"Asia/Jayapura", 8480..8651),
(r"Asia/Jerusalem", 192894..193968),
(r"Asia/Kabul", 6859..7018),
(r"Asia/Kamchatka", 80382..81109),
(r"Asia/Karachi", 17202..17468),
(r"Asia/Kashgar", 4644..4777),
(r"Asia/Kathmandu", 7479..7640),
(r"Asia/Katmandu", 7479..7640),
(r"Asia/Khandyga", 96806..97581),
(r"Asia/Kolkata", 13690..13910),
(r"Asia/Krasnoyarsk", 85518..86259),
(r"Asia/Kuala_Lumpur", 15104..15360),
(r"Asia/Kuching", 19749..20069),
(r"Asia/Kuwait", 4777..4910),
(r"Asia/Macao", 103078..103869),
(r"Asia/Macau", 103078..103869),
(r"Asia/Magadan", 89990..90741),
(r"Asia/Makassar", 11145..11335),
(r"Asia/Manila", 17726..18000),
(r"Asia/Muscat", 4511..4644),
(r"Asia/Nicosia", 44731..45328),
(r"Asia/Novokuznetsk", 81109..81835),
(r"Asia/Novosibirsk", 95300..96053),
(r"Asia/Omsk", 84036..84777),
(r"Asia/Oral", 50169..50794),
(r"Asia/Phnom_Penh", 5343..5495),
(r"Asia/Pontianak", 14609..14856),
(r"Asia/Pyongyang", 11690..11873),
(r"Asia/Qatar", 6401..6553),
(r"Asia/Qostanay", 53330..53954),
(r"Asia/Qyzylorda", 52706..53330),
(r"Asia/Rangoon", 10227..10414),
(r"Asia/Riyadh", 4777..4910),
(r"Asia/Saigon", 15785..16017),
(r"Asia/Sakhalin", 90741..91496),
(r"Asia/Samarkand", 23514..23880),
(r"Asia/Seoul", 27034..27449),
(r"Asia/Shanghai", 25457..25850),
(r"Asia/Singapore", 15104..15360),
(r"Asia/Srednekolymsk", 87001..87743),
(r"Asia/Taipei", 39099..39610),
(r"Asia/Tashkent", 22782..23148),
(r"Asia/Tbilisi", 49549..50169),
(r"Asia/Tehran", 103869..104681),
(r"Asia/Tel_Aviv", 192894..193968),
(r"Asia/Thimbu", 7171..7325),
(r"Asia/Thimphu", 7171..7325),
(r"Asia/Tokyo", 15360..15573),
(r"Asia/Tomsk", 96053..96806),
(r"Asia/Ujung_Pandang", 11145..11335),
(r"Asia/Ulaanbaatar", 45932..46526),
(r"Asia/Ulan_Bator", 45932..46526),
(r"Asia/Urumqi", 4644..4777),
(r"Asia/Ust-Nera", 93776..94547),
(r"Asia/Vientiane", 5343..5495),
(r"Asia/Vladivostok", 86259..87001),
(r"Asia/Yakutsk", 84777..85518),
(r"Asia/Yangon", 10227..10414),
(r"Asia/Yekaterinburg", 92256..93016),
(r"Asia/Yerevan", 73895..74603),
(r"Atlantic/Azores", 170035..171436),
(r"Atlantic/Bermuda", 143796..144820),
(r"Atlantic/Canary", 33165..33643),
(r"Atlantic/Cape_Verde", 9164..9339),
(r"Atlantic/Faeroe", 29125..29566),
(r"Atlantic/Faroe", 29125..29566),
(r"Atlantic/Jan_Mayen", 64020..64725),
(r"Atlantic/Madeira", 165934..167306),
(r"Atlantic/Reykjavik", 3982..4112),
(r"Atlantic/South_Georgia", 3585..3717),
(r"Atlantic/St_Helena", 3982..4112),
(r"Atlantic/Stanley", 101511..102300),
(r"Australia/ACT", 117783..118687),
(r"Australia/Adelaide", 122459..123380),
(r"Australia/Brisbane", 19143..19432),
(r"Australia/Broken_Hill", 126301..127242),
(r"Australia/Canberra", 117783..118687),
(r"Australia/Currie", 142793..143796),
(r"Australia/Darwin", 16259..16493),
(r"Australia/Eucla", 20375..20689),
(r"Australia/Hobart", 142793..143796),
(r"Australia/LHI", 59245..59937),
(r"Australia/Lindeman", 21058..21383),
(r"Australia/Lord_Howe", 59245..59937),
(r"Australia/Melbourne", 118687..119591),
(r"Australia/North", 16259..16493),
(r"Australia/NSW", 117783..118687),
(r"Australia/Perth", 20069..20375),
(r"Australia/Queensland", 19143..19432),
(r"Australia/South", 122459..123380),
(r"Australia/Sydney", 117783..118687),
(r"Australia/Tasmania", 142793..143796),
(r"Australia/Victoria", 118687..119591),
(r"Australia/West", 20069..20375),
(r"Australia/Yancowinna", 126301..127242),
(r"Brazil/Acre", 28270..28688),
(r"Brazil/DeNoronha", 36587..37071),
(r"Brazil/East", 136839..137791),
(r"Brazil/West", 27858..28270),
(r"Canada/Atlantic", 180507..182179),
(r"Canada/Central", 162018..163312),
(r"Canada/Eastern", 183852..185569),
(r"Canada/Mountain", 164621..165934),
(r"Canada/Newfoundland", 189067..190945),
(r"Canada/Pacific", 182179..183852),
(r"Canada/Saskatchewan", 54629..55267),
(r"Canada/Yukon", 140735..141764),
(r"CET", 150098..151201),
(r"Chile/Continental", 195142..196496),
(r"Chile/EasterIsland", 193968..195142),
(r"CST6CDT", 187313..189067),
(r"Cuba", 152286..153403),
(r"EET", 57905..58587),
(r"Egypt", 163312..164621),
(r"Eire", 174347..175835),
(r"EST", 5647..5796),
(r"EST5EDT", 185569..187313),
(r"Etc/GMT", 113..224),
(r"Etc/GMT+0", 113..224),
(r"Etc/GMT+1", 3182..3295),
(r"Etc/GMT+10", 2164..2278),
(r"Etc/GMT+11", 2050..2164),
(r"Etc/GMT+12", 1936..2050),
(r"Etc/GMT+2", 3069..3182),
(r"Etc/GMT+3", 2956..3069),
(r"Etc/GMT+4", 2843..2956),
(r"Etc/GMT+5", 2730..2843),
(r"Etc/GMT+6", 2617..2730),
(r"Etc/GMT+7", 2504..2617),
(r"Etc/GMT+8", 2391..2504),
(r"Etc/GMT+9", 2278..2391),
(r"Etc/GMT-0", 113..224),
(r"Etc/GMT-1", 335..449),
(r"Etc/GMT-10", 1361..1476),
(r"Etc/GMT-11", 1476..1591),
(r"Etc/GMT-12", 1591..1706),
(r"Etc/GMT-13", 1706..1821),
(r"Etc/GMT-14", 1821..1936),
(r"Etc/GMT-2", 449..563),
(r"Etc/GMT-3", 563..677),
(r"Etc/GMT-4", 677..791),
(r"Etc/GMT-5", 791..905),
(r"Etc/GMT-6", 905..1019),
(r"Etc/GMT-7", 1019..1133),
(r"Etc/GMT-8", 1133..1247),
(r"Etc/GMT-9", 1247..1361),
(r"Etc/GMT0", 113..224),
(r"Etc/Greenwich", 113..224),
(r"Etc/UCT", 224..335),
(r"Etc/Universal", 224..335),
(r"Etc/UTC", 224..335),
(r"Etc/Zulu", 224..335),
(r"Europe/Amsterdam", 150098..151201),
(r"Europe/Andorra", 23880..24269),
(r"Europe/Astrakhan", 81835..82561),
(r"Europe/Athens", 57905..58587),
(r"Europe/Belfast", 178908..180507),
(r"Europe/Belgrade", 34559..35037),
(r"Europe/Berlin", 64020..64725),
(r"Europe/Bratislava", 68924..69647),
(r"Europe/Brussels", 150098..151201),
(r"Europe/Bucharest", 57244..57905),
(r"Europe/Budapest", 97581..98347),
(r"Europe/Busingen", 35037..35534),
(r"Europe/Chisinau", 153403..154610),
(r"Europe/Copenhagen", 64020..64725),
(r"Europe/Dublin", 174347..175835),
(r"Europe/Gibraltar", 155810..157030),
(r"Europe/Guernsey", 178908..180507),
(r"Europe/Helsinki", 32684..33165),
(r"Europe/Isle_of_Man", 178908..180507),
(r"Europe/Istanbul", 154610..155810),
(r"Europe/Jersey", 178908..180507),
(r"Europe/Kaliningrad", 114152..115056),
(r"Europe/Kiev", 38039..38597),
(r"Europe/Kirov", 78189..78924),
(r"Europe/Kyiv", 38039..38597),
(r"Europe/Lisbon", 171436..172899),
(r"Europe/Ljubljana", 34559..35037),
(r"Europe/London", 178908..180507),
(r"Europe/Luxembourg", 150098..151201),
(r"Europe/Madrid", 112356..113253),
(r"Europe/Malta", 127242..128170),
(r"Europe/Mariehamn", 32684..33165),
(r"Europe/Minsk", 99120..99928),
(r"Europe/Monaco", 148993..150098),
(r"Europe/Moscow", 110568..111476),
(r"Europe/Nicosia", 44731..45328),
(r"Europe/Oslo", 64020..64725),
(r"Europe/Paris", 148993..150098),
(r"Europe/Podgorica", 34559..35037),
(r"Europe/Prague", 68924..69647),
(r"Europe/Riga", 55267..55961),
(r"Europe/Rome", 130079..131026),
(r"Europe/Samara", 82561..83293),
(r"Europe/San_Marino", 130079..131026),
(r"Europe/Sarajevo", 34559..35037),
(r"Europe/Saratov", 79656..80382),
(r"Europe/Simferopol", 107967..108832),
(r"Europe/Skopje", 34559..35037),
(r"Europe/Sofia", 43536..44128),
(r"Europe/Stockholm", 64020..64725),
(r"Europe/Tallinn", 53954..54629),
(r"Europe/Tirane", 45328..45932),
(r"Europe/Tiraspol", 153403..154610),
(r"Europe/Ulyanovsk", 93016..93776),
(r"Europe/Uzhgorod", 38039..38597),
(r"Europe/Vaduz", 35037..35534),
(r"Europe/Vatican", 130079..131026),
(r"Europe/Vienna", 58587..59245),
(r"Europe/Vilnius", 50794..51470),
(r"Europe/Volgograd", 87743..88496),
(r"Europe/Warsaw", 116860..117783),
(r"Europe/Zagreb", 34559..35037),
(r"Europe/Zaporozhye", 38039..38597),
(r"Europe/Zurich", 35037..35534),
(r"Factory", 0..113),
(r"GB", 178908..180507),
(r"GB-Eire", 178908..180507),
(r"GMT", 113..224),
(r"GMT+0", 113..224),
(r"GMT-0", 113..224),
(r"GMT0", 113..224),
(r"Greenwich", 113..224),
(r"Hongkong", 100736..101511),
(r"HST", 13910..14131),
(r"Iceland", 3982..4112),
(r"Indian/Antananarivo", 12063..12254),
(r"Indian/Chagos", 5949..6101),
(r"Indian/Christmas", 5343..5495),
(r"Indian/Cocos", 10227..10414),
(r"Indian/Comoro", 12063..12254),
(r"Indian/Kerguelen", 5495..5647),
(r"Indian/Mahe", 4511..4644),
(r"Indian/Maldives", 5495..5647),
(r"Indian/Mauritius", 11335..11514),
(r"Indian/Mayotte", 12063..12254),
(r"Indian/Reunion", 4511..4644),
(r"Iran", 103869..104681),
(r"Israel", 192894..193968),
(r"Jamaica", 21733..22072),
(r"Japan", 15360..15573),
(r"Kwajalein", 12882..13101),
(r"Libya", 29566..29997),
(r"MET", 150098..151201),
(r"Mexico/BajaNorte", 167306..168673),
(r"Mexico/BajaSur", 66098..66788),
(r"Mexico/General", 98347..99120),
(r"MST", 16962..17202),
(r"MST7MDT", 146906..147948),
(r"Navajo", 146906..147948),
(r"NZ", 144820..145863),
(r"NZ-CHAT", 99928..100736),
(r"Pacific/Apia", 24644..25051),
(r"Pacific/Auckland", 144820..145863),
(r"Pacific/Bougainville", 12254..12455),
(r"Pacific/Chatham", 99928..100736),
(r"Pacific/Chuuk", 6705..6859),
(r"Pacific/Easter", 193968..195142),
(r"Pacific/Efate", 22072..22414),
(r"Pacific/Enderbury", 8134..8306),
(r"Pacific/Fakaofo", 5796..5949),
(r"Pacific/Fiji", 26638..27034),
(r"Pacific/Funafuti", 3717..3851),
(r"Pacific/Galapagos", 9339..9514),
(r"Pacific/Gambier", 4246..4378),
(r"Pacific/Guadalcanal", 4112..4246),
(r"Pacific/Guam", 21383..21733),
(r"Pacific/Honolulu", 13910..14131),
(r"Pacific/Johnston", 13910..14131),
(r"Pacific/Kanton", 8134..8306),
(r"Pacific/Kiritimati", 8306..8480),
(r"Pacific/Kosrae", 16017..16259),
(r"Pacific/Kwajalein", 12882..13101),
(r"Pacific/Majuro", 3717..3851),
(r"Pacific/Marquesas", 4910..5049),
(r"Pacific/Midway", 5197..5343),
(r"Pacific/Nauru", 10775..10958),
(r"Pacific/Niue", 7325..7479),
(r"Pacific/Norfolk", 12645..12882),
(r"Pacific/Noumea", 13101..13299),
(r"Pacific/Pago_Pago", 5197..5343),
(r"Pacific/Palau", 5049..5197),
(r"Pacific/Pitcairn", 7018..7171),
(r"Pacific/Pohnpei", 4112..4246),
(r"Pacific/Ponape", 4112..4246),
(r"Pacific/Port_Moresby", 6705..6859),
(r"Pacific/Rarotonga", 25051..25457),
(r"Pacific/Saipan", 21383..21733),
(r"Pacific/Samoa", 5197..5343),
(r"Pacific/Tahiti", 4378..4511),
(r"Pacific/Tarawa", 3717..3851),
(r"Pacific/Tongatapu", 16725..16962),
(r"Pacific/Truk", 6705..6859),
(r"Pacific/Wake", 3717..3851),
(r"Pacific/Wallis", 3717..3851),
(r"Pacific/Yap", 6705..6859),
(r"Poland", 116860..117783),
(r"Portugal", 171436..172899),
(r"PRC", 25457..25850),
(r"PST8PDT", 160724..162018),
(r"ROC", 39099..39610),
(r"ROK", 27034..27449),
(r"Singapore", 15104..15360),
(r"Turkey", 154610..155810),
(r"UCT", 224..335),
(r"Universal", 224..335),
(r"US/Alaska", 125324..126301),
(r"US/Aleutian", 123380..124349),
(r"US/Arizona", 16962..17202),
(r"US/Central", 187313..189067),
(r"US/East-Indiana", 36056..36587),
(r"US/Eastern", 185569..187313),
(r"US/Hawaii", 13910..14131),
(r"US/Indiana-Starke", 139719..140735),
(r"US/Michigan", 113253..114152),
(r"US/Mountain", 146906..147948),
(r"US/Pacific", 160724..162018),
(r"US/Samoa", 5197..5343),
(r"UTC", 224..335),
(r"W-SU", 110568..111476),
(r"WET", 171436..172899),
(r"Zulu", 224..335),
];