/* == Start of generated table == */
/*
 * The following table is generated by running:
 *
 *   ./gen-tag-table.py languagetags language-subtag-registry
 *
 * on files with these headers:
 *
 * <meta name="updated_at" content="2021-12-09 12:01 AM" />
 * File-Date: 2021-08-06
 */

#ifndef HB_OT_TAG_TABLE_HH
#define HB_OT_TAG_TABLE_HH

static const LangTag ot_languages[] = {
  {"aa",	HB_TAG('A','F','R',' ')},	/* Afar */
  {"aae",	HB_TAG('S','Q','I',' ')},	/* Arbëreshë Albanian -> Albanian */
  {"aao",	HB_TAG('A','R','A',' ')},	/* Algerian Saharan Arabic -> Arabic */
  {"aat",	HB_TAG('S','Q','I',' ')},	/* Arvanitika Albanian -> Albanian */
  {"ab",	HB_TAG('A','B','K',' ')},	/* Abkhazian */
  {"aba",	HB_TAG_NONE	       },	/* Abé != Abaza */
  {"abh",	HB_TAG('A','R','A',' ')},	/* Tajiki Arabic -> Arabic */
  {"abq",	HB_TAG('A','B','A',' ')},	/* Abaza */
  {"abs",	HB_TAG('C','P','P',' ')},	/* Ambonese Malay -> Creoles */
  {"abv",	HB_TAG('A','R','A',' ')},	/* Baharna Arabic -> Arabic */
  {"acf",	HB_TAG('F','A','N',' ')},	/* Saint Lucian Creole French -> French Antillean */
  {"acf",	HB_TAG('C','P','P',' ')},	/* Saint Lucian Creole French -> Creoles */
/*{"ach",	HB_TAG('A','C','H',' ')},*/	/* Acoli -> Acholi */
  {"acm",	HB_TAG('A','R','A',' ')},	/* Mesopotamian Arabic -> Arabic */
  {"acq",	HB_TAG('A','R','A',' ')},	/* Ta'izzi-Adeni Arabic -> Arabic */
  {"acr",	HB_TAG('A','C','R',' ')},	/* Achi */
  {"acr",	HB_TAG('M','Y','N',' ')},	/* Achi -> Mayan */
  {"acw",	HB_TAG('A','R','A',' ')},	/* Hijazi Arabic -> Arabic */
  {"acx",	HB_TAG('A','R','A',' ')},	/* Omani Arabic -> Arabic */
  {"acy",	HB_TAG('A','R','A',' ')},	/* Cypriot Arabic -> Arabic */
  {"ada",	HB_TAG('D','N','G',' ')},	/* Adangme -> Dangme */
  {"adf",	HB_TAG('A','R','A',' ')},	/* Dhofari Arabic -> Arabic */
  {"adp",	HB_TAG('D','Z','N',' ')},	/* Adap (retired code) -> Dzongkha */
/*{"ady",	HB_TAG('A','D','Y',' ')},*/	/* Adyghe */
  {"aeb",	HB_TAG('A','R','A',' ')},	/* Tunisian Arabic -> Arabic */
  {"aec",	HB_TAG('A','R','A',' ')},	/* Saidi Arabic -> Arabic */
  {"af",	HB_TAG('A','F','K',' ')},	/* Afrikaans */
  {"afb",	HB_TAG('A','R','A',' ')},	/* Gulf Arabic -> Arabic */
  {"afk",	HB_TAG_NONE	       },	/* Nanubae != Afrikaans */
  {"afs",	HB_TAG('C','P','P',' ')},	/* Afro-Seminole Creole -> Creoles */
  {"agu",	HB_TAG('M','Y','N',' ')},	/* Aguacateco -> Mayan */
  {"agw",	HB_TAG_NONE	       },	/* Kahua != Agaw */
  {"ahg",	HB_TAG('A','G','W',' ')},	/* Qimant -> Agaw */
  {"aht",	HB_TAG('A','T','H',' ')},	/* Ahtena -> Athapaskan */
  {"aig",	HB_TAG('C','P','P',' ')},	/* Antigua and Barbuda Creole English -> Creoles */
  {"aii",	HB_TAG('S','W','A',' ')},	/* Assyrian Neo-Aramaic -> Swadaya Aramaic */
  {"aii",	HB_TAG('S','Y','R',' ')},	/* Assyrian Neo-Aramaic -> Syriac */
/*{"aio",	HB_TAG('A','I','O',' ')},*/	/* Aiton */
  {"aiw",	HB_TAG('A','R','I',' ')},	/* Aari */
  {"ajp",	HB_TAG('A','R','A',' ')},	/* South Levantine Arabic -> Arabic */
  {"ak",	HB_TAG('A','K','A',' ')},	/* Akan [macrolanguage] */
  {"akb",	HB_TAG('A','K','B',' ')},	/* Batak Angkola */
  {"akb",	HB_TAG('B','T','K',' ')},	/* Batak Angkola -> Batak */
  {"aln",	HB_TAG('S','Q','I',' ')},	/* Gheg Albanian -> Albanian */
  {"als",	HB_TAG('S','Q','I',' ')},	/* Tosk Albanian -> Albanian */
/*{"alt",	HB_TAG('A','L','T',' ')},*/	/* Southern Altai -> Altai */
  {"am",	HB_TAG('A','M','H',' ')},	/* Amharic */
  {"amf",	HB_TAG('H','B','N',' ')},	/* Hamer-Banna -> Hammer-Banna */
  {"amw",	HB_TAG('S','Y','R',' ')},	/* Western Neo-Aramaic -> Syriac */
  {"an",	HB_TAG('A','R','G',' ')},	/* Aragonese */
/*{"ang",	HB_TAG('A','N','G',' ')},*/	/* Old English (ca. 450-1100) -> Anglo-Saxon */
  {"aoa",	HB_TAG('C','P','P',' ')},	/* Angolar -> Creoles */
  {"apa",	HB_TAG('A','T','H',' ')},	/* Apache [family] -> Athapaskan */
  {"apc",	HB_TAG('A','R','A',' ')},	/* North Levantine Arabic -> Arabic */
  {"apd",	HB_TAG('A','R','A',' ')},	/* Sudanese Arabic -> Arabic */
  {"apj",	HB_TAG('A','T','H',' ')},	/* Jicarilla Apache -> Athapaskan */
  {"apk",	HB_TAG('A','T','H',' ')},	/* Kiowa Apache -> Athapaskan */
  {"apl",	HB_TAG('A','T','H',' ')},	/* Lipan Apache -> Athapaskan */
  {"apm",	HB_TAG('A','T','H',' ')},	/* Mescalero-Chiricahua Apache -> Athapaskan */
  {"apw",	HB_TAG('A','T','H',' ')},	/* Western Apache -> Athapaskan */
  {"ar",	HB_TAG('A','R','A',' ')},	/* Arabic [macrolanguage] */
  {"arb",	HB_TAG('A','R','A',' ')},	/* Standard Arabic -> Arabic */
  {"ari",	HB_TAG_NONE	       },	/* Arikara != Aari */
  {"ark",	HB_TAG_NONE	       },	/* Arikapú != Rakhine */
  {"arn",	HB_TAG('M','A','P',' ')},	/* Mapudungun */
  {"arq",	HB_TAG('A','R','A',' ')},	/* Algerian Arabic -> Arabic */
  {"ars",	HB_TAG('A','R','A',' ')},	/* Najdi Arabic -> Arabic */
  {"ary",	HB_TAG('M','O','R',' ')},	/* Moroccan Arabic -> Moroccan */
  {"ary",	HB_TAG('A','R','A',' ')},	/* Moroccan Arabic -> Arabic */
  {"arz",	HB_TAG('A','R','A',' ')},	/* Egyptian Arabic -> Arabic */
  {"as",	HB_TAG('A','S','M',' ')},	/* Assamese */
/*{"ast",	HB_TAG('A','S','T',' ')},*/	/* Asturian */
/*{"ath",	HB_TAG('A','T','H',' ')},*/	/* Athapascan [family] -> Athapaskan */
  {"atj",	HB_TAG('R','C','R',' ')},	/* Atikamekw -> R-Cree */
  {"atv",	HB_TAG('A','L','T',' ')},	/* Northern Altai -> Altai */
  {"auj",	HB_TAG('B','B','R',' ')},	/* Awjilah -> Berber */
  {"auz",	HB_TAG('A','R','A',' ')},	/* Uzbeki Arabic -> Arabic */
  {"av",	HB_TAG('A','V','R',' ')},	/* Avaric -> Avar */
  {"avl",	HB_TAG('A','R','A',' ')},	/* Eastern Egyptian Bedawi Arabic -> Arabic */
/*{"avn",	HB_TAG('A','V','N',' ')},*/	/* Avatime */
/*{"awa",	HB_TAG('A','W','A',' ')},*/	/* Awadhi */
  {"ay",	HB_TAG('A','Y','M',' ')},	/* Aymara [macrolanguage] */
  {"ayc",	HB_TAG('A','Y','M',' ')},	/* Southern Aymara -> Aymara */
  {"ayh",	HB_TAG('A','R','A',' ')},	/* Hadrami Arabic -> Arabic */
  {"ayl",	HB_TAG('A','R','A',' ')},	/* Libyan Arabic -> Arabic */
  {"ayn",	HB_TAG('A','R','A',' ')},	/* Sanaani Arabic -> Arabic */
  {"ayp",	HB_TAG('A','R','A',' ')},	/* North Mesopotamian Arabic -> Arabic */
  {"ayr",	HB_TAG('A','Y','M',' ')},	/* Central Aymara -> Aymara */
  {"az",	HB_TAG('A','Z','E',' ')},	/* Azerbaijani [macrolanguage] */
  {"azb",	HB_TAG('A','Z','B',' ')},	/* South Azerbaijani -> Torki */
  {"azb",	HB_TAG('A','Z','E',' ')},	/* South Azerbaijani -> Azerbaijani */
  {"azd",	HB_TAG('N','A','H',' ')},	/* Eastern Durango Nahuatl -> Nahuatl */
  {"azj",	HB_TAG('A','Z','E',' ')},	/* North Azerbaijani -> Azerbaijani */
  {"azn",	HB_TAG('N','A','H',' ')},	/* Western Durango Nahuatl -> Nahuatl */
  {"azz",	HB_TAG('N','A','H',' ')},	/* Highland Puebla Nahuatl -> Nahuatl */
  {"ba",	HB_TAG('B','S','H',' ')},	/* Bashkir */
  {"bad",	HB_TAG('B','A','D','0')},	/* Banda [family] */
  {"bag",	HB_TAG_NONE	       },	/* Tuki != Baghelkhandi */
  {"bah",	HB_TAG('C','P','P',' ')},	/* Bahamas Creole English -> Creoles */
  {"bai",	HB_TAG('B','M','L',' ')},	/* Bamileke [family] */
  {"bal",	HB_TAG('B','L','I',' ')},	/* Baluchi [macrolanguage] */
/*{"ban",	HB_TAG('B','A','N',' ')},*/	/* Balinese */
/*{"bar",	HB_TAG('B','A','R',' ')},*/	/* Bavarian */
  {"bau",	HB_TAG_NONE	       },	/* Bada (Nigeria) != Baulé */
  {"bbc",	HB_TAG('B','B','C',' ')},	/* Batak Toba */
  {"bbc",	HB_TAG('B','T','K',' ')},	/* Batak Toba -> Batak */
  {"bbj",	HB_TAG('B','M','L',' ')},	/* Ghomálá' -> Bamileke */
  {"bbp",	HB_TAG('B','A','D','0')},	/* West Central Banda -> Banda */
  {"bbr",	HB_TAG_NONE	       },	/* Girawa != Berber */
  {"bbz",	HB_TAG('A','R','A',' ')},	/* Babalia Creole Arabic (retired code) -> Arabic */
  {"bcc",	HB_TAG('B','L','I',' ')},	/* Southern Balochi -> Baluchi */
  {"bch",	HB_TAG_NONE	       },	/* Bariai != Bench */
  {"bci",	HB_TAG('B','A','U',' ')},	/* Baoulé -> Baulé */
  {"bcl",	HB_TAG('B','I','K',' ')},	/* Central Bikol -> Bikol */
  {"bcq",	HB_TAG('B','C','H',' ')},	/* Bench */
  {"bcr",	HB_TAG('A','T','H',' ')},	/* Babine -> Athapaskan */
/*{"bdy",	HB_TAG('B','D','Y',' ')},*/	/* Bandjalang */
  {"be",	HB_TAG('B','E','L',' ')},	/* Belarusian -> Belarussian */
  {"bea",	HB_TAG('A','T','H',' ')},	/* Beaver -> Athapaskan */
  {"beb",	HB_TAG('B','T','I',' ')},	/* Bebele -> Beti */
/*{"bem",	HB_TAG('B','E','M',' ')},*/	/* Bemba (Zambia) */
  {"ber",	HB_TAG('B','B','R',' ')},	/* Berber [family] */
  {"bew",	HB_TAG('C','P','P',' ')},	/* Betawi -> Creoles */
  {"bfl",	HB_TAG('B','A','D','0')},	/* Banda-Ndélé -> Banda */
  {"bfq",	HB_TAG('B','A','D',' ')},	/* Badaga */
  {"bft",	HB_TAG('B','L','T',' ')},	/* Balti */
  {"bfu",	HB_TAG('L','A','H',' ')},	/* Gahri -> Lahuli */
  {"bfy",	HB_TAG('B','A','G',' ')},	/* Bagheli -> Baghelkhandi */
  {"bg",	HB_TAG('B','G','R',' ')},	/* Bulgarian */
/*{"bgc",	HB_TAG('B','G','C',' ')},*/	/* Haryanvi */
  {"bgn",	HB_TAG('B','L','I',' ')},	/* Western Balochi -> Baluchi */
  {"bgp",	HB_TAG('B','L','I',' ')},	/* Eastern Balochi -> Baluchi */
  {"bgq",	HB_TAG('B','G','Q',' ')},	/* Bagri */
  {"bgq",	HB_TAG('R','A','J',' ')},	/* Bagri -> Rajasthani */
  {"bgr",	HB_TAG('Q','I','N',' ')},	/* Bawm Chin -> Chin */
  {"bhb",	HB_TAG('B','H','I',' ')},	/* Bhili */
/*{"bhi",	HB_TAG('B','H','I',' ')},*/	/* Bhilali -> Bhili */
  {"bhk",	HB_TAG('B','I','K',' ')},	/* Albay Bicolano (retired code) -> Bikol */
/*{"bho",	HB_TAG('B','H','O',' ')},*/	/* Bhojpuri */
  {"bhr",	HB_TAG('M','L','G',' ')},	/* Bara Malagasy -> Malagasy */
  {"bi",	HB_TAG('B','I','S',' ')},	/* Bislama */
  {"bi",	HB_TAG('C','P','P',' ')},	/* Bislama -> Creoles */
/*{"bik",	HB_TAG('B','I','K',' ')},*/	/* Bikol [macrolanguage] */
  {"bil",	HB_TAG_NONE	       },	/* Bile != Bilen */
  {"bin",	HB_TAG('E','D','O',' ')},	/* Edo */
  {"biu",	HB_TAG('Q','I','N',' ')},	/* Biete -> Chin */
/*{"bjj",	HB_TAG('B','J','J',' ')},*/	/* Kanauji */
  {"bjn",	HB_TAG('M','L','Y',' ')},	/* Banjar -> Malay */
  {"bjo",	HB_TAG('B','A','D','0')},	/* Mid-Southern Banda -> Banda */
  {"bjq",	HB_TAG('M','L','G',' ')},	/* Southern Betsimisaraka Malagasy (retired code) -> Malagasy */
  {"bjs",	HB_TAG('C','P','P',' ')},	/* Bajan -> Creoles */
  {"bjt",	HB_TAG('B','L','N',' ')},	/* Balanta-Ganja -> Balante */
  {"bkf",	HB_TAG_NONE	       },	/* Beeke != Blackfoot */
  {"bko",	HB_TAG('B','M','L',' ')},	/* Kwa' -> Bamileke */
  {"bla",	HB_TAG('B','K','F',' ')},	/* Siksika -> Blackfoot */
  {"ble",	HB_TAG('B','L','N',' ')},	/* Balanta-Kentohe -> Balante */
  {"blg",	HB_TAG('I','B','A',' ')},	/* Balau (retired code) -> Iban */
  {"bli",	HB_TAG_NONE	       },	/* Bolia != Baluchi */
  {"blk",	HB_TAG('B','L','K',' ')},	/* Pa’o Karen */
  {"blk",	HB_TAG('K','R','N',' ')},	/* Pa'o Karen -> Karen */
  {"bln",	HB_TAG('B','I','K',' ')},	/* Southern Catanduanes Bikol -> Bikol */
  {"blt",	HB_TAG_NONE	       },	/* Tai Dam != Balti */
  {"bm",	HB_TAG('B','M','B',' ')},	/* Bambara (Bamanankan) */
  {"bmb",	HB_TAG_NONE	       },	/* Bembe != Bambara (Bamanankan) */
  {"bml",	HB_TAG_NONE	       },	/* Bomboli != Bamileke */
  {"bmm",	HB_TAG('M','L','G',' ')},	/* Northern Betsimisaraka Malagasy -> Malagasy */
  {"bn",	HB_TAG('B','E','N',' ')},	/* Bengali */
  {"bo",	HB_TAG('T','I','B',' ')},	/* Tibetan */
  {"bpd",	HB_TAG('B','A','D','0')},	/* Banda-Banda -> Banda */
  {"bpl",	HB_TAG('C','P','P',' ')},	/* Broome Pearling Lugger Pidgin -> Creoles */
  {"bpq",	HB_TAG('C','P','P',' ')},	/* Banda Malay -> Creoles */
/*{"bpy",	HB_TAG('B','P','Y',' ')},*/	/* Bishnupriya -> Bishnupriya Manipuri */
  {"bqi",	HB_TAG('L','R','C',' ')},	/* Bakhtiari -> Luri */
  {"bqk",	HB_TAG('B','A','D','0')},	/* Banda-Mbrès -> Banda */
  {"br",	HB_TAG('B','R','E',' ')},	/* Breton */
  {"bra",	HB_TAG('B','R','I',' ')},	/* Braj -> Braj Bhasha */
  {"brc",	HB_TAG('C','P','P',' ')},	/* Berbice Creole Dutch -> Creoles */
/*{"brh",	HB_TAG('B','R','H',' ')},*/	/* Brahui */
  {"bri",	HB_TAG_NONE	       },	/* Mokpwe != Braj Bhasha */
  {"brm",	HB_TAG_NONE	       },	/* Barambu != Burmese */
/*{"brx",	HB_TAG('B','R','X',' ')},*/	/* Bodo (India) */
  {"bs",	HB_TAG('B','O','S',' ')},	/* Bosnian */
  {"bsh",	HB_TAG_NONE	       },	/* Kati != Bashkir */
/*{"bsk",	HB_TAG('B','S','K',' ')},*/	/* Burushaski */
  {"btb",	HB_TAG('B','T','I',' ')},	/* Beti (Cameroon) (retired code) */
  {"btd",	HB_TAG('B','T','D',' ')},	/* Batak Dairi (Pakpak) */
  {"btd",	HB_TAG('B','T','K',' ')},	/* Batak Dairi -> Batak */
  {"bti",	HB_TAG_NONE	       },	/* Burate != Beti */
  {"btj",	HB_TAG('M','L','Y',' ')},	/* Bacanese Malay -> Malay */
/*{"btk",	HB_TAG('B','T','K',' ')},*/	/* Batak [family] */
  {"btm",	HB_TAG('B','T','M',' ')},	/* Batak Mandailing */
  {"btm",	HB_TAG('B','T','K',' ')},	/* Batak Mandailing -> Batak */
  {"bto",	HB_TAG('B','I','K',' ')},	/* Rinconada Bikol -> Bikol */
  {"bts",	HB_TAG('B','T','S',' ')},	/* Batak Simalungun */
  {"bts",	HB_TAG('B','T','K',' ')},	/* Batak Simalungun -> Batak */
  {"btx",	HB_TAG('B','T','X',' ')},	/* Batak Karo */
  {"btx",	HB_TAG('B','T','K',' ')},	/* Batak Karo -> Batak */
  {"btz",	HB_TAG('B','T','Z',' ')},	/* Batak Alas-Kluet */
  {"btz",	HB_TAG('B','T','K',' ')},	/* Batak Alas-Kluet -> Batak */
/*{"bug",	HB_TAG('B','U','G',' ')},*/	/* Buginese -> Bugis */
  {"bum",	HB_TAG('B','T','I',' ')},	/* Bulu (Cameroon) -> Beti */
  {"bve",	HB_TAG('M','L','Y',' ')},	/* Berau Malay -> Malay */
  {"bvu",	HB_TAG('M','L','Y',' ')},	/* Bukit Malay -> Malay */
  {"bwe",	HB_TAG('K','R','N',' ')},	/* Bwe Karen -> Karen */
  {"bxk",	HB_TAG('L','U','H',' ')},	/* Bukusu -> Luyia */
  {"bxo",	HB_TAG('C','P','P',' ')},	/* Barikanchi -> Creoles */
  {"bxp",	HB_TAG('B','T','I',' ')},	/* Bebil -> Beti */
  {"bxr",	HB_TAG('R','B','U',' ')},	/* Russia Buriat -> Russian Buriat */
  {"byn",	HB_TAG('B','I','L',' ')},	/* Bilin -> Bilen */
  {"byv",	HB_TAG('B','Y','V',' ')},	/* Medumba */
  {"byv",	HB_TAG('B','M','L',' ')},	/* Medumba -> Bamileke */
  {"bzc",	HB_TAG('M','L','G',' ')},	/* Southern Betsimisaraka Malagasy -> Malagasy */
  {"bzj",	HB_TAG('C','P','P',' ')},	/* Belize Kriol English -> Creoles */
  {"bzk",	HB_TAG('C','P','P',' ')},	/* Nicaragua Creole English -> Creoles */
  {"ca",	HB_TAG('C','A','T',' ')},	/* Catalan */
  {"caa",	HB_TAG('M','Y','N',' ')},	/* Chortí -> Mayan */
  {"cac",	HB_TAG('M','Y','N',' ')},	/* Chuj -> Mayan */
  {"caf",	HB_TAG('C','R','R',' ')},	/* Southern Carrier -> Carrier */
  {"caf",	HB_TAG('A','T','H',' ')},	/* Southern Carrier -> Athapaskan */
  {"cak",	HB_TAG('C','A','K',' ')},	/* Kaqchikel */
  {"cak",	HB_TAG('M','Y','N',' ')},	/* Kaqchikel -> Mayan */
  {"cbk",	HB_TAG('C','B','K',' ')},	/* Chavacano -> Zamboanga Chavacano */
  {"cbk",	HB_TAG('C','P','P',' ')},	/* Chavacano -> Creoles */
  {"cbl",	HB_TAG('Q','I','N',' ')},	/* Bualkhaw Chin -> Chin */
  {"ccl",	HB_TAG('C','P','P',' ')},	/* Cutchi-Swahili -> Creoles */
  {"ccm",	HB_TAG('C','P','P',' ')},	/* Malaccan Creole Malay -> Creoles */
  {"cco",	HB_TAG('C','C','H','N')},	/* Comaltepec Chinantec -> Chinantec */
  {"ccq",	HB_TAG('A','R','K',' ')},	/* Chaungtha (retired code) -> Rakhine */
  {"cdo",	HB_TAG('Z','H','S',' ')},	/* Min Dong Chinese -> Chinese, Simplified */
  {"ce",	HB_TAG('C','H','E',' ')},	/* Chechen */
/*{"ceb",	HB_TAG('C','E','B',' ')},*/	/* Cebuano */
  {"cek",	HB_TAG('Q','I','N',' ')},	/* Eastern Khumi Chin -> Chin */
  {"cey",	HB_TAG('Q','I','N',' ')},	/* Ekai Chin -> Chin */
  {"cfm",	HB_TAG('H','A','L',' ')},	/* Halam (Falam Chin) */
  {"cfm",	HB_TAG('Q','I','N',' ')},	/* Falam Chin -> Chin */
/*{"cgg",	HB_TAG('C','G','G',' ')},*/	/* Chiga */
  {"ch",	HB_TAG('C','H','A',' ')},	/* Chamorro */
  {"chf",	HB_TAG('M','Y','N',' ')},	/* Tabasco Chontal -> Mayan */
  {"chg",	HB_TAG_NONE	       },	/* Chagatai != Chaha Gurage */
  {"chh",	HB_TAG_NONE	       },	/* Chinook != Chattisgarhi */
  {"chj",	HB_TAG('C','C','H','N')},	/* Ojitlán Chinantec -> Chinantec */
  {"chk",	HB_TAG('C','H','K','0')},	/* Chuukese */
  {"chn",	HB_TAG('C','P','P',' ')},	/* Chinook jargon -> Creoles */
/*{"cho",	HB_TAG('C','H','O',' ')},*/	/* Choctaw */
  {"chp",	HB_TAG('C','H','P',' ')},	/* Chipewyan */
  {"chp",	HB_TAG('S','A','Y',' ')},	/* Chipewyan -> Sayisi */
  {"chp",	HB_TAG('A','T','H',' ')},	/* Chipewyan -> Athapaskan */
  {"chq",	HB_TAG('C','C','H','N')},	/* Quiotepec Chinantec -> Chinantec */
/*{"chr",	HB_TAG('C','H','R',' ')},*/	/* Cherokee */
/*{"chy",	HB_TAG('C','H','Y',' ')},*/	/* Cheyenne */
  {"chz",	HB_TAG('C','C','H','N')},	/* Ozumacín Chinantec -> Chinantec */
  {"ciw",	HB_TAG('O','J','B',' ')},	/* Chippewa -> Ojibway */
/*{"cja",	HB_TAG('C','J','A',' ')},*/	/* Western Cham */
/*{"cjm",	HB_TAG('C','J','M',' ')},*/	/* Eastern Cham */
  {"cjy",	HB_TAG('Z','H','S',' ')},	/* Jinyu Chinese -> Chinese, Simplified */
  {"cka",	HB_TAG('Q','I','N',' ')},	/* Khumi Awa Chin (retired code) -> Chin */
  {"ckb",	HB_TAG('K','U','R',' ')},	/* Central Kurdish -> Kurdish */
  {"ckn",	HB_TAG('Q','I','N',' ')},	/* Kaang Chin -> Chin */
  {"cks",	HB_TAG('C','P','P',' ')},	/* Tayo -> Creoles */
  {"ckt",	HB_TAG('C','H','K',' ')},	/* Chukot -> Chukchi */
  {"ckz",	HB_TAG('M','Y','N',' ')},	/* Cakchiquel-Quiché Mixed Language -> Mayan */
  {"clc",	HB_TAG('A','T','H',' ')},	/* Chilcotin -> Athapaskan */
  {"cld",	HB_TAG('S','Y','R',' ')},	/* Chaldean Neo-Aramaic -> Syriac */
  {"cle",	HB_TAG('C','C','H','N')},	/* Lealao Chinantec -> Chinantec */
  {"clj",	HB_TAG('Q','I','N',' ')},	/* Laitu Chin -> Chin */
  {"clt",	HB_TAG('Q','I','N',' ')},	/* Lautu Chin -> Chin */
  {"cmn",	HB_TAG('Z','H','S',' ')},	/* Mandarin Chinese -> Chinese, Simplified */
  {"cmr",	HB_TAG('Q','I','N',' ')},	/* Mro-Khimi Chin -> Chin */
  {"cnb",	HB_TAG('Q','I','N',' ')},	/* Chinbon Chin -> Chin */
  {"cnh",	HB_TAG('Q','I','N',' ')},	/* Hakha Chin -> Chin */
  {"cnk",	HB_TAG('Q','I','N',' ')},	/* Khumi Chin -> Chin */
  {"cnl",	HB_TAG('C','C','H','N')},	/* Lalana Chinantec -> Chinantec */
  {"cnp",	HB_TAG('Z','H','S',' ')},	/* Northern Ping Chinese -> Chinese, Simplified */
  {"cnr",	HB_TAG('S','R','B',' ')},	/* Montenegrin -> Serbian */
  {"cnt",	HB_TAG('C','C','H','N')},	/* Tepetotutla Chinantec -> Chinantec */
  {"cnu",	HB_TAG('B','B','R',' ')},	/* Chenoua -> Berber */
  {"cnw",	HB_TAG('Q','I','N',' ')},	/* Ngawn Chin -> Chin */
  {"co",	HB_TAG('C','O','S',' ')},	/* Corsican */
  {"coa",	HB_TAG('M','L','Y',' ')},	/* Cocos Islands Malay -> Malay */
  {"cob",	HB_TAG('M','Y','N',' ')},	/* Chicomuceltec -> Mayan */
/*{"cop",	HB_TAG('C','O','P',' ')},*/	/* Coptic */
  {"coq",	HB_TAG('A','T','H',' ')},	/* Coquille -> Athapaskan */
  {"cpa",	HB_TAG('C','C','H','N')},	/* Palantla Chinantec -> Chinantec */
  {"cpe",	HB_TAG('C','P','P',' ')},	/* English-based creoles and pidgins [family] -> Creoles */
  {"cpf",	HB_TAG('C','P','P',' ')},	/* French-based creoles and pidgins [family] -> Creoles */
  {"cpi",	HB_TAG('C','P','P',' ')},	/* Chinese Pidgin English -> Creoles */
/*{"cpp",	HB_TAG('C','P','P',' ')},*/	/* Portuguese-based creoles and pidgins [family] -> Creoles */
  {"cpx",	HB_TAG('Z','H','S',' ')},	/* Pu-Xian Chinese -> Chinese, Simplified */
  {"cqd",	HB_TAG('H','M','N',' ')},	/* Chuanqiandian Cluster Miao -> Hmong */
  {"cqu",	HB_TAG('Q','U','H',' ')},	/* Chilean Quechua (retired code) -> Quechua (Bolivia) */
  {"cqu",	HB_TAG('Q','U','Z',' ')},	/* Chilean Quechua (retired code) -> Quechua */
  {"cr",	HB_TAG('C','R','E',' ')},	/* Cree [macrolanguage] */
  {"crh",	HB_TAG('C','R','T',' ')},	/* Crimean Tatar */
  {"cri",	HB_TAG('C','P','P',' ')},	/* Sãotomense -> Creoles */
  {"crj",	HB_TAG('E','C','R',' ')},	/* Southern East Cree -> Eastern Cree */
  {"crj",	HB_TAG('Y','C','R',' ')},	/* Southern East Cree -> Y-Cree */
  {"crj",	HB_TAG('C','R','E',' ')},	/* Southern East Cree -> Cree */
  {"crk",	HB_TAG('W','C','R',' ')},	/* Plains Cree -> West-Cree */
  {"crk",	HB_TAG('Y','C','R',' ')},	/* Plains Cree -> Y-Cree */
  {"crk",	HB_TAG('C','R','E',' ')},	/* Plains Cree -> Cree */
  {"crl",	HB_TAG('E','C','R',' ')},	/* Northern East Cree -> Eastern Cree */
  {"crl",	HB_TAG('Y','C','R',' ')},	/* Northern East Cree -> Y-Cree */
  {"crl",	HB_TAG('C','R','E',' ')},	/* Northern East Cree -> Cree */
  {"crm",	HB_TAG('M','C','R',' ')},	/* Moose Cree */
  {"crm",	HB_TAG('L','C','R',' ')},	/* Moose Cree -> L-Cree */
  {"crm",	HB_TAG('C','R','E',' ')},	/* Moose Cree -> Cree */
  {"crp",	HB_TAG('C','P','P',' ')},	/* Creoles and pidgins [family] -> Creoles */
  {"crr",	HB_TAG_NONE	       },	/* Carolina Algonquian != Carrier */
  {"crs",	HB_TAG('C','P','P',' ')},	/* Seselwa Creole French -> Creoles */
  {"crt",	HB_TAG_NONE	       },	/* Iyojwa'ja Chorote != Crimean Tatar */
  {"crx",	HB_TAG('C','R','R',' ')},	/* Carrier */
  {"crx",	HB_TAG('A','T','H',' ')},	/* Carrier -> Athapaskan */
  {"cs",	HB_TAG('C','S','Y',' ')},	/* Czech */
  {"csa",	HB_TAG('C','C','H','N')},	/* Chiltepec Chinantec -> Chinantec */
/*{"csb",	HB_TAG('C','S','B',' ')},*/	/* Kashubian */
  {"csh",	HB_TAG('Q','I','N',' ')},	/* Asho Chin -> Chin */
  {"csj",	HB_TAG('Q','I','N',' ')},	/* Songlai Chin -> Chin */
  {"csl",	HB_TAG_NONE	       },	/* Chinese Sign Language != Church Slavonic */
  {"cso",	HB_TAG('C','C','H','N')},	/* Sochiapam Chinantec -> Chinantec */
  {"csp",	HB_TAG('Z','H','S',' ')},	/* Southern Ping Chinese -> Chinese, Simplified */
  {"csv",	HB_TAG('Q','I','N',' ')},	/* Sumtu Chin -> Chin */
  {"csw",	HB_TAG('N','C','R',' ')},	/* Swampy Cree -> N-Cree */
  {"csw",	HB_TAG('N','H','C',' ')},	/* Swampy Cree -> Norway House Cree */
  {"csw",	HB_TAG('C','R','E',' ')},	/* Swampy Cree -> Cree */
  {"csy",	HB_TAG('Q','I','N',' ')},	/* Siyin Chin -> Chin */
  {"ctc",	HB_TAG('A','T','H',' ')},	/* Chetco -> Athapaskan */
  {"ctd",	HB_TAG('Q','I','N',' ')},	/* Tedim Chin -> Chin */
  {"cte",	HB_TAG('C','C','H','N')},	/* Tepinapa Chinantec -> Chinantec */
/*{"ctg",	HB_TAG('C','T','G',' ')},*/	/* Chittagonian */
  {"cth",	HB_TAG('Q','I','N',' ')},	/* Thaiphum Chin -> Chin */
  {"ctl",	HB_TAG('C','C','H','N')},	/* Tlacoatzintepec Chinantec -> Chinantec */
  {"cts",	HB_TAG('B','I','K',' ')},	/* Northern Catanduanes Bikol -> Bikol */
/*{"ctt",	HB_TAG('C','T','T',' ')},*/	/* Wayanad Chetti */
  {"ctu",	HB_TAG('M','Y','N',' ')},	/* Chol -> Mayan */
  {"cu",	HB_TAG('C','S','L',' ')},	/* Church Slavonic */
  {"cuc",	HB_TAG('C','C','H','N')},	/* Usila Chinantec -> Chinantec */
/*{"cuk",	HB_TAG('C','U','K',' ')},*/	/* San Blas Kuna */
  {"cv",	HB_TAG('C','H','U',' ')},	/* Chuvash */
  {"cvn",	HB_TAG('C','C','H','N')},	/* Valle Nacional Chinantec -> Chinantec */
  {"cwd",	HB_TAG('D','C','R',' ')},	/* Woods Cree */
  {"cwd",	HB_TAG('T','C','R',' ')},	/* Woods Cree -> TH-Cree */
  {"cwd",	HB_TAG('C','R','E',' ')},	/* Woods Cree -> Cree */
  {"cy",	HB_TAG('W','E','L',' ')},	/* Welsh */
  {"czh",	HB_TAG('Z','H','S',' ')},	/* Huizhou Chinese -> Chinese, Simplified */
  {"czo",	HB_TAG('Z','H','S',' ')},	/* Min Zhong Chinese -> Chinese, Simplified */
  {"czt",	HB_TAG('Q','I','N',' ')},	/* Zotung Chin -> Chin */
  {"da",	HB_TAG('D','A','N',' ')},	/* Danish */
/*{"dag",	HB_TAG('D','A','G',' ')},*/	/* Dagbani */
  {"dao",	HB_TAG('Q','I','N',' ')},	/* Daai Chin -> Chin */
  {"dap",	HB_TAG('N','I','S',' ')},	/* Nisi (India) (retired code) */
/*{"dar",	HB_TAG('D','A','R',' ')},*/	/* Dargwa */
/*{"dax",	HB_TAG('D','A','X',' ')},*/	/* Dayi */
  {"dcr",	HB_TAG('C','P','P',' ')},	/* Negerhollands -> Creoles */
  {"de",	HB_TAG('D','E','U',' ')},	/* German */
  {"den",	HB_TAG('S','L','A',' ')},	/* Slave (Athapascan) [macrolanguage] -> Slavey */
  {"den",	HB_TAG('A','T','H',' ')},	/* Slave (Athapascan) [macrolanguage] -> Athapaskan */
  {"dep",	HB_TAG('C','P','P',' ')},	/* Pidgin Delaware -> Creoles */
  {"dgo",	HB_TAG('D','G','O',' ')},	/* Dogri (individual language) */
  {"dgo",	HB_TAG('D','G','R',' ')},	/* Dogri (macrolanguage) */
  {"dgr",	HB_TAG('A','T','H',' ')},	/* Dogrib -> Athapaskan */
  {"dhd",	HB_TAG('M','A','W',' ')},	/* Dhundari -> Marwari */
/*{"dhg",	HB_TAG('D','H','G',' ')},*/	/* Dhangu */
  {"dhv",	HB_TAG_NONE	       },	/* Dehu != Divehi (Dhivehi, Maldivian) (deprecated) */
  {"dib",	HB_TAG('D','N','K',' ')},	/* South Central Dinka -> Dinka */
  {"dik",	HB_TAG('D','N','K',' ')},	/* Southwestern Dinka -> Dinka */
  {"din",	HB_TAG('D','N','K',' ')},	/* Dinka [macrolanguage] */
  {"dip",	HB_TAG('D','N','K',' ')},	/* Northeastern Dinka -> Dinka */
  {"diq",	HB_TAG('D','I','Q',' ')},	/* Dimli */
  {"diq",	HB_TAG('Z','Z','A',' ')},	/* Dimli -> Zazaki */
  {"diw",	HB_TAG('D','N','K',' ')},	/* Northwestern Dinka -> Dinka */
  {"dje",	HB_TAG('D','J','R',' ')},	/* Zarma */
  {"djk",	HB_TAG('C','P','P',' ')},	/* Eastern Maroon Creole -> Creoles */
  {"djr",	HB_TAG('D','J','R','0')},	/* Djambarrpuyngu */
  {"dks",	HB_TAG('D','N','K',' ')},	/* Southeastern Dinka -> Dinka */
  {"dng",	HB_TAG('D','U','N',' ')},	/* Dungan */
/*{"dnj",	HB_TAG('D','N','J',' ')},*/	/* Dan */
  {"dnk",	HB_TAG_NONE	       },	/* Dengka != Dinka */
  {"doi",	HB_TAG('D','G','R',' ')},	/* Dogri (macrolanguage) [macrolanguage] */
  {"drh",	HB_TAG('M','N','G',' ')},	/* Darkhat (retired code) -> Mongolian */
  {"dri",	HB_TAG_NONE	       },	/* C'Lela != Dari */
  {"drw",	HB_TAG('D','R','I',' ')},	/* Darwazi (retired code) -> Dari */
  {"drw",	HB_TAG('F','A','R',' ')},	/* Darwazi (retired code) -> Persian */
  {"dsb",	HB_TAG('L','S','B',' ')},	/* Lower Sorbian */
  {"dty",	HB_TAG('N','E','P',' ')},	/* Dotyali -> Nepali */
/*{"duj",	HB_TAG('D','U','J',' ')},*/	/* Dhuwal (retired code) */
  {"dun",	HB_TAG_NONE	       },	/* Dusun Deyah != Dungan */
  {"dup",	HB_TAG('M','L','Y',' ')},	/* Duano -> Malay */
  {"dv",	HB_TAG('D','I','V',' ')},	/* Divehi (Dhivehi, Maldivian) */
  {"dv",	HB_TAG('D','H','V',' ')},	/* Divehi (Dhivehi, Maldivian) (deprecated) */
  {"dwk",	HB_TAG('K','U','I',' ')},	/* Dawik Kui -> Kui */
  {"dwu",	HB_TAG('D','U','J',' ')},	/* Dhuwal */
  {"dwy",	HB_TAG('D','U','J',' ')},	/* Dhuwaya -> Dhuwal */
  {"dyu",	HB_TAG('J','U','L',' ')},	/* Dyula -> Jula */
  {"dz",	HB_TAG('D','Z','N',' ')},	/* Dzongkha */
  {"dzn",	HB_TAG_NONE	       },	/* Dzando != Dzongkha */
  {"ecr",	HB_TAG_NONE	       },	/* Eteocretan != Eastern Cree */
  {"ee",	HB_TAG('E','W','E',' ')},	/* Ewe */
/*{"efi",	HB_TAG('E','F','I',' ')},*/	/* Efik */
  {"ekk",	HB_TAG('E','T','I',' ')},	/* Standard Estonian -> Estonian */
  {"eky",	HB_TAG('K','R','N',' ')},	/* Eastern Kayah -> Karen */
  {"el",	HB_TAG('E','L','L',' ')},	/* Modern Greek (1453-) -> Greek */
  {"emk",	HB_TAG('E','M','K',' ')},	/* Eastern Maninkakan */
  {"emk",	HB_TAG('M','N','K',' ')},	/* Eastern Maninkakan -> Maninka */
  {"emy",	HB_TAG('M','Y','N',' ')},	/* Epigraphic Mayan -> Mayan */
  {"en",	HB_TAG('E','N','G',' ')},	/* English */
  {"enb",	HB_TAG('K','A','L',' ')},	/* Markweeta -> Kalenjin */
  {"enf",	HB_TAG('F','N','E',' ')},	/* Forest Enets */
  {"enh",	HB_TAG('T','N','E',' ')},	/* Tundra Enets */
  {"eo",	HB_TAG('N','T','O',' ')},	/* Esperanto */
  {"es",	HB_TAG('E','S','P',' ')},	/* Spanish */
  {"esg",	HB_TAG('G','O','N',' ')},	/* Aheri Gondi -> Gondi */
  {"esi",	HB_TAG('I','P','K',' ')},	/* North Alaskan Inupiatun -> Inupiat */
  {"esk",	HB_TAG('I','P','K',' ')},	/* Northwest Alaska Inupiatun -> Inupiat */
/*{"esu",	HB_TAG('E','S','U',' ')},*/	/* Central Yupik */
  {"et",	HB_TAG('E','T','I',' ')},	/* Estonian [macrolanguage] */
  {"eto",	HB_TAG('B','T','I',' ')},	/* Eton (Cameroon) -> Beti */
  {"eu",	HB_TAG('E','U','Q',' ')},	/* Basque */
  {"euq",	HB_TAG_NONE	       },	/* Basque [family] != Basque */
  {"eve",	HB_TAG('E','V','N',' ')},	/* Even */
  {"evn",	HB_TAG('E','V','K',' ')},	/* Evenki */
  {"ewo",	HB_TAG('B','T','I',' ')},	/* Ewondo -> Beti */
  {"eyo",	HB_TAG('K','A','L',' ')},	/* Keiyo -> Kalenjin */
  {"fa",	HB_TAG('F','A','R',' ')},	/* Persian [macrolanguage] */
  {"fab",	HB_TAG('C','P','P',' ')},	/* Fa d'Ambu -> Creoles */
  {"fan",	HB_TAG('F','A','N','0')},	/* Fang (Equatorial Guinea) */
  {"fan",	HB_TAG('B','T','I',' ')},	/* Fang (Equatorial Guinea) -> Beti */
  {"far",	HB_TAG_NONE	       },	/* Fataleka != Persian */
  {"fat",	HB_TAG('F','A','T',' ')},	/* Fanti */
  {"fat",	HB_TAG('A','K','A',' ')},	/* Fanti -> Akan */
  {"fbl",	HB_TAG('B','I','K',' ')},	/* West Albay Bikol -> Bikol */
  {"ff",	HB_TAG('F','U','L',' ')},	/* Fulah [macrolanguage] */
  {"ffm",	HB_TAG('F','U','L',' ')},	/* Maasina Fulfulde -> Fulah */
  {"fi",	HB_TAG('F','I','N',' ')},	/* Finnish */
  {"fil",	HB_TAG('P','I','L',' ')},	/* Filipino */
  {"fj",	HB_TAG('F','J','I',' ')},	/* Fijian */
  {"flm",	HB_TAG('H','A','L',' ')},	/* Halam (Falam Chin) (retired code) */
  {"flm",	HB_TAG('Q','I','N',' ')},	/* Falam Chin (retired code) -> Chin */
  {"fmp",	HB_TAG('F','M','P',' ')},	/* Fe’fe’ */
  {"fmp",	HB_TAG('B','M','L',' ')},	/* Fe'fe' -> Bamileke */
  {"fng",	HB_TAG('C','P','P',' ')},	/* Fanagalo -> Creoles */
  {"fo",	HB_TAG('F','O','S',' ')},	/* Faroese */
/*{"fon",	HB_TAG('F','O','N',' ')},*/	/* Fon */
  {"fos",	HB_TAG_NONE	       },	/* Siraya != Faroese */
  {"fpe",	HB_TAG('C','P','P',' ')},	/* Fernando Po Creole English -> Creoles */
  {"fr",	HB_TAG('F','R','A',' ')},	/* French */
/*{"frc",	HB_TAG('F','R','C',' ')},*/	/* Cajun French */
/*{"frp",	HB_TAG('F','R','P',' ')},*/	/* Arpitan */
  {"fub",	HB_TAG('F','U','L',' ')},	/* Adamawa Fulfulde -> Fulah */
  {"fuc",	HB_TAG('F','U','L',' ')},	/* Pulaar -> Fulah */
  {"fue",	HB_TAG('F','U','L',' ')},	/* Borgu Fulfulde -> Fulah */
  {"fuf",	HB_TAG('F','T','A',' ')},	/* Pular -> Futa */
  {"fuf",	HB_TAG('F','U','L',' ')},	/* Pular -> Fulah */
  {"fuh",	HB_TAG('F','U','L',' ')},	/* Western Niger Fulfulde -> Fulah */
  {"fui",	HB_TAG('F','U','L',' ')},	/* Bagirmi Fulfulde -> Fulah */
  {"fuq",	HB_TAG('F','U','L',' ')},	/* Central-Eastern Niger Fulfulde -> Fulah */
  {"fur",	HB_TAG('F','R','L',' ')},	/* Friulian */
  {"fuv",	HB_TAG('F','U','V',' ')},	/* Nigerian Fulfulde */
  {"fuv",	HB_TAG('F','U','L',' ')},	/* Nigerian Fulfulde -> Fulah */
  {"fy",	HB_TAG('F','R','I',' ')},	/* Western Frisian -> Frisian */
  {"ga",	HB_TAG('I','R','I',' ')},	/* Irish */
  {"gaa",	HB_TAG('G','A','D',' ')},	/* Ga */
  {"gac",	HB_TAG('C','P','P',' ')},	/* Mixed Great Andamanese -> Creoles */
  {"gad",	HB_TAG_NONE	       },	/* Gaddang != Ga */
  {"gae",	HB_TAG_NONE	       },	/* Guarequena != Scottish Gaelic (Gaelic) */
/*{"gag",	HB_TAG('G','A','G',' ')},*/	/* Gagauz */
  {"gal",	HB_TAG_NONE	       },	/* Galolen != Galician */
  {"gan",	HB_TAG('Z','H','S',' ')},	/* Gan Chinese -> Chinese, Simplified */
  {"gar",	HB_TAG_NONE	       },	/* Galeya != Garshuni */
  {"gaw",	HB_TAG_NONE	       },	/* Nobonob != Garhwali */
  {"gax",	HB_TAG('O','R','O',' ')},	/* Borana-Arsi-Guji Oromo -> Oromo */
  {"gaz",	HB_TAG('O','R','O',' ')},	/* West Central Oromo -> Oromo */
  {"gbm",	HB_TAG('G','A','W',' ')},	/* Garhwali */
  {"gce",	HB_TAG('A','T','H',' ')},	/* Galice -> Athapaskan */
  {"gcf",	HB_TAG('C','P','P',' ')},	/* Guadeloupean Creole French -> Creoles */
  {"gcl",	HB_TAG('C','P','P',' ')},	/* Grenadian Creole English -> Creoles */
  {"gcr",	HB_TAG('C','P','P',' ')},	/* Guianese Creole French -> Creoles */
  {"gd",	HB_TAG('G','A','E',' ')},	/* Scottish Gaelic (Gaelic) */
  {"gda",	HB_TAG('R','A','J',' ')},	/* Gade Lohar -> Rajasthani */
/*{"gez",	HB_TAG('G','E','Z',' ')},*/	/* Geez */
  {"ggo",	HB_TAG('G','O','N',' ')},	/* Southern Gondi (retired code) -> Gondi */
  {"gha",	HB_TAG('B','B','R',' ')},	/* Ghadamès -> Berber */
  {"ghk",	HB_TAG('K','R','N',' ')},	/* Geko Karen -> Karen */
  {"gho",	HB_TAG('B','B','R',' ')},	/* Ghomara -> Berber */
  {"gib",	HB_TAG('C','P','P',' ')},	/* Gibanawa -> Creoles */
/*{"gih",	HB_TAG('G','I','H',' ')},*/	/* Githabul */
  {"gil",	HB_TAG('G','I','L','0')},	/* Kiribati (Gilbertese) */
  {"gju",	HB_TAG('R','A','J',' ')},	/* Gujari -> Rajasthani */
  {"gkp",	HB_TAG('G','K','P',' ')},	/* Guinea Kpelle -> Kpelle (Guinea) */
  {"gkp",	HB_TAG('K','P','L',' ')},	/* Guinea Kpelle -> Kpelle */
  {"gl",	HB_TAG('G','A','L',' ')},	/* Galician */
  {"gld",	HB_TAG('N','A','N',' ')},	/* Nanai */
/*{"glk",	HB_TAG('G','L','K',' ')},*/	/* Gilaki */
  {"gmz",	HB_TAG_NONE	       },	/* Mgbolizhia != Gumuz */
  {"gn",	HB_TAG('G','U','A',' ')},	/* Guarani [macrolanguage] */
  {"gnb",	HB_TAG('Q','I','N',' ')},	/* Gangte -> Chin */
/*{"gnn",	HB_TAG('G','N','N',' ')},*/	/* Gumatj */
  {"gno",	HB_TAG('G','O','N',' ')},	/* Northern Gondi -> Gondi */
  {"gnw",	HB_TAG('G','U','A',' ')},	/* Western Bolivian Guaraní -> Guarani */
/*{"gog",	HB_TAG('G','O','G',' ')},*/	/* Gogo */
  {"gom",	HB_TAG('K','O','K',' ')},	/* Goan Konkani -> Konkani */
/*{"gon",	HB_TAG('G','O','N',' ')},*/	/* Gondi [macrolanguage] */
  {"goq",	HB_TAG('C','P','P',' ')},	/* Gorap -> Creoles */
  {"gox",	HB_TAG('B','A','D','0')},	/* Gobu -> Banda */
  {"gpe",	HB_TAG('C','P','P',' ')},	/* Ghanaian Pidgin English -> Creoles */
  {"gro",	HB_TAG_NONE	       },	/* Groma != Garo */
  {"grr",	HB_TAG('B','B','R',' ')},	/* Taznatit -> Berber */
  {"grt",	HB_TAG('G','R','O',' ')},	/* Garo */
  {"gru",	HB_TAG('S','O','G',' ')},	/* Kistane -> Sodo Gurage */
  {"gsw",	HB_TAG('A','L','S',' ')},	/* Alsatian */
  {"gu",	HB_TAG('G','U','J',' ')},	/* Gujarati */
  {"gua",	HB_TAG_NONE	       },	/* Shiki != Guarani */
/*{"guc",	HB_TAG('G','U','C',' ')},*/	/* Wayuu */
/*{"guf",	HB_TAG('G','U','F',' ')},*/	/* Gupapuyngu */
  {"gug",	HB_TAG('G','U','A',' ')},	/* Paraguayan Guaraní -> Guarani */
  {"gui",	HB_TAG('G','U','A',' ')},	/* Eastern Bolivian Guaraní -> Guarani */
  {"guk",	HB_TAG('G','M','Z',' ')},	/* Gumuz */
  {"gul",	HB_TAG('C','P','P',' ')},	/* Sea Island Creole English -> Creoles */
  {"gun",	HB_TAG('G','U','A',' ')},	/* Mbyá Guaraní -> Guarani */
/*{"guz",	HB_TAG('G','U','Z',' ')},*/	/* Gusii */
  {"gv",	HB_TAG('M','N','X',' ')},	/* Manx */
  {"gwi",	HB_TAG('A','T','H',' ')},	/* Gwichʼin -> Athapaskan */
  {"gyn",	HB_TAG('C','P','P',' ')},	/* Guyanese Creole English -> Creoles */
  {"ha",	HB_TAG('H','A','U',' ')},	/* Hausa */
  {"haa",	HB_TAG('A','T','H',' ')},	/* Han -> Athapaskan */
  {"hae",	HB_TAG('O','R','O',' ')},	/* Eastern Oromo -> Oromo */
  {"hai",	HB_TAG('H','A','I','0')},	/* Haida [macrolanguage] */
  {"hak",	HB_TAG('Z','H','S',' ')},	/* Hakka Chinese -> Chinese, Simplified */
  {"hal",	HB_TAG_NONE	       },	/* Halang != Halam (Falam Chin) */
  {"har",	HB_TAG('H','R','I',' ')},	/* Harari */
/*{"haw",	HB_TAG('H','A','W',' ')},*/	/* Hawaiian */
  {"hax",	HB_TAG('H','A','I','0')},	/* Southern Haida -> Haida */
/*{"hay",	HB_TAG('H','A','Y',' ')},*/	/* Haya */
/*{"haz",	HB_TAG('H','A','Z',' ')},*/	/* Hazaragi */
  {"hbn",	HB_TAG_NONE	       },	/* Heiban != Hammer-Banna */
  {"hca",	HB_TAG('C','P','P',' ')},	/* Andaman Creole Hindi -> Creoles */
  {"hdn",	HB_TAG('H','A','I','0')},	/* Northern Haida -> Haida */
  {"he",	HB_TAG('I','W','R',' ')},	/* Hebrew */
  {"hea",	HB_TAG('H','M','N',' ')},	/* Northern Qiandong Miao -> Hmong */
/*{"hei",	HB_TAG('H','E','I',' ')},*/	/* Heiltsuk */
  {"hi",	HB_TAG('H','I','N',' ')},	/* Hindi */
/*{"hil",	HB_TAG('H','I','L',' ')},*/	/* Hiligaynon */
  {"hji",	HB_TAG('M','L','Y',' ')},	/* Haji -> Malay */
  {"hlt",	HB_TAG('Q','I','N',' ')},	/* Matu Chin -> Chin */
  {"hma",	HB_TAG('H','M','N',' ')},	/* Southern Mashan Hmong -> Hmong */
  {"hmc",	HB_TAG('H','M','N',' ')},	/* Central Huishui Hmong -> Hmong */
  {"hmd",	HB_TAG('H','M','D',' ')},	/* Large Flowery Miao -> A-Hmao */
  {"hmd",	HB_TAG('H','M','N',' ')},	/* Large Flowery Miao -> Hmong */
  {"hme",	HB_TAG('H','M','N',' ')},	/* Eastern Huishui Hmong -> Hmong */
  {"hmg",	HB_TAG('H','M','N',' ')},	/* Southwestern Guiyang Hmong -> Hmong */
  {"hmh",	HB_TAG('H','M','N',' ')},	/* Southwestern Huishui Hmong -> Hmong */
  {"hmi",	HB_TAG('H','M','N',' ')},	/* Northern Huishui Hmong -> Hmong */
  {"hmj",	HB_TAG('H','M','N',' ')},	/* Ge -> Hmong */
  {"hml",	HB_TAG('H','M','N',' ')},	/* Luopohe Hmong -> Hmong */
  {"hmm",	HB_TAG('H','M','N',' ')},	/* Central Mashan Hmong -> Hmong */
/*{"hmn",	HB_TAG('H','M','N',' ')},*/	/* Hmong [macrolanguage] */
  {"hmp",	HB_TAG('H','M','N',' ')},	/* Northern Mashan Hmong -> Hmong */
  {"hmq",	HB_TAG('H','M','N',' ')},	/* Eastern Qiandong Miao -> Hmong */
  {"hmr",	HB_TAG('Q','I','N',' ')},	/* Hmar -> Chin */
  {"hms",	HB_TAG('H','M','N',' ')},	/* Southern Qiandong Miao -> Hmong */
  {"hmw",	HB_TAG('H','M','N',' ')},	/* Western Mashan Hmong -> Hmong */
  {"hmy",	HB_TAG('H','M','N',' ')},	/* Southern Guiyang Hmong -> Hmong */
  {"hmz",	HB_TAG('H','M','Z',' ')},	/* Hmong Shua -> Hmong Shuat */
  {"hmz",	HB_TAG('H','M','N',' ')},	/* Hmong Shua -> Hmong */
/*{"hnd",	HB_TAG('H','N','D',' ')},*/	/* Southern Hindko -> Hindko */
  {"hne",	HB_TAG('C','H','H',' ')},	/* Chhattisgarhi -> Chattisgarhi */
  {"hnj",	HB_TAG('H','M','N',' ')},	/* Hmong Njua -> Hmong */
  {"hno",	HB_TAG('H','N','D',' ')},	/* Northern Hindko -> Hindko */
  {"ho",	HB_TAG('H','M','O',' ')},	/* Hiri Motu */
  {"ho",	HB_TAG('C','P','P',' ')},	/* Hiri Motu -> Creoles */
  {"hoc",	HB_TAG('H','O',' ',' ')},	/* Ho */
  {"hoi",	HB_TAG('A','T','H',' ')},	/* Holikachuk -> Athapaskan */
  {"hoj",	HB_TAG('H','A','R',' ')},	/* Hadothi -> Harauti */
  {"hoj",	HB_TAG('R','A','J',' ')},	/* Hadothi -> Rajasthani */
  {"hr",	HB_TAG('H','R','V',' ')},	/* Croatian */
  {"hra",	HB_TAG('Q','I','N',' ')},	/* Hrangkhol -> Chin */
  {"hrm",	HB_TAG('H','M','N',' ')},	/* Horned Miao -> Hmong */
  {"hsb",	HB_TAG('U','S','B',' ')},	/* Upper Sorbian */
  {"hsn",	HB_TAG('Z','H','S',' ')},	/* Xiang Chinese -> Chinese, Simplified */
  {"ht",	HB_TAG('H','A','I',' ')},	/* Haitian (Haitian Creole) */
  {"ht",	HB_TAG('C','P','P',' ')},	/* Haitian -> Creoles */
  {"hu",	HB_TAG('H','U','N',' ')},	/* Hungarian */
  {"huj",	HB_TAG('H','M','N',' ')},	/* Northern Guiyang Hmong -> Hmong */
  {"hup",	HB_TAG('A','T','H',' ')},	/* Hupa -> Athapaskan */
  {"hus",	HB_TAG('M','Y','N',' ')},	/* Huastec -> Mayan */
  {"hwc",	HB_TAG('C','P','P',' ')},	/* Hawai'i Creole English -> Creoles */
  {"hy",	HB_TAG('H','Y','E','0')},	/* Armenian -> Armenian East */
  {"hy",	HB_TAG('H','Y','E',' ')},	/* Armenian */
  {"hyw",	HB_TAG('H','Y','E',' ')},	/* Western Armenian -> Armenian */
  {"hz",	HB_TAG('H','E','R',' ')},	/* Herero */
  {"ia",	HB_TAG('I','N','A',' ')},	/* Interlingua (International Auxiliary Language Association) */
/*{"iba",	HB_TAG('I','B','A',' ')},*/	/* Iban */
/*{"ibb",	HB_TAG('I','B','B',' ')},*/	/* Ibibio */
  {"iby",	HB_TAG('I','J','O',' ')},	/* Ibani -> Ijo */
  {"icr",	HB_TAG('C','P','P',' ')},	/* Islander Creole English -> Creoles */
  {"id",	HB_TAG('I','N','D',' ')},	/* Indonesian */
  {"id",	HB_TAG('M','L','Y',' ')},	/* Indonesian -> Malay */
  {"ida",	HB_TAG('L','U','H',' ')},	/* Idakho-Isukha-Tiriki -> Luyia */
  {"idb",	HB_TAG('C','P','P',' ')},	/* Indo-Portuguese -> Creoles */
  {"ie",	HB_TAG('I','L','E',' ')},	/* Interlingue */
  {"ig",	HB_TAG('I','B','O',' ')},	/* Igbo */
  {"igb",	HB_TAG('E','B','I',' ')},	/* Ebira */
  {"ihb",	HB_TAG('C','P','P',' ')},	/* Iha Based Pidgin -> Creoles */
  {"ii",	HB_TAG('Y','I','M',' ')},	/* Sichuan Yi -> Yi Modern */
  {"ijc",	HB_TAG('I','J','O',' ')},	/* Izon -> Ijo */
  {"ije",	HB_TAG('I','J','O',' ')},	/* Biseni -> Ijo */
  {"ijn",	HB_TAG('I','J','O',' ')},	/* Kalabari -> Ijo */
/*{"ijo",	HB_TAG('I','J','O',' ')},*/	/* Ijo [family] */
  {"ijs",	HB_TAG('I','J','O',' ')},	/* Southeast Ijo -> Ijo */
  {"ik",	HB_TAG('I','P','K',' ')},	/* Inupiaq [macrolanguage] -> Inupiat */
  {"ike",	HB_TAG('I','N','U',' ')},	/* Eastern Canadian Inuktitut -> Inuktitut */
  {"ikt",	HB_TAG('I','N','U',' ')},	/* Inuinnaqtun -> Inuktitut */
/*{"ilo",	HB_TAG('I','L','O',' ')},*/	/* Iloko -> Ilokano */
  {"in",	HB_TAG('I','N','D',' ')},	/* Indonesian (retired code) */
  {"in",	HB_TAG('M','L','Y',' ')},	/* Indonesian (retired code) -> Malay */
  {"ing",	HB_TAG('A','T','H',' ')},	/* Degexit'an -> Athapaskan */
  {"inh",	HB_TAG('I','N','G',' ')},	/* Ingush */
  {"io",	HB_TAG('I','D','O',' ')},	/* Ido */
  {"iri",	HB_TAG_NONE	       },	/* Rigwe != Irish */
/*{"iru",	HB_TAG('I','R','U',' ')},*/	/* Irula */
  {"is",	HB_TAG('I','S','L',' ')},	/* Icelandic */
  {"ism",	HB_TAG_NONE	       },	/* Masimasi != Inari Sami */
  {"it",	HB_TAG('I','T','A',' ')},	/* Italian */
  {"itz",	HB_TAG('M','Y','N',' ')},	/* Itzá -> Mayan */
  {"iu",	HB_TAG('I','N','U',' ')},	/* Inuktitut [macrolanguage] */
  {"iw",	HB_TAG('I','W','R',' ')},	/* Hebrew (retired code) */
  {"ixl",	HB_TAG('M','Y','N',' ')},	/* Ixil -> Mayan */
  {"ja",	HB_TAG('J','A','N',' ')},	/* Japanese */
  {"jac",	HB_TAG('M','Y','N',' ')},	/* Popti' -> Mayan */
  {"jak",	HB_TAG('M','L','Y',' ')},	/* Jakun -> Malay */
  {"jam",	HB_TAG('J','A','M',' ')},	/* Jamaican Creole English -> Jamaican Creole */
  {"jam",	HB_TAG('C','P','P',' ')},	/* Jamaican Creole English -> Creoles */
  {"jan",	HB_TAG_NONE	       },	/* Jandai != Japanese */
  {"jax",	HB_TAG('M','L','Y',' ')},	/* Jambi Malay -> Malay */
  {"jbe",	HB_TAG('B','B','R',' ')},	/* Judeo-Berber -> Berber */
  {"jbn",	HB_TAG('B','B','R',' ')},	/* Nafusi -> Berber */
/*{"jbo",	HB_TAG('J','B','O',' ')},*/	/* Lojban */
/*{"jct",	HB_TAG('J','C','T',' ')},*/	/* Krymchak */
  {"jgo",	HB_TAG('B','M','L',' ')},	/* Ngomba -> Bamileke */
  {"ji",	HB_TAG('J','I','I',' ')},	/* Yiddish (retired code) */
  {"jii",	HB_TAG_NONE	       },	/* Jiiddu != Yiddish */
  {"jkm",	HB_TAG('K','R','N',' ')},	/* Mobwa Karen -> Karen */
  {"jkp",	HB_TAG('K','R','N',' ')},	/* Paku Karen -> Karen */
  {"jud",	HB_TAG_NONE	       },	/* Worodougou != Ladino */
  {"jul",	HB_TAG_NONE	       },	/* Jirel != Jula */
  {"jv",	HB_TAG('J','A','V',' ')},	/* Javanese */
  {"jvd",	HB_TAG('C','P','P',' ')},	/* Javindo -> Creoles */
  {"jw",	HB_TAG('J','A','V',' ')},	/* Javanese (retired code) */
  {"ka",	HB_TAG('K','A','T',' ')},	/* Georgian */
  {"kaa",	HB_TAG('K','R','K',' ')},	/* Karakalpak */
  {"kab",	HB_TAG('K','A','B','0')},	/* Kabyle */
  {"kab",	HB_TAG('B','B','R',' ')},	/* Kabyle -> Berber */
  {"kac",	HB_TAG_NONE	       },	/* Kachin != Kachchi */
  {"kam",	HB_TAG('K','M','B',' ')},	/* Kamba (Kenya) */
  {"kar",	HB_TAG('K','R','N',' ')},	/* Karen [family] */
/*{"kaw",	HB_TAG('K','A','W',' ')},*/	/* Kawi (Old Javanese) */
  {"kbd",	HB_TAG('K','A','B',' ')},	/* Kabardian */
  {"kby",	HB_TAG('K','N','R',' ')},	/* Manga Kanuri -> Kanuri */
  {"kca",	HB_TAG('K','H','K',' ')},	/* Khanty -> Khanty-Kazim */
  {"kca",	HB_TAG('K','H','S',' ')},	/* Khanty -> Khanty-Shurishkar */
  {"kca",	HB_TAG('K','H','V',' ')},	/* Khanty -> Khanty-Vakhi */
  {"kcn",	HB_TAG('C','P','P',' ')},	/* Nubi -> Creoles */
/*{"kde",	HB_TAG('K','D','E',' ')},*/	/* Makonde */
  {"kdr",	HB_TAG('K','R','M',' ')},	/* Karaim */
  {"kdt",	HB_TAG('K','U','Y',' ')},	/* Kuy */
  {"kea",	HB_TAG('K','E','A',' ')},	/* Kabuverdianu (Crioulo) */
  {"kea",	HB_TAG('C','P','P',' ')},	/* Kabuverdianu -> Creoles */
  {"keb",	HB_TAG_NONE	       },	/* Kélé != Kebena */
  {"kek",	HB_TAG('K','E','K',' ')},	/* Kekchi */
  {"kek",	HB_TAG('M','Y','N',' ')},	/* Kekchí -> Mayan */
  {"kex",	HB_TAG('K','K','N',' ')},	/* Kukna -> Kokni */
  {"kfa",	HB_TAG('K','O','D',' ')},	/* Kodava -> Kodagu */
  {"kfr",	HB_TAG('K','A','C',' ')},	/* Kachhi -> Kachchi */
  {"kfx",	HB_TAG('K','U','L',' ')},	/* Kullu Pahari -> Kulvi */
  {"kfy",	HB_TAG('K','M','N',' ')},	/* Kumaoni */
  {"kg",	HB_TAG('K','O','N','0')},	/* Kongo [macrolanguage] */
  {"kge",	HB_TAG_NONE	       },	/* Komering != Khutsuri Georgian */
  {"kha",	HB_TAG('K','S','I',' ')},	/* Khasi */
  {"khb",	HB_TAG('X','B','D',' ')},	/* Lü */
  {"khk",	HB_TAG('M','N','G',' ')},	/* Halh Mongolian -> Mongolian */
  {"khn",	HB_TAG_NONE	       },	/* Khandesi != Khamti Shan (Microsoft fonts) */
  {"khs",	HB_TAG_NONE	       },	/* Kasua != Khanty-Shurishkar */
  {"kht",	HB_TAG('K','H','T',' ')},	/* Khamti -> Khamti Shan */
  {"kht",	HB_TAG('K','H','N',' ')},	/* Khamti -> Khamti Shan (Microsoft fonts) */
  {"khv",	HB_TAG_NONE	       },	/* Khvarshi != Khanty-Vakhi */
/*{"khw",	HB_TAG('K','H','W',' ')},*/	/* Khowar */
  {"ki",	HB_TAG('K','I','K',' ')},	/* Kikuyu (Gikuyu) */
  {"kis",	HB_TAG_NONE	       },	/* Kis != Kisii */
  {"kiu",	HB_TAG('K','I','U',' ')},	/* Kirmanjki */
  {"kiu",	HB_TAG('Z','Z','A',' ')},	/* Kirmanjki -> Zazaki */
  {"kj",	HB_TAG('K','U','A',' ')},	/* Kuanyama */
  {"kjb",	HB_TAG('M','Y','N',' ')},	/* Q'anjob'al -> Mayan */
/*{"kjd",	HB_TAG('K','J','D',' ')},*/	/* Southern Kiwai */
  {"kjh",	HB_TAG('K','H','A',' ')},	/* Khakas -> Khakass */
  {"kjp",	HB_TAG('K','J','P',' ')},	/* Pwo Eastern Karen -> Eastern Pwo Karen */
  {"kjp",	HB_TAG('K','R','N',' ')},	/* Pwo Eastern Karen -> Karen */
  {"kjt",	HB_TAG('K','R','N',' ')},	/* Phrae Pwo Karen -> Karen */
/*{"kjz",	HB_TAG('K','J','Z',' ')},*/	/* Bumthangkha */
  {"kk",	HB_TAG('K','A','Z',' ')},	/* Kazakh */
  {"kkn",	HB_TAG_NONE	       },	/* Kon Keu != Kokni */
  {"kkz",	HB_TAG('A','T','H',' ')},	/* Kaska -> Athapaskan */
  {"kl",	HB_TAG('G','R','N',' ')},	/* Greenlandic */
  {"klm",	HB_TAG_NONE	       },	/* Migum != Kalmyk */
  {"kln",	HB_TAG('K','A','L',' ')},	/* Kalenjin [macrolanguage] */
  {"km",	HB_TAG('K','H','M',' ')},	/* Khmer */
  {"kmb",	HB_TAG('M','B','N',' ')},	/* Kimbundu -> Mbundu */
  {"kmn",	HB_TAG_NONE	       },	/* Awtuw != Kumaoni */
  {"kmo",	HB_TAG_NONE	       },	/* Kwoma != Komo */
  {"kmr",	HB_TAG('K','U','R',' ')},	/* Northern Kurdish -> Kurdish */
  {"kms",	HB_TAG_NONE	       },	/* Kamasau != Komso */
  {"kmv",	HB_TAG('C','P','P',' ')},	/* Karipúna Creole French -> Creoles */
  {"kmw",	HB_TAG('K','M','O',' ')},	/* Komo (Democratic Republic of Congo) */
/*{"kmz",	HB_TAG('K','M','Z',' ')},*/	/* Khorasani Turkish -> Khorasani Turkic */
  {"kn",	HB_TAG('K','A','N',' ')},	/* Kannada */
  {"knc",	HB_TAG('K','N','R',' ')},	/* Central Kanuri -> Kanuri */
  {"kng",	HB_TAG('K','O','N','0')},	/* Koongo -> Kongo */
  {"knj",	HB_TAG('M','Y','N',' ')},	/* Western Kanjobal -> Mayan */
  {"knn",	HB_TAG('K','O','K',' ')},	/* Konkani */
  {"knr",	HB_TAG_NONE	       },	/* Kaningra != Kanuri */
  {"ko",	HB_TAG('K','O','R',' ')},	/* Korean */
  {"ko",	HB_TAG('K','O','H',' ')},	/* Korean -> Korean Old Hangul */
  {"kod",	HB_TAG_NONE	       },	/* Kodi != Kodagu */
  {"koh",	HB_TAG_NONE	       },	/* Koyo != Korean Old Hangul */
  {"koi",	HB_TAG('K','O','P',' ')},	/* Komi-Permyak */
  {"koi",	HB_TAG('K','O','M',' ')},	/* Komi-Permyak -> Komi */
/*{"kok",	HB_TAG('K','O','K',' ')},*/	/* Konkani [macrolanguage] */
  {"kop",	HB_TAG_NONE	       },	/* Waube != Komi-Permyak */
/*{"kos",	HB_TAG('K','O','S',' ')},*/	/* Kosraean */
  {"koy",	HB_TAG('A','T','H',' ')},	/* Koyukon -> Athapaskan */
  {"koz",	HB_TAG_NONE	       },	/* Korak != Komi-Zyrian */
  {"kpe",	HB_TAG('K','P','L',' ')},	/* Kpelle [macrolanguage] */
  {"kpl",	HB_TAG_NONE	       },	/* Kpala != Kpelle */
  {"kpp",	HB_TAG('K','R','N',' ')},	/* Paku Karen (retired code) -> Karen */
  {"kpv",	HB_TAG('K','O','Z',' ')},	/* Komi-Zyrian */
  {"kpv",	HB_TAG('K','O','M',' ')},	/* Komi-Zyrian -> Komi */
  {"kpy",	HB_TAG('K','Y','K',' ')},	/* Koryak */
  {"kqs",	HB_TAG('K','I','S',' ')},	/* Northern Kissi -> Kisii */
  {"kqy",	HB_TAG('K','R','T',' ')},	/* Koorete */
  {"kr",	HB_TAG('K','N','R',' ')},	/* Kanuri [macrolanguage] */
  {"krc",	HB_TAG('K','A','R',' ')},	/* Karachay-Balkar -> Karachay */
  {"krc",	HB_TAG('B','A','L',' ')},	/* Karachay-Balkar -> Balkar */
  {"kri",	HB_TAG('K','R','I',' ')},	/* Krio */
  {"kri",	HB_TAG('C','P','P',' ')},	/* Krio -> Creoles */
  {"krk",	HB_TAG_NONE	       },	/* Kerek != Karakalpak */
/*{"krl",	HB_TAG('K','R','L',' ')},*/	/* Karelian */
  {"krm",	HB_TAG_NONE	       },	/* Krim (retired code) != Karaim */
  {"krn",	HB_TAG_NONE	       },	/* Sapo != Karen */
  {"krt",	HB_TAG('K','N','R',' ')},	/* Tumari Kanuri -> Kanuri */
  {"kru",	HB_TAG('K','U','U',' ')},	/* Kurukh */
  {"ks",	HB_TAG('K','S','H',' ')},	/* Kashmiri */
  {"ksh",	HB_TAG('K','S','H','0')},	/* Kölsch -> Ripuarian */
  {"ksi",	HB_TAG_NONE	       },	/* Krisa != Khasi */
  {"ksm",	HB_TAG_NONE	       },	/* Kumba != Kildin Sami */
  {"kss",	HB_TAG('K','I','S',' ')},	/* Southern Kisi -> Kisii */
  {"ksw",	HB_TAG('K','S','W',' ')},	/* S’gaw Karen */
  {"ksw",	HB_TAG('K','R','N',' ')},	/* S'gaw Karen -> Karen */
  {"ktb",	HB_TAG('K','E','B',' ')},	/* Kambaata -> Kebena */
  {"ktu",	HB_TAG('K','O','N',' ')},	/* Kituba (Democratic Republic of Congo) -> Kikongo */
  {"ktw",	HB_TAG('A','T','H',' ')},	/* Kato -> Athapaskan */
  {"ku",	HB_TAG('K','U','R',' ')},	/* Kurdish [macrolanguage] */
  {"kui",	HB_TAG_NONE	       },	/* Kuikúro-Kalapálo != Kui */
  {"kul",	HB_TAG_NONE	       },	/* Kulere != Kulvi */
/*{"kum",	HB_TAG('K','U','M',' ')},*/	/* Kumyk */
  {"kuu",	HB_TAG('A','T','H',' ')},	/* Upper Kuskokwim -> Athapaskan */
  {"kuw",	HB_TAG('B','A','D','0')},	/* Kpagua -> Banda */
  {"kuy",	HB_TAG_NONE	       },	/* Kuuku-Ya'u != Kuy */
  {"kv",	HB_TAG('K','O','M',' ')},	/* Komi [macrolanguage] */
  {"kvb",	HB_TAG('M','L','Y',' ')},	/* Kubu -> Malay */
  {"kvl",	HB_TAG('K','R','N',' ')},	/* Kayaw -> Karen */
  {"kvq",	HB_TAG('K','R','N',' ')},	/* Geba Karen -> Karen */
  {"kvr",	HB_TAG('M','L','Y',' ')},	/* Kerinci -> Malay */
  {"kvt",	HB_TAG('K','R','N',' ')},	/* Lahta Karen -> Karen */
  {"kvu",	HB_TAG('K','R','N',' ')},	/* Yinbaw Karen -> Karen */
  {"kvy",	HB_TAG('K','R','N',' ')},	/* Yintale Karen -> Karen */
  {"kw",	HB_TAG('C','O','R',' ')},	/* Cornish */
/*{"kwk",	HB_TAG('K','W','K',' ')},*/	/* Kwakiutl -> Kwakʼwala */
  {"kww",	HB_TAG('C','P','P',' ')},	/* Kwinti -> Creoles */
  {"kwy",	HB_TAG('K','O','N','0')},	/* San Salvador Kongo -> Kongo */
  {"kxc",	HB_TAG('K','M','S',' ')},	/* Konso -> Komso */
  {"kxd",	HB_TAG('M','L','Y',' ')},	/* Brunei -> Malay */
  {"kxf",	HB_TAG('K','R','N',' ')},	/* Manumanaw Karen -> Karen */
  {"kxk",	HB_TAG('K','R','N',' ')},	/* Zayein Karen -> Karen */
  {"kxl",	HB_TAG('K','U','U',' ')},	/* Nepali Kurux (retired code) -> Kurukh */
  {"kxu",	HB_TAG('K','U','I',' ')},	/* Kui (India) (retired code) */
  {"ky",	HB_TAG('K','I','R',' ')},	/* Kirghiz (Kyrgyz) */
  {"kyk",	HB_TAG_NONE	       },	/* Kamayo != Koryak */
  {"kyu",	HB_TAG('K','Y','U',' ')},	/* Western Kayah */
  {"kyu",	HB_TAG('K','R','N',' ')},	/* Western Kayah -> Karen */
  {"la",	HB_TAG('L','A','T',' ')},	/* Latin */
  {"lac",	HB_TAG('M','Y','N',' ')},	/* Lacandon -> Mayan */
  {"lad",	HB_TAG('J','U','D',' ')},	/* Ladino */
  {"lah",	HB_TAG_NONE	       },	/* Lahnda [macrolanguage] != Lahuli */
  {"lak",	HB_TAG_NONE	       },	/* Laka (Nigeria) != Lak */
  {"lam",	HB_TAG_NONE	       },	/* Lamba != Lambani */
  {"laz",	HB_TAG_NONE	       },	/* Aribwatsa != Laz */
  {"lb",	HB_TAG('L','T','Z',' ')},	/* Luxembourgish */
  {"lbe",	HB_TAG('L','A','K',' ')},	/* Lak */
  {"lbj",	HB_TAG('L','D','K',' ')},	/* Ladakhi */
  {"lbl",	HB_TAG('B','I','K',' ')},	/* Libon Bikol -> Bikol */
  {"lce",	HB_TAG('M','L','Y',' ')},	/* Loncong -> Malay */
  {"lcf",	HB_TAG('M','L','Y',' ')},	/* Lubu -> Malay */
  {"ldi",	HB_TAG('K','O','N','0')},	/* Laari -> Kongo */
  {"ldk",	HB_TAG_NONE	       },	/* Leelau != Ladakhi */
/*{"lef",	HB_TAG('L','E','F',' ')},*/	/* Lelemi */
/*{"lez",	HB_TAG('L','E','Z',' ')},*/	/* Lezghian -> Lezgi */
  {"lg",	HB_TAG('L','U','G',' ')},	/* Ganda */
  {"li",	HB_TAG('L','I','M',' ')},	/* Limburgish */
  {"lif",	HB_TAG('L','M','B',' ')},	/* Limbu */
/*{"lij",	HB_TAG('L','I','J',' ')},*/	/* Ligurian */
  {"lir",	HB_TAG('C','P','P',' ')},	/* Liberian English -> Creoles */
/*{"lis",	HB_TAG('L','I','S',' ')},*/	/* Lisu */
  {"liw",	HB_TAG('M','L','Y',' ')},	/* Col -> Malay */
  {"liy",	HB_TAG('B','A','D','0')},	/* Banda-Bambari -> Banda */
/*{"ljp",	HB_TAG('L','J','P',' ')},*/	/* Lampung Api -> Lampung */
  {"lkb",	HB_TAG('L','U','H',' ')},	/* Kabras -> Luyia */
/*{"lki",	HB_TAG('L','K','I',' ')},*/	/* Laki */
  {"lko",	HB_TAG('L','U','H',' ')},	/* Khayo -> Luyia */
  {"lks",	HB_TAG('L','U','H',' ')},	/* Kisa -> Luyia */
  {"lld",	HB_TAG('L','A','D',' ')},	/* Ladin */
  {"lma",	HB_TAG_NONE	       },	/* East Limba != Low Mari */
  {"lmb",	HB_TAG_NONE	       },	/* Merei != Limbu */
  {"lmn",	HB_TAG('L','A','M',' ')},	/* Lambadi -> Lambani */
/*{"lmo",	HB_TAG('L','M','O',' ')},*/	/* Lombard */
  {"lmw",	HB_TAG_NONE	       },	/* Lake Miwok != Lomwe */
  {"ln",	HB_TAG('L','I','N',' ')},	/* Lingala */
  {"lna",	HB_TAG('B','A','D','0')},	/* Langbashe -> Banda */
  {"lnl",	HB_TAG('B','A','D','0')},	/* South Central Banda -> Banda */
  {"lo",	HB_TAG('L','A','O',' ')},	/* Lao */
/*{"lom",	HB_TAG('L','O','M',' ')},*/	/* Loma (Liberia) */
  {"lou",	HB_TAG('C','P','P',' ')},	/* Louisiana Creole -> Creoles */
/*{"lpo",	HB_TAG('L','P','O',' ')},*/	/* Lipo */
/*{"lrc",	HB_TAG('L','R','C',' ')},*/	/* Northern Luri -> Luri */
  {"lri",	HB_TAG('L','U','H',' ')},	/* Marachi -> Luyia */
  {"lrm",	HB_TAG('L','U','H',' ')},	/* Marama -> Luyia */
  {"lrt",	HB_TAG('C','P','P',' ')},	/* Larantuka Malay -> Creoles */
  {"lsb",	HB_TAG_NONE	       },	/* Burundian Sign Language != Lower Sorbian */
  {"lsm",	HB_TAG('L','U','H',' ')},	/* Saamia -> Luyia */
  {"lt",	HB_TAG('L','T','H',' ')},	/* Lithuanian */
  {"ltg",	HB_TAG('L','V','I',' ')},	/* Latgalian -> Latvian */
  {"lth",	HB_TAG_NONE	       },	/* Thur != Lithuanian */
  {"lto",	HB_TAG('L','U','H',' ')},	/* Tsotso -> Luyia */
  {"lts",	HB_TAG('L','U','H',' ')},	/* Tachoni -> Luyia */
  {"lu",	HB_TAG('L','U','B',' ')},	/* Luba-Katanga */
/*{"lua",	HB_TAG('L','U','A',' ')},*/	/* Luba-Lulua */
/*{"luo",	HB_TAG('L','U','O',' ')},*/	/* Luo (Kenya and Tanzania) */
  {"lus",	HB_TAG('M','I','Z',' ')},	/* Lushai -> Mizo */
  {"lus",	HB_TAG('Q','I','N',' ')},	/* Lushai -> Chin */
  {"luy",	HB_TAG('L','U','H',' ')},	/* Luyia [macrolanguage] */
  {"luz",	HB_TAG('L','R','C',' ')},	/* Southern Luri -> Luri */
  {"lv",	HB_TAG('L','V','I',' ')},	/* Latvian [macrolanguage] */
  {"lvi",	HB_TAG_NONE	       },	/* Lavi != Latvian */
  {"lvs",	HB_TAG('L','V','I',' ')},	/* Standard Latvian -> Latvian */
  {"lwg",	HB_TAG('L','U','H',' ')},	/* Wanga -> Luyia */
  {"lzh",	HB_TAG('Z','H','T',' ')},	/* Literary Chinese -> Chinese, Traditional */
  {"lzz",	HB_TAG('L','A','Z',' ')},	/* Laz */
/*{"mad",	HB_TAG('M','A','D',' ')},*/	/* Madurese -> Madura */
/*{"mag",	HB_TAG('M','A','G',' ')},*/	/* Magahi */
  {"mai",	HB_TAG('M','T','H',' ')},	/* Maithili */
  {"maj",	HB_TAG_NONE	       },	/* Jalapa De Díaz Mazatec != Majang */
  {"mak",	HB_TAG('M','K','R',' ')},	/* Makasar */
  {"mam",	HB_TAG('M','A','M',' ')},	/* Mam */
  {"mam",	HB_TAG('M','Y','N',' ')},	/* Mam -> Mayan */
  {"man",	HB_TAG('M','N','K',' ')},	/* Mandingo [macrolanguage] -> Maninka */
  {"map",	HB_TAG_NONE	       },	/* Austronesian [family] != Mapudungun */
  {"maw",	HB_TAG_NONE	       },	/* Mampruli != Marwari */
  {"max",	HB_TAG('M','L','Y',' ')},	/* North Moluccan Malay -> Malay */
  {"max",	HB_TAG('C','P','P',' ')},	/* North Moluccan Malay -> Creoles */
  {"mbf",	HB_TAG('C','P','P',' ')},	/* Baba Malay -> Creoles */
  {"mbn",	HB_TAG_NONE	       },	/* Macaguán != Mbundu */
/*{"mbo",	HB_TAG('M','B','O',' ')},*/	/* Mbo (Cameroon) */
  {"mch",	HB_TAG_NONE	       },	/* Maquiritari != Manchu */
  {"mcm",	HB_TAG('C','P','P',' ')},	/* Malaccan Creole Portuguese -> Creoles */
  {"mcr",	HB_TAG_NONE	       },	/* Menya != Moose Cree */
  {"mct",	HB_TAG('B','T','I',' ')},	/* Mengisa -> Beti */
  {"mde",	HB_TAG_NONE	       },	/* Maba (Chad) != Mende */
  {"mdf",	HB_TAG('M','O','K',' ')},	/* Moksha */
/*{"mdr",	HB_TAG('M','D','R',' ')},*/	/* Mandar */
  {"mdy",	HB_TAG('M','L','E',' ')},	/* Male (Ethiopia) */
  {"men",	HB_TAG('M','D','E',' ')},	/* Mende (Sierra Leone) */
  {"meo",	HB_TAG('M','L','Y',' ')},	/* Kedah Malay -> Malay */
/*{"mer",	HB_TAG('M','E','R',' ')},*/	/* Meru */
  {"mfa",	HB_TAG('M','F','A',' ')},	/* Pattani Malay */
  {"mfa",	HB_TAG('M','L','Y',' ')},	/* Pattani Malay -> Malay */
  {"mfb",	HB_TAG('M','L','Y',' ')},	/* Bangka -> Malay */
  {"mfe",	HB_TAG('M','F','E',' ')},	/* Morisyen */
  {"mfe",	HB_TAG('C','P','P',' ')},	/* Morisyen -> Creoles */
  {"mfp",	HB_TAG('C','P','P',' ')},	/* Makassar Malay -> Creoles */
  {"mg",	HB_TAG('M','L','G',' ')},	/* Malagasy [macrolanguage] */
  {"mh",	HB_TAG('M','A','H',' ')},	/* Marshallese */
  {"mhc",	HB_TAG('M','Y','N',' ')},	/* Mocho -> Mayan */
  {"mhr",	HB_TAG('L','M','A',' ')},	/* Eastern Mari -> Low Mari */
  {"mhv",	HB_TAG('A','R','K',' ')},	/* Arakanese (retired code) -> Rakhine */
  {"mi",	HB_TAG('M','R','I',' ')},	/* Maori */
  {"min",	HB_TAG('M','I','N',' ')},	/* Minangkabau */
  {"min",	HB_TAG('M','L','Y',' ')},	/* Minangkabau -> Malay */
  {"miz",	HB_TAG_NONE	       },	/* Coatzospan Mixtec != Mizo */
  {"mk",	HB_TAG('M','K','D',' ')},	/* Macedonian */
  {"mkn",	HB_TAG('C','P','P',' ')},	/* Kupang Malay -> Creoles */
  {"mkr",	HB_TAG_NONE	       },	/* Malas != Makasar */
  {"mku",	HB_TAG('M','N','K',' ')},	/* Konyanka Maninka -> Maninka */
/*{"mkw",	HB_TAG('M','K','W',' ')},*/	/* Kituba (Congo) */
  {"ml",	HB_TAG('M','A','L',' ')},	/* Malayalam -> Malayalam Traditional */
  {"ml",	HB_TAG('M','L','R',' ')},	/* Malayalam -> Malayalam Reformed */
  {"mle",	HB_TAG_NONE	       },	/* Manambu != Male */
  {"mln",	HB_TAG_NONE	       },	/* Malango != Malinke */
  {"mlq",	HB_TAG('M','L','N',' ')},	/* Western Maninkakan -> Malinke */
  {"mlq",	HB_TAG('M','N','K',' ')},	/* Western Maninkakan -> Maninka */
  {"mlr",	HB_TAG_NONE	       },	/* Vame != Malayalam Reformed */
  {"mmr",	HB_TAG('H','M','N',' ')},	/* Western Xiangxi Miao -> Hmong */
  {"mn",	HB_TAG('M','N','G',' ')},	/* Mongolian [macrolanguage] */
  {"mnc",	HB_TAG('M','C','H',' ')},	/* Manchu */
  {"mnd",	HB_TAG_NONE	       },	/* Mondé != Mandinka */
  {"mng",	HB_TAG_NONE	       },	/* Eastern Mnong != Mongolian */
  {"mnh",	HB_TAG('B','A','D','0')},	/* Mono (Democratic Republic of Congo) -> Banda */
/*{"mni",	HB_TAG('M','N','I',' ')},*/	/* Manipuri */
  {"mnk",	HB_TAG('M','N','D',' ')},	/* Mandinka */
  {"mnk",	HB_TAG('M','N','K',' ')},	/* Mandinka -> Maninka */
  {"mnp",	HB_TAG('Z','H','S',' ')},	/* Min Bei Chinese -> Chinese, Simplified */
  {"mns",	HB_TAG('M','A','N',' ')},	/* Mansi */
  {"mnw",	HB_TAG('M','O','N',' ')},	/* Mon */
  {"mnw",	HB_TAG('M','O','N','T')},	/* Mon -> Thailand Mon */
  {"mnx",	HB_TAG_NONE	       },	/* Manikion != Manx */
  {"mo",	HB_TAG('M','O','L',' ')},	/* Moldavian (retired code) */
  {"mod",	HB_TAG('C','P','P',' ')},	/* Mobilian -> Creoles */
/*{"moh",	HB_TAG('M','O','H',' ')},*/	/* Mohawk */
  {"mok",	HB_TAG_NONE	       },	/* Morori != Moksha */
  {"mop",	HB_TAG('M','Y','N',' ')},	/* Mopán Maya -> Mayan */
  {"mor",	HB_TAG_NONE	       },	/* Moro != Moroccan */
/*{"mos",	HB_TAG('M','O','S',' ')},*/	/* Mossi */
  {"mpe",	HB_TAG('M','A','J',' ')},	/* Majang */
  {"mqg",	HB_TAG('M','L','Y',' ')},	/* Kota Bangun Kutai Malay -> Malay */
  {"mr",	HB_TAG('M','A','R',' ')},	/* Marathi */
  {"mrh",	HB_TAG('Q','I','N',' ')},	/* Mara Chin -> Chin */
  {"mrj",	HB_TAG('H','M','A',' ')},	/* Western Mari -> High Mari */
  {"ms",	HB_TAG('M','L','Y',' ')},	/* Malay [macrolanguage] */
  {"msc",	HB_TAG('M','N','K',' ')},	/* Sankaran Maninka -> Maninka */
  {"msh",	HB_TAG('M','L','G',' ')},	/* Masikoro Malagasy -> Malagasy */
  {"msi",	HB_TAG('M','L','Y',' ')},	/* Sabah Malay -> Malay */
  {"msi",	HB_TAG('C','P','P',' ')},	/* Sabah Malay -> Creoles */
  {"mt",	HB_TAG('M','T','S',' ')},	/* Maltese */
  {"mth",	HB_TAG_NONE	       },	/* Munggui != Maithili */
  {"mtr",	HB_TAG('M','A','W',' ')},	/* Mewari -> Marwari */
  {"mts",	HB_TAG_NONE	       },	/* Yora != Maltese */
  {"mud",	HB_TAG('C','P','P',' ')},	/* Mednyj Aleut -> Creoles */
  {"mui",	HB_TAG('M','L','Y',' ')},	/* Musi -> Malay */
  {"mun",	HB_TAG_NONE	       },	/* Munda [family] != Mundari */
  {"mup",	HB_TAG('R','A','J',' ')},	/* Malvi -> Rajasthani */
  {"muq",	HB_TAG('H','M','N',' ')},	/* Eastern Xiangxi Miao -> Hmong */
/*{"mus",	HB_TAG('M','U','S',' ')},*/	/* Creek -> Muscogee */
  {"mvb",	HB_TAG('A','T','H',' ')},	/* Mattole -> Athapaskan */
  {"mve",	HB_TAG('M','A','W',' ')},	/* Marwari (Pakistan) */
  {"mvf",	HB_TAG('M','N','G',' ')},	/* Peripheral Mongolian -> Mongolian */
  {"mwk",	HB_TAG('M','N','K',' ')},	/* Kita Maninkakan -> Maninka */
/*{"mwl",	HB_TAG('M','W','L',' ')},*/	/* Mirandese */
  {"mwq",	HB_TAG('Q','I','N',' ')},	/* Mün Chin -> Chin */
  {"mwr",	HB_TAG('M','A','W',' ')},	/* Marwari [macrolanguage] */
  {"mww",	HB_TAG('M','W','W',' ')},	/* Hmong Daw */
  {"mww",	HB_TAG('H','M','N',' ')},	/* Hmong Daw -> Hmong */
  {"my",	HB_TAG('B','R','M',' ')},	/* Burmese */
  {"mym",	HB_TAG('M','E','N',' ')},	/* Me’en */
/*{"myn",	HB_TAG('M','Y','N',' ')},*/	/* Mayan [family] */
  {"myq",	HB_TAG('M','N','K',' ')},	/* Forest Maninka (retired code) -> Maninka */
  {"myv",	HB_TAG('E','R','Z',' ')},	/* Erzya */
  {"mzb",	HB_TAG('B','B','R',' ')},	/* Tumzabt -> Berber */
/*{"mzn",	HB_TAG('M','Z','N',' ')},*/	/* Mazanderani */
  {"mzs",	HB_TAG('C','P','P',' ')},	/* Macanese -> Creoles */
  {"na",	HB_TAG('N','A','U',' ')},	/* Nauru -> Nauruan */
  {"nag",	HB_TAG('N','A','G',' ')},	/* Naga Pidgin -> Naga-Assamese */
  {"nag",	HB_TAG('C','P','P',' ')},	/* Naga Pidgin -> Creoles */
/*{"nah",	HB_TAG('N','A','H',' ')},*/	/* Nahuatl [family] */
  {"nan",	HB_TAG('Z','H','S',' ')},	/* Min Nan Chinese -> Chinese, Simplified */
/*{"nap",	HB_TAG('N','A','P',' ')},*/	/* Neapolitan */
  {"nas",	HB_TAG_NONE	       },	/* Naasioi != Naskapi */
  {"naz",	HB_TAG('N','A','H',' ')},	/* Coatepec Nahuatl -> Nahuatl */
  {"nb",	HB_TAG('N','O','R',' ')},	/* Norwegian Bokmål -> Norwegian */
  {"nch",	HB_TAG('N','A','H',' ')},	/* Central Huasteca Nahuatl -> Nahuatl */
  {"nci",	HB_TAG('N','A','H',' ')},	/* Classical Nahuatl -> Nahuatl */
  {"ncj",	HB_TAG('N','A','H',' ')},	/* Northern Puebla Nahuatl -> Nahuatl */
  {"ncl",	HB_TAG('N','A','H',' ')},	/* Michoacán Nahuatl -> Nahuatl */
  {"ncr",	HB_TAG_NONE	       },	/* Ncane != N-Cree */
  {"ncx",	HB_TAG('N','A','H',' ')},	/* Central Puebla Nahuatl -> Nahuatl */
  {"nd",	HB_TAG('N','D','B',' ')},	/* North Ndebele -> Ndebele */
  {"ndb",	HB_TAG_NONE	       },	/* Kenswei Nsei != Ndebele */
/*{"ndc",	HB_TAG('N','D','C',' ')},*/	/* Ndau */
  {"ndg",	HB_TAG_NONE	       },	/* Ndengereko != Ndonga */
/*{"nds",	HB_TAG('N','D','S',' ')},*/	/* Low Saxon */
  {"ne",	HB_TAG('N','E','P',' ')},	/* Nepali [macrolanguage] */
  {"nef",	HB_TAG('C','P','P',' ')},	/* Nefamese -> Creoles */
/*{"new",	HB_TAG('N','E','W',' ')},*/	/* Newari */
  {"ng",	HB_TAG('N','D','G',' ')},	/* Ndonga */
/*{"nga",	HB_TAG('N','G','A',' ')},*/	/* Ngbaka */
  {"ngl",	HB_TAG('L','M','W',' ')},	/* Lomwe */
  {"ngm",	HB_TAG('C','P','P',' ')},	/* Ngatik Men's Creole -> Creoles */
  {"ngo",	HB_TAG('S','X','T',' ')},	/* Ngoni (retired code) -> Sutu */
  {"ngr",	HB_TAG_NONE	       },	/* Engdewu != Nagari */
  {"ngu",	HB_TAG('N','A','H',' ')},	/* Guerrero Nahuatl -> Nahuatl */
  {"nhc",	HB_TAG('N','A','H',' ')},	/* Tabasco Nahuatl -> Nahuatl */
  {"nhd",	HB_TAG('G','U','A',' ')},	/* Chiripá -> Guarani */
  {"nhe",	HB_TAG('N','A','H',' ')},	/* Eastern Huasteca Nahuatl -> Nahuatl */
  {"nhg",	HB_TAG('N','A','H',' ')},	/* Tetelcingo Nahuatl -> Nahuatl */
  {"nhi",	HB_TAG('N','A','H',' ')},	/* Zacatlán-Ahuacatlán-Tepetzintla Nahuatl -> Nahuatl */
  {"nhk",	HB_TAG('N','A','H',' ')},	/* Isthmus-Cosoleacaque Nahuatl -> Nahuatl */
  {"nhm",	HB_TAG('N','A','H',' ')},	/* Morelos Nahuatl -> Nahuatl */
  {"nhn",	HB_TAG('N','A','H',' ')},	/* Central Nahuatl -> Nahuatl */
  {"nhp",	HB_TAG('N','A','H',' ')},	/* Isthmus-Pajapan Nahuatl -> Nahuatl */
  {"nhq",	HB_TAG('N','A','H',' ')},	/* Huaxcaleca Nahuatl -> Nahuatl */
  {"nht",	HB_TAG('N','A','H',' ')},	/* Ometepec Nahuatl -> Nahuatl */
  {"nhv",	HB_TAG('N','A','H',' ')},	/* Temascaltepec Nahuatl -> Nahuatl */
  {"nhw",	HB_TAG('N','A','H',' ')},	/* Western Huasteca Nahuatl -> Nahuatl */
  {"nhx",	HB_TAG('N','A','H',' ')},	/* Isthmus-Mecayapan Nahuatl -> Nahuatl */
  {"nhy",	HB_TAG('N','A','H',' ')},	/* Northern Oaxaca Nahuatl -> Nahuatl */
  {"nhz",	HB_TAG('N','A','H',' ')},	/* Santa María La Alta Nahuatl -> Nahuatl */
  {"niq",	HB_TAG('K','A','L',' ')},	/* Nandi -> Kalenjin */
  {"nis",	HB_TAG_NONE	       },	/* Nimi != Nisi */
/*{"niu",	HB_TAG('N','I','U',' ')},*/	/* Niuean */
  {"niv",	HB_TAG('G','I','L',' ')},	/* Gilyak */
  {"njt",	HB_TAG('C','P','P',' ')},	/* Ndyuka-Trio Pidgin -> Creoles */
  {"njz",	HB_TAG('N','I','S',' ')},	/* Nyishi -> Nisi */
  {"nko",	HB_TAG_NONE	       },	/* Nkonya != N’Ko */
  {"nkx",	HB_TAG('I','J','O',' ')},	/* Nkoroo -> Ijo */
  {"nl",	HB_TAG('N','L','D',' ')},	/* Dutch */
  {"nla",	HB_TAG('B','M','L',' ')},	/* Ngombale -> Bamileke */
  {"nle",	HB_TAG('L','U','H',' ')},	/* East Nyala -> Luyia */
  {"nln",	HB_TAG('N','A','H',' ')},	/* Durango Nahuatl (retired code) -> Nahuatl */
  {"nlv",	HB_TAG('N','A','H',' ')},	/* Orizaba Nahuatl -> Nahuatl */
  {"nn",	HB_TAG('N','Y','N',' ')},	/* Norwegian Nynorsk (Nynorsk, Norwegian) */
  {"nn",	HB_TAG('N','O','R',' ')},	/* Norwegian Nynorsk -> Norwegian */
  {"nnh",	HB_TAG('B','M','L',' ')},	/* Ngiemboon -> Bamileke */
  {"nnz",	HB_TAG('B','M','L',' ')},	/* Nda'nda' -> Bamileke */
  {"no",	HB_TAG('N','O','R',' ')},	/* Norwegian [macrolanguage] */
  {"nod",	HB_TAG('N','T','A',' ')},	/* Northern Thai -> Northern Tai */
/*{"noe",	HB_TAG('N','O','E',' ')},*/	/* Nimadi */
/*{"nog",	HB_TAG('N','O','G',' ')},*/	/* Nogai */
/*{"nov",	HB_TAG('N','O','V',' ')},*/	/* Novial */
  {"npi",	HB_TAG('N','E','P',' ')},	/* Nepali */
  {"npl",	HB_TAG('N','A','H',' ')},	/* Southeastern Puebla Nahuatl -> Nahuatl */
  {"nqo",	HB_TAG('N','K','O',' ')},	/* N’Ko */
  {"nr",	HB_TAG('N','D','B',' ')},	/* South Ndebele -> Ndebele */
  {"nsk",	HB_TAG('N','A','S',' ')},	/* Naskapi */
  {"nsm",	HB_TAG_NONE	       },	/* Sumi Naga != Northern Sami */
/*{"nso",	HB_TAG('N','S','O',' ')},*/	/* Northern Sotho */
  {"nsu",	HB_TAG('N','A','H',' ')},	/* Sierra Negra Nahuatl -> Nahuatl */
  {"nto",	HB_TAG_NONE	       },	/* Ntomba != Esperanto */
  {"nue",	HB_TAG('B','A','D','0')},	/* Ngundu -> Banda */
  {"nuu",	HB_TAG('B','A','D','0')},	/* Ngbundu -> Banda */
  {"nuz",	HB_TAG('N','A','H',' ')},	/* Tlamacazapa Nahuatl -> Nahuatl */
  {"nv",	HB_TAG('N','A','V',' ')},	/* Navajo */
  {"nv",	HB_TAG('A','T','H',' ')},	/* Navajo -> Athapaskan */
  {"nwe",	HB_TAG('B','M','L',' ')},	/* Ngwe -> Bamileke */
  {"ny",	HB_TAG('C','H','I',' ')},	/* Chichewa (Chewa, Nyanja) */
  {"nyd",	HB_TAG('L','U','H',' ')},	/* Nyore -> Luyia */
/*{"nym",	HB_TAG('N','Y','M',' ')},*/	/* Nyamwezi */
  {"nyn",	HB_TAG('N','K','L',' ')},	/* Nyankole */
/*{"nza",	HB_TAG('N','Z','A',' ')},*/	/* Tigon Mbembe -> Mbembe Tigon */
  {"oc",	HB_TAG('O','C','I',' ')},	/* Occitan (post 1500) */
  {"oj",	HB_TAG('O','J','B',' ')},	/* Ojibwa [macrolanguage] -> Ojibway */
/*{"ojb",	HB_TAG('O','J','B',' ')},*/	/* Northwestern Ojibwa -> Ojibway */
  {"ojc",	HB_TAG('O','J','B',' ')},	/* Central Ojibwa -> Ojibway */
  {"ojg",	HB_TAG('O','J','B',' ')},	/* Eastern Ojibwa -> Ojibway */
  {"ojs",	HB_TAG('O','C','R',' ')},	/* Severn Ojibwa -> Oji-Cree */
  {"ojs",	HB_TAG('O','J','B',' ')},	/* Severn Ojibwa -> Ojibway */
  {"ojw",	HB_TAG('O','J','B',' ')},	/* Western Ojibwa -> Ojibway */
  {"okd",	HB_TAG('I','J','O',' ')},	/* Okodia -> Ijo */
  {"oki",	HB_TAG('K','A','L',' ')},	/* Okiek -> Kalenjin */
  {"okm",	HB_TAG('K','O','H',' ')},	/* Middle Korean (10th-16th cent.) -> Korean Old Hangul */
  {"okr",	HB_TAG('I','J','O',' ')},	/* Kirike -> Ijo */
  {"om",	HB_TAG('O','R','O',' ')},	/* Oromo [macrolanguage] */
  {"onx",	HB_TAG('C','P','P',' ')},	/* Onin Based Pidgin -> Creoles */
  {"oor",	HB_TAG('C','P','P',' ')},	/* Oorlams -> Creoles */
  {"or",	HB_TAG('O','R','I',' ')},	/* Odia (formerly Oriya) [macrolanguage] */
  {"orc",	HB_TAG('O','R','O',' ')},	/* Orma -> Oromo */
  {"orn",	HB_TAG('M','L','Y',' ')},	/* Orang Kanaq -> Malay */
  {"oro",	HB_TAG_NONE	       },	/* Orokolo != Oromo */
  {"orr",	HB_TAG('I','J','O',' ')},	/* Oruma -> Ijo */
  {"ors",	HB_TAG('M','L','Y',' ')},	/* Orang Seletar -> Malay */
  {"ory",	HB_TAG('O','R','I',' ')},	/* Odia (formerly Oriya) */
  {"os",	HB_TAG('O','S','S',' ')},	/* Ossetian */
  {"otw",	HB_TAG('O','J','B',' ')},	/* Ottawa -> Ojibway */
  {"oua",	HB_TAG('B','B','R',' ')},	/* Tagargrent -> Berber */
  {"pa",	HB_TAG('P','A','N',' ')},	/* Punjabi */
  {"paa",	HB_TAG_NONE	       },	/* Papuan [family] != Palestinian Aramaic */
/*{"pag",	HB_TAG('P','A','G',' ')},*/	/* Pangasinan */
  {"pal",	HB_TAG_NONE	       },	/* Pahlavi != Pali */
/*{"pam",	HB_TAG('P','A','M',' ')},*/	/* Pampanga -> Pampangan */
  {"pap",	HB_TAG('P','A','P','0')},	/* Papiamento -> Papiamentu */
  {"pap",	HB_TAG('C','P','P',' ')},	/* Papiamento -> Creoles */
  {"pas",	HB_TAG_NONE	       },	/* Papasena != Pashto */
/*{"pau",	HB_TAG('P','A','U',' ')},*/	/* Palauan */
  {"pbt",	HB_TAG('P','A','S',' ')},	/* Southern Pashto -> Pashto */
  {"pbu",	HB_TAG('P','A','S',' ')},	/* Northern Pashto -> Pashto */
/*{"pcc",	HB_TAG('P','C','C',' ')},*/	/* Bouyei */
/*{"pcd",	HB_TAG('P','C','D',' ')},*/	/* Picard */
  {"pce",	HB_TAG('P','L','G',' ')},	/* Ruching Palaung -> Palaung */
  {"pck",	HB_TAG('Q','I','N',' ')},	/* Paite Chin -> Chin */
  {"pcm",	HB_TAG('C','P','P',' ')},	/* Nigerian Pidgin -> Creoles */
/*{"pdc",	HB_TAG('P','D','C',' ')},*/	/* Pennsylvania German */
  {"pdu",	HB_TAG('K','R','N',' ')},	/* Kayan -> Karen */
  {"pea",	HB_TAG('C','P','P',' ')},	/* Peranakan Indonesian -> Creoles */
  {"pel",	HB_TAG('M','L','Y',' ')},	/* Pekal -> Malay */
  {"pes",	HB_TAG('F','A','R',' ')},	/* Iranian Persian -> Persian */
  {"pey",	HB_TAG('C','P','P',' ')},	/* Petjo -> Creoles */
  {"pga",	HB_TAG('A','R','A',' ')},	/* Sudanese Creole Arabic -> Arabic */
  {"pga",	HB_TAG('C','P','P',' ')},	/* Sudanese Creole Arabic -> Creoles */
/*{"phk",	HB_TAG('P','H','K',' ')},*/	/* Phake */
  {"pi",	HB_TAG('P','A','L',' ')},	/* Pali */
  {"pih",	HB_TAG('P','I','H',' ')},	/* Pitcairn-Norfolk -> Norfolk */
  {"pih",	HB_TAG('C','P','P',' ')},	/* Pitcairn-Norfolk -> Creoles */
  {"pil",	HB_TAG_NONE	       },	/* Yom != Filipino */
  {"pis",	HB_TAG('C','P','P',' ')},	/* Pijin -> Creoles */
  {"pkh",	HB_TAG('Q','I','N',' ')},	/* Pankhu -> Chin */
  {"pko",	HB_TAG('K','A','L',' ')},	/* Pökoot -> Kalenjin */
  {"pl",	HB_TAG('P','L','K',' ')},	/* Polish */
  {"plg",	HB_TAG_NONE	       },	/* Pilagá != Palaung */
  {"plk",	HB_TAG_NONE	       },	/* Kohistani Shina != Polish */
  {"pll",	HB_TAG('P','L','G',' ')},	/* Shwe Palaung -> Palaung */
  {"pln",	HB_TAG('C','P','P',' ')},	/* Palenquero -> Creoles */
  {"plp",	HB_TAG('P','A','P',' ')},	/* Palpa (retired code) */
  {"plt",	HB_TAG('M','L','G',' ')},	/* Plateau Malagasy -> Malagasy */
  {"pml",	HB_TAG('C','P','P',' ')},	/* Lingua Franca -> Creoles */
/*{"pms",	HB_TAG('P','M','S',' ')},*/	/* Piemontese */
  {"pmy",	HB_TAG('C','P','P',' ')},	/* Papuan Malay -> Creoles */
/*{"pnb",	HB_TAG('P','N','B',' ')},*/	/* Western Panjabi */
  {"poc",	HB_TAG('M','Y','N',' ')},	/* Poqomam -> Mayan */
  {"poh",	HB_TAG('P','O','H',' ')},	/* Poqomchi' -> Pocomchi */
  {"poh",	HB_TAG('M','Y','N',' ')},	/* Poqomchi' -> Mayan */
/*{"pon",	HB_TAG('P','O','N',' ')},*/	/* Pohnpeian */
  {"pov",	HB_TAG('C','P','P',' ')},	/* Upper Guinea Crioulo -> Creoles */
  {"ppa",	HB_TAG('B','A','G',' ')},	/* Pao (retired code) -> Baghelkhandi */
  {"pre",	HB_TAG('C','P','P',' ')},	/* Principense -> Creoles */
/*{"pro",	HB_TAG('P','R','O',' ')},*/	/* Old Provençal (to 1500) -> Provençal / Old Provençal */
  {"prs",	HB_TAG('D','R','I',' ')},	/* Dari */
  {"prs",	HB_TAG('F','A','R',' ')},	/* Dari -> Persian */
  {"ps",	HB_TAG('P','A','S',' ')},	/* Pashto [macrolanguage] */
  {"pse",	HB_TAG('M','L','Y',' ')},	/* Central Malay -> Malay */
  {"pst",	HB_TAG('P','A','S',' ')},	/* Central Pashto -> Pashto */
  {"pt",	HB_TAG('P','T','G',' ')},	/* Portuguese */
  {"pub",	HB_TAG('Q','I','N',' ')},	/* Purum -> Chin */
  {"puz",	HB_TAG('Q','I','N',' ')},	/* Purum Naga (retired code) -> Chin */
  {"pwo",	HB_TAG('P','W','O',' ')},	/* Pwo Western Karen -> Western Pwo Karen */
  {"pwo",	HB_TAG('K','R','N',' ')},	/* Pwo Western Karen -> Karen */
  {"pww",	HB_TAG('K','R','N',' ')},	/* Pwo Northern Karen -> Karen */
  {"qu",	HB_TAG('Q','U','Z',' ')},	/* Quechua [macrolanguage] */
  {"qub",	HB_TAG('Q','W','H',' ')},	/* Huallaga Huánuco Quechua -> Quechua (Peru) */
  {"qub",	HB_TAG('Q','U','Z',' ')},	/* Huallaga Huánuco Quechua -> Quechua */
  {"quc",	HB_TAG('Q','U','C',' ')},	/* K’iche’ */
  {"quc",	HB_TAG('M','Y','N',' ')},	/* K'iche' -> Mayan */
  {"qud",	HB_TAG('Q','V','I',' ')},	/* Calderón Highland Quichua -> Quechua (Ecuador) */
  {"qud",	HB_TAG('Q','U','Z',' ')},	/* Calderón Highland Quichua -> Quechua */
  {"quf",	HB_TAG('Q','U','Z',' ')},	/* Lambayeque Quechua -> Quechua */
  {"qug",	HB_TAG('Q','V','I',' ')},	/* Chimborazo Highland Quichua -> Quechua (Ecuador) */
  {"qug",	HB_TAG('Q','U','Z',' ')},	/* Chimborazo Highland Quichua -> Quechua */
  {"quh",	HB_TAG('Q','U','H',' ')},	/* South Bolivian Quechua -> Quechua (Bolivia) */
  {"quh",	HB_TAG('Q','U','Z',' ')},	/* South Bolivian Quechua -> Quechua */
  {"quk",	HB_TAG('Q','U','Z',' ')},	/* Chachapoyas Quechua -> Quechua */
  {"qul",	HB_TAG('Q','U','H',' ')},	/* North Bolivian Quechua -> Quechua (Bolivia) */
  {"qul",	HB_TAG('Q','U','Z',' ')},	/* North Bolivian Quechua -> Quechua */
  {"qum",	HB_TAG('M','Y','N',' ')},	/* Sipacapense -> Mayan */
  {"qup",	HB_TAG('Q','V','I',' ')},	/* Southern Pastaza Quechua -> Quechua (Ecuador) */
  {"qup",	HB_TAG('Q','U','Z',' ')},	/* Southern Pastaza Quechua -> Quechua */
  {"qur",	HB_TAG('Q','W','H',' ')},	/* Yanahuanca Pasco Quechua -> Quechua (Peru) */
  {"qur",	HB_TAG('Q','U','Z',' ')},	/* Yanahuanca Pasco Quechua -> Quechua */
  {"qus",	HB_TAG('Q','U','H',' ')},	/* Santiago del Estero Quichua -> Quechua (Bolivia) */
  {"qus",	HB_TAG('Q','U','Z',' ')},	/* Santiago del Estero Quichua -> Quechua */
  {"quv",	HB_TAG('M','Y','N',' ')},	/* Sacapulteco -> Mayan */
  {"quw",	HB_TAG('Q','V','I',' ')},	/* Tena Lowland Quichua -> Quechua (Ecuador) */
  {"quw",	HB_TAG('Q','U','Z',' ')},	/* Tena Lowland Quichua -> Quechua */
  {"qux",	HB_TAG('Q','W','H',' ')},	/* Yauyos Quechua -> Quechua (Peru) */
  {"qux",	HB_TAG('Q','U','Z',' ')},	/* Yauyos Quechua -> Quechua */
  {"quy",	HB_TAG('Q','U','Z',' ')},	/* Ayacucho Quechua -> Quechua */
/*{"quz",	HB_TAG('Q','U','Z',' ')},*/	/* Cusco Quechua -> Quechua */
  {"qva",	HB_TAG('Q','W','H',' ')},	/* Ambo-Pasco Quechua -> Quechua (Peru) */
  {"qva",	HB_TAG('Q','U','Z',' ')},	/* Ambo-Pasco Quechua -> Quechua */
  {"qvc",	HB_TAG('Q','U','Z',' ')},	/* Cajamarca Quechua -> Quechua */
  {"qve",	HB_TAG('Q','U','Z',' ')},	/* Eastern Apurímac Quechua -> Quechua */
  {"qvh",	HB_TAG('Q','W','H',' ')},	/* Huamalíes-Dos de Mayo Huánuco Quechua -> Quechua (Peru) */
  {"qvh",	HB_TAG('Q','U','Z',' ')},	/* Huamalíes-Dos de Mayo Huánuco Quechua -> Quechua */
  {"qvi",	HB_TAG('Q','V','I',' ')},	/* Imbabura Highland Quichua -> Quechua (Ecuador) */
  {"qvi",	HB_TAG('Q','U','Z',' ')},	/* Imbabura Highland Quichua -> Quechua */
  {"qvj",	HB_TAG('Q','V','I',' ')},	/* Loja Highland Quichua -> Quechua (Ecuador) */
  {"qvj",	HB_TAG('Q','U','Z',' ')},	/* Loja Highland Quichua -> Quechua */
  {"qvl",	HB_TAG('Q','W','H',' ')},	/* Cajatambo North Lima Quechua -> Quechua (Peru) */
  {"qvl",	HB_TAG('Q','U','Z',' ')},	/* Cajatambo North Lima Quechua -> Quechua */
  {"qvm",	HB_TAG('Q','W','H',' ')},	/* Margos-Yarowilca-Lauricocha Quechua -> Quechua (Peru) */
  {"qvm",	HB_TAG('Q','U','Z',' ')},	/* Margos-Yarowilca-Lauricocha Quechua -> Quechua */
  {"qvn",	HB_TAG('Q','W','H',' ')},	/* North Junín Quechua -> Quechua (Peru) */
  {"qvn",	HB_TAG('Q','U','Z',' ')},	/* North Junín Quechua -> Quechua */
  {"qvo",	HB_TAG('Q','V','I',' ')},	/* Napo Lowland Quechua -> Quechua (Ecuador) */
  {"qvo",	HB_TAG('Q','U','Z',' ')},	/* Napo Lowland Quechua -> Quechua */
  {"qvp",	HB_TAG('Q','W','H',' ')},	/* Pacaraos Quechua -> Quechua (Peru) */
  {"qvp",	HB_TAG('Q','U','Z',' ')},	/* Pacaraos Quechua -> Quechua */
  {"qvs",	HB_TAG('Q','U','Z',' ')},	/* San Martín Quechua -> Quechua */
  {"qvw",	HB_TAG('Q','W','H',' ')},	/* Huaylla Wanca Quechua -> Quechua (Peru) */
  {"qvw",	HB_TAG('Q','U','Z',' ')},	/* Huaylla Wanca Quechua -> Quechua */
  {"qvz",	HB_TAG('Q','V','I',' ')},	/* Northern Pastaza Quichua -> Quechua (Ecuador) */
  {"qvz",	HB_TAG('Q','U','Z',' ')},	/* Northern Pastaza Quichua -> Quechua */
  {"qwa",	HB_TAG('Q','W','H',' ')},	/* Corongo Ancash Quechua -> Quechua (Peru) */
  {"qwa",	HB_TAG('Q','U','Z',' ')},	/* Corongo Ancash Quechua -> Quechua */
  {"qwc",	HB_TAG('Q','U','Z',' ')},	/* Classical Quechua -> Quechua */
  {"qwh",	HB_TAG('Q','W','H',' ')},	/* Huaylas Ancash Quechua -> Quechua (Peru) */
  {"qwh",	HB_TAG('Q','U','Z',' ')},	/* Huaylas Ancash Quechua -> Quechua */
  {"qws",	HB_TAG('Q','W','H',' ')},	/* Sihuas Ancash Quechua -> Quechua (Peru) */
  {"qws",	HB_TAG('Q','U','Z',' ')},	/* Sihuas Ancash Quechua -> Quechua */
  {"qwt",	HB_TAG('A','T','H',' ')},	/* Kwalhioqua-Tlatskanai -> Athapaskan */
  {"qxa",	HB_TAG('Q','W','H',' ')},	/* Chiquián Ancash Quechua -> Quechua (Peru) */
  {"qxa",	HB_TAG('Q','U','Z',' ')},	/* Chiquián Ancash Quechua -> Quechua */
  {"qxc",	HB_TAG('Q','W','H',' ')},	/* Chincha Quechua -> Quechua (Peru) */
  {"qxc",	HB_TAG('Q','U','Z',' ')},	/* Chincha Quechua -> Quechua */
  {"qxh",	HB_TAG('Q','W','H',' ')},	/* Panao Huánuco Quechua -> Quechua (Peru) */
  {"qxh",	HB_TAG('Q','U','Z',' ')},	/* Panao Huánuco Quechua -> Quechua */
  {"qxl",	HB_TAG('Q','V','I',' ')},	/* Salasaca Highland Quichua -> Quechua (Ecuador) */
  {"qxl",	HB_TAG('Q','U','Z',' ')},	/* Salasaca Highland Quichua -> Quechua */
  {"qxn",	HB_TAG('Q','W','H',' ')},	/* Northern Conchucos Ancash Quechua -> Quechua (Peru) */
  {"qxn",	HB_TAG('Q','U','Z',' ')},	/* Northern Conchucos Ancash Quechua -> Quechua */
  {"qxo",	HB_TAG('Q','W','H',' ')},	/* Southern Conchucos Ancash Quechua -> Quechua (Peru) */
  {"qxo",	HB_TAG('Q','U','Z',' ')},	/* Southern Conchucos Ancash Quechua -> Quechua */
  {"qxp",	HB_TAG('Q','U','Z',' ')},	/* Puno Quechua -> Quechua */
  {"qxr",	HB_TAG('Q','V','I',' ')},	/* Cañar Highland Quichua -> Quechua (Ecuador) */
  {"qxr",	HB_TAG('Q','U','Z',' ')},	/* Cañar Highland Quichua -> Quechua */
  {"qxt",	HB_TAG('Q','W','H',' ')},	/* Santa Ana de Tusi Pasco Quechua -> Quechua (Peru) */
  {"qxt",	HB_TAG('Q','U','Z',' ')},	/* Santa Ana de Tusi Pasco Quechua -> Quechua */
  {"qxu",	HB_TAG('Q','U','Z',' ')},	/* Arequipa-La Unión Quechua -> Quechua */
  {"qxw",	HB_TAG('Q','W','H',' ')},	/* Jauja Wanca Quechua -> Quechua (Peru) */
  {"qxw",	HB_TAG('Q','U','Z',' ')},	/* Jauja Wanca Quechua -> Quechua */
  {"rag",	HB_TAG('L','U','H',' ')},	/* Logooli -> Luyia */
/*{"raj",	HB_TAG('R','A','J',' ')},*/	/* Rajasthani [macrolanguage] */
  {"ral",	HB_TAG('Q','I','N',' ')},	/* Ralte -> Chin */
/*{"rar",	HB_TAG('R','A','R',' ')},*/	/* Rarotongan */
  {"rbb",	HB_TAG('P','L','G',' ')},	/* Rumai Palaung -> Palaung */
  {"rbl",	HB_TAG('B','I','K',' ')},	/* Miraya Bikol -> Bikol */
  {"rcf",	HB_TAG('C','P','P',' ')},	/* Réunion Creole French -> Creoles */
/*{"rej",	HB_TAG('R','E','J',' ')},*/	/* Rejang */
/*{"rhg",	HB_TAG('R','H','G',' ')},*/	/* Rohingya */
/*{"ria",	HB_TAG('R','I','A',' ')},*/	/* Riang (India) */
  {"rif",	HB_TAG('R','I','F',' ')},	/* Tarifit */
  {"rif",	HB_TAG('B','B','R',' ')},	/* Tarifit -> Berber */
/*{"rit",	HB_TAG('R','I','T',' ')},*/	/* Ritharrngu -> Ritarungo */
  {"rki",	HB_TAG('A','R','K',' ')},	/* Rakhine */
/*{"rkw",	HB_TAG('R','K','W',' ')},*/	/* Arakwal */
  {"rm",	HB_TAG('R','M','S',' ')},	/* Romansh */
  {"rmc",	HB_TAG('R','O','Y',' ')},	/* Carpathian Romani -> Romany */
  {"rmf",	HB_TAG('R','O','Y',' ')},	/* Kalo Finnish Romani -> Romany */
  {"rml",	HB_TAG('R','O','Y',' ')},	/* Baltic Romani -> Romany */
  {"rmn",	HB_TAG('R','O','Y',' ')},	/* Balkan Romani -> Romany */
  {"rmo",	HB_TAG('R','O','Y',' ')},	/* Sinte Romani -> Romany */
  {"rms",	HB_TAG_NONE	       },	/* Romanian Sign Language != Romansh */
  {"rmw",	HB_TAG('R','O','Y',' ')},	/* Welsh Romani -> Romany */
  {"rmy",	HB_TAG('R','M','Y',' ')},	/* Vlax Romani */
  {"rmy",	HB_TAG('R','O','Y',' ')},	/* Vlax Romani -> Romany */
  {"rmz",	HB_TAG('A','R','K',' ')},	/* Marma -> Rakhine */
  {"rn",	HB_TAG('R','U','N',' ')},	/* Rundi */
  {"ro",	HB_TAG('R','O','M',' ')},	/* Romanian */
  {"rom",	HB_TAG('R','O','Y',' ')},	/* Romany [macrolanguage] */
  {"rop",	HB_TAG('C','P','P',' ')},	/* Kriol -> Creoles */
  {"rtc",	HB_TAG('Q','I','N',' ')},	/* Rungtu Chin -> Chin */
/*{"rtm",	HB_TAG('R','T','M',' ')},*/	/* Rotuman */
  {"ru",	HB_TAG('R','U','S',' ')},	/* Russian */
  {"rue",	HB_TAG('R','S','Y',' ')},	/* Rusyn */
/*{"rup",	HB_TAG('R','U','P',' ')},*/	/* Aromanian */
  {"rw",	HB_TAG('R','U','A',' ')},	/* Kinyarwanda */
  {"rwr",	HB_TAG('M','A','W',' ')},	/* Marwari (India) */
  {"sa",	HB_TAG('S','A','N',' ')},	/* Sanskrit */
  {"sad",	HB_TAG_NONE	       },	/* Sandawe != Sadri */
  {"sah",	HB_TAG('Y','A','K',' ')},	/* Yakut -> Sakha */
  {"sam",	HB_TAG('P','A','A',' ')},	/* Samaritan Aramaic -> Palestinian Aramaic */
/*{"sas",	HB_TAG('S','A','S',' ')},*/	/* Sasak */
/*{"sat",	HB_TAG('S','A','T',' ')},*/	/* Santali */
  {"say",	HB_TAG_NONE	       },	/* Saya != Sayisi */
  {"sc",	HB_TAG('S','R','D',' ')},	/* Sardinian [macrolanguage] */
  {"scf",	HB_TAG('C','P','P',' ')},	/* San Miguel Creole French -> Creoles */
  {"sch",	HB_TAG('Q','I','N',' ')},	/* Sakachep -> Chin */
  {"sci",	HB_TAG('C','P','P',' ')},	/* Sri Lankan Creole Malay -> Creoles */
  {"sck",	HB_TAG('S','A','D',' ')},	/* Sadri */
/*{"scn",	HB_TAG('S','C','N',' ')},*/	/* Sicilian */
/*{"sco",	HB_TAG('S','C','O',' ')},*/	/* Scots */
  {"scs",	HB_TAG('S','C','S',' ')},	/* North Slavey */
  {"scs",	HB_TAG('S','L','A',' ')},	/* North Slavey -> Slavey */
  {"scs",	HB_TAG('A','T','H',' ')},	/* North Slavey -> Athapaskan */
  {"sd",	HB_TAG('S','N','D',' ')},	/* Sindhi */
  {"sdc",	HB_TAG('S','R','D',' ')},	/* Sassarese Sardinian -> Sardinian */
  {"sdh",	HB_TAG('K','U','R',' ')},	/* Southern Kurdish -> Kurdish */
  {"sdn",	HB_TAG('S','R','D',' ')},	/* Gallurese Sardinian -> Sardinian */
  {"sds",	HB_TAG('B','B','R',' ')},	/* Sened -> Berber */
  {"se",	HB_TAG('N','S','M',' ')},	/* Northern Sami */
  {"seh",	HB_TAG('S','N','A',' ')},	/* Sena */
  {"sek",	HB_TAG('A','T','H',' ')},	/* Sekani -> Athapaskan */
/*{"sel",	HB_TAG('S','E','L',' ')},*/	/* Selkup */
  {"sez",	HB_TAG('Q','I','N',' ')},	/* Senthang Chin -> Chin */
  {"sfm",	HB_TAG('S','F','M',' ')},	/* Small Flowery Miao */
  {"sfm",	HB_TAG('H','M','N',' ')},	/* Small Flowery Miao -> Hmong */
  {"sg",	HB_TAG('S','G','O',' ')},	/* Sango */
/*{"sga",	HB_TAG('S','G','A',' ')},*/	/* Old Irish (to 900) */
  {"sgc",	HB_TAG('K','A','L',' ')},	/* Kipsigis -> Kalenjin */
  {"sgo",	HB_TAG_NONE	       },	/* Songa (retired code) != Sango */
/*{"sgs",	HB_TAG('S','G','S',' ')},*/	/* Samogitian */
  {"sgw",	HB_TAG('C','H','G',' ')},	/* Sebat Bet Gurage -> Chaha Gurage */
  {"shi",	HB_TAG('S','H','I',' ')},	/* Tachelhit */
  {"shi",	HB_TAG('B','B','R',' ')},	/* Tachelhit -> Berber */
  {"shl",	HB_TAG('Q','I','N',' ')},	/* Shendu -> Chin */
/*{"shn",	HB_TAG('S','H','N',' ')},*/	/* Shan */
  {"shu",	HB_TAG('A','R','A',' ')},	/* Chadian Arabic -> Arabic */
  {"shy",	HB_TAG('B','B','R',' ')},	/* Tachawit -> Berber */
  {"si",	HB_TAG('S','N','H',' ')},	/* Sinhala (Sinhalese) */
  {"sib",	HB_TAG_NONE	       },	/* Sebop != Sibe */
/*{"sid",	HB_TAG('S','I','D',' ')},*/	/* Sidamo */
  {"sig",	HB_TAG_NONE	       },	/* Paasaal != Silte Gurage */
  {"siz",	HB_TAG('B','B','R',' ')},	/* Siwi -> Berber */
  {"sjd",	HB_TAG('K','S','M',' ')},	/* Kildin Sami */
  {"sjo",	HB_TAG('S','I','B',' ')},	/* Xibe -> Sibe */
  {"sjs",	HB_TAG('B','B','R',' ')},	/* Senhaja De Srair -> Berber */
  {"sk",	HB_TAG('S','K','Y',' ')},	/* Slovak */
  {"skg",	HB_TAG('M','L','G',' ')},	/* Sakalava Malagasy -> Malagasy */
  {"skr",	HB_TAG('S','R','K',' ')},	/* Saraiki */
  {"sks",	HB_TAG_NONE	       },	/* Maia != Skolt Sami */
  {"skw",	HB_TAG('C','P','P',' ')},	/* Skepi Creole Dutch -> Creoles */
  {"sky",	HB_TAG_NONE	       },	/* Sikaiana != Slovak */
  {"sl",	HB_TAG('S','L','V',' ')},	/* Slovenian */
  {"sla",	HB_TAG_NONE	       },	/* Slavic [family] != Slavey */
  {"sm",	HB_TAG('S','M','O',' ')},	/* Samoan */
  {"sma",	HB_TAG('S','S','M',' ')},	/* Southern Sami */
  {"smj",	HB_TAG('L','S','M',' ')},	/* Lule Sami */
  {"sml",	HB_TAG_NONE	       },	/* Central Sama != Somali */
  {"smn",	HB_TAG('I','S','M',' ')},	/* Inari Sami */
  {"sms",	HB_TAG('S','K','S',' ')},	/* Skolt Sami */
  {"smt",	HB_TAG('Q','I','N',' ')},	/* Simte -> Chin */
  {"sn",	HB_TAG('S','N','A','0')},	/* Shona */
  {"snh",	HB_TAG_NONE	       },	/* Shinabo (retired code) != Sinhala (Sinhalese) */
/*{"snk",	HB_TAG('S','N','K',' ')},*/	/* Soninke */
  {"so",	HB_TAG('S','M','L',' ')},	/* Somali */
  {"sog",	HB_TAG_NONE	       },	/* Sogdian != Sodo Gurage */
/*{"sop",	HB_TAG('S','O','P',' ')},*/	/* Songe */
  {"spv",	HB_TAG('O','R','I',' ')},	/* Sambalpuri -> Odia (formerly Oriya) */
  {"spy",	HB_TAG('K','A','L',' ')},	/* Sabaot -> Kalenjin */
  {"sq",	HB_TAG('S','Q','I',' ')},	/* Albanian [macrolanguage] */
  {"sr",	HB_TAG('S','R','B',' ')},	/* Serbian */
  {"srb",	HB_TAG_NONE	       },	/* Sora != Serbian */
  {"src",	HB_TAG('S','R','D',' ')},	/* Logudorese Sardinian -> Sardinian */
  {"srk",	HB_TAG_NONE	       },	/* Serudung Murut != Saraiki */
  {"srm",	HB_TAG('C','P','P',' ')},	/* Saramaccan -> Creoles */
  {"srn",	HB_TAG('C','P','P',' ')},	/* Sranan Tongo -> Creoles */
  {"sro",	HB_TAG('S','R','D',' ')},	/* Campidanese Sardinian -> Sardinian */
/*{"srr",	HB_TAG('S','R','R',' ')},*/	/* Serer */
  {"srs",	HB_TAG('A','T','H',' ')},	/* Sarsi -> Athapaskan */
  {"ss",	HB_TAG('S','W','Z',' ')},	/* Swati */
  {"ssh",	HB_TAG('A','R','A',' ')},	/* Shihhi Arabic -> Arabic */
  {"ssl",	HB_TAG_NONE	       },	/* Western Sisaala != South Slavey */
  {"ssm",	HB_TAG_NONE	       },	/* Semnam != Southern Sami */
  {"st",	HB_TAG('S','O','T',' ')},	/* Southern Sotho */
  {"sta",	HB_TAG('C','P','P',' ')},	/* Settla -> Creoles */
/*{"stq",	HB_TAG('S','T','Q',' ')},*/	/* Saterfriesisch -> Saterland Frisian */
  {"stv",	HB_TAG('S','I','G',' ')},	/* Silt'e -> Silte Gurage */
  {"su",	HB_TAG('S','U','N',' ')},	/* Sundanese */
/*{"suk",	HB_TAG('S','U','K',' ')},*/	/* Sukuma */
  {"suq",	HB_TAG('S','U','R',' ')},	/* Suri */
  {"sur",	HB_TAG_NONE	       },	/* Mwaghavul != Suri */
  {"sv",	HB_TAG('S','V','E',' ')},	/* Swedish */
/*{"sva",	HB_TAG('S','V','A',' ')},*/	/* Svan */
  {"svc",	HB_TAG('C','P','P',' ')},	/* Vincentian Creole English -> Creoles */
  {"sve",	HB_TAG_NONE	       },	/* Serili != Swedish */
  {"sw",	HB_TAG('S','W','K',' ')},	/* Swahili [macrolanguage] */
  {"swb",	HB_TAG('C','M','R',' ')},	/* Maore Comorian -> Comorian */
  {"swc",	HB_TAG('S','W','K',' ')},	/* Congo Swahili -> Swahili */
  {"swh",	HB_TAG('S','W','K',' ')},	/* Swahili */
  {"swk",	HB_TAG_NONE	       },	/* Malawi Sena != Swahili */
  {"swn",	HB_TAG('B','B','R',' ')},	/* Sawknah -> Berber */
  {"swv",	HB_TAG('M','A','W',' ')},	/* Shekhawati -> Marwari */
/*{"sxu",	HB_TAG('S','X','U',' ')},*/	/* Upper Saxon */
  {"syc",	HB_TAG('S','Y','R',' ')},	/* Classical Syriac -> Syriac */
/*{"syl",	HB_TAG('S','Y','L',' ')},*/	/* Sylheti */
/*{"syr",	HB_TAG('S','Y','R',' ')},*/	/* Syriac [macrolanguage] */
/*{"szl",	HB_TAG('S','Z','L',' ')},*/	/* Silesian */
  {"ta",	HB_TAG('T','A','M',' ')},	/* Tamil */
  {"taa",	HB_TAG('A','T','H',' ')},	/* Lower Tanana -> Athapaskan */
/*{"tab",	HB_TAG('T','A','B',' ')},*/	/* Tabassaran -> Tabasaran */
  {"taj",	HB_TAG_NONE	       },	/* Eastern Tamang != Tajiki */
  {"taq",	HB_TAG('T','M','H',' ')},	/* Tamasheq -> Tamashek */
  {"taq",	HB_TAG('B','B','R',' ')},	/* Tamasheq -> Berber */
  {"tas",	HB_TAG('C','P','P',' ')},	/* Tay Boi -> Creoles */
  {"tau",	HB_TAG('A','T','H',' ')},	/* Upper Tanana -> Athapaskan */
  {"tcb",	HB_TAG('A','T','H',' ')},	/* Tanacross -> Athapaskan */
  {"tce",	HB_TAG('A','T','H',' ')},	/* Southern Tutchone -> Athapaskan */
  {"tch",	HB_TAG('C','P','P',' ')},	/* Turks And Caicos Creole English -> Creoles */
  {"tcp",	HB_TAG('Q','I','N',' ')},	/* Tawr Chin -> Chin */
  {"tcs",	HB_TAG('C','P','P',' ')},	/* Torres Strait Creole -> Creoles */
  {"tcy",	HB_TAG('T','U','L',' ')},	/* Tulu -> Tumbuka */
  {"tcz",	HB_TAG('Q','I','N',' ')},	/* Thado Chin -> Chin */
/*{"tdd",	HB_TAG('T','D','D',' ')},*/	/* Tai Nüa -> Dehong Dai */
  {"tdx",	HB_TAG('M','L','G',' ')},	/* Tandroy-Mahafaly Malagasy -> Malagasy */
  {"te",	HB_TAG('T','E','L',' ')},	/* Telugu */
  {"tec",	HB_TAG('K','A','L',' ')},	/* Terik -> Kalenjin */
  {"tem",	HB_TAG('T','M','N',' ')},	/* Timne -> Temne */
/*{"tet",	HB_TAG('T','E','T',' ')},*/	/* Tetum */
  {"tez",	HB_TAG('B','B','R',' ')},	/* Tetserret -> Berber */
  {"tfn",	HB_TAG('A','T','H',' ')},	/* Tanaina -> Athapaskan */
  {"tg",	HB_TAG('T','A','J',' ')},	/* Tajik -> Tajiki */
  {"tgh",	HB_TAG('C','P','P',' ')},	/* Tobagonian Creole English -> Creoles */
  {"tgj",	HB_TAG('N','I','S',' ')},	/* Tagin -> Nisi */
  {"tgn",	HB_TAG_NONE	       },	/* Tandaganon != Tongan */
  {"tgr",	HB_TAG_NONE	       },	/* Tareng != Tigre */
  {"tgx",	HB_TAG('A','T','H',' ')},	/* Tagish -> Athapaskan */
  {"tgy",	HB_TAG_NONE	       },	/* Togoyo != Tigrinya */
  {"th",	HB_TAG('T','H','A',' ')},	/* Thai */
  {"tht",	HB_TAG('A','T','H',' ')},	/* Tahltan -> Athapaskan */
  {"thv",	HB_TAG('T','M','H',' ')},	/* Tahaggart Tamahaq -> Tamashek */
  {"thv",	HB_TAG('B','B','R',' ')},	/* Tahaggart Tamahaq -> Berber */
  {"thz",	HB_TAG('T','M','H',' ')},	/* Tayart Tamajeq -> Tamashek */
  {"thz",	HB_TAG('B','B','R',' ')},	/* Tayart Tamajeq -> Berber */
  {"ti",	HB_TAG('T','G','Y',' ')},	/* Tigrinya */
  {"tia",	HB_TAG('B','B','R',' ')},	/* Tidikelt Tamazight -> Berber */
  {"tig",	HB_TAG('T','G','R',' ')},	/* Tigre */
/*{"tiv",	HB_TAG('T','I','V',' ')},*/	/* Tiv */
/*{"tjl",	HB_TAG('T','J','L',' ')},*/	/* Tai Laing */
  {"tjo",	HB_TAG('B','B','R',' ')},	/* Temacine Tamazight -> Berber */
  {"tk",	HB_TAG('T','K','M',' ')},	/* Turkmen */
  {"tkg",	HB_TAG('M','L','G',' ')},	/* Tesaka Malagasy -> Malagasy */
  {"tkm",	HB_TAG_NONE	       },	/* Takelma != Turkmen */
  {"tl",	HB_TAG('T','G','L',' ')},	/* Tagalog */
/*{"tli",	HB_TAG('T','L','I',' ')},*/	/* Tlingit */
  {"tmg",	HB_TAG('C','P','P',' ')},	/* Ternateño -> Creoles */
  {"tmh",	HB_TAG('T','M','H',' ')},	/* Tamashek [macrolanguage] */
  {"tmh",	HB_TAG('B','B','R',' ')},	/* Tamashek [macrolanguage] -> Berber */
  {"tmn",	HB_TAG_NONE	       },	/* Taman (Indonesia) != Temne */
  {"tmw",	HB_TAG('M','L','Y',' ')},	/* Temuan -> Malay */
  {"tn",	HB_TAG('T','N','A',' ')},	/* Tswana */
  {"tna",	HB_TAG_NONE	       },	/* Tacana != Tswana */
  {"tne",	HB_TAG_NONE	       },	/* Tinoc Kallahan (retired code) != Tundra Enets */
  {"tnf",	HB_TAG('D','R','I',' ')},	/* Tangshewi (retired code) -> Dari */
  {"tnf",	HB_TAG('F','A','R',' ')},	/* Tangshewi (retired code) -> Persian */
  {"tng",	HB_TAG_NONE	       },	/* Tobanga != Tonga */
  {"to",	HB_TAG('T','G','N',' ')},	/* Tonga (Tonga Islands) -> Tongan */
  {"tod",	HB_TAG('T','O','D','0')},	/* Toma */
  {"toi",	HB_TAG('T','N','G',' ')},	/* Tonga (Zambia) */
  {"toj",	HB_TAG('M','Y','N',' ')},	/* Tojolabal -> Mayan */
  {"tol",	HB_TAG('A','T','H',' ')},	/* Tolowa -> Athapaskan */
  {"tor",	HB_TAG('B','A','D','0')},	/* Togbo-Vara Banda -> Banda */
  {"tpi",	HB_TAG('T','P','I',' ')},	/* Tok Pisin */
  {"tpi",	HB_TAG('C','P','P',' ')},	/* Tok Pisin -> Creoles */
  {"tr",	HB_TAG('T','R','K',' ')},	/* Turkish */
  {"trf",	HB_TAG('C','P','P',' ')},	/* Trinidadian Creole English -> Creoles */
  {"trk",	HB_TAG_NONE	       },	/* Turkic [family] != Turkish */
  {"tru",	HB_TAG('T','U','A',' ')},	/* Turoyo -> Turoyo Aramaic */
  {"tru",	HB_TAG('S','Y','R',' ')},	/* Turoyo -> Syriac */
  {"ts",	HB_TAG('T','S','G',' ')},	/* Tsonga */
  {"tsg",	HB_TAG_NONE	       },	/* Tausug != Tsonga */
/*{"tsj",	HB_TAG('T','S','J',' ')},*/	/* Tshangla */
  {"tt",	HB_TAG('T','A','T',' ')},	/* Tatar */
  {"ttc",	HB_TAG('M','Y','N',' ')},	/* Tektiteko -> Mayan */
  {"ttm",	HB_TAG('A','T','H',' ')},	/* Northern Tutchone -> Athapaskan */
  {"ttq",	HB_TAG('T','M','H',' ')},	/* Tawallammat Tamajaq -> Tamashek */
  {"ttq",	HB_TAG('B','B','R',' ')},	/* Tawallammat Tamajaq -> Berber */
  {"tua",	HB_TAG_NONE	       },	/* Wiarumus != Turoyo Aramaic */
  {"tul",	HB_TAG_NONE	       },	/* Tula != Tumbuka */
/*{"tum",	HB_TAG('T','U','M',' ')},*/	/* Tumbuka -> Tulu */
  {"tuu",	HB_TAG('A','T','H',' ')},	/* Tututni -> Athapaskan */
  {"tuv",	HB_TAG_NONE	       },	/* Turkana != Tuvin */
  {"tuy",	HB_TAG('K','A','L',' ')},	/* Tugen -> Kalenjin */
/*{"tvl",	HB_TAG('T','V','L',' ')},*/	/* Tuvalu */
  {"tvy",	HB_TAG('C','P','P',' ')},	/* Timor Pidgin -> Creoles */
  {"tw",	HB_TAG('T','W','I',' ')},	/* Twi */
  {"tw",	HB_TAG('A','K','A',' ')},	/* Twi -> Akan */
  {"txc",	HB_TAG('A','T','H',' ')},	/* Tsetsaut -> Athapaskan */
  {"txy",	HB_TAG('M','L','G',' ')},	/* Tanosy Malagasy -> Malagasy */
  {"ty",	HB_TAG('T','H','T',' ')},	/* Tahitian */
  {"tyv",	HB_TAG('T','U','V',' ')},	/* Tuvinian -> Tuvin */
/*{"tyz",	HB_TAG('T','Y','Z',' ')},*/	/* Tày */
  {"tzh",	HB_TAG('M','Y','N',' ')},	/* Tzeltal -> Mayan */
  {"tzj",	HB_TAG('M','Y','N',' ')},	/* Tz'utujil -> Mayan */
  {"tzm",	HB_TAG('T','Z','M',' ')},	/* Central Atlas Tamazight -> Tamazight */
  {"tzm",	HB_TAG('B','B','R',' ')},	/* Central Atlas Tamazight -> Berber */
  {"tzo",	HB_TAG('T','Z','O',' ')},	/* Tzotzil */
  {"tzo",	HB_TAG('M','Y','N',' ')},	/* Tzotzil -> Mayan */
  {"ubl",	HB_TAG('B','I','K',' ')},	/* Buhi'non Bikol -> Bikol */
/*{"udm",	HB_TAG('U','D','M',' ')},*/	/* Udmurt */
  {"ug",	HB_TAG('U','Y','G',' ')},	/* Uyghur */
  {"uk",	HB_TAG('U','K','R',' ')},	/* Ukrainian */
  {"uki",	HB_TAG('K','U','I',' ')},	/* Kui (India) */
  {"uln",	HB_TAG('C','P','P',' ')},	/* Unserdeutsch -> Creoles */
/*{"umb",	HB_TAG('U','M','B',' ')},*/	/* Umbundu */
  {"unr",	HB_TAG('M','U','N',' ')},	/* Mundari */
  {"ur",	HB_TAG('U','R','D',' ')},	/* Urdu */
  {"urk",	HB_TAG('M','L','Y',' ')},	/* Urak Lawoi' -> Malay */
  {"usp",	HB_TAG('M','Y','N',' ')},	/* Uspanteco -> Mayan */
  {"uz",	HB_TAG('U','Z','B',' ')},	/* Uzbek [macrolanguage] */
  {"uzn",	HB_TAG('U','Z','B',' ')},	/* Northern Uzbek -> Uzbek */
  {"uzs",	HB_TAG('U','Z','B',' ')},	/* Southern Uzbek -> Uzbek */
  {"vap",	HB_TAG('Q','I','N',' ')},	/* Vaiphei -> Chin */
  {"ve",	HB_TAG('V','E','N',' ')},	/* Venda */
/*{"vec",	HB_TAG('V','E','C',' ')},*/	/* Venetian */
  {"vi",	HB_TAG('V','I','T',' ')},	/* Vietnamese */
  {"vic",	HB_TAG('C','P','P',' ')},	/* Virgin Islands Creole English -> Creoles */
  {"vit",	HB_TAG_NONE	       },	/* Viti != Vietnamese */
  {"vkk",	HB_TAG('M','L','Y',' ')},	/* Kaur -> Malay */
  {"vkp",	HB_TAG('C','P','P',' ')},	/* Korlai Creole Portuguese -> Creoles */
  {"vkt",	HB_TAG('M','L','Y',' ')},	/* Tenggarong Kutai Malay -> Malay */
  {"vls",	HB_TAG('F','L','E',' ')},	/* Vlaams -> Dutch (Flemish) */
  {"vmw",	HB_TAG('M','A','K',' ')},	/* Makhuwa */
  {"vo",	HB_TAG('V','O','L',' ')},	/* Volapük */
/*{"vro",	HB_TAG('V','R','O',' ')},*/	/* Võro */
  {"wa",	HB_TAG('W','L','N',' ')},	/* Walloon */
  {"wag",	HB_TAG_NONE	       },	/* Wa'ema != Wagdi */
/*{"war",	HB_TAG('W','A','R',' ')},*/	/* Waray (Philippines) -> Waray-Waray */
  {"wbm",	HB_TAG('W','A',' ',' ')},	/* Wa */
  {"wbr",	HB_TAG('W','A','G',' ')},	/* Wagdi */
  {"wbr",	HB_TAG('R','A','J',' ')},	/* Wagdi -> Rajasthani */
/*{"wci",	HB_TAG('W','C','I',' ')},*/	/* Waci Gbe */
  {"wea",	HB_TAG('K','R','N',' ')},	/* Wewaw -> Karen */
  {"wes",	HB_TAG('C','P','P',' ')},	/* Cameroon Pidgin -> Creoles */
  {"weu",	HB_TAG('Q','I','N',' ')},	/* Rawngtu Chin -> Chin */
  {"wlc",	HB_TAG('C','M','R',' ')},	/* Mwali Comorian -> Comorian */
  {"wle",	HB_TAG('S','I','G',' ')},	/* Wolane -> Silte Gurage */
  {"wlk",	HB_TAG('A','T','H',' ')},	/* Wailaki -> Athapaskan */
  {"wni",	HB_TAG('C','M','R',' ')},	/* Ndzwani Comorian -> Comorian */
  {"wo",	HB_TAG('W','L','F',' ')},	/* Wolof */
  {"wry",	HB_TAG('M','A','W',' ')},	/* Merwari -> Marwari */
  {"wsg",	HB_TAG('G','O','N',' ')},	/* Adilabad Gondi -> Gondi */
/*{"wtm",	HB_TAG('W','T','M',' ')},*/	/* Mewati */
  {"wuu",	HB_TAG('Z','H','S',' ')},	/* Wu Chinese -> Chinese, Simplified */
  {"xal",	HB_TAG('K','L','M',' ')},	/* Kalmyk */
  {"xal",	HB_TAG('T','O','D',' ')},	/* Kalmyk -> Todo */
  {"xan",	HB_TAG('S','E','K',' ')},	/* Xamtanga -> Sekota */
  {"xbd",	HB_TAG_NONE	       },	/* Bindal != Lü */
  {"xh",	HB_TAG('X','H','S',' ')},	/* Xhosa */
/*{"xjb",	HB_TAG('X','J','B',' ')},*/	/* Minjungbal -> Minjangbal */
/*{"xkf",	HB_TAG('X','K','F',' ')},*/	/* Khengkha */
  {"xmg",	HB_TAG('B','M','L',' ')},	/* Mengaka -> Bamileke */
  {"xmm",	HB_TAG('M','L','Y',' ')},	/* Manado Malay -> Malay */
  {"xmm",	HB_TAG('C','P','P',' ')},	/* Manado Malay -> Creoles */
  {"xmv",	HB_TAG('M','L','G',' ')},	/* Antankarana Malagasy -> Malagasy */
  {"xmw",	HB_TAG('M','L','G',' ')},	/* Tsimihety Malagasy -> Malagasy */
  {"xnj",	HB_TAG('S','X','T',' ')},	/* Ngoni (Tanzania) -> Sutu */
  {"xnq",	HB_TAG('S','X','T',' ')},	/* Ngoni (Mozambique) -> Sutu */
  {"xnr",	HB_TAG('D','G','R',' ')},	/* Kangri -> Dogri (macrolanguage) */
/*{"xog",	HB_TAG('X','O','G',' ')},*/	/* Soga */
  {"xpe",	HB_TAG('X','P','E',' ')},	/* Liberia Kpelle -> Kpelle (Liberia) */
  {"xpe",	HB_TAG('K','P','L',' ')},	/* Liberia Kpelle -> Kpelle */
  {"xsl",	HB_TAG('S','S','L',' ')},	/* South Slavey */
  {"xsl",	HB_TAG('S','L','A',' ')},	/* South Slavey -> Slavey */
  {"xsl",	HB_TAG('A','T','H',' ')},	/* South Slavey -> Athapaskan */
  {"xst",	HB_TAG('S','I','G',' ')},	/* Silt'e (retired code) -> Silte Gurage */
/*{"xub",	HB_TAG('X','U','B',' ')},*/	/* Betta Kurumba -> Bette Kuruma */
/*{"xuj",	HB_TAG('X','U','J',' ')},*/	/* Jennu Kurumba -> Jennu Kuruma */
  {"xup",	HB_TAG('A','T','H',' ')},	/* Upper Umpqua -> Athapaskan */
  {"xwo",	HB_TAG('T','O','D',' ')},	/* Written Oirat -> Todo */
  {"yaj",	HB_TAG('B','A','D','0')},	/* Banda-Yangere -> Banda */
  {"yak",	HB_TAG_NONE	       },	/* Yakama != Sakha */
/*{"yao",	HB_TAG('Y','A','O',' ')},*/	/* Yao */
/*{"yap",	HB_TAG('Y','A','P',' ')},*/	/* Yapese */
  {"yba",	HB_TAG_NONE	       },	/* Yala != Yoruba */
  {"ybb",	HB_TAG('B','M','L',' ')},	/* Yemba -> Bamileke */
  {"ybd",	HB_TAG('A','R','K',' ')},	/* Yangbye (retired code) -> Rakhine */
  {"ydd",	HB_TAG('J','I','I',' ')},	/* Eastern Yiddish -> Yiddish */
/*{"ygp",	HB_TAG('Y','G','P',' ')},*/	/* Gepo */
  {"yi",	HB_TAG('J','I','I',' ')},	/* Yiddish [macrolanguage] */
  {"yih",	HB_TAG('J','I','I',' ')},	/* Western Yiddish -> Yiddish */
  {"yim",	HB_TAG_NONE	       },	/* Yimchungru Naga != Yi Modern */
/*{"yna",	HB_TAG('Y','N','A',' ')},*/	/* Aluo */
  {"yo",	HB_TAG('Y','B','A',' ')},	/* Yoruba */
  {"yos",	HB_TAG('Q','I','N',' ')},	/* Yos (retired code) -> Chin */
  {"yua",	HB_TAG('M','Y','N',' ')},	/* Yucateco -> Mayan */
  {"yue",	HB_TAG('Z','H','H',' ')},	/* Yue Chinese -> Chinese, Traditional, Hong Kong SAR */
/*{"ywq",	HB_TAG('Y','W','Q',' ')},*/	/* Wuding-Luquan Yi */
  {"za",	HB_TAG('Z','H','A',' ')},	/* Zhuang [macrolanguage] */
  {"zch",	HB_TAG('Z','H','A',' ')},	/* Central Hongshuihe Zhuang -> Zhuang */
  {"zdj",	HB_TAG('C','M','R',' ')},	/* Ngazidja Comorian -> Comorian */
/*{"zea",	HB_TAG('Z','E','A',' ')},*/	/* Zeeuws -> Zealandic */
  {"zeh",	HB_TAG('Z','H','A',' ')},	/* Eastern Hongshuihe Zhuang -> Zhuang */
  {"zen",	HB_TAG('B','B','R',' ')},	/* Zenaga -> Berber */
  {"zgb",	HB_TAG('Z','H','A',' ')},	/* Guibei Zhuang -> Zhuang */
  {"zgh",	HB_TAG('Z','G','H',' ')},	/* Standard Moroccan Tamazight */
  {"zgh",	HB_TAG('B','B','R',' ')},	/* Standard Moroccan Tamazight -> Berber */
  {"zgm",	HB_TAG('Z','H','A',' ')},	/* Minz Zhuang -> Zhuang */
  {"zgn",	HB_TAG('Z','H','A',' ')},	/* Guibian Zhuang -> Zhuang */
  {"zh",	HB_TAG('Z','H','S',' ')},	/* Chinese, Simplified [macrolanguage] */
  {"zhd",	HB_TAG('Z','H','A',' ')},	/* Dai Zhuang -> Zhuang */
  {"zhn",	HB_TAG('Z','H','A',' ')},	/* Nong Zhuang -> Zhuang */
  {"zlj",	HB_TAG('Z','H','A',' ')},	/* Liujiang Zhuang -> Zhuang */
  {"zlm",	HB_TAG('M','L','Y',' ')},	/* Malay */
  {"zln",	HB_TAG('Z','H','A',' ')},	/* Lianshan Zhuang -> Zhuang */
  {"zlq",	HB_TAG('Z','H','A',' ')},	/* Liuqian Zhuang -> Zhuang */
  {"zmi",	HB_TAG('M','L','Y',' ')},	/* Negeri Sembilan Malay -> Malay */
  {"zmz",	HB_TAG('B','A','D','0')},	/* Mbandja -> Banda */
  {"znd",	HB_TAG_NONE	       },	/* Zande [family] != Zande */
  {"zne",	HB_TAG('Z','N','D',' ')},	/* Zande */
  {"zom",	HB_TAG('Q','I','N',' ')},	/* Zou -> Chin */
  {"zqe",	HB_TAG('Z','H','A',' ')},	/* Qiubei Zhuang -> Zhuang */
  {"zsm",	HB_TAG('M','L','Y',' ')},	/* Standard Malay -> Malay */
  {"zu",	HB_TAG('Z','U','L',' ')},	/* Zulu */
  {"zum",	HB_TAG('L','R','C',' ')},	/* Kumzari -> Luri */
  {"zyb",	HB_TAG('Z','H','A',' ')},	/* Yongbei Zhuang -> Zhuang */
  {"zyg",	HB_TAG('Z','H','A',' ')},	/* Yang Zhuang -> Zhuang */
  {"zyj",	HB_TAG('Z','H','A',' ')},	/* Youjiang Zhuang -> Zhuang */
  {"zyn",	HB_TAG('Z','H','A',' ')},	/* Yongnan Zhuang -> Zhuang */
  {"zyp",	HB_TAG('Q','I','N',' ')},	/* Zyphe Chin -> Chin */
/*{"zza",	HB_TAG('Z','Z','A',' ')},*/	/* Zazaki [macrolanguage] */
  {"zzj",	HB_TAG('Z','H','A',' ')},	/* Zuojiang Zhuang -> Zhuang */
};

