/*
XOWA: the XOWA Offline Wiki Application
Copyright (C) 2012 gnosygnu@gmail.com

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/
package gplx.xowa; import gplx.*;
import gplx.lists.*;
public class Xol_lang_itm_ {
	public static final byte[] Key__unknown = Bry_.Empty;
	public static final ComparerAble Comparer_code = new Comparer_lang_code();
	public static final int 
  Id__intl = -2
, Id__unknown = -1
, Id_en = 0
, Id_aa = 1
, Id_ab = 2
, Id_ace = 3
, Id_aeb = 4
, Id_af = 5
, Id_ak = 6
, Id_akz = 7
, Id_aln = 8
, Id_als = 9
, Id_am = 10
, Id_an = 11
, Id_ang = 12
, Id_anp = 13
, Id_ar = 14
, Id_arc = 15
, Id_arn = 16
, Id_arq = 17
, Id_ary = 18
, Id_arz = 19
, Id_as = 20
, Id_ast = 21
, Id_av = 22
, Id_avk = 23
, Id_ay = 24
, Id_az = 25
, Id_azb = 26
, Id_ba = 27
, Id_ban = 28
, Id_bar = 29
, Id_bat_smg = 30
, Id_bbc = 31
, Id_bbc_latn = 32
, Id_bcc = 33
, Id_bcl = 34
, Id_be = 35
, Id_be_tarask = 36
, Id_be_x_old = 37
, Id_bg = 38
, Id_bh = 39
, Id_bho = 40
, Id_bi = 41
, Id_bjn = 42
, Id_bm = 43
, Id_bn = 44
, Id_bo = 45
, Id_bpy = 46
, Id_bqi = 47
, Id_br = 48
, Id_brh = 49
, Id_bs = 50
, Id_bug = 51
, Id_bxr = 52
, Id_ca = 53
, Id_cbk_zam = 54
, Id_cdo = 55
, Id_ce = 56
, Id_ceb = 57
, Id_ch = 58
, Id_chm = 59
, Id_cho = 60
, Id_chr = 61
, Id_chy = 62
, Id_ckb = 63
, Id_co = 64
, Id_cps = 65
, Id_cr = 66
, Id_crh = 67
, Id_crh_cyrl = 68
, Id_crh_latn = 69
, Id_cs = 70
, Id_csb = 71
, Id_cu = 72
, Id_cv = 73
, Id_cy = 74
, Id_da = 75
, Id_de = 76
, Id_de_at = 77
, Id_de_ch = 78
, Id_de_formal = 79
, Id_diq = 80
, Id_dsb = 81
, Id_dtp = 82
, Id_dv = 83
, Id_dz = 84
, Id_ee = 85
, Id_egl = 86
, Id_el = 87
, Id_eml = 88
, Id_en_ca = 89
, Id_en_rtl = 90
, Id_en_gb = 91
, Id_enrtl = 92
, Id_eo = 93
, Id_es = 94
, Id_et = 95
, Id_eu = 96
, Id_ext = 97
, Id_fa = 98
, Id_ff = 99
, Id_fi = 100
, Id_fit = 101
, Id_fiu_vro = 102
, Id_fj = 103
, Id_fo = 104
, Id_fr = 105
, Id_frc = 106
, Id_frp = 107
, Id_frr = 108
, Id_fur = 109
, Id_fy = 110
, Id_ga = 111
, Id_gag = 112
, Id_gan = 113
, Id_gan_hans = 114
, Id_gan_hant = 115
, Id_gd = 116
, Id_gl = 117
, Id_glk = 118
, Id_gn = 119
, Id_gom = 120
, Id_gom_latn = 121
, Id_got = 122
, Id_grc = 123
, Id_gsw = 124
, Id_gu = 125
, Id_gv = 126
, Id_ha = 127
, Id_hak = 128
, Id_haw = 129
, Id_he = 130
, Id_hi = 131
, Id_hif = 132
, Id_hif_latn = 133
, Id_hil = 134
, Id_ho = 135
, Id_hr = 136
, Id_hrx = 137
, Id_hsb = 138
, Id_ht = 139
, Id_hu = 140
, Id_hu_formal = 141
, Id_hy = 142
, Id_hz = 143
, Id_ia = 144
, Id_id = 145
, Id_ie = 146
, Id_ig = 147
, Id_ii = 148
, Id_ik = 149
, Id_ike_cans = 150
, Id_ike_latn = 151
, Id_ilo = 152
, Id_inh = 153
, Id_io = 154
, Id_is = 155
, Id_it = 156
, Id_iu = 157
, Id_ja = 158
, Id_jam = 159
, Id_jbo = 160
, Id_jut = 161
, Id_jv = 162
, Id_ka = 163
, Id_kaa = 164
, Id_kab = 165
, Id_kbd = 166
, Id_kbd_cyrl = 167
, Id_kg = 168
, Id_khw = 169
, Id_ki = 170
, Id_kiu = 171
, Id_kj = 172
, Id_kk = 173
, Id_kk_arab = 174
, Id_kk_cn = 175
, Id_kk_cyrl = 176
, Id_kk_kz = 177
, Id_kk_latn = 178
, Id_kk_tr = 179
, Id_kl = 180
, Id_km = 181
, Id_kn = 182
, Id_ko = 183
, Id_ko_kp = 184
, Id_koi = 185
, Id_kr = 186
, Id_krc = 187
, Id_kri = 188
, Id_krj = 189
, Id_krl = 190
, Id_ks = 191
, Id_ks_arab = 192
, Id_ks_deva = 193
, Id_ksh = 194
, Id_ku = 195
, Id_ku_arab = 196
, Id_ku_latn = 197
, Id_kv = 198
, Id_kw = 199
, Id_ky = 200
, Id_la = 201
, Id_lad = 202
, Id_lb = 203
, Id_lbe = 204
, Id_lez = 205
, Id_lfn = 206
, Id_lg = 207
, Id_li = 208
, Id_lij = 209
, Id_liv = 210
, Id_lmo = 211
, Id_ln = 212
, Id_lo = 213
, Id_loz = 214
, Id_lrc = 215
, Id_lt = 216
, Id_ltg = 217
, Id_lus = 218
, Id_lv = 219
, Id_lzh = 220
, Id_lzz = 221
, Id_mai = 222
, Id_map_bms = 223
, Id_mdf = 224
, Id_mg = 225
, Id_mh = 226
, Id_mhr = 227
, Id_mi = 228
, Id_min = 229
, Id_mk = 230
, Id_ml = 231
, Id_mn = 232
, Id_mo = 233
, Id_mr = 234
, Id_mrj = 235
, Id_ms = 236
, Id_mt = 237
, Id_mus = 238
, Id_mwl = 239
, Id_mwv = 240
, Id_my = 241
, Id_myv = 242
, Id_mzn = 243
, Id_na = 244
, Id_nah = 245
, Id_nan = 246
, Id_nap = 247
, Id_nb = 248
, Id_nds = 249
, Id_nds_nl = 250
, Id_ne = 251
, Id_new = 252
, Id_ng = 253
, Id_niu = 254
, Id_nl = 255
, Id_nl_informal = 256
, Id_nn = 257
, Id_no = 258
, Id_nov = 259
, Id_nrm = 260
, Id_nso = 261
, Id_nv = 262
, Id_ny = 263
, Id_oc = 264
, Id_om = 265
, Id_or = 266
, Id_os = 267
, Id_pa = 268
, Id_pag = 269
, Id_pam = 270
, Id_pap = 271
, Id_pcd = 272
, Id_pdc = 273
, Id_pdt = 274
, Id_pfl = 275
, Id_pi = 276
, Id_pih = 277
, Id_pl = 278
, Id_pms = 279
, Id_pnb = 280
, Id_pnt = 281
, Id_prg = 282
, Id_ps = 283
, Id_pt = 284
, Id_pt_br = 285
, Id_qqq = 286
, Id_qu = 287
, Id_qug = 288
, Id_rgn = 289
, Id_rif = 290
, Id_rm = 291
, Id_rmy = 292
, Id_rn = 293
, Id_ro = 294
, Id_roa_rup = 295
, Id_roa_tara = 296
, Id_ru = 297
, Id_rue = 298
, Id_rup = 299
, Id_ruq = 300
, Id_ruq_cyrl = 301
, Id_ruq_latn = 302
, Id_rw = 303
, Id_sa = 304
, Id_sah = 305
, Id_sat = 306
, Id_sc = 307
, Id_scn = 308
, Id_sco = 309
, Id_sd = 310
, Id_sdc = 311
, Id_se = 312
, Id_sei = 313
, Id_sg = 314
, Id_sgs = 315
, Id_sh = 316
, Id_shi = 317
, Id_si = 318
, Id_simple = 319
, Id_sk = 320
, Id_sl = 321
, Id_sli = 322
, Id_sm = 323
, Id_sma = 324
, Id_sn = 325
, Id_so = 326
, Id_sq = 327
, Id_sr = 328
, Id_sr_ec = 329
, Id_sr_el = 330
, Id_srn = 331
, Id_ss = 332
, Id_st = 333
, Id_stq = 334
, Id_su = 335
, Id_sv = 336
, Id_sw = 337
, Id_sxu = 338
, Id_szl = 339
, Id_ta = 340
, Id_tcy = 341
, Id_te = 342
, Id_test = 343
, Id_tet = 344
, Id_tg = 345
, Id_tg_cyrl = 346
, Id_tg_latn = 347
, Id_th = 348
, Id_ti = 349
, Id_tk = 350
, Id_tl = 351
, Id_tly = 352
, Id_tn = 353
, Id_to = 354
, Id_tokipona = 355
, Id_tp = 356
, Id_tpi = 357
, Id_tr = 358
, Id_tru = 359
, Id_ts = 360
, Id_tt = 361
, Id_tt_cyrl = 362
, Id_tt_latn = 363
, Id_ttt = 364
, Id_tum = 365
, Id_tw = 366
, Id_ty = 367
, Id_tyv = 368
, Id_tzm = 369
, Id_udm = 370
, Id_ug = 371
, Id_ug_arab = 372
, Id_ug_latn = 373
, Id_uk = 374
, Id_ur = 375
, Id_uz = 376
, Id_ve = 377
, Id_vec = 378
, Id_vep = 379
, Id_vi = 380
, Id_vls = 381
, Id_vmf = 382
, Id_vo = 383
, Id_vot = 384
, Id_vro = 385
, Id_wa = 386
, Id_war = 387
, Id_wo = 388
, Id_wuu = 389
, Id_xal = 390
, Id_xh = 391
, Id_xmf = 392
, Id_yi = 393
, Id_yo = 394
, Id_yue = 395
, Id_za = 396
, Id_zea = 397
, Id_zh = 398
, Id_zh_classical = 399
, Id_zh_cn = 400
, Id_zh_hans = 401
, Id_zh_hant = 402
, Id_zh_hk = 403
, Id_zh_min_nan = 404
, Id_zh_mo = 405
, Id_zh_my = 406
, Id_zh_sg = 407
, Id_zh_tw = 408
, Id_zh_yue = 409
, Id_zu = 410
	;
	public static final int Id__max = 411;
	public static Hash_adp_bry Regy() {
		if (regy == null) {
// NOTE: any parenthetical String below will have an "unseen" character of "\xE2\x80\xAA" at the begining and "\xE2\x80\xAC" at the end. They are responsible for parentheses-orientation in RTL langs.
regy = Hash_adp_bry.ci_ascii_();	// ASCII:lang_code; NOTE: must be ci; EX: {{#languages:FR}}
Regy_add(regy, Id_en, "en", "English");
Regy_add(regy, Id_aa, "aa", "Qafár af");
Regy_add(regy, Id_ab, "ab", "Аҧсуа");
Regy_add(regy, Id_ace, "ace", "Acèh");
Regy_add(regy, Id_aeb, "aeb", "زَوُن");
Regy_add(regy, Id_af, "af", "Afrikaans");
Regy_add(regy, Id_ak, "ak", "Akan");
Regy_add(regy, Id_akz, "akz", "Alibamu");
Regy_add(regy, Id_aln, "aln", "Gegë");
Regy_add(regy, Id_als, "als", "Alemannisch");
Regy_add(regy, Id_am, "am", "አማርኛ");
Regy_add(regy, Id_an, "an", "Aragonés");
Regy_add(regy, Id_ang, "ang", "Ænglisc");
Regy_add(regy, Id_anp, "anp", "अङ्गिका");
Regy_add(regy, Id_ar, "ar", "العربية");
Regy_add(regy, Id_arc, "arc", "ܐܪܡܝܐ");
Regy_add(regy, Id_arn, "arn", "Mapudungun");
Regy_add(regy, Id_arq, "arq", "Algerian Arabic");
Regy_add(regy, Id_ary, "ary", "Maġribi");
Regy_add(regy, Id_arz, "arz", "مصرى");
Regy_add(regy, Id_as, "as", "অসমীয়া");
Regy_add(regy, Id_ast, "ast", "Asturianu");
Regy_add(regy, Id_av, "av", "Авар");
Regy_add(regy, Id_avk, "avk", "Kotava");
Regy_add(regy, Id_ay, "ay", "Aymar aru");
Regy_add(regy, Id_az, "az", "Azərbaycanca");
Regy_add(regy, Id_azb, "azb", "South Azerbaijani");
Regy_add(regy, Id_ba, "ba", "Башҡортса");
Regy_add(regy, Id_ban, "ban", "ᬩᬲᬩᬮᬶ");
Regy_add(regy, Id_bar, "bar", "Boarisch");
Regy_add(regy, Id_bat_smg, "bat-smg", "Žemaitėška");
Regy_add(regy, Id_bbc, "bbc", "Batak Toba");
Regy_add(regy, Id_bbc_latn, "bbc-latn", "Batak Toba (Latin)");
Regy_add(regy, Id_bcc, "bcc", "بلوچی مکرانی");
Regy_add(regy, Id_bcl, "bcl", "Bikol Central");
Regy_add(regy, Id_be, "be", "Беларуская");
Regy_add(regy, Id_be_tarask, "be-tarask", "‪Беларуская (тарашкевіца)‬");
Regy_add(regy, Id_be_x_old, "be-x-old", "‪Беларуская (тарашкевіца)‬");
Regy_add(regy, Id_bg, "bg", "Български");
Regy_add(regy, Id_bh, "bh", "भोजपुरी");
Regy_add(regy, Id_bho, "bho", "भोजपुरी");
Regy_add(regy, Id_bi, "bi", "Bislama");
Regy_add(regy, Id_bjn, "bjn", "Bahasa Banjar");
Regy_add(regy, Id_bm, "bm", "Bamanankan");
Regy_add(regy, Id_bn, "bn", "বাংলা");
Regy_add(regy, Id_bo, "bo", "བོད་ཡིག");
Regy_add(regy, Id_bpy, "bpy", "ইমার ঠার/বিষ্ণুপ্রিয়া মণিপুরী");
Regy_add(regy, Id_bqi, "bqi", "بختياري");
Regy_add(regy, Id_br, "br", "Brezhoneg");
Regy_add(regy, Id_brh, "brh", "Bráhuí");
Regy_add(regy, Id_bs, "bs", "Bosanski");
Regy_add(regy, Id_bug, "bug", "ᨅᨔ ᨕᨘᨁᨗ");
Regy_add(regy, Id_bxr, "bxr", "Буряад");
Regy_add(regy, Id_ca, "ca", "Català");
Regy_add(regy, Id_cbk_zam, "cbk-zam", "Chavacano de Zamboanga");
Regy_add(regy, Id_cdo, "cdo", "Mìng-dĕ̤ng-ngṳ̄");
Regy_add(regy, Id_ce, "ce", "Нохчийн");
Regy_add(regy, Id_ceb, "ceb", "Cebuano");
Regy_add(regy, Id_ch, "ch", "Chamoru");
Regy_add(regy, Id_chm, "chm", "Mari");
Regy_add(regy, Id_cho, "cho", "Choctaw");
Regy_add(regy, Id_chr, "chr", "ᏣᎳᎩ");
Regy_add(regy, Id_chy, "chy", "Tsetsêhestâhese");
Regy_add(regy, Id_ckb, "ckb", "کوردی");
Regy_add(regy, Id_co, "co", "Corsu");
Regy_add(regy, Id_cps, "cps", "Capiceño");
Regy_add(regy, Id_cr, "cr", "Nēhiyawēwin / ᓀᐦᐃᔭᐍᐏᐣ");
Regy_add(regy, Id_crh, "crh", "Qırımtatarca");
Regy_add(regy, Id_crh_cyrl, "crh-cyrl", "‪Къырымтатарджа (Кирилл)‬");
Regy_add(regy, Id_crh_latn, "crh-latn", "‪Qırımtatarca (Latin)‬");
Regy_add(regy, Id_cs, "cs", "Česky");
Regy_add(regy, Id_csb, "csb", "Kaszëbsczi");
Regy_add(regy, Id_cu, "cu", "Словѣ́ньскъ / ⰔⰎⰑⰂⰡⰐⰠⰔⰍⰟ");
Regy_add(regy, Id_cv, "cv", "Чӑвашла");
Regy_add(regy, Id_cy, "cy", "Cymraeg");
Regy_add(regy, Id_da, "da", "Dansk");
Regy_add(regy, Id_de, "de", "Deutsch");
Regy_add(regy, Id_de_at, "de-at", "Österreichisches Deutsch");
Regy_add(regy, Id_de_ch, "de-ch", "Schweizer Hochdeutsch");
Regy_add(regy, Id_de_formal, "de-formal", "‪Deutsch (Sie-Form)‬");
Regy_add(regy, Id_diq, "diq", "Zazaki");
Regy_add(regy, Id_dsb, "dsb", "Dolnoserbski");
Regy_add(regy, Id_dtp, "dtp", "Dusun Bundu-liwan");
Regy_add(regy, Id_dv, "dv", "ދިވެހިބަސް");
Regy_add(regy, Id_dz, "dz", "ཇོང་ཁ");
Regy_add(regy, Id_ee, "ee", "Eʋegbe");
Regy_add(regy, Id_egl, "egl", "Emiliàn");
Regy_add(regy, Id_el, "el", "Ελληνικά");
Regy_add(regy, Id_eml, "eml", "Emiliàn e rumagnòl");
Regy_add(regy, Id_en_ca, "en-ca", "Canadian English");
Regy_add(regy, Id_en_rtl, "en-rtl", "English rtl");
Regy_add(regy, Id_en_gb, "en-gb", "British English");
Regy_add(regy, Id_enrtl, "enrtl", "English (right to left)");
Regy_add(regy, Id_eo, "eo", "Esperanto");
Regy_add(regy, Id_es, "es", "Español");
Regy_add(regy, Id_et, "et", "Eesti");
Regy_add(regy, Id_eu, "eu", "Euskara");
Regy_add(regy, Id_ext, "ext", "Estremeñu");
Regy_add(regy, Id_fa, "fa", "فارسی");
Regy_add(regy, Id_ff, "ff", "Fulfulde");
Regy_add(regy, Id_fi, "fi", "Suomi");
Regy_add(regy, Id_fit, "fit", "meänkieli");
Regy_add(regy, Id_fiu_vro, "fiu-vro", "Võro");
Regy_add(regy, Id_fj, "fj", "Na Vosa Vakaviti");
Regy_add(regy, Id_fo, "fo", "Føroyskt");
Regy_add(regy, Id_fr, "fr", "Français");
Regy_add(regy, Id_frc, "frc", "Français cadien");
Regy_add(regy, Id_frp, "frp", "Arpetan");
Regy_add(regy, Id_frr, "frr", "Nordfriisk");
Regy_add(regy, Id_fur, "fur", "Furlan");
Regy_add(regy, Id_fy, "fy", "Frysk");
Regy_add(regy, Id_ga, "ga", "Gaeilge");
Regy_add(regy, Id_gag, "gag", "Gagauz");
Regy_add(regy, Id_gan, "gan", "贛語");
Regy_add(regy, Id_gan_hans, "gan-hans", "‪赣语(简体)‬");
Regy_add(regy, Id_gan_hant, "gan-hant", "‪贛語(繁體)‬");
Regy_add(regy, Id_gd, "gd", "Gàidhlig");
Regy_add(regy, Id_gl, "gl", "Galego");
Regy_add(regy, Id_glk, "glk", "گیلکی");
Regy_add(regy, Id_gn, "gn", "Avañe'ẽ");
Regy_add(regy, Id_gom, "gom", "कोंकणी");
Regy_add(regy, Id_gom_latn, "gom-latn", "कोंकणी (Latin)");
Regy_add(regy, Id_got, "got", "𐌲𐌿𐍄𐌹𐍃𐌺");
Regy_add(regy, Id_grc, "grc", "Ἀρχαία ἑλληνικὴ");
Regy_add(regy, Id_gsw, "gsw", "Alemannisch");
Regy_add(regy, Id_gu, "gu", "ગુજરાતી");
Regy_add(regy, Id_gv, "gv", "Gaelg");
Regy_add(regy, Id_ha, "ha", "هَوُسَ");
Regy_add(regy, Id_hak, "hak", "Hak-kâ-fa");
Regy_add(regy, Id_haw, "haw", "Hawai`i");
Regy_add(regy, Id_he, "he", "עברית");
Regy_add(regy, Id_hi, "hi", "हिन्दी");
Regy_add(regy, Id_hif, "hif", "Fiji Hindi");
Regy_add(regy, Id_hif_latn, "hif-latn", "Fiji Hindi");
Regy_add(regy, Id_hil, "hil", "Ilonggo");
Regy_add(regy, Id_ho, "ho", "Hiri Motu");
Regy_add(regy, Id_hr, "hr", "Hrvatski");
Regy_add(regy, Id_hrx, "hrx", "Hunsriker");
Regy_add(regy, Id_hsb, "hsb", "Hornjoserbsce");
Regy_add(regy, Id_ht, "ht", "Kreyòl ayisyen");
Regy_add(regy, Id_hu, "hu", "Magyar");
Regy_add(regy, Id_hu_formal, "hu-formal", "Magyar (formal)");
Regy_add(regy, Id_hy, "hy", "Հայերեն");
Regy_add(regy, Id_hz, "hz", "Otsiherero");
Regy_add(regy, Id_ia, "ia", "Interlingua");
Regy_add(regy, Id_id, "id", "Bahasa Indonesia");
Regy_add(regy, Id_ie, "ie", "Interlingue");
Regy_add(regy, Id_ig, "ig", "Igbo");
Regy_add(regy, Id_ii, "ii", "ꆇꉙ");
Regy_add(regy, Id_ik, "ik", "Iñupiak");
Regy_add(regy, Id_ike_cans, "ike-cans", "ᐃᓄᒃᑎᑐᑦ");
Regy_add(regy, Id_ike_latn, "ike-latn", "inuktitut");
Regy_add(regy, Id_ilo, "ilo", "Ilokano");
Regy_add(regy, Id_inh, "inh", "ГІалгІай Ğalğaj");
Regy_add(regy, Id_io, "io", "Ido");
Regy_add(regy, Id_is, "is", "Íslenska");
Regy_add(regy, Id_it, "it", "Italiano");
Regy_add(regy, Id_iu, "iu", "ᐃᓄᒃᑎᑐᑦ/inuktitut");
Regy_add(regy, Id_ja, "ja", "日本語");
Regy_add(regy, Id_jam, "jam", "Patois");
Regy_add(regy, Id_jbo, "jbo", "Lojban");
Regy_add(regy, Id_jut, "jut", "Jysk");
Regy_add(regy, Id_jv, "jv", "Basa Jawa");
Regy_add(regy, Id_ka, "ka", "ქართული");
Regy_add(regy, Id_kaa, "kaa", "Qaraqalpaqsha");
Regy_add(regy, Id_kab, "kab", "Taqbaylit");
Regy_add(regy, Id_kbd, "kbd", "Къэбэрдеибзэ / Qabardjajəbza");
Regy_add(regy, Id_kbd_cyrl, "kbd-cyrl", "къэбэрдеибзэ");
Regy_add(regy, Id_kg, "kg", "Kongo");
Regy_add(regy, Id_khw, "khw", "کھوار");
Regy_add(regy, Id_ki, "ki", "Gĩkũyũ");
Regy_add(regy, Id_kiu, "kiu", "Kırmancki");
Regy_add(regy, Id_kj, "kj", "Kwanyama");
Regy_add(regy, Id_kk, "kk", "Қазақша");
Regy_add(regy, Id_kk_arab, "kk-arab", "‫قازاقشا (تٴوتە)‬");
Regy_add(regy, Id_kk_cn, "kk-cn", "‫قازاقشا (جۇنگو)‬");
Regy_add(regy, Id_kk_cyrl, "kk-cyrl", "‪Қазақша (кирил)‬");
Regy_add(regy, Id_kk_kz, "kk-kz", "‪Қазақша (Қазақстан)‬");
Regy_add(regy, Id_kk_latn, "kk-latn", "‪Qazaqşa (latın)‬");
Regy_add(regy, Id_kk_tr, "kk-tr", "‪Qazaqşa (Türkïya)‬");
Regy_add(regy, Id_kl, "kl", "Kalaallisut");
Regy_add(regy, Id_km, "km", "ភាសាខ្មែរ");
Regy_add(regy, Id_kn, "kn", "ಕನ್ನಡ");
Regy_add(regy, Id_ko, "ko", "한국어");
Regy_add(regy, Id_ko_kp, "ko-kp", "한국어 (조선)");
Regy_add(regy, Id_koi, "koi", "Перем Коми");
Regy_add(regy, Id_kr, "kr", "Kanuri");
Regy_add(regy, Id_krc, "krc", "Къарачай-Малкъар");
Regy_add(regy, Id_kri, "kri", "Krio");
Regy_add(regy, Id_krj, "krj", "Kinaray-a");
Regy_add(regy, Id_krl, "krl", "Karelian");
Regy_add(regy, Id_ks, "ks", "कश्मीरी - (كشميري)");
Regy_add(regy, Id_ks_arab, "ks-arab", "کٲشُر");
Regy_add(regy, Id_ks_deva, "ks-deva", "कॉशुर");
Regy_add(regy, Id_ksh, "ksh", "Ripoarisch");
Regy_add(regy, Id_ku, "ku", "Kurdî");
Regy_add(regy, Id_ku_arab, "ku-arab", "‫كوردي (عەرەبی)‬");
Regy_add(regy, Id_ku_latn, "ku-latn", "‪Kurdî (latînî)‬");
Regy_add(regy, Id_kv, "kv", "Коми");
Regy_add(regy, Id_kw, "kw", "Kernowek");
Regy_add(regy, Id_ky, "ky", "Кыргызча");
Regy_add(regy, Id_la, "la", "Latina");
Regy_add(regy, Id_lad, "lad", "Ladino");
Regy_add(regy, Id_lb, "lb", "Lëtzebuergesch");
Regy_add(regy, Id_lbe, "lbe", "Лакку");
Regy_add(regy, Id_lez, "lez", "Лезги");
Regy_add(regy, Id_lfn, "lfn", "Lingua Franca Nova");
Regy_add(regy, Id_lg, "lg", "Luganda");
Regy_add(regy, Id_li, "li", "Limburgs");
Regy_add(regy, Id_lij, "lij", "Líguru");
Regy_add(regy, Id_liv, "liv", "Līvõ kēļ");
Regy_add(regy, Id_lmo, "lmo", "Lumbaart");
Regy_add(regy, Id_ln, "ln", "Lingála");
Regy_add(regy, Id_lo, "lo", "ລາວ");
Regy_add(regy, Id_loz, "loz", "Silozi");
Regy_add(regy, Id_lrc, "lrc", "لوری");
Regy_add(regy, Id_lt, "lt", "Lietuvių");
Regy_add(regy, Id_ltg, "ltg", "Latgaļu");
Regy_add(regy, Id_lus, "lus", "Mizo ţawng");
Regy_add(regy, Id_lv, "lv", "Latviešu");
Regy_add(regy, Id_lzh, "lzh", "文言");
Regy_add(regy, Id_lzz, "lzz", "Lazuri");
Regy_add(regy, Id_mai, "mai", "मैथिली");
Regy_add(regy, Id_map_bms, "map-bms", "Basa Banyumasan");
Regy_add(regy, Id_mdf, "mdf", "Мокшень");
Regy_add(regy, Id_mg, "mg", "Malagasy");
Regy_add(regy, Id_mh, "mh", "Ebon");
Regy_add(regy, Id_mhr, "mhr", "Олык Марий");
Regy_add(regy, Id_mi, "mi", "Māori");
Regy_add(regy, Id_min, "min", "Baso Minangkabau");
Regy_add(regy, Id_mk, "mk", "Македонски");
Regy_add(regy, Id_ml, "ml", "മലയാളം");
Regy_add(regy, Id_mn, "mn", "Монгол");
Regy_add(regy, Id_mo, "mo", "Молдовеняскэ");
Regy_add(regy, Id_mr, "mr", "मराठी");
Regy_add(regy, Id_mrj, "mrj", "Кырык мары");
Regy_add(regy, Id_ms, "ms", "Bahasa Melayu");
Regy_add(regy, Id_mt, "mt", "Malti");
Regy_add(regy, Id_mus, "mus", "Mvskoke");
Regy_add(regy, Id_mwl, "mwl", "Mirandés");
Regy_add(regy, Id_mwv, "mwv", "Behase Mentawei");
Regy_add(regy, Id_my, "my", "Burmese");
Regy_add(regy, Id_myv, "myv", "Эрзянь");
Regy_add(regy, Id_mzn, "mzn", "مازِرونی");
Regy_add(regy, Id_na, "na", "Dorerin Naoero");
Regy_add(regy, Id_nah, "nah", "Nāhuatl");
Regy_add(regy, Id_nan, "nan", "Bân-lâm-gú");
Regy_add(regy, Id_nap, "nap", "Nnapulitano");
Regy_add(regy, Id_nb, "nb", "‪Norsk (bokmål)‬");
Regy_add(regy, Id_nds, "nds", "Plattdüütsch");
Regy_add(regy, Id_nds_nl, "nds-nl", "Nedersaksisch");
Regy_add(regy, Id_ne, "ne", "नेपाली");
Regy_add(regy, Id_new, "new", "नेपाल भाषा");
Regy_add(regy, Id_ng, "ng", "Oshiwambo");
Regy_add(regy, Id_niu, "niu", "Niuē");
Regy_add(regy, Id_nl, "nl", "Nederlands");
Regy_add(regy, Id_nl_informal, "nl-informal", "‪Nederlands (informeel)‬");
Regy_add(regy, Id_nn, "nn", "‪Norsk (nynorsk)‬");
Regy_add(regy, Id_no, "no", "‪Norsk (bokmål)‬");
Regy_add(regy, Id_nov, "nov", "Novial");
Regy_add(regy, Id_nrm, "nrm", "Nouormand");
Regy_add(regy, Id_nso, "nso", "Sesotho sa Leboa");
Regy_add(regy, Id_nv, "nv", "Diné bizaad");
Regy_add(regy, Id_ny, "ny", "Chi-Chewa");
Regy_add(regy, Id_oc, "oc", "Occitan");
Regy_add(regy, Id_om, "om", "Oromoo");
Regy_add(regy, Id_or, "or", "ଓଡ଼ିଆ");
Regy_add(regy, Id_os, "os", "Иронау");
Regy_add(regy, Id_pa, "pa", "ਪੰਜਾਬੀ");
Regy_add(regy, Id_pag, "pag", "Pangasinan");
Regy_add(regy, Id_pam, "pam", "Kapampangan");
Regy_add(regy, Id_pap, "pap", "Papiamentu");
Regy_add(regy, Id_pcd, "pcd", "Picard");
Regy_add(regy, Id_pdc, "pdc", "Deitsch");
Regy_add(regy, Id_pdt, "pdt", "Plautdietsch");
Regy_add(regy, Id_pfl, "pfl", "Pälzisch");
Regy_add(regy, Id_pi, "pi", "पािऴ");
Regy_add(regy, Id_pih, "pih", "Norfuk / Pitkern");
Regy_add(regy, Id_pl, "pl", "Polski");
Regy_add(regy, Id_pms, "pms", "Piemontèis");
Regy_add(regy, Id_pnb, "pnb", "پنجابی");
Regy_add(regy, Id_pnt, "pnt", "Ποντιακά");
Regy_add(regy, Id_prg, "prg", "Prūsiskan");
Regy_add(regy, Id_ps, "ps", "پښتو");
Regy_add(regy, Id_pt, "pt", "Português");
Regy_add(regy, Id_pt_br, "pt-br", "Português do Brasil");
Regy_add(regy, Id_qqq, "qqq", "MediaWiki sample");
Regy_add(regy, Id_qu, "qu", "Runa Simi");
Regy_add(regy, Id_qug, "qug", "Runa shimi");
Regy_add(regy, Id_rgn, "rgn", "Rumagnôl");
Regy_add(regy, Id_rif, "rif", "Tarifit");
Regy_add(regy, Id_rm, "rm", "Rumantsch");
Regy_add(regy, Id_rmy, "rmy", "Romani");
Regy_add(regy, Id_rn, "rn", "Kirundi");
Regy_add(regy, Id_ro, "ro", "Română");
Regy_add(regy, Id_roa_rup, "roa-rup", "Armãneashce");
Regy_add(regy, Id_roa_tara, "roa-tara", "Tarandíne");
Regy_add(regy, Id_ru, "ru", "Русский");
Regy_add(regy, Id_rue, "rue", "Русиньскый");
Regy_add(regy, Id_rup, "rup", "Armãneașce");
Regy_add(regy, Id_ruq, "ruq", "Vlăheşte");
Regy_add(regy, Id_ruq_cyrl, "ruq-cyrl", "Влахесте");
Regy_add(regy, Id_ruq_latn, "ruq-latn", "Vlăheşte");
Regy_add(regy, Id_rw, "rw", "Kinyarwanda");
Regy_add(regy, Id_sa, "sa", "संस्कृत");
Regy_add(regy, Id_sah, "sah", "Саха тыла");
Regy_add(regy, Id_sat, "sat", "Santali");
Regy_add(regy, Id_sc, "sc", "Sardu");
Regy_add(regy, Id_scn, "scn", "Sicilianu");
Regy_add(regy, Id_sco, "sco", "Scots");
Regy_add(regy, Id_sd, "sd", "سنڌي");
Regy_add(regy, Id_sdc, "sdc", "Sassaresu");
Regy_add(regy, Id_se, "se", "Sámegiella");
Regy_add(regy, Id_sei, "sei", "Cmique Itom");
Regy_add(regy, Id_sg, "sg", "Sängö");
Regy_add(regy, Id_sgs, "sgs", "Žemaitėška");
Regy_add(regy, Id_sh, "sh", "Srpskohrvatski / Српскохрватски");
Regy_add(regy, Id_shi, "shi", "Tašlḥiyt");
Regy_add(regy, Id_si, "si", "Sinhalese");
Regy_add(regy, Id_simple, "simple", "Simple English");
Regy_add(regy, Id_sk, "sk", "Slovenčina");
Regy_add(regy, Id_sl, "sl", "Slovenščina");
Regy_add(regy, Id_sli, "sli", "Schläsch");
Regy_add(regy, Id_sm, "sm", "Gagana Samoa");
Regy_add(regy, Id_sma, "sma", "Åarjelsaemien");
Regy_add(regy, Id_sn, "sn", "chiShona");
Regy_add(regy, Id_so, "so", "Soomaaliga");
Regy_add(regy, Id_sq, "sq", "Shqip");
Regy_add(regy, Id_sr, "sr", "Српски / Srpski");
Regy_add(regy, Id_sr_ec, "sr-ec", "‪Српски (ћирилица)‬");
Regy_add(regy, Id_sr_el, "sr-el", "‪Srpski (latinica)‬");
Regy_add(regy, Id_srn, "srn", "Sranantongo");
Regy_add(regy, Id_ss, "ss", "SiSwati");
Regy_add(regy, Id_st, "st", "Sesotho");
Regy_add(regy, Id_stq, "stq", "Seeltersk");
Regy_add(regy, Id_su, "su", "Basa Sunda");
Regy_add(regy, Id_sv, "sv", "Svenska");
Regy_add(regy, Id_sw, "sw", "Kiswahili");
Regy_add(regy, Id_sxu, "sxu", "Saxon, Upper");
Regy_add(regy, Id_szl, "szl", "Ślůnski");
Regy_add(regy, Id_ta, "ta", "தமிழ்");
Regy_add(regy, Id_tcy, "tcy", "ತುಳು");
Regy_add(regy, Id_te, "te", "తెలుగు");
Regy_add(regy, Id_test, "test", "MediaWiki test");
Regy_add(regy, Id_tet, "tet", "Tetun");
Regy_add(regy, Id_tg, "tg", "Тоҷикӣ");
Regy_add(regy, Id_tg_cyrl, "tg-cyrl", "Тоҷикӣ");
Regy_add(regy, Id_tg_latn, "tg-latn", "tojikī");
Regy_add(regy, Id_th, "th", "ไทย");
Regy_add(regy, Id_ti, "ti", "ትግርኛ");
Regy_add(regy, Id_tk, "tk", "Türkmençe");
Regy_add(regy, Id_tl, "tl", "Tagalog");
Regy_add(regy, Id_tly, "tly", "толышә зывон");
Regy_add(regy, Id_tn, "tn", "Setswana");
Regy_add(regy, Id_to, "to", "lea faka-Tonga");
Regy_add(regy, Id_tokipona, "tokipona", "Toki Pona");
Regy_add(regy, Id_tp, "tp", "Toki Pona (deprecated:tokipona)");
Regy_add(regy, Id_tpi, "tpi", "Tok Pisin");
Regy_add(regy, Id_tr, "tr", "Türkçe");
Regy_add(regy, Id_tru, "tru", "Ṫuroyo");
Regy_add(regy, Id_ts, "ts", "Xitsonga");
Regy_add(regy, Id_tt, "tt", "Татарча/Tatarça");
Regy_add(regy, Id_tt_cyrl, "tt-cyrl", "Татарча");
Regy_add(regy, Id_tt_latn, "tt-latn", "Tatarça");
Regy_add(regy, Id_ttt, "ttt", "Tat, Muslim");
Regy_add(regy, Id_tum, "tum", "chiTumbuka");
Regy_add(regy, Id_tw, "tw", "Twi");
Regy_add(regy, Id_ty, "ty", "Reo Mā`ohi");
Regy_add(regy, Id_tyv, "tyv", "Тыва дыл");
Regy_add(regy, Id_tzm, "tzm", "ⵜⴰⵎⴰⵣⵉⵖⵜ");
Regy_add(regy, Id_udm, "udm", "Удмурт");
Regy_add(regy, Id_ug, "ug", "ئۇيغۇرچە / Uyghurche‎");
Regy_add(regy, Id_ug_arab, "ug-arab", "ئۇيغۇرچە");
Regy_add(regy, Id_ug_latn, "ug-latn", "Uyghurche‎");
Regy_add(regy, Id_uk, "uk", "Українська");
Regy_add(regy, Id_ur, "ur", "اردو");
Regy_add(regy, Id_uz, "uz", "O'zbek");
Regy_add(regy, Id_ve, "ve", "Tshivenda");
Regy_add(regy, Id_vec, "vec", "Vèneto");
Regy_add(regy, Id_vep, "vep", "Vepsan kel'");
Regy_add(regy, Id_vi, "vi", "Tiếng Việt");
Regy_add(regy, Id_vls, "vls", "West-Vlams");
Regy_add(regy, Id_vmf, "vmf", "Mainfränkisch");
Regy_add(regy, Id_vo, "vo", "Volapük");
Regy_add(regy, Id_vot, "vot", "Vaďďa");
Regy_add(regy, Id_vro, "vro", "Võro");
Regy_add(regy, Id_wa, "wa", "Walon");
Regy_add(regy, Id_war, "war", "Winaray");
Regy_add(regy, Id_wo, "wo", "Wolof");
Regy_add(regy, Id_wuu, "wuu", "吴语");
Regy_add(regy, Id_xal, "xal", "Хальмг");
Regy_add(regy, Id_xh, "xh", "isiXhosa");
Regy_add(regy, Id_xmf, "xmf", "მარგალური");
Regy_add(regy, Id_yi, "yi", "ייִדיש");
Regy_add(regy, Id_yo, "yo", "Yorùbá");
Regy_add(regy, Id_yue, "yue", "粵語");
Regy_add(regy, Id_za, "za", "Vahcuengh");
Regy_add(regy, Id_zea, "zea", "Zeêuws");
Regy_add(regy, Id_zh, "zh", "中文");
Regy_add(regy, Id_zh_classical, "zh-classical", "文言");
Regy_add(regy, Id_zh_cn, "zh-cn", "‪中文(中国大陆)‬");
Regy_add(regy, Id_zh_hans, "zh-hans", "‪中文(简体)‬");
Regy_add(regy, Id_zh_hant, "zh-hant", "‪中文(繁體)‬");
Regy_add(regy, Id_zh_hk, "zh-hk", "‪中文(香港)‬");
Regy_add(regy, Id_zh_min_nan, "zh-min-nan", "Bân-lâm-gú");
Regy_add(regy, Id_zh_mo, "zh-mo", "‪中文(澳門)‬");
Regy_add(regy, Id_zh_my, "zh-my", "‪中文(马来西亚)‬");
Regy_add(regy, Id_zh_sg, "zh-sg", "‪中文(新加坡)‬");
Regy_add(regy, Id_zh_tw, "zh-tw", "‪中文(台灣)‬");
Regy_add(regy, Id_zh_yue, "zh-yue", "粵語");
Regy_add(regy, Id_zu, "zu", "isiZulu");
		}
		return regy;
	}
	private static Hash_adp_bry regy; private static Xol_lang_itm[] langs = new Xol_lang_itm[Id__max];
	private static void Regy_add(Hash_adp_bry regy, int id, String code_str, String canonical) {
		byte[] code = Bry_.new_ascii_(code_str);	// ASCII:lang_code should always be ASCII
		Xol_lang_itm itm = new Xol_lang_itm(id, code, Bry_.new_utf8_(canonical));
		langs[id] = itm;
		regy.Add(code, itm);
	}
	public static Xol_lang_itm Get_by_key_or_en(byte[] key) {
		if (regy == null) Regy(); 
		Xol_lang_itm lang_itm = (Xol_lang_itm)regy.Get_by_bry(key);
		if (lang_itm == null) lang_itm = (Xol_lang_itm)regy.Get_by_bry(Xol_lang_.Key_en);
		return lang_itm;
	}
	public static Xol_lang_itm Get_by_key(byte[] key) {if (regy == null) Regy(); return (Xol_lang_itm)regy.Get_by_bry(key);}
	public static Xol_lang_itm Get_by_key_or_intl(byte[] key) {return Get_by_key_or_intl(key, 0, key.length);}
	public static Xol_lang_itm Get_by_key_or_intl(byte[] key, int bgn, int end) {
		if (regy == null) Regy();
		Xol_lang_itm rv = (Xol_lang_itm)regy.Get_by_mid(key, bgn, end);
		return rv == null ? Intl : rv;
	}
	public static Xol_lang_itm Get_by_id(int id) {if (regy == null) Regy(); return langs[id];}
	public static boolean Exists(byte[] key) {return Get_by_key(key) != null;}	// Language.php!isSupportedLanguage
	public static final Xol_lang_itm Intl = new Xol_lang_itm(Xol_lang_itm_.Id__intl, Bry_.Empty, Bry_.Empty);	// intended for international wikis like commons, wikidata, etc..
}
class Comparer_lang_code implements ComparerAble {
	public int compare(Object lhsObj, Object rhsObj) {
		Xol_lang_itm lhs = (Xol_lang_itm)lhsObj;
		Xol_lang_itm rhs = (Xol_lang_itm)rhsObj;
		return Bry_.Compare(lhs.Key(), rhs.Key());
	}
}
