var noDstTzs = [
{ tz:"ACT", offset:34200000 },
{ tz:"AGT", offset:-10800000 },
{ tz:"Africa/Abidjan", offset:0 },
{ tz:"Africa/Addis_Ababa", offset:10800000 },
{ tz:"Africa/Algiers", offset:3600000 },
{ tz:"Africa/Blantyre", offset:7200000 },
{ tz:"America/Anguilla", offset:-14400000 },
{ tz:"America/Atikokan", offset:-18000000 },
{ tz:"America/Belize", offset:-21600000 },
{ tz:"America/Caracas", offset:-16200000 },
{ tz:"America/Dawson_Creek", offset:-25200000 },
{ tz:"America/Noronha", offset:-7200000 },
{ tz:"Antarctica/Casey", offset:28800000 },
{ tz:"Antarctica/Davis", offset:25200000 },
{ tz:"Antarctica/DumontDUrville", offset:36000000 },
{ tz:"Antarctica/Mawson", offset:21600000 },
{ tz:"Asia/Aqtau", offset:18000000 },
{ tz:"Asia/Calcutta", offset:19800000 },
{ tz:"Asia/Choibalsan", offset:32400000 },
{ tz:"Asia/Dubai", offset:14400000 },
{ tz:"Asia/Kabul", offset:16200000 },
{ tz:"Asia/Katmandu", offset:20700000 },
{ tz:"Asia/Rangoon", offset:23400000 },
{ tz:"Asia/Riyadh87", offset:11224000 },
{ tz:"Atlantic/Cape_Verde", offset:-3600000 },
{ tz:"Etc/GMT+10", offset:-36000000 },
{ tz:"Etc/GMT+11", offset:-39600000 },
{ tz:"Etc/GMT+12", offset:-43200000 },
{ tz:"Etc/GMT+8", offset:-28800000 },
{ tz:"Etc/GMT+9", offset:-32400000 },
{ tz:"Etc/GMT-11", offset:39600000 },
{ tz:"Etc/GMT-12", offset:43200000 },
{ tz:"Etc/GMT-13", offset:46800000 },
{ tz:"Etc/GMT-14", offset:50400000 },
{ tz:"Pacific/Marquesas", offset:-34200000 },
{ tz:"Pacific/Norfolk", offset:41400000 }
];

