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

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

  @Override
  protected void loadNameMapJava() {
    super.loadNameMapJava();
    namesMap.put("001", "máilbmi");
    namesMap.put("002", "Afrihkká");
    namesMap.put("003", "dávvi-Amerihkká ja gaska-Amerihkká");
    namesMap.put("005", "mátta-Amerihkká");
    namesMap.put("009", "Oseania");
    namesMap.put("011", "oarji-Afrihkká");
    namesMap.put("013", "gaska-Amerihkká");
    namesMap.put("014", "nuorta-Afrihkká");
    namesMap.put("015", "davvi-Afrihkká");
    namesMap.put("017", "gaska-Afrihkká");
    namesMap.put("018", "mátta-Afrihkká");
    namesMap.put("019", "Amerihkká");
    namesMap.put("021", "dávvi-Amerihkká");
    namesMap.put("029", "Karibia");
    namesMap.put("030", "nuorta-Ásia");
    namesMap.put("034", "mátta-Ásia");
    namesMap.put("035", "mátta-nuorta-Ásia");
    namesMap.put("039", "mátta-Eurohpá");
    namesMap.put("053", "Austrália ja Ođđa-Selánda");
    namesMap.put("057", "Mikronesia guovllus");
    namesMap.put("142", "Ásia");
    namesMap.put("143", "gaska-Ásia");
    namesMap.put("145", "oarji-Ásia");
    namesMap.put("150", "Eurohpá");
    namesMap.put("151", "nuorta-Eurohpá");
    namesMap.put("154", "davvi-Eurohpá");
    namesMap.put("155", "oarji-Eurohpá");
    namesMap.put("419", "lulli-Amerihkká");
    namesMap.put("AC", "Ascension");
    namesMap.put("AE", "Ovttastuvvan Arábaemiráhtat");
    namesMap.put("AG", "Antigua ja Barbuda");
    namesMap.put("AL", "Albánia");
    namesMap.put("AQ", "Antárktis");
    namesMap.put("AS", "Amerihká Samoa");
    namesMap.put("AT", "Nuortariika");
    namesMap.put("AU", "Austrália");
    namesMap.put("AX", "Ålánda");
    namesMap.put("AZ", "Aserbaižan");
    namesMap.put("BA", "Bosnia-Hercegovina");
    namesMap.put("BE", "Belgia");
    namesMap.put("BG", "Bulgária");
    namesMap.put("BL", "Saint Barthélemy");
    namesMap.put("BQ", "Vuolleeatnamat Karibe");
    namesMap.put("BR", "Brasil");
    namesMap.put("BV", "Bouvet-sullot");
    namesMap.put("BY", "Vilges-Ruošša");
    namesMap.put("CA", "Kanáda");
    namesMap.put("CC", "Cocos-sullot");
    namesMap.put("CD", "Kongo-Kinshasa");
    namesMap.put("CF", "Gaska-Afrihká dásseváldi");
    namesMap.put("CG", "Kongo-Brazzaville");
    namesMap.put("CH", "Šveica");
    namesMap.put("CI", "Elfenbenariddu");
    namesMap.put("CK", "Cook-sullot");
    namesMap.put("CL", "Čiile");
    namesMap.put("CM", "Kamerun");
    namesMap.put("CN", "Kiinná");
    namesMap.put("CO", "Kolombia");
    namesMap.put("CP", "Clipperton-sullot");
    namesMap.put("CU", "Kuba");
    namesMap.put("CV", "Kap Verde");
    namesMap.put("CX", "Juovllat-sullot");
    namesMap.put("CY", "Kypros");
    namesMap.put("CZ", "Čeahkka");
    namesMap.put("DE", "Duiska");
    namesMap.put("DK", "Dánmárku");
    namesMap.put("DO", "Dominikána dásseváldi");
    namesMap.put("EA", "Ceuta ja Melilla");
    namesMap.put("EE", "Estlánda");
    namesMap.put("EG", "Egypta");
    namesMap.put("EH", "Oarje-Sahára");
    namesMap.put("ES", "Spánia");
    namesMap.put("ET", "Etiopia");
    namesMap.put("EU", "Eurohpa Uniovdna");
    namesMap.put("FI", "Suopma");
    namesMap.put("FJ", "Fijisullot");
    namesMap.put("FK", "Falklandsullot");
    namesMap.put("FM", "Mikronesia");
    namesMap.put("FO", "Fearsullot");
    namesMap.put("FR", "Frankriika");
    namesMap.put("GB", "Stuorra-Británnia");
    namesMap.put("GF", "Frankriikka Guayana");
    namesMap.put("GL", "Kalaallit Nunaat");
    namesMap.put("GM", "Gámbia");
    namesMap.put("GQ", "Ekvatoriála Guinea");
    namesMap.put("GR", "Greika");
    namesMap.put("GS", "Lulli Georgia ja Lulli Sandwich-sullot");
    namesMap.put("HK", "Hongkong");
    namesMap.put("HM", "Heard- ja McDonald-sullot");
    namesMap.put("HR", "Kroátia");
    namesMap.put("HU", "Ungár");
    namesMap.put("IC", "Kanáriasullot");
    namesMap.put("IE", "Irlánda");
    namesMap.put("IM", "Mann-sullot");
    namesMap.put("IQ", "Irak");
    namesMap.put("IS", "Islánda");
    namesMap.put("IT", "Itália");
    namesMap.put("JO", "Jordánia");
    namesMap.put("JP", "Japána");
    namesMap.put("KE", "Kenia");
    namesMap.put("KG", "Kirgisistan");
    namesMap.put("KH", "Kambodža");
    namesMap.put("KM", "Komoros");
    namesMap.put("KN", "Saint Kitts ja Nevis");
    namesMap.put("KP", "Davvi-Korea");
    namesMap.put("KR", "Mátta-Korea");
    namesMap.put("KY", "Cayman-sullot");
    namesMap.put("KZ", "Kasakstan");
    namesMap.put("LB", "Libanon");
    namesMap.put("LC", "Saint Lucia");
    namesMap.put("LT", "Lietuva");
    namesMap.put("LV", "Látvia");
    namesMap.put("MA", "Marokko");
    namesMap.put("MD", "Moldávia");
    namesMap.put("MF", "Frankriikka Saint Martin");
    namesMap.put("MG", "Madagaskar");
    namesMap.put("MH", "Marshallsullot");
    namesMap.put("MK", "Makedonia");
    namesMap.put("MM", "Burma");
    namesMap.put("MO", "Makáo");
    namesMap.put("MP", "Davvi-Mariánat");
    namesMap.put("MR", "Mauretánia");
    namesMap.put("MT", "Málta");
    namesMap.put("MV", "Malediivvat");
    namesMap.put("MX", "Meksiko");
    namesMap.put("MY", "Malesia");
    namesMap.put("MZ", "Mosambik");
    namesMap.put("NC", "Ođđa-Kaledonia");
    namesMap.put("NF", "Norfolksullot");
    namesMap.put("NL", "Vuolleeatnamat");
    namesMap.put("NO", "Norga");
    namesMap.put("NZ", "Ođđa-Selánda");
    namesMap.put("PF", "Frankriikka Polynesia");
    namesMap.put("PG", "Papua-Ođđa-Guinea");
    namesMap.put("PH", "Filippiinnat");
    namesMap.put("PL", "Polen");
    namesMap.put("PM", "Saint Pierre ja Miquelon");
    namesMap.put("PN", "Pitcairn");
    namesMap.put("PS", "Palestina");
    namesMap.put("PT", "Portugála");
    namesMap.put("RO", "Románia");
    namesMap.put("RU", "Ruošša");
    namesMap.put("SA", "Saudi-Arábia");
    namesMap.put("SB", "Salomon-sullot");
    namesMap.put("SC", "Seychellsullot");
    namesMap.put("SD", "Davvisudan");
    namesMap.put("SE", "Ruoŧŧa");
    namesMap.put("SH", "Saint Helena");
    namesMap.put("SJ", "Svalbárda ja Jan Mayen");
    namesMap.put("SK", "Slovákia");
    namesMap.put("SO", "Somália");
    namesMap.put("SR", "Surinam");
    namesMap.put("SS", "Máttasudan");
    namesMap.put("ST", "São Tomé ja Príncipe");
    namesMap.put("SX", "Vuolleeatnamat Saint Martin");
    namesMap.put("SZ", "Svazieana");
    namesMap.put("TC", "Turks ja Caicos-sullot");
    namesMap.put("TD", "Tčad");
    namesMap.put("TH", "Thaieana");
    namesMap.put("TJ", "Tažikistan");
    namesMap.put("TL", "Nuorta-Timor");
    namesMap.put("TR", "Durka");
    namesMap.put("TT", "Trinidad ja Tobago");
    namesMap.put("TZ", "Tanzánia");
    namesMap.put("UA", "Ukraina");
    namesMap.put("US", "Amerihká ovttastuvvan stáhtat");
    namesMap.put("UZ", "Usbekistan");
    namesMap.put("VA", "Vatikána");
    namesMap.put("VC", "Saint Vincent ja Grenadine");
    namesMap.put("VG", "Brittania Virgin-sullot");
    namesMap.put("VI", "AOS Virgin-sullot");
    namesMap.put("WF", "Wallis ja Futuna");
    namesMap.put("YE", "Jemen");
    namesMap.put("ZA", "Mátta-Afrihká");
    namesMap.put("ZZ", "dovdameahttun guovlu");
  }

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

  private native JavaScriptObject loadMyNameMap() /*-{
    return {
        "001": "máilbmi",
        "002": "Afrihkká",
        "003": "dávvi-Amerihkká ja gaska-Amerihkká",
        "005": "mátta-Amerihkká",
        "009": "Oseania",
        "011": "oarji-Afrihkká",
        "013": "gaska-Amerihkká",
        "014": "nuorta-Afrihkká",
        "015": "davvi-Afrihkká",
        "017": "gaska-Afrihkká",
        "018": "mátta-Afrihkká",
        "019": "Amerihkká",
        "021": "dávvi-Amerihkká",
        "029": "Karibia",
        "030": "nuorta-Ásia",
        "034": "mátta-Ásia",
        "035": "mátta-nuorta-Ásia",
        "039": "mátta-Eurohpá",
        "053": "Austrália ja Ođđa-Selánda",
        "057": "Mikronesia guovllus",
        "142": "Ásia",
        "143": "gaska-Ásia",
        "145": "oarji-Ásia",
        "150": "Eurohpá",
        "151": "nuorta-Eurohpá",
        "154": "davvi-Eurohpá",
        "155": "oarji-Eurohpá",
        "419": "lulli-Amerihkká",
        "AC": "Ascension",
        "AE": "Ovttastuvvan Arábaemiráhtat",
        "AG": "Antigua ja Barbuda",
        "AL": "Albánia",
        "AQ": "Antárktis",
        "AS": "Amerihká Samoa",
        "AT": "Nuortariika",
        "AU": "Austrália",
        "AX": "Ålánda",
        "AZ": "Aserbaižan",
        "BA": "Bosnia-Hercegovina",
        "BE": "Belgia",
        "BG": "Bulgária",
        "BL": "Saint Barthélemy",
        "BQ": "Vuolleeatnamat Karibe",
        "BR": "Brasil",
        "BV": "Bouvet-sullot",
        "BY": "Vilges-Ruošša",
        "CA": "Kanáda",
        "CC": "Cocos-sullot",
        "CD": "Kongo-Kinshasa",
        "CF": "Gaska-Afrihká dásseváldi",
        "CG": "Kongo-Brazzaville",
        "CH": "Šveica",
        "CI": "Elfenbenariddu",
        "CK": "Cook-sullot",
        "CL": "Čiile",
        "CM": "Kamerun",
        "CN": "Kiinná",
        "CO": "Kolombia",
        "CP": "Clipperton-sullot",
        "CU": "Kuba",
        "CV": "Kap Verde",
        "CX": "Juovllat-sullot",
        "CY": "Kypros",
        "CZ": "Čeahkka",
        "DE": "Duiska",
        "DK": "Dánmárku",
        "DO": "Dominikána dásseváldi",
        "EA": "Ceuta ja Melilla",
        "EE": "Estlánda",
        "EG": "Egypta",
        "EH": "Oarje-Sahára",
        "ES": "Spánia",
        "ET": "Etiopia",
        "EU": "Eurohpa Uniovdna",
        "FI": "Suopma",
        "FJ": "Fijisullot",
        "FK": "Falklandsullot",
        "FM": "Mikronesia",
        "FO": "Fearsullot",
        "FR": "Frankriika",
        "GB": "Stuorra-Británnia",
        "GF": "Frankriikka Guayana",
        "GL": "Kalaallit Nunaat",
        "GM": "Gámbia",
        "GQ": "Ekvatoriála Guinea",
        "GR": "Greika",
        "GS": "Lulli Georgia ja Lulli Sandwich-sullot",
        "HK": "Hongkong",
        "HM": "Heard- ja McDonald-sullot",
        "HR": "Kroátia",
        "HU": "Ungár",
        "IC": "Kanáriasullot",
        "IE": "Irlánda",
        "IM": "Mann-sullot",
        "IQ": "Irak",
        "IS": "Islánda",
        "IT": "Itália",
        "JO": "Jordánia",
        "JP": "Japána",
        "KE": "Kenia",
        "KG": "Kirgisistan",
        "KH": "Kambodža",
        "KM": "Komoros",
        "KN": "Saint Kitts ja Nevis",
        "KP": "Davvi-Korea",
        "KR": "Mátta-Korea",
        "KY": "Cayman-sullot",
        "KZ": "Kasakstan",
        "LB": "Libanon",
        "LC": "Saint Lucia",
        "LT": "Lietuva",
        "LV": "Látvia",
        "MA": "Marokko",
        "MD": "Moldávia",
        "MF": "Frankriikka Saint Martin",
        "MG": "Madagaskar",
        "MH": "Marshallsullot",
        "MK": "Makedonia",
        "MM": "Burma",
        "MO": "Makáo",
        "MP": "Davvi-Mariánat",
        "MR": "Mauretánia",
        "MT": "Málta",
        "MV": "Malediivvat",
        "MX": "Meksiko",
        "MY": "Malesia",
        "MZ": "Mosambik",
        "NC": "Ođđa-Kaledonia",
        "NF": "Norfolksullot",
        "NL": "Vuolleeatnamat",
        "NO": "Norga",
        "NZ": "Ođđa-Selánda",
        "PF": "Frankriikka Polynesia",
        "PG": "Papua-Ođđa-Guinea",
        "PH": "Filippiinnat",
        "PL": "Polen",
        "PM": "Saint Pierre ja Miquelon",
        "PN": "Pitcairn",
        "PS": "Palestina",
        "PT": "Portugála",
        "RO": "Románia",
        "RU": "Ruošša",
        "SA": "Saudi-Arábia",
        "SB": "Salomon-sullot",
        "SC": "Seychellsullot",
        "SD": "Davvisudan",
        "SE": "Ruoŧŧa",
        "SH": "Saint Helena",
        "SJ": "Svalbárda ja Jan Mayen",
        "SK": "Slovákia",
        "SO": "Somália",
        "SR": "Surinam",
        "SS": "Máttasudan",
        "ST": "São Tomé ja Príncipe",
        "SX": "Vuolleeatnamat Saint Martin",
        "SZ": "Svazieana",
        "TC": "Turks ja Caicos-sullot",
        "TD": "Tčad",
        "TH": "Thaieana",
        "TJ": "Tažikistan",
        "TL": "Nuorta-Timor",
        "TR": "Durka",
        "TT": "Trinidad ja Tobago",
        "TZ": "Tanzánia",
        "UA": "Ukraina",
        "US": "Amerihká ovttastuvvan stáhtat",
        "UZ": "Usbekistan",
        "VA": "Vatikána",
        "VC": "Saint Vincent ja Grenadine",
        "VG": "Brittania Virgin-sullot",
        "VI": "AOS Virgin-sullot",
        "WF": "Wallis ja Futuna",
        "YE": "Jemen",
        "ZA": "Mátta-Afrihká",
        "ZZ": "dovdameahttun guovlu"
    };
  }-*/;
}
