/*
 * Copyright 2012 Google Inc.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 * 
 * http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 */
package com.google.gwt.i18n.client.impl.cldr;

import com.google.gwt.core.client.JavaScriptObject;

// DO NOT EDIT - GENERATED FROM CLDR DATA

/**
 * Localized names for the "lt" locale.
 */
public class LocalizedNamesImpl_lt extends LocalizedNamesImpl {

  @Override
  public String[] loadSortedRegionCodes() {
    return new String[] {
        "AF",
        "IE",
        "AX",
        "AL",
        "DZ",
        "AS",
        "AD",
        "AI",
        "AO",
        "AQ",
        "AG",
        "AR",
        "AM",
        "AW",
        "AU",
        "AT",
        "AZ",
        "BS",
        "BH",
        "BY",
        "BD",
        "BB",
        "BE",
        "BZ",
        "BJ",
        "BM",
        "GW",
        "BO",
        "BA",
        "BW",
        "BR",
        "BN",
        "BG",
        "BF",
        "BI",
        "BT",
        "BV",
        "CF",
        "TD",
        "CZ",
        "CL",
        "AC",
        "DK",
        "VG",
        "DG",
        "DM",
        "DO",
        "CI",
        "JE",
        "DJ",
        "EG",
        "EC",
        "ER",
        "EE",
        "ET",
        "EU",
        "EZ",
        "FO",
        "FJ",
        "PH",
        "FK",
        "GA",
        "GY",
        "GM",
        "GH",
        "GG",
        "GI",
        "GR",
        "GD",
        "GL",
        "GE",
        "GU",
        "GP",
        "GT",
        "GN",
        "HT",
        "HM",
        "HN",
        "IN",
        "IO",
        "ID",
        "HK",
        "MO",
        "IQ",
        "IR",
        "IS",
        "ES",
        "IT",
        "IL",
        "JM",
        "JP",
        "YE",
        "JO",
        "GB",
        "UN",
        "US",
        "AE",
        "UM",
        "VI",
        "ME",
        "KY",
        "CX",
        "KH",
        "CM",
        "CA",
        "IC",
        "BQ",
        "QA",
        "KZ",
        "KE",
        "CN",
        "CY",
        "KG",
        "KI",
        "CW",
        "CP",
        "CC",
        "CO",
        "KM",
        "CG",
        "CD",
        "XK",
        "CR",
        "HR",
        "CU",
        "CK",
        "KW",
        "LA",
        "LV",
        "PL",
        "LS",
        "LB",
        "LR",
        "LY",
        "LI",
        "LT",
        "LU",
        "MG",
        "YT",
        "MK",
        "MY",
        "MW",
        "MV",
        "ML",
        "MT",
        "MP",
        "MA",
        "MH",
        "MQ",
        "MU",
        "MR",
        "MX",
        "IM",
        "MM",
        "FM",
        "MD",
        "MC",
        "MN",
        "MS",
        "MZ",
        "NA",
        "NC",
        "NZ",
        "NR",
        "NP",
        "NL",
        "NG",
        "NE",
        "NI",
        "NU",
        "NF",
        "NO",
        "QO",
        "OM",
        "PK",
        "PW",
        "PS",
        "PA",
        "PG",
        "PY",
        "PE",
        "ZA",
        "GS",
        "KR",
        "SS",
        "PN",
        "PT",
        "FR",
        "GF",
        "TF",
        "PF",
        "PR",
        "GQ",
        "RE",
        "TL",
        "RW",
        "RO",
        "RU",
        "SB",
        "SV",
        "WS",
        "SM",
        "ST",
        "SA",
        "SC",
        "BL",
        "SN",
        "MF",
        "PM",
        "KN",
        "LC",
        "RS",
        "EA",
        "SL",
        "SG",
        "SX",
        "SY",
        "SK",
        "SI",
        "SO",
        "SD",
        "FI",
        "SR",
        "SJ",
        "SZ",
        "KP",
        "LK",
        "SH",
        "SE",
        "CH",
        "VC",
        "TJ",
        "TH",
        "TW",
        "TZ",
        "TC",
        "TG",
        "TK",
        "TO",
        "TT",
        "TA",
        "TN",
        "TR",
        "TM",
        "TV",
        "UG",
        "UA",
        "UY",
        "UZ",
        "EH",
        "VU",
        "VA",
        "VE",
        "HU",
        "VN",
        "DE",
        "WF",
        "ZM",
        "ZW",
        "CV",
    };
  }