var dstTzs = [
{ tz:"AET", offset:36000000, start:1191686400, end:1175356800 },
{ tz:"ART", offset:7200000, start:1177624800, end:1188507600 },
{ tz:"AST", offset:-32400000, start:1173610800, end:1194170400 },
{ tz:"Africa/Ceuta", offset:3600000, start:1174784400, end:1193533200 },
{ tz:"Africa/Tunis", offset:3600000, start:1174784400, end:1193533200 },
{ tz:"Africa/Windhoek", offset:3600000, start:1188694800, end:1175385600 },
{ tz:"America/Adak", offset:-36000000, start:1173614400, end:1194174000 },
{ tz:"America/Asuncion", offset:-14400000, start:1192939200, end:1173582000 },
{ tz:"America/Boise", offset:-25200000, start:1173603600, end:1194163200 },
{ tz:"America/Cambridge_Bay", offset:-25200000, start:1173603600, end:1194163200 },
{ tz:"America/Campo_Grande", offset:-14400000, start:1192334400, end:1171764000 },
{ tz:"America/Cancun", offset:-21600000, start:1175414400, end:1193554800 },
{ tz:"America/Chicago", offset:-21600000, start:1173600000, end:1194159600 },
{ tz:"America/Chihuahua", offset:-25200000, start:1175418000, end:1193558400 },
{ tz:"America/Cuiaba", offset:-14400000, start:1192334400, end:1171764000 },
{ tz:"America/Dawson", offset:-28800000, start:1173607200, end:1194166800 },
{ tz:"America/Denver", offset:-25200000, start:1173603600, end:1194163200 },
{ tz:"America/Detroit", offset:-18000000, start:1173596400, end:1194156000 },
{ tz:"America/Edmonton", offset:-25200000, start:1173603600, end:1194163200 },
{ tz:"America/Ensenada", offset:-28800000, start:1175421600, end:1193562000 },
{ tz:"America/Fort_Wayne", offset:-18000000, start:1173596400, end:1194156000 },
{ tz:"America/Glace_Bay", offset:-14400000, start:1173592800, end:1194152400 },
{ tz:"America/Godthab", offset:-10800000, start:1174784400, end:1193533200 },
{ tz:"America/Goose_Bay", offset:-14400000, start:1173585660, end:1194145260 },
{ tz:"America/Grand_Turk", offset:-18000000, start:1173596400, end:1194156000 },
{ tz:"America/Halifax", offset:-14400000, start:1173592800, end:1194152400 },
{ tz:"America/Havana", offset:-18000000, start:1173589200, end:1193547600 },
{ tz:"America/Indiana/Knox", offset:-21600000, start:1173600000, end:1194159600 },
{ tz:"America/Indiana/Marengo", offset:-18000000, start:1173596400, end:1194156000 },
{ tz:"America/Indiana/Petersburg", offset:-18000000, start:1173600000, end:1194156000 },
{ tz:"America/Indiana/Tell_City", offset:-21600000, start:1173600000, end:1194159600 },
{ tz:"America/Indiana/Vevay", offset:-18000000, start:1173596400, end:1194156000 },
{ tz:"America/Indiana/Vincennes", offset:-18000000, start:1173600000, end:1194156000 },
{ tz:"America/Indiana/Winamac", offset:-18000000, start:1173596400, end:1194156000 },
{ tz:"America/Inuvik", offset:-25200000, start:1173603600, end:1194163200 },
{ tz:"America/Iqaluit", offset:-18000000, start:1173596400, end:1194156000 },
{ tz:"America/Juneau", offset:-32400000, start:1173610800, end:1194170400 },
{ tz:"America/Kentucky/Louisville", offset:-18000000, start:1173596400, end:1194156000 },
{ tz:"America/Kentucky/Monticello", offset:-18000000, start:1173596400, end:1194156000 },
{ tz:"America/Los_Angeles", offset:-28800000, start:1173607200, end:1194166800 },
{ tz:"America/Mazatlan", offset:-25200000, start:1175418000, end:1193558400 },
{ tz:"America/Menominee", offset:-21600000, start:1173600000, end:1194159600 },
{ tz:"America/Merida", offset:-21600000, start:1175414400, end:1193554800 },
{ tz:"America/Mexico_City", offset:-21600000, start:1175414400, end:1193554800 },
{ tz:"America/Miquelon", offset:-10800000, start:1173589200, end:1194148800 },
{ tz:"America/Moncton", offset:-14400000, start:1173592800, end:1194152400 },
{ tz:"America/Monterrey", offset:-21600000, start:1175414400, end:1193554800 },
{ tz:"America/Montevideo", offset:-10800000, start:1191733200, end:1173585600 },
{ tz:"America/Montreal", offset:-18000000, start:1173596400, end:1194156000 },
{ tz:"America/Nassau", offset:-18000000, start:1173596400, end:1194156000 },
{ tz:"America/New_York", offset:-18000000, start:1173596400, end:1194156000 },
{ tz:"America/Nipigon", offset:-18000000, start:1173596400, end:1194156000 },
{ tz:"America/Nome", offset:-32400000, start:1173610800, end:1194170400 },
{ tz:"America/North_Dakota/Center", offset:-21600000, start:1173600000, end:1194159600 },
{ tz:"America/North_Dakota/New_Salem", offset:-21600000, start:1173600000, end:1194159600 },
{ tz:"America/Pangnirtung", offset:-18000000, start:1173596400, end:1194156000 },
{ tz:"America/Rainy_River", offset:-21600000, start:1173600000, end:1194159600 },
{ tz:"America/Rankin_Inlet", offset:-21600000, start:1173600000, end:1194159600 },
{ tz:"America/Santiago", offset:-14400000, start:1192334400, end:1173582000 },
{ tz:"America/Sao_Paulo", offset:-10800000, start:1192330800, end:1171760400 },
{ tz:"America/Scoresbysund", offset:-3600000, start:1174784400, end:1193533200 },
{ tz:"America/St_Johns", offset:-12600000, start:1173583860, end:1194143460 },
{ tz:"America/Thule", offset:-14400000, start:1173592800, end:1194152400 },
{ tz:"America/Thunder_Bay", offset:-18000000, start:1173596400, end:1194156000 },
{ tz:"America/Toronto", offset:-18000000, start:1173596400, end:1194156000 },
{ tz:"America/Vancouver", offset:-28800000, start:1173607200, end:1194166800 },
{ tz:"America/Whitehorse", offset:-28800000, start:1173607200, end:1194166800 },
{ tz:"America/Winnipeg", offset:-21600000, start:1173600000, end:1194159600 },
{ tz:"America/Yakutat", offset:-32400000, start:1173610800, end:1194170400 },
{ tz:"America/Yellowknife", offset:-25200000, start:1173603600, end:1194163200 },
{ tz:"Antarctica/McMurdo", offset:43200000, start:1191074400, end:1175349600 },
{ tz:"Antarctica/Palmer", offset:-14400000, start:1192334400, end:1173582000 },
{ tz:"Arctic/Longyearbyen", offset:3600000, start:1174784400, end:1193533200 },
{ tz:"Asia/Amman", offset:7200000, start:1175119200, end:1193349600 },
{ tz:"Asia/Anadyr", offset:43200000, start:1174744800, end:1193493600 },
{ tz:"Asia/Baghdad", offset:10800000, start:1175385600, end:1191196800 },
{ tz:"Asia/Baku", offset:14400000, start:1174780800, end:1193529600 },
{ tz:"Asia/Beirut", offset:7200000, start:1174773600, end:1193518800 },
{ tz:"Asia/Damascus", offset:7200000, start:1175205600, end:1193950800 },
{ tz:"Asia/Gaza", offset:7200000, start:1175378400, end:1189638000 },
{ tz:"Asia/Irkutsk", offset:28800000, start:1174759200, end:1193508000 },
{ tz:"Asia/Istanbul", offset:7200000, start:1174784400, end:1193533200 },
{ tz:"Asia/Jerusalem", offset:7200000, start:1175212800, end:1189634400 },
{ tz:"Asia/Kamchatka", offset:43200000, start:1174744800, end:1193493600 },
{ tz:"Asia/Krasnoyarsk", offset:25200000, start:1174762800, end:1193511600 },
{ tz:"Asia/Magadan", offset:39600000, start:1174748400, end:1193497200 },
{ tz:"Asia/Nicosia", offset:7200000, start:1174784400, end:1193533200 },
{ tz:"Asia/Novosibirsk", offset:21600000, start:1174766400, end:1193515200 },
{ tz:"Asia/Omsk", offset:21600000, start:1174766400, end:1193515200 },
{ tz:"Asia/Sakhalin", offset:36000000, start:1174752000, end:1193500800 },
{ tz:"Asia/Tehran", offset:12600000, start:1174426200, end:1190316600 },
{ tz:"Asia/Vladivostok", offset:36000000, start:1174752000, end:1193500800 },
{ tz:"Asia/Yakutsk", offset:32400000, start:1174755600, end:1193504400 },
{ tz:"Asia/Yekaterinburg", offset:18000000, start:1174770000, end:1193518800 },
{ tz:"Asia/Yerevan", offset:14400000, start:1174773600, end:1193522400 },
{ tz:"Atlantic/Azores", offset:-3600000, start:1174784400, end:1193533200 },
{ tz:"Atlantic/Bermuda", offset:-14400000, start:1173592800, end:1194152400 },
{ tz:"Atlantic/Canary", offset:0, start:1174784400, end:1193533200 },
{ tz:"Atlantic/Faeroe", offset:0, start:1174784400, end:1193533200 },
{ tz:"Atlantic/Madeira", offset:0, start:1174784400, end:1193533200 },
{ tz:"Atlantic/Stanley", offset:-14400000, start:1188712800, end:1176613200 },
{ tz:"Australia/Adelaide", offset:34200000, start:1191688200, end:1175358600 },
{ tz:"Australia/Broken_Hill", offset:34200000, start:1191688200, end:1175358600 },
{ tz:"Australia/Currie", offset:36000000, start:1191686400, end:1175356800 },
{ tz:"Australia/Eucla", offset:31500000, start:0, end:0 },
{ tz:"Australia/Hobart", offset:36000000, start:1191686400, end:1175356800 },
{ tz:"Australia/LHI", offset:37800000, start:1191686400, end:1175353200 },
{ tz:"Australia/Melbourne", offset:36000000, start:1191686400, end:1175356800 },
{ tz:"Australia/Perth", offset:28800000, start:0, end:0 },
{ tz:"CET", offset:3600000, start:1174784400, end:1193533200 },
{ tz:"CST6CDT", offset:-21600000, start:1173600000, end:1194159600 },
{ tz:"Chile/EasterIsland", offset:-21600000, start:1192334400, end:1173582000 },
{ tz:"ECT", offset:3600000, start:1174784400, end:1193533200 },
{ tz:"EET", offset:7200000, start:1174784400, end:1193533200 },
{ tz:"EST5EDT", offset:-18000000, start:1173596400, end:1194156000 },
{ tz:"Eire", offset:0, start:1174784400, end:1193533200 },
{ tz:"Europe/Amsterdam", offset:3600000, start:1174784400, end:1193533200 },
{ tz:"Europe/Andorra", offset:3600000, start:1174784400, end:1193533200 },
{ tz:"Europe/Athens", offset:7200000, start:1174784400, end:1193533200 },
{ tz:"Europe/Belfast", offset:0, start:1174784400, end:1193533200 },
{ tz:"Europe/Belgrade", offset:3600000, start:1174784400, end:1193533200 },
{ tz:"Europe/Berlin", offset:3600000, start:1174784400, end:1193533200 },
{ tz:"Europe/Bratislava", offset:3600000, start:1174784400, end:1193533200 },
{ tz:"Europe/Brussels", offset:3600000, start:1174784400, end:1193533200 },
{ tz:"Europe/Bucharest", offset:7200000, start:1174784400, end:1193533200 },
{ tz:"Europe/Budapest", offset:3600000, start:1174784400, end:1193533200 },
{ tz:"Europe/Chisinau", offset:7200000, start:1174784400, end:1193533200 },
{ tz:"Europe/Copenhagen", offset:3600000, start:1174784400, end:1193533200 },
{ tz:"Europe/Gibraltar", offset:3600000, start:1174784400, end:1193533200 },
{ tz:"Europe/Helsinki", offset:7200000, start:1174784400, end:1193533200 },
{ tz:"Europe/Kaliningrad", offset:7200000, start:1174780800, end:1193529600 },
{ tz:"Europe/Kiev", offset:7200000, start:1174784400, end:1193533200 },
{ tz:"Europe/Lisbon", offset:0, start:1174784400, end:1193533200 },
{ tz:"Europe/Luxembourg", offset:3600000, start:1174784400, end:1193533200 },
{ tz:"Europe/Madrid", offset:3600000, start:1174784400, end:1193533200 },
{ tz:"Europe/Malta", offset:3600000, start:1174784400, end:1193533200 },
{ tz:"Europe/Minsk", offset:7200000, start:1174780800, end:1193529600 },
{ tz:"Europe/Monaco", offset:3600000, start:1174784400, end:1193533200 },
{ tz:"Europe/Moscow", offset:10800000, start:1174777200, end:1193526000 },
{ tz:"Europe/Riga", offset:7200000, start:1174784400, end:1193533200 },
{ tz:"Europe/Rome", offset:3600000, start:1174784400, end:1193533200 },
{ tz:"Europe/Samara", offset:14400000, start:1174773600, end:1193522400 },
{ tz:"Europe/Simferopol", offset:7200000, start:1174784400, end:1193533200 },
{ tz:"Europe/Sofia", offset:7200000, start:1174784400, end:1193533200 },
{ tz:"Europe/Stockholm", offset:3600000, start:1174784400, end:1193533200 },
{ tz:"Europe/Tallinn", offset:7200000, start:1174784400, end:1193533200 },
{ tz:"Europe/Tirane", offset:3600000, start:1174784400, end:1193533200 },
{ tz:"Europe/Uzhgorod", offset:7200000, start:1174784400, end:1193533200 },
{ tz:"Europe/Vaduz", offset:3600000, start:1174784400, end:1193533200 },
{ tz:"Europe/Vienna", offset:3600000, start:1174784400, end:1193533200 },
{ tz:"Europe/Vilnius", offset:7200000, start:1174784400, end:1193533200 },
{ tz:"Europe/Volgograd", offset:10800000, start:1174777200, end:1193526000 },
{ tz:"Europe/Warsaw", offset:3600000, start:1174784400, end:1193533200 },
{ tz:"Europe/Zaporozhye", offset:7200000, start:1174784400, end:1193533200 },
{ tz:"Europe/Zurich", offset:3600000, start:1174784400, end:1193533200 },
{ tz:"GB-Eire", offset:0, start:1174784400, end:1193533200 },
{ tz:"MET", offset:3600000, start:1174784400, end:1193533200 },
{ tz:"MST7MDT", offset:-25200000, start:1173603600, end:1194163200 },
{ tz:"NST", offset:43200000, start:1191074400, end:1175349600 },
{ tz:"NZ-CHAT", offset:45900000, start:1191074400, end:1175349600 },
{ tz:"PST8PDT", offset:-28800000, start:1173607200, end:1194166800 },
{ tz:"WET", offset:0, start:1174784400, end:1193533200 }
];

