﻿// ***************************************************************************
// *
// * Copyright (C) 2010 International Business Machines
// * Corporation and others.  All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
// * Source File:<path>/windowsZones.xml
// *
// ***************************************************************************
windowsZones:table(nofallback){
    mapTimezones{
        AUS Central Standard Time{
            001{"Australia/Darwin"}
        }
        AUS Eastern Standard Time{
            001{"Australia/Sydney"}
        }
        Afghanistan Standard Time{
            001{"Asia/Kabul"}
        }
        Alaskan Standard Time{
            001{"America/Anchorage"}
        }
        Arab Standard Time{
            001{"Asia/Riyadh"}
        }
        Arabian Standard Time{
            001{"Asia/Dubai"}
        }
        Arabic Standard Time{
            001{"Asia/Baghdad"}
        }
        Argentina Standard Time{
            001{"America/Buenos_Aires"}
        }
        Armenian Standard Time{
            001{"Asia/Yerevan"}
        }
        Atlantic Standard Time{
            001{"America/Halifax"}
        }
        Azerbaijan Standard Time{
            001{"Asia/Baku"}
        }
        Azores Standard Time{
            001{"Atlantic/Azores"}
        }
        Bangladesh Standard Time{
            001{"Asia/Dhaka"}
        }
        Canada Central Standard Time{
            001{"America/Regina"}
        }
        Cape Verde Standard Time{
            001{"Atlantic/Cape_Verde"}
        }
        Caucasus Standard Time{
            001{"Asia/Yerevan"}
        }
        Cen. Australia Standard Time{
            001{"Australia/Adelaide"}
        }
        Central America Standard Time{
            001{"America/Guatemala"}
        }
        Central Asia Standard Time{
            001{"Asia/Almaty"}
        }
        Central Brazilian Standard Time{
            001{"America/Campo_Grande"}
        }
        Central Europe Standard Time{
            001{"Europe/Budapest"}
        }
        Central European Standard Time{
            001{"Europe/Warsaw"}
        }
        Central Pacific Standard Time{
            001{"Pacific/Guadalcanal"}
        }
        Central Standard Time{
            001{"America/Chicago"}
        }
        Central Standard Time (Mexico){
            001{"America/Mexico_City"}
        }
        China Standard Time{
            001{"Asia/Shanghai"}
        }
        Dateline Standard Time{
            001{"Etc/GMT+12"}
        }
        E. Africa Standard Time{
            001{"Africa/Nairobi"}
        }
        E. Australia Standard Time{
            001{"Australia/Brisbane"}
        }
        E. Europe Standard Time{
            001{"Europe/Minsk"}
        }
        E. South America Standard Time{
            001{"America/Sao_Paulo"}
        }
        Eastern Standard Time{
            001{"America/New_York"}
        }
        Egypt Standard Time{
            001{"Africa/Cairo"}
        }
        Ekaterinburg Standard Time{
            001{"Asia/Yekaterinburg"}
        }
        FLE Standard Time{
            001{"Europe/Kiev"}
        }
        Fiji Standard Time{
            001{"Pacific/Fiji"}
        }
        GMT Standard Time{
            001{"Europe/London"}
        }
        GTB Standard Time{
            001{"Europe/Istanbul"}
        }
        Georgian Standard Time{
            001{"Etc/GMT-3"}
        }
        Greenland Standard Time{
            001{"America/Godthab"}
        }
        Greenwich Standard Time{
            001{"Atlantic/Reykjavik"}
        }
        Hawaiian Standard Time{
            001{"Pacific/Honolulu"}
        }
        India Standard Time{
            001{"Asia/Calcutta"}
        }
        Iran Standard Time{
            001{"Asia/Tehran"}
        }
        Israel Standard Time{
            001{"Asia/Jerusalem"}
        }
        Jordan Standard Time{
            001{"Asia/Amman"}
        }
        Kamchatka Standard Time{
            001{"Asia/Kamchatka"}
        }
        Korea Standard Time{
            001{"Asia/Seoul"}
        }
        Mauritius Standard Time{
            001{"Indian/Mauritius"}
        }
        Mexico Standard Time{
            001{"America/Mexico_City"}
        }
        Mexico Standard Time 2{
            001{"America/Chihuahua"}
        }
        Mid-Atlantic Standard Time{
            001{"Etc/GMT+2"}
        }
        Middle East Standard Time{
            001{"Asia/Beirut"}
        }
        Montevideo Standard Time{
            001{"America/Montevideo"}
        }
        Morocco Standard Time{
            001{"Africa/Casablanca"}
        }
        Mountain Standard Time{
            001{"America/Denver"}
        }
        Mountain Standard Time (Mexico){
            001{"America/Chihuahua"}
        }
        Myanmar Standard Time{
            001{"Asia/Rangoon"}
        }
        N. Central Asia Standard Time{
            001{"Asia/Novosibirsk"}
        }
        Namibia Standard Time{
            001{"Africa/Windhoek"}
        }
        Nepal Standard Time{
            001{"Asia/Katmandu"}
        }
        New Zealand Standard Time{
            001{"Pacific/Auckland"}
        }
        Newfoundland Standard Time{
            001{"America/St_Johns"}
        }
        North Asia East Standard Time{
            001{"Asia/Irkutsk"}
        }
        North Asia Standard Time{
            001{"Asia/Krasnoyarsk"}
        }
        Pacific SA Standard Time{
            001{"America/Santiago"}
        }
        Pacific Standard Time{
            001{"America/Los_Angeles"}
        }
        Pacific Standard Time (Mexico){
            001{"America/Tijuana"}
        }
        Pakistan Standard Time{
            001{"Asia/Karachi"}
        }
        Paraguay Standard Time{
            001{"America/Asuncion"}
        }
        Romance Standard Time{
            001{"Europe/Paris"}
        }
        Russian Standard Time{
            001{"Europe/Moscow"}
        }
        SA Eastern Standard Time{
            001{"America/Cayenne"}
        }
        SA Pacific Standard Time{
            001{"America/Bogota"}
        }
        SA Western Standard Time{
            001{"America/La_Paz"}
        }
        SE Asia Standard Time{
            001{"Asia/Bangkok"}
        }
        Samoa Standard Time{
            001{"Pacific/Apia"}
        }
        Singapore Standard Time{
            001{"Asia/Singapore"}
        }
        South Africa Standard Time{
            001{"Africa/Johannesburg"}
        }
        Sri Lanka Standard Time{
            001{"Asia/Colombo"}
        }
        Taipei Standard Time{
            001{"Asia/Taipei"}
        }
        Tasmania Standard Time{
            001{"Australia/Hobart"}
        }
        Tokyo Standard Time{
            001{"Asia/Tokyo"}
        }
        Tonga Standard Time{
            001{"Pacific/Tongatapu"}
        }
        US Eastern Standard Time{
            001{"Etc/GMT+5"}
        }
        US Mountain Standard Time{
            001{"America/Phoenix"}
        }
        UTC{
            001{"Etc/GMT"}
        }
        Ulaanbaatar Standard Time{
            001{"Asia/Ulaanbaatar"}
        }
        Venezuela Standard Time{
            001{"America/Caracas"}
        }
        Vladivostok Standard Time{
            001{"Asia/Vladivostok"}
        }
        W. Australia Standard Time{
            001{"Australia/Perth"}
        }
        W. Central Africa Standard Time{
            001{"Africa/Lagos"}
        }
        W. Europe Standard Time{
            001{"Europe/Berlin"}
        }
        West Asia Standard Time{
            001{"Asia/Tashkent"}
        }
        West Pacific Standard Time{
            001{"Pacific/Port_Moresby"}
        }
        Yakutsk Standard Time{
            001{"Asia/Yakutsk"}
        }
    }
}
