/*
 * Copyright 2014 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:
//  cldrVersion=25
//  date=$Date: 2013-08-29 04:32:04 +0200 (Thu, 29 Aug 2013) $
//  number=$Revision: 9287 $
//  type=root

/**
 * Localized names for the "cgg" locale.
 */
public class LocalizedNamesImpl_cgg extends LocalizedNamesImpl {

  @Override
  public String[] loadSortedRegionCodes() {
    return new String[] {
        "AC",
        "AF",
        "IS",
        "CI",
        "AE",
        "US",
        "AD",
        "AG",
        "AO",
        "AI",
        "AN",
        "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",
        "MP",
        "TC",
        "FK",
        "KY",
        "CV",
        "CK",
        "MH",
        "SB",
        "VI",
        "VG",
        "EH",
        "CF",
        "NF",
        "SV",
        "ER",
        "EE",
        "ET",
        "EU",
        "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",
        "IO",
        "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",
        "PE",
        "PN",
        "PT",
        "PF",
        "PL",
        "PS",
        "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",
        "UY",
        "UZ",
        "VU",
        "VA",
        "VE",
        "VN",
        "WF",
        "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("AN", "Antiri za Hoorandi");
    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("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("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",
        "AN": "Antiri za Hoorandi",
        "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",
        "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",
        "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"
    };
  }-*/;
}
