@v-tilt/browser 1.0.11 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/dist/array.js +1 -1
  2. package/dist/array.js.map +1 -1
  3. package/dist/array.no-external.js +1 -1
  4. package/dist/array.no-external.js.map +1 -1
  5. package/dist/constants.d.ts +172 -10
  6. package/dist/main.js +1 -1
  7. package/dist/main.js.map +1 -1
  8. package/dist/module.d.ts +230 -46
  9. package/dist/module.js +1 -1
  10. package/dist/module.js.map +1 -1
  11. package/dist/module.no-external.d.ts +230 -46
  12. package/dist/module.no-external.js +1 -1
  13. package/dist/module.no-external.js.map +1 -1
  14. package/dist/rate-limiter.d.ts +52 -0
  15. package/dist/request-queue.d.ts +78 -0
  16. package/dist/request.d.ts +54 -0
  17. package/dist/retry-queue.d.ts +64 -0
  18. package/dist/session.d.ts +2 -2
  19. package/dist/types.d.ts +154 -37
  20. package/dist/user-manager.d.ts +2 -2
  21. package/dist/vtilt.d.ts +51 -12
  22. package/lib/config.js +6 -13
  23. package/lib/constants.d.ts +172 -10
  24. package/lib/constants.js +644 -439
  25. package/lib/rate-limiter.d.ts +52 -0
  26. package/lib/rate-limiter.js +80 -0
  27. package/lib/request-queue.d.ts +78 -0
  28. package/lib/request-queue.js +156 -0
  29. package/lib/request.d.ts +54 -0
  30. package/lib/request.js +265 -0
  31. package/lib/retry-queue.d.ts +64 -0
  32. package/lib/retry-queue.js +182 -0
  33. package/lib/session.d.ts +2 -2
  34. package/lib/session.js +3 -3
  35. package/lib/types.d.ts +154 -37
  36. package/lib/types.js +6 -0
  37. package/lib/user-manager.d.ts +2 -2
  38. package/lib/user-manager.js +38 -11
  39. package/lib/utils/event-utils.js +88 -82
  40. package/lib/utils/index.js +2 -2
  41. package/lib/utils/request-utils.js +21 -19
  42. package/lib/vtilt.d.ts +51 -12
  43. package/lib/vtilt.js +199 -40
  44. package/lib/web-vitals.js +1 -1
  45. package/package.json +2 -1
package/lib/constants.js CHANGED
@@ -1,444 +1,649 @@
1
1
  "use strict";
