Module:scripts/data: Difference between revisions

no edit summary
No edit summary
No edit summary
Line 100: Line 100:
local m = {}
local m = {}


--Constructed languages
m["Latn"] = process_ranges{
m["Ayer"] = process_ranges{
"Latin",
"Tahano Hikamu",
8229,
nil,
"alphabet",
"abugida",
aliases = {"Roman"},
ranges = {
ranges = {
0x0041, 0x005A,
0x0041, 0x005A,
0x0061, 0x007A,
0x0061, 0x007A,
0x002A, 0x002A,
0x00AA, 0x00AA,
0x00F1, 0x00F1,
0x00BA, 0x00BA,
0x00D1, 0x00D1,
0x00C0, 0x00D6,
0x0294, 0x0294,
0x00D8, 0x00F6,
0x0259, 0x0259,
0x00F8, 0x02B8,
0x018F, 0x018F,
0x02C0, 0x02C1,
0xA736, 0xA737,
0x02E0, 0x02E4,
0x0026, 0x0026,
0x0363, 0x036F,
0x002B, 0x002D,
0x0485, 0x0486,
0x005B, 0x005B,
0x0951, 0x0952,
0x005D, 0x005D,
0x10FB, 0x10FB,
0x00A8, 0x00A8,
0x1D00, 0x1D25,
0x00AF, 0x00AF,
0x1D2C, 0x1D5C,
0x00B2, 0x00B2,
0x1D62, 0x1D65,
0x00B9, 0x00B9,
0x1D6B, 0x1D77,
0x02B0, 0x2B2,
0x1D79, 0x1DBE,
0x02C0, 0x02C0,
0x1DF8, 0x1DF8,
0x02D0, 0x02D0,
0x1E00, 0x1EFF,
},
0x202F, 0x202F,
character_category = false,
0x2071, 0x2071,
}
0x207F, 0x207F,
 
0x2090, 0x209C,
m["Jovl"] = process_ranges{
0x20F0, 0x20F0,
"Jovlish",
0x2100, 0x2125,
nil,
0x2128, 0x2128,
"alphabet",
0x212A, 0x2134,
ranges = multiinsert_to_table(m["Latn"].ranges, 0x039E, 0x039E, 0x03A8, 0x03A8, 0x03BE, 0x03BE, 0x03C8, 0x03C8),
0x2139, 0x213B,
character_category = false,
0x2141, 0x214E,
}
0x2160, 0x2188,
 
0x2C60, 0x2C7F,
m["Roka"] = process_ranges{
0xA700, 0xA707,
"Rokadong Curakjang",
0xA722, 0xA787,
nil,
0xA78B, 0xA7CD,
"abugida",
0xA7D0, 0xA7D1,
ranges = {
0xA7D3, 0xA7D3,
0x0041, 0x005A,
0xA7D5, 0xA7DC,
0x0061, 0x007A,
0xA7F2, 0xA7FF,
0x0022, 0x0022,
0xA92E, 0xA92E,
0x0027, 0x0027,
0xAB30, 0xAB5A,
0x002A, 0x002A,
0xAB5C, 0xAB64,
0x002D, 0x002D,
0xAB66, 0xAB69,
0x005B, 0x005D,
0xFB00, 0xFB06,
0x007B, 0x007B,
0xFF21, 0xFF3A,
0x007D, 0x007D
0xFF41, 0xFF5A,
0x10780, 0x10785,
0x10787, 0x107B0,
0x107B2, 0x107BA,
0x1DF00, 0x1DF1E,
0x1DF25, 0x1DF2A,
},
},
character_category = false,
varieties = {"Rumi", "Romaji", "Rōmaji", "Romaja"},
capitalized = true,
translit = false,
}
}
m["Rsnold"] = process_ranges{
 
"Old Raysian",
 
 
 
 
 
 
 
 
--Constructed languages
m["Ayer"] = process_ranges{
"Tahano Hikamu",
nil,
nil,
"alphabet",
"abugida",
ranges = {
0x0041, 0x007A
},
character_category = false,
}
m["Pann"] = process_ranges{
"Pannonian",
nil,
"alphabet",
ranges = {
ranges = {
0x0041, 0x005A,
0x0041, 0x005A,
0x0061, 0x007A,
0x0061, 0x007A,
0x1D9C, 0x1D9D,
0x002A, 0x002A,
0x1D47, 0x1D4B,
0x00F1, 0x00F1,
0x02E1, 0x02E3,
0x00D1, 0x00D1,
0x0410, 0x044F,
0x0294, 0x0294,
0x0404, 0x0454,
0x0259, 0x0259,
0x04AE, 0x04B1,
0x018F, 0x018F,
0x0250, 0x0254,
0xA736, 0xA737,
0x0265, 0x0278,
0x0026, 0x0026,
0x028C, 0x028D,
0x002B, 0x002D,
0x0224, 0x0225,
0x005B, 0x005B,
0x01BA, 0x01BE,
0x005D, 0x005D,
0x019A, 0x01A3,
0x00A8, 0x00A8,
0x012D, 0x0131,
0x00AF, 0x00AF,
0xA793, 0xA794
0x00B2, 0x00B2,
0x00B9, 0x00B9,
0x02B0, 0x2B2,
0x02C0, 0x02C0,
0x02D0, 0x02D0,
},
character_category = false,
}
 
m["Jovl"] = process_ranges{
"Jovlish",
nil,
"alphabet",
ranges = multiinsert_to_table(m["Latn"].ranges, 0x039E, 0x039E, 0x03A8, 0x03A8, 0x03BE, 0x03BE, 0x03C8, 0x03C8),
character_category = false,
}
 
m["Roka"] = process_ranges{
"Rokadong Curakjang",
nil,
"abugida",
ranges = {
0x0041, 0x005A,
0x0061, 0x007A,
0x0022, 0x0022,
0x0027, 0x0027,
0x002A, 0x002A,
0x002D, 0x002D,
0x005B, 0x005D,
0x007B, 0x007B,
0x007D, 0x007D
},
character_category = false,
}
m["Rsnold"] = process_ranges{
"Old Raysian",
nil,
"alphabet",
ranges = {
0x0041, 0x007A
},
character_category = false,
}
m["Pann"] = process_ranges{
"Pannonian",
nil,
"alphabet",
ranges = {
0x0041, 0x005A,
0x0061, 0x007A,
0x1D9C, 0x1D9D,
0x1D47, 0x1D4B,
0x02E1, 0x02E3,
0x0410, 0x044F,
0x0404, 0x0454,
0x04AE, 0x04B1,
0x0250, 0x0254,
0x0265, 0x0278,
0x028C, 0x028D,
0x0224, 0x0225,
0x01BA, 0x01BE,
0x019A, 0x01A3,
0x012D, 0x0131,
0xA793, 0xA794
},
},
character_category = false,
character_category = false,
Line 211: Line 282:




 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
--Natural languages
--Natural languages
 
 
m["Adlm"] = process_ranges{
m["Adlm"] = process_ranges{
"Adlam",
"Adlam",
19606346,
19606346,
"alphabet",
"alphabet",
ranges = {
ranges = {
0x061F, 0x061F,
0x061F, 0x061F,
0x0640, 0x0640,
0x0640, 0x0640,
0x1E900, 0x1E94B,
0x1E900, 0x1E94B,
0x1E950, 0x1E959,
0x1E950, 0x1E959,
0x1E95E, 0x1E95F,
0x1E95E, 0x1E95F,
},
},
capitalized = true,
capitalized = true,
direction = "rtl",
direction = "rtl",
}
 
m["Afak"] = {
"Afaka",
382019,
"syllabary",
-- Not in Unicode
}
 
m["Aghb"] = process_ranges{
"Caucasian Albanian",
2495716,
"alphabet",
ranges = {
0x10530, 0x10563,
0x1056F, 0x1056F,
},
}
 
m["Ahom"] = process_ranges{
"Ahom",
2839633,
"abugida",
ranges = {
0x11700, 0x1171A,
0x1171D, 0x1172B,
0x11730, 0x11746,
},
}
 
m["Arab"] = process_ranges{
"Arabic",
1828555,
"abjad", -- more precisely, impure abjad
varieties = {"Jawi", {"Nastaliq", "Nastaleeq"}},
ranges = {
0x0600, 0x06FF,
0x0750, 0x077F,
0x0870, 0x088E,
0x0890, 0x0891,
0x0897, 0x08E1,
0x08E3, 0x08FF,
0xFB50, 0xFBC2,
0xFBD3, 0xFD8F,
0xFD92, 0xFDC7,
0xFDCF, 0xFDCF,
0xFDF0, 0xFDFF,
0xFE70, 0xFE74,
0xFE76, 0xFEFC,
0x102E0, 0x102FB,
0x10E60, 0x10E7E,
0x10EC2, 0x10EC4,
0x10EFC, 0x10EFF,
0x1EE00, 0x1EE03,
0x1EE05, 0x1EE1F,
0x1EE21, 0x1EE22,
0x1EE24, 0x1EE24,
0x1EE27, 0x1EE27,
0x1EE29, 0x1EE32,
0x1EE34, 0x1EE37,
0x1EE39, 0x1EE39,
0x1EE3B, 0x1EE3B,
0x1EE42, 0x1EE42,
0x1EE47, 0x1EE47,
0x1EE49, 0x1EE49,
0x1EE4B, 0x1EE4B,
0x1EE4D, 0x1EE4F,
0x1EE51, 0x1EE52,
0x1EE54, 0x1EE54,
0x1EE57, 0x1EE57,
0x1EE59, 0x1EE59,
0x1EE5B, 0x1EE5B,
0x1EE5D, 0x1EE5D,
0x1EE5F, 0x1EE5F,
0x1EE61, 0x1EE62,
0x1EE64, 0x1EE64,
0x1EE67, 0x1EE6A,
0x1EE6C, 0x1EE72,
0x1EE74, 0x1EE77,
0x1EE79, 0x1EE7C,
0x1EE7E, 0x1EE7E,
0x1EE80, 0x1EE89,
0x1EE8B, 0x1EE9B,
0x1EEA1, 0x1EEA3,
0x1EEA5, 0x1EEA9,
0x1EEAB, 0x1EEBB,
0x1EEF0, 0x1EEF1,
},
direction = "rtl",
normalizationFixes = handle_normalization_fixes{
from = {"ٳ"},
to = {"اٟ"}
},
}
}


m["fa-Arab"] = {
m["Afak"] = {
"Arabic",
"Afaka",
744068,
382019,
m["Arab"][3],
"syllabary",
ranges = m["Arab"].ranges,
-- Not in Unicode
characters = m["Arab"].characters,
}
otherNames = {"Perso-Arabic"},
direction = "rtl",
parent = "Arab",
normalizationFixes = m["Arab"].normalizationFixes,
}


m["kk-Arab"] = {
m["Aghb"] = process_ranges{
"Arabic",
"Caucasian Albanian",
90681452,
2495716,
m["Arab"][3],
"alphabet",
ranges = m["Arab"].ranges,
ranges = {
characters = m["Arab"].characters,
0x10530, 0x10563,
direction = "rtl",
0x1056F, 0x1056F,
parent = "Arab",
},
normalizationFixes = m["Arab"].normalizationFixes,
}
}
 
m["Ahom"] = process_ranges{
m["ks-Arab"] = m["fa-Arab"]
"Ahom",
m["ku-Arab"] = m["fa-Arab"]
2839633,
m["ms-Arab"] = m["kk-Arab"]
"abugida",
m["mzn-Arab"] = m["fa-Arab"]
ranges = {
m["ota-Arab"] = m["fa-Arab"]
0x11700, 0x1171A,
0x1171D, 0x1172B,
m["pa-Arab"] = {
0x11730, 0x11746,
"Shahmukhi",
},
133800,
}
m["Arab"][3],
 
ranges = m["Arab"].ranges,
m["Arab"] = process_ranges{
characters = m["Arab"].characters,
"Arabic",
otherNames = {"Arabic"},
1828555,
direction = "rtl",
"abjad", -- more precisely, impure abjad
parent = "Arab",
varieties = {"Jawi", {"Nastaliq", "Nastaleeq"}},
normalizationFixes = m["Arab"].normalizationFixes,
}
m["ps-Arab"] = m["fa-Arab"]
m["sd-Arab"] = m["fa-Arab"]
m["tt-Arab"] = m["fa-Arab"]
m["ug-Arab"] = m["fa-Arab"]
m["ur-Arab"] = m["fa-Arab"]
 
-- Aran (Nastaliq) is subsumed into Arab
 
m["Armi"] = process_ranges{
"Imperial Aramaic",
26978,
"abjad",
ranges = {
ranges = {
0x10840, 0x10855,
0x0600, 0x06FF,
0x10857, 0x1085F,
0x0750, 0x077F,
},
0x0870, 0x088E,
direction = "rtl",
0x0890, 0x0891,
}
0x0897, 0x08E1,
 
0x08E3, 0x08FF,
m["Armn"] = process_ranges{
0xFB50, 0xFBC2,
"Armenian",
0xFBD3, 0xFD8F,
11932,
0xFD92, 0xFDC7,
"alphabet",
0xFDCF, 0xFDCF,
ranges = {
0xFDF0, 0xFDFF,
0x0531, 0x0556,
0xFE70, 0xFE74,
0x0559, 0x058A,
0xFE76, 0xFEFC,
0x058D, 0x058F,
0x102E0, 0x102FB,
0xFB13, 0xFB17,
0x10E60, 0x10E7E,
},
0x10EC2, 0x10EC4,
capitalized = true,
0x10EFC, 0x10EFF,
}
0x1EE00, 0x1EE03,
 
0x1EE05, 0x1EE1F,
m["Avst"] = process_ranges{
0x1EE21, 0x1EE22,
"Avestan",
0x1EE24, 0x1EE24,
790681,
0x1EE27, 0x1EE27,
"alphabet",
0x1EE29, 0x1EE32,
ranges = {
0x1EE34, 0x1EE37,
0x10B00, 0x10B35,
0x1EE39, 0x1EE39,
0x10B39, 0x10B3F,
0x1EE3B, 0x1EE3B,
},
0x1EE42, 0x1EE42,
direction = "rtl",
0x1EE47, 0x1EE47,
}
0x1EE49, 0x1EE49,
 
0x1EE4B, 0x1EE4B,
m["pal-Avst"] = {
0x1EE4D, 0x1EE4F,
"Pazend",
0x1EE51, 0x1EE52,
4925073,
0x1EE54, 0x1EE54,
m["Avst"][3],
0x1EE57, 0x1EE57,
ranges = m["Avst"].ranges,
0x1EE59, 0x1EE59,
characters = m["Avst"].characters,
0x1EE5B, 0x1EE5B,
direction = "rtl",
0x1EE5D, 0x1EE5D,
parent = "Avst",
0x1EE5F, 0x1EE5F,
}
0x1EE61, 0x1EE62,
 
0x1EE64, 0x1EE64,
m["Bali"] = process_ranges{
0x1EE67, 0x1EE6A,
"Balinese",
0x1EE6C, 0x1EE72,
804984,
0x1EE74, 0x1EE77,
"abugida",
0x1EE79, 0x1EE7C,
ranges = {
0x1EE7E, 0x1EE7E,
0x1B00, 0x1B4C,
0x1EE80, 0x1EE89,
0x1B4E, 0x1B7F,
0x1EE8B, 0x1EE9B,
0x1EEA1, 0x1EEA3,
0x1EEA5, 0x1EEA9,
0x1EEAB, 0x1EEBB,
0x1EEF0, 0x1EEF1,
},
},
}
direction = "rtl",
 
normalizationFixes = handle_normalization_fixes{
m["Bamu"] = process_ranges{
from = {"ٳ"},
"Bamum",
to = {"اٟ"}
806024,
"syllabary",
ranges = {
0xA6A0, 0xA6F7,
0x16800, 0x16A38,
},
},
}
}


m["Bass"] = process_ranges{
m["fa-Arab"] = {
"Bassa",
"Arabic",
810458,
744068,
"alphabet",
m["Arab"][3],
aliases = {"Bassa Vah", "Vah"},
ranges = m["Arab"].ranges,
ranges = {
characters = m["Arab"].characters,
0x16AD0, 0x16AED,
otherNames = {"Perso-Arabic"},
0x16AF0, 0x16AF5,
direction = "rtl",
},
parent = "Arab",
}
normalizationFixes = m["Arab"].normalizationFixes,
}


m["Batk"] = process_ranges{
m["kk-Arab"] = {
"Batak",
"Arabic",
51592,
90681452,
"abugida",
m["Arab"][3],
ranges = {
ranges = m["Arab"].ranges,
0x1BC0, 0x1BF3,
characters = m["Arab"].characters,
0x1BFC, 0x1BFF,
direction = "rtl",
},
parent = "Arab",
}
normalizationFixes = m["Arab"].normalizationFixes,
 
}
m["Beng"] = process_ranges{
"Bengali",
m["ks-Arab"] = m["fa-Arab"]
756802,
m["ku-Arab"] = m["fa-Arab"]
"abugida",
m["ms-Arab"] = m["kk-Arab"]
ranges = {
m["mzn-Arab"] = m["fa-Arab"]
0x0951, 0x0952,
m["ota-Arab"] = m["fa-Arab"]
0x0964, 0x0965,
0x0980, 0x0983,
m["pa-Arab"] = {
0x0985, 0x098C,
"Shahmukhi",
0x098F, 0x0990,
133800,
0x0993, 0x09A8,
m["Arab"][3],
0x09AA, 0x09B0,
ranges = m["Arab"].ranges,
0x09B2, 0x09B2,
characters = m["Arab"].characters,
0x09B6, 0x09B9,
otherNames = {"Arabic"},
0x09BC, 0x09C4,
direction = "rtl",
0x09C7, 0x09C8,
parent = "Arab",
0x09CB, 0x09CE,
normalizationFixes = m["Arab"].normalizationFixes,
0x09D7, 0x09D7,
}
0x09DC, 0x09DD,
0x09DF, 0x09E3,
m["ps-Arab"] = m["fa-Arab"]
0x09E6, 0x09EF,
m["sd-Arab"] = m["fa-Arab"]
0x09F2, 0x09FE,
m["tt-Arab"] = m["fa-Arab"]
0x1CD0, 0x1CD0,
m["ug-Arab"] = m["fa-Arab"]
0x1CD2, 0x1CD2,
m["ur-Arab"] = m["fa-Arab"]
0x1CD5, 0x1CD6,
 
0x1CD8, 0x1CD8,
-- Aran (Nastaliq) is subsumed into Arab
0x1CE1, 0x1CE1,
 
0x1CEA, 0x1CEA,
m["Armi"] = process_ranges{
0x1CED, 0x1CED,
"Imperial Aramaic",
0x1CF2, 0x1CF2,
26978,
0x1CF5, 0x1CF7,
"abjad",
0xA8F1, 0xA8F1,
ranges = {
},
0x10840, 0x10855,
normalizationFixes = handle_normalization_fixes{
0x10857, 0x1085F,
from = {"অা", "ঋৃ", "ঌৢ"},
to = {"আ", "ৠ", "ৡ"}
},
},
direction = "rtl",
}
}


m["as-Beng"] = process_ranges{
m["Armn"] = process_ranges{
"Assamese",
"Armenian",
191272,
11932,
m["Beng"][3],
"alphabet",
otherNames = {"Eastern Nagari"},
ranges = {
ranges = {
0x0531, 0x0556,
0x0951, 0x0952,
0x0559, 0x058A,
0x0964, 0x0965,
0x058D, 0x058F,
0x0980, 0x0983,
0xFB13, 0xFB17,
0x0985, 0x098C,
},
0x098F, 0x0990,
capitalized = true,
0x0993, 0x09A8,
}
0x09AA, 0x09AF,
 
0x09B2, 0x09B2,
m["Avst"] = process_ranges{
0x09B6, 0x09B9,
"Avestan",
0x09BC, 0x09C4,
790681,
0x09C7, 0x09C8,
"alphabet",
0x09CB, 0x09CE,
0x09D7, 0x09D7,
0x09DC, 0x09DD,
0x09DF, 0x09E3,
0x09E6, 0x09FE,
0x1CD0, 0x1CD0,
0x1CD2, 0x1CD2,
0x1CD5, 0x1CD6,
0x1CD8, 0x1CD8,
0x1CE1, 0x1CE1,
0x1CEA, 0x1CEA,
0x1CED, 0x1CED,
0x1CF2, 0x1CF2,
0x1CF5, 0x1CF7,
0xA8F1, 0xA8F1,
},
normalizationFixes = m["Beng"].normalizationFixes,
}
 
m["Bhks"] = process_ranges{
"Bhaiksuki",
17017839,
"abugida",
ranges = {
ranges = {
0x11C00, 0x11C08,
0x10B00, 0x10B35,
0x11C0A, 0x11C36,
0x10B39, 0x10B3F,
0x11C38, 0x11C45,
0x11C50, 0x11C6C,
},
},
direction = "rtl",
}
}


m["Blis"] = {
m["pal-Avst"] = {
"Blissymbolic",
"Pazend",
609817,
4925073,
"logography",
m["Avst"][3],
aliases = {"Blissymbols"},
ranges = m["Avst"].ranges,
-- Not in Unicode
characters = m["Avst"].characters,
}
direction = "rtl",
parent = "Avst",
}


m["Bopo"] = process_ranges{
m["Bali"] = process_ranges{
"Zhuyin",
"Balinese",
198269,
804984,
"semisyllabary",
"abugida",
aliases = {"Zhuyin Fuhao", "Bopomofo"},
ranges = {
ranges = {
0x02EA, 0x02EB,
0x1B00, 0x1B4C,
0x3001, 0x3003,
0x1B4E, 0x1B7F,
0x3008, 0x3011,
0x3013, 0x301F,
0x302A, 0x302D,
0x3030, 0x3030,
0x3037, 0x3037,
0x30FB, 0x30FB,
0x3105, 0x312F,
0x31A0, 0x31BF,
0xFE45, 0xFE46,
0xFF61, 0xFF65,
},
},
}
}


m["Brah"] = process_ranges{
m["Bamu"] = process_ranges{
"Brahmi",
"Bamum",
185083,
806024,
"abugida",
"syllabary",
ranges = {
ranges = {
0x11000, 0x1104D,
0xA6A0, 0xA6F7,
0x11052, 0x11075,
0x16800, 0x16A38,
0x1107F, 0x1107F,
},
normalizationFixes = handle_normalization_fixes{
from = {"𑀅𑀸", "𑀋𑀾", "𑀏𑁂"},
to = {"𑀆", "𑀌", "𑀐"}
},
},
}
}


m["Brai"] = process_ranges{
m["Bass"] = process_ranges{
"Braille",
"Bassa",
79894,
810458,
"alphabet",
"alphabet",
aliases = {"Bassa Vah", "Vah"},
ranges = {
ranges = {
0x2800, 0x28FF,
0x16AD0, 0x16AED,
0x16AF0, 0x16AF5,
},
},
}
}


m["Bugi"] = process_ranges{
m["Batk"] = process_ranges{
"Lontara",
"Batak",
1074947,
51592,
"abugida",
"abugida",
aliases = {"Buginese"},
ranges = {
ranges = {
0x1A00, 0x1A1B,
0x1BC0, 0x1BF3,
0x1A1E, 0x1A1F,
0x1BFC, 0x1BFF,
0xA9CF, 0xA9CF,
},
},
}
}


m["Buhd"] = process_ranges{
m["Beng"] = process_ranges{
"Buhid",
"Bengali",
1002969,
756802,
"abugida",
ranges = {
0x1735, 0x1736,
0x1740, 0x1751,
0x1752, 0x1753,
},
}
 
m["Cakm"] = process_ranges{
"Chakma",
1059328,
"abugida",
"abugida",
ranges = {
ranges = {
0x0951, 0x0952,
0x0964, 0x0965,
0x0980, 0x0983,
0x0985, 0x098C,
0x098F, 0x0990,
0x0993, 0x09A8,
0x09AA, 0x09B0,
0x09B2, 0x09B2,
0x09B6, 0x09B9,
0x09BC, 0x09C4,
0x09C7, 0x09C8,
0x09CB, 0x09CE,
0x09D7, 0x09D7,
0x09DC, 0x09DD,
0x09DF, 0x09E3,
0x09E6, 0x09EF,
0x09E6, 0x09EF,
0x1040, 0x1049,
0x09F2, 0x09FE,
0x11100, 0x11134,
0x1CD0, 0x1CD0,
0x11136, 0x11147,
0x1CD2, 0x1CD2,
0x1CD5, 0x1CD6,
0x1CD8, 0x1CD8,
0x1CE1, 0x1CE1,
0x1CEA, 0x1CEA,
0x1CED, 0x1CED,
0x1CF2, 0x1CF2,
0x1CF5, 0x1CF7,
0xA8F1, 0xA8F1,
},
normalizationFixes = handle_normalization_fixes{
from = {"অা", "ঋৃ", "ঌৢ"},
to = {"আ", "ৠ", "ৡ"}
},
},
}
}


m["Cans"] = process_ranges{
m["as-Beng"] = process_ranges{
"Canadian syllabic",
"Assamese",
2479183,
191272,
"abugida",
m["Beng"][3],
ranges = {
otherNames = {"Eastern Nagari"},
0x1400, 0x167F,
ranges = {
0x18B0, 0x18F5,
0x0951, 0x0952,
0x11AB0, 0x11ABF,
0x0964, 0x0965,
},
0x0980, 0x0983,
}
0x0985, 0x098C,
 
0x098F, 0x0990,
m["Cari"] = process_ranges{
0x0993, 0x09A8,
"Carian",
0x09AA, 0x09AF,
1094567,
0x09B2, 0x09B2,
"alphabet",
0x09B6, 0x09B9,
ranges = {
0x09BC, 0x09C4,
0x102A0, 0x102D0,
0x09C7, 0x09C8,
},
0x09CB, 0x09CE,
}
0x09D7, 0x09D7,
0x09DC, 0x09DD,
0x09DF, 0x09E3,
0x09E6, 0x09FE,
0x1CD0, 0x1CD0,
0x1CD2, 0x1CD2,
0x1CD5, 0x1CD6,
0x1CD8, 0x1CD8,
0x1CE1, 0x1CE1,
0x1CEA, 0x1CEA,
0x1CED, 0x1CED,
0x1CF2, 0x1CF2,
0x1CF5, 0x1CF7,
0xA8F1, 0xA8F1,
},
normalizationFixes = m["Beng"].normalizationFixes,
}


m["Cham"] = process_ranges{
m["Bhks"] = process_ranges{
"Cham",
"Bhaiksuki",
1060381,
17017839,
"abugida",
"abugida",
ranges = {
ranges = {
0xAA00, 0xAA36,
0x11C00, 0x11C08,
0xAA40, 0xAA4D,
0x11C0A, 0x11C36,
0xAA50, 0xAA59,
0x11C38, 0x11C45,
0xAA5C, 0xAA5F,
0x11C50, 0x11C6C,
},
},
}
}


m["Cher"] = process_ranges{
m["Blis"] = {
"Cherokee",
"Blissymbolic",
26549,
609817,
"syllabary",
"logography",
ranges = {
aliases = {"Blissymbols"},
0x13A0, 0x13F5,
0x13F8, 0x13FD,
0xAB70, 0xABBF,
},
}
 
m["Chis"] = {
"Chisoi",
123173777,
"abugida",
-- Not in Unicode
-- Not in Unicode
}
}


m["Chrs"] = process_ranges{
m["Bopo"] = process_ranges{
"Khwarezmian",
"Zhuyin",
72386710,
198269,
"abjad",
"semisyllabary",
aliases = {"Chorasmian"},
aliases = {"Zhuyin Fuhao", "Bopomofo"},
ranges = {
ranges = {
0x10FB0, 0x10FCB,
0x02EA, 0x02EB,
0x3001, 0x3003,
0x3008, 0x3011,
0x3013, 0x301F,
0x302A, 0x302D,
0x3030, 0x3030,
0x3037, 0x3037,
0x30FB, 0x30FB,
0x3105, 0x312F,
0x31A0, 0x31BF,
0xFE45, 0xFE46,
0xFF61, 0xFF65,
},
},
direction = "rtl",
}
}


m["Copt"] = process_ranges{
m["Brah"] = process_ranges{
"Coptic",
"Brahmi",
321083,
185083,
"alphabet",
"abugida",
ranges = {
ranges = {
0x03E2, 0x03EF,
0x11000, 0x1104D,
0x2C80, 0x2CF3,
0x11052, 0x11075,
0x2CF9, 0x2CFF,
0x1107F, 0x1107F,
0x102E0, 0x102FB,
},
normalizationFixes = handle_normalization_fixes{
from = {"𑀅𑀸", "𑀋𑀾", "𑀏𑁂"},
to = {"𑀆", "𑀌", "𑀐"}
},
},
capitalized = true,
}
}


m["Cpmn"] = process_ranges{
m["Brai"] = process_ranges{
"Cypro-Minoan",
"Braille",
1751985,
79894,
"syllabary",
"alphabet",
aliases = {"Cypro Minoan"},
ranges = {
ranges = {
0x10100, 0x10101,
0x2800, 0x28FF,
0x12F90, 0x12FF2,
},
},
}
}


m["Cprt"] = process_ranges{
m["Bugi"] = process_ranges{
"Cypriot",
"Lontara",
1757689,
1074947,
"syllabary",
"abugida",
aliases = {"Buginese"},
ranges = {
ranges = {
0x10100, 0x10102,
0x1A00, 0x1A1B,
0x10107, 0x10133,
0x1A1E, 0x1A1F,
0x10137, 0x1013F,
0xA9CF, 0xA9CF,
0x10800, 0x10805,
0x10808, 0x10808,
0x1080A, 0x10835,
0x10837, 0x10838,
0x1083C, 0x1083C,
0x1083F, 0x1083F,
},
},
direction = "rtl",
}
}


m["Cyrl"] = process_ranges{
m["Buhd"] = process_ranges{
"Cyrillic",
"Buhid",
8209,
1002969,
"alphabet",
"abugida",
ranges = {
ranges = {
0x0400, 0x052F,
0x1735, 0x1736,
0x1C80, 0x1C8A,
0x1740, 0x1751,
0x1D2B, 0x1D2B,
0x1752, 0x1753,
0x1D78, 0x1D78,
0x1DF8, 0x1DF8,
0x2DE0, 0x2DFF,
0x2E43, 0x2E43,
0xA640, 0xA69F,
0xFE2E, 0xFE2F,
0x1E030, 0x1E06D,
0x1E08F, 0x1E08F,
},
},
capitalized = true,
}
}


m["Cyrs"] = {
m["Cakm"] = process_ranges{
"Old Cyrillic",
"Chakma",
442244,
1059328,
m["Cyrl"][3],
"abugida",
aliases = {"Early Cyrillic"},
ranges = {
ranges = m["Cyrl"].ranges,
0x09E6, 0x09EF,
characters = m["Cyrl"].characters,
0x1040, 0x1049,
capitalized = m["Cyrl"].capitalized,
0x11100, 0x11134,
wikipedia_article = "Early Cyrillic alphabet",
0x11136, 0x11147,
normalizationFixes = handle_normalization_fixes{
from = {"Ѹ", "ѹ"},
to = {"Ꙋ", "ꙋ"}
},
},
}
}


m["Deva"] = process_ranges{
m["Cans"] = process_ranges{
"Devanagari",
"Canadian syllabic",
38592,
2479183,
"abugida",
"abugida",
ranges = {
ranges = {
0x0900, 0x097F,
0x1400, 0x167F,
0x1CD0, 0x1CF6,
0x18B0, 0x18F5,
0x1CF8, 0x1CF9,
0x11AB0, 0x11ABF,
0x20F0, 0x20F0,
0xA830, 0xA839,
0xA8E0, 0xA8FF,
0x11B00, 0x11B09,
},
normalizationFixes = handle_normalization_fixes{
from = {"ॆॆ", "ेे", "ाॅ", "ाॆ", "ाꣿ", "ॊॆ", "ाे", "ाै", "ोे", "ाऺ", "ॖॖ", "अॅ", "अॆ", "अा", "एॅ", "एॆ", "एे", "एꣿ", "ऎॆ", "अॉ", "आॅ", "अॊ", "आॆ", "अो", "आे", "अौ", "आै", "ओे", "अऺ", "अऻ", "आऺ", "अाꣿ", "आꣿ", "ऒॆ", "अॖ", "अॗ", "ॶॖ", "्‍?ा"},
to = {"ꣿ", "ै", "ॉ", "ॊ", "ॏ", "ॏ", "ो", "ौ", "ौ", "ऻ", "ॗ", "ॲ", "ऄ", "आ", "ऍ", "ऎ", "ऐ", "ꣾ", "ꣾ", "ऑ", "ऑ", "ऒ", "ऒ", "ओ", "ओ", "औ", "औ", "औ", "ॳ", "ॴ", "ॴ", "ॵ", "ॵ", "ॵ", "ॶ", "ॷ", "ॷ"}
},
},
}
}


m["Diak"] = process_ranges{
m["Cari"] = process_ranges{
"Dhives Akuru",
"Carian",
3307073,
1094567,
"abugida",
"alphabet",
aliases = {"Dhivehi Akuru", "Dives Akuru", "Divehi Akuru"},
ranges = {
ranges = {
0x11900, 0x11906,
0x102A0, 0x102D0,
0x11909, 0x11909,
0x1190C, 0x11913,
0x11915, 0x11916,
0x11918, 0x11935,
0x11937, 0x11938,
0x1193B, 0x11946,
0x11950, 0x11959,
},
},
}
}


m["Dogr"] = process_ranges{
m["Cham"] = process_ranges{
"Dogra",
"Cham",
72402987,
1060381,
"abugida",
"abugida",
ranges = {
ranges = {
0x0964, 0x096F,
0xAA00, 0xAA36,
0xA830, 0xA839,
0xAA40, 0xAA4D,
0x11800, 0x1183B,
0xAA50, 0xAA59,
0xAA5C, 0xAA5F,
},
},
}
}


m["Dsrt"] = process_ranges{
m["Cher"] = process_ranges{
"Deseret",
"Cherokee",
1200582,
26549,
"alphabet",
"syllabary",
ranges = {
ranges = {
0x10400, 0x1044F,
0x13A0, 0x13F5,
0x13F8, 0x13FD,
0xAB70, 0xABBF,
},
},
capitalized = true,
}
}


m["Dupl"] = process_ranges{
m["Chis"] = {
"Duployan",
"Chisoi",
5316025,
123173777,
"alphabet",
"abugida",
ranges = {
-- Not in Unicode
0x1BC00, 0x1BC6A,
}
0x1BC70, 0x1BC7C,
 
0x1BC80, 0x1BC88,
m["Chrs"] = process_ranges{
0x1BC90, 0x1BC99,
"Khwarezmian",
0x1BC9C, 0x1BCA3,
72386710,
"abjad",
aliases = {"Chorasmian"},
ranges = {
0x10FB0, 0x10FCB,
},
},
direction = "rtl",
}
}


m["Egyd"] = {
m["Copt"] = process_ranges{
"Demotic",
"Coptic",
188519,
321083,
"abjad, logography",
"alphabet",
-- Not in Unicode
ranges = {
0x03E2, 0x03EF,
0x2C80, 0x2CF3,
0x2CF9, 0x2CFF,
0x102E0, 0x102FB,
},
capitalized = true,
}
}


m["Egyh"] = {
m["Cpmn"] = process_ranges{
"Hieratic",
"Cypro-Minoan",
208111,
1751985,
"abjad, logography",
"syllabary",
-- Unified with Egyptian hieroglyphic in Unicode
aliases = {"Cypro Minoan"},
}
 
m["Egyp"] = process_ranges{
"Egyptian hieroglyphic",
132659,
"abjad, logography",
ranges = {
ranges = {
0x13000, 0x13455,
0x10100, 0x10101,
0x13460, 0x143FA,
0x12F90, 0x12FF2,
},
varieties = {"Hieratic"},
wikipedia_article = "Egyptian hieroglyphs",
normalizationFixes = handle_normalization_fixes{
from = {"𓃁", "𓆖"},
to = {"𓃀𓐶𓂝", "𓆓𓐳𓐷𓏏𓐰𓇿𓐸"}
},
},
}
}


m["Elba"] = process_ranges{
m["Cprt"] = process_ranges{
"Elbasan",
"Cypriot",
1036714,
1757689,
"alphabet",
"syllabary",
ranges = {
ranges = {
0x10500, 0x10527,
0x10100, 0x10102,
0x10107, 0x10133,
0x10137, 0x1013F,
0x10800, 0x10805,
0x10808, 0x10808,
0x1080A, 0x10835,
0x10837, 0x10838,
0x1083C, 0x1083C,
0x1083F, 0x1083F,
},
},
direction = "rtl",
}
}


m["Elym"] = process_ranges{
m["Cyrl"] = process_ranges{
"Elymaic",
"Cyrillic",
60744423,
8209,
"abjad",
"alphabet",
ranges = {
ranges = {
0x10FE0, 0x10FF6,
0x0400, 0x052F,
},
0x1C80, 0x1C8A,
direction = "rtl",
0x1D2B, 0x1D2B,
0x1D78, 0x1D78,
0x1DF8, 0x1DF8,
0x2DE0, 0x2DFF,
0x2E43, 0x2E43,
0xA640, 0xA69F,
0xFE2E, 0xFE2F,
0x1E030, 0x1E06D,
0x1E08F, 0x1E08F,
},
capitalized = true,
}
}


m["Ethi"] = process_ranges{
m["Cyrs"] = {
"Ethiopic",
"Old Cyrillic",
257634,
442244,
"abugida",
m["Cyrl"][3],
aliases = {"Ge'ez", "Geʽez"},
aliases = {"Early Cyrillic"},
ranges = {
ranges = m["Cyrl"].ranges,
0x1200, 0x1248,
characters = m["Cyrl"].characters,
0x124A, 0x124D,
capitalized = m["Cyrl"].capitalized,
0x1250, 0x1256,
wikipedia_article = "Early Cyrillic alphabet",
0x1258, 0x1258,
normalizationFixes = handle_normalization_fixes{
0x125A, 0x125D,
from = {"Ѹ", "ѹ"},
0x1260, 0x1288,
to = {"Ꙋ", "ꙋ"}
0x128A, 0x128D,
},
0x1290, 0x12B0,
}
0x12B2, 0x12B5,
 
0x12B8, 0x12BE,
m["Deva"] = process_ranges{
0x12C0, 0x12C0,
"Devanagari",
0x12C2, 0x12C5,
38592,
0x12C8, 0x12D6,
"abugida",
0x12D8, 0x1310,
ranges = {
0x1312, 0x1315,
0x0900, 0x097F,
0x1318, 0x135A,
0x1CD0, 0x1CF6,
0x135D, 0x137C,
0x1CF8, 0x1CF9,
0x1380, 0x1399,
0x20F0, 0x20F0,
0x2D80, 0x2D96,
0xA830, 0xA839,
0x2DA0, 0x2DA6,
0xA8E0, 0xA8FF,
0x2DA8, 0x2DAE,
0x11B00, 0x11B09,
0x2DB0, 0x2DB6,
0x2DB8, 0x2DBE,
0x2DC0, 0x2DC6,
0x2DC8, 0x2DCE,
0x2DD0, 0x2DD6,
0x2DD8, 0x2DDE,
0xAB01, 0xAB06,
0xAB09, 0xAB0E,
0xAB11, 0xAB16,
0xAB20, 0xAB26,
0xAB28, 0xAB2E,
0x1E7E0, 0x1E7E6,
0x1E7E8, 0x1E7EB,
0x1E7ED, 0x1E7EE,
0x1E7F0, 0x1E7FE,
},
},
}
normalizationFixes = handle_normalization_fixes{
 
from = {"ॆॆ", "ेे", "ाॅ", "ाॆ", "ाꣿ", "ॊॆ", "ाे", "ाै", "ोे", "ाऺ", "ॖॖ", "अॅ", "अॆ", "अा", "एॅ", "एॆ", "एे", "एꣿ", "ऎॆ", "अॉ", "आॅ", "अॊ", "आॆ", "अो", "आे", "अौ", "आै", "ओे", "अऺ", "अऻ", "आऺ", "अाꣿ", "आꣿ", "ऒॆ", "अॖ", "अॗ", "ॶॖ", "्‍?ा"},
m["Gara"] = process_ranges{
to = {"ꣿ", "ै", "ॉ", "ॊ", "ॏ", "ॏ", "ो", "ौ", "ौ", "ऻ", "ॗ", "ॲ", "ऄ", "आ", "ऍ", "ऎ", "ऐ", "ꣾ", "ꣾ", "ऑ", "ऑ", "ऒ", "ऒ", "ओ", "ओ", "औ", "औ", "औ", "ॳ", "ॴ", "ॴ", "ॵ", "ॵ", "ॵ", "ॶ", "ॷ", "ॷ"}
"Garay",
3095302,
"alphabet",
capitalized = true,
direction = "rtl",
ranges = {
0x060C, 0x060C,
0x061B, 0x061B,
0x061F, 0x061F,
0x10D40, 0x10D65,
0x10D69, 0x10D85,
0x10D8E, 0x10D8F,
},
},
}
}


m["Geok"] = process_ranges{
m["Diak"] = process_ranges{
"Khutsuri",
"Dhives Akuru",
1090055,
3307073,
"alphabet",
"abugida",
ranges = { -- Ⴀ-Ⴭ is Asomtavruli, ⴀ-ⴭ is Nuskhuri
aliases = {"Dhivehi Akuru", "Dives Akuru", "Divehi Akuru"},
0x10A0, 0x10C5,
ranges = {
0x10C7, 0x10C7,
0x11900, 0x11906,
0x10CD, 0x10CD,
0x11909, 0x11909,
0x10FB, 0x10FB,
0x1190C, 0x11913,
0x2D00, 0x2D25,
0x11915, 0x11916,
0x2D27, 0x2D27,
0x11918, 0x11935,
0x2D2D, 0x2D2D,
0x11937, 0x11938,
0x1193B, 0x11946,
0x11950, 0x11959,
},
},
varieties = {"Nuskhuri", "Asomtavruli"},
capitalized = true,
}
}


m["Geor"] = process_ranges{
m["Dogr"] = process_ranges{
"Georgian",
"Dogra",
3317411,
72402987,
"alphabet",
"abugida",
ranges = { -- ა-ჿ is lowercase Mkhedruli; Ა-Ჿ is uppercase Mkhedruli (Mtavruli)
ranges = {
0x0589, 0x0589,
0x0964, 0x096F,
0x10D0, 0x10FF,
0xA830, 0xA839,
0x1C90, 0x1CBA,
0x11800, 0x1183B,
0x1CBD, 0x1CBF,
},
},
varieties = {"Mkhedruli", "Mtavruli"},
capitalized = true,
}
}


m["Glag"] = process_ranges{
m["Dsrt"] = process_ranges{
"Glagolitic",
"Deseret",
145625,
1200582,
"alphabet",
"alphabet",
ranges = {
ranges = {
0x0484, 0x0484,
0x10400, 0x1044F,
0x0487, 0x0487,
0x0589, 0x0589,
0x10FB, 0x10FB,
0x2C00, 0x2C5F,
0x2E43, 0x2E43,
0xA66F, 0xA66F,
0x1E000, 0x1E006,
0x1E008, 0x1E018,
0x1E01B, 0x1E021,
0x1E023, 0x1E024,
0x1E026, 0x1E02A,
},
},
capitalized = true,
capitalized = true,
}
}


m["Gong"] = process_ranges{
m["Dupl"] = process_ranges{
"Gunjala Gondi",
"Duployan",
18125340,
5316025,
"abugida",
"alphabet",
ranges = {
ranges = {
0x0964, 0x0965,
0x1BC00, 0x1BC6A,
0x11D60, 0x11D65,
0x1BC70, 0x1BC7C,
0x11D67, 0x11D68,
0x1BC80, 0x1BC88,
0x11D6A, 0x11D8E,
0x1BC90, 0x1BC99,
0x11D90, 0x11D91,
0x1BC9C, 0x1BCA3,
0x11D93, 0x11D98,
0x11DA0, 0x11DA9,
},
},
}
}


m["Gonm"] = process_ranges{
m["Egyd"] = {
"Masaram Gondi",
"Demotic",
16977603,
188519,
"abugida",
"abjad, logography",
ranges = {
-- Not in Unicode
0x0964, 0x0965,
0x11D00, 0x11D06,
0x11D08, 0x11D09,
0x11D0B, 0x11D36,
0x11D3A, 0x11D3A,
0x11D3C, 0x11D3D,
0x11D3F, 0x11D47,
0x11D50, 0x11D59,
},
}
}


m["Goth"] = process_ranges{
m["Egyh"] = {
"Gothic",
"Hieratic",
467784,
208111,
"alphabet",
"abjad, logography",
ranges = {
-- Unified with Egyptian hieroglyphic in Unicode
0x10330, 0x1034A,
},
wikipedia_article = "Gothic alphabet",
}
}


m["Gran"] = process_ranges{
m["Egyp"] = process_ranges{
"Grantha",
"Egyptian hieroglyphic",
1119274,
132659,
"abugida",
"abjad, logography",
ranges = {
ranges = {
0x0951, 0x0952,
0x13000, 0x13455,
0x0964, 0x0965,
0x13460, 0x143FA,
0x0BE6, 0x0BF3,
},
0x1CD0, 0x1CD0,
varieties = {"Hieratic"},
0x1CD2, 0x1CD3,
wikipedia_article = "Egyptian hieroglyphs",
0x1CF2, 0x1CF4,
normalizationFixes = handle_normalization_fixes{
0x1CF8, 0x1CF9,
from = {"𓃁", "𓆖"},
0x20F0, 0x20F0,
to = {"𓃀𓐶𓂝", "𓆓𓐳𓐷𓏏𓐰𓇿𓐸"}
0x11300, 0x11303,
},
0x11305, 0x1130C,
}
0x1130F, 0x11310,
 
0x11313, 0x11328,
m["Elba"] = process_ranges{
0x1132A, 0x11330,
"Elbasan",
0x11332, 0x11333,
1036714,
0x11335, 0x11339,
"alphabet",
0x1133B, 0x11344,
ranges = {
0x11347, 0x11348,
0x10500, 0x10527,
0x1134B, 0x1134D,
0x11350, 0x11350,
0x11357, 0x11357,
0x1135D, 0x11363,
0x11366, 0x1136C,
0x11370, 0x11374,
0x11FD0, 0x11FD1,
0x11FD3, 0x11FD3,
},
},
}
}


m["Grek"] = process_ranges{
m["Elym"] = process_ranges{
"Greek",
"Elymaic",
8216,
60744423,
"alphabet",
"abjad",
ranges = {
ranges = {
0x0342, 0x0342,
0x10FE0, 0x10FF6,
0x0345, 0x0345,
},
0x0370, 0x0377,
direction = "rtl",
0x037A, 0x037F,
0x0384, 0x038A,
0x038C, 0x038C,
0x038E, 0x03A1,
0x03A3, 0x03E1,
0x03F0, 0x03FF,
0x1D26, 0x1D2A,
0x1D5D, 0x1D61,
0x1D66, 0x1D6A,
0x1DBF, 0x1DBF,
0x2126, 0x2127,
0x2129, 0x2129,
0x213C, 0x2140,
0xAB65, 0xAB65,
0x10140, 0x1018E,
0x101A0, 0x101A0,
0x1D200, 0x1D245,
},
capitalized = true,
}
}


m["Polyt"] = process_ranges{
m["Ethi"] = process_ranges{
"Greek",
"Ethiopic",
1475332,
257634,
m["Grek"][3],
"abugida",
ranges = union(m["Grek"].ranges, {
aliases = {"Ge'ez", "Geʽez"},
0x1F00, 0x1F15,
ranges = {
0x1F18, 0x1F1D,
0x1200, 0x1248,
0x1F20, 0x1F45,
0x124A, 0x124D,
0x1F48, 0x1F4D,
0x1250, 0x1256,
0x1F50, 0x1F57,
0x1258, 0x1258,
0x1F59, 0x1F59,
0x125A, 0x125D,
0x1F5B, 0x1F5B,
0x1260, 0x1288,
0x1F5D, 0x1F5D,
0x128A, 0x128D,
0x1F5F, 0x1F7D,
0x1290, 0x12B0,
0x1F80, 0x1FB4,
0x12B2, 0x12B5,
0x1FB6, 0x1FC4,
0x12B8, 0x12BE,
0x1FC6, 0x1FD3,
0x12C0, 0x12C0,
0x1FD6, 0x1FDB,
0x12C2, 0x12C5,
0x1FDD, 0x1FEF,
0x12C8, 0x12D6,
0x1FF2, 0x1FF4,
0x12D8, 0x1310,
0x1FF6, 0x1FFE,
0x1312, 0x1315,
}),
0x1318, 0x135A,
ietf_subtag = "Grek",
0x135D, 0x137C,
capitalized = m["Grek"].capitalized,
0x1380, 0x1399,
parent = "Grek",
0x2D80, 0x2D96,
}
0x2DA0, 0x2DA6,
 
0x2DA8, 0x2DAE,
m["Gujr"] = process_ranges{
0x2DB0, 0x2DB6,
"Gujarati",
0x2DB8, 0x2DBE,
733944,
0x2DC0, 0x2DC6,
"abugida",
0x2DC8, 0x2DCE,
0x2DD0, 0x2DD6,
0x2DD8, 0x2DDE,
0xAB01, 0xAB06,
0xAB09, 0xAB0E,
0xAB11, 0xAB16,
0xAB20, 0xAB26,
0xAB28, 0xAB2E,
0x1E7E0, 0x1E7E6,
0x1E7E8, 0x1E7EB,
0x1E7ED, 0x1E7EE,
0x1E7F0, 0x1E7FE,
},
}
 
m["Gara"] = process_ranges{
"Garay",
3095302,
"alphabet",
capitalized = true,
direction = "rtl",
ranges = {
ranges = {
0x0951, 0x0952,
0x060C, 0x060C,
0x0964, 0x0965,
0x061B, 0x061B,
0x0A81, 0x0A83,
0x061F, 0x061F,
0x0A85, 0x0A8D,
0x10D40, 0x10D65,
0x0A8F, 0x0A91,
0x10D69, 0x10D85,
0x0A93, 0x0AA8,
0x10D8E, 0x10D8F,
0x0AAA, 0x0AB0,
0x0AB2, 0x0AB3,
0x0AB5, 0x0AB9,
0x0ABC, 0x0AC5,
0x0AC7, 0x0AC9,
0x0ACB, 0x0ACD,
0x0AD0, 0x0AD0,
0x0AE0, 0x0AE3,
0x0AE6, 0x0AF1,
0x0AF9, 0x0AFF,
0xA830, 0xA839,
},
normalizationFixes = handle_normalization_fixes{
from = {"ઓ", "અાૈ", "અા", "અૅ", "અે", "અૈ", "અૉ", "અો", "અૌ", "આૅ", "આૈ", "ૅા"},
to = {"અાૅ", "ઔ", "આ", "ઍ", "એ", "ઐ", "ઑ", "ઓ", "ઔ", "ઓ", "ઔ", "ૉ"}
},
},
}
}


m["Gukh"] = process_ranges{
m["Geok"] = process_ranges{
"Khema",
"Khutsuri",
110064239,
1090055,
"abugida",
"alphabet",
aliases = {"Gurung Khema", "Khema Phri", "Khema Lipi"},
ranges = { -- Ⴀ-Ⴭ is Asomtavruli, ⴀ-ⴭ is Nuskhuri
ranges = {
0x10A0, 0x10C5,
0x0965, 0x0965,
0x10C7, 0x10C7,
0x16100, 0x16139,
0x10CD, 0x10CD,
0x10FB, 0x10FB,
0x2D00, 0x2D25,
0x2D27, 0x2D27,
0x2D2D, 0x2D2D,
},
},
varieties = {"Nuskhuri", "Asomtavruli"},
capitalized = true,
}
}


m["Guru"] = process_ranges{
m["Geor"] = process_ranges{
"Gurmukhi",
"Georgian",
689894,
3317411,
"abugida",
"alphabet",
ranges = {
ranges = { -- ა-ჿ is lowercase Mkhedruli; Ა-Ჿ is uppercase Mkhedruli (Mtavruli)
0x0951, 0x0952,
0x0589, 0x0589,
0x0964, 0x0965,
0x10D0, 0x10FF,
0x0A01, 0x0A03,
0x1C90, 0x1CBA,
0x0A05, 0x0A0A,
0x1CBD, 0x1CBF,
0x0A0F, 0x0A10,
0x0A13, 0x0A28,
0x0A2A, 0x0A30,
0x0A32, 0x0A33,
0x0A35, 0x0A36,
0x0A38, 0x0A39,
0x0A3C, 0x0A3C,
0x0A3E, 0x0A42,
0x0A47, 0x0A48,
0x0A4B, 0x0A4D,
0x0A51, 0x0A51,
0x0A59, 0x0A5C,
0x0A5E, 0x0A5E,
0x0A66, 0x0A76,
0xA830, 0xA839,
},
normalizationFixes = handle_normalization_fixes{
from = {"ਅਾ", "ਅੈ", "ਅੌ", "ੲਿ", "ੲੀ", "ੲੇ", "ੳੁ", "ੳੂ", "ੳੋ"},
to = {"ਆ", "ਐ", "ਔ", "ਇ", "ਈ", "ਏ", "ਉ", "ਊ", "ਓ"}
},
},
varieties = {"Mkhedruli", "Mtavruli"},
capitalized = true,
}
}


m["Hang"] = process_ranges{
m["Glag"] = process_ranges{
"Hangul",
"Glagolitic",
8222,
145625,
"syllabary",
"alphabet",
aliases = {"Hangeul"},
ranges = {
ranges = {
0x1100, 0x11FF,
0x0484, 0x0484,
0x3001, 0x3003,
0x0487, 0x0487,
0x3008, 0x3011,
0x0589, 0x0589,
0x3013, 0x301F,
0x10FB, 0x10FB,
0x302E, 0x3030,
0x2C00, 0x2C5F,
0x3037, 0x3037,
0x2E43, 0x2E43,
0x30FB, 0x30FB,
0xA66F, 0xA66F,
0x3131, 0x318E,
0x1E000, 0x1E006,
0x3200, 0x321E,
0x1E008, 0x1E018,
0x3260, 0x327E,
0x1E01B, 0x1E021,
0xA960, 0xA97C,
0x1E023, 0x1E024,
0xAC00, 0xD7A3,
0x1E026, 0x1E02A,
0xD7B0, 0xD7C6,
0xD7CB, 0xD7FB,
0xFE45, 0xFE46,
0xFF61, 0xFF65,
0xFFA0, 0xFFBE,
0xFFC2, 0xFFC7,
0xFFCA, 0xFFCF,
0xFFD2, 0xFFD7,
0xFFDA, 0xFFDC,
},
},
capitalized = true,
}
}


m["Hani"] = process_ranges{
m["Gong"] = process_ranges{
"Han",
"Gunjala Gondi",
8201,
18125340,
"logography",
"abugida",
ranges = {
ranges = {
0x2E80, 0x2E99,
0x0964, 0x0965,
0x2E9B, 0x2EF3,
0x11D60, 0x11D65,
0x2F00, 0x2FD5,
0x11D67, 0x11D68,
0x2FF0, 0x2FFF,
0x11D6A, 0x11D8E,
0x3001, 0x3003,
0x11D90, 0x11D91,
0x3005, 0x3011,
0x11D93, 0x11D98,
0x3013, 0x301F,
0x11DA0, 0x11DA9,
0x3021, 0x302D,
},
0x3030, 0x3030,
}
0x3037, 0x303F,
 
0x3190, 0x319F,
m["Gonm"] = process_ranges{
0x31C0, 0x31E5,
"Masaram Gondi",
0x31EF, 0x31EF,
16977603,
0x3220, 0x3247,
"abugida",
0x3280, 0x32B0,
ranges = {
0x32C0, 0x32CB,
0x0964, 0x0965,
0x30FB, 0x30FB,
0x11D00, 0x11D06,
0x32FF, 0x32FF,
0x11D08, 0x11D09,
0x3358, 0x3370,
0x11D0B, 0x11D36,
0x337B, 0x337F,
0x11D3A, 0x11D3A,
0x33E0, 0x33FE,
0x11D3C, 0x11D3D,
0x3400, 0x4DBF,
0x11D3F, 0x11D47,
0x4E00, 0x9FFF,
0x11D50, 0x11D59,
0xA700, 0xA707,
0xF900, 0xFA6D,
0xFA70, 0xFAD9,
0xFE45, 0xFE46,
0xFF61, 0xFF65,
0x16FE2, 0x16FE3,
0x16FF0, 0x16FF1,
0x1D360, 0x1D371,
0x1F250, 0x1F251,
0x20000, 0x2A6DF,
0x2A700, 0x2B739,
0x2B740, 0x2B81D,
0x2B820, 0x2CEA1,
0x2CEB0, 0x2EBE0,
0x2EBF0, 0x2EE5D,
0x2F800, 0x2FA1D,
0x30000, 0x3134A,
0x31350, 0x323AF,
},
},
varieties = {"Hanzi", "Kanji", "Hanja", "Chu Nom"},
spaces = false,
}
}


m["Hans"] = {
m["Goth"] = process_ranges{
"Simplified Han",
"Gothic",
185614,
467784,
m["Hani"][3],
"alphabet",
ranges = m["Hani"].ranges,
ranges = {
characters = m["Hani"].characters,
0x10330, 0x1034A,
spaces = m["Hani"].spaces,
},
parent = "Hani",
wikipedia_article = "Gothic alphabet",
}
}


m["Hant"] = {
m["Gran"] = process_ranges{
"Traditional Han",
"Grantha",
178528,
1119274,
m["Hani"][3],
"abugida",
ranges = m["Hani"].ranges,
ranges = {
characters = m["Hani"].characters,
0x0951, 0x0952,
spaces = m["Hani"].spaces,
0x0964, 0x0965,
parent = "Hani",
0x0BE6, 0x0BF3,
}
0x1CD0, 0x1CD0,
 
0x1CD2, 0x1CD3,
m["Hano"] = process_ranges{
0x1CF2, 0x1CF4,
"Hanunoo",
0x1CF8, 0x1CF9,
1584045,
0x20F0, 0x20F0,
"abugida",
0x11300, 0x11303,
aliases = {"Hanunó'o", "Hanuno'o"},
0x11305, 0x1130C,
ranges = {
0x1130F, 0x11310,
0x1720, 0x1736,
0x11313, 0x11328,
},
0x1132A, 0x11330,
}
0x11332, 0x11333,
 
0x11335, 0x11339,
m["Hatr"] = process_ranges{
0x1133B, 0x11344,
"Hatran",
0x11347, 0x11348,
20813038,
0x1134B, 0x1134D,
"abjad",
0x11350, 0x11350,
ranges = {
0x11357, 0x11357,
0x108E0, 0x108F2,
0x1135D, 0x11363,
0x108F4, 0x108F5,
0x11366, 0x1136C,
0x108FB, 0x108FF,
0x11370, 0x11374,
0x11FD0, 0x11FD1,
0x11FD3, 0x11FD3,
},
},
direction = "rtl",
}
}


m["Hebr"] = process_ranges{
m["Grek"] = process_ranges{
"Hebrew",
"Greek",
33513,
8216,
"abjad", -- more precisely, impure abjad
"alphabet",
ranges = {
ranges = {
0x0591, 0x05C7,
0x0342, 0x0342,
0x05D0, 0x05EA,
0x0345, 0x0345,
0x05EF, 0x05F4,
0x0370, 0x0377,
0x2135, 0x2138,
0x037A, 0x037F,
0xFB1D, 0xFB36,
0x0384, 0x038A,
0xFB38, 0xFB3C,
0x038C, 0x038C,
0xFB3E, 0xFB3E,
0x038E, 0x03A1,
0xFB40, 0xFB41,
0x03A3, 0x03E1,
0xFB43, 0xFB44,
0x03F0, 0x03FF,
0xFB46, 0xFB4F,
0x1D26, 0x1D2A,
},
0x1D5D, 0x1D61,
direction = "rtl",
0x1D66, 0x1D6A,
}
0x1DBF, 0x1DBF,
0x2126, 0x2127,
0x2129, 0x2129,
0x213C, 0x2140,
0xAB65, 0xAB65,
0x10140, 0x1018E,
0x101A0, 0x101A0,
0x1D200, 0x1D245,
},
capitalized = true,
}


m["Hira"] = process_ranges{
m["Polyt"] = process_ranges{
"Hiragana",
"Greek",
48332,
1475332,
"syllabary",
m["Grek"][3],
ranges = {
ranges = union(m["Grek"].ranges, {
0x3001, 0x3003,
0x1F00, 0x1F15,
0x3008, 0x3011,
0x1F18, 0x1F1D,
0x3013, 0x301F,
0x1F20, 0x1F45,
0x3030, 0x3035,
0x1F48, 0x1F4D,
0x3037, 0x3037,
0x1F50, 0x1F57,
0x303C, 0x303D,
0x1F59, 0x1F59,
0x3041, 0x3096,
0x1F5B, 0x1F5B,
0x3099, 0x30A0,
0x1F5D, 0x1F5D,
0x30FB, 0x30FC,
0x1F5F, 0x1F7D,
0xFE45, 0xFE46,
0x1F80, 0x1FB4,
0xFF61, 0xFF65,
0x1FB6, 0x1FC4,
0xFF70, 0xFF70,
0x1FC6, 0x1FD3,
0xFF9E, 0xFF9F,
0x1FD6, 0x1FDB,
0x1B001, 0x1B11F,
0x1FDD, 0x1FEF,
0x1B132, 0x1B132,
0x1FF2, 0x1FF4,
0x1B150, 0x1B152,
0x1FF6, 0x1FFE,
0x1F200, 0x1F200,
}),
},
ietf_subtag = "Grek",
varieties = {"Hentaigana"},
capitalized = m["Grek"].capitalized,
spaces = false,
parent = "Grek",
}
}


m["Hluw"] = process_ranges{
m["Gujr"] = process_ranges{
"Anatolian hieroglyphic",
"Gujarati",
521323,
733944,
"logography, syllabary",
"abugida",
ranges = {
ranges = {
0x14400, 0x14646,
0x0951, 0x0952,
},
0x0964, 0x0965,
wikipedia_article = "Anatolian hieroglyphs",
0x0A81, 0x0A83,
}
0x0A85, 0x0A8D,
 
0x0A8F, 0x0A91,
m["Hmng"] = process_ranges{
0x0A93, 0x0AA8,
"Pahawh Hmong",
0x0AAA, 0x0AB0,
365954,
0x0AB2, 0x0AB3,
"semisyllabary",
0x0AB5, 0x0AB9,
aliases = {"Hmong"},
0x0ABC, 0x0AC5,
ranges = {
0x0AC7, 0x0AC9,
0x16B00, 0x16B45,
0x0ACB, 0x0ACD,
0x16B50, 0x16B59,
0x0AD0, 0x0AD0,
0x16B5B, 0x16B61,
0x0AE0, 0x0AE3,
0x16B63, 0x16B77,
0x0AE6, 0x0AF1,
0x16B7D, 0x16B8F,
0x0AF9, 0x0AFF,
0xA830, 0xA839,
},
normalizationFixes = handle_normalization_fixes{
from = {"ઓ", "અાૈ", "અા", "અૅ", "અે", "અૈ", "અૉ", "અો", "અૌ", "આૅ", "આૈ", "ૅા"},
to = {"અાૅ", "ઔ", "આ", "ઍ", "એ", "ઐ", "ઑ", "ઓ", "ઔ", "ઓ", "ઔ", "ૉ"}
},
},
}
}


m["Hmnp"] = process_ranges{
m["Gukh"] = process_ranges{
"Nyiakeng Puachue Hmong",
"Khema",
33712499,
110064239,
"alphabet",
"abugida",
aliases = {"Gurung Khema", "Khema Phri", "Khema Lipi"},
ranges = {
ranges = {
0x1E100, 0x1E12C,
0x0965, 0x0965,
0x1E130, 0x1E13D,
0x16100, 0x16139,
0x1E140, 0x1E149,
0x1E14E, 0x1E14F,
},
},
}
}


m["Hung"] = process_ranges{
m["Guru"] = process_ranges{
"Old Hungarian",
"Gurmukhi",
446224,
689894,
"alphabet",
"abugida",
aliases = {"Hungarian runic"},
ranges = {
ranges = {
0x10C80, 0x10CB2,
0x0951, 0x0952,
0x10CC0, 0x10CF2,
0x0964, 0x0965,
0x10CFA, 0x10CFF,
0x0A01, 0x0A03,
},
0x0A05, 0x0A0A,
capitalized = true,
0x0A0F, 0x0A10,
direction = "rtl",
0x0A13, 0x0A28,
0x0A2A, 0x0A30,
0x0A32, 0x0A33,
0x0A35, 0x0A36,
0x0A38, 0x0A39,
0x0A3C, 0x0A3C,
0x0A3E, 0x0A42,
0x0A47, 0x0A48,
0x0A4B, 0x0A4D,
0x0A51, 0x0A51,
0x0A59, 0x0A5C,
0x0A5E, 0x0A5E,
0x0A66, 0x0A76,
0xA830, 0xA839,
},
normalizationFixes = handle_normalization_fixes{
from = {"ਅਾ", "ਅੈ", "ਅੌ", "ੲਿ", "ੲੀ", "ੲੇ", "ੳੁ", "ੳੂ", "ੳੋ"},
to = {"ਆ", "ਐ", "ਔ", "ਇ", "", "ਏ", "ਉ", "ਊ", "ਓ"}
},
}
}


m["Ibrnn"] = {
m["Hang"] = process_ranges{
"Northeastern Iberian",
"Hangul",
1113155,
8222,
"semisyllabary",
"syllabary",
ietf_subtag = "Zzzz",
aliases = {"Hangeul"},
-- Not in Unicode
ranges = {
0x1100, 0x11FF,
0x3001, 0x3003,
0x3008, 0x3011,
0x3013, 0x301F,
0x302E, 0x3030,
0x3037, 0x3037,
0x30FB, 0x30FB,
0x3131, 0x318E,
0x3200, 0x321E,
0x3260, 0x327E,
0xA960, 0xA97C,
0xAC00, 0xD7A3,
0xD7B0, 0xD7C6,
0xD7CB, 0xD7FB,
0xFE45, 0xFE46,
0xFF61, 0xFF65,
0xFFA0, 0xFFBE,
0xFFC2, 0xFFC7,
0xFFCA, 0xFFCF,
0xFFD2, 0xFFD7,
0xFFDA, 0xFFDC,
},
}
}


m["Ibrns"] = {
m["Hani"] = process_ranges{
"Southeastern Iberian",
"Han",
2305351,
8201,
"semisyllabary",
"logography",
ietf_subtag = "Zzzz",
ranges = {
-- Not in Unicode
0x2E80, 0x2E99,
}
0x2E9B, 0x2EF3,
 
0x2F00, 0x2FD5,
m["Image"] = {
0x2FF0, 0x2FFF,
-- To be used to avoid any formatting or link processing
0x3001, 0x3003,
"Image-rendered",
0x3005, 0x3011,
478798,
0x3013, 0x301F,
-- This should not have any characters listed
0x3021, 0x302D,
ietf_subtag = "Zyyy",
0x3030, 0x3030,
translit = false,
0x3037, 0x303F,
character_category = false, -- none
0x3190, 0x319F,
}
0x31C0, 0x31E5,
 
0x31EF, 0x31EF,
m["Inds"] = {
0x3220, 0x3247,
"Indus",
0x3280, 0x32B0,
601388,
0x32C0, 0x32CB,
aliases = {"Harappan", "Indus Valley"},
0x30FB, 0x30FB,
}
0x32FF, 0x32FF,
 
0x3358, 0x3370,
m["Ipach"] = {
0x337B, 0x337F,
"International Phonetic Alphabet",
0x33E0, 0x33FE,
21204,
0x3400, 0x4DBF,
aliases = {"IPA"},
0x4E00, 0x9FFF,
ietf_subtag = "Latn",
0xA700, 0xA707,
}
0xF900, 0xFA6D,
 
0xFA70, 0xFAD9,
m["Ital"] = process_ranges{
0xFE45, 0xFE46,
"Old Italic",
0xFF61, 0xFF65,
4891256,
0x16FE2, 0x16FE3,
"alphabet",
0x16FF0, 0x16FF1,
ranges = {
0x1D360, 0x1D371,
0x10300, 0x10323,
0x1F250, 0x1F251,
0x1032D, 0x1032F,
0x20000, 0x2A6DF,
0x2A700, 0x2B739,
0x2B740, 0x2B81D,
0x2B820, 0x2CEA1,
0x2CEB0, 0x2EBE0,
0x2EBF0, 0x2EE5D,
0x2F800, 0x2FA1D,
0x30000, 0x3134A,
0x31350, 0x323AF,
},
},
varieties = {"Hanzi", "Kanji", "Hanja", "Chu Nom"},
spaces = false,
}
}


m["Java"] = process_ranges{
m["Hans"] = {
"Javanese",
"Simplified Han",
879704,
185614,
m["Hani"][3],
ranges = m["Hani"].ranges,
characters = m["Hani"].characters,
spaces = m["Hani"].spaces,
parent = "Hani",
}
 
m["Hant"] = {
"Traditional Han",
178528,
m["Hani"][3],
ranges = m["Hani"].ranges,
characters = m["Hani"].characters,
spaces = m["Hani"].spaces,
parent = "Hani",
}
 
m["Hano"] = process_ranges{
"Hanunoo",
1584045,
"abugida",
"abugida",
aliases = {"Hanunó'o", "Hanuno'o"},
ranges = {
ranges = {
0xA980, 0xA9CD,
0x1720, 0x1736,
0xA9CF, 0xA9D9,
0xA9DE, 0xA9DF,
},
},
}
}


m["Jurc"] = {
m["Hatr"] = process_ranges{
"Jurchen",
"Hatran",
912240,
20813038,
"logography",
"abjad",
spaces = false,
}
 
m["Kali"] = process_ranges{
"Kayah Li",
4919239,
"abugida",
ranges = {
ranges = {
0xA900, 0xA92F,
0x108E0, 0x108F2,
0x108F4, 0x108F5,
0x108FB, 0x108FF,
},
},
direction = "rtl",
}
}


m["Kana"] = process_ranges{
m["Hebr"] = process_ranges{
"Katakana",
"Hebrew",
82946,
33513,
"abjad", -- more precisely, impure abjad
ranges = {
0x0591, 0x05C7,
0x05D0, 0x05EA,
0x05EF, 0x05F4,
0x2135, 0x2138,
0xFB1D, 0xFB36,
0xFB38, 0xFB3C,
0xFB3E, 0xFB3E,
0xFB40, 0xFB41,
0xFB43, 0xFB44,
0xFB46, 0xFB4F,
},
direction = "rtl",
}
 
m["Hira"] = process_ranges{
"Hiragana",
48332,
"syllabary",
"syllabary",
ranges = {
ranges = {
Line 1,530: Line 1,448:
0x3037, 0x3037,
0x3037, 0x3037,
0x303C, 0x303D,
0x303C, 0x303D,
0x3099, 0x309C,
0x3041, 0x3096,
0x30A0, 0x30FF,
0x3099, 0x30A0,
0x31F0, 0x31FF,
0x30FB, 0x30FC,
0x32D0, 0x32FE,
0x3300, 0x3357,
0xFE45, 0xFE46,
0xFE45, 0xFE46,
0xFF61, 0xFF9F,
0xFF61, 0xFF65,
0x1AFF0, 0x1AFF3,
0xFF70, 0xFF70,
0x1AFF5, 0x1AFFB,
0xFF9E, 0xFF9F,
0x1AFFD, 0x1AFFE,
0x1B001, 0x1B11F,
0x1B000, 0x1B000,
0x1B132, 0x1B132,
0x1B120, 0x1B122,
0x1B150, 0x1B152,
0x1B155, 0x1B155,
0x1F200, 0x1F200,
0x1B164, 0x1B167,
},
},
varieties = {"Hentaigana"},
spaces = false,
spaces = false,
}
}


m["Kawi"] = process_ranges{
m["Hluw"] = process_ranges{
"Kawi",
"Anatolian hieroglyphic",
975802,
521323,
"abugida",
"logography, syllabary",
ranges = {
ranges = {
0x11F00, 0x11F10,
0x14400, 0x14646,
0x11F12, 0x11F3A,
0x11F3E, 0x11F5A,
},
},
wikipedia_article = "Anatolian hieroglyphs",
}
}


m["Khar"] = process_ranges{
m["Hmng"] = process_ranges{
"Kharoshthi",
"Pahawh Hmong",
1161266,
365954,
"abugida",
"semisyllabary",
aliases = {"Hmong"},
ranges = {
ranges = {
0x10A00, 0x10A03,
0x16B00, 0x16B45,
0x10A05, 0x10A06,
0x16B50, 0x16B59,
0x10A0C, 0x10A13,
0x16B5B, 0x16B61,
0x10A15, 0x10A17,
0x16B63, 0x16B77,
0x10A19, 0x10A35,
0x16B7D, 0x16B8F,
0x10A38, 0x10A3A,
0x10A3F, 0x10A48,
0x10A50, 0x10A58,
},
},
direction = "rtl",
}
}


m["Khmr"] = process_ranges{
m["Hmnp"] = process_ranges{
"Khmer",
"Nyiakeng Puachue Hmong",
1054190,
33712499,
"abugida",
"alphabet",
ranges = {
ranges = {
0x1780, 0x17DD,
0x1E100, 0x1E12C,
0x17E0, 0x17E9,
0x1E130, 0x1E13D,
0x17F0, 0x17F9,
0x1E140, 0x1E149,
0x19E0, 0x19FF,
0x1E14E, 0x1E14F,
},
spaces = false,
normalizationFixes = handle_normalization_fixes{
from = {"ឣ", "ឤ"},
to = {"អ", "អា"}
},
},
}
}


m["Khoj"] = process_ranges{
m["Hung"] = process_ranges{
"Khojki",
"Old Hungarian",
1740656,
446224,
"abugida",
"alphabet",
aliases = {"Hungarian runic"},
ranges = {
ranges = {
0x0AE6, 0x0AEF,
0x10C80, 0x10CB2,
0xA830, 0xA839,
0x10CC0, 0x10CF2,
0x11200, 0x11211,
0x10CFA, 0x10CFF,
0x11213, 0x11241,
},
normalizationFixes = handle_normalization_fixes{
from = {"𑈀𑈬𑈱", "𑈀𑈬", "𑈀𑈱", "𑈀𑈳", "𑈁𑈱", "𑈆𑈬", "𑈬𑈰", "𑈬𑈱", "𑉀𑈮"},
to = {"𑈇", "𑈁", "𑈅", "𑈇", "𑈇", "𑈃", "𑈲", "𑈳", "𑈂"}
},
},
capitalized = true,
direction = "rtl",
}
}


m["Khomt"] = {
m["Ibrnn"] = {
"Khom Thai",
"Northeastern Iberian",
13023788,
1113155,
"abugida",
"semisyllabary",
ietf_subtag = "Zzzz",
-- Not in Unicode
-- Not in Unicode
}
}


m["Kitl"] = {
m["Ibrns"] = {
"Khitan large",
"Southeastern Iberian",
6401797,
2305351,
"logography",
"semisyllabary",
spaces = false,
ietf_subtag = "Zzzz",
-- Not in Unicode
}
}


m["Kits"] = process_ranges{
m["Image"] = {
"Khitan small",
-- To be used to avoid any formatting or link processing
6401800,
"Image-rendered",
"logography, syllabary",
478798,
ranges = {
-- This should not have any characters listed
0x16FE4, 0x16FE4,
ietf_subtag = "Zyyy",
0x18B00, 0x18CD5,
translit = false,
0x18CFF, 0x18CFF,
character_category = false, -- none
},
spaces = false,
}
}


m["Knda"] = process_ranges{
m["Inds"] = {
"Kannada",
"Indus",
839666,
601388,
aliases = {"Harappan", "Indus Valley"},
}
 
m["Ipach"] = {
"International Phonetic Alphabet",
21204,
aliases = {"IPA"},
ietf_subtag = "Latn",
}
 
m["Ital"] = process_ranges{
"Old Italic",
4891256,
"alphabet",
ranges = {
0x10300, 0x10323,
0x1032D, 0x1032F,
},
}
 
m["Java"] = process_ranges{
"Javanese",
879704,
"abugida",
"abugida",
ranges = {
ranges = {
0x0951, 0x0952,
0xA980, 0xA9CD,
0x0964, 0x0965,
0xA9CF, 0xA9D9,
0x0C80, 0x0C8C,
0xA9DE, 0xA9DF,
0x0C8E, 0x0C90,
0x0C92, 0x0CA8,
0x0CAA, 0x0CB3,
0x0CB5, 0x0CB9,
0x0CBC, 0x0CC4,
0x0CC6, 0x0CC8,
0x0CCA, 0x0CCD,
0x0CD5, 0x0CD6,
0x0CDD, 0x0CDE,
0x0CE0, 0x0CE3,
0x0CE6, 0x0CEF,
0x0CF1, 0x0CF3,
0x1CD0, 0x1CD0,
0x1CD2, 0x1CD3,
0x1CDA, 0x1CDA,
0x1CF2, 0x1CF2,
0x1CF4, 0x1CF4,
0xA830, 0xA835,
},
normalizationFixes = handle_normalization_fixes{
from = {"ಉಾ", "ಋಾ", "ಒೌ"},
to = {"ಊ", "ೠ", "ಔ"}
},
},
}
}


m["Kpel"] = {
m["Jurc"] = {
"Kpelle",
"Jurchen",
1586299,
912240,
"syllabary",
"logography",
-- Not in Unicode
spaces = false,
}
}


m["Krai"] = process_ranges{
m["Kali"] = process_ranges{
"Kirat Rai",
"Kayah Li",
123173834,
4919239,
"abugida",
"abugida",
aliases = {"Rai", "Khambu Rai", "Rai Barṇamālā", "Kirat Khambu Rai"},
ranges = {
ranges = {
0x16D40, 0x16D79,
0xA900, 0xA92F,
},
},
}
}


m["Kthi"] = process_ranges{
m["Kana"] = process_ranges{
"Kaithi",
"Katakana",
1253814,
82946,
"abugida",
"syllabary",
ranges = {
ranges = {
0x0966, 0x096F,
0x3001, 0x3003,
0xA830, 0xA839,
0x3008, 0x3011,
0x11080, 0x110C2,
0x3013, 0x301F,
0x110CD, 0x110CD,
0x3030, 0x3035,
0x3037, 0x3037,
0x303C, 0x303D,
0x3099, 0x309C,
0x30A0, 0x30FF,
0x31F0, 0x31FF,
0x32D0, 0x32FE,
0x3300, 0x3357,
0xFE45, 0xFE46,
0xFF61, 0xFF9F,
0x1AFF0, 0x1AFF3,
0x1AFF5, 0x1AFFB,
0x1AFFD, 0x1AFFE,
0x1B000, 0x1B000,
0x1B120, 0x1B122,
0x1B155, 0x1B155,
0x1B164, 0x1B167,
},
},
spaces = false,
}
}


m["Kulit"] = {
m["Kawi"] = process_ranges{
"Kulitan",
"Kawi",
6443044,
975802,
"abugida",
"abugida",
-- Not in Unicode
ranges = {
}
0x11F00, 0x11F10,
0x11F12, 0x11F3A,
0x11F3E, 0x11F5A,
},
}


m["Lana"] = process_ranges{
m["Khar"] = process_ranges{
"Tai Tham",
"Kharoshthi",
1314503,
1161266,
"abugida",
"abugida",
aliases = {"Tham", "Tua Mueang", "Lanna"},
ranges = {
ranges = {
0x1A20, 0x1A5E,
0x10A00, 0x10A03,
0x1A60, 0x1A7C,
0x10A05, 0x10A06,
0x1A7F, 0x1A89,
0x10A0C, 0x10A13,
0x1A90, 0x1A99,
0x10A15, 0x10A17,
0x1AA0, 0x1AAD,
0x10A19, 0x10A35,
0x10A38, 0x10A3A,
0x10A3F, 0x10A48,
0x10A50, 0x10A58,
},
},
spaces = false,
direction = "rtl",
}
}


m["Laoo"] = process_ranges{
m["Khmr"] = process_ranges{
"Lao",
"Khmer",
1815229,
1054190,
"abugida",
"abugida",
ranges = {
ranges = {
0x0E81, 0x0E82,
0x1780, 0x17DD,
0x0E84, 0x0E84,
0x17E0, 0x17E9,
0x0E86, 0x0E8A,
0x17F0, 0x17F9,
0x0E8C, 0x0EA3,
0x19E0, 0x19FF,
0x0EA5, 0x0EA5,
0x0EA7, 0x0EBD,
0x0EC0, 0x0EC4,
0x0EC6, 0x0EC6,
0x0EC8, 0x0ECE,
0x0ED0, 0x0ED9,
0x0EDC, 0x0EDF,
},
},
spaces = false,
spaces = false,
normalizationFixes = handle_normalization_fixes{
from = {"ឣ", "ឤ"},
to = {"អ", "អា"}
},
}
}


m["Latn"] = process_ranges{
m["Khoj"] = process_ranges{
"Latin",
"Khojki",
8229,
1740656,
"alphabet",
"abugida",
aliases = {"Roman"},
ranges = {
ranges = {
0x0041, 0x005A,
0x0AE6, 0x0AEF,
0x0061, 0x007A,
0xA830, 0xA839,
0x00AA, 0x00AA,
0x11200, 0x11211,
0x00BA, 0x00BA,
0x11213, 0x11241,
0x00C0, 0x00D6,
},
0x00D8, 0x00F6,
normalizationFixes = handle_normalization_fixes{
0x00F8, 0x02B8,
from = {"𑈀𑈬𑈱", "𑈀𑈬", "𑈀𑈱", "𑈀𑈳", "𑈁𑈱", "𑈆𑈬", "𑈬𑈰", "𑈬𑈱", "𑉀𑈮"},
0x02C0, 0x02C1,
to = {"𑈇", "𑈁", "𑈅", "𑈇", "𑈇", "𑈃", "𑈲", "𑈳", "𑈂"}
0x02E0, 0x02E4,
},
0x0363, 0x036F,
}
0x0485, 0x0486,
 
0x0951, 0x0952,
m["Khomt"] = {
0x10FB, 0x10FB,
"Khom Thai",
0x1D00, 0x1D25,
13023788,
0x1D2C, 0x1D5C,
"abugida",
0x1D62, 0x1D65,
-- Not in Unicode
0x1D6B, 0x1D77,
}
0x1D79, 0x1DBE,
 
0x1DF8, 0x1DF8,
m["Kitl"] = {
0x1E00, 0x1EFF,
"Khitan large",
0x202F, 0x202F,
6401797,
0x2071, 0x2071,
"logography",
0x207F, 0x207F,
spaces = false,
0x2090, 0x209C,
}
0x20F0, 0x20F0,
 
0x2100, 0x2125,
m["Kits"] = process_ranges{
0x2128, 0x2128,
"Khitan small",
0x212A, 0x2134,
6401800,
0x2139, 0x213B,
"logography, syllabary",
0x2141, 0x214E,
ranges = {
0x2160, 0x2188,
0x16FE4, 0x16FE4,
0x2C60, 0x2C7F,
0x18B00, 0x18CD5,
0xA700, 0xA707,
0x18CFF, 0x18CFF,
0xA722, 0xA787,
},
0xA78B, 0xA7CD,
spaces = false,
0xA7D0, 0xA7D1,
}
0xA7D3, 0xA7D3,
 
0xA7D5, 0xA7DC,
m["Knda"] = process_ranges{
0xA7F2, 0xA7FF,
"Kannada",
0xA92E, 0xA92E,
839666,
0xAB30, 0xAB5A,
"abugida",
0xAB5C, 0xAB64,
ranges = {
0xAB66, 0xAB69,
0x0951, 0x0952,
0xFB00, 0xFB06,
0x0964, 0x0965,
0xFF21, 0xFF3A,
0x0C80, 0x0C8C,
0xFF41, 0xFF5A,
0x0C8E, 0x0C90,
0x10780, 0x10785,
0x0C92, 0x0CA8,
0x10787, 0x107B0,
0x0CAA, 0x0CB3,
0x107B2, 0x107BA,
0x0CB5, 0x0CB9,
0x1DF00, 0x1DF1E,
0x0CBC, 0x0CC4,
0x1DF25, 0x1DF2A,
0x0CC6, 0x0CC8,
0x0CCA, 0x0CCD,
0x0CD5, 0x0CD6,
0x0CDD, 0x0CDE,
0x0CE0, 0x0CE3,
0x0CE6, 0x0CEF,
0x0CF1, 0x0CF3,
0x1CD0, 0x1CD0,
0x1CD2, 0x1CD3,
0x1CDA, 0x1CDA,
0x1CF2, 0x1CF2,
0x1CF4, 0x1CF4,
0xA830, 0xA835,
},
normalizationFixes = handle_normalization_fixes{
from = {"ಉಾ", "ಋಾ", "ಒೌ"},
to = {"ಊ", "ೠ", "ಔ"}
},
}
 
m["Kpel"] = {
"Kpelle",
1586299,
"syllabary",
-- Not in Unicode
}
 
m["Krai"] = process_ranges{
"Kirat Rai",
123173834,
"abugida",
aliases = {"Rai", "Khambu Rai", "Rai Barṇamālā", "Kirat Khambu Rai"},
ranges = {
0x16D40, 0x16D79,
},
},
varieties = {"Rumi", "Romaji", "Rōmaji", "Romaja"},
}
capitalized = true,
 
translit = false,
m["Kthi"] = process_ranges{
"Kaithi",
1253814,
"abugida",
ranges = {
0x0966, 0x096F,
0xA830, 0xA839,
0x11080, 0x110C2,
0x110CD, 0x110CD,
},
}
 
m["Kulit"] = {
"Kulitan",
6443044,
"abugida",
-- Not in Unicode
}
 
m["Lana"] = process_ranges{
"Tai Tham",
1314503,
"abugida",
aliases = {"Tham", "Tua Mueang", "Lanna"},
ranges = {
0x1A20, 0x1A5E,
0x1A60, 0x1A7C,
0x1A7F, 0x1A89,
0x1A90, 0x1A99,
0x1AA0, 0x1AAD,
},
spaces = false,
}
 
m["Laoo"] = process_ranges{
"Lao",
1815229,
"abugida",
ranges = {
0x0E81, 0x0E82,
0x0E84, 0x0E84,
0x0E86, 0x0E8A,
0x0E8C, 0x0EA3,
0x0EA5, 0x0EA5,
0x0EA7, 0x0EBD,
0x0EC0, 0x0EC4,
0x0EC6, 0x0EC6,
0x0EC8, 0x0ECE,
0x0ED0, 0x0ED9,
0x0EDC, 0x0EDF,
},
spaces = false,
}
}