var USTzs = [
{ tz:"AST", offset:-32400000 },
{ tz:"America/Adak", offset:-36000000 },
{ tz:"America/Anchorage", offset:-32400000 },
{ tz:"America/Atka", offset:-36000000 },
{ tz:"America/Boise", offset:-25200000 },
{ tz:"America/Chicago", offset:-21600000 },
{ tz:"America/Denver", offset:-25200000 },
{ tz:"America/Detroit", offset:-18000000 },
{ tz:"America/Fort_Wayne", offset:-18000000 },
{ tz:"America/Indiana/Indianapolis", offset:-18000000 },
{ tz:"America/Indiana/Knox", offset:-21600000 },
{ tz:"America/Indiana/Marengo", offset:-18000000 },
{ tz:"America/Indiana/Petersburg", offset:-18000000 },
{ tz:"America/Indiana/Tell_City", offset:-21600000 },
{ tz:"America/Indiana/Vevay", offset:-18000000 },
{ tz:"America/Indiana/Vincennes", offset:-18000000 },
{ tz:"America/Indiana/Winamac", offset:-18000000 },
{ tz:"America/Indianapolis", offset:-18000000 },
{ tz:"America/Juneau", offset:-32400000 },
{ tz:"America/Kentucky/Louisville", offset:-18000000 },
{ tz:"America/Kentucky/Monticello", offset:-18000000 },
{ tz:"America/Knox_IN", offset:-21600000 },
{ tz:"America/Los_Angeles", offset:-28800000 },
{ tz:"America/Louisville", offset:-18000000 },
{ tz:"America/Menominee", offset:-21600000 },
{ tz:"America/New_York", offset:-18000000 },
{ tz:"America/Nome", offset:-32400000 },
{ tz:"America/North_Dakota/Center", offset:-21600000 },
{ tz:"America/North_Dakota/New_Salem", offset:-21600000 },
{ tz:"America/Shiprock", offset:-25200000 },
{ tz:"America/Yakutat", offset:-32400000 },
{ tz:"CST", offset:-21600000 },
{ tz:"IET", offset:-18000000 },
{ tz:"Navajo", offset:-25200000 },
{ tz:"PST", offset:-28800000 },
{ tz:"SystemV/CST6CDT", offset:-21600000 },
{ tz:"SystemV/EST5EDT", offset:-18000000 },
{ tz:"SystemV/MST7MDT", offset:-25200000 },
{ tz:"SystemV/PST8PDT", offset:-28800000 },
{ tz:"SystemV/YST9YDT", offset:-32400000 },
{ tz:"US/Alaska", offset:-32400000 },
{ tz:"US/Aleutian", offset:-36000000 },
{ tz:"US/Central", offset:-21600000 },
{ tz:"US/East-Indiana", offset:-18000000 },
{ tz:"US/Eastern", offset:-18000000 },
{ tz:"US/Indiana-Starke", offset:-21600000 },
{ tz:"US/Michigan", offset:-18000000 },
{ tz:"US/Mountain", offset:-25200000 },
{ tz:"US/Pacific", offset:-28800000 },
{ tz:"US/Pacific-New", offset:-28800000 },
{ tz:"America/Cambridge_Bay", offset:-25200000 },
{ tz:"America/Dawson", offset:-28800000 },
{ tz:"America/Edmonton", offset:-25200000 },
{ tz:"America/Glace_Bay", offset:-14400000 },
{ tz:"America/Goose_Bay", offset:-14400000 },
{ tz:"America/Halifax", offset:-14400000 },
{ tz:"America/Inuvik", offset:-25200000 },
{ tz:"America/Iqaluit", offset:-18000000 },
{ tz:"America/Moncton", offset:-14400000 },
{ tz:"America/Montreal", offset:-18000000 },
{ tz:"America/Nipigon", offset:-18000000 },
{ tz:"America/Pangnirtung", offset:-18000000 },
{ tz:"America/Rainy_River", offset:-21600000 },
{ tz:"America/Rankin_Inlet", offset:-21600000 },
{ tz:"America/St_Johns", offset:-12600000 },
{ tz:"America/Thunder_Bay", offset:-18000000 },
{ tz:"America/Toronto", offset:-18000000 },
{ tz:"America/Vancouver", offset:-28800000 },
{ tz:"America/Whitehorse", offset:-28800000 },
{ tz:"America/Winnipeg", offset:-21600000 },
{ tz:"America/Yellowknife", offset:-25200000 },
{ tz:"CNT", offset:-12600000 },
{ tz:"Canada/Atlantic", offset:-14400000 },
{ tz:"Canada/Central", offset:-21600000 },
{ tz:"Canada/Eastern", offset:-18000000 },
{ tz:"Canada/Mountain", offset:-25200000 },
{ tz:"Canada/Newfoundland", offset:-12600000 },
{ tz:"Canada/Pacific", offset:-28800000 },
{ tz:"Canada/Yukon", offset:-28800000 },
{ tz:"SystemV/AST4ADT", offset:-14400000 }
];