  @Override
  protected void loadNameMapJava() {
    super.loadNameMapJava();
    namesMap.put("001", "pasaulis");
    namesMap.put("002", "Afrika");
    namesMap.put("003", "Šiaurės Amerika");
    namesMap.put("005", "Pietų Amerika");
    namesMap.put("009", "Okeanija");
    namesMap.put("011", "Vakarų Afrika");
    namesMap.put("013", "Centrinė Amerika");
    namesMap.put("014", "Rytų Afrika");
    namesMap.put("015", "Šiaurės Afrika");
    namesMap.put("017", "Vidurio Afrika");
    namesMap.put("018", "Pietinė Afrika");
    namesMap.put("019", "Amerika");
    namesMap.put("021", "Šiaurinė Amerika");
    namesMap.put("029", "Karibai");
    namesMap.put("030", "Rytų Azija");
    namesMap.put("034", "Pietų Azija");
    namesMap.put("035", "Pietryčių Azija");
    namesMap.put("039", "Pietų Europa");
    namesMap.put("053", "Australazija");
    namesMap.put("054", "Melanezija");
    namesMap.put("057", "Mikronezijos regionas");
    namesMap.put("061", "Polinezija");
    namesMap.put("142", "Azija");
    namesMap.put("143", "Centrinė Azija");
    namesMap.put("145", "Vakarų Azija");
    namesMap.put("150", "Europa");
    namesMap.put("151", "Rytų Europa");
    namesMap.put("154", "Šiaurės Europa");
    namesMap.put("155", "Vakarų Europa");
    namesMap.put("419", "Lotynų Amerika");
    namesMap.put("AC", "Dangun Žengimo sala");
    namesMap.put("AD", "Andora");
    namesMap.put("AE", "Jungtiniai Arabų Emyratai");
    namesMap.put("AF", "Afganistanas");
    namesMap.put("AG", "Antigva ir Barbuda");
    namesMap.put("AI", "Angilija");
    namesMap.put("AL", "Albanija");
    namesMap.put("AM", "Armėnija");
    namesMap.put("AQ", "Antarktida");
    namesMap.put("AS", "Amerikos Samoa");
    namesMap.put("AT", "Austrija");
    namesMap.put("AU", "Australija");
    namesMap.put("AX", "Alandų Salos");
    namesMap.put("AZ", "Azerbaidžanas");
    namesMap.put("BA", "Bosnija ir Hercegovina");
    namesMap.put("BB", "Barbadosas");
    namesMap.put("BD", "Bangladešas");
    namesMap.put("BE", "Belgija");
    namesMap.put("BF", "Burkina Fasas");
    namesMap.put("BG", "Bulgarija");
    namesMap.put("BH", "Bahreinas");
    namesMap.put("BI", "Burundis");
    namesMap.put("BJ", "Beninas");
    namesMap.put("BL", "Sen Bartelemi");
    namesMap.put("BN", "Brunėjus");
    namesMap.put("BO", "Bolivija");
    namesMap.put("BQ", "Karibų Nyderlandai");
    namesMap.put("BR", "Brazilija");
    namesMap.put("BS", "Bahamos");
    namesMap.put("BT", "Butanas");
    namesMap.put("BV", "Buvė Sala");
    namesMap.put("BW", "Botsvana");
    namesMap.put("BY", "Baltarusija");
    namesMap.put("BZ", "Belizas");
    namesMap.put("CA", "Kanada");
    namesMap.put("CC", "Kokosų (Kilingo) Salos");
    namesMap.put("CD", "Kongas-Kinšasa");
    namesMap.put("CF", "Centrinės Afrikos Respublika");
    namesMap.put("CG", "Kongas-Brazavilis");
    namesMap.put("CH", "Šveicarija");
    namesMap.put("CI", "Dramblio Kaulo Krantas");
    namesMap.put("CK", "Kuko Salos");
    namesMap.put("CL", "Čilė");
    namesMap.put("CM", "Kamerūnas");
    namesMap.put("CN", "Kinija");
    namesMap.put("CO", "Kolumbija");
    namesMap.put("CP", "Klipertono sala");
    namesMap.put("CR", "Kosta Rika");
    namesMap.put("CU", "Kuba");
    namesMap.put("CV", "Žaliasis Kyšulys");
    namesMap.put("CW", "Kiurasao");
    namesMap.put("CX", "Kalėdų Sala");
    namesMap.put("CY", "Kipras");
    namesMap.put("CZ", "Čekija");
    namesMap.put("DE", "Vokietija");
    namesMap.put("DG", "Diego Garsija");
    namesMap.put("DJ", "Džibutis");
    namesMap.put("DK", "Danija");
    namesMap.put("DM", "Dominika");
    namesMap.put("DO", "Dominikos Respublika");
    namesMap.put("DZ", "Alžyras");
    namesMap.put("EA", "Seuta ir Melila");
    namesMap.put("EC", "Ekvadoras");
    namesMap.put("EE", "Estija");
    namesMap.put("EG", "Egiptas");
    namesMap.put("EH", "Vakarų Sachara");
    namesMap.put("ER", "Eritrėja");
    namesMap.put("ES", "Ispanija");
    namesMap.put("ET", "Etiopija");
    namesMap.put("EU", "Europos Sąjunga");
    namesMap.put("EZ", "euro zona");
    namesMap.put("FI", "Suomija");
    namesMap.put("FJ", "Fidžis");
    namesMap.put("FK", "Folklando Salos");
    namesMap.put("FM", "Mikronezija");
    namesMap.put("FO", "Farerų Salos");
    namesMap.put("FR", "Prancūzija");
    namesMap.put("GA", "Gabonas");
    namesMap.put("GB", "Jungtinė Karalystė");
    namesMap.put("GE", "Gruzija");
    namesMap.put("GF", "Prancūzijos Gviana");
    namesMap.put("GG", "Gernsis");
    namesMap.put("GH", "Gana");
    namesMap.put("GI", "Gibraltaras");
    namesMap.put("GL", "Grenlandija");
    namesMap.put("GM", "Gambija");
    namesMap.put("GN", "Gvinėja");
    namesMap.put("GP", "Gvadelupa");
    namesMap.put("GQ", "Pusiaujo Gvinėja");
    namesMap.put("GR", "Graikija");
    namesMap.put("GS", "Pietų Džordžija ir Pietų Sandvičo salos");
    namesMap.put("GT", "Gvatemala");
    namesMap.put("GU", "Guamas");
    namesMap.put("GW", "Bisau Gvinėja");
    namesMap.put("GY", "Gajana");
    namesMap.put("HK", "Ypatingasis Administracinis Kinijos Regionas Honkongas");
    namesMap.put("HM", "Herdo ir Makdonaldo Salos");
    namesMap.put("HN", "Hondūras");
    namesMap.put("HR", "Kroatija");
    namesMap.put("HT", "Haitis");
    namesMap.put("HU", "Vengrija");
    namesMap.put("IC", "Kanarų salos");
    namesMap.put("ID", "Indonezija");
    namesMap.put("IE", "Airija");
    namesMap.put("IL", "Izraelis");
    namesMap.put("IM", "Meno Sala");
    namesMap.put("IN", "Indija");
    namesMap.put("IO", "Indijos Vandenyno Britų Sritis");
    namesMap.put("IQ", "Irakas");
    namesMap.put("IR", "Iranas");
    namesMap.put("IS", "Islandija");
    namesMap.put("IT", "Italija");
    namesMap.put("JE", "Džersis");
    namesMap.put("JM", "Jamaika");
    namesMap.put("JO", "Jordanija");
    namesMap.put("JP", "Japonija");
    namesMap.put("KE", "Kenija");
    namesMap.put("KG", "Kirgizija");
    namesMap.put("KH", "Kambodža");
    namesMap.put("KI", "Kiribatis");
    namesMap.put("KM", "Komorai");
    namesMap.put("KN", "Sent Kitsas ir Nevis");
    namesMap.put("KP", "Šiaurės Korėja");
    namesMap.put("KR", "Pietų Korėja");
    namesMap.put("KW", "Kuveitas");
    namesMap.put("KY", "Kaimanų Salos");
    namesMap.put("KZ", "Kazachstanas");
    namesMap.put("LA", "Laosas");
    namesMap.put("LB", "Libanas");
    namesMap.put("LC", "Sent Lusija");
    namesMap.put("LI", "Lichtenšteinas");
    namesMap.put("LK", "Šri Lanka");
    namesMap.put("LR", "Liberija");
    namesMap.put("LS", "Lesotas");
    namesMap.put("LT", "Lietuva");
    namesMap.put("LU", "Liuksemburgas");
    namesMap.put("LV", "Latvija");
    namesMap.put("LY", "Libija");
    namesMap.put("MA", "Marokas");
    namesMap.put("MC", "Monakas");
    namesMap.put("ME", "Juodkalnija");
    namesMap.put("MF", "Sen Martenas");
    namesMap.put("MG", "Madagaskaras");
    namesMap.put("MH", "Maršalo Salos");
    namesMap.put("MK", "Makedonija");
    namesMap.put("ML", "Malis");
    namesMap.put("MM", "Mianmaras (Birma)");
    namesMap.put("MN", "Mongolija");
    namesMap.put("MO", "Ypatingasis Administracinis Kinijos Regionas Makao");
    namesMap.put("MP", "Marianos Šiaurinės Salos");
    namesMap.put("MQ", "Martinika");
    namesMap.put("MR", "Mauritanija");
    namesMap.put("MS", "Montseratas");
    namesMap.put("MU", "Mauricijus");
    namesMap.put("MV", "Maldyvai");
    namesMap.put("MW", "Malavis");
    namesMap.put("MX", "Meksika");
    namesMap.put("MY", "Malaizija");
    namesMap.put("MZ", "Mozambikas");
    namesMap.put("NA", "Namibija");
    namesMap.put("NC", "Naujoji Kaledonija");
    namesMap.put("NE", "Nigeris");
    namesMap.put("NF", "Norfolko sala");
    namesMap.put("NG", "Nigerija");
    namesMap.put("NI", "Nikaragva");
    namesMap.put("NL", "Nyderlandai");
    namesMap.put("NO", "Norvegija");
    namesMap.put("NP", "Nepalas");
    namesMap.put("NU", "Niujė");
    namesMap.put("NZ", "Naujoji Zelandija");
    namesMap.put("OM", "Omanas");
    namesMap.put("PF", "Prancūzijos Polinezija");
    namesMap.put("PG", "Papua Naujoji Gvinėja");
    namesMap.put("PH", "Filipinai");
    namesMap.put("PK", "Pakistanas");
    namesMap.put("PL", "Lenkija");
    namesMap.put("PM", "Sen Pjeras ir Mikelonas");
    namesMap.put("PN", "Pitkerno salos");
    namesMap.put("PR", "Puerto Rikas");
    namesMap.put("PS", "Palestinos teritorija");
    namesMap.put("PT", "Portugalija");
    namesMap.put("PY", "Paragvajus");
    namesMap.put("QA", "Kataras");
    namesMap.put("QO", "Nuošali Okeanija");
    namesMap.put("RE", "Reunjonas");
    namesMap.put("RO", "Rumunija");
    namesMap.put("RS", "Serbija");
    namesMap.put("RU", "Rusija");
    namesMap.put("RW", "Ruanda");
    namesMap.put("SA", "Saudo Arabija");
    namesMap.put("SB", "Saliamono Salos");
    namesMap.put("SC", "Seišeliai");
    namesMap.put("SD", "Sudanas");
    namesMap.put("SE", "Švedija");
    namesMap.put("SG", "Singapūras");
    namesMap.put("SH", "Šv. Elenos Sala");
    namesMap.put("SI", "Slovėnija");
    namesMap.put("SJ", "Svalbardas ir Janas Majenas");
    namesMap.put("SK", "Slovakija");
    namesMap.put("SL", "Siera Leonė");
    namesMap.put("SM", "San Marinas");
    namesMap.put("SN", "Senegalas");
    namesMap.put("SO", "Somalis");
    namesMap.put("SR", "Surinamas");
    namesMap.put("SS", "Pietų Sudanas");
    namesMap.put("ST", "San Tomė ir Prinsipė");
    namesMap.put("SV", "Salvadoras");
    namesMap.put("SX", "Sint Martenas");
    namesMap.put("SY", "Sirija");
    namesMap.put("SZ", "Svazilandas");
    namesMap.put("TA", "Tristanas da Kunja");
    namesMap.put("TC", "Terkso ir Kaikoso Salos");
    namesMap.put("TD", "Čadas");
    namesMap.put("TF", "Prancūzijos Pietų sritys");
    namesMap.put("TG", "Togas");
    namesMap.put("TH", "Tailandas");
    namesMap.put("TJ", "Tadžikija");
    namesMap.put("TL", "Rytų Timoras");
    namesMap.put("TM", "Turkmėnistanas");
    namesMap.put("TN", "Tunisas");
    namesMap.put("TR", "Turkija");
    namesMap.put("TT", "Trinidadas ir Tobagas");
    namesMap.put("TW", "Taivanas");
    namesMap.put("TZ", "Tanzanija");
    namesMap.put("UA", "Ukraina");
    namesMap.put("UM", "Jungtinių Valstijų Mažosios Tolimosios Salos");
    namesMap.put("UN", "Jungtinės Tautos");
    namesMap.put("US", "Jungtinės Valstijos");
    namesMap.put("UY", "Urugvajus");
    namesMap.put("UZ", "Uzbekistanas");
    namesMap.put("VA", "Vatikano Miesto Valstybė");
    namesMap.put("VC", "Šventasis Vincentas ir Grenadinai");
    namesMap.put("VE", "Venesuela");
    namesMap.put("VG", "Didžiosios Britanijos Mergelių Salos");
    namesMap.put("VI", "Jungtinių Valstijų Mergelių Salos");
    namesMap.put("VN", "Vietnamas");
    namesMap.put("WF", "Volisas ir Futūna");
    namesMap.put("XK", "Kosovas");
    namesMap.put("YE", "Jemenas");
    namesMap.put("YT", "Majotas");
    namesMap.put("ZA", "Pietų Afrika");
    namesMap.put("ZM", "Zambija");
    namesMap.put("ZW", "Zimbabvė");
    namesMap.put("ZZ", "nežinoma sritis");
  }