2
+ /**
3
+ * Constants
4
+ *
5
+ * Following PostHog's pattern for constant definitions.
6
+ * These are used throughout the SDK for:
7
+ * - Storage keys
8
+ * - Property names
9
+ * - Event names
10
+ * - Configuration defaults
11
+ */
2
12
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TIMEZONES = exports.STORAGE_METHODS = exports.INITIAL_PERSON_INFO = exports.USER_STATE_KEY = exports.USER_PROPERTIES_KEY = exports.DEVICE_ID_KEY = exports.DISTINCT_ID_KEY = exports.ANONYMOUS_ID_KEY = exports.PRIMARY_WINDOW_EXISTS_KEY = exports.WINDOW_ID_KEY = exports.STORAGE_KEY = void 0;
4
- exports.STORAGE_KEY = "vt_session_id";
5
- exports.WINDOW_ID_KEY = "vt_window_id";
6
- exports.PRIMARY_WINDOW_EXISTS_KEY = "vt_primary_window_exists";
7
- exports.ANONYMOUS_ID_KEY = "vt_anonymous_id";
8
- exports.DISTINCT_ID_KEY = "vt_distinct_id";
9
- exports.DEVICE_ID_KEY = "vt_device_id";
10
- exports.USER_PROPERTIES_KEY = "vt_user_properties";
11
- exports.USER_STATE_KEY = "vt_user_state";
12
- exports.INITIAL_PERSON_INFO = "$initial_person_info";
13
- exports.STORAGE_METHODS = {
14
- cookie: "cookie",
15
- localStorage: "localStorage",
16
- sessionStorage: "sessionStorage",
13
+ exports.PROP_OS = exports.PROP_BROWSER_VERSION = exports.PROP_BROWSER = exports.PROP_REFERRING_DOMAIN = exports.PROP_REFERRER = exports.PROP_PATHNAME = exports.PROP_HOST = exports.PROP_CURRENT_URL = exports.PROP_WINDOW_ID = exports.PROP_SESSION_ID = exports.PROP_ANON_DISTINCT_ID = exports.PROP_IS_IDENTIFIED = exports.PROP_PROCESS_PERSON_PROFILE = exports.EVENT_RATE_LIMIT_WARNING = exports.EVENT_SNAPSHOT = exports.EVENT_PERFORMANCE = exports.EVENT_GROUP_IDENTIFY = exports.EVENT_SET = exports.EVENT_ALIAS = exports.EVENT_IDENTIFY = exports.EVENT_PAGELEAVE = exports.EVENT_PAGEVIEW = exports.SESSION_RECORDING_ENABLED_SERVER_SIDE = exports.WEB_VITALS_ENABLED_SERVER_SIDE = exports.AUTOCAPTURE_DISABLED_SERVER_SIDE = exports.STORED_GROUP_PROPERTIES_KEY = exports.STORED_PERSON_PROPERTIES_KEY = exports.INITIAL_REFERRER_INFO = exports.INITIAL_CAMPAIGN_PARAMS = exports.INITIAL_PERSON_INFO = exports.ENABLE_PERSON_PROCESSING = exports.STORAGE_METHODS = exports.PERSISTENCE_METHODS = exports.USER_PROPERTIES_KEY = exports.DISTINCT_ID_KEY = exports.ANONYMOUS_ID_KEY = exports.ANONYMOUS_ID = exports.DEVICE_ID_KEY = exports.DEVICE_ID = exports.USER_STATE_KEY = exports.USER_STATE = exports.PRIMARY_WINDOW_EXISTS_KEY = exports.WINDOW_ID_KEY = exports.WINDOW_ID = exports.STORAGE_KEY = exports.SESSION_ID = exports.EVENT_TIMERS_KEY = exports.ALIAS_ID_KEY = exports.DISTINCT_ID = exports.PEOPLE_DISTINCT_ID_KEY = void 0;
14
+ exports.TIMEZONES = exports.MAX_PROPERTY_VALUE_LENGTH = exports.MAX_PROPERTIES_SIZE = exports.SESSION_CHANGE_THRESHOLD_MS = exports.SESSION_TIMEOUT_MS = exports.DEFAULT_BATCH_SIZE = exports.DEFAULT_FLUSH_INTERVAL_MS = exports.DEFAULT_API_HOST = exports.PERSISTENCE_RESERVED_PROPERTIES = exports.UTM_PARAMS = exports.PROP_INITIAL_GEOIP_PREFIX = exports.PROP_GEOIP_LONGITUDE = exports.PROP_GEOIP_LATITUDE = exports.PROP_GEOIP_TIMEZONE = exports.PROP_GEOIP_CONTINENT_CODE = exports.PROP_GEOIP_REGION_NAME = exports.PROP_GEOIP_CITY_NAME = exports.PROP_GEOIP_COUNTRY_NAME = exports.PROP_GEOIP_COUNTRY_CODE = exports.PROP_LIB_VERSION = exports.PROP_LIB = exports.PROP_VIEWPORT_WIDTH = exports.PROP_VIEWPORT_HEIGHT = exports.PROP_SCREEN_WIDTH = exports.PROP_SCREEN_HEIGHT = exports.PROP_DEVICE_TYPE = exports.PROP_OS_VERSION = void 0;
15
+ // ============================================================================
16
+ // Storage Keys
17
+ // ============================================================================
18
+ /** @deprecated Use DISTINCT_ID instead */
19
+ exports.PEOPLE_DISTINCT_ID_KEY = '$people_distinct_id';
20
+ /** Current distinct_id */
21
+ exports.DISTINCT_ID = 'distinct_id';
22
+ /** Alias ID for aliasing operations */
23
+ exports.ALIAS_ID_KEY = '__alias';
24
+ /** Event timers storage key */
25
+ exports.EVENT_TIMERS_KEY = '__timers';
26
+ /** Session ID storage key */
27
+ exports.SESSION_ID = '$sesid';
28
+ /** Session storage key (for session manager) */
29
+ exports.STORAGE_KEY = '__vt_session';
30
+ /** Window ID storage key */
31
+ exports.WINDOW_ID = '$windowid';
32
+ /** Window ID key (for session storage) */
33
+ exports.WINDOW_ID_KEY = '__vt_window_id';
34
+ /** Primary window exists key (for tab duplication detection) */
35
+ exports.PRIMARY_WINDOW_EXISTS_KEY = '__vt_primary_window';
36
+ /** User state (anonymous/identified) */
37
+ exports.USER_STATE = '$user_state';
38
+ /** User state storage key */
39
+ exports.USER_STATE_KEY = '__vt_user_state';
40
+ /** Device ID storage key */
41
+ exports.DEVICE_ID = '$device_id';
42
+ /** Device ID key (for storage) */
43
+ exports.DEVICE_ID_KEY = '__vt_device_id';
44
+ /** Anonymous ID storage key */
45
+ exports.ANONYMOUS_ID = '$anonymous_id';
46
+ /** Anonymous ID key (for storage) */
47
+ exports.ANONYMOUS_ID_KEY = '__vt_anonymous_id';
48
+ /** Distinct ID key (for storage) */
49
+ exports.DISTINCT_ID_KEY = '__vt_distinct_id';
50
+ /** User properties storage key */
51
+ exports.USER_PROPERTIES_KEY = '__vt_user_properties';
52
+ /**
53
+ * Persistence methods object
54
+ * Following PostHog's approach for storage/persistence configuration
55
+ */
56
+ exports.PERSISTENCE_METHODS = {
57
+ cookie: 'cookie',
58
+ localStorage: 'localStorage',
59
+ localStoragePlusCookie: 'localStorage+cookie',
60
+ sessionStorage: 'sessionStorage',
61
+ memory: 'memory',
17
62
  };
63
+ /** @deprecated Use PERSISTENCE_METHODS instead */
64
+ exports.STORAGE_METHODS = exports.PERSISTENCE_METHODS;
65
+ // ============================================================================
66
+ // Person Processing
67
+ // ============================================================================
68
+ /** Enable person processing flag */
69
+ exports.ENABLE_PERSON_PROCESSING = '$epp';
70
+ /** Initial person info (referrer, URL, UTM params) */
71
+ exports.INITIAL_PERSON_INFO = '$initial_person_info';
72
+ /** @deprecated Use INITIAL_PERSON_INFO */
73
+ exports.INITIAL_CAMPAIGN_PARAMS = '$initial_campaign_params';
74
+ /** @deprecated Use INITIAL_PERSON_INFO */
75
+ exports.INITIAL_REFERRER_INFO = '$initial_referrer_info';
76
+ /** Stored person properties for feature flags */
77
+ exports.STORED_PERSON_PROPERTIES_KEY = '$stored_person_properties';
78
+ /** Stored group properties for feature flags */
79
+ exports.STORED_GROUP_PROPERTIES_KEY = '$stored_group_properties';
80
+ // ============================================================================
81
+ // Server-Side Feature Flags
82
+ // ============================================================================
83
+ exports.AUTOCAPTURE_DISABLED_SERVER_SIDE = '$autocapture_disabled_server_side';
84
+ exports.WEB_VITALS_ENABLED_SERVER_SIDE = '$web_vitals_enabled_server_side';
85
+ exports.SESSION_RECORDING_ENABLED_SERVER_SIDE = '$session_recording_enabled_server_side';
86
+ // ============================================================================
87
+ // Event Names
88
+ // ============================================================================
89
+ /** Pageview event */
90
+ exports.EVENT_PAGEVIEW = '$pageview';
91
+ /** Pageleave event */
92
+ exports.EVENT_PAGELEAVE = '$pageleave';
93
+ /** Identify event */
94
+ exports.EVENT_IDENTIFY = '$identify';
95
+ /** Alias event */
96
+ exports.EVENT_ALIAS = '$create_alias';
97
+ /** Set person properties event */
98
+ exports.EVENT_SET = '$set';
99
+ /** Group identify event */
100
+ exports.EVENT_GROUP_IDENTIFY = '$groupidentify';
101
+ /** Performance event */
102
+ exports.EVENT_PERFORMANCE = '$performance_event';
103
+ /** Snapshot event (session recording) */
104
+ exports.EVENT_SNAPSHOT = '$snapshot';
105
+ /** Rate limit warning event */
106
+ exports.EVENT_RATE_LIMIT_WARNING = '$$client_ingestion_warning';
107
+ // ============================================================================
108
+ // Property Names
109
+ // ============================================================================
110
+ /** Process person profile flag */
111
+ exports.PROP_PROCESS_PERSON_PROFILE = '$process_person_profile';
112
+ /** Is identified flag */
113
+ exports.PROP_IS_IDENTIFIED = '$is_identified';
114
+ /** Anonymous distinct ID */
115
+ exports.PROP_ANON_DISTINCT_ID = '$anon_distinct_id';
116
+ /** Session ID property */
117
+ exports.PROP_SESSION_ID = '$session_id';
118
+ /** Window ID property */
119
+ exports.PROP_WINDOW_ID = '$window_id';
120
+ /** Current URL */
121
+ exports.PROP_CURRENT_URL = '$current_url';
122
+ /** Hostname */
123
+ exports.PROP_HOST = '$host';
124
+ /** Pathname */
125
+ exports.PROP_PATHNAME = '$pathname';
126
+ /** Referrer URL */
127
+ exports.PROP_REFERRER = '$referrer';
128
+ /** Referring domain */
129
+ exports.PROP_REFERRING_DOMAIN = '$referring_domain';
130
+ /** Browser */
131
+ exports.PROP_BROWSER = '$browser';
132
+ /** Browser version */
133
+ exports.PROP_BROWSER_VERSION = '$browser_version';
134
+ /** Operating system */
135
+ exports.PROP_OS = '$os';
136
+ /** OS version */
137
+ exports.PROP_OS_VERSION = '$os_version';
138
+ /** Device type */
139
+ exports.PROP_DEVICE_TYPE = '$device_type';
140
+ /** Screen height */
141
+ exports.PROP_SCREEN_HEIGHT = '$screen_height';
142
+ /** Screen width */
143
+ exports.PROP_SCREEN_WIDTH = '$screen_width';
144
+ /** Viewport height */
145
+ exports.PROP_VIEWPORT_HEIGHT = '$viewport_height';
146
+ /** Viewport width */
147
+ exports.PROP_VIEWPORT_WIDTH = '$viewport_width';
148
+ /** Library name */
149
+ exports.PROP_LIB = '$lib';
150
+ /** Library version */
151
+ exports.PROP_LIB_VERSION = '$lib_version';
152
+ // ============================================================================
153
+ // GeoIP Properties
154
+ // ============================================================================
155
+ exports.PROP_GEOIP_COUNTRY_CODE = '$geoip_country_code';
156
+ exports.PROP_GEOIP_COUNTRY_NAME = '$geoip_country_name';
157
+ exports.PROP_GEOIP_CITY_NAME = '$geoip_city_name';
158
+ exports.PROP_GEOIP_REGION_NAME = '$geoip_region_name';
159
+ exports.PROP_GEOIP_CONTINENT_CODE = '$geoip_continent_code';
160
+ exports.PROP_GEOIP_TIMEZONE = '$geoip_timezone';
161
+ exports.PROP_GEOIP_LATITUDE = '$geoip_latitude';
162
+ exports.PROP_GEOIP_LONGITUDE = '$geoip_longitude';
163
+ /** Initial GeoIP properties (set once) */
164
+ exports.PROP_INITIAL_GEOIP_PREFIX = '$initial_geoip_';
165
+ // ============================================================================
166
+ // UTM Parameters
167
+ // ============================================================================
168
+ exports.UTM_PARAMS = [
169
+ 'utm_source',
170
+ 'utm_medium',
171
+ 'utm_campaign',
172
+ 'utm_content',
173
+ 'utm_term',
174
+ 'gclid',
175
+ 'gad_source',
176
+ 'gbraid',
177
+ 'wbraid',
178
+ 'fbclid',
179
+ 'msclkid',
180
+ 'twclid',
181
+ 'li_fat_id',
182
+ 'mc_cid',
183
+ 'igshid',
184
+ 'ttclid',
185
+ ];
186
+ // ============================================================================
187
+ // Reserved Properties (excluded from automatic capture)
188
+ // ============================================================================
189
+ exports.PERSISTENCE_RESERVED_PROPERTIES = [
190
+ exports.PEOPLE_DISTINCT_ID_KEY,
191
+ exports.ALIAS_ID_KEY,
192
+ exports.EVENT_TIMERS_KEY,
193
+ exports.SESSION_ID,
194
+ exports.USER_STATE,
195
+ exports.DEVICE_ID,
196
+ exports.ANONYMOUS_ID,
197
+ exports.STORED_PERSON_PROPERTIES_KEY,
198
+ exports.STORED_GROUP_PROPERTIES_KEY,
199
+ exports.INITIAL_CAMPAIGN_PARAMS,
200
+ exports.INITIAL_REFERRER_INFO,
201
+ exports.ENABLE_PERSON_PROCESSING,
202
+ exports.INITIAL_PERSON_INFO,
203
+ ];
204
+ // ============================================================================
205
+ // Defaults
206
+ // ============================================================================
207
+ /** Default API host */
208
+ exports.DEFAULT_API_HOST = 'https://api.vtilt.io';
209
+ /** Default flush interval (ms) */
210
+ exports.DEFAULT_FLUSH_INTERVAL_MS = 5000;
211
+ /** Default batch size */
212
+ exports.DEFAULT_BATCH_SIZE = 10;
213
+ /** Session timeout (30 minutes in ms) */
214
+ exports.SESSION_TIMEOUT_MS = 30 * 60 * 1000;
215
+ /** Session ID change threshold (ms) */
216
+ exports.SESSION_CHANGE_THRESHOLD_MS = 30 * 60 * 1000;
217
+ /** Maximum event properties size (bytes) */
218
+ exports.MAX_PROPERTIES_SIZE = 65535;
219
+ /** Maximum property value length */
220
+ exports.MAX_PROPERTY_VALUE_LENGTH = 8192;
221
+ // ============================================================================
222
+ // Timezone to Country Mapping
223
+ // ============================================================================
224
+ /** Timezone to country code mapping */
18
225
  exports.TIMEZONES = {
19
- "Asia/Barnaul": "RU",
20
- "Africa/Nouakchott": "MR",
21
- "Africa/Lusaka": "ZM",
22
- "Asia/Pyongyang": "KP",
23
- "Europe/Bratislava": "SK",
24
- "America/Belize": "BZ",
25
- "America/Maceio": "BR",
26
- "Pacific/Chuuk": "FM",
27
- "Indian/Comoro": "KM",
28
- "Pacific/Palau": "PW",
29
- "Asia/Jakarta": "ID",
30
- "Africa/Windhoek": "NA",
31
- "America/Chihuahua": "MX",
32
- "America/Nome": "US",
33
- "Africa/Mbabane": "SZ",
34
- "Africa/Porto-Novo": "BJ",
35
- "Europe/San_Marino": "SM",
36
- "Pacific/Fakaofo": "TK",
37
- "America/Denver": "US",
38
- "Europe/Belgrade": "RS",
39
- "America/Indiana/Tell_City": "US",
40
- "America/Fortaleza": "BR",
41
- "America/Halifax": "CA",
42
- "Europe/Bucharest": "RO",
43
- "America/Indiana/Petersburg": "US",
44
- "Europe/Kirov": "RU",
45
- "Europe/Athens": "GR",
46
- "America/Argentina/Ushuaia": "AR",
47
- "Europe/Monaco": "MC",
48
- "Europe/Vilnius": "LT",
49
- "Europe/Copenhagen": "DK",
50
- "Pacific/Kanton": "KI",
51
- "America/Caracas": "VE",
52
- "Asia/Almaty": "KZ",
53
- "Europe/Paris": "FR",
54
- "Africa/Blantyre": "MW",
55
- "Asia/Muscat": "OM",
56
- "America/North_Dakota/Beulah": "US",
57
- "America/Matamoros": "MX",
58
- "Asia/Irkutsk": "RU",
59
- "America/Costa_Rica": "CR",
60
- "America/Araguaina": "BR",
61
- "Atlantic/Canary": "ES",
62
- "America/Santo_Domingo": "DO",
63
- "America/Vancouver": "CA",
64
- "Africa/Addis_Ababa": "ET",
65
- "Africa/Accra": "GH",
66
- "Pacific/Kwajalein": "MH",
67
- "Asia/Baghdad": "IQ",
68
- "Australia/Adelaide": "AU",
69
- "Australia/Hobart": "AU",
70
- "America/Guayaquil": "EC",
71
- "America/Argentina/Tucuman": "AR",
72
- "Australia/Lindeman": "AU",
73
- "America/New_York": "US",
74
- "Pacific/Fiji": "FJ",
75
- "America/Antigua": "AG",
76
- "Africa/Casablanca": "MA",
77
- "America/Paramaribo": "SR",
78
- "Africa/Cairo": "EG",
79
- "America/Cayenne": "GF",
80
- "America/Detroit": "US",
81
- "Antarctica/Syowa": "AQ",
82
- "Africa/Douala": "CM",
83
- "America/Argentina/La_Rioja": "AR",
84
- "Africa/Lagos": "NG",
85
- "America/St_Barthelemy": "BL",
86
- "Asia/Nicosia": "CY",
87
- "Asia/Macau": "MO",
88
- "Europe/Riga": "LV",
89
- "Asia/Ashgabat": "TM",
90
- "Indian/Antananarivo": "MG",
91
- "America/Argentina/San_Juan": "AR",
92
- "Asia/Aden": "YE",
93
- "Asia/Tomsk": "RU",
94
- "America/Asuncion": "PY",
95
- "Pacific/Bougainville": "PG",
96
- "Asia/Vientiane": "LA",
97
- "America/Mazatlan": "MX",
98
- "Africa/Luanda": "AO",
99
- "Europe/Oslo": "NO",
100
- "Africa/Kinshasa": "CD",
101
- "Europe/Warsaw": "PL",
102
- "America/Grand_Turk": "TC",
103
- "Asia/Seoul": "KR",
104
- "Africa/Tripoli": "LY",
105
- "America/St_Thomas": "VI",
106
- "Asia/Kathmandu": "NP",
107
- "Pacific/Pitcairn": "PN",
108
- "Pacific/Nauru": "NR",
109
- "America/Curacao": "CW",
110
- "Asia/Kabul": "AF",
111
- "Pacific/Tongatapu": "TO",
112
- "Europe/Simferopol": "UA",
113
- "Asia/Ust-Nera": "RU",
114
- "Africa/Mogadishu": "SO",
115
- "Indian/Mayotte": "YT",
116
- "Pacific/Niue": "NU",
117
- "America/Thunder_Bay": "CA",
118
- "Atlantic/Azores": "PT",
119
- "Pacific/Gambier": "PF",
120
- "Europe/Stockholm": "SE",
121
- "Africa/Libreville": "GA",
122
- "America/Punta_Arenas": "CL",
123
- "America/Guatemala": "GT",
124
- "America/Noronha": "BR",
125
- "Europe/Helsinki": "FI",
126
- "Asia/Gaza": "PS",
127
- "Pacific/Kosrae": "FM",
128
- "America/Aruba": "AW",
129
- "America/Nassau": "BS",
130
- "Asia/Choibalsan": "MN",
131
- "America/Winnipeg": "CA",
132
- "America/Anguilla": "AI",
133
- "Asia/Thimphu": "BT",
134
- "Asia/Beirut": "LB",
135
- "Atlantic/Faroe": "FO",
136
- "Europe/Berlin": "DE",
137
- "Europe/Amsterdam": "NL",
138
- "Pacific/Honolulu": "US",
139
- "America/Regina": "CA",
140
- "America/Scoresbysund": "GL",
141
- "Europe/Vienna": "AT",
142
- "Europe/Tirane": "AL",
143
- "Africa/El_Aaiun": "EH",
144
- "America/Creston": "CA",
145
- "Asia/Qostanay": "KZ",
146
- "Asia/Ho_Chi_Minh": "VN",
147
- "Europe/Samara": "RU",
148
- "Europe/Rome": "IT",
149
- "Australia/Eucla": "AU",
150
- "America/El_Salvador": "SV",
151
- "America/Chicago": "US",
152
- "Africa/Abidjan": "CI",
153
- "Asia/Kamchatka": "RU",
154
- "Pacific/Tarawa": "KI",
155
- "America/Santiago": "CL",
156
- "America/Bahia": "BR",
157
- "Indian/Christmas": "CX",
158
- "Asia/Atyrau": "KZ",
159
- "Asia/Dushanbe": "TJ",
160
- "Europe/Ulyanovsk": "RU",
161
- "America/Yellowknife": "CA",
162
- "America/Recife": "BR",
163
- "Australia/Sydney": "AU",
164
- "America/Fort_Nelson": "CA",
165
- "Pacific/Efate": "VU",
166
- "Europe/Saratov": "RU",
167
- "Africa/Banjul": "GM",
168
- "Asia/Omsk": "RU",
169
- "Europe/Ljubljana": "SI",
170
- "Europe/Budapest": "HU",
171
- "Europe/Astrakhan": "RU",
172
- "America/Argentina/Buenos_Aires": "AR",
173
- "Pacific/Chatham": "NZ",
174
- "America/Argentina/Salta": "AR",
175
- "Africa/Niamey": "NE",
176
- "Asia/Pontianak": "ID",
177
- "Indian/Reunion": "RE",
178
- "Asia/Hong_Kong": "HK",
179
- "Antarctica/McMurdo": "AQ",
180
- "Africa/Malabo": "GQ",
181
- "America/Los_Angeles": "US",
182
- "America/Argentina/Cordoba": "AR",
183
- "Pacific/Pohnpei": "FM",
184
- "America/Tijuana": "MX",
185
- "America/Campo_Grande": "BR",
186
- "America/Dawson_Creek": "CA",
187
- "Asia/Novosibirsk": "RU",
188
- "Pacific/Pago_Pago": "AS",
189
- "Asia/Jerusalem": "IL",
190
- "Europe/Sarajevo": "BA",
191
- "Africa/Freetown": "SL",
192
- "Asia/Yekaterinburg": "RU",
193
- "America/Juneau": "US",
194
- "Africa/Ouagadougou": "BF",
195
- "Africa/Monrovia": "LR",
196
- "Europe/Kiev": "UA",
197
- "America/Argentina/San_Luis": "AR",
198
- "Asia/Tokyo": "JP",
199
- "Asia/Qatar": "QA",
200
- "America/La_Paz": "BO",
201
- "America/Bogota": "CO",
202
- "America/Thule": "GL",
203
- "Asia/Manila": "PH",
204
- "Asia/Hovd": "MN",
205
- "Asia/Tehran": "IR",
206
- "Atlantic/Madeira": "PT",
207
- "America/Metlakatla": "US",
208
- "Europe/Vatican": "VA",
209
- "Asia/Bishkek": "KG",
210
- "Asia/Dili": "TL",
211
- "Antarctica/Palmer": "AQ",
212
- "Atlantic/Cape_Verde": "CV",
213
- "Indian/Chagos": "IO",
214
- "America/Kentucky/Monticello": "US",
215
- "Africa/Algiers": "DZ",
216
- "Africa/Maseru": "LS",
217
- "Asia/Kuala_Lumpur": "MY",
218
- "Africa/Khartoum": "SD",
219
- "America/Argentina/Rio_Gallegos": "AR",
220
- "America/Blanc-Sablon": "CA",
221
- "Africa/Maputo": "MZ",
222
- "America/Tortola": "VG",
223
- "Atlantic/Bermuda": "BM",
224
- "America/Argentina/Catamarca": "AR",
225
- "America/Cayman": "KY",
226
- "America/Puerto_Rico": "PR",
227
- "Pacific/Majuro": "MH",
228
- "Europe/Busingen": "DE",
229
- "Pacific/Midway": "UM",
230
- "Indian/Cocos": "CC",
231
- "Asia/Singapore": "SG",
232
- "America/Boise": "US",
233
- "America/Nuuk": "GL",
234
- "America/Goose_Bay": "CA",
235
- "Australia/Broken_Hill": "AU",
236
- "Africa/Dar_es_Salaam": "TZ",
237
- "Africa/Asmara": "ER",
238
- "Asia/Samarkand": "UZ",
239
- "Asia/Tbilisi": "GE",
240
- "America/Argentina/Jujuy": "AR",
241
- "America/Indiana/Winamac": "US",
242
- "America/Porto_Velho": "BR",
243
- "Asia/Magadan": "RU",
244
- "Europe/Zaporozhye": "UA",
245
- "Antarctica/Casey": "AQ",
246
- "Asia/Shanghai": "CN",
247
- "Pacific/Norfolk": "NF",
248
- "Europe/Guernsey": "GG",
249
- "Australia/Brisbane": "AU",
250
- "Antarctica/DumontDUrville": "AQ",
251
- "America/Havana": "CU",
252
- "America/Atikokan": "CA",
253
- "America/Mexico_City": "MX",
254
- "America/Rankin_Inlet": "CA",
255
- "America/Cuiaba": "BR",
256
- "America/Resolute": "CA",
257
- "Africa/Ceuta": "ES",
258
- "Arctic/Longyearbyen": "SJ",
259
- "Pacific/Guam": "GU",
260
- "Asia/Damascus": "SY",
261
- "Asia/Colombo": "LK",
262
- "Asia/Yerevan": "AM",
263
- "America/Montserrat": "MS",
264
- "America/Belem": "BR",
265
- "Europe/Kaliningrad": "RU",
266
- "Atlantic/South_Georgia": "GS",
267
- "Asia/Tashkent": "UZ",
268
- "Asia/Kolkata": "IN",
269
- "America/St_Johns": "CA",
270
- "Asia/Srednekolymsk": "RU",
271
- "Asia/Yakutsk": "RU",
272
- "Europe/Prague": "CZ",
273
- "Africa/Djibouti": "DJ",
274
- "Asia/Dubai": "AE",
275
- "Europe/Uzhgorod": "UA",
276
- "America/Edmonton": "CA",
277
- "Asia/Famagusta": "CY",
278
- "America/Indiana/Knox": "US",
279
- "Asia/Hebron": "PS",
280
- "Asia/Taipei": "TW",
281
- "Europe/London": "GB",
282
- "Africa/Dakar": "SN",
283
- "Australia/Darwin": "AU",
284
- "America/Glace_Bay": "CA",
285
- "Antarctica/Vostok": "AQ",
286
- "America/Indiana/Vincennes": "US",
287
- "America/Nipigon": "CA",
288
- "Asia/Kuwait": "KW",
289
- "Pacific/Guadalcanal": "SB",
290
- "America/Toronto": "CA",
291
- "Africa/Gaborone": "BW",
292
- "Africa/Bujumbura": "BI",
293
- "Africa/Lubumbashi": "CD",
294
- "America/Merida": "MX",
295
- "America/Marigot": "MF",
296
- "Europe/Zagreb": "HR",
297
- "Pacific/Easter": "CL",
298
- "America/Santarem": "BR",
299
- "Pacific/Noumea": "NC",
300
- "America/Sitka": "US",
301
- "Atlantic/Stanley": "FK",
302
- "Pacific/Funafuti": "TV",
303
- "America/Iqaluit": "CA",
304
- "America/Rainy_River": "CA",
305
- "America/Anchorage": "US",
306
- "America/Lima": "PE",
307
- "Asia/Baku": "AZ",
308
- "America/Indiana/Vevay": "US",
309
- "Asia/Ulaanbaatar": "MN",
310
- "America/Managua": "NI",
311
- "Asia/Krasnoyarsk": "RU",
312
- "Asia/Qyzylorda": "KZ",
313
- "America/Eirunepe": "BR",
314
- "Europe/Podgorica": "ME",
315
- "Europe/Chisinau": "MD",
316
- "Europe/Mariehamn": "AX",
317
- "Europe/Volgograd": "RU",
318
- "Africa/Nairobi": "KE",
319
- "Europe/Isle_of_Man": "IM",
320
- "America/Menominee": "US",
321
- "Africa/Harare": "ZW",
322
- "Asia/Anadyr": "RU",
323
- "America/Moncton": "CA",
324
- "Indian/Maldives": "MV",
325
- "America/Whitehorse": "CA",
326
- "Antarctica/Mawson": "AQ",
327
- "Europe/Madrid": "ES",
328
- "America/Argentina/Mendoza": "AR",
329
- "America/Manaus": "BR",
330
- "Africa/Bangui": "CF",
331
- "Indian/Mauritius": "MU",
332
- "Africa/Tunis": "TN",
333
- "Australia/Lord_Howe": "AU",
334
- "America/Kentucky/Louisville": "US",
335
- "America/North_Dakota/Center": "US",
336
- "Asia/Novokuznetsk": "RU",
337
- "Asia/Makassar": "ID",
338
- "America/Port_of_Spain": "TT",
339
- "America/Bahia_Banderas": "MX",
340
- "Pacific/Auckland": "NZ",
341
- "America/Sao_Paulo": "BR",
342
- "Asia/Dhaka": "BD",
343
- "America/Pangnirtung": "CA",
344
- "Europe/Dublin": "IE",
345
- "Asia/Brunei": "BN",
346
- "Africa/Brazzaville": "CG",
347
- "America/Montevideo": "UY",
348
- "America/Jamaica": "JM",
349
- "America/Indiana/Indianapolis": "US",
350
- "America/Kralendijk": "BQ",
351
- "Europe/Gibraltar": "GI",
352
- "Pacific/Marquesas": "PF",
353
- "Pacific/Apia": "WS",
354
- "Europe/Jersey": "JE",
355
- "America/Phoenix": "US",
356
- "Africa/Ndjamena": "TD",
357
- "Asia/Karachi": "PK",
358
- "Africa/Kampala": "UG",
359
- "Asia/Sakhalin": "RU",
360
- "America/Martinique": "MQ",
361
- "Europe/Moscow": "RU",
362
- "Africa/Conakry": "GN",
363
- "America/Barbados": "BB",
364
- "Africa/Lome": "TG",
365
- "America/Ojinaga": "MX",
366
- "America/Tegucigalpa": "HN",
367
- "Asia/Bangkok": "TH",
368
- "Africa/Johannesburg": "ZA",
369
- "Europe/Vaduz": "LI",
370
- "Africa/Sao_Tome": "ST",
371
- "America/Cambridge_Bay": "CA",
372
- "America/Lower_Princes": "SX",
373
- "America/Miquelon": "PM",
374
- "America/St_Kitts": "KN",
375
- "Australia/Melbourne": "AU",
376
- "Europe/Minsk": "BY",
377
- "Asia/Vladivostok": "RU",
378
- "Europe/Sofia": "BG",
379
- "Antarctica/Davis": "AQ",
380
- "Pacific/Galapagos": "EC",
381
- "America/North_Dakota/New_Salem": "US",
382
- "Asia/Amman": "JO",
383
- "Pacific/Wallis": "WF",
384
- "America/Hermosillo": "MX",
385
- "Pacific/Kiritimati": "KI",
386
- "Antarctica/Macquarie": "AU",
387
- "America/Guyana": "GY",
388
- "Asia/Riyadh": "SA",
389
- "Pacific/Tahiti": "PF",
390
- "America/St_Vincent": "VC",
391
- "America/Cancun": "MX",
392
- "America/Grenada": "GD",
393
- "Pacific/Wake": "UM",
394
- "America/Dawson": "CA",
395
- "Europe/Brussels": "BE",
396
- "Indian/Kerguelen": "TF",
397
- "America/Yakutat": "US",
398
- "Indian/Mahe": "SC",
399
- "Atlantic/Reykjavik": "IS",
400
- "America/Panama": "PA",
401
- "America/Guadeloupe": "GP",
402
- "Europe/Malta": "MT",
403
- "Antarctica/Troll": "AQ",
404
- "Asia/Jayapura": "ID",
405
- "Asia/Bahrain": "BH",
406
- "Asia/Chita": "RU",
407
- "Europe/Tallinn": "EE",
408
- "Asia/Khandyga": "RU",
409
- "America/Rio_Branco": "BR",
410
- "Atlantic/St_Helena": "SH",
411
- "Africa/Juba": "SS",
412
- "America/Adak": "US",
413
- "Pacific/Saipan": "MP",
414
- "America/St_Lucia": "LC",
415
- "America/Inuvik": "CA",
416
- "Europe/Luxembourg": "LU",
417
- "Africa/Bissau": "GW",
418
- "Asia/Oral": "KZ",
419
- "America/Boa_Vista": "BR",
420
- "Europe/Skopje": "MK",
421
- "America/Port-au-Prince": "HT",
422
- "Pacific/Port_Moresby": "PG",
423
- "Europe/Andorra": "AD",
424
- "America/Indiana/Marengo": "US",
425
- "Africa/Kigali": "RW",
426
- "Africa/Bamako": "ML",
427
- "America/Dominica": "DM",
428
- "Asia/Aqtobe": "KZ",
429
- "Europe/Istanbul": "TR",
430
- "Pacific/Rarotonga": "CK",
431
- "America/Danmarkshavn": "GL",
432
- "Europe/Zurich": "CH",
433
- "Asia/Yangon": "MM",
434
- "America/Monterrey": "MX",
435
- "Europe/Lisbon": "PT",
436
- "Asia/Kuching": "MY",
437
- "Antarctica/Rothera": "AQ",
438
- "Australia/Perth": "AU",
439
- "Asia/Phnom_Penh": "KH",
440
- "America/Swift_Current": "CA",
441
- "Asia/Aqtau": "KZ",
442
- "Asia/Urumqi": "CN",
443
- "Asia/Calcutta": "IN",
226
+ 'Europe/Andorra': 'AD',
227
+ 'Asia/Dubai': 'AE',
228
+ 'Asia/Kabul': 'AF',
229
+ 'America/Antigua': 'AG',
230
+ 'America/Anguilla': 'AI',
231
+ 'Europe/Tirane': 'AL',
232
+ 'Asia/Yerevan': 'AM',
233
+ 'Africa/Luanda': 'AO',
234
+ 'Antarctica/Casey': 'AQ',
235
+ 'Antarctica/Davis': 'AQ',
236
+ 'Antarctica/DumontDUrville': 'AQ',
237
+ 'Antarctica/Mawson': 'AQ',
238
+ 'Antarctica/McMurdo': 'AQ',
239
+ 'Antarctica/Palmer': 'AQ',
240
+ 'Antarctica/Rothera': 'AQ',
241
+ 'Antarctica/Syowa': 'AQ',
242
+ 'Antarctica/Troll': 'AQ',
243
+ 'Antarctica/Vostok': 'AQ',
244
+ 'America/Argentina/Buenos_Aires': 'AR',
245
+ 'America/Argentina/Catamarca': 'AR',
246
+ 'America/Argentina/Cordoba': 'AR',
247
+ 'America/Argentina/Jujuy': 'AR',
248
+ 'America/Argentina/La_Rioja': 'AR',
249
+ 'America/Argentina/Mendoza': 'AR',
250
+ 'America/Argentina/Rio_Gallegos': 'AR',
251
+ 'America/Argentina/Salta': 'AR',
252
+ 'America/Argentina/San_Juan': 'AR',
253
+ 'America/Argentina/San_Luis': 'AR',
254
+ 'America/Argentina/Tucuman': 'AR',
255
+ 'America/Argentina/Ushuaia': 'AR',
256
+ 'Pacific/Pago_Pago': 'AS',
257
+ 'Europe/Vienna': 'AT',
258
+ 'Australia/Adelaide': 'AU',
259
+ 'Australia/Brisbane': 'AU',
260
+ 'Australia/Broken_Hill': 'AU',
261
+ 'Australia/Darwin': 'AU',
262
+ 'Australia/Eucla': 'AU',
263
+ 'Australia/Hobart': 'AU',
264
+ 'Australia/Lindeman': 'AU',
265
+ 'Australia/Lord_Howe': 'AU',
266
+ 'Australia/Melbourne': 'AU',
267
+ 'Australia/Perth': 'AU',
268
+ 'Australia/Sydney': 'AU',
269
+ 'America/Aruba': 'AW',
270
+ 'Europe/Mariehamn': 'AX',
271
+ 'Asia/Baku': 'AZ',
272
+ 'Europe/Sarajevo': 'BA',
273
+ 'America/Barbados': 'BB',
274
+ 'Asia/Dhaka': 'BD',
275
+ 'Europe/Brussels': 'BE',
276
+ 'Africa/Ouagadougou': 'BF',
277
+ 'Europe/Sofia': 'BG',
278
+ 'Asia/Bahrain': 'BH',
279
+ 'Africa/Bujumbura': 'BI',
280
+ 'Africa/Porto-Novo': 'BJ',
281
+ 'America/St_Barthelemy': 'BL',
282
+ 'Atlantic/Bermuda': 'BM',
283
+ 'Asia/Brunei': 'BN',
284
+ 'America/La_Paz': 'BO',
285
+ 'America/Kralendijk': 'BQ',
286
+ 'America/Araguaina': 'BR',
287
+ 'America/Bahia': 'BR',
288
+ 'America/Belem': 'BR',
289
+ 'America/Boa_Vista': 'BR',
290
+ 'America/Campo_Grande': 'BR',
291
+ 'America/Cuiaba': 'BR',
292
+ 'America/Eirunepe': 'BR',
293
+ 'America/Fortaleza': 'BR',
294
+ 'America/Maceio': 'BR',
295
+ 'America/Manaus': 'BR',
296
+ 'America/Noronha': 'BR',
297
+ 'America/Porto_Velho': 'BR',
298
+ 'America/Recife': 'BR',
299
+ 'America/Rio_Branco': 'BR',
300
+ 'America/Santarem': 'BR',
301
+ 'America/Sao_Paulo': 'BR',
302
+ 'America/Nassau': 'BS',
303
+ 'Asia/Thimphu': 'BT',
304
+ 'Africa/Gaborone': 'BW',
305
+ 'Europe/Minsk': 'BY',
306
+ 'America/Belize': 'BZ',
307
+ 'America/Atikokan': 'CA',
308
+ 'America/Blanc-Sablon': 'CA',
309
+ 'America/Cambridge_Bay': 'CA',
310
+ 'America/Creston': 'CA',
311
+ 'America/Dawson': 'CA',
312
+ 'America/Dawson_Creek': 'CA',
313
+ 'America/Edmonton': 'CA',
314
+ 'America/Fort_Nelson': 'CA',
315
+ 'America/Glace_Bay': 'CA',
316
+ 'America/Goose_Bay': 'CA',
317
+ 'America/Halifax': 'CA',
318
+ 'America/Inuvik': 'CA',
319
+ 'America/Iqaluit': 'CA',
320
+ 'America/Moncton': 'CA',
321
+ 'America/Nipigon': 'CA',
322
+ 'America/Pangnirtung': 'CA',
323
+ 'America/Rainy_River': 'CA',
324
+ 'America/Rankin_Inlet': 'CA',
325
+ 'America/Regina': 'CA',
326
+ 'America/Resolute': 'CA',
327
+ 'America/St_Johns': 'CA',
328
+ 'America/Swift_Current': 'CA',
329
+ 'America/Thunder_Bay': 'CA',
330
+ 'America/Toronto': 'CA',
331
+ 'America/Vancouver': 'CA',
332
+ 'America/Whitehorse': 'CA',
333
+ 'America/Winnipeg': 'CA',
334
+ 'America/Yellowknife': 'CA',
335
+ 'Indian/Cocos': 'CC',
336
+ 'Africa/Kinshasa': 'CD',
337
+ 'Africa/Lubumbashi': 'CD',
338
+ 'Africa/Bangui': 'CF',
339
+ 'Africa/Brazzaville': 'CG',
340
+ 'Europe/Zurich': 'CH',
341
+ 'Africa/Abidjan': 'CI',
342
+ 'Pacific/Rarotonga': 'CK',
343
+ 'America/Punta_Arenas': 'CL',
344
+ 'America/Santiago': 'CL',
345
+ 'Pacific/Easter': 'CL',
346
+ 'Africa/Douala': 'CM',
347
+ 'Asia/Shanghai': 'CN',
348
+ 'Asia/Urumqi': 'CN',
349
+ 'America/Bogota': 'CO',
350
+ 'America/Costa_Rica': 'CR',
351
+ 'America/Havana': 'CU',
352
+ 'Atlantic/Cape_Verde': 'CV',
353
+ 'America/Curacao': 'CW',
354
+ 'Indian/Christmas': 'CX',
355
+ 'Asia/Famagusta': 'CY',
356
+ 'Asia/Nicosia': 'CY',
357
+ 'Europe/Prague': 'CZ',
358
+ 'Europe/Berlin': 'DE',
359
+ 'Europe/Busingen': 'DE',
360
+ 'Africa/Djibouti': 'DJ',
361
+ 'Europe/Copenhagen': 'DK',
362
+ 'America/Dominica': 'DM',
363
+ 'America/Santo_Domingo': 'DO',
364
+ 'Africa/Algiers': 'DZ',
365
+ 'America/Guayaquil': 'EC',
366
+ 'Pacific/Galapagos': 'EC',
367
+ 'Europe/Tallinn': 'EE',
368
+ 'Africa/Cairo': 'EG',
369
+ 'Africa/El_Aaiun': 'EH',
370
+ 'Africa/Asmara': 'ER',
371
+ 'Africa/Ceuta': 'ES',
372
+ 'Atlantic/Canary': 'ES',
373
+ 'Europe/Madrid': 'ES',
374
+ 'Africa/Addis_Ababa': 'ET',
375
+ 'Europe/Helsinki': 'FI',
376
+ 'Pacific/Fiji': 'FJ',
377
+ 'Atlantic/Stanley': 'FK',
378
+ 'Pacific/Chuuk': 'FM',
379
+ 'Pacific/Kosrae': 'FM',
380
+ 'Pacific/Pohnpei': 'FM',
381
+ 'Atlantic/Faroe': 'FO',
382
+ 'Europe/Paris': 'FR',
383
+ 'Africa/Libreville': 'GA',
384
+ 'Europe/London': 'GB',
385
+ 'America/Grenada': 'GD',
386
+ 'Asia/Tbilisi': 'GE',
387
+ 'America/Cayenne': 'GF',
388
+ 'Europe/Guernsey': 'GG',
389
+ 'Africa/Accra': 'GH',
390
+ 'Europe/Gibraltar': 'GI',
391
+ 'America/Danmarkshavn': 'GL',
392
+ 'America/Nuuk': 'GL',
393
+ 'America/Scoresbysund': 'GL',
394
+ 'America/Thule': 'GL',
395
+ 'Africa/Banjul': 'GM',
396
+ 'Africa/Conakry': 'GN',
397
+ 'America/Guadeloupe': 'GP',
398
+ 'Africa/Malabo': 'GQ',
399
+ 'Europe/Athens': 'GR',
400
+ 'Atlantic/South_Georgia': 'GS',
401
+ 'America/Guatemala': 'GT',
402
+ 'Pacific/Guam': 'GU',
403
+ 'Africa/Bissau': 'GW',
404
+ 'America/Guyana': 'GY',
405
+ 'Asia/Hong_Kong': 'HK',
406
+ 'America/Tegucigalpa': 'HN',
407
+ 'Europe/Zagreb': 'HR',
408
+ 'America/Port-au-Prince': 'HT',
409
+ 'Europe/Budapest': 'HU',
410
+ 'Asia/Jakarta': 'ID',
411
+ 'Asia/Jayapura': 'ID',
412
+ 'Asia/Makassar': 'ID',
413
+ 'Asia/Pontianak': 'ID',
414
+ 'Europe/Dublin': 'IE',
415
+ 'Asia/Jerusalem': 'IL',
416
+ 'Europe/Isle_of_Man': 'IM',
417
+ 'Asia/Kolkata': 'IN',
418
+ 'Indian/Chagos': 'IO',
419
+ 'Asia/Baghdad': 'IQ',
420
+ 'Asia/Tehran': 'IR',
421
+ 'Atlantic/Reykjavik': 'IS',
422
+ 'Europe/Rome': 'IT',
423
+ 'Europe/Jersey': 'JE',
424
+ 'America/Jamaica': 'JM',
425
+ 'Asia/Amman': 'JO',
426
+ 'Asia/Tokyo': 'JP',
427
+ 'Africa/Nairobi': 'KE',
428
+ 'Asia/Bishkek': 'KG',
429
+ 'Asia/Phnom_Penh': 'KH',
430
+ 'Pacific/Enderbury': 'KI',
431
+ 'Pacific/Kiritimati': 'KI',
432
+ 'Pacific/Tarawa': 'KI',
433
+ 'Indian/Comoro': 'KM',
434
+ 'America/St_Kitts': 'KN',
435
+ 'Asia/Pyongyang': 'KP',
436
+ 'Asia/Seoul': 'KR',
437
+ 'Asia/Kuwait': 'KW',
438
+ 'America/Cayman': 'KY',
439
+ 'Asia/Almaty': 'KZ',
440
+ 'Asia/Aqtau': 'KZ',
441
+ 'Asia/Aqtobe': 'KZ',
442
+ 'Asia/Atyrau': 'KZ',
443
+ 'Asia/Oral': 'KZ',
444
+ 'Asia/Qostanay': 'KZ',
445
+ 'Asia/Qyzylorda': 'KZ',
446
+ 'Asia/Vientiane': 'LA',
447
+ 'Asia/Beirut': 'LB',
448
+ 'America/St_Lucia': 'LC',
449
+ 'Europe/Vaduz': 'LI',
450
+ 'Asia/Colombo': 'LK',
451
+ 'Africa/Monrovia': 'LR',
452
+ 'Africa/Maseru': 'LS',
453
+ 'Europe/Vilnius': 'LT',
454
+ 'Europe/Luxembourg': 'LU',
455
+ 'Europe/Riga': 'LV',
456
+ 'Africa/Tripoli': 'LY',
457
+ 'Africa/Casablanca': 'MA',
458
+ 'Europe/Monaco': 'MC',
459
+ 'Europe/Chisinau': 'MD',
460
+ 'Europe/Podgorica': 'ME',
461
+ 'America/Marigot': 'MF',
462
+ 'Indian/Antananarivo': 'MG',
463
+ 'Pacific/Kwajalein': 'MH',
464
+ 'Pacific/Majuro': 'MH',
465
+ 'Europe/Skopje': 'MK',
466
+ 'Africa/Bamako': 'ML',
467
+ 'Asia/Yangon': 'MM',
468
+ 'Asia/Choibalsan': 'MN',
469
+ 'Asia/Hovd': 'MN',
470
+ 'Asia/Ulaanbaatar': 'MN',
471
+ 'Asia/Macau': 'MO',
472
+ 'Pacific/Saipan': 'MP',
473
+ 'America/Martinique': 'MQ',
474
+ 'Africa/Nouakchott': 'MR',
475
+ 'America/Montserrat': 'MS',
476
+ 'Europe/Malta': 'MT',
477
+ 'Indian/Mauritius': 'MU',
478
+ 'Indian/Maldives': 'MV',
479
+ 'Africa/Blantyre': 'MW',
480
+ 'America/Bahia_Banderas': 'MX',
481
+ 'America/Cancun': 'MX',
482
+ 'America/Chihuahua': 'MX',
483
+ 'America/Hermosillo': 'MX',
484
+ 'America/Matamoros': 'MX',
485
+ 'America/Mazatlan': 'MX',
486
+ 'America/Merida': 'MX',
487
+ 'America/Mexico_City': 'MX',
488
+ 'America/Monterrey': 'MX',
489
+ 'America/Ojinaga': 'MX',
490
+ 'America/Tijuana': 'MX',
491
+ 'Asia/Kuala_Lumpur': 'MY',
492
+ 'Asia/Kuching': 'MY',
493
+ 'Africa/Maputo': 'MZ',
494
+ 'Africa/Windhoek': 'NA',
495
+ 'Pacific/Noumea': 'NC',
496
+ 'Africa/Niamey': 'NE',
497
+ 'Pacific/Norfolk': 'NF',
498
+ 'Africa/Lagos': 'NG',
499
+ 'America/Managua': 'NI',
500
+ 'Europe/Amsterdam': 'NL',
501
+ 'Europe/Oslo': 'NO',
502
+ 'Asia/Kathmandu': 'NP',
503
+ 'Pacific/Nauru': 'NR',
504
+ 'Pacific/Niue': 'NU',
505
+ 'Pacific/Auckland': 'NZ',
506
+ 'Pacific/Chatham': 'NZ',
507
+ 'Asia/Muscat': 'OM',
508
+ 'America/Panama': 'PA',
509
+ 'America/Lima': 'PE',
510
+ 'Pacific/Gambier': 'PF',
511
+ 'Pacific/Marquesas': 'PF',
512
+ 'Pacific/Tahiti': 'PF',
513
+ 'Pacific/Bougainville': 'PG',
514
+ 'Pacific/Port_Moresby': 'PG',
515
+ 'Asia/Manila': 'PH',
516
+ 'Asia/Karachi': 'PK',
517
+ 'Europe/Warsaw': 'PL',
518
+ 'America/Miquelon': 'PM',
519
+ 'Pacific/Pitcairn': 'PN',
520
+ 'America/Puerto_Rico': 'PR',
521
+ 'Asia/Gaza': 'PS',
522
+ 'Asia/Hebron': 'PS',
523
+ 'Atlantic/Azores': 'PT',
524
+ 'Atlantic/Madeira': 'PT',
525
+ 'Europe/Lisbon': 'PT',
526
+ 'Pacific/Palau': 'PW',
527
+ 'America/Asuncion': 'PY',
528
+ 'Asia/Qatar': 'QA',
529
+ 'Indian/Reunion': 'RE',
530
+ 'Europe/Bucharest': 'RO',
531
+ 'Europe/Belgrade': 'RS',
532
+ 'Asia/Anadyr': 'RU',
533
+ 'Asia/Barnaul': 'RU',
534
+ 'Asia/Chita': 'RU',
535
+ 'Asia/Irkutsk': 'RU',
536
+ 'Asia/Kamchatka': 'RU',
537
+ 'Asia/Khandyga': 'RU',
538
+ 'Asia/Krasnoyarsk': 'RU',
539
+ 'Asia/Magadan': 'RU',
540
+ 'Asia/Novokuznetsk': 'RU',
541
+ 'Asia/Novosibirsk': 'RU',
542
+ 'Asia/Omsk': 'RU',
543
+ 'Asia/Sakhalin': 'RU',
544
+ 'Asia/Srednekolymsk': 'RU',
545
+ 'Asia/Tomsk': 'RU',
546
+ 'Asia/Ust-Nera': 'RU',
547
+ 'Asia/Vladivostok': 'RU',
548
+ 'Asia/Yakutsk': 'RU',
549
+ 'Asia/Yekaterinburg': 'RU',
550
+ 'Europe/Astrakhan': 'RU',
551
+ 'Europe/Kaliningrad': 'RU',
552
+ 'Europe/Kirov': 'RU',
553
+ 'Europe/Moscow': 'RU',
554
+ 'Europe/Samara': 'RU',
555
+ 'Europe/Saratov': 'RU',
556
+ 'Europe/Ulyanovsk': 'RU',
557
+ 'Europe/Volgograd': 'RU',
558
+ 'Africa/Kigali': 'RW',
559
+ 'Asia/Riyadh': 'SA',
560
+ 'Pacific/Guadalcanal': 'SB',
561
+ 'Indian/Mahe': 'SC',
562
+ 'Africa/Khartoum': 'SD',
563
+ 'Europe/Stockholm': 'SE',
564
+ 'Asia/Singapore': 'SG',
565
+ 'Atlantic/St_Helena': 'SH',
566
+ 'Europe/Ljubljana': 'SI',
567
+ 'Arctic/Longyearbyen': 'SJ',
568
+ 'Europe/Bratislava': 'SK',
569
+ 'Africa/Freetown': 'SL',
570
+ 'Europe/San_Marino': 'SM',
571
+ 'Africa/Dakar': 'SN',
572
+ 'Africa/Mogadishu': 'SO',
573
+ 'America/Paramaribo': 'SR',
574
+ 'Africa/Juba': 'SS',
575
+ 'Africa/Sao_Tome': 'ST',
576
+ 'America/El_Salvador': 'SV',
577
+ 'America/Lower_Princes': 'SX',
578
+ 'Asia/Damascus': 'SY',
579
+ 'Africa/Mbabane': 'SZ',
580
+ 'America/Grand_Turk': 'TC',
581
+ 'Africa/Ndjamena': 'TD',
582
+ 'Indian/Kerguelen': 'TF',
583
+ 'Africa/Lome': 'TG',
584
+ 'Asia/Bangkok': 'TH',
585
+ 'Asia/Dushanbe': 'TJ',
586
+ 'Pacific/Fakaofo': 'TK',
587
+ 'Asia/Dili': 'TL',
588
+ 'Asia/Ashgabat': 'TM',
589
+ 'Africa/Tunis': 'TN',
590
+ 'Pacific/Tongatapu': 'TO',
591
+ 'Europe/Istanbul': 'TR',
592
+ 'America/Port_of_Spain': 'TT',
593
+ 'Pacific/Funafuti': 'TV',
594
+ 'Asia/Taipei': 'TW',
595
+ 'Africa/Dar_es_Salaam': 'TZ',
596
+ 'Europe/Kiev': 'UA',
597
+ 'Europe/Simferopol': 'UA',
598
+ 'Europe/Uzhgorod': 'UA',
599
+ 'Europe/Zaporozhye': 'UA',
600
+ 'Africa/Kampala': 'UG',
601
+ 'Pacific/Midway': 'UM',
602
+ 'Pacific/Wake': 'UM',
603
+ 'America/Adak': 'US',
604
+ 'America/Anchorage': 'US',
605
+ 'America/Boise': 'US',
606
+ 'America/Chicago': 'US',
607
+ 'America/Denver': 'US',
608
+ 'America/Detroit': 'US',
609
+ 'America/Indiana/Indianapolis': 'US',
610
+ 'America/Indiana/Knox': 'US',
611
+ 'America/Indiana/Marengo': 'US',
612
+ 'America/Indiana/Petersburg': 'US',
613
+ 'America/Indiana/Tell_City': 'US',
614
+ 'America/Indiana/Vevay': 'US',
615
+ 'America/Indiana/Vincennes': 'US',
616
+ 'America/Indiana/Winamac': 'US',
617
+ 'America/Juneau': 'US',
618
+ 'America/Kentucky/Louisville': 'US',
619
+ 'America/Kentucky/Monticello': 'US',
620
+ 'America/Los_Angeles': 'US',
621
+ 'America/Menominee': 'US',
622
+ 'America/Metlakatla': 'US',
623
+ 'America/New_York': 'US',
624
+ 'America/Nome': 'US',
625
+ 'America/North_Dakota/Beulah': 'US',
626
+ 'America/North_Dakota/Center': 'US',
627
+ 'America/North_Dakota/New_Salem': 'US',
628
+ 'America/Phoenix': 'US',
629
+ 'America/Sitka': 'US',
630
+ 'America/Yakutat': 'US',
631
+ 'Pacific/Honolulu': 'US',
632
+ 'America/Montevideo': 'UY',
633
+ 'Asia/Samarkand': 'UZ',
634
+ 'Asia/Tashkent': 'UZ',
635
+ 'Europe/Vatican': 'VA',
636
+ 'America/St_Vincent': 'VC',
637
+ 'America/Caracas': 'VE',
638
+ 'America/Tortola': 'VG',
639
+ 'America/St_Thomas': 'VI',
640
+ 'Asia/Ho_Chi_Minh': 'VN',
641
+ 'Pacific/Efate': 'VU',
642
+ 'Pacific/Wallis': 'WF',
643
+ 'Pacific/Apia': 'WS',
644
+ 'Asia/Aden': 'YE',
645
+ 'Indian/Mayotte': 'YT',
646
+ 'Africa/Johannesburg': 'ZA',
647
+ 'Africa/Lusaka': 'ZM',
648
+ 'Africa/Harare': 'ZW',
444
649
  };