// ACT = ACT
// Australia/Darwin = ACT
// Australia/North = ACT
// AET = AET
// Australia/ACT = AET
// Australia/Canberra = AET
// Australia/NSW = AET
// Australia/Sydney = AET
// AGT = AGT
// America/Argentina/Buenos_Aires = AGT
// America/Buenos_Aires = AGT
// ART = ART
// Africa/Cairo = ART
// Egypt = ART
// AST = AST
// America/Anchorage = AST
// SystemV/YST9YDT = AST
// US/Alaska = AST
// Africa/Accra = Africa/Abidjan
// Africa/Addis_Ababa = Africa/Addis_Ababa
// EAT = Africa/Addis_Ababa
// Africa/Asmara = Africa/Addis_Ababa
// Africa/Asmara = Africa/Asmara
// Africa/Asmera = Africa/Asmara
// Africa/Bamako = Africa/Abidjan
// Africa/Bamako = Africa/Bamako
// Africa/Timbuktu = Africa/Bamako
// Africa/Bangui = Africa/Algiers
// Africa/Banjul = Africa/Abidjan
// Africa/Bissau = Africa/Abidjan
// Africa/Brazzaville = Africa/Algiers
// Africa/Bujumbura = Africa/Blantyre
// Africa/Casablanca = Africa/Abidjan
// Africa/Conakry = Africa/Abidjan
// Africa/Dakar = Africa/Abidjan
// Africa/Dar_es_Salaam = Africa/Addis_Ababa
// Africa/Djibouti = Africa/Addis_Ababa
// Africa/Douala = Africa/Algiers
// Africa/El_Aaiun = Africa/Abidjan
// Africa/Freetown = Africa/Abidjan
// Africa/Gaborone = Africa/Blantyre
// Africa/Harare = Africa/Blantyre
// Africa/Harare = Africa/Harare
// CAT = Africa/Harare
// Africa/Johannesburg = Africa/Blantyre
// Africa/Kampala = Africa/Addis_Ababa
// Africa/Khartoum = Africa/Addis_Ababa
// Africa/Kigali = Africa/Blantyre
// Africa/Kinshasa = Africa/Algiers
// Africa/Lagos = Africa/Algiers
// Africa/Libreville = Africa/Algiers
// Africa/Lome = Africa/Abidjan
// Africa/Luanda = Africa/Algiers
// Africa/Lubumbashi = Africa/Blantyre
// Africa/Lusaka = Africa/Blantyre
// Africa/Malabo = Africa/Algiers
// Africa/Maputo = Africa/Blantyre
// Africa/Maseru = Africa/Blantyre
// Africa/Mbabane = Africa/Blantyre
// Africa/Mogadishu = Africa/Addis_Ababa
// Africa/Monrovia = Africa/Abidjan
// Africa/Nairobi = Africa/Addis_Ababa
// Africa/Ndjamena = Africa/Algiers
// Africa/Niamey = Africa/Algiers
// Africa/Nouakchott = Africa/Abidjan
// Africa/Ouagadougou = Africa/Abidjan
// Africa/Porto-Novo = Africa/Algiers
// Africa/Sao_Tome = Africa/Abidjan
// Africa/Tripoli = Africa/Blantyre
// Africa/Tripoli = Africa/Tripoli
// Libya = Africa/Tripoli
// America/Adak = America/Adak
// America/Atka = America/Adak
// US/Aleutian = America/Adak
// America/Antigua = America/Anguilla
// America/Araguaina = AGT
// America/Argentina/Catamarca = AGT
// America/Argentina/Catamarca = America/Argentina/Catamarca
// America/Argentina/ComodRivadavia = America/Argentina/Catamarca
// America/Catamarca = America/Argentina/Catamarca
// America/Argentina/Cordoba = AGT
// America/Argentina/Cordoba = America/Argentina/Cordoba
// America/Cordoba = America/Argentina/Cordoba
// America/Rosario = America/Argentina/Cordoba
// America/Argentina/Jujuy = AGT
// America/Argentina/Jujuy = America/Argentina/Jujuy
// America/Jujuy = America/Argentina/Jujuy
// America/Argentina/La_Rioja = AGT
// America/Argentina/Mendoza = AGT
// America/Argentina/Mendoza = America/Argentina/Mendoza
// America/Mendoza = America/Argentina/Mendoza
// America/Argentina/Rio_Gallegos = AGT
// America/Argentina/San_Juan = AGT
// America/Argentina/Tucuman = AGT
// America/Argentina/Ushuaia = AGT
// America/Aruba = America/Anguilla
// America/Atikokan = America/Atikokan
// America/Coral_Harbour = America/Atikokan
// America/Bahia = AGT
// America/Barbados = America/Anguilla
// America/Belem = AGT
// America/Blanc-Sablon = America/Anguilla
// America/Boa_Vista = America/Anguilla
// America/Bogota = America/Atikokan
// America/Cayenne = AGT
// America/Cayman = America/Atikokan
// America/Chicago = America/Chicago
// CST = America/Chicago
// SystemV/CST6CDT = America/Chicago
// US/Central = America/Chicago
// America/Costa_Rica = America/Belize
// America/Curacao = America/Anguilla
// America/Danmarkshavn = Africa/Abidjan
// America/Denver = America/Denver
// America/Shiprock = America/Denver
// Navajo = America/Denver
// SystemV/MST7MDT = America/Denver
// US/Mountain = America/Denver
// America/Detroit = America/Detroit
// US/Michigan = America/Detroit
// America/Dominica = America/Anguilla
// America/Edmonton = America/Edmonton
// Canada/Mountain = America/Edmonton
// America/Eirunepe = America/Atikokan
// America/El_Salvador = America/Belize
// America/Ensenada = America/Ensenada
// America/Tijuana = America/Ensenada
// Mexico/BajaNorte = America/Ensenada
// America/Fort_Wayne = America/Fort_Wayne
// America/Indiana/Indianapolis = America/Fort_Wayne
// America/Indianapolis = America/Fort_Wayne
// IET = America/Fort_Wayne
// US/East-Indiana = America/Fort_Wayne
// America/Fortaleza = AGT
// America/Grenada = America/Anguilla
// America/Guadeloupe = America/Anguilla
// America/Guadeloupe = America/Guadeloupe
// America/Marigot = America/Guadeloupe
// America/St_Barthelemy = America/Guadeloupe
// America/Guatemala = America/Belize
// America/Guayaquil = America/Atikokan
// America/Guyana = America/Anguilla
// America/Halifax = America/Halifax
// Canada/Atlantic = America/Halifax
// SystemV/AST4ADT = America/Halifax
// America/Havana = America/Havana
// Cuba = America/Havana
// America/Hermosillo = America/Dawson_Creek
// America/Indiana/Knox = America/Indiana/Knox
// America/Knox_IN = America/Indiana/Knox
// US/Indiana-Starke = America/Indiana/Knox
// America/Jamaica = America/Atikokan
// America/Jamaica = America/Jamaica
// Jamaica = America/Jamaica
// America/Kentucky/Louisville = America/Kentucky/Louisville
// America/Louisville = America/Kentucky/Louisville
// America/La_Paz = America/Anguilla
// America/Lima = America/Atikokan
// America/Los_Angeles = America/Los_Angeles
// PST = America/Los_Angeles
// SystemV/PST8PDT = America/Los_Angeles
// US/Pacific = America/Los_Angeles
// US/Pacific-New = America/Los_Angeles
// America/Maceio = AGT
// America/Managua = America/Belize
// America/Manaus = America/Anguilla
// America/Manaus = America/Manaus
// Brazil/West = America/Manaus
// America/Martinique = America/Anguilla
// America/Mazatlan = America/Mazatlan
// Mexico/BajaSur = America/Mazatlan
// America/Mexico_City = America/Mexico_City
// Mexico/General = America/Mexico_City
// America/Montserrat = America/Anguilla
// America/New_York = America/New_York
// SystemV/EST5EDT = America/New_York
// US/Eastern = America/New_York
// America/Noronha = America/Noronha
// Brazil/DeNoronha = America/Noronha
// America/Panama = America/Atikokan
// America/Paramaribo = AGT
// America/Phoenix = America/Dawson_Creek
// America/Phoenix = America/Phoenix
// PNT = America/Phoenix
// US/Arizona = America/Phoenix
// America/Port-au-Prince = America/Atikokan
// America/Port_of_Spain = America/Anguilla
// America/Porto_Acre = America/Atikokan
// America/Porto_Acre = America/Porto_Acre
// America/Rio_Branco = America/Porto_Acre
// Brazil/Acre = America/Porto_Acre
// America/Porto_Velho = America/Anguilla
// America/Puerto_Rico = America/Anguilla
// America/Puerto_Rico = America/Puerto_Rico
// PRT = America/Puerto_Rico
// America/Recife = AGT
// America/Regina = America/Belize
// America/Regina = America/Regina
// Canada/East-Saskatchewan = America/Regina
// Canada/Saskatchewan = America/Regina
// America/Resolute = America/Atikokan
// America/Santiago = America/Santiago
// Chile/Continental = America/Santiago
// America/Santo_Domingo = America/Anguilla
// America/Sao_Paulo = America/Sao_Paulo
// BET = America/Sao_Paulo
// Brazil/East = America/Sao_Paulo
// America/St_Johns = America/St_Johns
// CNT = America/St_Johns
// Canada/Newfoundland = America/St_Johns
// America/St_Kitts = America/Anguilla
// America/St_Lucia = America/Anguilla
// America/St_Thomas = America/Anguilla
// America/St_Thomas = America/St_Thomas
// America/Virgin = America/St_Thomas
// America/St_Vincent = America/Anguilla
// America/Swift_Current = America/Belize
// America/Tegucigalpa = America/Belize
// America/Toronto = America/Toronto
// Canada/Eastern = America/Toronto
// America/Tortola = America/Anguilla
// America/Vancouver = America/Vancouver
// Canada/Pacific = America/Vancouver
// America/Whitehorse = America/Whitehorse
// Canada/Yukon = America/Whitehorse
// America/Winnipeg = America/Winnipeg
// Canada/Central = America/Winnipeg
// Antarctica/McMurdo = Antarctica/McMurdo
// Antarctica/South_Pole = Antarctica/McMurdo
// Antarctica/Rothera = AGT
// Antarctica/Syowa = Africa/Addis_Ababa
// Antarctica/Vostok = Antarctica/Mawson
// Arctic/Longyearbyen = Arctic/Longyearbyen
// Atlantic/Jan_Mayen = Arctic/Longyearbyen
// Europe/Oslo = Arctic/Longyearbyen
// Asia/Aden = Africa/Addis_Ababa
// Asia/Almaty = Antarctica/Mawson
// Asia/Aqtobe = Asia/Aqtau
// Asia/Ashgabat = Asia/Aqtau
// Asia/Ashgabat = Asia/Ashgabat
// Asia/Ashkhabad = Asia/Ashgabat
// Asia/Bahrain = Africa/Addis_Ababa
// Asia/Bangkok = Antarctica/Davis
// Asia/Bishkek = Antarctica/Mawson
// Asia/Brunei = Antarctica/Casey
// Asia/Calcutta = Asia/Calcutta
// IST = Asia/Calcutta
// Asia/Chongqing = Antarctica/Casey
// Asia/Chongqing = Asia/Chongqing
// Asia/Chungking = Asia/Chongqing
// Asia/Colombo = Asia/Calcutta
// Asia/Dacca = Antarctica/Mawson
// Asia/Dacca = Asia/Dacca
// Asia/Dhaka = Asia/Dacca
// BST = Asia/Dacca
// Asia/Dili = Asia/Choibalsan
// Asia/Dushanbe = Asia/Aqtau
// Asia/Harbin = Antarctica/Casey
// Asia/Hong_Kong = Antarctica/Casey
// Asia/Hong_Kong = Asia/Hong_Kong
// Hongkong = Asia/Hong_Kong
// Asia/Hovd = Antarctica/Davis
// Asia/Istanbul = Asia/Istanbul
// Europe/Istanbul = Asia/Istanbul
// Turkey = Asia/Istanbul
// Asia/Jakarta = Antarctica/Davis
// Asia/Jayapura = Asia/Choibalsan
// Asia/Jerusalem = Asia/Jerusalem
// Asia/Tel_Aviv = Asia/Jerusalem
// Israel = Asia/Jerusalem
// Asia/Karachi = Asia/Aqtau
// Asia/Karachi = Asia/Karachi
// PLT = Asia/Karachi
// Asia/Kashgar = Antarctica/Casey
// Asia/Kuala_Lumpur = Antarctica/Casey
// Asia/Kuching = Antarctica/Casey
// Asia/Kuwait = Africa/Addis_Ababa
// Asia/Macao = Antarctica/Casey
// Asia/Macao = Asia/Macao
// Asia/Macau = Asia/Macao
// Asia/Makassar = Antarctica/Casey
// Asia/Makassar = Asia/Makassar
// Asia/Ujung_Pandang = Asia/Makassar
// Asia/Manila = Antarctica/Casey
// Asia/Muscat = Asia/Dubai
// Asia/Nicosia = Asia/Nicosia
// Europe/Nicosia = Asia/Nicosia
// Asia/Oral = Asia/Aqtau
// Asia/Phnom_Penh = Antarctica/Davis
// Asia/Pontianak = Antarctica/Davis
// Asia/Pyongyang = Asia/Choibalsan
// Asia/Qatar = Africa/Addis_Ababa
// Asia/Qyzylorda = Antarctica/Mawson
// Asia/Riyadh = Africa/Addis_Ababa
// Asia/Riyadh87 = Asia/Riyadh87
// Mideast/Riyadh87 = Asia/Riyadh87
// Asia/Riyadh88 = Asia/Riyadh87
// Asia/Riyadh88 = Asia/Riyadh88
// Mideast/Riyadh88 = Asia/Riyadh88
// Asia/Riyadh89 = Asia/Riyadh87
// Asia/Riyadh89 = Asia/Riyadh89
// Mideast/Riyadh89 = Asia/Riyadh89
// Asia/Saigon = Antarctica/Davis
// Asia/Saigon = Asia/Saigon
// VST = Asia/Saigon
// Asia/Samarkand = Asia/Aqtau
// Asia/Seoul = Asia/Choibalsan
// Asia/Seoul = Asia/Seoul
// ROK = Asia/Seoul
// Asia/Shanghai = Antarctica/Casey
// Asia/Shanghai = Asia/Shanghai
// CTT = Asia/Shanghai
// PRC = Asia/Shanghai
// Asia/Singapore = Antarctica/Casey
// Asia/Singapore = Asia/Singapore
// Singapore = Asia/Singapore
// Asia/Taipei = Antarctica/Casey
// Asia/Taipei = Asia/Taipei
// ROC = Asia/Taipei
// Asia/Tashkent = Asia/Aqtau
// Asia/Tbilisi = Asia/Dubai
// Asia/Tehran = Asia/Tehran
// Iran = Asia/Tehran
// Asia/Thimbu = Antarctica/Mawson
// Asia/Thimbu = Asia/Thimbu
// Asia/Thimphu = Asia/Thimbu
// Asia/Tokyo = Asia/Choibalsan
// Asia/Tokyo = Asia/Tokyo
// JST = Asia/Tokyo
// Japan = Asia/Tokyo
// Asia/Ulaanbaatar = Antarctica/Casey
// Asia/Ulaanbaatar = Asia/Ulaanbaatar
// Asia/Ulan_Bator = Asia/Ulaanbaatar
// Asia/Urumqi = Antarctica/Casey
// Asia/Vientiane = Antarctica/Davis
// Asia/Yerevan = Asia/Yerevan
// NET = Asia/Yerevan
// Atlantic/Faeroe = Atlantic/Faeroe
// Atlantic/Faroe = Atlantic/Faeroe
// Atlantic/Reykjavik = Africa/Abidjan
// Atlantic/Reykjavik = Atlantic/Reykjavik
// Iceland = Atlantic/Reykjavik
// Atlantic/South_Georgia = America/Noronha
// Atlantic/St_Helena = Africa/Abidjan
// Australia/Adelaide = Australia/Adelaide
// Australia/South = Australia/Adelaide
// Australia/Brisbane = Antarctica/DumontDUrville
// Australia/Brisbane = Australia/Brisbane
// Australia/Queensland = Australia/Brisbane
// Australia/Broken_Hill = Australia/Broken_Hill
// Australia/Yancowinna = Australia/Broken_Hill
// Australia/Hobart = Australia/Hobart
// Australia/Tasmania = Australia/Hobart
// Australia/LHI = Australia/LHI
// Australia/Lord_Howe = Australia/LHI
// Australia/Lindeman = Antarctica/DumontDUrville
// Australia/Melbourne = Australia/Melbourne
// Australia/Victoria = Australia/Melbourne
// Australia/Perth = Australia/Perth
// Australia/West = Australia/Perth
// Chile/EasterIsland = Chile/EasterIsland
// Pacific/Easter = Chile/EasterIsland
// ECT = ECT
// Europe/Paris = ECT
// EST = America/Atikokan
// Eire = Eire
// Europe/Dublin = Eire
// Etc/GMT = Africa/Abidjan
// Etc/GMT = Etc/GMT
// Etc/GMT+0 = Etc/GMT
// Etc/GMT-0 = Etc/GMT
// Etc/GMT0 = Etc/GMT
// Etc/GMT+1 = Atlantic/Cape_Verde
// Etc/GMT+10 = Etc/GMT+10
// SystemV/HST10 = Etc/GMT+10
// Etc/GMT+2 = America/Noronha
// Etc/GMT+3 = AGT
// Etc/GMT+4 = America/Anguilla
// Etc/GMT+4 = Etc/GMT+4
// SystemV/AST4 = Etc/GMT+4
// Etc/GMT+5 = America/Atikokan
// Etc/GMT+5 = Etc/GMT+5
// SystemV/EST5 = Etc/GMT+5
// Etc/GMT+6 = America/Belize
// Etc/GMT+6 = Etc/GMT+6
// SystemV/CST6 = Etc/GMT+6
// Etc/GMT+7 = America/Dawson_Creek
// Etc/GMT+7 = Etc/GMT+7
// SystemV/MST7 = Etc/GMT+7
// Etc/GMT+8 = Etc/GMT+8
// SystemV/PST8 = Etc/GMT+8
// Etc/GMT+9 = Etc/GMT+9
// SystemV/YST9 = Etc/GMT+9
// Etc/GMT-1 = Africa/Algiers
// Etc/GMT-10 = Antarctica/DumontDUrville
// Etc/GMT-2 = Africa/Blantyre
// Etc/GMT-3 = Africa/Addis_Ababa
// Etc/GMT-4 = Asia/Dubai
// Etc/GMT-5 = Asia/Aqtau
// Etc/GMT-6 = Antarctica/Mawson
// Etc/GMT-7 = Antarctica/Davis
// Etc/GMT-8 = Antarctica/Casey
// Etc/GMT-9 = Asia/Choibalsan
// Etc/Greenwich = Africa/Abidjan
// Etc/GMT = Etc/Greenwich
// Etc/GMT+0 = Etc/Greenwich
// Etc/GMT-0 = Etc/Greenwich
// Etc/GMT0 = Etc/Greenwich
// Etc/UCT = Africa/Abidjan
// Etc/UCT = Etc/UCT
// UCT = Etc/UCT
// Etc/UTC = Africa/Abidjan
// Etc/UTC = Etc/UTC
// Etc/Universal = Etc/UTC
// Etc/Zulu = Etc/UTC
// UTC = Etc/UTC
// Etc/Unknown = Africa/Abidjan
// Europe/Belfast = Europe/Belfast
// Europe/Guernsey = Europe/Belfast
// Europe/Isle_of_Man = Europe/Belfast
// Europe/Jersey = Europe/Belfast
// Europe/London = Europe/Belfast
// GB = Europe/Belfast
// Europe/Belgrade = Europe/Belgrade
// Europe/Ljubljana = Europe/Belgrade
// Europe/Podgorica = Europe/Belgrade
// Europe/Sarajevo = Europe/Belgrade
// Europe/Skopje = Europe/Belgrade
// Europe/Zagreb = Europe/Belgrade
// Europe/Bratislava = Europe/Bratislava
// Europe/Prague = Europe/Bratislava
// Europe/Chisinau = Europe/Chisinau
// Europe/Tiraspol = Europe/Chisinau
// Europe/Helsinki = Europe/Helsinki
// Europe/Mariehamn = Europe/Helsinki
// Europe/Lisbon = Europe/Lisbon
// Portugal = Europe/Lisbon
// Europe/Moscow = Europe/Moscow
// W-SU = Europe/Moscow
// Europe/Rome = Europe/Rome
// Europe/San_Marino = Europe/Rome
// Europe/Vatican = Europe/Rome
// Europe/Warsaw = Europe/Warsaw
// Poland = Europe/Warsaw
// Factory = Africa/Abidjan
// Europe/Belfast = GB-Eire
// Europe/Guernsey = GB-Eire
// Europe/Isle_of_Man = GB-Eire
// Europe/Jersey = GB-Eire
// Europe/London = GB-Eire
// GB = GB-Eire
// GMT = Africa/Abidjan
// Etc/GMT = GMT
// Etc/GMT+0 = GMT
// Etc/GMT-0 = GMT
// Etc/GMT0 = GMT
// GMT+0 = Africa/Abidjan
// Etc/GMT = GMT+0
// Etc/GMT+0 = GMT+0
// Etc/GMT-0 = GMT+0
// Etc/GMT0 = GMT+0
// GMT-0 = Africa/Abidjan
// Etc/GMT = GMT-0
// Etc/GMT+0 = GMT-0
// Etc/GMT-0 = GMT-0
// Etc/GMT0 = GMT-0
// GMT0 = Africa/Abidjan
// Etc/GMT = GMT0
// Etc/GMT+0 = GMT0
// Etc/GMT-0 = GMT0
// Etc/GMT0 = GMT0
// Greenwich = Africa/Abidjan
// Etc/GMT = Greenwich
// Etc/GMT+0 = Greenwich
// Etc/GMT-0 = Greenwich
// Etc/GMT0 = Greenwich
// HST = Etc/GMT+10
// Indian/Antananarivo = Africa/Addis_Ababa
// Indian/Chagos = Antarctica/Mawson
// Indian/Christmas = Antarctica/Davis
// Indian/Cocos = Asia/Rangoon
// Indian/Comoro = Africa/Addis_Ababa
// Indian/Kerguelen = Asia/Aqtau
// Indian/Mahe = Asia/Dubai
// Indian/Maldives = Asia/Aqtau
// Indian/Mauritius = Asia/Dubai
// Indian/Mayotte = Africa/Addis_Ababa
// Indian/Reunion = Asia/Dubai
// Kwajalein = Etc/GMT-12
// Kwajalein = Kwajalein
// Pacific/Kwajalein = Kwajalein
// MIT = Etc/GMT+11
// MIT = MIT
// Pacific/Apia = MIT
// MST = America/Dawson_Creek
// NST = NST
// NZ = NST
// Pacific/Auckland = NST
// NZ-CHAT = NZ-CHAT
// Pacific/Chatham = NZ-CHAT
// Pacific/Efate = Etc/GMT-11
// Pacific/Enderbury = Etc/GMT-13
// Pacific/Fakaofo = Etc/GMT+10
// Pacific/Fiji = Etc/GMT-12
// Pacific/Funafuti = Etc/GMT-12
// Pacific/Galapagos = America/Belize
// Pacific/Gambier = Etc/GMT+9
// Pacific/Guadalcanal = Etc/GMT-11
// Pacific/Guadalcanal = Pacific/Guadalcanal
// SST = Pacific/Guadalcanal
// Pacific/Guam = Antarctica/DumontDUrville
// Pacific/Honolulu = Etc/GMT+10
// Pacific/Honolulu = Pacific/Honolulu
// US/Hawaii = Pacific/Honolulu
// Pacific/Johnston = Etc/GMT+10
// Pacific/Kiritimati = Etc/GMT-14
// Pacific/Kosrae = Etc/GMT-11
// Pacific/Majuro = Etc/GMT-12
// Pacific/Midway = Etc/GMT+11
// Pacific/Nauru = Etc/GMT-12
// Pacific/Niue = Etc/GMT+11
// Pacific/Noumea = Etc/GMT-11
// Pacific/Pago_Pago = Etc/GMT+11
// Pacific/Pago_Pago = Pacific/Pago_Pago
// Pacific/Samoa = Pacific/Pago_Pago
// US/Samoa = Pacific/Pago_Pago
// Pacific/Palau = Asia/Choibalsan
// Pacific/Pitcairn = Etc/GMT+8
// Pacific/Ponape = Etc/GMT-11
// Pacific/Port_Moresby = Antarctica/DumontDUrville
// Pacific/Rarotonga = Etc/GMT+10
// Pacific/Saipan = Antarctica/DumontDUrville
// Pacific/Tahiti = Etc/GMT+10
// Pacific/Tarawa = Etc/GMT-12
// Pacific/Tongatapu = Etc/GMT-13
// Pacific/Truk = Antarctica/DumontDUrville
// Pacific/Truk = Pacific/Truk
// Pacific/Yap = Pacific/Truk
// Pacific/Wake = Etc/GMT-12
// Pacific/Wallis = Etc/GMT-12
// Universal = Africa/Abidjan
// Etc/UTC = Universal
// Etc/Universal = Universal
// Etc/Zulu = Universal
// UTC = Universal
// Zulu = Africa/Abidjan
// Etc/UTC = Zulu
// Etc/Universal = Zulu
// Etc/Zulu = Zulu
// UTC = Zulu

