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

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

  @Override
  protected void loadNameMapJava() {
    super.loadNameMapJava();
    namesMap.put("AD", "Andora");
    namesMap.put("AE", "Amahanga ga Buharabu ageeteereine");
    namesMap.put("AF", "Afuganistani");
    namesMap.put("AG", "Angiguwa na Babuda");
    namesMap.put("AI", "Angwira");
    namesMap.put("AL", "Arubania");
    namesMap.put("AM", "Arimeniya");
    namesMap.put("AO", "Angora");
    namesMap.put("AR", "Arigentina");
    namesMap.put("AS", "Samowa ya Ameerika");
    namesMap.put("AT", "Osituria");
    namesMap.put("AU", "Ositureeriya");
    namesMap.put("AZ", "Azabagyani");
    namesMap.put("BA", "Boziniya na Hezegovina");
    namesMap.put("BB", "Babadosi");
    namesMap.put("BD", "Bangaradeshi");
    namesMap.put("BE", "Bubirigi");
    namesMap.put("BF", "Bokina Faso");
    namesMap.put("BG", "Burugariya");
    namesMap.put("BH", "Bahareni");
    namesMap.put("BJ", "Benini");
    namesMap.put("BM", "Berimuda");
    namesMap.put("BN", "Burunei");
    namesMap.put("BO", "Boriiviya");
    namesMap.put("BR", "Buraziiri");
    namesMap.put("BS", "Bahama");
    namesMap.put("BT", "Butani");
    namesMap.put("BY", "Bararusi");
    namesMap.put("BZ", "Berize");
    namesMap.put("CA", "Kanada");
    namesMap.put("CD", "Demokoratika Ripaaburika ya Kongo");
    namesMap.put("CF", "Eihanga rya Rwagati ya Afirika");
    namesMap.put("CG", "Kongo");
    namesMap.put("CH", "Swisi");
    namesMap.put("CI", "Aivore Kositi");
    namesMap.put("CK", "Ebizinga bya Kuuku");
    namesMap.put("CM", "Kameruuni");
    namesMap.put("CO", "Korombiya");
    namesMap.put("CR", "Kositarika");
    namesMap.put("CV", "Ebizinga bya Kepuvade");
    namesMap.put("CY", "Saipurasi");
    namesMap.put("CZ", "Ripaaburika ya Zeeki");
    namesMap.put("DE", "Bugirimaani");
    namesMap.put("DJ", "Gyibuti");
    namesMap.put("DK", "Deenimaaka");
    namesMap.put("DM", "Dominika");
    namesMap.put("DO", "Ripaaburika ya Dominica");
    namesMap.put("DZ", "Arigyeriya");
    namesMap.put("EC", "Ikweda");
    namesMap.put("EE", "Esitoniya");
    namesMap.put("EG", "Misiri");
    namesMap.put("ER", "Eriteriya");
    namesMap.put("ES", "Sipeyini");
    namesMap.put("ET", "Ethiyopiya");
    namesMap.put("FI", "Bufini");
    namesMap.put("FJ", "Figyi");
    namesMap.put("FK", "Ebizinga bya Faakilanda");
    namesMap.put("FM", "Mikironesiya");
    namesMap.put("FR", "Bufaransa");
    namesMap.put("GA", "Gabooni");
    namesMap.put("GB", "Bungyereza");
    namesMap.put("GD", "Gurenada");
    namesMap.put("GE", "Gyogiya");
    namesMap.put("GF", "Guyana ya Bufaransa");
    namesMap.put("GH", "Gana");
    namesMap.put("GI", "Giburaata");
    namesMap.put("GL", "Guriinirandi");
    namesMap.put("GM", "Gambiya");
    namesMap.put("GN", "Gine");
    namesMap.put("GP", "Gwaderupe");
    namesMap.put("GQ", "Guni");
    namesMap.put("GR", "Guriisi");
    namesMap.put("GT", "Gwatemara");
    namesMap.put("GU", "Gwamu");
    namesMap.put("GW", "Ginebisau");
    namesMap.put("HN", "Hondurasi");
    namesMap.put("HR", "Korasiya");
    namesMap.put("HU", "Hangare");
    namesMap.put("ID", "Indoneeziya");
    namesMap.put("IE", "Irerandi");
    namesMap.put("IL", "Isirairi");
    namesMap.put("IN", "Indiya");
    namesMap.put("IO", "Ebizinga bya Indian ebya Bungyereza");
    namesMap.put("IQ", "Iraaka");
    namesMap.put("IR", "Iraani");
    namesMap.put("IS", "Aisilandi");
    namesMap.put("IT", "Itare");
    namesMap.put("JM", "Gyamaika");
    namesMap.put("JO", "Yorudaani");
    namesMap.put("JP", "Gyapaani");
    namesMap.put("KG", "Kirigizistani");
    namesMap.put("KH", "Kambodiya");
    namesMap.put("KM", "Koromo");
    namesMap.put("KN", "Senti Kittis na Nevisi");
    namesMap.put("KP", "Koreya Amatemba");
    namesMap.put("KR", "Koreya Amashuuma");
    namesMap.put("KW", "Kuweiti");
    namesMap.put("KY", "Ebizinga bya Kayimani");
    namesMap.put("KZ", "Kazakisitani");
    namesMap.put("LA", "Layosi");
    namesMap.put("LB", "Lebanoni");
    namesMap.put("LC", "Senti Rusiya");
    namesMap.put("LI", "Lishenteni");
    namesMap.put("LK", "Siriranka");
    namesMap.put("LR", "Liberiya");
    namesMap.put("LU", "Lakizembaaga");
    namesMap.put("LV", "Latviya");
    namesMap.put("MD", "Moridova");
    namesMap.put("MG", "Madagasika");
    namesMap.put("MH", "Ebizinga bya Marshaa");
    namesMap.put("MK", "Masedoonia");
    namesMap.put("ML", "Mari");
    namesMap.put("MM", "Myanamar");
    namesMap.put("MN", "Mongoria");
    namesMap.put("MP", "Ebizinga by’amatemba ga Mariana");
    namesMap.put("MR", "Mauriteeniya");
    namesMap.put("MS", "Montserrati");
    namesMap.put("MT", "Marita");
    namesMap.put("MU", "Maurishiasi");
    namesMap.put("MV", "Maridives");
    namesMap.put("MW", "Marawi");
    namesMap.put("MY", "marayizia");
    namesMap.put("NA", "Namibiya");
    namesMap.put("NC", "Niukaredonia");
    namesMap.put("NE", "Naigya");
    namesMap.put("NF", "Ekizinga Norifoko");
    namesMap.put("NG", "Naigyeriya");
    namesMap.put("NI", "Nikaragwa");
    namesMap.put("NL", "Hoorandi");
    namesMap.put("NO", "Noorwe");
    namesMap.put("NP", "Nepo");
    namesMap.put("NZ", "Niuzirandi");
    namesMap.put("OM", "Omaani");
    namesMap.put("PF", "Polinesia ya Bufaransa");
    namesMap.put("PG", "Papua");
    namesMap.put("PH", "Firipino");
    namesMap.put("PK", "Pakisitaani");
    namesMap.put("PL", "Poorandi");
    namesMap.put("PM", "Senti Piyerre na Mikweron");
    namesMap.put("PN", "Pitkaini");
    namesMap.put("PR", "Pwetoriko");
    namesMap.put("PS", "Parestiina na Gaza");
    namesMap.put("PT", "Pocugo");
    namesMap.put("PW", "Palaawu");
    namesMap.put("PY", "Paragwai");
    namesMap.put("QA", "Kata");
    namesMap.put("RE", "Riyuniyoni");
    namesMap.put("RO", "Romaniya");
    namesMap.put("RU", "Rrasha");
    namesMap.put("SA", "Saudi Areebiya");
    namesMap.put("SB", "Ebizinga bya Surimaani");
    namesMap.put("SC", "Shesheresi");
    namesMap.put("SD", "Sudani");
    namesMap.put("SE", "Swideni");
    namesMap.put("SG", "Singapo");
    namesMap.put("SH", "Senti Herena");
    namesMap.put("SI", "Sirovaaniya");
    namesMap.put("SK", "Sirovaakiya");
    namesMap.put("SL", "Sirra Riyooni");
    namesMap.put("SM", "Samarino");
    namesMap.put("SN", "Senego");
    namesMap.put("SO", "Somaariya");
    namesMap.put("SR", "Surinaamu");
    namesMap.put("ST", "Sawo Tome na Purinsipo");
    namesMap.put("SV", "Eri Salivado");
    namesMap.put("SY", "Siriya");
    namesMap.put("SZ", "Swazirandi");
    namesMap.put("TC", "Ebizinga bya Buturuki na Kaiko");
    namesMap.put("TD", "Chadi");
    namesMap.put("TH", "Tairandi");
    namesMap.put("TJ", "Tajikisitani");
    namesMap.put("TK", "Tokerawu");
    namesMap.put("TL", "Burugweizooba bwa Timori");
    namesMap.put("TM", "Turukimenisitani");
    namesMap.put("TN", "Tunizia");
    namesMap.put("TR", "Buturuki /Take");
    namesMap.put("TT", "Turinidad na Tobago");
    namesMap.put("TV", "Tuvaru");
    namesMap.put("TW", "Tayiwaani");
    namesMap.put("UA", "Ukureini");
    namesMap.put("US", "Amerika");
    namesMap.put("UY", "Urugwai");
    namesMap.put("UZ", "Uzibekisitani");
    namesMap.put("VA", "Vatikani");
    namesMap.put("VC", "Senti Vinsent na Gurenadini");
    namesMap.put("VE", "Venezuwera");
    namesMap.put("VG", "Ebizinga bya Virigini ebya Bungyereza");
    namesMap.put("VI", "Ebizinga bya Virigini ebya Amerika");
    namesMap.put("VN", "Viyetinaamu");
    namesMap.put("WF", "Warris na Futuna");
    namesMap.put("WS", "Samowa");
    namesMap.put("YE", "Yemeni");
    namesMap.put("YT", "Mayote");
    namesMap.put("ZA", "Sausi Afirika");
  }

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

  private native JavaScriptObject loadMyNameMap() /*-{
    return {
        "AD": "Andora",
        "AE": "Amahanga ga Buharabu ageeteereine",
        "AF": "Afuganistani",
        "AG": "Angiguwa na Babuda",
        "AI": "Angwira",
        "AL": "Arubania",
        "AM": "Arimeniya",
        "AO": "Angora",
        "AR": "Arigentina",
        "AS": "Samowa ya Ameerika",
        "AT": "Osituria",
        "AU": "Ositureeriya",
        "AZ": "Azabagyani",
        "BA": "Boziniya na Hezegovina",
        "BB": "Babadosi",
        "BD": "Bangaradeshi",
        "BE": "Bubirigi",
        "BF": "Bokina Faso",
        "BG": "Burugariya",
        "BH": "Bahareni",
        "BJ": "Benini",
        "BM": "Berimuda",
        "BN": "Burunei",
        "BO": "Boriiviya",
        "BR": "Buraziiri",
        "BS": "Bahama",
        "BT": "Butani",
        "BY": "Bararusi",
        "BZ": "Berize",
        "CA": "Kanada",
        "CD": "Demokoratika Ripaaburika ya Kongo",
        "CF": "Eihanga rya Rwagati ya Afirika",
        "CG": "Kongo",
        "CH": "Swisi",
        "CI": "Aivore Kositi",
        "CK": "Ebizinga bya Kuuku",
        "CM": "Kameruuni",
        "CO": "Korombiya",
        "CR": "Kositarika",
        "CV": "Ebizinga bya Kepuvade",
        "CY": "Saipurasi",
        "CZ": "Ripaaburika ya Zeeki",
        "DE": "Bugirimaani",
        "DJ": "Gyibuti",
        "DK": "Deenimaaka",
        "DM": "Dominika",
        "DO": "Ripaaburika ya Dominica",
        "DZ": "Arigyeriya",
        "EC": "Ikweda",
        "EE": "Esitoniya",
        "EG": "Misiri",
        "ER": "Eriteriya",
        "ES": "Sipeyini",
        "ET": "Ethiyopiya",
        "FI": "Bufini",
        "FJ": "Figyi",
        "FK": "Ebizinga bya Faakilanda",
        "FM": "Mikironesiya",
        "FR": "Bufaransa",
        "GA": "Gabooni",
        "GB": "Bungyereza",
        "GD": "Gurenada",
        "GE": "Gyogiya",
        "GF": "Guyana ya Bufaransa",
        "GH": "Gana",
        "GI": "Giburaata",
        "GL": "Guriinirandi",
        "GM": "Gambiya",
        "GN": "Gine",
        "GP": "Gwaderupe",
        "GQ": "Guni",
        "GR": "Guriisi",
        "GT": "Gwatemara",
        "GU": "Gwamu",
        "GW": "Ginebisau",
        "HN": "Hondurasi",
        "HR": "Korasiya",
        "HU": "Hangare",
        "ID": "Indoneeziya",
        "IE": "Irerandi",
        "IL": "Isirairi",
        "IN": "Indiya",
        "IO": "Ebizinga bya Indian ebya Bungyereza",
        "IQ": "Iraaka",
        "IR": "Iraani",
        "IS": "Aisilandi",
        "IT": "Itare",
        "JM": "Gyamaika",
        "JO": "Yorudaani",
        "JP": "Gyapaani",
        "KG": "Kirigizistani",
        "KH": "Kambodiya",
        "KM": "Koromo",
        "KN": "Senti Kittis na Nevisi",
        "KP": "Koreya Amatemba",
        "KR": "Koreya Amashuuma",
        "KW": "Kuweiti",
        "KY": "Ebizinga bya Kayimani",
        "KZ": "Kazakisitani",
        "LA": "Layosi",
        "LB": "Lebanoni",
        "LC": "Senti Rusiya",
        "LI": "Lishenteni",
        "LK": "Siriranka",
        "LR": "Liberiya",
        "LU": "Lakizembaaga",
        "LV": "Latviya",
        "MD": "Moridova",
        "MG": "Madagasika",
        "MH": "Ebizinga bya Marshaa",
        "MK": "Masedoonia",
        "ML": "Mari",
        "MM": "Myanamar",
        "MN": "Mongoria",
        "MP": "Ebizinga by’amatemba ga Mariana",
        "MR": "Mauriteeniya",
        "MS": "Montserrati",
        "MT": "Marita",
        "MU": "Maurishiasi",
        "MV": "Maridives",
        "MW": "Marawi",
        "MY": "marayizia",
        "NA": "Namibiya",
        "NC": "Niukaredonia",
        "NE": "Naigya",
        "NF": "Ekizinga Norifoko",
        "NG": "Naigyeriya",
        "NI": "Nikaragwa",
        "NL": "Hoorandi",
        "NO": "Noorwe",
        "NP": "Nepo",
        "NZ": "Niuzirandi",
        "OM": "Omaani",
        "PF": "Polinesia ya Bufaransa",
        "PG": "Papua",
        "PH": "Firipino",
        "PK": "Pakisitaani",
        "PL": "Poorandi",
        "PM": "Senti Piyerre na Mikweron",
        "PN": "Pitkaini",
        "PR": "Pwetoriko",
        "PS": "Parestiina na Gaza",
        "PT": "Pocugo",
        "PW": "Palaawu",
        "PY": "Paragwai",
        "QA": "Kata",
        "RE": "Riyuniyoni",
        "RO": "Romaniya",
        "RU": "Rrasha",
        "SA": "Saudi Areebiya",
        "SB": "Ebizinga bya Surimaani",
        "SC": "Shesheresi",
        "SD": "Sudani",
        "SE": "Swideni",
        "SG": "Singapo",
        "SH": "Senti Herena",
        "SI": "Sirovaaniya",
        "SK": "Sirovaakiya",
        "SL": "Sirra Riyooni",
        "SM": "Samarino",
        "SN": "Senego",
        "SO": "Somaariya",
        "SR": "Surinaamu",
        "ST": "Sawo Tome na Purinsipo",
        "SV": "Eri Salivado",
        "SY": "Siriya",
        "SZ": "Swazirandi",
        "TC": "Ebizinga bya Buturuki na Kaiko",
        "TD": "Chadi",
        "TH": "Tairandi",
        "TJ": "Tajikisitani",
        "TK": "Tokerawu",
        "TL": "Burugweizooba bwa Timori",
        "TM": "Turukimenisitani",
        "TN": "Tunizia",
        "TR": "Buturuki /Take",
        "TT": "Turinidad na Tobago",
        "TV": "Tuvaru",
        "TW": "Tayiwaani",
        "UA": "Ukureini",
        "US": "Amerika",
        "UY": "Urugwai",
        "UZ": "Uzibekisitani",
        "VA": "Vatikani",
        "VC": "Senti Vinsent na Gurenadini",
        "VE": "Venezuwera",
        "VG": "Ebizinga bya Virigini ebya Bungyereza",
        "VI": "Ebizinga bya Virigini ebya Amerika",
        "VN": "Viyetinaamu",
        "WF": "Warris na Futuna",
        "WS": "Samowa",
        "YE": "Yemeni",
        "YT": "Mayote",
        "ZA": "Sausi Afirika"
    };
  }-*/;
}