/**
 * hb_ot_tags_from_complex_language:
 * @lang_str: a BCP 47 language tag to convert.
 * @limit: a pointer to the end of the substring of @lang_str to consider for
 * conversion.
 * @count: maximum number of language tags to retrieve (IN) and actual number of
 * language tags retrieved (OUT). If no tags are retrieved, it is not modified.
 * @tags: array of size at least @language_count to store the language tag
 * results
 *
 * Converts a multi-subtag BCP 47 language tag to language tags.
 *
 * Return value: Whether any language systems were retrieved.
 **/
static bool
hb_ot_tags_from_complex_language (const char   *lang_str,
				  const char   *limit,
				  unsigned int *count /* IN/OUT */,
				  hb_tag_t     *tags /* OUT */)
{
  if (subtag_matches (lang_str, limit, "-fonnapa"))
  {
    /* Undetermined; North American Phonetic Alphabet */
    tags[0] = HB_TAG('A','P','P','H');  /* Phonetic transcription—Americanist conventions */
    *count = 1;
    return true;
  }
  if (subtag_matches (lang_str, limit, "-polyton"))
  {
    /* Modern Greek (1453-); Polytonic Greek */
    tags[0] = HB_TAG('P','G','R',' ');  /* Polytonic Greek */
    *count = 1;
    return true;
  }
  if (subtag_matches (lang_str, limit, "-arevmda"))
  {
    /* Armenian; Western Armenian (retired code) */
    tags[0] = HB_TAG('H','Y','E',' ');  /* Armenian */
    *count = 1;
    return true;
  }
  if (subtag_matches (lang_str, limit, "-provenc"))
  {
    /* Occitan (post 1500); Provençal */
    tags[0] = HB_TAG('P','R','O',' ');  /* Provençal / Old Provençal */
    *count = 1;
    return true;
  }
  if (subtag_matches (lang_str, limit, "-fonipa"))
  {
    /* Undetermined; International Phonetic Alphabet */
    tags[0] = HB_TAG('I','P','P','H');  /* Phonetic transcription—IPA conventions */
    *count = 1;
    return true;
  }
  if (subtag_matches (lang_str, limit, "-geok"))
  {
    /* Undetermined; Khutsuri (Asomtavruli and Nuskhuri) */
    tags[0] = HB_TAG('K','G','E',' ');  /* Khutsuri Georgian */
    *count = 1;
    return true;
  }
  if (subtag_matches (lang_str, limit, "-syre"))
  {
    /* Undetermined; Syriac (Estrangelo variant) */
    tags[0] = HB_TAG('S','Y','R','E');  /* Syriac, Estrangela script-variant (equivalent to ISO 15924 'Syre') */
    *count = 1;
    return true;
  }
  if (subtag_matches (lang_str, limit, "-syrj"))
  {
    /* Undetermined; Syriac (Western variant) */
    tags[0] = HB_TAG('S','Y','R','J');  /* Syriac, Western script-variant (equivalent to ISO 15924 'Syrj') */
    *count = 1;
    return true;
  }
  if (subtag_matches (lang_str, limit, "-syrn"))
  {
    /* Undetermined; Syriac (Eastern variant) */
    tags[0] = HB_TAG('S','Y','R','N');  /* Syriac, Eastern script-variant (equivalent to ISO 15924 'Syrn') */
    *count = 1;
    return true;
  }
  switch (lang_str[0])
  {
  case 'a':
    if (0 == strcmp (&lang_str[1], "rt-lojban"))
    {
      /* Lojban (retired code) */
      tags[0] = HB_TAG('J','B','O',' ');  /* Lojban */
      *count = 1;
      return true;
    }
    break;
  case 'c':
    if (lang_matches (&lang_str[1], "do-hant-hk"))
    {
      /* Min Dong Chinese; Han (Traditional variant); Hong Kong */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Traditional, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "do-hant-mo"))
    {
      /* Min Dong Chinese; Han (Traditional variant); Macao */
      unsigned int i;
      hb_tag_t possible_tags[] = {
	HB_TAG('Z','H','T','M'),  /* Chinese, Traditional, Macao SAR */
	HB_TAG('Z','H','H',' '),  /* Chinese, Traditional, Hong Kong SAR */
      };
      for (i = 0; i < 2 && i < *count; i++)
	tags[i] = possible_tags[i];
      *count = i;
      return true;
    }
    if (lang_matches (&lang_str[1], "jy-hant-hk"))
    {
      /* Jinyu Chinese; Han (Traditional variant); Hong Kong */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Traditional, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "jy-hant-mo"))
    {
      /* Jinyu Chinese; Han (Traditional variant); Macao */
      unsigned int i;
      hb_tag_t possible_tags[] = {
	HB_TAG('Z','H','T','M'),  /* Chinese, Traditional, Macao SAR */
	HB_TAG('Z','H','H',' '),  /* Chinese, Traditional, Hong Kong SAR */
      };
      for (i = 0; i < 2 && i < *count; i++)
	tags[i] = possible_tags[i];
      *count = i;
      return true;
    }
    if (lang_matches (&lang_str[1], "mn-hant-hk"))
    {
      /* Mandarin Chinese; Han (Traditional variant); Hong Kong */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Traditional, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "mn-hant-mo"))
    {
      /* Mandarin Chinese; Han (Traditional variant); Macao */
      unsigned int i;
      hb_tag_t possible_tags[] = {
	HB_TAG('Z','H','T','M'),  /* Chinese, Traditional, Macao SAR */
	HB_TAG('Z','H','H',' '),  /* Chinese, Traditional, Hong Kong SAR */
      };
      for (i = 0; i < 2 && i < *count; i++)
	tags[i] = possible_tags[i];
      *count = i;
      return true;
    }
    if (lang_matches (&lang_str[1], "np-hant-hk"))
    {
      /* Northern Ping Chinese; Han (Traditional variant); Hong Kong */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Traditional, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "np-hant-mo"))
    {
      /* Northern Ping Chinese; Han (Traditional variant); Macao */
      unsigned int i;
      hb_tag_t possible_tags[] = {
	HB_TAG('Z','H','T','M'),  /* Chinese, Traditional, Macao SAR */
	HB_TAG('Z','H','H',' '),  /* Chinese, Traditional, Hong Kong SAR */
      };
      for (i = 0; i < 2 && i < *count; i++)
	tags[i] = possible_tags[i];
      *count = i;
      return true;
    }
    if (lang_matches (&lang_str[1], "px-hant-hk"))
    {
      /* Pu-Xian Chinese; Han (Traditional variant); Hong Kong */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Traditional, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "px-hant-mo"))
    {
      /* Pu-Xian Chinese; Han (Traditional variant); Macao */
      unsigned int i;
      hb_tag_t possible_tags[] = {
	HB_TAG('Z','H','T','M'),  /* Chinese, Traditional, Macao SAR */
	HB_TAG('Z','H','H',' '),  /* Chinese, Traditional, Hong Kong SAR */
      };
      for (i = 0; i < 2 && i < *count; i++)
	tags[i] = possible_tags[i];
      *count = i;
      return true;
    }
    if (lang_matches (&lang_str[1], "sp-hant-hk"))
    {
      /* Southern Ping Chinese; Han (Traditional variant); Hong Kong */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Traditional, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "sp-hant-mo"))
    {
      /* Southern Ping Chinese; Han (Traditional variant); Macao */
      unsigned int i;
      hb_tag_t possible_tags[] = {
	HB_TAG('Z','H','T','M'),  /* Chinese, Traditional, Macao SAR */
	HB_TAG('Z','H','H',' '),  /* Chinese, Traditional, Hong Kong SAR */
      };
      for (i = 0; i < 2 && i < *count; i++)
	tags[i] = possible_tags[i];
      *count = i;
      return true;
    }
    if (lang_matches (&lang_str[1], "zh-hant-hk"))
    {
      /* Huizhou Chinese; Han (Traditional variant); Hong Kong */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Traditional, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "zh-hant-mo"))
    {
      /* Huizhou Chinese; Han (Traditional variant); Macao */
      unsigned int i;
      hb_tag_t possible_tags[] = {
	HB_TAG('Z','H','T','M'),  /* Chinese, Traditional, Macao SAR */
	HB_TAG('Z','H','H',' '),  /* Chinese, Traditional, Hong Kong SAR */
      };
      for (i = 0; i < 2 && i < *count; i++)
	tags[i] = possible_tags[i];
      *count = i;
      return true;
    }
    if (lang_matches (&lang_str[1], "zo-hant-hk"))
    {
      /* Min Zhong Chinese; Han (Traditional variant); Hong Kong */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Traditional, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "zo-hant-mo"))
    {
      /* Min Zhong Chinese; Han (Traditional variant); Macao */
      unsigned int i;
      hb_tag_t possible_tags[] = {
	HB_TAG('Z','H','T','M'),  /* Chinese, Traditional, Macao SAR */
	HB_TAG('Z','H','H',' '),  /* Chinese, Traditional, Hong Kong SAR */
      };
      for (i = 0; i < 2 && i < *count; i++)
	tags[i] = possible_tags[i];
      *count = i;
      return true;
    }
    if (lang_matches (&lang_str[1], "do-hans"))
    {
      /* Min Dong Chinese; Han (Simplified variant) */
      tags[0] = HB_TAG('Z','H','S',' ');  /* Chinese, Simplified */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "do-hant"))
    {
      /* Min Dong Chinese; Han (Traditional variant) */
      tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese, Traditional */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "jy-hans"))
    {
      /* Jinyu Chinese; Han (Simplified variant) */
      tags[0] = HB_TAG('Z','H','S',' ');  /* Chinese, Simplified */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "jy-hant"))
    {
      /* Jinyu Chinese; Han (Traditional variant) */
      tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese, Traditional */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "mn-hans"))
    {
      /* Mandarin Chinese; Han (Simplified variant) */
      tags[0] = HB_TAG('Z','H','S',' ');  /* Chinese, Simplified */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "mn-hant"))
    {
      /* Mandarin Chinese; Han (Traditional variant) */
      tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese, Traditional */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "np-hans"))
    {
      /* Northern Ping Chinese; Han (Simplified variant) */
      tags[0] = HB_TAG('Z','H','S',' ');  /* Chinese, Simplified */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "np-hant"))
    {
      /* Northern Ping Chinese; Han (Traditional variant) */
      tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese, Traditional */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "px-hans"))
    {
      /* Pu-Xian Chinese; Han (Simplified variant) */
      tags[0] = HB_TAG('Z','H','S',' ');  /* Chinese, Simplified */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "px-hant"))
    {
      /* Pu-Xian Chinese; Han (Traditional variant) */
      tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese, Traditional */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "sp-hans"))
    {
      /* Southern Ping Chinese; Han (Simplified variant) */
      tags[0] = HB_TAG('Z','H','S',' ');  /* Chinese, Simplified */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "sp-hant"))
    {
      /* Southern Ping Chinese; Han (Traditional variant) */
      tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese, Traditional */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "zh-hans"))
    {
      /* Huizhou Chinese; Han (Simplified variant) */
      tags[0] = HB_TAG('Z','H','S',' ');  /* Chinese, Simplified */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "zh-hant"))
    {
      /* Huizhou Chinese; Han (Traditional variant) */
      tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese, Traditional */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "zo-hans"))
    {
      /* Min Zhong Chinese; Han (Simplified variant) */
      tags[0] = HB_TAG('Z','H','S',' ');  /* Chinese, Simplified */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "zo-hant"))
    {
      /* Min Zhong Chinese; Han (Traditional variant) */
      tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese, Traditional */
      *count = 1;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "do-", 3)
	&& subtag_matches (lang_str, limit, "-hk"))
    {
      /* Min Dong Chinese; Hong Kong */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Traditional, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "do-", 3)
	&& subtag_matches (lang_str, limit, "-mo"))
    {
      /* Min Dong Chinese; Macao */
      unsigned int i;
      hb_tag_t possible_tags[] = {
	HB_TAG('Z','H','T','M'),  /* Chinese, Traditional, Macao SAR */
	HB_TAG('Z','H','H',' '),  /* Chinese, Traditional, Hong Kong SAR */
      };
      for (i = 0; i < 2 && i < *count; i++)
	tags[i] = possible_tags[i];
      *count = i;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "do-", 3)
	&& subtag_matches (lang_str, limit, "-tw"))
    {
      /* Min Dong Chinese; Taiwan, Province of China */
      tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese, Traditional */
      *count = 1;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "jy-", 3)
	&& subtag_matches (lang_str, limit, "-hk"))
    {
      /* Jinyu Chinese; Hong Kong */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Traditional, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "jy-", 3)
	&& subtag_matches (lang_str, limit, "-mo"))
    {
      /* Jinyu Chinese; Macao */
      unsigned int i;
      hb_tag_t possible_tags[] = {
	HB_TAG('Z','H','T','M'),  /* Chinese, Traditional, Macao SAR */
	HB_TAG('Z','H','H',' '),  /* Chinese, Traditional, Hong Kong SAR */
      };
      for (i = 0; i < 2 && i < *count; i++)
	tags[i] = possible_tags[i];
      *count = i;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "jy-", 3)
	&& subtag_matches (lang_str, limit, "-tw"))
    {
      /* Jinyu Chinese; Taiwan, Province of China */
      tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese, Traditional */
      *count = 1;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "mn-", 3)
	&& subtag_matches (lang_str, limit, "-hk"))
    {
      /* Mandarin Chinese; Hong Kong */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Traditional, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "mn-", 3)
	&& subtag_matches (lang_str, limit, "-mo"))
    {
      /* Mandarin Chinese; Macao */
      unsigned int i;
      hb_tag_t possible_tags[] = {
	HB_TAG('Z','H','T','M'),  /* Chinese, Traditional, Macao SAR */
	HB_TAG('Z','H','H',' '),  /* Chinese, Traditional, Hong Kong SAR */
      };
      for (i = 0; i < 2 && i < *count; i++)
	tags[i] = possible_tags[i];
      *count = i;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "mn-", 3)
	&& subtag_matches (lang_str, limit, "-tw"))
    {
      /* Mandarin Chinese; Taiwan, Province of China */
      tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese, Traditional */
      *count = 1;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "np-", 3)
	&& subtag_matches (lang_str, limit, "-hk"))
    {
      /* Northern Ping Chinese; Hong Kong */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Traditional, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "np-", 3)
	&& subtag_matches (lang_str, limit, "-mo"))
    {
      /* Northern Ping Chinese; Macao */
      unsigned int i;
      hb_tag_t possible_tags[] = {
	HB_TAG('Z','H','T','M'),  /* Chinese, Traditional, Macao SAR */
	HB_TAG('Z','H','H',' '),  /* Chinese, Traditional, Hong Kong SAR */
      };
      for (i = 0; i < 2 && i < *count; i++)
	tags[i] = possible_tags[i];
      *count = i;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "np-", 3)
	&& subtag_matches (lang_str, limit, "-tw"))
    {
      /* Northern Ping Chinese; Taiwan, Province of China */
      tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese, Traditional */
      *count = 1;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "px-", 3)
	&& subtag_matches (lang_str, limit, "-hk"))
    {
      /* Pu-Xian Chinese; Hong Kong */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Traditional, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "px-", 3)
	&& subtag_matches (lang_str, limit, "-mo"))
    {
      /* Pu-Xian Chinese; Macao */
      unsigned int i;
      hb_tag_t possible_tags[] = {
	HB_TAG('Z','H','T','M'),  /* Chinese, Traditional, Macao SAR */
	HB_TAG('Z','H','H',' '),  /* Chinese, Traditional, Hong Kong SAR */
      };
      for (i = 0; i < 2 && i < *count; i++)
	tags[i] = possible_tags[i];
      *count = i;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "px-", 3)
	&& subtag_matches (lang_str, limit, "-tw"))
    {
      /* Pu-Xian Chinese; Taiwan, Province of China */
      tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese, Traditional */
      *count = 1;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "sp-", 3)
	&& subtag_matches (lang_str, limit, "-hk"))
    {
      /* Southern Ping Chinese; Hong Kong */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Traditional, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "sp-", 3)
	&& subtag_matches (lang_str, limit, "-mo"))
    {
      /* Southern Ping Chinese; Macao */
      unsigned int i;
      hb_tag_t possible_tags[] = {
	HB_TAG('Z','H','T','M'),  /* Chinese, Traditional, Macao SAR */
	HB_TAG('Z','H','H',' '),  /* Chinese, Traditional, Hong Kong SAR */
      };
      for (i = 0; i < 2 && i < *count; i++)
	tags[i] = possible_tags[i];
      *count = i;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "sp-", 3)
	&& subtag_matches (lang_str, limit, "-tw"))
    {
      /* Southern Ping Chinese; Taiwan, Province of China */
      tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese, Traditional */
      *count = 1;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "zh-", 3)
	&& subtag_matches (lang_str, limit, "-hk"))
    {
      /* Huizhou Chinese; Hong Kong */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Traditional, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "zh-", 3)
	&& subtag_matches (lang_str, limit, "-mo"))
    {
      /* Huizhou Chinese; Macao */
      unsigned int i;
      hb_tag_t possible_tags[] = {
	HB_TAG('Z','H','T','M'),  /* Chinese, Traditional, Macao SAR */
	HB_TAG('Z','H','H',' '),  /* Chinese, Traditional, Hong Kong SAR */
      };
      for (i = 0; i < 2 && i < *count; i++)
	tags[i] = possible_tags[i];
      *count = i;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "zh-", 3)
	&& subtag_matches (lang_str, limit, "-tw"))
    {
      /* Huizhou Chinese; Taiwan, Province of China */
      tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese, Traditional */
      *count = 1;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "zo-", 3)
	&& subtag_matches (lang_str, limit, "-hk"))
    {
      /* Min Zhong Chinese; Hong Kong */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Traditional, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "zo-", 3)
	&& subtag_matches (lang_str, limit, "-mo"))
    {
      /* Min Zhong Chinese; Macao */
      unsigned int i;
      hb_tag_t possible_tags[] = {
	HB_TAG('Z','H','T','M'),  /* Chinese, Traditional, Macao SAR */
	HB_TAG('Z','H','H',' '),  /* Chinese, Traditional, Hong Kong SAR */
      };
      for (i = 0; i < 2 && i < *count; i++)
	tags[i] = possible_tags[i];
      *count = i;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "zo-", 3)
	&& subtag_matches (lang_str, limit, "-tw"))
    {
      /* Min Zhong Chinese; Taiwan, Province of China */
      tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese, Traditional */
      *count = 1;
      return true;
    }
    break;
  case 'g':
    if (lang_matches (&lang_str[1], "an-hant-hk"))
    {
      /* Gan Chinese; Han (Traditional variant); Hong Kong */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Traditional, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "an-hant-mo"))
    {
      /* Gan Chinese; Han (Traditional variant); Macao */
      unsigned int i;
      hb_tag_t possible_tags[] = {
	HB_TAG('Z','H','T','M'),  /* Chinese, Traditional, Macao SAR */
	HB_TAG('Z','H','H',' '),  /* Chinese, Traditional, Hong Kong SAR */
      };
      for (i = 0; i < 2 && i < *count; i++)
	tags[i] = possible_tags[i];
      *count = i;
      return true;
    }
    if (lang_matches (&lang_str[1], "an-hans"))
    {
      /* Gan Chinese; Han (Simplified variant) */
      tags[0] = HB_TAG('Z','H','S',' ');  /* Chinese, Simplified */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "an-hant"))
    {
      /* Gan Chinese; Han (Traditional variant) */
      tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese, Traditional */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "a-latg"))
    {
      /* Irish; Latin (Gaelic variant) */
      tags[0] = HB_TAG('I','R','T',' ');  /* Irish Traditional */
      *count = 1;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "an-", 3)
	&& subtag_matches (lang_str, limit, "-hk"))
    {
      /* Gan Chinese; Hong Kong */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Traditional, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "an-", 3)
	&& subtag_matches (lang_str, limit, "-mo"))
    {
      /* Gan Chinese; Macao */
      unsigned int i;
      hb_tag_t possible_tags[] = {
	HB_TAG('Z','H','T','M'),  /* Chinese, Traditional, Macao SAR */
	HB_TAG('Z','H','H',' '),  /* Chinese, Traditional, Hong Kong SAR */
      };
      for (i = 0; i < 2 && i < *count; i++)
	tags[i] = possible_tags[i];
      *count = i;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "an-", 3)
	&& subtag_matches (lang_str, limit, "-tw"))
    {
      /* Gan Chinese; Taiwan, Province of China */
      tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese, Traditional */
      *count = 1;
      return true;
    }
    break;
  case 'h':
    if (lang_matches (&lang_str[1], "ak-hant-hk"))
    {
      /* Hakka Chinese; Han (Traditional variant); Hong Kong */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Traditional, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "ak-hant-mo"))
    {
      /* Hakka Chinese; Han (Traditional variant); Macao */
      unsigned int i;
      hb_tag_t possible_tags[] = {
	HB_TAG('Z','H','T','M'),  /* Chinese, Traditional, Macao SAR */
	HB_TAG('Z','H','H',' '),  /* Chinese, Traditional, Hong Kong SAR */
      };
      for (i = 0; i < 2 && i < *count; i++)
	tags[i] = possible_tags[i];
      *count = i;
      return true;
    }
    if (lang_matches (&lang_str[1], "sn-hant-hk"))
    {
      /* Xiang Chinese; Han (Traditional variant); Hong Kong */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Traditional, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "sn-hant-mo"))
    {
      /* Xiang Chinese; Han (Traditional variant); Macao */
      unsigned int i;
      hb_tag_t possible_tags[] = {
	HB_TAG('Z','H','T','M'),  /* Chinese, Traditional, Macao SAR */
	HB_TAG('Z','H','H',' '),  /* Chinese, Traditional, Hong Kong SAR */
      };
      for (i = 0; i < 2 && i < *count; i++)
	tags[i] = possible_tags[i];
      *count = i;
      return true;
    }
    if (lang_matches (&lang_str[1], "ak-hans"))
    {
      /* Hakka Chinese; Han (Simplified variant) */
      tags[0] = HB_TAG('Z','H','S',' ');  /* Chinese, Simplified */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "ak-hant"))
    {
      /* Hakka Chinese; Han (Traditional variant) */
      tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese, Traditional */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "sn-hans"))
    {
      /* Xiang Chinese; Han (Simplified variant) */
      tags[0] = HB_TAG('Z','H','S',' ');  /* Chinese, Simplified */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "sn-hant"))
    {
      /* Xiang Chinese; Han (Traditional variant) */
      tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese, Traditional */
      *count = 1;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "ak-", 3)
	&& subtag_matches (lang_str, limit, "-hk"))
    {
      /* Hakka Chinese; Hong Kong */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Traditional, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "ak-", 3)
	&& subtag_matches (lang_str, limit, "-mo"))
    {
      /* Hakka Chinese; Macao */
      unsigned int i;
      hb_tag_t possible_tags[] = {
	HB_TAG('Z','H','T','M'),  /* Chinese, Traditional, Macao SAR */
	HB_TAG('Z','H','H',' '),  /* Chinese, Traditional, Hong Kong SAR */
      };
      for (i = 0; i < 2 && i < *count; i++)
	tags[i] = possible_tags[i];
      *count = i;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "ak-", 3)
	&& subtag_matches (lang_str, limit, "-tw"))
    {
      /* Hakka Chinese; Taiwan, Province of China */
      tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese, Traditional */
      *count = 1;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "sn-", 3)
	&& subtag_matches (lang_str, limit, "-hk"))
    {
      /* Xiang Chinese; Hong Kong */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Traditional, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "sn-", 3)
	&& subtag_matches (lang_str, limit, "-mo"))
    {
      /* Xiang Chinese; Macao */
      unsigned int i;
      hb_tag_t possible_tags[] = {
	HB_TAG('Z','H','T','M'),  /* Chinese, Traditional, Macao SAR */
	HB_TAG('Z','H','H',' '),  /* Chinese, Traditional, Hong Kong SAR */
      };
      for (i = 0; i < 2 && i < *count; i++)
	tags[i] = possible_tags[i];
      *count = i;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "sn-", 3)
	&& subtag_matches (lang_str, limit, "-tw"))
    {
      /* Xiang Chinese; Taiwan, Province of China */
      tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese, Traditional */
      *count = 1;
      return true;
    }
    break;
  case 'i':
    if (0 == strcmp (&lang_str[1], "-navajo"))
    {
      /* Navajo (retired code) */
      unsigned int i;
      hb_tag_t possible_tags[] = {
	HB_TAG('N','A','V',' '),  /* Navajo */
	HB_TAG('A','T','H',' '),  /* Athapaskan */
      };
      for (i = 0; i < 2 && i < *count; i++)
	tags[i] = possible_tags[i];
      *count = i;
      return true;
    }
    if (0 == strcmp (&lang_str[1], "-hak"))
    {
      /* Hakka (retired code) */
      tags[0] = HB_TAG('Z','H','S',' ');  /* Chinese, Simplified */
      *count = 1;
      return true;
    }
    if (0 == strcmp (&lang_str[1], "-lux"))
    {
      /* Luxembourgish (retired code) */
      tags[0] = HB_TAG('L','T','Z',' ');  /* Luxembourgish */
      *count = 1;
      return true;
    }
    break;
  case 'l':
    if (lang_matches (&lang_str[1], "zh-hans"))
    {
      /* Literary Chinese; Han (Simplified variant) */
      tags[0] = HB_TAG('Z','H','S',' ');  /* Chinese, Simplified */
      *count = 1;
      return true;
    }
    break;
  case 'm':
    if (lang_matches (&lang_str[1], "np-hant-hk"))
    {
      /* Min Bei Chinese; Han (Traditional variant); Hong Kong */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Traditional, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "np-hant-mo"))
    {
      /* Min Bei Chinese; Han (Traditional variant); Macao */
      unsigned int i;
      hb_tag_t possible_tags[] = {
	HB_TAG('Z','H','T','M'),  /* Chinese, Traditional, Macao SAR */
	HB_TAG('Z','H','H',' '),  /* Chinese, Traditional, Hong Kong SAR */
      };
      for (i = 0; i < 2 && i < *count; i++)
	tags[i] = possible_tags[i];
      *count = i;
      return true;
    }
    if (lang_matches (&lang_str[1], "np-hans"))
    {
      /* Min Bei Chinese; Han (Simplified variant) */
      tags[0] = HB_TAG('Z','H','S',' ');  /* Chinese, Simplified */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "np-hant"))
    {
      /* Min Bei Chinese; Han (Traditional variant) */
      tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese, Traditional */
      *count = 1;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "np-", 3)
	&& subtag_matches (lang_str, limit, "-hk"))
    {
      /* Min Bei Chinese; Hong Kong */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Traditional, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "np-", 3)
	&& subtag_matches (lang_str, limit, "-mo"))
    {
      /* Min Bei Chinese; Macao */
      unsigned int i;
      hb_tag_t possible_tags[] = {
	HB_TAG('Z','H','T','M'),  /* Chinese, Traditional, Macao SAR */
	HB_TAG('Z','H','H',' '),  /* Chinese, Traditional, Hong Kong SAR */
      };
      for (i = 0; i < 2 && i < *count; i++)
	tags[i] = possible_tags[i];
      *count = i;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "np-", 3)
	&& subtag_matches (lang_str, limit, "-tw"))
    {
      /* Min Bei Chinese; Taiwan, Province of China */
      tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese, Traditional */
      *count = 1;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "nw-", 3)
	&& subtag_matches (lang_str, limit, "-th"))
    {
      /* Mon; Thailand */
      tags[0] = HB_TAG('M','O','N','T');  /* Thailand Mon */
      *count = 1;
      return true;
    }
    break;
  case 'n':
    if (lang_matches (&lang_str[1], "an-hant-hk"))
    {
      /* Min Nan Chinese; Han (Traditional variant); Hong Kong */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Traditional, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "an-hant-mo"))
    {
      /* Min Nan Chinese; Han (Traditional variant); Macao */
      unsigned int i;
      hb_tag_t possible_tags[] = {
	HB_TAG('Z','H','T','M'),  /* Chinese, Traditional, Macao SAR */
	HB_TAG('Z','H','H',' '),  /* Chinese, Traditional, Hong Kong SAR */
      };
      for (i = 0; i < 2 && i < *count; i++)
	tags[i] = possible_tags[i];
      *count = i;
      return true;
    }
    if (lang_matches (&lang_str[1], "an-hans"))
    {
      /* Min Nan Chinese; Han (Simplified variant) */
      tags[0] = HB_TAG('Z','H','S',' ');  /* Chinese, Simplified */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "an-hant"))
    {
      /* Min Nan Chinese; Han (Traditional variant) */
      tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese, Traditional */
      *count = 1;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "an-", 3)
	&& subtag_matches (lang_str, limit, "-hk"))
    {
      /* Min Nan Chinese; Hong Kong */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Traditional, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "an-", 3)
	&& subtag_matches (lang_str, limit, "-mo"))
    {
      /* Min Nan Chinese; Macao */
      unsigned int i;
      hb_tag_t possible_tags[] = {
	HB_TAG('Z','H','T','M'),  /* Chinese, Traditional, Macao SAR */
	HB_TAG('Z','H','H',' '),  /* Chinese, Traditional, Hong Kong SAR */
      };
      for (i = 0; i < 2 && i < *count; i++)
	tags[i] = possible_tags[i];
      *count = i;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "an-", 3)
	&& subtag_matches (lang_str, limit, "-tw"))
    {
      /* Min Nan Chinese; Taiwan, Province of China */
      tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese, Traditional */
      *count = 1;
      return true;
    }
    if (0 == strcmp (&lang_str[1], "o-bok"))
    {
      /* Norwegian Bokmal (retired code) */
      tags[0] = HB_TAG('N','O','R',' ');  /* Norwegian */
      *count = 1;
      return true;
    }
    if (0 == strcmp (&lang_str[1], "o-nyn"))
    {
      /* Norwegian Nynorsk (retired code) */
      unsigned int i;
      hb_tag_t possible_tags[] = {
	HB_TAG('N','Y','N',' '),  /* Norwegian Nynorsk (Nynorsk, Norwegian) */
	HB_TAG('N','O','R',' '),  /* Norwegian */
      };
      for (i = 0; i < 2 && i < *count; i++)
	tags[i] = possible_tags[i];
      *count = i;
      return true;
    }
    break;
  case 'r':
    if (0 == strncmp (&lang_str[1], "o-", 2)
	&& subtag_matches (lang_str, limit, "-md"))
    {
      /* Romanian; Moldova */
      tags[0] = HB_TAG('M','O','L',' ');  /* Moldavian */
      *count = 1;
      return true;
    }
    break;
  case 'w':
    if (lang_matches (&lang_str[1], "uu-hant-hk"))
    {
      /* Wu Chinese; Han (Traditional variant); Hong Kong */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Traditional, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "uu-hant-mo"))
    {
      /* Wu Chinese; Han (Traditional variant); Macao */
      unsigned int i;
      hb_tag_t possible_tags[] = {
	HB_TAG('Z','H','T','M'),  /* Chinese, Traditional, Macao SAR */
	HB_TAG('Z','H','H',' '),  /* Chinese, Traditional, Hong Kong SAR */
      };
      for (i = 0; i < 2 && i < *count; i++)
	tags[i] = possible_tags[i];
      *count = i;
      return true;
    }
    if (lang_matches (&lang_str[1], "uu-hans"))
    {
      /* Wu Chinese; Han (Simplified variant) */
      tags[0] = HB_TAG('Z','H','S',' ');  /* Chinese, Simplified */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "uu-hant"))
    {
      /* Wu Chinese; Han (Traditional variant) */
      tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese, Traditional */
      *count = 1;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "uu-", 3)
	&& subtag_matches (lang_str, limit, "-hk"))
    {
      /* Wu Chinese; Hong Kong */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Traditional, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "uu-", 3)
	&& subtag_matches (lang_str, limit, "-mo"))
    {
      /* Wu Chinese; Macao */
      unsigned int i;
      hb_tag_t possible_tags[] = {
	HB_TAG('Z','H','T','M'),  /* Chinese, Traditional, Macao SAR */
	HB_TAG('Z','H','H',' '),  /* Chinese, Traditional, Hong Kong SAR */
      };
      for (i = 0; i < 2 && i < *count; i++)
	tags[i] = possible_tags[i];
      *count = i;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "uu-", 3)
	&& subtag_matches (lang_str, limit, "-tw"))
    {
      /* Wu Chinese; Taiwan, Province of China */
      tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese, Traditional */
      *count = 1;
      return true;
    }
    break;
  case 'y':
    if (lang_matches (&lang_str[1], "ue-hans"))
    {
      /* Yue Chinese; Han (Simplified variant) */
      tags[0] = HB_TAG('Z','H','S',' ');  /* Chinese, Simplified */
      *count = 1;
      return true;
    }
    break;
  case 'z':
    if (lang_matches (&lang_str[1], "h-hant-hk"))
    {
      /* Chinese [macrolanguage]; Han (Traditional variant); Hong Kong */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Traditional, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "h-hant-mo"))
    {
      /* Chinese [macrolanguage]; Han (Traditional variant); Macao */
      unsigned int i;
      hb_tag_t possible_tags[] = {
	HB_TAG('Z','H','T','M'),  /* Chinese, Traditional, Macao SAR */
	HB_TAG('Z','H','H',' '),  /* Chinese, Traditional, Hong Kong SAR */
      };
      for (i = 0; i < 2 && i < *count; i++)
	tags[i] = possible_tags[i];
      *count = i;
      return true;
    }
    if (0 == strcmp (&lang_str[1], "h-min-nan"))
    {
      /* Minnan, Hokkien, Amoy, Taiwanese, Southern Min, Southern Fujian, Hoklo, Southern Fukien, Ho-lo (retired code) */
      tags[0] = HB_TAG('Z','H','S',' ');  /* Chinese, Simplified */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "h-hans"))
    {
      /* Chinese [macrolanguage]; Han (Simplified variant) */
      tags[0] = HB_TAG('Z','H','S',' ');  /* Chinese, Simplified */
      *count = 1;
      return true;
    }
    if (lang_matches (&lang_str[1], "h-hant"))
    {
      /* Chinese [macrolanguage]; Han (Traditional variant) */
      tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese, Traditional */
      *count = 1;
      return true;
    }
    if (0 == strcmp (&lang_str[1], "h-min"))
    {
      /* Min, Fuzhou, Hokkien, Amoy, or Taiwanese (retired code) */
      tags[0] = HB_TAG('Z','H','S',' ');  /* Chinese, Simplified */
      *count = 1;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "h-", 2)
	&& subtag_matches (lang_str, limit, "-hk"))
    {
      /* Chinese [macrolanguage]; Hong Kong */
      tags[0] = HB_TAG('Z','H','H',' ');  /* Chinese, Traditional, Hong Kong SAR */
      *count = 1;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "h-", 2)
	&& subtag_matches (lang_str, limit, "-mo"))
    {
      /* Chinese [macrolanguage]; Macao */
      unsigned int i;
      hb_tag_t possible_tags[] = {
	HB_TAG('Z','H','T','M'),  /* Chinese, Traditional, Macao SAR */
	HB_TAG('Z','H','H',' '),  /* Chinese, Traditional, Hong Kong SAR */
      };
      for (i = 0; i < 2 && i < *count; i++)
	tags[i] = possible_tags[i];
      *count = i;
      return true;
    }
    if (0 == strncmp (&lang_str[1], "h-", 2)
	&& subtag_matches (lang_str, limit, "-tw"))
    {
      /* Chinese [macrolanguage]; Taiwan, Province of China */
      tags[0] = HB_TAG('Z','H','T',' ');  /* Chinese, Traditional */
      *count = 1;
      return true;
    }
    break;
  }
  return false;
}

