/*
 * 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 "sl" locale.
 */
public class LocalizedNamesImpl_sl extends LocalizedNamesImpl {

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

  @Override
  protected void loadNameMapJava() {
    super.loadNameMapJava();
    namesMap.put("001", "svet");
    namesMap.put("002", "Afrika");
    namesMap.put("003", "Severna Amerika");
    namesMap.put("005", "Južna Amerika");
    namesMap.put("009", "Oceanija");
    namesMap.put("011", "Zahodna Afrika");
    namesMap.put("013", "Srednja Amerika");
    namesMap.put("014", "Vzhodna Afrika");
    namesMap.put("015", "Severna Afrika");
    namesMap.put("017", "Srednja Afrika");
    namesMap.put("018", "Južna Afrika");
    namesMap.put("019", "Amerike");
    namesMap.put("021", "severnoameriška celina");
    namesMap.put("029", "Karibi");
    namesMap.put("030", "Vzhodna Azija");
    namesMap.put("034", "Južna Azija");
    namesMap.put("035", "Jugovzhodna Azija");
    namesMap.put("039", "Južna Evropa");
    namesMap.put("053", "Avstralija in Nova Zelandija");
    namesMap.put("054", "Melanezija");
    namesMap.put("057", "mikronezijska regija");
    namesMap.put("061", "Polinezija");
    namesMap.put("142", "Azija");
    namesMap.put("143", "Osrednja Azija");
    namesMap.put("145", "Zahodna Azija");
    namesMap.put("150", "Evropa");
    namesMap.put("151", "Vzhodna Evropa");
    namesMap.put("154", "Severna Evropa");
    namesMap.put("155", "Zahodna Evropa");
    namesMap.put("202", "podsaharska Afrika");
    namesMap.put("419", "Latinska Amerika");
    namesMap.put("AC", "Otok Ascension");
    namesMap.put("AD", "Andora");
    namesMap.put("AE", "Združeni arabski emirati");
    namesMap.put("AF", "Afganistan");
    namesMap.put("AG", "Antigva in Barbuda");
    namesMap.put("AI", "Angvila");
    namesMap.put("AL", "Albanija");
    namesMap.put("AM", "Armenija");
    namesMap.put("AQ", "Antarktika");
    namesMap.put("AS", "Ameriška Samoa");
    namesMap.put("AT", "Avstrija");
    namesMap.put("AU", "Avstralija");
    namesMap.put("AX", "Ålandski otoki");
    namesMap.put("AZ", "Azerbajdžan");
    namesMap.put("BA", "Bosna in Hercegovina");
    namesMap.put("BD", "Bangladeš");
    namesMap.put("BE", "Belgija");
    namesMap.put("BG", "Bolgarija");
    namesMap.put("BH", "Bahrajn");
    namesMap.put("BL", "Saint Barthélemy");
    namesMap.put("BM", "Bermudi");
    namesMap.put("BN", "Brunej");
    namesMap.put("BO", "Bolivija");
    namesMap.put("BQ", "Nizozemski Karibi");
    namesMap.put("BR", "Brazilija");
    namesMap.put("BS", "Bahami");
    namesMap.put("BT", "Butan");
    namesMap.put("BV", "Bouvetov otok");
    namesMap.put("BW", "Bocvana");
    namesMap.put("BY", "Belorusija");
    namesMap.put("CA", "Kanada");
    namesMap.put("CC", "Kokosovi otoki");
    namesMap.put("CD", "Demokratična republika Kongo");
    namesMap.put("CF", "Centralnoafriška republika");
    namesMap.put("CG", "Kongo - Brazzaville");
    namesMap.put("CH", "Švica");
    namesMap.put("CI", "Slonokoščena obala");
    namesMap.put("CK", "Cookovi otoki");
    namesMap.put("CL", "Čile");
    namesMap.put("CM", "Kamerun");
    namesMap.put("CN", "Kitajska");
    namesMap.put("CO", "Kolumbija");
    namesMap.put("CP", "Otok Clipperton");
    namesMap.put("CR", "Kostarika");
    namesMap.put("CU", "Kuba");
    namesMap.put("CV", "Zelenortski otoki");
    namesMap.put("CX", "Božični otok");
    namesMap.put("CY", "Ciper");
    namesMap.put("CZ", "Češka");
    namesMap.put("DE", "Nemčija");
    namesMap.put("DJ", "Džibuti");
    namesMap.put("DK", "Danska");
    namesMap.put("DM", "Dominika");
    namesMap.put("DO", "Dominikanska republika");
    namesMap.put("DZ", "Alžirija");
    namesMap.put("EA", "Ceuta in Melilla");
    namesMap.put("EC", "Ekvador");
    namesMap.put("EE", "Estonija");
    namesMap.put("EG", "Egipt");
    namesMap.put("EH", "Zahodna Sahara");
    namesMap.put("ER", "Eritreja");
    namesMap.put("ES", "Španija");
    namesMap.put("ET", "Etiopija");
    namesMap.put("EU", "Evropska unija");
    namesMap.put("EZ", "evroobmočje");
    namesMap.put("FI", "Finska");
    namesMap.put("FJ", "Fidži");
    namesMap.put("FK", "Falklandski otoki");
    namesMap.put("FM", "Mikronezija");
    namesMap.put("FO", "Ferski otoki");
    namesMap.put("FR", "Francija");
    namesMap.put("GB", "Združeno kraljestvo");
    namesMap.put("GE", "Gruzija");
    namesMap.put("GF", "Francoska Gvajana");
    namesMap.put("GH", "Gana");
    namesMap.put("GL", "Grenlandija");
    namesMap.put("GM", "Gambija");
    namesMap.put("GN", "Gvineja");
    namesMap.put("GQ", "Ekvatorialna Gvineja");
    namesMap.put("GR", "Grčija");
    namesMap.put("GS", "Južna Georgia in Južni Sandwichevi otoki");
    namesMap.put("GT", "Gvatemala");
    namesMap.put("GW", "Gvineja Bissau");
    namesMap.put("GY", "Gvajana");
    namesMap.put("HK", "Posebno administrativno območje LR Kitajske Hongkong");
    namesMap.put("HM", "Heardov otok in McDonaldovi otoki");
    namesMap.put("HR", "Hrvaška");
    namesMap.put("HU", "Madžarska");
    namesMap.put("IC", "Kanarski otoki");
    namesMap.put("ID", "Indonezija");
    namesMap.put("IE", "Irska");
    namesMap.put("IL", "Izrael");
    namesMap.put("IM", "Otok Man");
    namesMap.put("IN", "Indija");
    namesMap.put("IO", "Britansko ozemlje v Indijskem oceanu");
    namesMap.put("IQ", "Irak");
    namesMap.put("IS", "Islandija");
    namesMap.put("IT", "Italija");
    namesMap.put("JM", "Jamajka");
    namesMap.put("JO", "Jordanija");
    namesMap.put("JP", "Japonska");
    namesMap.put("KE", "Kenija");
    namesMap.put("KG", "Kirgizistan");
    namesMap.put("KH", "Kambodža");
    namesMap.put("KM", "Komori");
    namesMap.put("KN", "Saint Kitts in Nevis");
    namesMap.put("KP", "Severna Koreja");
    namesMap.put("KR", "Južna Koreja");
    namesMap.put("KW", "Kuvajt");
    namesMap.put("KY", "Kajmanski otoki");
    namesMap.put("KZ", "Kazahstan");
    namesMap.put("LB", "Libanon");
    namesMap.put("LC", "Saint Lucia");
    namesMap.put("LI", "Lihtenštajn");
    namesMap.put("LK", "Šrilanka");
    namesMap.put("LR", "Liberija");
    namesMap.put("LS", "Lesoto");
    namesMap.put("LT", "Litva");
    namesMap.put("LU", "Luksemburg");
    namesMap.put("LV", "Latvija");
    namesMap.put("LY", "Libija");
    namesMap.put("MA", "Maroko");
    namesMap.put("MC", "Monako");
    namesMap.put("MD", "Moldavija");
    namesMap.put("ME", "Črna gora");
    namesMap.put("MF", "Saint Martin");
    namesMap.put("MG", "Madagaskar");
    namesMap.put("MH", "Marshallovi otoki");
    namesMap.put("MK", "Makedonija");
    namesMap.put("MM", "Mjanmar (Burma)");
    namesMap.put("MN", "Mongolija");
    namesMap.put("MO", "Posebno administrativno območje LR Kitajske Macao");
    namesMap.put("MP", "Severni Marianski otoki");
    namesMap.put("MQ", "Martinik");
    namesMap.put("MR", "Mavretanija");
    namesMap.put("MV", "Maldivi");
    namesMap.put("MW", "Malavi");
    namesMap.put("MX", "Mehika");
    namesMap.put("MY", "Malezija");
    namesMap.put("MZ", "Mozambik");
    namesMap.put("NA", "Namibija");
    namesMap.put("NC", "Nova Kaledonija");
    namesMap.put("NF", "Norfolški otok");
    namesMap.put("NG", "Nigerija");
    namesMap.put("NI", "Nikaragva");
    namesMap.put("NL", "Nizozemska");
    namesMap.put("NO", "Norveška");
    namesMap.put("NZ", "Nova Zelandija");
    namesMap.put("PF", "Francoska Polinezija");
    namesMap.put("PG", "Papua Nova Gvineja");
    namesMap.put("PH", "Filipini");
    namesMap.put("PL", "Poljska");
    namesMap.put("PM", "Saint Pierre in Miquelon");
    namesMap.put("PN", "Pitcairn");
    namesMap.put("PR", "Portoriko");
    namesMap.put("PS", "Palestinsko ozemlje");
    namesMap.put("PT", "Portugalska");
    namesMap.put("PY", "Paragvaj");
    namesMap.put("QA", "Katar");
    namesMap.put("QO", "Ostala oceanija");
    namesMap.put("RE", "Reunion");
    namesMap.put("RO", "Romunija");
    namesMap.put("RS", "Srbija");
    namesMap.put("RU", "Rusija");
    namesMap.put("RW", "Ruanda");
    namesMap.put("SA", "Saudova Arabija");
    namesMap.put("SB", "Salomonovi otoki");
    namesMap.put("SC", "Sejšeli");
    namesMap.put("SE", "Švedska");
    namesMap.put("SG", "Singapur");
    namesMap.put("SH", "Sveta Helena");
    namesMap.put("SI", "Slovenija");
    namesMap.put("SJ", "Svalbard in Jan Mayen");
    namesMap.put("SK", "Slovaška");
    namesMap.put("SO", "Somalija");
    namesMap.put("SR", "Surinam");
    namesMap.put("SS", "Južni Sudan");
    namesMap.put("ST", "Sao Tome in Principe");
    namesMap.put("SV", "Salvador");
    namesMap.put("SY", "Sirija");
    namesMap.put("SZ", "Svazi");
    namesMap.put("TC", "Otoki Turks in Caicos");
    namesMap.put("TD", "Čad");
    namesMap.put("TF", "Francosko južno ozemlje");
    namesMap.put("TH", "Tajska");
    namesMap.put("TJ", "Tadžikistan");
    namesMap.put("TN", "Tunizija");
    namesMap.put("TR", "Turčija");
    namesMap.put("TT", "Trinidad in Tobago");
    namesMap.put("TW", "Tajvan");
    namesMap.put("TZ", "Tanzanija");
    namesMap.put("UA", "Ukrajina");
    namesMap.put("UM", "Stranski zunanji otoki Združenih držav");
    namesMap.put("UN", "Združeni narodi");
    namesMap.put("US", "Združene države Amerike");
    namesMap.put("UY", "Urugvaj");
    namesMap.put("VA", "Vatikan");
    namesMap.put("VC", "Saint Vincent in Grenadine");
    namesMap.put("VG", "Britanski Deviški otoki");
    namesMap.put("VI", "Ameriški Deviški otoki");
    namesMap.put("WF", "Wallis in Futuna");
    namesMap.put("YE", "Jemen");
    namesMap.put("ZA", "Južnoafriška republika");
    namesMap.put("ZM", "Zambija");
    namesMap.put("ZW", "Zimbabve");
    namesMap.put("ZZ", "Neznano ali neveljavno območje");
  }

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