  @Override
  protected JavaScriptObject loadNameMapNative() {
    return overrideMap(super.loadNameMapNative(), loadMyNameMap());
  }

  private native JavaScriptObject loadMyNameMap() /*-{
    return {
        "001": "pasaulis",
        "002": "Afrika",
        "003": "Šiaurės Amerika",
        "005": "Pietų Amerika",
        "009": "Okeanija",
        "011": "Vakarų Afrika",
        "013": "Centrinė Amerika",
        "014": "Rytų Afrika",
        "015": "Šiaurės Afrika",
        "017": "Vidurio Afrika",
        "018": "Pietinė Afrika",
        "019": "Amerika",
        "021": "Šiaurinė Amerika",
        "029": "Karibai",
        "030": "Rytų Azija",
        "034": "Pietų Azija",
        "035": "Pietryčių Azija",
        "039": "Pietų Europa",
        "053": "Australazija",
        "054": "Melanezija",
        "057": "Mikronezijos regionas",
        "061": "Polinezija",
        "142": "Azija",
        "143": "Centrinė Azija",
        "145": "Vakarų Azija",
        "150": "Europa",
        "151": "Rytų Europa",
        "154": "Šiaurės Europa",
        "155": "Vakarų Europa",
        "419": "Lotynų Amerika",
        "AC": "Dangun Žengimo sala",
        "AD": "Andora",
        "AE": "Jungtiniai Arabų Emyratai",
        "AF": "Afganistanas",
        "AG": "Antigva ir Barbuda",
        "AI": "Angilija",
        "AL": "Albanija",
        "AM": "Armėnija",
        "AQ": "Antarktida",
        "AS": "Amerikos Samoa",
        "AT": "Austrija",
        "AU": "Australija",
        "AX": "Alandų Salos",
        "AZ": "Azerbaidžanas",
        "BA": "Bosnija ir Hercegovina",
        "BB": "Barbadosas",
        "BD": "Bangladešas",
        "BE": "Belgija",
        "BF": "Burkina Fasas",
        "BG": "Bulgarija",
        "BH": "Bahreinas",
        "BI": "Burundis",
        "BJ": "Beninas",
        "BL": "Sen Bartelemi",
        "BN": "Brunėjus",
        "BO": "Bolivija",
        "BQ": "Karibų Nyderlandai",
        "BR": "Brazilija",
        "BS": "Bahamos",
        "BT": "Butanas",
        "BV": "Buvė Sala",
        "BW": "Botsvana",
        "BY": "Baltarusija",
        "BZ": "Belizas",
        "CA": "Kanada",
        "CC": "Kokosų (Kilingo) Salos",
        "CD": "Kongas-Kinšasa",
        "CF": "Centrinės Afrikos Respublika",
        "CG": "Kongas-Brazavilis",
        "CH": "Šveicarija",
        "CI": "Dramblio Kaulo Krantas",
        "CK": "Kuko Salos",
        "CL": "Čilė",
        "CM": "Kamerūnas",
        "CN": "Kinija",
        "CO": "Kolumbija",
        "CP": "Klipertono sala",
        "CR": "Kosta Rika",
        "CU": "Kuba",
        "CV": "Žaliasis Kyšulys",
        "CW": "Kiurasao",
        "CX": "Kalėdų Sala",
        "CY": "Kipras",
        "CZ": "Čekija",
        "DE": "Vokietija",
        "DG": "Diego Garsija",
        "DJ": "Džibutis",
        "DK": "Danija",
        "DM": "Dominika",
        "DO": "Dominikos Respublika",
        "DZ": "Alžyras",
        "EA": "Seuta ir Melila",
        "EC": "Ekvadoras",
        "EE": "Estija",
        "EG": "Egiptas",
        "EH": "Vakarų Sachara",
        "ER": "Eritrėja",
        "ES": "Ispanija",
        "ET": "Etiopija",
        "EU": "Europos Sąjunga",
        "EZ": "euro zona",
        "FI": "Suomija",
        "FJ": "Fidžis",
        "FK": "Folklando Salos",
        "FM": "Mikronezija",
        "FO": "Farerų Salos",
        "FR": "Prancūzija",
        "GA": "Gabonas",
        "GB": "Jungtinė Karalystė",
        "GE": "Gruzija",
        "GF": "Prancūzijos Gviana",
        "GG": "Gernsis",
        "GH": "Gana",
        "GI": "Gibraltaras",
        "GL": "Grenlandija",
        "GM": "Gambija",
        "GN": "Gvinėja",
        "GP": "Gvadelupa",
        "GQ": "Pusiaujo Gvinėja",
        "GR": "Graikija",
        "GS": "Pietų Džordžija ir Pietų Sandvičo salos",
        "GT": "Gvatemala",
        "GU": "Guamas",
        "GW": "Bisau Gvinėja",
        "GY": "Gajana",
        "HK": "Ypatingasis Administracinis Kinijos Regionas Honkongas",
        "HM": "Herdo ir Makdonaldo Salos",
        "HN": "Hondūras",
        "HR": "Kroatija",
        "HT": "Haitis",
        "HU": "Vengrija",
        "IC": "Kanarų salos",
        "ID": "Indonezija",
        "IE": "Airija",
        "IL": "Izraelis",
        "IM": "Meno Sala",
        "IN": "Indija",
        "IO": "Indijos Vandenyno Britų Sritis",
        "IQ": "Irakas",
        "IR": "Iranas",
        "IS": "Islandija",
        "IT": "Italija",
        "JE": "Džersis",
        "JM": "Jamaika",
        "JO": "Jordanija",
        "JP": "Japonija",
        "KE": "Kenija",
        "KG": "Kirgizija",
        "KH": "Kambodža",
        "KI": "Kiribatis",
        "KM": "Komorai",
        "KN": "Sent Kitsas ir Nevis",
        "KP": "Šiaurės Korėja",
        "KR": "Pietų Korėja",
        "KW": "Kuveitas",
        "KY": "Kaimanų Salos",
        "KZ": "Kazachstanas",
        "LA": "Laosas",
        "LB": "Libanas",
        "LC": "Sent Lusija",
        "LI": "Lichtenšteinas",
        "LK": "Šri Lanka",
        "LR": "Liberija",
        "LS": "Lesotas",
        "LT": "Lietuva",
        "LU": "Liuksemburgas",
        "LV": "Latvija",
        "LY": "Libija",
        "MA": "Marokas",
        "MC": "Monakas",
        "ME": "Juodkalnija",
        "MF": "Sen Martenas",
        "MG": "Madagaskaras",
        "MH": "Maršalo Salos",
        "MK": "Makedonija",
        "ML": "Malis",
        "MM": "Mianmaras (Birma)",
        "MN": "Mongolija",
        "MO": "Ypatingasis Administracinis Kinijos Regionas Makao",
        "MP": "Marianos Šiaurinės Salos",
        "MQ": "Martinika",
        "MR": "Mauritanija",
        "MS": "Montseratas",
        "MU": "Mauricijus",
        "MV": "Maldyvai",
        "MW": "Malavis",
        "MX": "Meksika",
        "MY": "Malaizija",
        "MZ": "Mozambikas",
        "NA": "Namibija",
        "NC": "Naujoji Kaledonija",
        "NE": "Nigeris",
        "NF": "Norfolko sala",
        "NG": "Nigerija",
        "NI": "Nikaragva",
        "NL": "Nyderlandai",
        "NO": "Norvegija",
        "NP": "Nepalas",
        "NU": "Niujė",
        "NZ": "Naujoji Zelandija",
        "OM": "Omanas",
        "PF": "Prancūzijos Polinezija",
        "PG": "Papua Naujoji Gvinėja",
        "PH": "Filipinai",
        "PK": "Pakistanas",
        "PL": "Lenkija",
        "PM": "Sen Pjeras ir Mikelonas",
        "PN": "Pitkerno salos",
        "PR": "Puerto Rikas",
        "PS": "Palestinos teritorija",
        "PT": "Portugalija",
        "PY": "Paragvajus",
        "QA": "Kataras",
        "QO": "Nuošali Okeanija",
        "RE": "Reunjonas",
        "RO": "Rumunija",
        "RS": "Serbija",
        "RU": "Rusija",
        "RW": "Ruanda",
        "SA": "Saudo Arabija",
        "SB": "Saliamono Salos",
        "SC": "Seišeliai",
        "SD": "Sudanas",
        "SE": "Švedija",
        "SG": "Singapūras",
        "SH": "Šv. Elenos Sala",
        "SI": "Slovėnija",
        "SJ": "Svalbardas ir Janas Majenas",
        "SK": "Slovakija",
        "SL": "Siera Leonė",
        "SM": "San Marinas",
        "SN": "Senegalas",
        "SO": "Somalis",
        "SR": "Surinamas",
        "SS": "Pietų Sudanas",
        "ST": "San Tomė ir Prinsipė",
        "SV": "Salvadoras",
        "SX": "Sint Martenas",
        "SY": "Sirija",
        "SZ": "Svazilandas",
        "TA": "Tristanas da Kunja",
        "TC": "Terkso ir Kaikoso Salos",
        "TD": "Čadas",
        "TF": "Prancūzijos Pietų sritys",
        "TG": "Togas",
        "TH": "Tailandas",
        "TJ": "Tadžikija",
        "TL": "Rytų Timoras",
        "TM": "Turkmėnistanas",
        "TN": "Tunisas",
        "TR": "Turkija",
        "TT": "Trinidadas ir Tobagas",
        "TW": "Taivanas",
        "TZ": "Tanzanija",
        "UA": "Ukraina",
        "UM": "Jungtinių Valstijų Mažosios Tolimosios Salos",
        "UN": "Jungtinės Tautos",
        "US": "Jungtinės Valstijos",
        "UY": "Urugvajus",
        "UZ": "Uzbekistanas",
        "VA": "Vatikano Miesto Valstybė",
        "VC": "Šventasis Vincentas ir Grenadinai",
        "VE": "Venesuela",
        "VG": "Didžiosios Britanijos Mergelių Salos",
        "VI": "Jungtinių Valstijų Mergelių Salos",
        "VN": "Vietnamas",
        "WF": "Volisas ir Futūna",
        "XK": "Kosovas",
        "YE": "Jemenas",
        "YT": "Majotas",
        "ZA": "Pietų Afrika",
        "ZM": "Zambija",
        "ZW": "Zimbabvė",
        "ZZ": "nežinoma sritis"
    };
  }-*/;
}