/**
 * hb_ot_ambiguous_tag_to_language
 * @tag: A language tag.
 *
 * Converts @tag to a BCP 47 language tag if it is ambiguous (it corresponds to
 * many language tags) and the best tag is not the alphabetically first, or if
 * the best tag consists of multiple subtags, or if the best tag does not appear
 * in #ot_languages.
 *
 * Return value: The #hb_language_t corresponding to the BCP 47 language tag,
 * or #HB_LANGUAGE_INVALID if @tag is not ambiguous.
 **/
static hb_language_t
hb_ot_ambiguous_tag_to_language (hb_tag_t tag)
{
  switch (tag)
  {
  case HB_TAG('A','L','T',' '):  /* Altai */
    return hb_language_from_string ("alt", -1);  /* Southern Altai */
  case HB_TAG('A','P','P','H'):  /* Phonetic transcription—Americanist conventions */
    return hb_language_from_string ("und-fonnapa", -1);  /* Undetermined; North American Phonetic Alphabet */
  case HB_TAG('A','R','A',' '):  /* Arabic */
    return hb_language_from_string ("ar", -1);  /* Arabic [macrolanguage] */
  case HB_TAG('A','R','K',' '):  /* Rakhine */
    return hb_language_from_string ("rki", -1);  /* Rakhine */
  case HB_TAG('A','T','H',' '):  /* Athapaskan */
    return hb_language_from_string ("ath", -1);  /* Athapascan [family] */
  case HB_TAG('B','B','R',' '):  /* Berber */
    return hb_language_from_string ("ber", -1);  /* Berber [family] */
  case HB_TAG('B','I','K',' '):  /* Bikol */
    return hb_language_from_string ("bik", -1);  /* Bikol [macrolanguage] */
  case HB_TAG('B','T','K',' '):  /* Batak */
    return hb_language_from_string ("btk", -1);  /* Batak [family] */
  case HB_TAG('C','P','P',' '):  /* Creoles */
    return hb_language_from_string ("crp", -1);  /* Creoles and pidgins [family] */
  case HB_TAG('C','R','R',' '):  /* Carrier */
    return hb_language_from_string ("crx", -1);  /* Carrier */
  case HB_TAG('D','G','R',' '):  /* Dogri (macrolanguage) */
    return hb_language_from_string ("doi", -1);  /* Dogri [macrolanguage] */
  case HB_TAG('D','N','K',' '):  /* Dinka */
    return hb_language_from_string ("din", -1);  /* Dinka [macrolanguage] */
  case HB_TAG('D','R','I',' '):  /* Dari */
    return hb_language_from_string ("prs", -1);  /* Dari */
  case HB_TAG('D','Z','N',' '):  /* Dzongkha */
    return hb_language_from_string ("dz", -1);  /* Dzongkha */
  case HB_TAG('E','T','I',' '):  /* Estonian */
    return hb_language_from_string ("et", -1);  /* Estonian [macrolanguage] */
  case HB_TAG('F','A','R',' '):  /* Persian */
    return hb_language_from_string ("fa", -1);  /* Persian [macrolanguage] */
  case HB_TAG('G','O','N',' '):  /* Gondi */
    return hb_language_from_string ("gon", -1);  /* Gondi [macrolanguage] */
  case HB_TAG('H','M','N',' '):  /* Hmong */
    return hb_language_from_string ("hmn", -1);  /* Hmong [macrolanguage] */
  case HB_TAG('H','N','D',' '):  /* Hindko */
    return hb_language_from_string ("hnd", -1);  /* Southern Hindko */
  case HB_TAG('H','Y','E',' '):  /* Armenian */
    return hb_language_from_string ("hyw", -1);  /* Western Armenian */
  case HB_TAG('I','B','A',' '):  /* Iban */
    return hb_language_from_string ("iba", -1);  /* Iban */
  case HB_TAG('I','J','O',' '):  /* Ijo */
    return hb_language_from_string ("ijo", -1);  /* Ijo [family] */
  case HB_TAG('I','N','U',' '):  /* Inuktitut */
    return hb_language_from_string ("iu", -1);  /* Inuktitut [macrolanguage] */
  case HB_TAG('I','P','K',' '):  /* Inupiat */
    return hb_language_from_string ("ik", -1);  /* Inupiaq [macrolanguage] */
  case HB_TAG('I','P','P','H'):  /* Phonetic transcription—IPA conventions */
    return hb_language_from_string ("und-fonipa", -1);  /* Undetermined; International Phonetic Alphabet */
  case HB_TAG('I','R','T',' '):  /* Irish Traditional */
    return hb_language_from_string ("ga-Latg", -1);  /* Irish; Latin (Gaelic variant) */
  case HB_TAG('J','I','I',' '):  /* Yiddish */
    return hb_language_from_string ("yi", -1);  /* Yiddish [macrolanguage] */
  case HB_TAG('K','A','L',' '):  /* Kalenjin */
    return hb_language_from_string ("kln", -1);  /* Kalenjin [macrolanguage] */
  case HB_TAG('K','G','E',' '):  /* Khutsuri Georgian */
    return hb_language_from_string ("und-Geok", -1);  /* Undetermined; Khutsuri (Asomtavruli and Nuskhuri) */
  case HB_TAG('K','N','R',' '):  /* Kanuri */
    return hb_language_from_string ("kr", -1);  /* Kanuri [macrolanguage] */
  case HB_TAG('K','O','H',' '):  /* Korean Old Hangul */
    return hb_language_from_string ("okm", -1);  /* Middle Korean (10th-16th cent.) */
  case HB_TAG('K','O','K',' '):  /* Konkani */
    return hb_language_from_string ("kok", -1);  /* Konkani [macrolanguage] */
  case HB_TAG('K','O','M',' '):  /* Komi */
    return hb_language_from_string ("kv", -1);  /* Komi [macrolanguage] */
  case HB_TAG('K','P','L',' '):  /* Kpelle */
    return hb_language_from_string ("kpe", -1);  /* Kpelle [macrolanguage] */
  case HB_TAG('K','R','N',' '):  /* Karen */
    return hb_language_from_string ("kar", -1);  /* Karen [family] */
  case HB_TAG('K','U','I',' '):  /* Kui */
    return hb_language_from_string ("uki", -1);  /* Kui (India) */
  case HB_TAG('K','U','R',' '):  /* Kurdish */
    return hb_language_from_string ("ku", -1);  /* Kurdish [macrolanguage] */
  case HB_TAG('L','U','H',' '):  /* Luyia */
    return hb_language_from_string ("luy", -1);  /* Luyia [macrolanguage] */
  case HB_TAG('L','V','I',' '):  /* Latvian */
    return hb_language_from_string ("lv", -1);  /* Latvian [macrolanguage] */
  case HB_TAG('M','A','W',' '):  /* Marwari */
    return hb_language_from_string ("mwr", -1);  /* Marwari [macrolanguage] */
  case HB_TAG('M','L','G',' '):  /* Malagasy */
    return hb_language_from_string ("mg", -1);  /* Malagasy [macrolanguage] */
  case HB_TAG('M','L','Y',' '):  /* Malay */
    return hb_language_from_string ("ms", -1);  /* Malay [macrolanguage] */
  case HB_TAG('M','N','G',' '):  /* Mongolian */
    return hb_language_from_string ("mn", -1);  /* Mongolian [macrolanguage] */
  case HB_TAG('M','N','K',' '):  /* Maninka */
    return hb_language_from_string ("man", -1);  /* Mandingo [macrolanguage] */
  case HB_TAG('M','O','L',' '):  /* Moldavian */
    return hb_language_from_string ("ro-MD", -1);  /* Romanian; Moldova */
  case HB_TAG('M','O','N','T'):  /* Thailand Mon */
    return hb_language_from_string ("mnw-TH", -1);  /* Mon; Thailand */
  case HB_TAG('M','Y','N',' '):  /* Mayan */
    return hb_language_from_string ("myn", -1);  /* Mayan [family] */
  case HB_TAG('N','A','H',' '):  /* Nahuatl */
    return hb_language_from_string ("nah", -1);  /* Nahuatl [family] */
  case HB_TAG('N','E','P',' '):  /* Nepali */
    return hb_language_from_string ("ne", -1);  /* Nepali [macrolanguage] */
  case HB_TAG('N','I','S',' '):  /* Nisi */
    return hb_language_from_string ("njz", -1);  /* Nyishi */
  case HB_TAG('N','O','R',' '):  /* Norwegian */
    return hb_language_from_string ("no", -1);  /* Norwegian [macrolanguage] */
  case HB_TAG('O','J','B',' '):  /* Ojibway */
    return hb_language_from_string ("oj", -1);  /* Ojibwa [macrolanguage] */
  case HB_TAG('O','R','O',' '):  /* Oromo */
    return hb_language_from_string ("om", -1);  /* Oromo [macrolanguage] */
  case HB_TAG('P','A','S',' '):  /* Pashto */
    return hb_language_from_string ("ps", -1);  /* Pashto [macrolanguage] */
  case HB_TAG('P','G','R',' '):  /* Polytonic Greek */
    return hb_language_from_string ("el-polyton", -1);  /* Modern Greek (1453-); Polytonic Greek */
  case HB_TAG('P','R','O',' '):  /* Provençal / Old Provençal */
    return hb_language_from_string ("pro", -1);  /* Old Provençal (to 1500) */
  case HB_TAG('Q','U','H',' '):  /* Quechua (Bolivia) */
    return hb_language_from_string ("quh", -1);  /* South Bolivian Quechua */
  case HB_TAG('Q','U','Z',' '):  /* Quechua */
    return hb_language_from_string ("qu", -1);  /* Quechua [macrolanguage] */
  case HB_TAG('Q','V','I',' '):  /* Quechua (Ecuador) */
    return hb_language_from_string ("qvi", -1);  /* Imbabura Highland Quichua */
  case HB_TAG('Q','W','H',' '):  /* Quechua (Peru) */
    return hb_language_from_string ("qwh", -1);  /* Huaylas Ancash Quechua */
  case HB_TAG('R','A','J',' '):  /* Rajasthani */
    return hb_language_from_string ("raj", -1);  /* Rajasthani [macrolanguage] */
  case HB_TAG('R','O','Y',' '):  /* Romany */
    return hb_language_from_string ("rom", -1);  /* Romany [macrolanguage] */
  case HB_TAG('S','Q','I',' '):  /* Albanian */
    return hb_language_from_string ("sq", -1);  /* Albanian [macrolanguage] */
  case HB_TAG('S','R','B',' '):  /* Serbian */
    return hb_language_from_string ("sr", -1);  /* Serbian */
  case HB_TAG('S','X','T',' '):  /* Sutu */
    return hb_language_from_string ("xnj", -1);  /* Ngoni (Tanzania) */
  case HB_TAG('S','Y','R',' '):  /* Syriac */
    return hb_language_from_string ("syr", -1);  /* Syriac [macrolanguage] */
  case HB_TAG('S','Y','R','E'):  /* Syriac, Estrangela script-variant (equivalent to ISO 15924 'Syre') */
    return hb_language_from_string ("und-Syre", -1);  /* Undetermined; Syriac (Estrangelo variant) */
  case HB_TAG('S','Y','R','J'):  /* Syriac, Western script-variant (equivalent to ISO 15924 'Syrj') */
    return hb_language_from_string ("und-Syrj", -1);  /* Undetermined; Syriac (Western variant) */
  case HB_TAG('S','Y','R','N'):  /* Syriac, Eastern script-variant (equivalent to ISO 15924 'Syrn') */
    return hb_language_from_string ("und-Syrn", -1);  /* Undetermined; Syriac (Eastern variant) */
  case HB_TAG('T','M','H',' '):  /* Tamashek */
    return hb_language_from_string ("tmh", -1);  /* Tamashek [macrolanguage] */
  case HB_TAG('T','O','D',' '):  /* Todo */
    return hb_language_from_string ("xwo", -1);  /* Written Oirat */
  case HB_TAG('Z','H','H',' '):  /* Chinese, Traditional, Hong Kong SAR */
    return hb_language_from_string ("zh-HK", -1);  /* Chinese [macrolanguage]; Hong Kong */
  case HB_TAG('Z','H','S',' '):  /* Chinese, Simplified */
    return hb_language_from_string ("zh-Hans", -1);  /* Chinese [macrolanguage]; Han (Simplified variant) */
  case HB_TAG('Z','H','T',' '):  /* Chinese, Traditional */
    return hb_language_from_string ("zh-Hant", -1);  /* Chinese [macrolanguage]; Han (Traditional variant) */
  case HB_TAG('Z','H','T','M'):  /* Chinese, Traditional, Macao SAR */
    return hb_language_from_string ("zh-MO", -1);  /* Chinese [macrolanguage]; Macao */
  case HB_TAG('Z','Z','A',' '):  /* Zazaki */
    return hb_language_from_string ("zza", -1);  /* Zazaki [macrolanguage] */
  default:
    return HB_LANGUAGE_INVALID;
  }
}

#endif /* HB_OT_TAG_TABLE_HH */

/* == End of generated table == */
