/*
 * Permission is hereby granted, free of charge, to any person obtaining a copy of
 * this software and associated documentation files (the "Software"), to deal in
 * the Software without restriction, including without limitation the rights to
 * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
 * of the Software, and to permit persons to whom the Software is furnished to do
 * so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in all
 * copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 * SOFTWARE.
 */
package org.jcodings.unicode;

import org.jcodings.util.ArrayReader;
import org.jcodings.CodeRange;

public enum UnicodeCodeRange {
    NEWLINE("newline", "CR_NEWLINE"),
    ALPHA("alpha", "CR_Alpha"),
    BLANK("blank", "CR_Blank"),
    CNTRL("cntrl", "CR_Cntrl"),
    DIGIT("digit", "CR_Digit"),
    GRAPH("graph", "CR_Graph"),
    LOWER("lower", "CR_Lower"),
    PRINT("print", "CR_Print"),
    XPOSIXPUNCT("xposixpunct", "CR_XPosixPunct"),
    SPACE("space", "CR_Space"),
    UPPER("upper", "CR_Upper"),
    XDIGIT("xdigit", "CR_XDigit"),
    WORD("word", "CR_Word"),
    ALNUM("alnum", "CR_Alnum"),
    ASCII("ascii", "CR_ASCII"),
    PUNCT("punct", "CR_Punct"),
    ANY("any", "CR_Any"),
    ASSIGNED("assigned", "CR_Assigned"),
    C("c", "CR_C"),
    OTHER("other", "CR_C"),
    CC("cc", "CR_Cntrl"),
    CONTROL("control", "CR_Cntrl"),
    CF("cf", "CR_Cf"),
    FORMAT("format", "CR_Cf"),
    CN("cn", "CR_Cn"),
    UNASSIGNED("unassigned", "CR_Cn"),
    CO("co", "CR_Co"),
    PRIVATEUSE("privateuse", "CR_Co"),
    CS("cs", "CR_Cs"),
    SURROGATE("surrogate", "CR_Cs"),
    L("l", "CR_L"),
    LETTER("letter", "CR_L"),
    LC("lc", "CR_LC"),
    CASEDLETTER("casedletter", "CR_LC"),
    LL("ll", "CR_Ll"),
    LOWERCASELETTER("lowercaseletter", "CR_Ll"),
    LM("lm", "CR_Lm"),
    MODIFIERLETTER("modifierletter", "CR_Lm"),
    LO("lo", "CR_Lo"),
    OTHERLETTER("otherletter", "CR_Lo"),
    LT("lt", "CR_Lt"),
    TITLECASELETTER("titlecaseletter", "CR_Lt"),
    LU("lu", "CR_Lu"),
    UPPERCASELETTER("uppercaseletter", "CR_Lu"),
    M("m", "CR_M"),
    MARK("mark", "CR_M"),
    COMBININGMARK("combiningmark", "CR_M"),
    MC("mc", "CR_Mc"),
    SPACINGMARK("spacingmark", "CR_Mc"),
    ME("me", "CR_Me"),
    ENCLOSINGMARK("enclosingmark", "CR_Me"),
    MN("mn", "CR_Mn"),
    NONSPACINGMARK("nonspacingmark", "CR_Mn"),
    N("n", "CR_N"),
    NUMBER("number", "CR_N"),
    ND("nd", "CR_Digit"),
    DECIMALNUMBER("decimalnumber", "CR_Digit"),
    NL("nl", "CR_Nl"),
    LETTERNUMBER("letternumber", "CR_Nl"),
    NO("no", "CR_No"),
    OTHERNUMBER("othernumber", "CR_No"),
    P("p", "CR_Punct"),
    PUNCTUATION("punctuation", "CR_Punct"),
    PC("pc", "CR_Pc"),
    CONNECTORPUNCTUATION("connectorpunctuation", "CR_Pc"),
    PD("pd", "CR_Pd"),
    DASHPUNCTUATION("dashpunctuation", "CR_Pd"),
    PE("pe", "CR_Pe"),
    CLOSEPUNCTUATION("closepunctuation", "CR_Pe"),
    PF("pf", "CR_Pf"),
    FINALPUNCTUATION("finalpunctuation", "CR_Pf"),
    PI("pi", "CR_Pi"),
    INITIALPUNCTUATION("initialpunctuation", "CR_Pi"),
    PO("po", "CR_Po"),
    OTHERPUNCTUATION("otherpunctuation", "CR_Po"),
    PS("ps", "CR_Ps"),
    OPENPUNCTUATION("openpunctuation", "CR_Ps"),
    S("s", "CR_S"),
    SYMBOL("symbol", "CR_S"),
    SC("sc", "CR_Sc"),
    CURRENCYSYMBOL("currencysymbol", "CR_Sc"),
    SK("sk", "CR_Sk"),
    MODIFIERSYMBOL("modifiersymbol", "CR_Sk"),
    SM("sm", "CR_Sm"),
    MATHSYMBOL("mathsymbol", "CR_Sm"),
    SO("so", "CR_So"),
    OTHERSYMBOL("othersymbol", "CR_So"),
    Z("z", "CR_Z"),
    SEPARATOR("separator", "CR_Z"),
    ZL("zl", "CR_Zl"),
    LINESEPARATOR("lineseparator", "CR_Zl"),
    ZP("zp", "CR_Zp"),
    PARAGRAPHSEPARATOR("paragraphseparator", "CR_Zp"),
    ZS("zs", "CR_Zs"),
    SPACESEPARATOR("spaceseparator", "CR_Zs"),
    MATH("math", "CR_Math"),
    ALPHABETIC("alphabetic", "CR_Alpha"),
    LOWERCASE("lowercase", "CR_Lower"),
    UPPERCASE("uppercase", "CR_Upper"),
    CASED("cased", "CR_Cased"),
    CASEIGNORABLE("caseignorable", "CR_Case_Ignorable"),
    CI("ci", "CR_Case_Ignorable"),
    CHANGESWHENLOWERCASED("changeswhenlowercased", "CR_Changes_When_Lowercased"),
    CWL("cwl", "CR_Changes_When_Lowercased"),
    CHANGESWHENUPPERCASED("changeswhenuppercased", "CR_Changes_When_Uppercased"),
    CWU("cwu", "CR_Changes_When_Uppercased"),
    CHANGESWHENTITLECASED("changeswhentitlecased", "CR_Changes_When_Titlecased"),
    CWT("cwt", "CR_Changes_When_Titlecased"),
    CHANGESWHENCASEFOLDED("changeswhencasefolded", "CR_Changes_When_Casefolded"),
    CWCF("cwcf", "CR_Changes_When_Casefolded"),
    CHANGESWHENCASEMAPPED("changeswhencasemapped", "CR_Changes_When_Casemapped"),
    CWCM("cwcm", "CR_Changes_When_Casemapped"),
    IDSTART("idstart", "CR_ID_Start"),
    IDS("ids", "CR_ID_Start"),
    IDCONTINUE("idcontinue", "CR_ID_Continue"),
    IDC("idc", "CR_ID_Continue"),
    XIDSTART("xidstart", "CR_XID_Start"),
    XIDS("xids", "CR_XID_Start"),
    XIDCONTINUE("xidcontinue", "CR_XID_Continue"),
    XIDC("xidc", "CR_XID_Continue"),
    DEFAULTIGNORABLECODEPOINT("defaultignorablecodepoint", "CR_Default_Ignorable_Code_Point"),
    DI("di", "CR_Default_Ignorable_Code_Point"),
    GRAPHEMEEXTEND("graphemeextend", "CR_Grapheme_Extend"),
    GREXT("grext", "CR_Grapheme_Extend"),
    GRAPHEMEBASE("graphemebase", "CR_Grapheme_Base"),
    GRBASE("grbase", "CR_Grapheme_Base"),
    GRAPHEMELINK("graphemelink", "CR_Grapheme_Link"),
    GRLINK("grlink", "CR_Grapheme_Link"),
    COMMON("common", "CR_Common"),
    ZYYY("zyyy", "CR_Common"),
    LATIN("latin", "CR_Latin"),
    LATN("latn", "CR_Latin"),
    GREEK("greek", "CR_Greek"),
    GREK("grek", "CR_Greek"),
    CYRILLIC("cyrillic", "CR_Cyrillic"),
    CYRL("cyrl", "CR_Cyrillic"),
    ARMENIAN("armenian", "CR_Armenian"),
    ARMN("armn", "CR_Armenian"),
    HEBREW("hebrew", "CR_Hebrew"),
    HEBR("hebr", "CR_Hebrew"),
    ARABIC("arabic", "CR_Arabic"),
    ARAB("arab", "CR_Arabic"),
    SYRIAC("syriac", "CR_Syriac"),
    SYRC("syrc", "CR_Syriac"),
    THAANA("thaana", "CR_Thaana"),
    THAA("thaa", "CR_Thaana"),
    DEVANAGARI("devanagari", "CR_Devanagari"),
    DEVA("deva", "CR_Devanagari"),
    BENGALI("bengali", "CR_Bengali"),
    BENG("beng", "CR_Bengali"),
    GURMUKHI("gurmukhi", "CR_Gurmukhi"),
    GURU("guru", "CR_Gurmukhi"),
    GUJARATI("gujarati", "CR_Gujarati"),
    GUJR("gujr", "CR_Gujarati"),
    ORIYA("oriya", "CR_Oriya"),
    ORYA("orya", "CR_Oriya"),
    TAMIL("tamil", "CR_Tamil"),
    TAML("taml", "CR_Tamil"),
    TELUGU("telugu", "CR_Telugu"),
    TELU("telu", "CR_Telugu"),
    KANNADA("kannada", "CR_Kannada"),
    KNDA("knda", "CR_Kannada"),
    MALAYALAM("malayalam", "CR_Malayalam"),
    MLYM("mlym", "CR_Malayalam"),
    SINHALA("sinhala", "CR_Sinhala"),
    SINH("sinh", "CR_Sinhala"),
    THAI("thai", "CR_Thai"),
    LAO("lao", "CR_Lao"),
    LAOO("laoo", "CR_Lao"),
    TIBETAN("tibetan", "CR_Tibetan"),
    TIBT("tibt", "CR_Tibetan"),
    MYANMAR("myanmar", "CR_Myanmar"),
    MYMR("mymr", "CR_Myanmar"),
    GEORGIAN("georgian", "CR_Georgian"),
    GEOR("geor", "CR_Georgian"),
    HANGUL("hangul", "CR_Hangul"),
    HANG("hang", "CR_Hangul"),
    ETHIOPIC("ethiopic", "CR_Ethiopic"),
    ETHI("ethi", "CR_Ethiopic"),
    CHEROKEE("cherokee", "CR_Cherokee"),
    CHER("cher", "CR_Cherokee"),
    CANADIANABORIGINAL("canadianaboriginal", "CR_Canadian_Aboriginal"),
    CANS("cans", "CR_Canadian_Aboriginal"),
    OGHAM("ogham", "CR_Ogham"),
    OGAM("ogam", "CR_Ogham"),
    RUNIC("runic", "CR_Runic"),
    RUNR("runr", "CR_Runic"),
    KHMER("khmer", "CR_Khmer"),
    KHMR("khmr", "CR_Khmer"),
    MONGOLIAN("mongolian", "CR_Mongolian"),
    MONG("mong", "CR_Mongolian"),
    HIRAGANA("hiragana", "CR_Hiragana"),
    HIRA("hira", "CR_Hiragana"),
    KATAKANA("katakana", "CR_Katakana"),
    KANA("kana", "CR_Katakana"),
    BOPOMOFO("bopomofo", "CR_Bopomofo"),
    BOPO("bopo", "CR_Bopomofo"),
    HAN("han", "CR_Han"),
    HANI("hani", "CR_Han"),
    YI("yi", "CR_Yi"),
    YIII("yiii", "CR_Yi"),
    OLDITALIC("olditalic", "CR_Old_Italic"),
    ITAL("ital", "CR_Old_Italic"),
    GOTHIC("gothic", "CR_Gothic"),
    GOTH("goth", "CR_Gothic"),
    INDESERET("indeseret", "CR_Deseret"),
    INHERITED("inherited", "CR_Inherited"),
    QAAI("qaai", "CR_Inherited"),
    ZINH("zinh", "CR_Inherited"),
    TAGALOG("tagalog", "CR_Tagalog"),
    TGLG("tglg", "CR_Tagalog"),
    HANUNOO("hanunoo", "CR_Hanunoo"),
    HANO("hano", "CR_Hanunoo"),
    BUHID("buhid", "CR_Buhid"),
    BUHD("buhd", "CR_Buhid"),
    TAGBANWA("tagbanwa", "CR_Tagbanwa"),
    TAGB("tagb", "CR_Tagbanwa"),
    LIMBU("limbu", "CR_Limbu"),
    LIMB("limb", "CR_Limbu"),
    TAILE("taile", "CR_Tai_Le"),
    TALE("tale", "CR_Tai_Le"),
    LINEARB("linearb", "CR_Linear_B"),
    LINB("linb", "CR_Linear_B"),
    UGARITIC("ugaritic", "CR_Ugaritic"),
    UGAR("ugar", "CR_Ugaritic"),
    INSHAVIAN("inshavian", "CR_Shavian"),
    OSMANYA("osmanya", "CR_Osmanya"),
    OSMA("osma", "CR_Osmanya"),
    CYPRIOT("cypriot", "CR_Cypriot"),
    CPRT("cprt", "CR_Cypriot"),
    INBRAILLEPATTERNS("inbraillepatterns", "CR_Braille"),
    BUGINESE("buginese", "CR_Buginese"),
    BUGI("bugi", "CR_Buginese"),
    COPTIC("coptic", "CR_Coptic"),
    QAAC("qaac", "CR_Coptic"),
    COPT("copt", "CR_Coptic"),
    NEWTAILUE("newtailue", "CR_New_Tai_Lue"),
    TALU("talu", "CR_New_Tai_Lue"),
    GLAGOLITIC("glagolitic", "CR_Glagolitic"),
    GLAG("glag", "CR_Glagolitic"),
    TIFINAGH("tifinagh", "CR_Tifinagh"),
    TFNG("tfng", "CR_Tifinagh"),
    SYLOTINAGRI("sylotinagri", "CR_Syloti_Nagri"),
    SYLO("sylo", "CR_Syloti_Nagri"),
    OLDPERSIAN("oldpersian", "CR_Old_Persian"),
    XPEO("xpeo", "CR_Old_Persian"),
    KHAROSHTHI("kharoshthi", "CR_Kharoshthi"),
    KHAR("khar", "CR_Kharoshthi"),
    BALINESE("balinese", "CR_Balinese"),
    BALI("bali", "CR_Balinese"),
    CUNEIFORM("cuneiform", "CR_Cuneiform"),
    XSUX("xsux", "CR_Cuneiform"),
    PHOENICIAN("phoenician", "CR_Phoenician"),
    PHNX("phnx", "CR_Phoenician"),
    PHAGSPA("phagspa", "CR_Phags_Pa"),
    PHAG("phag", "CR_Phags_Pa"),
    NKO("nko", "CR_Nko"),
    NKOO("nkoo", "CR_Nko"),
    SUNDANESE("sundanese", "CR_Sundanese"),
    SUND("sund", "CR_Sundanese"),
    LEPCHA("lepcha", "CR_Lepcha"),
    LEPC("lepc", "CR_Lepcha"),
    INOLCHIKI("inolchiki", "CR_Ol_Chiki"),
    VAI("vai", "CR_Vai"),
    VAII("vaii", "CR_Vai"),
    SAURASHTRA("saurashtra", "CR_Saurashtra"),
    SAUR("saur", "CR_Saurashtra"),
    KAYAHLI("kayahli", "CR_Kayah_Li"),
    KALI("kali", "CR_Kayah_Li"),
    REJANG("rejang", "CR_Rejang"),
    RJNG("rjng", "CR_Rejang"),
    LYCIAN("lycian", "CR_Lycian"),
    LYCI("lyci", "CR_Lycian"),
    CARIAN("carian", "CR_Carian"),
    CARI("cari", "CR_Carian"),
    LYDIAN("lydian", "CR_Lydian"),
    LYDI("lydi", "CR_Lydian"),
    CHAM("cham", "CR_Cham"),
    TAITHAM("taitham", "CR_Tai_Tham"),
    LANA("lana", "CR_Tai_Tham"),
    TAIVIET("taiviet", "CR_Tai_Viet"),
    TAVT("tavt", "CR_Tai_Viet"),
    AVESTAN("avestan", "CR_Avestan"),
    AVST("avst", "CR_Avestan"),
    EGYPTIANHIEROGLYPHS("egyptianhieroglyphs", "CR_Egyptian_Hieroglyphs"),
    EGYP("egyp", "CR_Egyptian_Hieroglyphs"),
    SAMARITAN("samaritan", "CR_Samaritan"),
    SAMR("samr", "CR_Samaritan"),
    LISU("lisu", "CR_Lisu"),
    BAMUM("bamum", "CR_Bamum"),
    BAMU("bamu", "CR_Bamum"),
    JAVANESE("javanese", "CR_Javanese"),
    JAVA("java", "CR_Javanese"),
    MEETEIMAYEK("meeteimayek", "CR_Meetei_Mayek"),
    MTEI("mtei", "CR_Meetei_Mayek"),
    IMPERIALARAMAIC("imperialaramaic", "CR_Imperial_Aramaic"),
    ARMI("armi", "CR_Imperial_Aramaic"),
    INOLDSOUTHARABIAN("inoldsoutharabian", "CR_Old_South_Arabian"),
    INSCRIPTIONALPARTHIAN("inscriptionalparthian", "CR_Inscriptional_Parthian"),
    PRTI("prti", "CR_Inscriptional_Parthian"),
    INSCRIPTIONALPAHLAVI("inscriptionalpahlavi", "CR_Inscriptional_Pahlavi"),
    PHLI("phli", "CR_Inscriptional_Pahlavi"),
    OLDTURKIC("oldturkic", "CR_Old_Turkic"),
    ORKH("orkh", "CR_Old_Turkic"),
    KAITHI("kaithi", "CR_Kaithi"),
    KTHI("kthi", "CR_Kaithi"),
    BATAK("batak", "CR_Batak"),
    BATK("batk", "CR_Batak"),
    BRAHMI("brahmi", "CR_Brahmi"),
    BRAH("brah", "CR_Brahmi"),
    MANDAIC("mandaic", "CR_Mandaic"),
    MAND("mand", "CR_Mandaic"),
    CHAKMA("chakma", "CR_Chakma"),
    CAKM("cakm", "CR_Chakma"),
    MEROITICCURSIVE("meroiticcursive", "CR_Meroitic_Cursive"),
    MERC("merc", "CR_Meroitic_Cursive"),
    INMEROITICHIEROGLYPHS("inmeroitichieroglyphs", "CR_Meroitic_Hieroglyphs"),
    MIAO("miao", "CR_Miao"),
    PLRD("plrd", "CR_Miao"),
    INSHARADA("insharada", "CR_Sharada"),
    SORASOMPENG("sorasompeng", "CR_Sora_Sompeng"),
    SORA("sora", "CR_Sora_Sompeng"),
    TAKRI("takri", "CR_Takri"),
    TAKR("takr", "CR_Takri"),
    CAUCASIANALBANIAN("caucasianalbanian", "CR_Caucasian_Albanian"),
    AGHB("aghb", "CR_Caucasian_Albanian"),
    BASSAVAH("bassavah", "CR_Bassa_Vah"),
    BASS("bass", "CR_Bassa_Vah"),
    DUPLOYAN("duployan", "CR_Duployan"),
    DUPL("dupl", "CR_Duployan"),
    ELBASAN("elbasan", "CR_Elbasan"),
    ELBA("elba", "CR_Elbasan"),
    GRANTHA("grantha", "CR_Grantha"),
    GRAN("gran", "CR_Grantha"),
    PAHAWHHMONG("pahawhhmong", "CR_Pahawh_Hmong"),
    HMNG("hmng", "CR_Pahawh_Hmong"),
    KHOJKI("khojki", "CR_Khojki"),
    KHOJ("khoj", "CR_Khojki"),
    LINEARA("lineara", "CR_Linear_A"),
    LINA("lina", "CR_Linear_A"),
    MAHAJANI("mahajani", "CR_Mahajani"),
    MAHJ("mahj", "CR_Mahajani"),
    MANICHAEAN("manichaean", "CR_Manichaean"),
    MANI("mani", "CR_Manichaean"),
    MENDEKIKAKUI("mendekikakui", "CR_Mende_Kikakui"),
    MEND("mend", "CR_Mende_Kikakui"),
    MODI("modi", "CR_Modi"),
    MRO("mro", "CR_Mro"),
    MROO("mroo", "CR_Mro"),
    INOLDNORTHARABIAN("inoldnortharabian", "CR_Old_North_Arabian"),
    NABATAEAN("nabataean", "CR_Nabataean"),
    NBAT("nbat", "CR_Nabataean"),
    INPALMYRENE("inpalmyrene", "CR_Palmyrene"),
    PAUCINHAU("paucinhau", "CR_Pau_Cin_Hau"),
    PAUC("pauc", "CR_Pau_Cin_Hau"),
    OLDPERMIC("oldpermic", "CR_Old_Permic"),
    PERM("perm", "CR_Old_Permic"),
    PSALTERPAHLAVI("psalterpahlavi", "CR_Psalter_Pahlavi"),
    PHLP("phlp", "CR_Psalter_Pahlavi"),
    SIDDHAM("siddham", "CR_Siddham"),
    SIDD("sidd", "CR_Siddham"),
    KHUDAWADI("khudawadi", "CR_Khudawadi"),
    SIND("sind", "CR_Khudawadi"),
    TIRHUTA("tirhuta", "CR_Tirhuta"),
    TIRH("tirh", "CR_Tirhuta"),
    WARANGCITI("warangciti", "CR_Warang_Citi"),
    WARA("wara", "CR_Warang_Citi"),
    AHOM("ahom", "CR_Ahom"),
    ANATOLIANHIEROGLYPHS("anatolianhieroglyphs", "CR_Anatolian_Hieroglyphs"),
    HLUW("hluw", "CR_Anatolian_Hieroglyphs"),
    HATRAN("hatran", "CR_Hatran"),
    HATR("hatr", "CR_Hatran"),
    MULTANI("multani", "CR_Multani"),
    MULT("mult", "CR_Multani"),
    OLDHUNGARIAN("oldhungarian", "CR_Old_Hungarian"),
    HUNG("hung", "CR_Old_Hungarian"),
    SIGNWRITING("signwriting", "CR_SignWriting"),
    SGNW("sgnw", "CR_SignWriting"),
    ADLAM("adlam", "CR_Adlam"),
    ADLM("adlm", "CR_Adlam"),
    BHAIKSUKI("bhaiksuki", "CR_Bhaiksuki"),
    BHKS("bhks", "CR_Bhaiksuki"),
    MARCHEN("marchen", "CR_Marchen"),
    MARC("marc", "CR_Marchen"),
    NEWA("newa", "CR_Newa"),
    OSAGE("osage", "CR_Osage"),
    OSGE("osge", "CR_Osage"),
    TANGUT("tangut", "CR_Tangut"),
    TANG("tang", "CR_Tangut"),
    MASARAMGONDI("masaramgondi", "CR_Masaram_Gondi"),
    GONM("gonm", "CR_Masaram_Gondi"),
    NUSHU("nushu", "CR_Nushu"),
    NSHU("nshu", "CR_Nushu"),
    SOYOMBO("soyombo", "CR_Soyombo"),
    SOYO("soyo", "CR_Soyombo"),
    ZANABAZARSQUARE("zanabazarsquare", "CR_Zanabazar_Square"),
    ZANB("zanb", "CR_Zanabazar_Square"),
    DOGRA("dogra", "CR_Dogra"),
    DOGR("dogr", "CR_Dogra"),
    GUNJALAGONDI("gunjalagondi", "CR_Gunjala_Gondi"),
    GONG("gong", "CR_Gunjala_Gondi"),
    MAKASAR("makasar", "CR_Makasar"),
    MAKA("maka", "CR_Makasar"),
    MEDEFAIDRIN("medefaidrin", "CR_Medefaidrin"),
    MEDF("medf", "CR_Medefaidrin"),
    HANIFIROHINGYA("hanifirohingya", "CR_Hanifi_Rohingya"),
    ROHG("rohg", "CR_Hanifi_Rohingya"),
    SOGDIAN("sogdian", "CR_Sogdian"),
    SOGD("sogd", "CR_Sogdian"),
    OLDSOGDIAN("oldsogdian", "CR_Old_Sogdian"),
    SOGO("sogo", "CR_Old_Sogdian"),
    ELYMAIC("elymaic", "CR_Elymaic"),
    ELYM("elym", "CR_Elymaic"),
    NANDINAGARI("nandinagari", "CR_Nandinagari"),
    NAND("nand", "CR_Nandinagari"),
    NYIAKENGPUACHUEHMONG("nyiakengpuachuehmong", "CR_Nyiakeng_Puachue_Hmong"),
    HMNP("hmnp", "CR_Nyiakeng_Puachue_Hmong"),
    WANCHO("wancho", "CR_Wancho"),
    WCHO("wcho", "CR_Wancho"),
    CHORASMIAN("chorasmian", "CR_Chorasmian"),
    CHRS("chrs", "CR_Chorasmian"),
    DIVESAKURU("divesakuru", "CR_Dives_Akuru"),
    DIAK("diak", "CR_Dives_Akuru"),
    KHITANSMALLSCRIPT("khitansmallscript", "CR_Khitan_Small_Script"),
    KITS("kits", "CR_Khitan_Small_Script"),
    YEZIDI("yezidi", "CR_Yezidi"),
    YEZI("yezi", "CR_Yezidi"),
    WHITESPACE("whitespace", "CR_Space"),
    WSPACE("wspace", "CR_Space"),
    BIDICONTROL("bidicontrol", "CR_Bidi_Control"),
    BIDIC("bidic", "CR_Bidi_Control"),
    JOINCONTROL("joincontrol", "CR_Join_Control"),
    JOINC("joinc", "CR_Join_Control"),
    DASH("dash", "CR_Dash"),
    HYPHEN("hyphen", "CR_Hyphen"),
    QUOTATIONMARK("quotationmark", "CR_Quotation_Mark"),
    QMARK("qmark", "CR_Quotation_Mark"),
    TERMINALPUNCTUATION("terminalpunctuation", "CR_Terminal_Punctuation"),
    TERM("term", "CR_Terminal_Punctuation"),
    OTHERMATH("othermath", "CR_Other_Math"),
    OMATH("omath", "CR_Other_Math"),
    HEXDIGIT("hexdigit", "CR_Hex_Digit"),
    HEX("hex", "CR_Hex_Digit"),
    ASCIIHEXDIGIT("asciihexdigit", "CR_XDigit"),
    AHEX("ahex", "CR_XDigit"),
    OTHERALPHABETIC("otheralphabetic", "CR_Other_Alphabetic"),
    OALPHA("oalpha", "CR_Other_Alphabetic"),
    IDEOGRAPHIC("ideographic", "CR_Ideographic"),
    IDEO("ideo", "CR_Ideographic"),
    DIACRITIC("diacritic", "CR_Diacritic"),
    DIA("dia", "CR_Diacritic"),
    EXTENDER("extender", "CR_Extender"),
    EXT("ext", "CR_Extender"),
    OTHERLOWERCASE("otherlowercase", "CR_Other_Lowercase"),
    OLOWER("olower", "CR_Other_Lowercase"),
    OTHERUPPERCASE("otheruppercase", "CR_Other_Uppercase"),
    OUPPER("oupper", "CR_Other_Uppercase"),
    NONCHARACTERCODEPOINT("noncharactercodepoint", "CR_Noncharacter_Code_Point"),
    NCHAR("nchar", "CR_Noncharacter_Code_Point"),
    OTHERGRAPHEMEEXTEND("othergraphemeextend", "CR_Other_Grapheme_Extend"),
    OGREXT("ogrext", "CR_Other_Grapheme_Extend"),
    IDSBINARYOPERATOR("idsbinaryoperator", "CR_IDS_Binary_Operator"),
    IDSB("idsb", "CR_IDS_Binary_Operator"),
    IDSTRINARYOPERATOR("idstrinaryoperator", "CR_IDS_Trinary_Operator"),
    IDST("idst", "CR_IDS_Trinary_Operator"),
    RADICAL("radical", "CR_Radical"),
    UNIFIEDIDEOGRAPH("unifiedideograph", "CR_Unified_Ideograph"),
    UIDEO("uideo", "CR_Unified_Ideograph"),
    OTHERDEFAULTIGNORABLECODEPOINT("otherdefaultignorablecodepoint", "CR_Other_Default_Ignorable_Code_Point"),
    ODI("odi", "CR_Other_Default_Ignorable_Code_Point"),
    DEPRECATED("deprecated", "CR_Deprecated"),
    DEP("dep", "CR_Deprecated"),
    SOFTDOTTED("softdotted", "CR_Soft_Dotted"),
    SD("sd", "CR_Soft_Dotted"),
    LOGICALORDEREXCEPTION("logicalorderexception", "CR_Logical_Order_Exception"),
    LOE("loe", "CR_Logical_Order_Exception"),
    OTHERIDSTART("otheridstart", "CR_Other_ID_Start"),
    OIDS("oids", "CR_Other_ID_Start"),
    OTHERIDCONTINUE("otheridcontinue", "CR_Other_ID_Continue"),
    OIDC("oidc", "CR_Other_ID_Continue"),
    SENTENCETERMINAL("sentenceterminal", "CR_Sentence_Terminal"),
    STERM("sterm", "CR_Sentence_Terminal"),
    VARIATIONSELECTOR("variationselector", "CR_Variation_Selector"),
    VS("vs", "CR_Variation_Selector"),
    PATTERNWHITESPACE("patternwhitespace", "CR_Pattern_White_Space"),
    PATWS("patws", "CR_Pattern_White_Space"),
    PATTERNSYNTAX("patternsyntax", "CR_Pattern_Syntax"),
    PATSYN("patsyn", "CR_Pattern_Syntax"),
    PREPENDEDCONCATENATIONMARK("prependedconcatenationmark", "CR_Prepended_Concatenation_Mark"),
    PCM("pcm", "CR_Prepended_Concatenation_Mark"),
    GRAPHEMECLUSTERBREAK_REGIONALINDICATOR("graphemeclusterbreak=regionalindicator", "CR_Regional_Indicator"),
    EMOJI("emoji", "CR_Emoji"),
    EMOJIPRESENTATION("emojipresentation", "CR_Emoji_Presentation"),
    EPRES("epres", "CR_Emoji_Presentation"),
    EMOJIMODIFIER("emojimodifier", "CR_Emoji_Modifier"),
    EMOD("emod", "CR_Emoji_Modifier"),
    EMOJIMODIFIERBASE("emojimodifierbase", "CR_Emoji_Modifier_Base"),
    EBASE("ebase", "CR_Emoji_Modifier_Base"),
    EMOJICOMPONENT("emojicomponent", "CR_Emoji_Component"),
    ECOMP("ecomp", "CR_Emoji_Component"),
    EXTENDEDPICTOGRAPHIC("extendedpictographic", "CR_Extended_Pictographic"),
    EXTPICT("extpict", "CR_Extended_Pictographic"),
    UNKNOWN("unknown", "CR_Unknown"),
    ZZZZ("zzzz", "CR_Unknown"),
    AGE_1_1("age=1.1", "CR_Age_1_1"),
    AGE_2_0("age=2.0", "CR_Age_2_0"),
    AGE_2_1("age=2.1", "CR_Age_2_1"),
    AGE_3_0("age=3.0", "CR_Age_3_0"),
    AGE_3_1("age=3.1", "CR_Age_3_1"),
    AGE_3_2("age=3.2", "CR_Age_3_2"),
    AGE_4_0("age=4.0", "CR_Age_4_0"),
    AGE_4_1("age=4.1", "CR_Age_4_1"),
    AGE_5_0("age=5.0", "CR_Age_5_0"),
    AGE_5_1("age=5.1", "CR_Age_5_1"),
    AGE_5_2("age=5.2", "CR_Age_5_2"),
    AGE_6_0("age=6.0", "CR_Age_6_0"),
    AGE_6_1("age=6.1", "CR_Age_6_1"),
    AGE_6_2("age=6.2", "CR_Age_6_2"),
    AGE_6_3("age=6.3", "CR_Age_6_3"),
    AGE_7_0("age=7.0", "CR_Age_7_0"),
    AGE_8_0("age=8.0", "CR_Age_8_0"),
    AGE_9_0("age=9.0", "CR_Age_9_0"),
    AGE_10_0("age=10.0", "CR_Age_10_0"),
    AGE_11_0("age=11.0", "CR_Age_11_0"),
    AGE_12_0("age=12.0", "CR_Age_12_0"),
    AGE_12_1("age=12.1", "CR_Age_12_1"),
    AGE_13_0("age=13.0", "CR_Age_13_0"),
    GRAPHEMECLUSTERBREAK_PREPEND("graphemeclusterbreak=prepend", "CR_Grapheme_Cluster_Break_Prepend"),
    GRAPHEMECLUSTERBREAK_CR("graphemeclusterbreak=cr", "CR_Grapheme_Cluster_Break_CR"),
    GRAPHEMECLUSTERBREAK_LF("graphemeclusterbreak=lf", "CR_NEWLINE"),
    GRAPHEMECLUSTERBREAK_CONTROL("graphemeclusterbreak=control", "CR_Grapheme_Cluster_Break_Control"),
    GRAPHEMECLUSTERBREAK_EXTEND("graphemeclusterbreak=extend", "CR_Grapheme_Cluster_Break_Extend"),
    REGIONALINDICATOR("regionalindicator", "CR_Regional_Indicator"),
    RI("ri", "CR_Regional_Indicator"),
    GRAPHEMECLUSTERBREAK_SPACINGMARK("graphemeclusterbreak=spacingmark", "CR_Grapheme_Cluster_Break_SpacingMark"),
    GRAPHEMECLUSTERBREAK_L("graphemeclusterbreak=l", "CR_Grapheme_Cluster_Break_L"),
    GRAPHEMECLUSTERBREAK_V("graphemeclusterbreak=v", "CR_Grapheme_Cluster_Break_V"),
    GRAPHEMECLUSTERBREAK_T("graphemeclusterbreak=t", "CR_Grapheme_Cluster_Break_T"),
    GRAPHEMECLUSTERBREAK_LV("graphemeclusterbreak=lv", "CR_Grapheme_Cluster_Break_LV"),
    GRAPHEMECLUSTERBREAK_LVT("graphemeclusterbreak=lvt", "CR_Grapheme_Cluster_Break_LVT"),
    GRAPHEMECLUSTERBREAK_ZWJ("graphemeclusterbreak=zwj", "CR_Grapheme_Cluster_Break_ZWJ"),
    INBASICLATIN("inbasiclatin", "CR_ASCII"),
    INLATIN1SUPPLEMENT("inlatin1supplement", "CR_In_Latin_1_Supplement"),
    INLATINEXTENDEDA("inlatinextendeda", "CR_In_Latin_Extended_A"),
    INLATINEXTENDEDB("inlatinextendedb", "CR_In_Latin_Extended_B"),
    INIPAEXTENSIONS("inipaextensions", "CR_In_IPA_Extensions"),
    INSPACINGMODIFIERLETTERS("inspacingmodifierletters", "CR_In_Spacing_Modifier_Letters"),
    INCOMBININGDIACRITICALMARKS("incombiningdiacriticalmarks", "CR_In_Combining_Diacritical_Marks"),
    INGREEKANDCOPTIC("ingreekandcoptic", "CR_In_Greek_and_Coptic"),
    INCYRILLIC("incyrillic", "CR_In_Cyrillic"),
    INCYRILLICSUPPLEMENT("incyrillicsupplement", "CR_In_Cyrillic_Supplement"),
    INARMENIAN("inarmenian", "CR_In_Armenian"),
    INHEBREW("inhebrew", "CR_In_Hebrew"),
    INARABIC("inarabic", "CR_In_Arabic"),
    INSYRIAC("insyriac", "CR_In_Syriac"),
    INARABICSUPPLEMENT("inarabicsupplement", "CR_In_Arabic_Supplement"),
    INTHAANA("inthaana", "CR_In_Thaana"),
    INNKO("innko", "CR_In_NKo"),
    INSAMARITAN("insamaritan", "CR_In_Samaritan"),
    INMANDAIC("inmandaic", "CR_In_Mandaic"),
    INSYRIACSUPPLEMENT("insyriacsupplement", "CR_In_Syriac_Supplement"),
    INARABICEXTENDEDA("inarabicextendeda", "CR_In_Arabic_Extended_A"),
    INDEVANAGARI("indevanagari", "CR_In_Devanagari"),
    INBENGALI("inbengali", "CR_In_Bengali"),
    INGURMUKHI("ingurmukhi", "CR_In_Gurmukhi"),
    INGUJARATI("ingujarati", "CR_In_Gujarati"),
    INORIYA("inoriya", "CR_In_Oriya"),
    INTAMIL("intamil", "CR_In_Tamil"),
    INTELUGU("intelugu", "CR_In_Telugu"),
    INKANNADA("inkannada", "CR_In_Kannada"),
    INMALAYALAM("inmalayalam", "CR_In_Malayalam"),
    INSINHALA("insinhala", "CR_In_Sinhala"),
    INTHAI("inthai", "CR_In_Thai"),
    INLAO("inlao", "CR_In_Lao"),
    INTIBETAN("intibetan", "CR_In_Tibetan"),
    INMYANMAR("inmyanmar", "CR_In_Myanmar"),
    INGEORGIAN("ingeorgian", "CR_In_Georgian"),
    INHANGULJAMO("inhanguljamo", "CR_In_Hangul_Jamo"),
    INETHIOPIC("inethiopic", "CR_In_Ethiopic"),
    INETHIOPICSUPPLEMENT("inethiopicsupplement", "CR_In_Ethiopic_Supplement"),
    INCHEROKEE("incherokee", "CR_In_Cherokee"),
    INUNIFIEDCANADIANABORIGINALSYLLABICS("inunifiedcanadianaboriginalsyllabics", "CR_In_Unified_Canadian_Aboriginal_Syllabics"),
    INOGHAM("inogham", "CR_In_Ogham"),
    INRUNIC("inrunic", "CR_In_Runic"),
    INTAGALOG("intagalog", "CR_In_Tagalog"),
    INHANUNOO("inhanunoo", "CR_In_Hanunoo"),
    INBUHID("inbuhid", "CR_In_Buhid"),
    INTAGBANWA("intagbanwa", "CR_In_Tagbanwa"),
    INKHMER("inkhmer", "CR_In_Khmer"),
    INMONGOLIAN("inmongolian", "CR_In_Mongolian"),
    INUNIFIEDCANADIANABORIGINALSYLLABICSEXTENDED("inunifiedcanadianaboriginalsyllabicsextended", "CR_In_Unified_Canadian_Aboriginal_Syllabics_Extended"),
    INLIMBU("inlimbu", "CR_In_Limbu"),
    INTAILE("intaile", "CR_In_Tai_Le"),
    INNEWTAILUE("innewtailue", "CR_In_New_Tai_Lue"),
    INKHMERSYMBOLS("inkhmersymbols", "CR_In_Khmer_Symbols"),
    INBUGINESE("inbuginese", "CR_In_Buginese"),
    INTAITHAM("intaitham", "CR_In_Tai_Tham"),
    INCOMBININGDIACRITICALMARKSEXTENDED("incombiningdiacriticalmarksextended", "CR_In_Combining_Diacritical_Marks_Extended"),
    INBALINESE("inbalinese", "CR_In_Balinese"),
    INSUNDANESE("insundanese", "CR_In_Sundanese"),
    INBATAK("inbatak", "CR_In_Batak"),
    INLEPCHA("inlepcha", "CR_In_Lepcha"),
    OLCHIKI("olchiki", "CR_Ol_Chiki"),
    OLCK("olck", "CR_Ol_Chiki"),
    INCYRILLICEXTENDEDC("incyrillicextendedc", "CR_In_Cyrillic_Extended_C"),
    INGEORGIANEXTENDED("ingeorgianextended", "CR_In_Georgian_Extended"),
    INSUNDANESESUPPLEMENT("insundanesesupplement", "CR_In_Sundanese_Supplement"),
    INVEDICEXTENSIONS("invedicextensions", "CR_In_Vedic_Extensions"),
    INPHONETICEXTENSIONS("inphoneticextensions", "CR_In_Phonetic_Extensions"),
    INPHONETICEXTENSIONSSUPPLEMENT("inphoneticextensionssupplement", "CR_In_Phonetic_Extensions_Supplement"),
    INCOMBININGDIACRITICALMARKSSUPPLEMENT("incombiningdiacriticalmarkssupplement", "CR_In_Combining_Diacritical_Marks_Supplement"),
    INLATINEXTENDEDADDITIONAL("inlatinextendedadditional", "CR_In_Latin_Extended_Additional"),
    INGREEKEXTENDED("ingreekextended", "CR_In_Greek_Extended"),
    INGENERALPUNCTUATION("ingeneralpunctuation", "CR_In_General_Punctuation"),
    INSUPERSCRIPTSANDSUBSCRIPTS("insuperscriptsandsubscripts", "CR_In_Superscripts_and_Subscripts"),
    INCURRENCYSYMBOLS("incurrencysymbols", "CR_In_Currency_Symbols"),
    INCOMBININGDIACRITICALMARKSFORSYMBOLS("incombiningdiacriticalmarksforsymbols", "CR_In_Combining_Diacritical_Marks_for_Symbols"),
    INLETTERLIKESYMBOLS("inletterlikesymbols", "CR_In_Letterlike_Symbols"),
    INNUMBERFORMS("innumberforms", "CR_In_Number_Forms"),
    INARROWS("inarrows", "CR_In_Arrows"),
    INMATHEMATICALOPERATORS("inmathematicaloperators", "CR_In_Mathematical_Operators"),
    INMISCELLANEOUSTECHNICAL("inmiscellaneoustechnical", "CR_In_Miscellaneous_Technical"),
    INCONTROLPICTURES("incontrolpictures", "CR_In_Control_Pictures"),
    INOPTICALCHARACTERRECOGNITION("inopticalcharacterrecognition", "CR_In_Optical_Character_Recognition"),
    INENCLOSEDALPHANUMERICS("inenclosedalphanumerics", "CR_In_Enclosed_Alphanumerics"),
    INBOXDRAWING("inboxdrawing", "CR_In_Box_Drawing"),
    INBLOCKELEMENTS("inblockelements", "CR_In_Block_Elements"),
    INGEOMETRICSHAPES("ingeometricshapes", "CR_In_Geometric_Shapes"),
    INMISCELLANEOUSSYMBOLS("inmiscellaneoussymbols", "CR_In_Miscellaneous_Symbols"),
    INDINGBATS("indingbats", "CR_In_Dingbats"),
    INMISCELLANEOUSMATHEMATICALSYMBOLSA("inmiscellaneousmathematicalsymbolsa", "CR_In_Miscellaneous_Mathematical_Symbols_A"),
    INSUPPLEMENTALARROWSA("insupplementalarrowsa", "CR_In_Supplemental_Arrows_A"),
    BRAILLE("braille", "CR_Braille"),
    BRAI("brai", "CR_Braille"),
    INSUPPLEMENTALARROWSB("insupplementalarrowsb", "CR_In_Supplemental_Arrows_B"),
    INMISCELLANEOUSMATHEMATICALSYMBOLSB("inmiscellaneousmathematicalsymbolsb", "CR_In_Miscellaneous_Mathematical_Symbols_B"),
    INSUPPLEMENTALMATHEMATICALOPERATORS("insupplementalmathematicaloperators", "CR_In_Supplemental_Mathematical_Operators"),
    INMISCELLANEOUSSYMBOLSANDARROWS("inmiscellaneoussymbolsandarrows", "CR_In_Miscellaneous_Symbols_and_Arrows"),
    INGLAGOLITIC("inglagolitic", "CR_In_Glagolitic"),
    INLATINEXTENDEDC("inlatinextendedc", "CR_In_Latin_Extended_C"),
    INCOPTIC("incoptic", "CR_In_Coptic"),
    INGEORGIANSUPPLEMENT("ingeorgiansupplement", "CR_In_Georgian_Supplement"),
    INTIFINAGH("intifinagh", "CR_In_Tifinagh"),
    INETHIOPICEXTENDED("inethiopicextended", "CR_In_Ethiopic_Extended"),
    INCYRILLICEXTENDEDA("incyrillicextendeda", "CR_In_Cyrillic_Extended_A"),
    INSUPPLEMENTALPUNCTUATION("insupplementalpunctuation", "CR_In_Supplemental_Punctuation"),
    INCJKRADICALSSUPPLEMENT("incjkradicalssupplement", "CR_In_CJK_Radicals_Supplement"),
    INKANGXIRADICALS("inkangxiradicals", "CR_In_Kangxi_Radicals"),
    INIDEOGRAPHICDESCRIPTIONCHARACTERS("inideographicdescriptioncharacters", "CR_In_Ideographic_Description_Characters"),
    INCJKSYMBOLSANDPUNCTUATION("incjksymbolsandpunctuation", "CR_In_CJK_Symbols_and_Punctuation"),
    INHIRAGANA("inhiragana", "CR_In_Hiragana"),
    INKATAKANA("inkatakana", "CR_In_Katakana"),
    INBOPOMOFO("inbopomofo", "CR_In_Bopomofo"),
    INHANGULCOMPATIBILITYJAMO("inhangulcompatibilityjamo", "CR_In_Hangul_Compatibility_Jamo"),
    INKANBUN("inkanbun", "CR_In_Kanbun"),
    INBOPOMOFOEXTENDED("inbopomofoextended", "CR_In_Bopomofo_Extended"),
    INCJKSTROKES("incjkstrokes", "CR_In_CJK_Strokes"),
    INKATAKANAPHONETICEXTENSIONS("inkatakanaphoneticextensions", "CR_In_Katakana_Phonetic_Extensions"),
    INENCLOSEDCJKLETTERSANDMONTHS("inenclosedcjklettersandmonths", "CR_In_Enclosed_CJK_Letters_and_Months"),
    INCJKCOMPATIBILITY("incjkcompatibility", "CR_In_CJK_Compatibility"),
    INCJKUNIFIEDIDEOGRAPHSEXTENSIONA("incjkunifiedideographsextensiona", "CR_In_CJK_Unified_Ideographs_Extension_A"),
    INYIJINGHEXAGRAMSYMBOLS("inyijinghexagramsymbols", "CR_In_Yijing_Hexagram_Symbols"),
    INCJKUNIFIEDIDEOGRAPHS("incjkunifiedideographs", "CR_In_CJK_Unified_Ideographs"),
    INYISYLLABLES("inyisyllables", "CR_In_Yi_Syllables"),
    INYIRADICALS("inyiradicals", "CR_In_Yi_Radicals"),
    INLISU("inlisu", "CR_In_Lisu"),
    INVAI("invai", "CR_In_Vai"),
    INCYRILLICEXTENDEDB("incyrillicextendedb", "CR_In_Cyrillic_Extended_B"),
    INBAMUM("inbamum", "CR_In_Bamum"),
    INMODIFIERTONELETTERS("inmodifiertoneletters", "CR_In_Modifier_Tone_Letters"),
    INLATINEXTENDEDD("inlatinextendedd", "CR_In_Latin_Extended_D"),
    INSYLOTINAGRI("insylotinagri", "CR_In_Syloti_Nagri"),
    INCOMMONINDICNUMBERFORMS("incommonindicnumberforms", "CR_In_Common_Indic_Number_Forms"),
    INPHAGSPA("inphagspa", "CR_In_Phags_pa"),
    INSAURASHTRA("insaurashtra", "CR_In_Saurashtra"),
    INDEVANAGARIEXTENDED("indevanagariextended", "CR_In_Devanagari_Extended"),
    INKAYAHLI("inkayahli", "CR_In_Kayah_Li"),
    INREJANG("inrejang", "CR_In_Rejang"),
    INHANGULJAMOEXTENDEDA("inhanguljamoextendeda", "CR_In_Hangul_Jamo_Extended_A"),
    INJAVANESE("injavanese", "CR_In_Javanese"),
    INMYANMAREXTENDEDB("inmyanmarextendedb", "CR_In_Myanmar_Extended_B"),
    INCHAM("incham", "CR_In_Cham"),
    INMYANMAREXTENDEDA("inmyanmarextendeda", "CR_In_Myanmar_Extended_A"),
    INTAIVIET("intaiviet", "CR_In_Tai_Viet"),
    INMEETEIMAYEKEXTENSIONS("inmeeteimayekextensions", "CR_In_Meetei_Mayek_Extensions"),
    INETHIOPICEXTENDEDA("inethiopicextendeda", "CR_In_Ethiopic_Extended_A"),
    INLATINEXTENDEDE("inlatinextendede", "CR_In_Latin_Extended_E"),
    INCHEROKEESUPPLEMENT("incherokeesupplement", "CR_In_Cherokee_Supplement"),
    INMEETEIMAYEK("inmeeteimayek", "CR_In_Meetei_Mayek"),
    INHANGULSYLLABLES("inhangulsyllables", "CR_In_Hangul_Syllables"),
    INHANGULJAMOEXTENDEDB("inhanguljamoextendedb", "CR_In_Hangul_Jamo_Extended_B"),
    INHIGHSURROGATES("inhighsurrogates", "CR_In_High_Surrogates"),
    INHIGHPRIVATEUSESURROGATES("inhighprivateusesurrogates", "CR_In_High_Private_Use_Surrogates"),
    INLOWSURROGATES("inlowsurrogates", "CR_In_Low_Surrogates"),
    INPRIVATEUSEAREA("inprivateusearea", "CR_In_Private_Use_Area"),
    INCJKCOMPATIBILITYIDEOGRAPHS("incjkcompatibilityideographs", "CR_In_CJK_Compatibility_Ideographs"),
    INALPHABETICPRESENTATIONFORMS("inalphabeticpresentationforms", "CR_In_Alphabetic_Presentation_Forms"),
    INARABICPRESENTATIONFORMSA("inarabicpresentationformsa", "CR_In_Arabic_Presentation_Forms_A"),
    INVARIATIONSELECTORS("invariationselectors", "CR_In_Variation_Selectors"),
    INVERTICALFORMS("inverticalforms", "CR_In_Vertical_Forms"),
    INCOMBININGHALFMARKS("incombininghalfmarks", "CR_In_Combining_Half_Marks"),
    INCJKCOMPATIBILITYFORMS("incjkcompatibilityforms", "CR_In_CJK_Compatibility_Forms"),
    INSMALLFORMVARIANTS("insmallformvariants", "CR_In_Small_Form_Variants"),
    INARABICPRESENTATIONFORMSB("inarabicpresentationformsb", "CR_In_Arabic_Presentation_Forms_B"),
    INHALFWIDTHANDFULLWIDTHFORMS("inhalfwidthandfullwidthforms", "CR_In_Halfwidth_and_Fullwidth_Forms"),
    INSPECIALS("inspecials", "CR_In_Specials"),
    INLINEARBSYLLABARY("inlinearbsyllabary", "CR_In_Linear_B_Syllabary"),
    INLINEARBIDEOGRAMS("inlinearbideograms", "CR_In_Linear_B_Ideograms"),
    INAEGEANNUMBERS("inaegeannumbers", "CR_In_Aegean_Numbers"),
    INANCIENTGREEKNUMBERS("inancientgreeknumbers", "CR_In_Ancient_Greek_Numbers"),
    INANCIENTSYMBOLS("inancientsymbols", "CR_In_Ancient_Symbols"),
    INPHAISTOSDISC("inphaistosdisc", "CR_In_Phaistos_Disc"),
    INLYCIAN("inlycian", "CR_In_Lycian"),
    INCARIAN("incarian", "CR_In_Carian"),
    INCOPTICEPACTNUMBERS("incopticepactnumbers", "CR_In_Coptic_Epact_Numbers"),
    INOLDITALIC("inolditalic", "CR_In_Old_Italic"),
    INGOTHIC("ingothic", "CR_In_Gothic"),
    INOLDPERMIC("inoldpermic", "CR_In_Old_Permic"),
    INUGARITIC("inugaritic", "CR_In_Ugaritic"),
    INOLDPERSIAN("inoldpersian", "CR_In_Old_Persian"),
    DESERET("deseret", "CR_Deseret"),
    DSRT("dsrt", "CR_Deseret"),
    SHAVIAN("shavian", "CR_Shavian"),
    SHAW("shaw", "CR_Shavian"),
    INOSMANYA("inosmanya", "CR_In_Osmanya"),
    INOSAGE("inosage", "CR_In_Osage"),
    INELBASAN("inelbasan", "CR_In_Elbasan"),
    INCAUCASIANALBANIAN("incaucasianalbanian", "CR_In_Caucasian_Albanian"),
    INLINEARA("inlineara", "CR_In_Linear_A"),
    INCYPRIOTSYLLABARY("incypriotsyllabary", "CR_In_Cypriot_Syllabary"),
    INIMPERIALARAMAIC("inimperialaramaic", "CR_In_Imperial_Aramaic"),
    PALMYRENE("palmyrene", "CR_Palmyrene"),
    PALM("palm", "CR_Palmyrene"),
    INNABATAEAN("innabataean", "CR_In_Nabataean"),
    INHATRAN("inhatran", "CR_In_Hatran"),
    INPHOENICIAN("inphoenician", "CR_In_Phoenician"),
    INLYDIAN("inlydian", "CR_In_Lydian"),
    MEROITICHIEROGLYPHS("meroitichieroglyphs", "CR_Meroitic_Hieroglyphs"),
    MERO("mero", "CR_Meroitic_Hieroglyphs"),
    INMEROITICCURSIVE("inmeroiticcursive", "CR_In_Meroitic_Cursive"),
    INKHAROSHTHI("inkharoshthi", "CR_In_Kharoshthi"),
    OLDSOUTHARABIAN("oldsoutharabian", "CR_Old_South_Arabian"),
    SARB("sarb", "CR_Old_South_Arabian"),
    OLDNORTHARABIAN("oldnortharabian", "CR_Old_North_Arabian"),
    NARB("narb", "CR_Old_North_Arabian"),
    INMANICHAEAN("inmanichaean", "CR_In_Manichaean"),
    INAVESTAN("inavestan", "CR_In_Avestan"),
    ININSCRIPTIONALPARTHIAN("ininscriptionalparthian", "CR_In_Inscriptional_Parthian"),
    ININSCRIPTIONALPAHLAVI("ininscriptionalpahlavi", "CR_In_Inscriptional_Pahlavi"),
    INPSALTERPAHLAVI("inpsalterpahlavi", "CR_In_Psalter_Pahlavi"),
    INOLDTURKIC("inoldturkic", "CR_In_Old_Turkic"),
    INOLDHUNGARIAN("inoldhungarian", "CR_In_Old_Hungarian"),
    INHANIFIROHINGYA("inhanifirohingya", "CR_In_Hanifi_Rohingya"),
    INRUMINUMERALSYMBOLS("inruminumeralsymbols", "CR_In_Rumi_Numeral_Symbols"),
    INYEZIDI("inyezidi", "CR_In_Yezidi"),
    INOLDSOGDIAN("inoldsogdian", "CR_In_Old_Sogdian"),
    INSOGDIAN("insogdian", "CR_In_Sogdian"),
    INCHORASMIAN("inchorasmian", "CR_In_Chorasmian"),
    INELYMAIC("inelymaic", "CR_In_Elymaic"),
    INBRAHMI("inbrahmi", "CR_In_Brahmi"),
    INKAITHI("inkaithi", "CR_In_Kaithi"),
    INSORASOMPENG("insorasompeng", "CR_In_Sora_Sompeng"),
    INCHAKMA("inchakma", "CR_In_Chakma"),
    INMAHAJANI("inmahajani", "CR_In_Mahajani"),
    SHARADA("sharada", "CR_Sharada"),
    SHRD("shrd", "CR_Sharada"),
    INSINHALAARCHAICNUMBERS("insinhalaarchaicnumbers", "CR_In_Sinhala_Archaic_Numbers"),
    INKHOJKI("inkhojki", "CR_In_Khojki"),
    INMULTANI("inmultani", "CR_In_Multani"),
    INKHUDAWADI("inkhudawadi", "CR_In_Khudawadi"),
    INGRANTHA("ingrantha", "CR_In_Grantha"),
    INNEWA("innewa", "CR_In_Newa"),
    INTIRHUTA("intirhuta", "CR_In_Tirhuta"),
    INSIDDHAM("insiddham", "CR_In_Siddham"),
    INMODI("inmodi", "CR_In_Modi"),
    INMONGOLIANSUPPLEMENT("inmongoliansupplement", "CR_In_Mongolian_Supplement"),
    INTAKRI("intakri", "CR_In_Takri"),
    INAHOM("inahom", "CR_In_Ahom"),
    INDOGRA("indogra", "CR_In_Dogra"),
    INWARANGCITI("inwarangciti", "CR_In_Warang_Citi"),
    INDIVESAKURU("indivesakuru", "CR_In_Dives_Akuru"),
    INNANDINAGARI("innandinagari", "CR_In_Nandinagari"),
    INZANABAZARSQUARE("inzanabazarsquare", "CR_In_Zanabazar_Square"),
    INSOYOMBO("insoyombo", "CR_In_Soyombo"),
    INPAUCINHAU("inpaucinhau", "CR_In_Pau_Cin_Hau"),
    INBHAIKSUKI("inbhaiksuki", "CR_In_Bhaiksuki"),
    INMARCHEN("inmarchen", "CR_In_Marchen"),
    INMASARAMGONDI("inmasaramgondi", "CR_In_Masaram_Gondi"),
    INGUNJALAGONDI("ingunjalagondi", "CR_In_Gunjala_Gondi"),
    INMAKASAR("inmakasar", "CR_In_Makasar"),
    INLISUSUPPLEMENT("inlisusupplement", "CR_In_Lisu_Supplement"),
    INTAMILSUPPLEMENT("intamilsupplement", "CR_In_Tamil_Supplement"),
    INCUNEIFORM("incuneiform", "CR_In_Cuneiform"),
    INCUNEIFORMNUMBERSANDPUNCTUATION("incuneiformnumbersandpunctuation", "CR_In_Cuneiform_Numbers_and_Punctuation"),
    INEARLYDYNASTICCUNEIFORM("inearlydynasticcuneiform", "CR_In_Early_Dynastic_Cuneiform"),
    INEGYPTIANHIEROGLYPHS("inegyptianhieroglyphs", "CR_In_Egyptian_Hieroglyphs"),
    INEGYPTIANHIEROGLYPHFORMATCONTROLS("inegyptianhieroglyphformatcontrols", "CR_In_Egyptian_Hieroglyph_Format_Controls"),
    INANATOLIANHIEROGLYPHS("inanatolianhieroglyphs", "CR_In_Anatolian_Hieroglyphs"),
    INBAMUMSUPPLEMENT("inbamumsupplement", "CR_In_Bamum_Supplement"),
    INMRO("inmro", "CR_In_Mro"),
    INBASSAVAH("inbassavah", "CR_In_Bassa_Vah"),
    INPAHAWHHMONG("inpahawhhmong", "CR_In_Pahawh_Hmong"),
    INMEDEFAIDRIN("inmedefaidrin", "CR_In_Medefaidrin"),
    INMIAO("inmiao", "CR_In_Miao"),
    INIDEOGRAPHICSYMBOLSANDPUNCTUATION("inideographicsymbolsandpunctuation", "CR_In_Ideographic_Symbols_and_Punctuation"),
    INTANGUT("intangut", "CR_In_Tangut"),
    INTANGUTCOMPONENTS("intangutcomponents", "CR_In_Tangut_Components"),
    INKHITANSMALLSCRIPT("inkhitansmallscript", "CR_In_Khitan_Small_Script"),
    INTANGUTSUPPLEMENT("intangutsupplement", "CR_In_Tangut_Supplement"),
    INKANASUPPLEMENT("inkanasupplement", "CR_In_Kana_Supplement"),
    INKANAEXTENDEDA("inkanaextendeda", "CR_In_Kana_Extended_A"),
    INSMALLKANAEXTENSION("insmallkanaextension", "CR_In_Small_Kana_Extension"),
    INNUSHU("innushu", "CR_In_Nushu"),
    INDUPLOYAN("induployan", "CR_In_Duployan"),
    INSHORTHANDFORMATCONTROLS("inshorthandformatcontrols", "CR_In_Shorthand_Format_Controls"),
    INBYZANTINEMUSICALSYMBOLS("inbyzantinemusicalsymbols", "CR_In_Byzantine_Musical_Symbols"),
    INMUSICALSYMBOLS("inmusicalsymbols", "CR_In_Musical_Symbols"),
    INANCIENTGREEKMUSICALNOTATION("inancientgreekmusicalnotation", "CR_In_Ancient_Greek_Musical_Notation"),
    INMAYANNUMERALS("inmayannumerals", "CR_In_Mayan_Numerals"),
    INTAIXUANJINGSYMBOLS("intaixuanjingsymbols", "CR_In_Tai_Xuan_Jing_Symbols"),
    INCOUNTINGRODNUMERALS("incountingrodnumerals", "CR_In_Counting_Rod_Numerals"),
    INMATHEMATICALALPHANUMERICSYMBOLS("inmathematicalalphanumericsymbols", "CR_In_Mathematical_Alphanumeric_Symbols"),
    INSUTTONSIGNWRITING("insuttonsignwriting", "CR_In_Sutton_SignWriting"),
    INGLAGOLITICSUPPLEMENT("inglagoliticsupplement", "CR_In_Glagolitic_Supplement"),
    INNYIAKENGPUACHUEHMONG("innyiakengpuachuehmong", "CR_In_Nyiakeng_Puachue_Hmong"),
    INWANCHO("inwancho", "CR_In_Wancho"),
    INMENDEKIKAKUI("inmendekikakui", "CR_In_Mende_Kikakui"),
    INADLAM("inadlam", "CR_In_Adlam"),
    ININDICSIYAQNUMBERS("inindicsiyaqnumbers", "CR_In_Indic_Siyaq_Numbers"),
    INOTTOMANSIYAQNUMBERS("inottomansiyaqnumbers", "CR_In_Ottoman_Siyaq_Numbers"),
    INARABICMATHEMATICALALPHABETICSYMBOLS("inarabicmathematicalalphabeticsymbols", "CR_In_Arabic_Mathematical_Alphabetic_Symbols"),
    INMAHJONGTILES("inmahjongtiles", "CR_In_Mahjong_Tiles"),
    INDOMINOTILES("indominotiles", "CR_In_Domino_Tiles"),
    INPLAYINGCARDS("inplayingcards", "CR_In_Playing_Cards"),
    INENCLOSEDALPHANUMERICSUPPLEMENT("inenclosedalphanumericsupplement", "CR_In_Enclosed_Alphanumeric_Supplement"),
    INENCLOSEDIDEOGRAPHICSUPPLEMENT("inenclosedideographicsupplement", "CR_In_Enclosed_Ideographic_Supplement"),
    INMISCELLANEOUSSYMBOLSANDPICTOGRAPHS("inmiscellaneoussymbolsandpictographs", "CR_In_Miscellaneous_Symbols_and_Pictographs"),
    INEMOTICONS("inemoticons", "CR_In_Emoticons"),
    INORNAMENTALDINGBATS("inornamentaldingbats", "CR_In_Ornamental_Dingbats"),
    INTRANSPORTANDMAPSYMBOLS("intransportandmapsymbols", "CR_In_Transport_and_Map_Symbols"),
    INALCHEMICALSYMBOLS("inalchemicalsymbols", "CR_In_Alchemical_Symbols"),
    INGEOMETRICSHAPESEXTENDED("ingeometricshapesextended", "CR_In_Geometric_Shapes_Extended"),
    INSUPPLEMENTALARROWSC("insupplementalarrowsc", "CR_In_Supplemental_Arrows_C"),
    INSUPPLEMENTALSYMBOLSANDPICTOGRAPHS("insupplementalsymbolsandpictographs", "CR_In_Supplemental_Symbols_and_Pictographs"),
    INCHESSSYMBOLS("inchesssymbols", "CR_In_Chess_Symbols"),
    INSYMBOLSANDPICTOGRAPHSEXTENDEDA("insymbolsandpictographsextendeda", "CR_In_Symbols_and_Pictographs_Extended_A"),
    INSYMBOLSFORLEGACYCOMPUTING("insymbolsforlegacycomputing", "CR_In_Symbols_for_Legacy_Computing"),
    INCJKUNIFIEDIDEOGRAPHSEXTENSIONB("incjkunifiedideographsextensionb", "CR_In_CJK_Unified_Ideographs_Extension_B"),
    INCJKUNIFIEDIDEOGRAPHSEXTENSIONC("incjkunifiedideographsextensionc", "CR_In_CJK_Unified_Ideographs_Extension_C"),
    INCJKUNIFIEDIDEOGRAPHSEXTENSIOND("incjkunifiedideographsextensiond", "CR_In_CJK_Unified_Ideographs_Extension_D"),
    INCJKUNIFIEDIDEOGRAPHSEXTENSIONE("incjkunifiedideographsextensione", "CR_In_CJK_Unified_Ideographs_Extension_E"),
    INCJKUNIFIEDIDEOGRAPHSEXTENSIONF("incjkunifiedideographsextensionf", "CR_In_CJK_Unified_Ideographs_Extension_F"),
    INCJKCOMPATIBILITYIDEOGRAPHSSUPPLEMENT("incjkcompatibilityideographssupplement", "CR_In_CJK_Compatibility_Ideographs_Supplement"),
    INCJKUNIFIEDIDEOGRAPHSEXTENSIONG("incjkunifiedideographsextensiong", "CR_In_CJK_Unified_Ideographs_Extension_G"),
    INTAGS("intags", "CR_In_Tags"),
    INVARIATIONSELECTORSSUPPLEMENT("invariationselectorssupplement", "CR_In_Variation_Selectors_Supplement"),
    INSUPPLEMENTARYPRIVATEUSEAREAA("insupplementaryprivateuseareaa", "CR_In_Supplementary_Private_Use_Area_A"),
    INSUPPLEMENTARYPRIVATEUSEAREAB("insupplementaryprivateuseareab", "CR_In_Supplementary_Private_Use_Area_B"),
    INNOBLOCK("innoblock", "CR_In_No_Block");

    private final String table;
    final byte[]name;
    private int[]range;

    private UnicodeCodeRange(String name, String table) {
        this.table = table;
        this.name = name.getBytes();
    }

    int[]getRange() {
        if (range == null) range = ArrayReader.readIntArray(table);
        return range;
    }

    public boolean contains(int code) {
        return CodeRange.isInCodeRange(range, code);
    }

    public int getCType() {
        return ordinal();
    }

    static final UnicodeCodeRange[]CodeRangeTable = UnicodeCodeRange.values();
    static final int MAX_WORD_LENGTH = 44;
}