function getTimezone() {
	var i, d1, d2, d3, d4, off1, off2, off3, off4;

	// first check for timezone with no daylight savings
	d1 = new Date(2004, 0, 1, 0, 0, 0, 0);
	off1 = d1.getTimezoneOffset() * 60000;
	d2 = new Date(2004, 3, 1, 0, 0, 0, 0);
	off2 = d2.getTimezoneOffset() * 60000;
	d3 = new Date(2004, 6, 1, 0, 0, 0, 0);
	off3 = d3.getTimezoneOffset() * 60000;
	d4 = new Date(2004, 9, 1, 0, 0, 0, 0);
	off4 = d4.getTimezoneOffset() * 60000;

	if (off1 == off2 && off2 == off3 && off3==off4 && off4==off1) {
		for (i=0; i<noDstTzs.length; i++) {
			if (noDstTzs[i].offset == -off1)
				return noDstTzs[i].tz;
		}
	}

	// now check for timezone with daylight savings
	for (i=0; i<dstTzs.length; i++) {
		if (dstTzs[i].start==-1||dstTzs[i].end==-1)
			continue;
		d1=new Date((dstTzs[i].start-1)*1000); //1 second before DST start
		d2=new Date((dstTzs[i].start+1)*1000); //1 second after DST start
		d3=new Date((dstTzs[i].end-1)*1000); //1 second before DST end
		d4=new Date((dstTzs[i].end+1)*1000); //1 second after DST end
		off1 = d1.getTimezoneOffset() * 60000;
		off2 = d2.getTimezoneOffset() * 60000
		off3 = d3.getTimezoneOffset() * 60000
		off4 = d4.getTimezoneOffset() * 60000
		if ((off1!=off2) && (off3!=off4) && (-off4 == dstTzs[i].offset))
			return dstTzs[i].tz;
	}
	// Nothing matches to windows bug relating to the changes in 2007 US DST rules.
	for (i=0; i<USTzs.length; i++) {
		d1=new Date(2007,12,1,1,0,0,0);
		off1 = d1.getTimezoneOffset() * 60000;
		if (-off1 == USTzs[i].offset)
			return USTzs[i].tz;
	}
	return "";
}

