#
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation.  Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
# This file is in the public domain, so clarified as of
# 2009-05-17 by Arthur David Olson.

# This file provides links between current names for time zones
# and their old names.  Many names changed in late 1993.

# Link	TARGET			LINK-NAME
Link	Africa/Nairobi		Africa/Asmera
Link	Africa/Abidjan		Africa/Timbuktu
Link	America/Argentina/Catamarca	America/Argentina/ComodRivadavia
Link	America/Adak		America/Atka
Link	America/Argentina/Buenos_Aires	America/Buenos_Aires
Link	America/Argentina/Catamarca	America/Catamarca
Link	America/Atikokan	America/Coral_Harbour
Link	America/Argentina/Cordoba	America/Cordoba
Link	America/Tijuana		America/Ensenada
Link	America/Indiana/Indianapolis	America/Fort_Wayne
Link	America/Indiana/Indianapolis	America/Indianapolis
Link	America/Argentina/Jujuy	America/Jujuy
Link	America/Indiana/Knox	America/Knox_IN
Link	America/Kentucky/Louisville	America/Louisville
Link	America/Argentina/Mendoza	America/Mendoza
Link	America/Toronto		America/Montreal
Link	America/Rio_Branco	America/Porto_Acre
Link	America/Argentina/Cordoba	America/Rosario
Link	America/Tijuana		America/Santa_Isabel
Link	America/Denver		America/Shiprock
Link	America/Port_of_Spain	America/Virgin
Link	Pacific/Auckland	Antarctica/South_Pole
Link	Asia/Ashgabat		Asia/Ashkhabad
Link	Asia/Kolkata		Asia/Calcutta
Link	Asia/Shanghai		Asia/Chongqing
Link	Asia/Shanghai		Asia/Chungking
Link	Asia/Dhaka		Asia/Dacca
Link	Asia/Shanghai		Asia/Harbin
Link	Asia/Urumqi		Asia/Kashgar
Link	Asia/Kathmandu		Asia/Katmandu
Link	Asia/Macau		Asia/Macao
Link	Asia/Yangon		Asia/Rangoon
Link	Asia/Ho_Chi_Minh	Asia/Saigon
Link	Asia/Jerusalem		Asia/Tel_Aviv
Link	Asia/Thimphu		Asia/Thimbu
Link	Asia/Makassar		Asia/Ujung_Pandang
Link	Asia/Ulaanbaatar	Asia/Ulan_Bator
Link	Atlantic/Faroe		Atlantic/Faeroe
Link	Europe/Oslo		Atlantic/Jan_Mayen
Link	Australia/Sydney	Australia/ACT
Link	Australia/Sydney	Australia/Canberra
Link	Australia/Lord_Howe	Australia/LHI
Link	Australia/Sydney	Australia/NSW
Link	Australia/Darwin	Australia/North
Link	Australia/Brisbane	Australia/Queensland
Link	Australia/Adelaide	Australia/South
Link	Australia/Hobart	Australia/Tasmania
Link	Australia/Melbourne	Australia/Victoria
Link	Australia/Perth		Australia/West
Link	Australia/Broken_Hill	Australia/Yancowinna
Link	America/Rio_Branco	Brazil/Acre
Link	America/Noronha		Brazil/DeNoronha
Link	America/Sao_Paulo	Brazil/East
Link	America/Manaus		Brazil/West
Link	America/Halifax		Canada/Atlantic
Link	America/Winnipeg	Canada/Central
Link	America/Regina		Canada/East-Saskatchewan
Link	America/Toronto		Canada/Eastern
Link	America/Edmonton	Canada/Mountain
Link	America/St_Johns	Canada/Newfoundland
Link	America/Vancouver	Canada/Pacific
Link	America/Regina		Canada/Saskatchewan
Link	America/Whitehorse	Canada/Yukon
Link	America/Santiago	Chile/Continental
Link	Pacific/Easter		Chile/EasterIsland
Link	America/Havana		Cuba
Link	Africa/Cairo		Egypt
Link	Europe/Dublin		Eire
Link	Europe/London		Europe/Belfast
Link	Europe/Chisinau		Europe/Tiraspol
Link	Europe/London		GB
Link	Europe/London		GB-Eire
Link	Etc/GMT			GMT+0
Link	Etc/GMT			GMT-0
Link	Etc/GMT			GMT0
Link	Etc/GMT			Greenwich
Link	Asia/Hong_Kong		Hongkong
Link	Atlantic/Reykjavik	Iceland
Link	Asia/Tehran		Iran
Link	Asia/Jerusalem		Israel
Link	America/Jamaica		Jamaica
Link	Asia/Tokyo		Japan
Link	Pacific/Kwajalein	Kwajalein
Link	Africa/Tripoli		Libya
Link	America/Tijuana		Mexico/BajaNorte
Link	America/Mazatlan	Mexico/BajaSur
Link	America/Mexico_City	Mexico/General
Link	Pacific/Auckland	NZ
Link	Pacific/Chatham		NZ-CHAT
Link	America/Denver		Navajo
Link	Asia/Shanghai		PRC
Link	Pacific/Pohnpei		Pacific/Ponape
Link	Pacific/Pago_Pago	Pacific/Samoa
Link	Pacific/Chuuk		Pacific/Truk
Link	Pacific/Chuuk		Pacific/Yap
Link	Europe/Warsaw		Poland
Link	Europe/Lisbon		Portugal
Link	Asia/Taipei		ROC
Link	Asia/Seoul		ROK
Link	Asia/Singapore		Singapore
Link	Europe/Istanbul		Turkey
Link	Etc/UCT			UCT
Link	America/Anchorage	US/Alaska
Link	America/Adak		US/Aleutian
Link	America/Phoenix		US/Arizona
Link	America/Chicago		US/Central
Link	America/Indiana/Indianapolis	US/East-Indiana
Link	America/New_York	US/Eastern
Link	Pacific/Honolulu	US/Hawaii
Link	America/Indiana/Knox	US/Indiana-Starke
Link	America/Detroit		US/Michigan
Link	America/Denver		US/Mountain
Link	America/Los_Angeles	US/Pacific
Link	Pacific/Pago_Pago	US/Samoa
Link	Etc/UTC			UTC
Link	Etc/UTC			Universal
Link	Europe/Moscow		W-SU
Link	Etc/UTC			Zulu