  private native JavaScriptObject loadMyNameMap() /*-{
    return {
        "001": "svet",
        "002": "Afrika",
        "003": "Severna Amerika",
        "005": "Južna Amerika",
        "009": "Oceanija",
        "011": "Zahodna Afrika",
        "013": "Srednja Amerika",
        "014": "Vzhodna Afrika",
        "015": "Severna Afrika",
        "017": "Srednja Afrika",
        "018": "Južna Afrika",
        "019": "Amerike",
        "021": "severnoameriška celina",
        "029": "Karibi",
        "030": "Vzhodna Azija",
        "034": "Južna Azija",
        "035": "Jugovzhodna Azija",
        "039": "Južna Evropa",
        "053": "Avstralija in Nova Zelandija",
        "054": "Melanezija",
        "057": "mikronezijska regija",
        "061": "Polinezija",
        "142": "Azija",
        "143": "Osrednja Azija",
        "145": "Zahodna Azija",
        "150": "Evropa",
        "151": "Vzhodna Evropa",
        "154": "Severna Evropa",
        "155": "Zahodna Evropa",
        "202": "podsaharska Afrika",
        "419": "Latinska Amerika",
        "AC": "Otok Ascension",
        "AD": "Andora",
        "AE": "Združeni arabski emirati",
        "AF": "Afganistan",
        "AG": "Antigva in Barbuda",
        "AI": "Angvila",
        "AL": "Albanija",
        "AM": "Armenija",
        "AQ": "Antarktika",
        "AS": "Ameriška Samoa",
        "AT": "Avstrija",
        "AU": "Avstralija",
        "AX": "Ålandski otoki",
        "AZ": "Azerbajdžan",
        "BA": "Bosna in Hercegovina",
        "BD": "Bangladeš",
        "BE": "Belgija",
        "BG": "Bolgarija",
        "BH": "Bahrajn",
        "BL": "Saint Barthélemy",
        "BM": "Bermudi",
        "BN": "Brunej",
        "BO": "Bolivija",
        "BQ": "Nizozemski Karibi",
        "BR": "Brazilija",
        "BS": "Bahami",
        "BT": "Butan",
        "BV": "Bouvetov otok",
        "BW": "Bocvana",
        "BY": "Belorusija",
        "CA": "Kanada",
        "CC": "Kokosovi otoki",
        "CD": "Demokratična republika Kongo",
        "CF": "Centralnoafriška republika",
        "CG": "Kongo - Brazzaville",
        "CH": "Švica",
        "CI": "Slonokoščena obala",
        "CK": "Cookovi otoki",
        "CL": "Čile",
        "CM": "Kamerun",
        "CN": "Kitajska",
        "CO": "Kolumbija",
        "CP": "Otok Clipperton",
        "CR": "Kostarika",
        "CU": "Kuba",
        "CV": "Zelenortski otoki",
        "CX": "Božični otok",
        "CY": "Ciper",
        "CZ": "Češka",
        "DE": "Nemčija",
        "DJ": "Džibuti",
        "DK": "Danska",
        "DM": "Dominika",
        "DO": "Dominikanska republika",
        "DZ": "Alžirija",
        "EA": "Ceuta in Melilla",
        "EC": "Ekvador",
        "EE": "Estonija",
        "EG": "Egipt",
        "EH": "Zahodna Sahara",
        "ER": "Eritreja",
        "ES": "Španija",
        "ET": "Etiopija",
        "EU": "Evropska unija",
        "EZ": "evroobmočje",
        "FI": "Finska",
        "FJ": "Fidži",
        "FK": "Falklandski otoki",
        "FM": "Mikronezija",
        "FO": "Ferski otoki",
        "FR": "Francija",
        "GB": "Združeno kraljestvo",
        "GE": "Gruzija",
        "GF": "Francoska Gvajana",
        "GH": "Gana",
        "GL": "Grenlandija",
        "GM": "Gambija",
        "GN": "Gvineja",
        "GQ": "Ekvatorialna Gvineja",
        "GR": "Grčija",
        "GS": "Južna Georgia in Južni Sandwichevi otoki",
        "GT": "Gvatemala",
        "GW": "Gvineja Bissau",
        "GY": "Gvajana",
        "HK": "Posebno administrativno območje LR Kitajske Hongkong",
        "HM": "Heardov otok in McDonaldovi otoki",
        "HR": "Hrvaška",
        "HU": "Madžarska",
        "IC": "Kanarski otoki",
        "ID": "Indonezija",
        "IE": "Irska",
        "IL": "Izrael",
        "IM": "Otok Man",
        "IN": "Indija",
        "IO": "Britansko ozemlje v Indijskem oceanu",
        "IQ": "Irak",
        "IS": "Islandija",
        "IT": "Italija",
        "JM": "Jamajka",
        "JO": "Jordanija",
        "JP": "Japonska",
        "KE": "Kenija",
        "KG": "Kirgizistan",
        "KH": "Kambodža",
        "KM": "Komori",
        "KN": "Saint Kitts in Nevis",
        "KP": "Severna Koreja",
        "KR": "Južna Koreja",
        "KW": "Kuvajt",
        "KY": "Kajmanski otoki",
        "KZ": "Kazahstan",
        "LB": "Libanon",
        "LC": "Saint Lucia",
        "LI": "Lihtenštajn",
        "LK": "Šrilanka",
        "LR": "Liberija",
        "LS": "Lesoto",
        "LT": "Litva",
        "LU": "Luksemburg",
        "LV": "Latvija",
        "LY": "Libija",
        "MA": "Maroko",
        "MC": "Monako",
        "MD": "Moldavija",
        "ME": "Črna gora",
        "MF": "Saint Martin",
        "MG": "Madagaskar",
        "MH": "Marshallovi otoki",
        "MK": "Makedonija",
        "MM": "Mjanmar (Burma)",
        "MN": "Mongolija",
        "MO": "Posebno administrativno območje LR Kitajske Macao",
        "MP": "Severni Marianski otoki",
        "MQ": "Martinik",
        "MR": "Mavretanija",
        "MV": "Maldivi",
        "MW": "Malavi",
        "MX": "Mehika",
        "MY": "Malezija",
        "MZ": "Mozambik",
        "NA": "Namibija",
        "NC": "Nova Kaledonija",
        "NF": "Norfolški otok",
        "NG": "Nigerija",
        "NI": "Nikaragva",
        "NL": "Nizozemska",
        "NO": "Norveška",
        "NZ": "Nova Zelandija",
        "PF": "Francoska Polinezija",
        "PG": "Papua Nova Gvineja",
        "PH": "Filipini",
        "PL": "Poljska",
        "PM": "Saint Pierre in Miquelon",
        "PN": "Pitcairn",
        "PR": "Portoriko",
        "PS": "Palestinsko ozemlje",
        "PT": "Portugalska",
        "PY": "Paragvaj",
        "QA": "Katar",
        "QO": "Ostala oceanija",
        "RE": "Reunion",
        "RO": "Romunija",
        "RS": "Srbija",
        "RU": "Rusija",
        "RW": "Ruanda",
        "SA": "Saudova Arabija",
        "SB": "Salomonovi otoki",
        "SC": "Sejšeli",
        "SE": "Švedska",
        "SG": "Singapur",
        "SH": "Sveta Helena",
        "SI": "Slovenija",
        "SJ": "Svalbard in Jan Mayen",
        "SK": "Slovaška",
        "SO": "Somalija",
        "SR": "Surinam",
        "SS": "Južni Sudan",
        "ST": "Sao Tome in Principe",
        "SV": "Salvador",
        "SY": "Sirija",
        "SZ": "Svazi",
        "TC": "Otoki Turks in Caicos",
        "TD": "Čad",
        "TF": "Francosko južno ozemlje",
        "TH": "Tajska",
        "TJ": "Tadžikistan",
        "TN": "Tunizija",
        "TR": "Turčija",
        "TT": "Trinidad in Tobago",
        "TW": "Tajvan",
        "TZ": "Tanzanija",
        "UA": "Ukrajina",
        "UM": "Stranski zunanji otoki Združenih držav",
        "UN": "Združeni narodi",
        "US": "Združene države Amerike",
        "UY": "Urugvaj",
        "VA": "Vatikan",
        "VC": "Saint Vincent in Grenadine",
        "VG": "Britanski Deviški otoki",
        "VI": "Ameriški Deviški otoki",
        "WF": "Wallis in Futuna",
        "YE": "Jemen",
        "ZA": "Južnoafriška republika",
        "ZM": "Zambija",
        "ZW": "Zimbabve",
        "ZZ": "Neznano ali neveljavno območje"
    };
  }-*/;
}
