diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-15 18:22:53 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-15 18:22:53 +0000 |
commit | 3b149631f0eb732049e04fa0c89d09c7aa2376f9 (patch) | |
tree | 7049356b06fcdcdaf9dbae476f55a43942e7c25f /timezone | |
parent | Initial commit. (diff) | |
download | geoip-3b149631f0eb732049e04fa0c89d09c7aa2376f9.tar.xz geoip-3b149631f0eb732049e04fa0c89d09c7aa2376f9.zip |
Adding upstream version 1.6.12.upstream/1.6.12upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'timezone')
-rwxr-xr-x | timezone/generate_timeZone.pl | 75 | ||||
-rw-r--r-- | timezone/timezone.txt | 717 |
2 files changed, 792 insertions, 0 deletions
diff --git a/timezone/generate_timeZone.pl b/timezone/generate_timeZone.pl new file mode 100755 index 0000000..8c4c742 --- /dev/null +++ b/timezone/generate_timeZone.pl @@ -0,0 +1,75 @@ +#!/usr/bin/perl +use strict; +use warnings; +use autodie; + +use Text::CSV_XS (); + +# Obtain timezone.txt from http://www.maxmind.com/timezone.txt + +# Used to generate timeZone.c +# usage: ./generate_timeZone.pl > ../libGeoIP/timeZone.c + +my $tz; + +open my $fh, '<:encoding(latin1)', 'timezone.txt'; + +my $csv = Text::CSV_XS->new( { binary => 1, auto_diag => 1 } ); + +print "#include <string.h> \n"; +print + "const char* GeoIP_time_zone_by_country_and_region(const char * country,const char * region) {\n"; +print " const char* timezone = NULL;\n"; +print " if (country == NULL) {\n"; +print " return NULL;\n"; +print " }\n"; +print " if (region == NULL) {\n"; +print ' region = "";', "\n"; +print " }\n"; + +<$fh>; # skip first line +while ( my $row = $csv->getline($fh) ) { + my ( $country, $region, $timezone ) = @{$row}; + die "$_ $.\n" unless $timezone; + $tz->{$country}->{ $region || q{} } = $timezone; +} + +my $first_country; + +$first_country = 0; +for my $c ( sort keys %$tz ) { + print(' if'); + $first_country ||= $c; + my $def = delete $tz->{$c}->{q{}}; + if ( my @reg = sort keys %{ $tz->{$c} } ) { + my @tz = map { $tz->{$c}->{$_} } @reg; + + printf( qq! ( strcmp (country, "%s") == 0 ) {\n!, $c ); + for ( 0 .. $#reg ) { + + # have regions + + print( ( $_ == 0 ) ? ' if' : ' else if' ); + printf( qq! ( strcmp (region, "%s") == 0 ) {\n!, $reg[$_] ); + printf( qq! return "%s";\n!, $tz[$_] ); + printf(qq! }\n!); + } + if ( defined $def ) { + printf( qq! else { return "%s"; }\n!, $def ); + } + else { + print " else {\n return NULL;\n }\n"; + } + print qq[ }\n]; + } + else { + + # only default tz + printf( qq! ( strcmp (country, "%s") == 0 ) {\n!, $c ); + printf( qq! return "%s";\n!, $def ); + printf(qq! }\n!); + + } +} + +print qq[ return timezone;\n}\n]; diff --git a/timezone/timezone.txt b/timezone/timezone.txt new file mode 100644 index 0000000..e35c760 --- /dev/null +++ b/timezone/timezone.txt @@ -0,0 +1,717 @@ +"country","region","timezone" +AD,,"Europe/Andorra" +AE,,"Asia/Dubai" +AF,,"Asia/Kabul" +AG,,"America/Antigua" +AI,,"America/Anguilla" +AL,,"Europe/Tirane" +AM,,"Asia/Yerevan" +AN,,"America/Curacao" +AO,,"Africa/Luanda" +AQ,,"Antarctica/South_Pole" +AR,01,"America/Argentina/Buenos_Aires" +AR,02,"America/Argentina/Catamarca" +AR,03,"America/Argentina/Tucuman" +AR,04,"America/Argentina/Rio_Gallegos" +AR,05,"America/Argentina/Cordoba" +AR,06,"America/Argentina/Tucuman" +AR,07,"America/Argentina/Buenos_Aires" +AR,08,"America/Argentina/Buenos_Aires" +AR,09,"America/Argentina/Tucuman" +AR,10,"America/Argentina/Jujuy" +AR,11,"America/Argentina/San_Luis" +AR,12,"America/Argentina/La_Rioja" +AR,13,"America/Argentina/Mendoza" +AR,14,"America/Argentina/Buenos_Aires" +AR,15,"America/Argentina/San_Luis" +AR,16,"America/Argentina/Buenos_Aires" +AR,17,"America/Argentina/Salta" +AR,18,"America/Argentina/San_Juan" +AR,19,"America/Argentina/San_Luis" +AR,20,"America/Argentina/Rio_Gallegos" +AR,21,"America/Argentina/Buenos_Aires" +AR,22,"America/Argentina/Catamarca" +AR,23,"America/Argentina/Ushuaia" +AR,24,"America/Argentina/Tucuman" +AS,,"Pacific/Pago_Pago" +AT,,"Europe/Vienna" +AU,01,"Australia/Sydney" +AU,02,"Australia/Sydney" +AU,03,"Australia/Darwin" +AU,04,"Australia/Brisbane" +AU,05,"Australia/Adelaide" +AU,06,"Australia/Hobart" +AU,07,"Australia/Melbourne" +AU,08,"Australia/Perth" +AW,,"America/Aruba" +AX,,"Europe/Mariehamn" +AZ,,"Asia/Baku" +BA,,"Europe/Sarajevo" +BB,,"America/Barbados" +BD,,"Asia/Dhaka" +BE,,"Europe/Brussels" +BF,,"Africa/Ouagadougou" +BG,,"Europe/Sofia" +BH,,"Asia/Bahrain" +BI,,"Africa/Bujumbura" +BJ,,"Africa/Porto-Novo" +BL,,"America/St_Barthelemy" +BM,,"Atlantic/Bermuda" +BN,,"Asia/Brunei" +BO,,"America/La_Paz" +BQ,,"America/Curacao" +BR,01,"America/Rio_Branco" +BR,02,"America/Maceio" +BR,03,"America/Sao_Paulo" +BR,04,"America/Manaus" +BR,05,"America/Bahia" +BR,06,"America/Fortaleza" +BR,07,"America/Sao_Paulo" +BR,08,"America/Sao_Paulo" +BR,11,"America/Campo_Grande" +BR,13,"America/Belem" +BR,14,"America/Cuiaba" +BR,15,"America/Sao_Paulo" +BR,16,"America/Belem" +BR,17,"America/Recife" +BR,18,"America/Sao_Paulo" +BR,20,"America/Fortaleza" +BR,21,"America/Sao_Paulo" +BR,22,"America/Recife" +BR,23,"America/Sao_Paulo" +BR,24,"America/Porto_Velho" +BR,25,"America/Boa_Vista" +BR,26,"America/Sao_Paulo" +BR,27,"America/Sao_Paulo" +BR,28,"America/Maceio" +BR,29,"America/Sao_Paulo" +BR,30,"America/Recife" +BR,31,"America/Araguaina" +BS,,"America/Nassau" +BT,,"Asia/Thimphu" +BV,,"Antarctica/Syowa" +BW,,"Africa/Gaborone" +BY,,"Europe/Minsk" +BZ,,"America/Belize" +CA,AB,"America/Edmonton" +CA,BC,"America/Vancouver" +CA,MB,"America/Winnipeg" +CA,NB,"America/Halifax" +CA,NL,"America/St_Johns" +CA,NS,"America/Halifax" +CA,NT,"America/Yellowknife" +CA,NU,"America/Rankin_Inlet" +CA,ON,"America/Toronto" +CA,PE,"America/Halifax" +CA,QC,"America/Montreal" +CA,SK,"America/Regina" +CA,YT,"America/Whitehorse" +CC,,"Indian/Cocos" +CD,01,"Africa/Kinshasa" +CD,02,"Africa/Kinshasa" +CD,03,"Africa/Kinshasa" +CD,04,"Africa/Lubumbashi" +CD,05,"Africa/Lubumbashi" +CD,06,"Africa/Kinshasa" +CD,07,"Africa/Lubumbashi" +CD,08,"Africa/Kinshasa" +CD,09,"Africa/Lubumbashi" +CD,10,"Africa/Lubumbashi" +CD,11,"Africa/Lubumbashi" +CD,12,"Africa/Lubumbashi" +CF,,"Africa/Bangui" +CG,,"Africa/Brazzaville" +CH,,"Europe/Zurich" +CI,,"Africa/Abidjan" +CK,,"Pacific/Rarotonga" +CL,,"America/Santiago" +CM,,"Africa/Lagos" +CN,01,"Asia/Shanghai" +CN,02,"Asia/Shanghai" +CN,03,"Asia/Shanghai" +CN,04,"Asia/Shanghai" +CN,05,"Asia/Harbin" +CN,06,"Asia/Chongqing" +CN,07,"Asia/Shanghai" +CN,08,"Asia/Harbin" +CN,09,"Asia/Shanghai" +CN,10,"Asia/Shanghai" +CN,11,"Asia/Chongqing" +CN,12,"Asia/Shanghai" +CN,13,"Asia/Urumqi" +CN,14,"Asia/Chongqing" +CN,15,"Asia/Chongqing" +CN,16,"Asia/Chongqing" +CN,18,"Asia/Chongqing" +CN,19,"Asia/Harbin" +CN,20,"Asia/Harbin" +CN,21,"Asia/Chongqing" +CN,22,"Asia/Harbin" +CN,23,"Asia/Shanghai" +CN,24,"Asia/Chongqing" +CN,25,"Asia/Shanghai" +CN,26,"Asia/Chongqing" +CN,28,"Asia/Shanghai" +CN,29,"Asia/Chongqing" +CN,30,"Asia/Chongqing" +CN,31,"Asia/Chongqing" +CN,32,"Asia/Chongqing" +CN,33,"Asia/Chongqing" +CO,,"America/Bogota" +CR,,"America/Costa_Rica" +CU,,"America/Havana" +CV,,"Atlantic/Cape_Verde" +CW,,"America/Curacao" +CX,,"Indian/Christmas" +CY,,"Asia/Nicosia" +CZ,,"Europe/Prague" +DE,,"Europe/Berlin" +DJ,,"Africa/Djibouti" +DK,,"Europe/Copenhagen" +DM,,"America/Dominica" +DO,,"America/Santo_Domingo" +DZ,,"Africa/Algiers" +EC,01,"Pacific/Galapagos" +EC,02,"America/Guayaquil" +EC,03,"America/Guayaquil" +EC,04,"America/Guayaquil" +EC,05,"America/Guayaquil" +EC,06,"America/Guayaquil" +EC,07,"America/Guayaquil" +EC,08,"America/Guayaquil" +EC,09,"America/Guayaquil" +EC,10,"America/Guayaquil" +EC,11,"America/Guayaquil" +EC,12,"America/Guayaquil" +EC,13,"America/Guayaquil" +EC,14,"America/Guayaquil" +EC,15,"America/Guayaquil" +EC,17,"America/Guayaquil" +EC,18,"America/Guayaquil" +EC,19,"America/Guayaquil" +EC,20,"America/Guayaquil" +EC,22,"America/Guayaquil" +EC,24,"America/Guayaquil" +EE,,"Europe/Tallinn" +EG,,"Africa/Cairo" +EH,,"Africa/El_Aaiun" +ER,,"Africa/Asmara" +ES,07,"Europe/Madrid" +ES,27,"Europe/Madrid" +ES,29,"Europe/Madrid" +ES,31,"Europe/Madrid" +ES,32,"Europe/Madrid" +ES,34,"Europe/Madrid" +ES,39,"Europe/Madrid" +ES,51,"Africa/Ceuta" +ES,52,"Europe/Madrid" +ES,53,"Atlantic/Canary" +ES,54,"Europe/Madrid" +ES,55,"Europe/Madrid" +ES,56,"Europe/Madrid" +ES,57,"Europe/Madrid" +ES,58,"Europe/Madrid" +ES,59,"Europe/Madrid" +ES,60,"Europe/Madrid" +ET,,"Africa/Addis_Ababa" +FI,,"Europe/Helsinki" +FJ,,"Pacific/Fiji" +FK,,"Atlantic/Stanley" +FM,,"Pacific/Pohnpei" +FO,,"Atlantic/Faroe" +FR,,"Europe/Paris" +FX,,"Europe/Paris" +GA,,"Africa/Libreville" +GB,,"Europe/London" +GD,,"America/Grenada" +GE,,"Asia/Tbilisi" +GF,,"America/Cayenne" +GG,,"Europe/Guernsey" +GH,,"Africa/Accra" +GI,,"Europe/Gibraltar" +GL,01,"America/Thule" +GL,02,"America/Godthab" +GL,03,"America/Godthab" +GM,,"Africa/Banjul" +GN,,"Africa/Conakry" +GP,,"America/Guadeloupe" +GQ,,"Africa/Malabo" +GR,,"Europe/Athens" +GS,,"Atlantic/South_Georgia" +GT,,"America/Guatemala" +GU,,"Pacific/Guam" +GW,,"Africa/Bissau" +GY,,"America/Guyana" +HK,,"Asia/Hong_Kong" +HN,,"America/Tegucigalpa" +HR,,"Europe/Zagreb" +HT,,"America/Port-au-Prince" +HU,,"Europe/Budapest" +ID,01,"Asia/Pontianak" +ID,02,"Asia/Makassar" +ID,03,"Asia/Jakarta" +ID,04,"Asia/Jakarta" +ID,05,"Asia/Jakarta" +ID,06,"Asia/Jakarta" +ID,07,"Asia/Jakarta" +ID,08,"Asia/Jakarta" +ID,09,"Asia/Jayapura" +ID,10,"Asia/Jakarta" +ID,11,"Asia/Pontianak" +ID,12,"Asia/Makassar" +ID,13,"Asia/Makassar" +ID,14,"Asia/Makassar" +ID,15,"Asia/Jakarta" +ID,16,"Asia/Makassar" +ID,17,"Asia/Makassar" +ID,18,"Asia/Makassar" +ID,19,"Asia/Pontianak" +ID,20,"Asia/Makassar" +ID,21,"Asia/Makassar" +ID,22,"Asia/Makassar" +ID,23,"Asia/Makassar" +ID,24,"Asia/Jakarta" +ID,25,"Asia/Pontianak" +ID,26,"Asia/Pontianak" +ID,28,"Asia/Jayapura" +ID,29,"Asia/Makassar" +ID,30,"Asia/Jakarta" +ID,31,"Asia/Makassar" +ID,32,"Asia/Jakarta" +ID,33,"Asia/Jakarta" +ID,34,"Asia/Makassar" +ID,35,"Asia/Pontianak" +ID,36,"Asia/Jayapura" +ID,37,"Asia/Pontianak" +ID,38,"Asia/Makassar" +ID,39,"Asia/Jayapura" +ID,40,"Asia/Pontianak" +ID,41,"Asia/Makassar" +IE,,"Europe/Dublin" +IL,,"Asia/Jerusalem" +IM,,"Europe/Isle_of_Man" +IN,,"Asia/Kolkata" +IO,,"Indian/Chagos" +IQ,,"Asia/Baghdad" +IR,,"Asia/Tehran" +IS,,"Atlantic/Reykjavik" +IT,,"Europe/Rome" +JE,,"Europe/Jersey" +JM,,"America/Jamaica" +JO,,"Asia/Amman" +JP,,"Asia/Tokyo" +KE,,"Africa/Nairobi" +KG,,"Asia/Bishkek" +KH,,"Asia/Phnom_Penh" +KI,,"Pacific/Tarawa" +KM,,"Indian/Comoro" +KN,,"America/St_Kitts" +KP,,"Asia/Pyongyang" +KR,,"Asia/Seoul" +KW,,"Asia/Kuwait" +KY,,"America/Cayman" +KZ,01,"Asia/Almaty" +KZ,02,"Asia/Almaty" +KZ,03,"Asia/Qyzylorda" +KZ,04,"Asia/Aqtobe" +KZ,05,"Asia/Qyzylorda" +KZ,06,"Asia/Aqtau" +KZ,07,"Asia/Oral" +KZ,08,"Asia/Qyzylorda" +KZ,09,"Asia/Aqtau" +KZ,10,"Asia/Qyzylorda" +KZ,11,"Asia/Almaty" +KZ,12,"Asia/Qyzylorda" +KZ,13,"Asia/Aqtobe" +KZ,14,"Asia/Qyzylorda" +KZ,15,"Asia/Almaty" +KZ,16,"Asia/Aqtobe" +KZ,17,"Asia/Almaty" +LA,,"Asia/Vientiane" +LB,,"Asia/Beirut" +LC,,"America/St_Lucia" +LI,,"Europe/Vaduz" +LK,,"Asia/Colombo" +LR,,"Africa/Monrovia" +LS,,"Africa/Maseru" +LT,,"Europe/Vilnius" +LU,,"Europe/Luxembourg" +LV,,"Europe/Riga" +LY,,"Africa/Tripoli" +MA,,"Africa/Casablanca" +MC,,"Europe/Monaco" +MD,,"Europe/Chisinau" +ME,,"Europe/Podgorica" +MF,,"America/Marigot" +MG,,"Indian/Antananarivo" +MH,,"Pacific/Kwajalein" +MK,,"Europe/Skopje" +ML,,"Africa/Bamako" +MM,,"Asia/Rangoon" +MN,06,"Asia/Choibalsan" +MN,11,"Asia/Ulaanbaatar" +MN,17,"Asia/Choibalsan" +MN,19,"Asia/Hovd" +MN,20,"Asia/Ulaanbaatar" +MN,21,"Asia/Ulaanbaatar" +MN,25,"Asia/Ulaanbaatar" +MO,,"Asia/Macau" +MP,,"Pacific/Saipan" +MQ,,"America/Martinique" +MR,,"Africa/Nouakchott" +MS,,"America/Montserrat" +MT,,"Europe/Malta" +MU,,"Indian/Mauritius" +MV,,"Indian/Maldives" +MW,,"Africa/Blantyre" +MX,01,"America/Mexico_City" +MX,02,"America/Tijuana" +MX,03,"America/Hermosillo" +MX,04,"America/Merida" +MX,05,"America/Mexico_City" +MX,06,"America/Chihuahua" +MX,07,"America/Monterrey" +MX,08,"America/Mexico_City" +MX,09,"America/Mexico_City" +MX,10,"America/Mazatlan" +MX,11,"America/Mexico_City" +MX,12,"America/Mexico_City" +MX,13,"America/Mexico_City" +MX,14,"America/Mazatlan" +MX,15,"America/Chihuahua" +MX,16,"America/Mexico_City" +MX,17,"America/Mexico_City" +MX,18,"America/Mazatlan" +MX,19,"America/Monterrey" +MX,20,"America/Mexico_City" +MX,21,"America/Mexico_City" +MX,22,"America/Mexico_City" +MX,23,"America/Cancun" +MX,24,"America/Mexico_City" +MX,25,"America/Mazatlan" +MX,26,"America/Hermosillo" +MX,27,"America/Merida" +MX,28,"America/Monterrey" +MX,29,"America/Mexico_City" +MX,30,"America/Mexico_City" +MX,31,"America/Merida" +MX,32,"America/Monterrey" +MY,01,"Asia/Kuala_Lumpur" +MY,02,"Asia/Kuala_Lumpur" +MY,03,"Asia/Kuala_Lumpur" +MY,04,"Asia/Kuala_Lumpur" +MY,05,"Asia/Kuala_Lumpur" +MY,06,"Asia/Kuala_Lumpur" +MY,07,"Asia/Kuala_Lumpur" +MY,08,"Asia/Kuala_Lumpur" +MY,09,"Asia/Kuala_Lumpur" +MY,11,"Asia/Kuching" +MY,12,"Asia/Kuala_Lumpur" +MY,13,"Asia/Kuala_Lumpur" +MY,14,"Asia/Kuala_Lumpur" +MY,15,"Asia/Kuching" +MY,16,"Asia/Kuching" +MZ,,"Africa/Maputo" +NA,,"Africa/Windhoek" +NC,,"Pacific/Noumea" +NE,,"Africa/Niamey" +NF,,"Pacific/Norfolk" +NG,,"Africa/Lagos" +NI,,"America/Managua" +NL,,"Europe/Amsterdam" +NO,,"Europe/Oslo" +NP,,"Asia/Kathmandu" +NR,,"Pacific/Nauru" +NU,,"Pacific/Niue" +NZ,85,"Pacific/Auckland" +NZ,E7,"Pacific/Auckland" +NZ,E8,"Pacific/Auckland" +NZ,E9,"Pacific/Auckland" +NZ,F1,"Pacific/Auckland" +NZ,F2,"Pacific/Auckland" +NZ,F3,"Pacific/Auckland" +NZ,F4,"Pacific/Auckland" +NZ,F5,"Pacific/Auckland" +NZ,F6,"Pacific/Auckland" +NZ,F7,"Pacific/Chatham" +NZ,F8,"Pacific/Auckland" +NZ,F9,"Pacific/Auckland" +NZ,G1,"Pacific/Auckland" +NZ,G2,"Pacific/Auckland" +NZ,G3,"Pacific/Auckland" +OM,,"Asia/Muscat" +PA,,"America/Panama" +PE,,"America/Lima" +PF,,"Pacific/Marquesas" +PG,,"Pacific/Port_Moresby" +PH,,"Asia/Manila" +PK,,"Asia/Karachi" +PL,,"Europe/Warsaw" +PM,,"America/Miquelon" +PN,,"Pacific/Pitcairn" +PR,,"America/Puerto_Rico" +PS,,"Asia/Gaza" +PT,02,"Europe/Lisbon" +PT,03,"Europe/Lisbon" +PT,04,"Europe/Lisbon" +PT,05,"Europe/Lisbon" +PT,06,"Europe/Lisbon" +PT,07,"Europe/Lisbon" +PT,08,"Europe/Lisbon" +PT,09,"Europe/Lisbon" +PT,10,"Atlantic/Madeira" +PT,11,"Europe/Lisbon" +PT,13,"Europe/Lisbon" +PT,14,"Europe/Lisbon" +PT,16,"Europe/Lisbon" +PT,17,"Europe/Lisbon" +PT,18,"Europe/Lisbon" +PT,19,"Europe/Lisbon" +PT,20,"Europe/Lisbon" +PT,21,"Europe/Lisbon" +PT,22,"Europe/Lisbon" +PT,23,"Atlantic/Azores" +PW,,"Pacific/Palau" +PY,,"America/Asuncion" +QA,,"Asia/Qatar" +RE,,"Indian/Reunion" +RO,,"Europe/Bucharest" +RS,,"Europe/Belgrade" +RU,01,"Europe/Volgograd" +RU,02,"Asia/Irkutsk" +RU,03,"Asia/Novokuznetsk" +RU,04,"Asia/Novosibirsk" +RU,05,"Asia/Vladivostok" +RU,06,"Europe/Moscow" +RU,07,"Europe/Volgograd" +RU,08,"Europe/Samara" +RU,09,"Europe/Moscow" +RU,10,"Europe/Moscow" +RU,11,"Asia/Irkutsk" +RU,12,"Europe/Volgograd" +RU,13,"Asia/Yekaterinburg" +RU,14,"Asia/Irkutsk" +RU,15,"Asia/Anadyr" +RU,16,"Europe/Samara" +RU,17,"Europe/Volgograd" +RU,18,"Asia/Krasnoyarsk" +RU,20,"Asia/Irkutsk" +RU,21,"Europe/Moscow" +RU,22,"Europe/Volgograd" +RU,23,"Europe/Kaliningrad" +RU,24,"Europe/Volgograd" +RU,25,"Europe/Moscow" +RU,26,"Asia/Kamchatka" +RU,27,"Europe/Volgograd" +RU,28,"Europe/Moscow" +RU,29,"Asia/Novokuznetsk" +RU,30,"Asia/Vladivostok" +RU,31,"Asia/Krasnoyarsk" +RU,32,"Asia/Omsk" +RU,33,"Asia/Yekaterinburg" +RU,34,"Asia/Yekaterinburg" +RU,35,"Asia/Yekaterinburg" +RU,36,"Asia/Anadyr" +RU,37,"Europe/Moscow" +RU,38,"Europe/Volgograd" +RU,39,"Asia/Krasnoyarsk" +RU,40,"Asia/Yekaterinburg" +RU,41,"Europe/Moscow" +RU,42,"Europe/Moscow" +RU,43,"Europe/Moscow" +RU,44,"Asia/Magadan" +RU,45,"Europe/Samara" +RU,46,"Europe/Samara" +RU,47,"Europe/Moscow" +RU,48,"Europe/Moscow" +RU,49,"Europe/Moscow" +RU,50,"Asia/Yekaterinburg" +RU,51,"Europe/Moscow" +RU,52,"Europe/Moscow" +RU,53,"Asia/Novosibirsk" +RU,54,"Asia/Omsk" +RU,55,"Europe/Samara" +RU,56,"Europe/Moscow" +RU,57,"Europe/Samara" +RU,58,"Asia/Yekaterinburg" +RU,59,"Asia/Vladivostok" +RU,60,"Europe/Kaliningrad" +RU,61,"Europe/Volgograd" +RU,62,"Europe/Moscow" +RU,63,"Asia/Yakutsk" +RU,64,"Asia/Sakhalin" +RU,65,"Europe/Samara" +RU,66,"Europe/Moscow" +RU,67,"Europe/Samara" +RU,68,"Europe/Volgograd" +RU,69,"Europe/Moscow" +RU,70,"Europe/Volgograd" +RU,71,"Asia/Yekaterinburg" +RU,72,"Europe/Moscow" +RU,73,"Europe/Samara" +RU,74,"Asia/Krasnoyarsk" +RU,75,"Asia/Novosibirsk" +RU,76,"Europe/Moscow" +RU,77,"Europe/Moscow" +RU,78,"Asia/Yekaterinburg" +RU,79,"Asia/Irkutsk" +RU,80,"Asia/Yekaterinburg" +RU,81,"Europe/Samara" +RU,82,"Asia/Irkutsk" +RU,83,"Europe/Moscow" +RU,84,"Europe/Volgograd" +RU,85,"Europe/Moscow" +RU,86,"Europe/Moscow" +RU,87,"Asia/Novosibirsk" +RU,88,"Europe/Moscow" +RU,89,"Asia/Vladivostok" +RU,90,"Asia/Yekaterinburg" +RU,91,"Asia/Krasnoyarsk" +RU,92,"Asia/Anadyr" +RU,93,"Asia/Irkutsk" +RW,,"Africa/Kigali" +SA,,"Asia/Riyadh" +SB,,"Pacific/Guadalcanal" +SC,,"Indian/Mahe" +SD,,"Africa/Khartoum" +SE,,"Europe/Stockholm" +SG,,"Asia/Singapore" +SH,,"Atlantic/St_Helena" +SI,,"Europe/Ljubljana" +SJ,,"Arctic/Longyearbyen" +SK,,"Europe/Bratislava" +SL,,"Africa/Freetown" +SM,,"Europe/San_Marino" +SN,,"Africa/Dakar" +SO,,"Africa/Mogadishu" +SR,,"America/Paramaribo" +SS,,"Africa/Juba" +ST,,"Africa/Sao_Tome" +SV,,"America/El_Salvador" +SX,,"America/Curacao" +SY,,"Asia/Damascus" +SZ,,"Africa/Mbabane" +TC,,"America/Grand_Turk" +TD,,"Africa/Ndjamena" +TF,,"Indian/Kerguelen" +TG,,"Africa/Lome" +TH,,"Asia/Bangkok" +TJ,,"Asia/Dushanbe" +TK,,"Pacific/Fakaofo" +TL,,"Asia/Dili" +TM,,"Asia/Ashgabat" +TN,,"Africa/Tunis" +TO,,"Pacific/Tongatapu" +TR,,"Asia/Istanbul" +TT,,"America/Port_of_Spain" +TV,,"Pacific/Funafuti" +TW,,"Asia/Taipei" +TZ,,"Africa/Dar_es_Salaam" +UA,01,"Europe/Kiev" +UA,02,"Europe/Kiev" +UA,03,"Europe/Uzhgorod" +UA,04,"Europe/Zaporozhye" +UA,05,"Europe/Zaporozhye" +UA,06,"Europe/Uzhgorod" +UA,07,"Europe/Zaporozhye" +UA,08,"Europe/Simferopol" +UA,09,"Europe/Kiev" +UA,10,"Europe/Zaporozhye" +UA,11,"Europe/Simferopol" +UA,12,"Europe/Kiev" +UA,13,"Europe/Kiev" +UA,14,"Europe/Zaporozhye" +UA,15,"Europe/Uzhgorod" +UA,16,"Europe/Zaporozhye" +UA,17,"Europe/Simferopol" +UA,18,"Europe/Zaporozhye" +UA,19,"Europe/Kiev" +UA,20,"Europe/Simferopol" +UA,21,"Europe/Kiev" +UA,22,"Europe/Uzhgorod" +UA,23,"Europe/Kiev" +UA,24,"Europe/Uzhgorod" +UA,25,"Europe/Uzhgorod" +UA,26,"Europe/Zaporozhye" +UA,27,"Europe/Kiev" +UG,,"Africa/Kampala" +UM,,"Pacific/Wake" +US,AK,"America/Anchorage" +US,AL,"America/Chicago" +US,AR,"America/Chicago" +US,AZ,"America/Phoenix" +US,CA,"America/Los_Angeles" +US,CO,"America/Denver" +US,CT,"America/New_York" +US,DC,"America/New_York" +US,DE,"America/New_York" +US,FL,"America/New_York" +US,GA,"America/New_York" +US,HI,"Pacific/Honolulu" +US,IA,"America/Chicago" +US,ID,"America/Denver" +US,IL,"America/Chicago" +US,IN,"America/Indiana/Indianapolis" +US,KS,"America/Chicago" +US,KY,"America/New_York" +US,LA,"America/Chicago" +US,MA,"America/New_York" +US,MD,"America/New_York" +US,ME,"America/New_York" +US,MI,"America/New_York" +US,MN,"America/Chicago" +US,MO,"America/Chicago" +US,MS,"America/Chicago" +US,MT,"America/Denver" +US,NC,"America/New_York" +US,ND,"America/Chicago" +US,NE,"America/Chicago" +US,NH,"America/New_York" +US,NJ,"America/New_York" +US,NM,"America/Denver" +US,NV,"America/Los_Angeles" +US,NY,"America/New_York" +US,OH,"America/New_York" +US,OK,"America/Chicago" +US,OR,"America/Los_Angeles" +US,PA,"America/New_York" +US,RI,"America/New_York" +US,SC,"America/New_York" +US,SD,"America/Chicago" +US,TN,"America/Chicago" +US,TX,"America/Chicago" +US,UT,"America/Denver" +US,VA,"America/New_York" +US,VT,"America/New_York" +US,WA,"America/Los_Angeles" +US,WI,"America/Chicago" +US,WV,"America/New_York" +US,WY,"America/Denver" +UY,,"America/Montevideo" +UZ,01,"Asia/Tashkent" +UZ,02,"Asia/Samarkand" +UZ,03,"Asia/Tashkent" +UZ,05,"Asia/Samarkand" +UZ,06,"Asia/Tashkent" +UZ,07,"Asia/Samarkand" +UZ,08,"Asia/Samarkand" +UZ,09,"Asia/Samarkand" +UZ,10,"Asia/Samarkand" +UZ,12,"Asia/Samarkand" +UZ,13,"Asia/Tashkent" +UZ,14,"Asia/Tashkent" +VA,,"Europe/Vatican" +VC,,"America/St_Vincent" +VE,,"America/Caracas" +VG,,"America/Tortola" +VI,,"America/St_Thomas" +VN,,"Asia/Phnom_Penh" +VU,,"Pacific/Efate" +WF,,"Pacific/Wallis" +WS,,"Pacific/Pago_Pago" +YE,,"Asia/Aden" +YT,,"Indian/Mayotte" +YU,,"Europe/Belgrade" +ZA,,"Africa/Johannesburg" +ZM,,"Africa/Lusaka" +ZW,,"Africa/Harare" |