From 5bb4c3e81adb098a4265631fc4ee82f270214fb7 Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Mon, 31 May 2021 13:59:16 -0700 Subject: [PATCH] add ArabicShaping, fixes #1 --- generate.zig | 1 + scripts/arabic_shaping.zig | 156 +++++++ src/arabic_shaping.zig | 904 +++++++++++++++++++++++++++++++++++++ src/lib.zig | 2 +- src/main.zig | 1 + 5 files changed, 1063 insertions(+), 1 deletion(-) create mode 100644 scripts/arabic_shaping.zig create mode 100644 src/arabic_shaping.zig diff --git a/generate.zig b/generate.zig index dbc1d348583c3c5c2101542c4095c0061c72689a..5badf2fbd2c64476ba0d96792c7d50127911095d 100644 --- a/generate.zig +++ b/generate.zig @@ -2,6 +2,7 @@ const std = @import("std"); const files = &[_]type{ @import("scripts/blocks.zig"), + @import("./scripts/arabic_shaping.zig"), }; pub fn main() !void { diff --git a/scripts/arabic_shaping.zig b/scripts/arabic_shaping.zig new file mode 100644 index 0000000000000000000000000000000000000000..14b8acef69e63d3648ab5602e5bcea169b573c76 --- /dev/null +++ b/scripts/arabic_shaping.zig @@ -0,0 +1,156 @@ +const std = @import("std"); +const common = @import("./_common.zig"); + +pub const default = common.Main(struct { + pub const source_url = "https://unicode.org/Public/UCD/latest/ucd/ArabicShaping.txt"; + + pub const dest_file = "src/arabic_shaping.zig"; + + pub const dest_header = + \\pub const Shaping = struct { + \\ codepoint: u21, + \\ schematic_name: []const u8, + \\ joining_type: Joining.Type, + \\ joining_group: Joining.Group, + \\}; + \\ + \\pub const Joining = struct { + \\ pub const Type = enum { + \\ U, + \\ D, + \\ R, + \\ C, + \\ T, + \\ L, + \\ }; + \\ + \\ pub const Group = enum { + \\ No_Joining_Group, + \\ YEH, + \\ ALEF, + \\ WAW, + \\ BEH, + \\ TEH_MARBUTA, + \\ HAH, + \\ DAL, + \\ REH, + \\ SEEN, + \\ SAD, + \\ TAH, + \\ AIN, + \\ GAF, + \\ FARSI_YEH, + \\ FEH, + \\ QAF, + \\ KAF, + \\ LAM, + \\ MEEM, + \\ NOON, + \\ HEH, + \\ SWASH_KAF, + \\ NYA, + \\ KNOTTED_HEH, + \\ HEH_GOAL, + \\ TEH_MARBUTA_GOAL, + \\ YEH_WITH_TAIL, + \\ YEH_BARREE, + \\ ALAPH, + \\ BETH, + \\ GAMAL, + \\ DALATH_RISH, + \\ HE, + \\ SYRIAC_WAW, + \\ ZAIN, + \\ HETH, + \\ TETH, + \\ YUDH, + \\ YUDH_HE, + \\ KAPH, + \\ LAMADH, + \\ MIM, + \\ NUN, + \\ SEMKATH, + \\ FINAL_SEMKATH, + \\ E, + \\ PE, + \\ REVERSED_PE, + \\ SADHE, + \\ QAPH, + \\ SHIN, + \\ TAW, + \\ ZHAIN, + \\ KHAPH, + \\ FE, + \\ BURUSHASKI_YEH_BARREE, + \\ MALAYALAM_NGA, + \\ MALAYALAM_JA, + \\ MALAYALAM_NYA, + \\ MALAYALAM_TTA, + \\ MALAYALAM_NNA, + \\ MALAYALAM_NNNA, + \\ MALAYALAM_BHA, + \\ MALAYALAM_RA, + \\ MALAYALAM_LLA, + \\ MALAYALAM_LLLA, + \\ MALAYALAM_SSA, + \\ ROHINGYA_YEH, + \\ STRAIGHT_WAW, + \\ AFRICAN_FEH, + \\ AFRICAN_QAF, + \\ AFRICAN_NOON, + \\ MANICHAEAN_ALEPH, + \\ MANICHAEAN_BETH, + \\ MANICHAEAN_GIMEL, + \\ MANICHAEAN_DALETH, + \\ MANICHAEAN_WAW, + \\ MANICHAEAN_ZAYIN, + \\ MANICHAEAN_HETH, + \\ MANICHAEAN_TETH, + \\ MANICHAEAN_YODH, + \\ MANICHAEAN_KAPH, + \\ MANICHAEAN_LAMEDH, + \\ MANICHAEAN_DHAMEDH, + \\ MANICHAEAN_THAMEDH, + \\ MANICHAEAN_MEM, + \\ MANICHAEAN_NUN, + \\ MANICHAEAN_SAMEKH, + \\ MANICHAEAN_AYIN, + \\ MANICHAEAN_PE, + \\ MANICHAEAN_SADHE, + \\ MANICHAEAN_QOPH, + \\ MANICHAEAN_RESH, + \\ MANICHAEAN_TAW, + \\ MANICHAEAN_ONE, + \\ MANICHAEAN_FIVE, + \\ MANICHAEAN_TEN, + \\ MANICHAEAN_TWENTY, + \\ MANICHAEAN_HUNDRED, + \\ HANIFI_ROHINGYA_PA, + \\ HANIFI_ROHINGYA_KINNA_YA, + \\ }; + \\}; + \\ + \\pub const arabic_shaping = [_]Shaping{ + \\ + ; + + pub const dest_footer = + \\}; + \\ + ; + + pub fn exec(alloc: *std.mem.Allocator, line: []const u8, writer: anytype) !bool { + var it = std.mem.split(line, ";"); + const c = std.mem.trim(u8, it.next().?, " "); + const n = std.mem.trim(u8, it.next().?, " "); + const t = std.mem.trim(u8, it.next().?, " "); + const g = std.mem.trim(u8, it.next().?, " "); + const g2 = try std.mem.replaceOwned(u8, alloc, g, " ", "_"); + + try common.stringToEnum(@import("../src/lib.zig").arabic_shaping.Joining.Type, t); + try common.stringToEnum(@import("../src/lib.zig").arabic_shaping.Joining.Group, g2); + + try writer.print(" .{{ .codepoint = 0x{s}, .schematic_name = \"{s}\", .joining_type = .{s}, .joining_group = .{s} }},\n", .{ c, n, t, g2 }); + return true; + } +}); diff --git a/src/arabic_shaping.zig b/src/arabic_shaping.zig new file mode 100644 index 0000000000000000000000000000000000000000..7ae50afdbf277051c951bd2ff9668ecc22110502 --- /dev/null +++ b/src/arabic_shaping.zig @@ -0,0 +1,904 @@ +// This file is part of the Unicode Character Database +// See http://www.unicode.org/reports/tr44/ for more information. +// + +pub const Shaping = struct { + codepoint: u21, + schematic_name: []const u8, + joining_type: Joining.Type, + joining_group: Joining.Group, +}; + +pub const Joining = struct { + pub const Type = enum { + U, + D, + R, + C, + T, + L, + }; + + pub const Group = enum { + No_Joining_Group, + YEH, + ALEF, + WAW, + BEH, + TEH_MARBUTA, + HAH, + DAL, + REH, + SEEN, + SAD, + TAH, + AIN, + GAF, + FARSI_YEH, + FEH, + QAF, + KAF, + LAM, + MEEM, + NOON, + HEH, + SWASH_KAF, + NYA, + KNOTTED_HEH, + HEH_GOAL, + TEH_MARBUTA_GOAL, + YEH_WITH_TAIL, + YEH_BARREE, + ALAPH, + BETH, + GAMAL, + DALATH_RISH, + HE, + SYRIAC_WAW, + ZAIN, + HETH, + TETH, + YUDH, + YUDH_HE, + KAPH, + LAMADH, + MIM, + NUN, + SEMKATH, + FINAL_SEMKATH, + E, + PE, + REVERSED_PE, + SADHE, + QAPH, + SHIN, + TAW, + ZHAIN, + KHAPH, + FE, + BURUSHASKI_YEH_BARREE, + MALAYALAM_NGA, + MALAYALAM_JA, + MALAYALAM_NYA, + MALAYALAM_TTA, + MALAYALAM_NNA, + MALAYALAM_NNNA, + MALAYALAM_BHA, + MALAYALAM_RA, + MALAYALAM_LLA, + MALAYALAM_LLLA, + MALAYALAM_SSA, + ROHINGYA_YEH, + STRAIGHT_WAW, + AFRICAN_FEH, + AFRICAN_QAF, + AFRICAN_NOON, + MANICHAEAN_ALEPH, + MANICHAEAN_BETH, + MANICHAEAN_GIMEL, + MANICHAEAN_DALETH, + MANICHAEAN_WAW, + MANICHAEAN_ZAYIN, + MANICHAEAN_HETH, + MANICHAEAN_TETH, + MANICHAEAN_YODH, + MANICHAEAN_KAPH, + MANICHAEAN_LAMEDH, + MANICHAEAN_DHAMEDH, + MANICHAEAN_THAMEDH, + MANICHAEAN_MEM, + MANICHAEAN_NUN, + MANICHAEAN_SAMEKH, + MANICHAEAN_AYIN, + MANICHAEAN_PE, + MANICHAEAN_SADHE, + MANICHAEAN_QOPH, + MANICHAEAN_RESH, + MANICHAEAN_TAW, + MANICHAEAN_ONE, + MANICHAEAN_FIVE, + MANICHAEAN_TEN, + MANICHAEAN_TWENTY, + MANICHAEAN_HUNDRED, + HANIFI_ROHINGYA_PA, + HANIFI_ROHINGYA_KINNA_YA, + }; +}; + +pub const arabic_shaping = [_]Shaping{ + .{ .codepoint = 0x0600, .schematic_name = "ARABIC NUMBER SIGN", .joining_type = .U, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x0601, .schematic_name = "ARABIC SIGN SANAH", .joining_type = .U, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x0602, .schematic_name = "ARABIC FOOTNOTE MARKER", .joining_type = .U, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x0603, .schematic_name = "ARABIC SIGN SAFHA", .joining_type = .U, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x0604, .schematic_name = "ARABIC SIGN SAMVAT", .joining_type = .U, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x0605, .schematic_name = "ARABIC NUMBER MARK ABOVE", .joining_type = .U, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x0608, .schematic_name = "ARABIC RAY", .joining_type = .U, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x060B, .schematic_name = "AFGHANI SIGN", .joining_type = .U, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x0620, .schematic_name = "DOTLESS YEH WITH SEPARATE RING BELOW", .joining_type = .D, .joining_group = .YEH }, + .{ .codepoint = 0x0621, .schematic_name = "HAMZA", .joining_type = .U, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x0622, .schematic_name = "ALEF WITH MADDA ABOVE", .joining_type = .R, .joining_group = .ALEF }, + .{ .codepoint = 0x0623, .schematic_name = "ALEF WITH HAMZA ABOVE", .joining_type = .R, .joining_group = .ALEF }, + .{ .codepoint = 0x0624, .schematic_name = "WAW WITH HAMZA ABOVE", .joining_type = .R, .joining_group = .WAW }, + .{ .codepoint = 0x0625, .schematic_name = "ALEF WITH HAMZA BELOW", .joining_type = .R, .joining_group = .ALEF }, + .{ .codepoint = 0x0626, .schematic_name = "DOTLESS YEH WITH HAMZA ABOVE", .joining_type = .D, .joining_group = .YEH }, + .{ .codepoint = 0x0627, .schematic_name = "ALEF", .joining_type = .R, .joining_group = .ALEF }, + .{ .codepoint = 0x0628, .schematic_name = "BEH", .joining_type = .D, .joining_group = .BEH }, + .{ .codepoint = 0x0629, .schematic_name = "TEH MARBUTA", .joining_type = .R, .joining_group = .TEH_MARBUTA }, + .{ .codepoint = 0x062A, .schematic_name = "DOTLESS BEH WITH 2 DOTS ABOVE", .joining_type = .D, .joining_group = .BEH }, + .{ .codepoint = 0x062B, .schematic_name = "DOTLESS BEH WITH 3 DOTS ABOVE", .joining_type = .D, .joining_group = .BEH }, + .{ .codepoint = 0x062C, .schematic_name = "HAH WITH DOT BELOW", .joining_type = .D, .joining_group = .HAH }, + .{ .codepoint = 0x062D, .schematic_name = "HAH", .joining_type = .D, .joining_group = .HAH }, + .{ .codepoint = 0x062E, .schematic_name = "HAH WITH DOT ABOVE", .joining_type = .D, .joining_group = .HAH }, + .{ .codepoint = 0x062F, .schematic_name = "DAL", .joining_type = .R, .joining_group = .DAL }, + .{ .codepoint = 0x0630, .schematic_name = "DAL WITH DOT ABOVE", .joining_type = .R, .joining_group = .DAL }, + .{ .codepoint = 0x0631, .schematic_name = "REH", .joining_type = .R, .joining_group = .REH }, + .{ .codepoint = 0x0632, .schematic_name = "REH WITH DOT ABOVE", .joining_type = .R, .joining_group = .REH }, + .{ .codepoint = 0x0633, .schematic_name = "SEEN", .joining_type = .D, .joining_group = .SEEN }, + .{ .codepoint = 0x0634, .schematic_name = "SEEN WITH 3 DOTS ABOVE", .joining_type = .D, .joining_group = .SEEN }, + .{ .codepoint = 0x0635, .schematic_name = "SAD", .joining_type = .D, .joining_group = .SAD }, + .{ .codepoint = 0x0636, .schematic_name = "SAD WITH DOT ABOVE", .joining_type = .D, .joining_group = .SAD }, + .{ .codepoint = 0x0637, .schematic_name = "TAH", .joining_type = .D, .joining_group = .TAH }, + .{ .codepoint = 0x0638, .schematic_name = "TAH WITH DOT ABOVE", .joining_type = .D, .joining_group = .TAH }, + .{ .codepoint = 0x0639, .schematic_name = "AIN", .joining_type = .D, .joining_group = .AIN }, + .{ .codepoint = 0x063A, .schematic_name = "AIN WITH DOT ABOVE", .joining_type = .D, .joining_group = .AIN }, + .{ .codepoint = 0x063B, .schematic_name = "KEHEH WITH 2 DOTS ABOVE", .joining_type = .D, .joining_group = .GAF }, + .{ .codepoint = 0x063C, .schematic_name = "KEHEH WITH 3 DOTS BELOW", .joining_type = .D, .joining_group = .GAF }, + .{ .codepoint = 0x063D, .schematic_name = "FARSI YEH WITH INVERTED V ABOVE", .joining_type = .D, .joining_group = .FARSI_YEH }, + .{ .codepoint = 0x063E, .schematic_name = "FARSI YEH WITH 2 DOTS ABOVE", .joining_type = .D, .joining_group = .FARSI_YEH }, + .{ .codepoint = 0x063F, .schematic_name = "FARSI YEH WITH 3 DOTS ABOVE", .joining_type = .D, .joining_group = .FARSI_YEH }, + .{ .codepoint = 0x0640, .schematic_name = "TATWEEL", .joining_type = .C, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x0641, .schematic_name = "FEH", .joining_type = .D, .joining_group = .FEH }, + .{ .codepoint = 0x0642, .schematic_name = "QAF", .joining_type = .D, .joining_group = .QAF }, + .{ .codepoint = 0x0643, .schematic_name = "KAF", .joining_type = .D, .joining_group = .KAF }, + .{ .codepoint = 0x0644, .schematic_name = "LAM", .joining_type = .D, .joining_group = .LAM }, + .{ .codepoint = 0x0645, .schematic_name = "MEEM", .joining_type = .D, .joining_group = .MEEM }, + .{ .codepoint = 0x0646, .schematic_name = "NOON", .joining_type = .D, .joining_group = .NOON }, + .{ .codepoint = 0x0647, .schematic_name = "HEH", .joining_type = .D, .joining_group = .HEH }, + .{ .codepoint = 0x0648, .schematic_name = "WAW", .joining_type = .R, .joining_group = .WAW }, + .{ .codepoint = 0x0649, .schematic_name = "DOTLESS YEH", .joining_type = .D, .joining_group = .YEH }, + .{ .codepoint = 0x064A, .schematic_name = "YEH", .joining_type = .D, .joining_group = .YEH }, + .{ .codepoint = 0x066E, .schematic_name = "DOTLESS BEH", .joining_type = .D, .joining_group = .BEH }, + .{ .codepoint = 0x066F, .schematic_name = "DOTLESS QAF", .joining_type = .D, .joining_group = .QAF }, + .{ .codepoint = 0x0671, .schematic_name = "ALEF WITH WASLA ABOVE", .joining_type = .R, .joining_group = .ALEF }, + .{ .codepoint = 0x0672, .schematic_name = "ALEF WITH WAVY HAMZA ABOVE", .joining_type = .R, .joining_group = .ALEF }, + .{ .codepoint = 0x0673, .schematic_name = "ALEF WITH WAVY HAMZA BELOW", .joining_type = .R, .joining_group = .ALEF }, + .{ .codepoint = 0x0674, .schematic_name = "HIGH HAMZA", .joining_type = .U, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x0675, .schematic_name = "HIGH HAMZA ALEF", .joining_type = .R, .joining_group = .ALEF }, + .{ .codepoint = 0x0676, .schematic_name = "HIGH HAMZA WAW", .joining_type = .R, .joining_group = .WAW }, + .{ .codepoint = 0x0677, .schematic_name = "HIGH HAMZA WAW WITH DAMMA ABOVE", .joining_type = .R, .joining_group = .WAW }, + .{ .codepoint = 0x0678, .schematic_name = "HIGH HAMZA DOTLESS YEH", .joining_type = .D, .joining_group = .YEH }, + .{ .codepoint = 0x0679, .schematic_name = "DOTLESS BEH WITH TAH ABOVE", .joining_type = .D, .joining_group = .BEH }, + .{ .codepoint = 0x067A, .schematic_name = "DOTLESS BEH WITH VERTICAL 2 DOTS ABOVE", .joining_type = .D, .joining_group = .BEH }, + .{ .codepoint = 0x067B, .schematic_name = "DOTLESS BEH WITH VERTICAL 2 DOTS BELOW", .joining_type = .D, .joining_group = .BEH }, + .{ .codepoint = 0x067C, .schematic_name = "DOTLESS BEH WITH ATTACHED RING BELOW AND 2 DOTS ABOVE", .joining_type = .D, .joining_group = .BEH }, + .{ .codepoint = 0x067D, .schematic_name = "DOTLESS BEH WITH INVERTED 3 DOTS ABOVE", .joining_type = .D, .joining_group = .BEH }, + .{ .codepoint = 0x067E, .schematic_name = "DOTLESS BEH WITH 3 DOTS BELOW", .joining_type = .D, .joining_group = .BEH }, + .{ .codepoint = 0x067F, .schematic_name = "DOTLESS BEH WITH 4 DOTS ABOVE", .joining_type = .D, .joining_group = .BEH }, + .{ .codepoint = 0x0680, .schematic_name = "DOTLESS BEH WITH 4 DOTS BELOW", .joining_type = .D, .joining_group = .BEH }, + .{ .codepoint = 0x0681, .schematic_name = "HAH WITH HAMZA ABOVE", .joining_type = .D, .joining_group = .HAH }, + .{ .codepoint = 0x0682, .schematic_name = "HAH WITH VERTICAL 2 DOTS ABOVE", .joining_type = .D, .joining_group = .HAH }, + .{ .codepoint = 0x0683, .schematic_name = "HAH WITH 2 DOTS BELOW", .joining_type = .D, .joining_group = .HAH }, + .{ .codepoint = 0x0684, .schematic_name = "HAH WITH VERTICAL 2 DOTS BELOW", .joining_type = .D, .joining_group = .HAH }, + .{ .codepoint = 0x0685, .schematic_name = "HAH WITH 3 DOTS ABOVE", .joining_type = .D, .joining_group = .HAH }, + .{ .codepoint = 0x0686, .schematic_name = "HAH WITH 3 DOTS BELOW", .joining_type = .D, .joining_group = .HAH }, + .{ .codepoint = 0x0687, .schematic_name = "HAH WITH 4 DOTS BELOW", .joining_type = .D, .joining_group = .HAH }, + .{ .codepoint = 0x0688, .schematic_name = "DAL WITH TAH ABOVE", .joining_type = .R, .joining_group = .DAL }, + .{ .codepoint = 0x0689, .schematic_name = "DAL WITH ATTACHED RING BELOW", .joining_type = .R, .joining_group = .DAL }, + .{ .codepoint = 0x068A, .schematic_name = "DAL WITH DOT BELOW", .joining_type = .R, .joining_group = .DAL }, + .{ .codepoint = 0x068B, .schematic_name = "DAL WITH DOT BELOW AND TAH ABOVE", .joining_type = .R, .joining_group = .DAL }, + .{ .codepoint = 0x068C, .schematic_name = "DAL WITH 2 DOTS ABOVE", .joining_type = .R, .joining_group = .DAL }, + .{ .codepoint = 0x068D, .schematic_name = "DAL WITH 2 DOTS BELOW", .joining_type = .R, .joining_group = .DAL }, + .{ .codepoint = 0x068E, .schematic_name = "DAL WITH 3 DOTS ABOVE", .joining_type = .R, .joining_group = .DAL }, + .{ .codepoint = 0x068F, .schematic_name = "DAL WITH INVERTED 3 DOTS ABOVE", .joining_type = .R, .joining_group = .DAL }, + .{ .codepoint = 0x0690, .schematic_name = "DAL WITH 4 DOTS ABOVE", .joining_type = .R, .joining_group = .DAL }, + .{ .codepoint = 0x0691, .schematic_name = "REH WITH TAH ABOVE", .joining_type = .R, .joining_group = .REH }, + .{ .codepoint = 0x0692, .schematic_name = "REH WITH V ABOVE", .joining_type = .R, .joining_group = .REH }, + .{ .codepoint = 0x0693, .schematic_name = "REH WITH ATTACHED RING BELOW", .joining_type = .R, .joining_group = .REH }, + .{ .codepoint = 0x0694, .schematic_name = "REH WITH DOT BELOW", .joining_type = .R, .joining_group = .REH }, + .{ .codepoint = 0x0695, .schematic_name = "REH WITH V BELOW", .joining_type = .R, .joining_group = .REH }, + .{ .codepoint = 0x0696, .schematic_name = "REH WITH DOT BELOW AND DOT WITHIN", .joining_type = .R, .joining_group = .REH }, + .{ .codepoint = 0x0697, .schematic_name = "REH WITH 2 DOTS ABOVE", .joining_type = .R, .joining_group = .REH }, + .{ .codepoint = 0x0698, .schematic_name = "REH WITH 3 DOTS ABOVE", .joining_type = .R, .joining_group = .REH }, + .{ .codepoint = 0x0699, .schematic_name = "REH WITH 4 DOTS ABOVE", .joining_type = .R, .joining_group = .REH }, + .{ .codepoint = 0x069A, .schematic_name = "SEEN WITH DOT BELOW AND DOT ABOVE", .joining_type = .D, .joining_group = .SEEN }, + .{ .codepoint = 0x069B, .schematic_name = "SEEN WITH 3 DOTS BELOW", .joining_type = .D, .joining_group = .SEEN }, + .{ .codepoint = 0x069C, .schematic_name = "SEEN WITH 3 DOTS BELOW AND 3 DOTS ABOVE", .joining_type = .D, .joining_group = .SEEN }, + .{ .codepoint = 0x069D, .schematic_name = "SAD WITH 2 DOTS BELOW", .joining_type = .D, .joining_group = .SAD }, + .{ .codepoint = 0x069E, .schematic_name = "SAD WITH 3 DOTS ABOVE", .joining_type = .D, .joining_group = .SAD }, + .{ .codepoint = 0x069F, .schematic_name = "TAH WITH 3 DOTS ABOVE", .joining_type = .D, .joining_group = .TAH }, + .{ .codepoint = 0x06A0, .schematic_name = "AIN WITH 3 DOTS ABOVE", .joining_type = .D, .joining_group = .AIN }, + .{ .codepoint = 0x06A1, .schematic_name = "DOTLESS FEH", .joining_type = .D, .joining_group = .FEH }, + .{ .codepoint = 0x06A2, .schematic_name = "DOTLESS FEH WITH DOT BELOW", .joining_type = .D, .joining_group = .FEH }, + .{ .codepoint = 0x06A3, .schematic_name = "FEH WITH DOT BELOW", .joining_type = .D, .joining_group = .FEH }, + .{ .codepoint = 0x06A4, .schematic_name = "DOTLESS FEH WITH 3 DOTS ABOVE", .joining_type = .D, .joining_group = .FEH }, + .{ .codepoint = 0x06A5, .schematic_name = "DOTLESS FEH WITH 3 DOTS BELOW", .joining_type = .D, .joining_group = .FEH }, + .{ .codepoint = 0x06A6, .schematic_name = "DOTLESS FEH WITH 4 DOTS ABOVE", .joining_type = .D, .joining_group = .FEH }, + .{ .codepoint = 0x06A7, .schematic_name = "DOTLESS QAF WITH DOT ABOVE", .joining_type = .D, .joining_group = .QAF }, + .{ .codepoint = 0x06A8, .schematic_name = "DOTLESS QAF WITH 3 DOTS ABOVE", .joining_type = .D, .joining_group = .QAF }, + .{ .codepoint = 0x06A9, .schematic_name = "KEHEH", .joining_type = .D, .joining_group = .GAF }, + .{ .codepoint = 0x06AA, .schematic_name = "SWASH KAF", .joining_type = .D, .joining_group = .SWASH_KAF }, + .{ .codepoint = 0x06AB, .schematic_name = "KEHEH WITH ATTACHED RING BELOW", .joining_type = .D, .joining_group = .GAF }, + .{ .codepoint = 0x06AC, .schematic_name = "KAF WITH DOT ABOVE", .joining_type = .D, .joining_group = .KAF }, + .{ .codepoint = 0x06AD, .schematic_name = "KAF WITH 3 DOTS ABOVE", .joining_type = .D, .joining_group = .KAF }, + .{ .codepoint = 0x06AE, .schematic_name = "KAF WITH 3 DOTS BELOW", .joining_type = .D, .joining_group = .KAF }, + .{ .codepoint = 0x06AF, .schematic_name = "GAF", .joining_type = .D, .joining_group = .GAF }, + .{ .codepoint = 0x06B0, .schematic_name = "GAF WITH ATTACHED RING BELOW", .joining_type = .D, .joining_group = .GAF }, + .{ .codepoint = 0x06B1, .schematic_name = "GAF WITH 2 DOTS ABOVE", .joining_type = .D, .joining_group = .GAF }, + .{ .codepoint = 0x06B2, .schematic_name = "GAF WITH 2 DOTS BELOW", .joining_type = .D, .joining_group = .GAF }, + .{ .codepoint = 0x06B3, .schematic_name = "GAF WITH VERTICAL 2 DOTS BELOW", .joining_type = .D, .joining_group = .GAF }, + .{ .codepoint = 0x06B4, .schematic_name = "GAF WITH 3 DOTS ABOVE", .joining_type = .D, .joining_group = .GAF }, + .{ .codepoint = 0x06B5, .schematic_name = "LAM WITH V ABOVE", .joining_type = .D, .joining_group = .LAM }, + .{ .codepoint = 0x06B6, .schematic_name = "LAM WITH DOT ABOVE", .joining_type = .D, .joining_group = .LAM }, + .{ .codepoint = 0x06B7, .schematic_name = "LAM WITH 3 DOTS ABOVE", .joining_type = .D, .joining_group = .LAM }, + .{ .codepoint = 0x06B8, .schematic_name = "LAM WITH 3 DOTS BELOW", .joining_type = .D, .joining_group = .LAM }, + .{ .codepoint = 0x06B9, .schematic_name = "NOON WITH DOT BELOW", .joining_type = .D, .joining_group = .NOON }, + .{ .codepoint = 0x06BA, .schematic_name = "DOTLESS NOON", .joining_type = .D, .joining_group = .NOON }, + .{ .codepoint = 0x06BB, .schematic_name = "DOTLESS NOON WITH TAH ABOVE", .joining_type = .D, .joining_group = .NOON }, + .{ .codepoint = 0x06BC, .schematic_name = "NOON WITH ATTACHED RING BELOW", .joining_type = .D, .joining_group = .NOON }, + .{ .codepoint = 0x06BD, .schematic_name = "NYA", .joining_type = .D, .joining_group = .NYA }, + .{ .codepoint = 0x06BE, .schematic_name = "KNOTTED HEH", .joining_type = .D, .joining_group = .KNOTTED_HEH }, + .{ .codepoint = 0x06BF, .schematic_name = "HAH WITH 3 DOTS BELOW AND DOT ABOVE", .joining_type = .D, .joining_group = .HAH }, + .{ .codepoint = 0x06C0, .schematic_name = "DOTLESS TEH MARBUTA WITH HAMZA ABOVE", .joining_type = .R, .joining_group = .TEH_MARBUTA }, + .{ .codepoint = 0x06C1, .schematic_name = "HEH GOAL", .joining_type = .D, .joining_group = .HEH_GOAL }, + .{ .codepoint = 0x06C2, .schematic_name = "HEH GOAL WITH HAMZA ABOVE", .joining_type = .D, .joining_group = .HEH_GOAL }, + .{ .codepoint = 0x06C3, .schematic_name = "TEH MARBUTA GOAL", .joining_type = .R, .joining_group = .TEH_MARBUTA_GOAL }, + .{ .codepoint = 0x06C4, .schematic_name = "WAW WITH ATTACHED RING WITHIN", .joining_type = .R, .joining_group = .WAW }, + .{ .codepoint = 0x06C5, .schematic_name = "WAW WITH BAR", .joining_type = .R, .joining_group = .WAW }, + .{ .codepoint = 0x06C6, .schematic_name = "WAW WITH V ABOVE", .joining_type = .R, .joining_group = .WAW }, + .{ .codepoint = 0x06C7, .schematic_name = "WAW WITH DAMMA ABOVE", .joining_type = .R, .joining_group = .WAW }, + .{ .codepoint = 0x06C8, .schematic_name = "WAW WITH ALEF ABOVE", .joining_type = .R, .joining_group = .WAW }, + .{ .codepoint = 0x06C9, .schematic_name = "WAW WITH INVERTED V ABOVE", .joining_type = .R, .joining_group = .WAW }, + .{ .codepoint = 0x06CA, .schematic_name = "WAW WITH 2 DOTS ABOVE", .joining_type = .R, .joining_group = .WAW }, + .{ .codepoint = 0x06CB, .schematic_name = "WAW WITH 3 DOTS ABOVE", .joining_type = .R, .joining_group = .WAW }, + .{ .codepoint = 0x06CC, .schematic_name = "FARSI YEH", .joining_type = .D, .joining_group = .FARSI_YEH }, + .{ .codepoint = 0x06CD, .schematic_name = "YEH WITH TAIL", .joining_type = .R, .joining_group = .YEH_WITH_TAIL }, + .{ .codepoint = 0x06CE, .schematic_name = "FARSI YEH WITH V ABOVE", .joining_type = .D, .joining_group = .FARSI_YEH }, + .{ .codepoint = 0x06CF, .schematic_name = "WAW WITH DOT ABOVE", .joining_type = .R, .joining_group = .WAW }, + .{ .codepoint = 0x06D0, .schematic_name = "DOTLESS YEH WITH VERTICAL 2 DOTS BELOW", .joining_type = .D, .joining_group = .YEH }, + .{ .codepoint = 0x06D1, .schematic_name = "DOTLESS YEH WITH 3 DOTS BELOW", .joining_type = .D, .joining_group = .YEH }, + .{ .codepoint = 0x06D2, .schematic_name = "YEH BARREE", .joining_type = .R, .joining_group = .YEH_BARREE }, + .{ .codepoint = 0x06D3, .schematic_name = "YEH BARREE WITH HAMZA ABOVE", .joining_type = .R, .joining_group = .YEH_BARREE }, + .{ .codepoint = 0x06D5, .schematic_name = "DOTLESS TEH MARBUTA", .joining_type = .R, .joining_group = .TEH_MARBUTA }, + .{ .codepoint = 0x06DD, .schematic_name = "ARABIC END OF AYAH", .joining_type = .U, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x06EE, .schematic_name = "DAL WITH INVERTED V ABOVE", .joining_type = .R, .joining_group = .DAL }, + .{ .codepoint = 0x06EF, .schematic_name = "REH WITH INVERTED V ABOVE", .joining_type = .R, .joining_group = .REH }, + .{ .codepoint = 0x06FA, .schematic_name = "SEEN WITH DOT BELOW AND 3 DOTS ABOVE", .joining_type = .D, .joining_group = .SEEN }, + .{ .codepoint = 0x06FB, .schematic_name = "SAD WITH DOT BELOW AND DOT ABOVE", .joining_type = .D, .joining_group = .SAD }, + .{ .codepoint = 0x06FC, .schematic_name = "AIN WITH DOT BELOW AND DOT ABOVE", .joining_type = .D, .joining_group = .AIN }, + .{ .codepoint = 0x06FF, .schematic_name = "KNOTTED HEH WITH INVERTED V ABOVE", .joining_type = .D, .joining_group = .KNOTTED_HEH }, + .{ .codepoint = 0x070F, .schematic_name = "SYRIAC ABBREVIATION MARK", .joining_type = .T, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x0710, .schematic_name = "ALAPH", .joining_type = .R, .joining_group = .ALAPH }, + .{ .codepoint = 0x0712, .schematic_name = "BETH", .joining_type = .D, .joining_group = .BETH }, + .{ .codepoint = 0x0713, .schematic_name = "GAMAL", .joining_type = .D, .joining_group = .GAMAL }, + .{ .codepoint = 0x0714, .schematic_name = "GAMAL GARSHUNI", .joining_type = .D, .joining_group = .GAMAL }, + .{ .codepoint = 0x0715, .schematic_name = "DALATH", .joining_type = .R, .joining_group = .DALATH_RISH }, + .{ .codepoint = 0x0716, .schematic_name = "DOTLESS DALATH RISH", .joining_type = .R, .joining_group = .DALATH_RISH }, + .{ .codepoint = 0x0717, .schematic_name = "HE", .joining_type = .R, .joining_group = .HE }, + .{ .codepoint = 0x0718, .schematic_name = "WAW", .joining_type = .R, .joining_group = .SYRIAC_WAW }, + .{ .codepoint = 0x0719, .schematic_name = "ZAIN", .joining_type = .R, .joining_group = .ZAIN }, + .{ .codepoint = 0x071A, .schematic_name = "HETH", .joining_type = .D, .joining_group = .HETH }, + .{ .codepoint = 0x071B, .schematic_name = "TETH", .joining_type = .D, .joining_group = .TETH }, + .{ .codepoint = 0x071C, .schematic_name = "TETH GARSHUNI", .joining_type = .D, .joining_group = .TETH }, + .{ .codepoint = 0x071D, .schematic_name = "YUDH", .joining_type = .D, .joining_group = .YUDH }, + .{ .codepoint = 0x071E, .schematic_name = "YUDH HE", .joining_type = .R, .joining_group = .YUDH_HE }, + .{ .codepoint = 0x071F, .schematic_name = "KAPH", .joining_type = .D, .joining_group = .KAPH }, + .{ .codepoint = 0x0720, .schematic_name = "LAMADH", .joining_type = .D, .joining_group = .LAMADH }, + .{ .codepoint = 0x0721, .schematic_name = "MIM", .joining_type = .D, .joining_group = .MIM }, + .{ .codepoint = 0x0722, .schematic_name = "NUN", .joining_type = .D, .joining_group = .NUN }, + .{ .codepoint = 0x0723, .schematic_name = "SEMKATH", .joining_type = .D, .joining_group = .SEMKATH }, + .{ .codepoint = 0x0724, .schematic_name = "FINAL SEMKATH", .joining_type = .D, .joining_group = .FINAL_SEMKATH }, + .{ .codepoint = 0x0725, .schematic_name = "E", .joining_type = .D, .joining_group = .E }, + .{ .codepoint = 0x0726, .schematic_name = "PE", .joining_type = .D, .joining_group = .PE }, + .{ .codepoint = 0x0727, .schematic_name = "REVERSED PE", .joining_type = .D, .joining_group = .REVERSED_PE }, + .{ .codepoint = 0x0728, .schematic_name = "SADHE", .joining_type = .R, .joining_group = .SADHE }, + .{ .codepoint = 0x0729, .schematic_name = "QAPH", .joining_type = .D, .joining_group = .QAPH }, + .{ .codepoint = 0x072A, .schematic_name = "RISH", .joining_type = .R, .joining_group = .DALATH_RISH }, + .{ .codepoint = 0x072B, .schematic_name = "SHIN", .joining_type = .D, .joining_group = .SHIN }, + .{ .codepoint = 0x072C, .schematic_name = "TAW", .joining_type = .R, .joining_group = .TAW }, + .{ .codepoint = 0x072D, .schematic_name = "PERSIAN BHETH", .joining_type = .D, .joining_group = .BETH }, + .{ .codepoint = 0x072E, .schematic_name = "PERSIAN GHAMAL", .joining_type = .D, .joining_group = .GAMAL }, + .{ .codepoint = 0x072F, .schematic_name = "PERSIAN DHALATH", .joining_type = .R, .joining_group = .DALATH_RISH }, + .{ .codepoint = 0x074D, .schematic_name = "SOGDIAN ZHAIN", .joining_type = .R, .joining_group = .ZHAIN }, + .{ .codepoint = 0x074E, .schematic_name = "SOGDIAN KHAPH", .joining_type = .D, .joining_group = .KHAPH }, + .{ .codepoint = 0x074F, .schematic_name = "SOGDIAN FE", .joining_type = .D, .joining_group = .FE }, + .{ .codepoint = 0x0750, .schematic_name = "DOTLESS BEH WITH HORIZONTAL 3 DOTS BELOW", .joining_type = .D, .joining_group = .BEH }, + .{ .codepoint = 0x0751, .schematic_name = "BEH WITH 3 DOTS ABOVE", .joining_type = .D, .joining_group = .BEH }, + .{ .codepoint = 0x0752, .schematic_name = "DOTLESS BEH WITH INVERTED 3 DOTS BELOW", .joining_type = .D, .joining_group = .BEH }, + .{ .codepoint = 0x0753, .schematic_name = "DOTLESS BEH WITH INVERTED 3 DOTS BELOW AND 2 DOTS ABOVE", .joining_type = .D, .joining_group = .BEH }, + .{ .codepoint = 0x0754, .schematic_name = "DOTLESS BEH WITH 2 DOTS BELOW AND DOT ABOVE", .joining_type = .D, .joining_group = .BEH }, + .{ .codepoint = 0x0755, .schematic_name = "DOTLESS BEH WITH INVERTED V BELOW", .joining_type = .D, .joining_group = .BEH }, + .{ .codepoint = 0x0756, .schematic_name = "DOTLESS BEH WITH V ABOVE", .joining_type = .D, .joining_group = .BEH }, + .{ .codepoint = 0x0757, .schematic_name = "HAH WITH 2 DOTS ABOVE", .joining_type = .D, .joining_group = .HAH }, + .{ .codepoint = 0x0758, .schematic_name = "HAH WITH INVERTED 3 DOTS BELOW", .joining_type = .D, .joining_group = .HAH }, + .{ .codepoint = 0x0759, .schematic_name = "DAL WITH VERTICAL 2 DOTS BELOW AND TAH ABOVE", .joining_type = .R, .joining_group = .DAL }, + .{ .codepoint = 0x075A, .schematic_name = "DAL WITH INVERTED V BELOW", .joining_type = .R, .joining_group = .DAL }, + .{ .codepoint = 0x075B, .schematic_name = "REH WITH BAR", .joining_type = .R, .joining_group = .REH }, + .{ .codepoint = 0x075C, .schematic_name = "SEEN WITH 4 DOTS ABOVE", .joining_type = .D, .joining_group = .SEEN }, + .{ .codepoint = 0x075D, .schematic_name = "AIN WITH 2 DOTS ABOVE", .joining_type = .D, .joining_group = .AIN }, + .{ .codepoint = 0x075E, .schematic_name = "AIN WITH INVERTED 3 DOTS ABOVE", .joining_type = .D, .joining_group = .AIN }, + .{ .codepoint = 0x075F, .schematic_name = "AIN WITH VERTICAL 2 DOTS ABOVE", .joining_type = .D, .joining_group = .AIN }, + .{ .codepoint = 0x0760, .schematic_name = "DOTLESS FEH WITH 2 DOTS BELOW", .joining_type = .D, .joining_group = .FEH }, + .{ .codepoint = 0x0761, .schematic_name = "DOTLESS FEH WITH INVERTED 3 DOTS BELOW", .joining_type = .D, .joining_group = .FEH }, + .{ .codepoint = 0x0762, .schematic_name = "KEHEH WITH DOT ABOVE", .joining_type = .D, .joining_group = .GAF }, + .{ .codepoint = 0x0763, .schematic_name = "KEHEH WITH 3 DOTS ABOVE", .joining_type = .D, .joining_group = .GAF }, + .{ .codepoint = 0x0764, .schematic_name = "KEHEH WITH INVERTED 3 DOTS BELOW", .joining_type = .D, .joining_group = .GAF }, + .{ .codepoint = 0x0765, .schematic_name = "MEEM WITH DOT ABOVE", .joining_type = .D, .joining_group = .MEEM }, + .{ .codepoint = 0x0766, .schematic_name = "MEEM WITH DOT BELOW", .joining_type = .D, .joining_group = .MEEM }, + .{ .codepoint = 0x0767, .schematic_name = "NOON WITH 2 DOTS BELOW", .joining_type = .D, .joining_group = .NOON }, + .{ .codepoint = 0x0768, .schematic_name = "NOON WITH TAH ABOVE", .joining_type = .D, .joining_group = .NOON }, + .{ .codepoint = 0x0769, .schematic_name = "NOON WITH V ABOVE", .joining_type = .D, .joining_group = .NOON }, + .{ .codepoint = 0x076A, .schematic_name = "LAM WITH BAR", .joining_type = .D, .joining_group = .LAM }, + .{ .codepoint = 0x076B, .schematic_name = "REH WITH VERTICAL 2 DOTS ABOVE", .joining_type = .R, .joining_group = .REH }, + .{ .codepoint = 0x076C, .schematic_name = "REH WITH HAMZA ABOVE", .joining_type = .R, .joining_group = .REH }, + .{ .codepoint = 0x076D, .schematic_name = "SEEN WITH VERTICAL 2 DOTS ABOVE", .joining_type = .D, .joining_group = .SEEN }, + .{ .codepoint = 0x076E, .schematic_name = "HAH WITH TAH BELOW", .joining_type = .D, .joining_group = .HAH }, + .{ .codepoint = 0x076F, .schematic_name = "HAH WITH TAH AND 2 DOTS BELOW", .joining_type = .D, .joining_group = .HAH }, + .{ .codepoint = 0x0770, .schematic_name = "SEEN WITH 2 DOTS AND TAH ABOVE", .joining_type = .D, .joining_group = .SEEN }, + .{ .codepoint = 0x0771, .schematic_name = "REH WITH 2 DOTS AND TAH ABOVE", .joining_type = .R, .joining_group = .REH }, + .{ .codepoint = 0x0772, .schematic_name = "HAH WITH TAH ABOVE", .joining_type = .D, .joining_group = .HAH }, + .{ .codepoint = 0x0773, .schematic_name = "ALEF WITH DIGIT TWO ABOVE", .joining_type = .R, .joining_group = .ALEF }, + .{ .codepoint = 0x0774, .schematic_name = "ALEF WITH DIGIT THREE ABOVE", .joining_type = .R, .joining_group = .ALEF }, + .{ .codepoint = 0x0775, .schematic_name = "FARSI YEH WITH DIGIT TWO ABOVE", .joining_type = .D, .joining_group = .FARSI_YEH }, + .{ .codepoint = 0x0776, .schematic_name = "FARSI YEH WITH DIGIT THREE ABOVE", .joining_type = .D, .joining_group = .FARSI_YEH }, + .{ .codepoint = 0x0777, .schematic_name = "DOTLESS YEH WITH DIGIT FOUR BELOW", .joining_type = .D, .joining_group = .YEH }, + .{ .codepoint = 0x0778, .schematic_name = "WAW WITH DIGIT TWO ABOVE", .joining_type = .R, .joining_group = .WAW }, + .{ .codepoint = 0x0779, .schematic_name = "WAW WITH DIGIT THREE ABOVE", .joining_type = .R, .joining_group = .WAW }, + .{ .codepoint = 0x077A, .schematic_name = "BURUSHASKI YEH BARREE WITH DIGIT TWO ABOVE", .joining_type = .D, .joining_group = .BURUSHASKI_YEH_BARREE }, + .{ .codepoint = 0x077B, .schematic_name = "BURUSHASKI YEH BARREE WITH DIGIT THREE ABOVE", .joining_type = .D, .joining_group = .BURUSHASKI_YEH_BARREE }, + .{ .codepoint = 0x077C, .schematic_name = "HAH WITH DIGIT FOUR BELOW", .joining_type = .D, .joining_group = .HAH }, + .{ .codepoint = 0x077D, .schematic_name = "SEEN WITH DIGIT FOUR ABOVE", .joining_type = .D, .joining_group = .SEEN }, + .{ .codepoint = 0x077E, .schematic_name = "SEEN WITH INVERTED V ABOVE", .joining_type = .D, .joining_group = .SEEN }, + .{ .codepoint = 0x077F, .schematic_name = "KAF WITH 2 DOTS ABOVE", .joining_type = .D, .joining_group = .KAF }, + .{ .codepoint = 0x07CA, .schematic_name = "NKO A", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x07CB, .schematic_name = "NKO EE", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x07CC, .schematic_name = "NKO I", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x07CD, .schematic_name = "NKO E", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x07CE, .schematic_name = "NKO U", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x07CF, .schematic_name = "NKO OO", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x07D0, .schematic_name = "NKO O", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x07D1, .schematic_name = "NKO DAGBASINNA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x07D2, .schematic_name = "NKO N", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x07D3, .schematic_name = "NKO BA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x07D4, .schematic_name = "NKO PA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x07D5, .schematic_name = "NKO TA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x07D6, .schematic_name = "NKO JA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x07D7, .schematic_name = "NKO CHA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x07D8, .schematic_name = "NKO DA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x07D9, .schematic_name = "NKO RA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x07DA, .schematic_name = "NKO RRA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x07DB, .schematic_name = "NKO SA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x07DC, .schematic_name = "NKO GBA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x07DD, .schematic_name = "NKO FA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x07DE, .schematic_name = "NKO KA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x07DF, .schematic_name = "NKO LA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x07E0, .schematic_name = "NKO NA WOLOSO", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x07E1, .schematic_name = "NKO MA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x07E2, .schematic_name = "NKO NYA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x07E3, .schematic_name = "NKO NA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x07E4, .schematic_name = "NKO HA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x07E5, .schematic_name = "NKO WA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x07E6, .schematic_name = "NKO YA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x07E7, .schematic_name = "NKO NYA WOLOSO", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x07E8, .schematic_name = "NKO JONA JA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x07E9, .schematic_name = "NKO JONA CHA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x07EA, .schematic_name = "NKO JONA RA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x07FA, .schematic_name = "NKO LAJANYALAN", .joining_type = .C, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x0840, .schematic_name = "MANDAIC HALQA", .joining_type = .R, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x0841, .schematic_name = "MANDAIC AB", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x0842, .schematic_name = "MANDAIC AG", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x0843, .schematic_name = "MANDAIC AD", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x0844, .schematic_name = "MANDAIC AH", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x0845, .schematic_name = "MANDAIC USHENNA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x0846, .schematic_name = "MANDAIC AZ", .joining_type = .R, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x0847, .schematic_name = "MANDAIC IT", .joining_type = .R, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x0848, .schematic_name = "MANDAIC ATT", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x0849, .schematic_name = "MANDAIC AKSA", .joining_type = .R, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x084A, .schematic_name = "MANDAIC AK", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x084B, .schematic_name = "MANDAIC AL", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x084C, .schematic_name = "MANDAIC AM", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x084D, .schematic_name = "MANDAIC AN", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x084E, .schematic_name = "MANDAIC AS", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x084F, .schematic_name = "MANDAIC IN", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x0850, .schematic_name = "MANDAIC AP", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x0851, .schematic_name = "MANDAIC ASZ", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x0852, .schematic_name = "MANDAIC AQ", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x0853, .schematic_name = "MANDAIC AR", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x0854, .schematic_name = "MANDAIC ASH", .joining_type = .R, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x0855, .schematic_name = "MANDAIC AT", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x0856, .schematic_name = "MANDAIC DUSHENNA", .joining_type = .R, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x0857, .schematic_name = "MANDAIC KAD", .joining_type = .R, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x0858, .schematic_name = "MANDAIC AIN", .joining_type = .R, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x0860, .schematic_name = "MALAYALAM NGA", .joining_type = .D, .joining_group = .MALAYALAM_NGA }, + .{ .codepoint = 0x0861, .schematic_name = "MALAYALAM JA", .joining_type = .U, .joining_group = .MALAYALAM_JA }, + .{ .codepoint = 0x0862, .schematic_name = "MALAYALAM NYA", .joining_type = .D, .joining_group = .MALAYALAM_NYA }, + .{ .codepoint = 0x0863, .schematic_name = "MALAYALAM TTA", .joining_type = .D, .joining_group = .MALAYALAM_TTA }, + .{ .codepoint = 0x0864, .schematic_name = "MALAYALAM NNA", .joining_type = .D, .joining_group = .MALAYALAM_NNA }, + .{ .codepoint = 0x0865, .schematic_name = "MALAYALAM NNNA", .joining_type = .D, .joining_group = .MALAYALAM_NNNA }, + .{ .codepoint = 0x0866, .schematic_name = "MALAYALAM BHA", .joining_type = .U, .joining_group = .MALAYALAM_BHA }, + .{ .codepoint = 0x0867, .schematic_name = "MALAYALAM RA", .joining_type = .R, .joining_group = .MALAYALAM_RA }, + .{ .codepoint = 0x0868, .schematic_name = "MALAYALAM LLA", .joining_type = .D, .joining_group = .MALAYALAM_LLA }, + .{ .codepoint = 0x0869, .schematic_name = "MALAYALAM LLLA", .joining_type = .R, .joining_group = .MALAYALAM_LLLA }, + .{ .codepoint = 0x086A, .schematic_name = "MALAYALAM SSA", .joining_type = .R, .joining_group = .MALAYALAM_SSA }, + .{ .codepoint = 0x08A0, .schematic_name = "DOTLESS BEH WITH V BELOW", .joining_type = .D, .joining_group = .BEH }, + .{ .codepoint = 0x08A1, .schematic_name = "BEH WITH HAMZA ABOVE", .joining_type = .D, .joining_group = .BEH }, + .{ .codepoint = 0x08A2, .schematic_name = "HAH WITH DOT BELOW AND 2 DOTS ABOVE", .joining_type = .D, .joining_group = .HAH }, + .{ .codepoint = 0x08A3, .schematic_name = "TAH WITH 2 DOTS ABOVE", .joining_type = .D, .joining_group = .TAH }, + .{ .codepoint = 0x08A4, .schematic_name = "DOTLESS FEH WITH DOT BELOW AND 3 DOTS ABOVE", .joining_type = .D, .joining_group = .FEH }, + .{ .codepoint = 0x08A5, .schematic_name = "QAF WITH DOT BELOW", .joining_type = .D, .joining_group = .QAF }, + .{ .codepoint = 0x08A6, .schematic_name = "LAM WITH DOUBLE BAR", .joining_type = .D, .joining_group = .LAM }, + .{ .codepoint = 0x08A7, .schematic_name = "MEEM WITH 3 DOTS ABOVE", .joining_type = .D, .joining_group = .MEEM }, + .{ .codepoint = 0x08A8, .schematic_name = "YEH WITH HAMZA ABOVE", .joining_type = .D, .joining_group = .YEH }, + .{ .codepoint = 0x08A9, .schematic_name = "YEH WITH DOT ABOVE", .joining_type = .D, .joining_group = .YEH }, + .{ .codepoint = 0x08AA, .schematic_name = "REH WITH LOOP", .joining_type = .R, .joining_group = .REH }, + .{ .codepoint = 0x08AB, .schematic_name = "WAW WITH DOT WITHIN", .joining_type = .R, .joining_group = .WAW }, + .{ .codepoint = 0x08AC, .schematic_name = "ROHINGYA YEH", .joining_type = .R, .joining_group = .ROHINGYA_YEH }, + .{ .codepoint = 0x08AD, .schematic_name = "LOW ALEF", .joining_type = .U, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x08AE, .schematic_name = "DAL WITH 3 DOTS BELOW", .joining_type = .R, .joining_group = .DAL }, + .{ .codepoint = 0x08AF, .schematic_name = "SAD WITH 3 DOTS BELOW", .joining_type = .D, .joining_group = .SAD }, + .{ .codepoint = 0x08B0, .schematic_name = "KEHEH WITH STROKE BELOW", .joining_type = .D, .joining_group = .GAF }, + .{ .codepoint = 0x08B1, .schematic_name = "STRAIGHT WAW", .joining_type = .R, .joining_group = .STRAIGHT_WAW }, + .{ .codepoint = 0x08B2, .schematic_name = "REH WITH DOT AND INVERTED V ABOVE", .joining_type = .R, .joining_group = .REH }, + .{ .codepoint = 0x08B3, .schematic_name = "AIN WITH 3 DOTS BELOW", .joining_type = .D, .joining_group = .AIN }, + .{ .codepoint = 0x08B4, .schematic_name = "KAF WITH DOT BELOW", .joining_type = .D, .joining_group = .KAF }, + .{ .codepoint = 0x08B6, .schematic_name = "BEH WITH MEEM ABOVE", .joining_type = .D, .joining_group = .BEH }, + .{ .codepoint = 0x08B7, .schematic_name = "DOTLESS BEH WITH 3 DOTS BELOW AND MEEM ABOVE", .joining_type = .D, .joining_group = .BEH }, + .{ .codepoint = 0x08B8, .schematic_name = "DOTLESS BEH WITH TEH ABOVE", .joining_type = .D, .joining_group = .BEH }, + .{ .codepoint = 0x08B9, .schematic_name = "REH WITH NOON ABOVE", .joining_type = .R, .joining_group = .REH }, + .{ .codepoint = 0x08BA, .schematic_name = "YEH WITH NOON ABOVE", .joining_type = .D, .joining_group = .YEH }, + .{ .codepoint = 0x08BB, .schematic_name = "AFRICAN FEH", .joining_type = .D, .joining_group = .AFRICAN_FEH }, + .{ .codepoint = 0x08BC, .schematic_name = "AFRICAN QAF", .joining_type = .D, .joining_group = .AFRICAN_QAF }, + .{ .codepoint = 0x08BD, .schematic_name = "AFRICAN NOON", .joining_type = .D, .joining_group = .AFRICAN_NOON }, + .{ .codepoint = 0x08BE, .schematic_name = "DOTLESS BEH WITH 3 DOTS BELOW AND V ABOVE", .joining_type = .D, .joining_group = .BEH }, + .{ .codepoint = 0x08BF, .schematic_name = "DOTLESS BEH WITH 2 DOTS AND V ABOVE", .joining_type = .D, .joining_group = .BEH }, + .{ .codepoint = 0x08C0, .schematic_name = "DOTLESS BEH WITH TAH AND V ABOVE", .joining_type = .D, .joining_group = .BEH }, + .{ .codepoint = 0x08C1, .schematic_name = "HAH WITH 3 DOTS BELOW AND V ABOVE", .joining_type = .D, .joining_group = .HAH }, + .{ .codepoint = 0x08C2, .schematic_name = "KEHEH WITH V ABOVE", .joining_type = .D, .joining_group = .GAF }, + .{ .codepoint = 0x08C3, .schematic_name = "AIN WITH DIAMOND 4 DOTS ABOVE", .joining_type = .D, .joining_group = .AIN }, + .{ .codepoint = 0x08C4, .schematic_name = "AFRICAN QAF WITH 3 DOTS ABOVE", .joining_type = .D, .joining_group = .AFRICAN_QAF }, + .{ .codepoint = 0x08C5, .schematic_name = "HAH WITH DOT BELOW AND 3 DOTS ABOVE", .joining_type = .D, .joining_group = .HAH }, + .{ .codepoint = 0x08C6, .schematic_name = "HAH WITH DIAMOND 4 DOTS BELOW", .joining_type = .D, .joining_group = .HAH }, + .{ .codepoint = 0x08C7, .schematic_name = "LAM WITH TAH ABOVE", .joining_type = .D, .joining_group = .LAM }, + .{ .codepoint = 0x08E2, .schematic_name = "ARABIC DISPUTED END OF AYAH", .joining_type = .U, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1806, .schematic_name = "MONGOLIAN TODO SOFT HYPHEN", .joining_type = .U, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1807, .schematic_name = "MONGOLIAN SIBE SYLLABLE BOUNDARY MARKER", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x180A, .schematic_name = "MONGOLIAN NIRUGU", .joining_type = .C, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x180E, .schematic_name = "MONGOLIAN VOWEL SEPARATOR", .joining_type = .U, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1820, .schematic_name = "MONGOLIAN A", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1821, .schematic_name = "MONGOLIAN E", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1822, .schematic_name = "MONGOLIAN I", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1823, .schematic_name = "MONGOLIAN O", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1824, .schematic_name = "MONGOLIAN U", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1825, .schematic_name = "MONGOLIAN OE", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1826, .schematic_name = "MONGOLIAN UE", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1827, .schematic_name = "MONGOLIAN EE", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1828, .schematic_name = "MONGOLIAN NA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1829, .schematic_name = "MONGOLIAN ANG", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x182A, .schematic_name = "MONGOLIAN BA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x182B, .schematic_name = "MONGOLIAN PA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x182C, .schematic_name = "MONGOLIAN QA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x182D, .schematic_name = "MONGOLIAN GA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x182E, .schematic_name = "MONGOLIAN MA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x182F, .schematic_name = "MONGOLIAN LA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1830, .schematic_name = "MONGOLIAN SA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1831, .schematic_name = "MONGOLIAN SHA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1832, .schematic_name = "MONGOLIAN TA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1833, .schematic_name = "MONGOLIAN DA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1834, .schematic_name = "MONGOLIAN CHA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1835, .schematic_name = "MONGOLIAN JA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1836, .schematic_name = "MONGOLIAN YA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1837, .schematic_name = "MONGOLIAN RA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1838, .schematic_name = "MONGOLIAN WA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1839, .schematic_name = "MONGOLIAN FA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x183A, .schematic_name = "MONGOLIAN KA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x183B, .schematic_name = "MONGOLIAN KHA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x183C, .schematic_name = "MONGOLIAN TSA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x183D, .schematic_name = "MONGOLIAN ZA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x183E, .schematic_name = "MONGOLIAN HAA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x183F, .schematic_name = "MONGOLIAN ZRA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1840, .schematic_name = "MONGOLIAN LHA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1841, .schematic_name = "MONGOLIAN ZHI", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1842, .schematic_name = "MONGOLIAN CHI", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1843, .schematic_name = "MONGOLIAN TODO LONG VOWEL SIGN", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1844, .schematic_name = "MONGOLIAN TODO E", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1845, .schematic_name = "MONGOLIAN TODO I", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1846, .schematic_name = "MONGOLIAN TODO O", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1847, .schematic_name = "MONGOLIAN TODO U", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1848, .schematic_name = "MONGOLIAN TODO OE", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1849, .schematic_name = "MONGOLIAN TODO UE", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x184A, .schematic_name = "MONGOLIAN TODO ANG", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x184B, .schematic_name = "MONGOLIAN TODO BA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x184C, .schematic_name = "MONGOLIAN TODO PA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x184D, .schematic_name = "MONGOLIAN TODO QA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x184E, .schematic_name = "MONGOLIAN TODO GA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x184F, .schematic_name = "MONGOLIAN TODO MA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1850, .schematic_name = "MONGOLIAN TODO TA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1851, .schematic_name = "MONGOLIAN TODO DA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1852, .schematic_name = "MONGOLIAN TODO CHA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1853, .schematic_name = "MONGOLIAN TODO JA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1854, .schematic_name = "MONGOLIAN TODO TSA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1855, .schematic_name = "MONGOLIAN TODO YA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1856, .schematic_name = "MONGOLIAN TODO WA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1857, .schematic_name = "MONGOLIAN TODO KA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1858, .schematic_name = "MONGOLIAN TODO GAA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1859, .schematic_name = "MONGOLIAN TODO HAA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x185A, .schematic_name = "MONGOLIAN TODO JIA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x185B, .schematic_name = "MONGOLIAN TODO NIA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x185C, .schematic_name = "MONGOLIAN TODO DZA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x185D, .schematic_name = "MONGOLIAN SIBE E", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x185E, .schematic_name = "MONGOLIAN SIBE I", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x185F, .schematic_name = "MONGOLIAN SIBE IY", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1860, .schematic_name = "MONGOLIAN SIBE UE", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1861, .schematic_name = "MONGOLIAN SIBE U", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1862, .schematic_name = "MONGOLIAN SIBE ANG", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1863, .schematic_name = "MONGOLIAN SIBE KA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1864, .schematic_name = "MONGOLIAN SIBE GA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1865, .schematic_name = "MONGOLIAN SIBE HA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1866, .schematic_name = "MONGOLIAN SIBE PA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1867, .schematic_name = "MONGOLIAN SIBE SHA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1868, .schematic_name = "MONGOLIAN SIBE TA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1869, .schematic_name = "MONGOLIAN SIBE DA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x186A, .schematic_name = "MONGOLIAN SIBE JA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x186B, .schematic_name = "MONGOLIAN SIBE FA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x186C, .schematic_name = "MONGOLIAN SIBE GAA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x186D, .schematic_name = "MONGOLIAN SIBE HAA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x186E, .schematic_name = "MONGOLIAN SIBE TSA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x186F, .schematic_name = "MONGOLIAN SIBE ZA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1870, .schematic_name = "MONGOLIAN SIBE RAA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1871, .schematic_name = "MONGOLIAN SIBE CHA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1872, .schematic_name = "MONGOLIAN SIBE ZHA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1873, .schematic_name = "MONGOLIAN MANCHU I", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1874, .schematic_name = "MONGOLIAN MANCHU KA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1875, .schematic_name = "MONGOLIAN MANCHU RA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1876, .schematic_name = "MONGOLIAN MANCHU FA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1877, .schematic_name = "MONGOLIAN MANCHU ZHA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1878, .schematic_name = "MONGOLIAN MANCHU CHA WITH 2 DOTS", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1880, .schematic_name = "MONGOLIAN ALI GALI ANUSVARA ONE", .joining_type = .U, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1881, .schematic_name = "MONGOLIAN ALI GALI VISARGA ONE", .joining_type = .U, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1882, .schematic_name = "MONGOLIAN ALI GALI DAMARU", .joining_type = .U, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1883, .schematic_name = "MONGOLIAN ALI GALI UBADAMA", .joining_type = .U, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1884, .schematic_name = "MONGOLIAN ALI GALI INVERTED UBADAMA", .joining_type = .U, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1885, .schematic_name = "MONGOLIAN ALI GALI BALUDA", .joining_type = .T, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1886, .schematic_name = "MONGOLIAN ALI GALI THREE BALUDA", .joining_type = .T, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1887, .schematic_name = "MONGOLIAN ALI GALI A", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1888, .schematic_name = "MONGOLIAN ALI GALI I", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1889, .schematic_name = "MONGOLIAN ALI GALI KA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x188A, .schematic_name = "MONGOLIAN ALI GALI NGA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x188B, .schematic_name = "MONGOLIAN ALI GALI CA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x188C, .schematic_name = "MONGOLIAN ALI GALI TTA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x188D, .schematic_name = "MONGOLIAN ALI GALI TTHA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x188E, .schematic_name = "MONGOLIAN ALI GALI DDA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x188F, .schematic_name = "MONGOLIAN ALI GALI NNA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1890, .schematic_name = "MONGOLIAN ALI GALI TA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1891, .schematic_name = "MONGOLIAN ALI GALI DA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1892, .schematic_name = "MONGOLIAN ALI GALI PA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1893, .schematic_name = "MONGOLIAN ALI GALI PHA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1894, .schematic_name = "MONGOLIAN ALI GALI SSA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1895, .schematic_name = "MONGOLIAN ALI GALI ZHA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1896, .schematic_name = "MONGOLIAN ALI GALI ZA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1897, .schematic_name = "MONGOLIAN ALI GALI AH", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1898, .schematic_name = "MONGOLIAN TODO ALI GALI TA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1899, .schematic_name = "MONGOLIAN TODO ALI GALI ZHA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x189A, .schematic_name = "MONGOLIAN MANCHU ALI GALI GHA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x189B, .schematic_name = "MONGOLIAN MANCHU ALI GALI NGA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x189C, .schematic_name = "MONGOLIAN MANCHU ALI GALI CA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x189D, .schematic_name = "MONGOLIAN MANCHU ALI GALI JHA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x189E, .schematic_name = "MONGOLIAN MANCHU ALI GALI TTA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x189F, .schematic_name = "MONGOLIAN MANCHU ALI GALI DDHA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x18A0, .schematic_name = "MONGOLIAN MANCHU ALI GALI TA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x18A1, .schematic_name = "MONGOLIAN MANCHU ALI GALI DHA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x18A2, .schematic_name = "MONGOLIAN MANCHU ALI GALI SSA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x18A3, .schematic_name = "MONGOLIAN MANCHU ALI GALI CYA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x18A4, .schematic_name = "MONGOLIAN MANCHU ALI GALI ZHA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x18A5, .schematic_name = "MONGOLIAN MANCHU ALI GALI ZA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x18A6, .schematic_name = "MONGOLIAN ALI GALI HALF U", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x18A7, .schematic_name = "MONGOLIAN ALI GALI HALF YA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x18A8, .schematic_name = "MONGOLIAN MANCHU ALI GALI BHA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x18AA, .schematic_name = "MONGOLIAN MANCHU ALI GALI LHA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x200C, .schematic_name = "ZERO WIDTH NON-JOINER", .joining_type = .U, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x200D, .schematic_name = "ZERO WIDTH JOINER", .joining_type = .C, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x202F, .schematic_name = "NARROW NO-BREAK SPACE", .joining_type = .U, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x2066, .schematic_name = "LEFT-TO-RIGHT ISOLATE", .joining_type = .U, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x2067, .schematic_name = "RIGHT-TO-LEFT ISOLATE", .joining_type = .U, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x2068, .schematic_name = "FIRST STRONG ISOLATE", .joining_type = .U, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x2069, .schematic_name = "POP DIRECTIONAL ISOLATE", .joining_type = .U, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0xA840, .schematic_name = "PHAGS-PA KA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0xA841, .schematic_name = "PHAGS-PA KHA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0xA842, .schematic_name = "PHAGS-PA GA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0xA843, .schematic_name = "PHAGS-PA NGA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0xA844, .schematic_name = "PHAGS-PA CA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0xA845, .schematic_name = "PHAGS-PA CHA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0xA846, .schematic_name = "PHAGS-PA JA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0xA847, .schematic_name = "PHAGS-PA NYA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0xA848, .schematic_name = "PHAGS-PA TA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0xA849, .schematic_name = "PHAGS-PA THA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0xA84A, .schematic_name = "PHAGS-PA DA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0xA84B, .schematic_name = "PHAGS-PA NA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0xA84C, .schematic_name = "PHAGS-PA PA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0xA84D, .schematic_name = "PHAGS-PA PHA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0xA84E, .schematic_name = "PHAGS-PA BA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0xA84F, .schematic_name = "PHAGS-PA MA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0xA850, .schematic_name = "PHAGS-PA TSA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0xA851, .schematic_name = "PHAGS-PA TSHA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0xA852, .schematic_name = "PHAGS-PA DZA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0xA853, .schematic_name = "PHAGS-PA WA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0xA854, .schematic_name = "PHAGS-PA ZHA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0xA855, .schematic_name = "PHAGS-PA ZA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0xA856, .schematic_name = "PHAGS-PA SMALL A", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0xA857, .schematic_name = "PHAGS-PA YA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0xA858, .schematic_name = "PHAGS-PA RA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0xA859, .schematic_name = "PHAGS-PA LA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0xA85A, .schematic_name = "PHAGS-PA SHA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0xA85B, .schematic_name = "PHAGS-PA SA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0xA85C, .schematic_name = "PHAGS-PA HA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0xA85D, .schematic_name = "PHAGS-PA A", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0xA85E, .schematic_name = "PHAGS-PA I", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0xA85F, .schematic_name = "PHAGS-PA U", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0xA860, .schematic_name = "PHAGS-PA E", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0xA861, .schematic_name = "PHAGS-PA O", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0xA862, .schematic_name = "PHAGS-PA QA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0xA863, .schematic_name = "PHAGS-PA XA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0xA864, .schematic_name = "PHAGS-PA FA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0xA865, .schematic_name = "PHAGS-PA GGA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0xA866, .schematic_name = "PHAGS-PA EE", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0xA867, .schematic_name = "PHAGS-PA SUBJOINED WA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0xA868, .schematic_name = "PHAGS-PA SUBJOINED YA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0xA869, .schematic_name = "PHAGS-PA TTA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0xA86A, .schematic_name = "PHAGS-PA TTHA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0xA86B, .schematic_name = "PHAGS-PA DDA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0xA86C, .schematic_name = "PHAGS-PA NNA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0xA86D, .schematic_name = "PHAGS-PA ALTERNATE YA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0xA86E, .schematic_name = "PHAGS-PA VOICELESS SHA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0xA86F, .schematic_name = "PHAGS-PA VOICED HA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0xA870, .schematic_name = "PHAGS-PA ASPIRATED FA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0xA871, .schematic_name = "PHAGS-PA SUBJOINED RA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0xA872, .schematic_name = "PHAGS-PA SUPERFIXED RA", .joining_type = .L, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0xA873, .schematic_name = "PHAGS-PA CANDRABINDU", .joining_type = .U, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10AC0, .schematic_name = "MANICHAEAN ALEPH", .joining_type = .D, .joining_group = .MANICHAEAN_ALEPH }, + .{ .codepoint = 0x10AC1, .schematic_name = "MANICHAEAN BETH", .joining_type = .D, .joining_group = .MANICHAEAN_BETH }, + .{ .codepoint = 0x10AC2, .schematic_name = "MANICHAEAN BETH WITH 2 DOTS ABOVE", .joining_type = .D, .joining_group = .MANICHAEAN_BETH }, + .{ .codepoint = 0x10AC3, .schematic_name = "MANICHAEAN GIMEL", .joining_type = .D, .joining_group = .MANICHAEAN_GIMEL }, + .{ .codepoint = 0x10AC4, .schematic_name = "MANICHAEAN GIMEL WITH ATTACHED RING BELOW", .joining_type = .D, .joining_group = .MANICHAEAN_GIMEL }, + .{ .codepoint = 0x10AC5, .schematic_name = "MANICHAEAN DALETH", .joining_type = .R, .joining_group = .MANICHAEAN_DALETH }, + .{ .codepoint = 0x10AC6, .schematic_name = "MANICHAEAN HE", .joining_type = .U, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10AC7, .schematic_name = "MANICHAEAN WAW", .joining_type = .R, .joining_group = .MANICHAEAN_WAW }, + .{ .codepoint = 0x10AC8, .schematic_name = "MANICHAEAN UD", .joining_type = .U, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10AC9, .schematic_name = "MANICHAEAN ZAYIN", .joining_type = .R, .joining_group = .MANICHAEAN_ZAYIN }, + .{ .codepoint = 0x10ACA, .schematic_name = "MANICHAEAN ZAYIN WITH 2 DOTS ABOVE", .joining_type = .R, .joining_group = .MANICHAEAN_ZAYIN }, + .{ .codepoint = 0x10ACB, .schematic_name = "MANICHAEAN JAYIN", .joining_type = .U, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10ACC, .schematic_name = "MANICHAEAN JAYIN WITH 2 DOTS ABOVE", .joining_type = .U, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10ACD, .schematic_name = "MANICHAEAN HETH", .joining_type = .L, .joining_group = .MANICHAEAN_HETH }, + .{ .codepoint = 0x10ACE, .schematic_name = "MANICHAEAN TETH", .joining_type = .R, .joining_group = .MANICHAEAN_TETH }, + .{ .codepoint = 0x10ACF, .schematic_name = "MANICHAEAN YODH", .joining_type = .R, .joining_group = .MANICHAEAN_YODH }, + .{ .codepoint = 0x10AD0, .schematic_name = "MANICHAEAN KAPH", .joining_type = .R, .joining_group = .MANICHAEAN_KAPH }, + .{ .codepoint = 0x10AD1, .schematic_name = "MANICHAEAN KAPH WITH DOT ABOVE", .joining_type = .R, .joining_group = .MANICHAEAN_KAPH }, + .{ .codepoint = 0x10AD2, .schematic_name = "MANICHAEAN KAPH WITH 2 DOTS ABOVE", .joining_type = .R, .joining_group = .MANICHAEAN_KAPH }, + .{ .codepoint = 0x10AD3, .schematic_name = "MANICHAEAN LAMEDH", .joining_type = .D, .joining_group = .MANICHAEAN_LAMEDH }, + .{ .codepoint = 0x10AD4, .schematic_name = "MANICHAEAN DHAMEDH", .joining_type = .D, .joining_group = .MANICHAEAN_DHAMEDH }, + .{ .codepoint = 0x10AD5, .schematic_name = "MANICHAEAN THAMEDH", .joining_type = .D, .joining_group = .MANICHAEAN_THAMEDH }, + .{ .codepoint = 0x10AD6, .schematic_name = "MANICHAEAN MEM", .joining_type = .D, .joining_group = .MANICHAEAN_MEM }, + .{ .codepoint = 0x10AD7, .schematic_name = "MANICHAEAN NUN", .joining_type = .L, .joining_group = .MANICHAEAN_NUN }, + .{ .codepoint = 0x10AD8, .schematic_name = "MANICHAEAN SAMEKH", .joining_type = .D, .joining_group = .MANICHAEAN_SAMEKH }, + .{ .codepoint = 0x10AD9, .schematic_name = "MANICHAEAN AYIN", .joining_type = .D, .joining_group = .MANICHAEAN_AYIN }, + .{ .codepoint = 0x10ADA, .schematic_name = "MANICHAEAN AYIN WITH 2 DOTS ABOVE", .joining_type = .D, .joining_group = .MANICHAEAN_AYIN }, + .{ .codepoint = 0x10ADB, .schematic_name = "MANICHAEAN PE", .joining_type = .D, .joining_group = .MANICHAEAN_PE }, + .{ .codepoint = 0x10ADC, .schematic_name = "MANICHAEAN PE WITH DOT ABOVE", .joining_type = .D, .joining_group = .MANICHAEAN_PE }, + .{ .codepoint = 0x10ADD, .schematic_name = "MANICHAEAN SADHE", .joining_type = .R, .joining_group = .MANICHAEAN_SADHE }, + .{ .codepoint = 0x10ADE, .schematic_name = "MANICHAEAN QOPH", .joining_type = .D, .joining_group = .MANICHAEAN_QOPH }, + .{ .codepoint = 0x10ADF, .schematic_name = "MANICHAEAN QOPH WITH DOT ABOVE", .joining_type = .D, .joining_group = .MANICHAEAN_QOPH }, + .{ .codepoint = 0x10AE0, .schematic_name = "MANICHAEAN QOPH WITH 2 DOTS ABOVE", .joining_type = .D, .joining_group = .MANICHAEAN_QOPH }, + .{ .codepoint = 0x10AE1, .schematic_name = "MANICHAEAN RESH", .joining_type = .R, .joining_group = .MANICHAEAN_RESH }, + .{ .codepoint = 0x10AE2, .schematic_name = "MANICHAEAN SHIN", .joining_type = .U, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10AE3, .schematic_name = "MANICHAEAN SHIN WITH 2 DOTS ABOVE", .joining_type = .U, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10AE4, .schematic_name = "MANICHAEAN TAW", .joining_type = .R, .joining_group = .MANICHAEAN_TAW }, + .{ .codepoint = 0x10AEB, .schematic_name = "MANICHAEAN ONE", .joining_type = .D, .joining_group = .MANICHAEAN_ONE }, + .{ .codepoint = 0x10AEC, .schematic_name = "MANICHAEAN FIVE", .joining_type = .D, .joining_group = .MANICHAEAN_FIVE }, + .{ .codepoint = 0x10AED, .schematic_name = "MANICHAEAN TEN", .joining_type = .D, .joining_group = .MANICHAEAN_TEN }, + .{ .codepoint = 0x10AEE, .schematic_name = "MANICHAEAN TWENTY", .joining_type = .D, .joining_group = .MANICHAEAN_TWENTY }, + .{ .codepoint = 0x10AEF, .schematic_name = "MANICHAEAN HUNDRED", .joining_type = .R, .joining_group = .MANICHAEAN_HUNDRED }, + .{ .codepoint = 0x10B80, .schematic_name = "PSALTER PAHLAVI ALEPH", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10B81, .schematic_name = "PSALTER PAHLAVI BETH", .joining_type = .R, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10B82, .schematic_name = "PSALTER PAHLAVI GIMEL", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10B83, .schematic_name = "PSALTER PAHLAVI DALETH", .joining_type = .R, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10B84, .schematic_name = "PSALTER PAHLAVI HE", .joining_type = .R, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10B85, .schematic_name = "PSALTER PAHLAVI WAW-AYIN-RESH", .joining_type = .R, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10B86, .schematic_name = "PSALTER PAHLAVI ZAYIN", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10B87, .schematic_name = "PSALTER PAHLAVI HETH", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10B88, .schematic_name = "PSALTER PAHLAVI YODH", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10B89, .schematic_name = "PSALTER PAHLAVI KAPH", .joining_type = .R, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10B8A, .schematic_name = "PSALTER PAHLAVI LAMEDH", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10B8B, .schematic_name = "PSALTER PAHLAVI MEM-QOPH", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10B8C, .schematic_name = "PSALTER PAHLAVI NUN", .joining_type = .R, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10B8D, .schematic_name = "PSALTER PAHLAVI SAMEKH", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10B8E, .schematic_name = "PSALTER PAHLAVI PE", .joining_type = .R, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10B8F, .schematic_name = "PSALTER PAHLAVI SADHE", .joining_type = .R, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10B90, .schematic_name = "PSALTER PAHLAVI SHIN", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10B91, .schematic_name = "PSALTER PAHLAVI TAW", .joining_type = .R, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10BA9, .schematic_name = "PSALTER PAHLAVI ONE", .joining_type = .R, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10BAA, .schematic_name = "PSALTER PAHLAVI TWO", .joining_type = .R, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10BAB, .schematic_name = "PSALTER PAHLAVI THREE", .joining_type = .R, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10BAC, .schematic_name = "PSALTER PAHLAVI FOUR", .joining_type = .R, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10BAD, .schematic_name = "PSALTER PAHLAVI TEN", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10BAE, .schematic_name = "PSALTER PAHLAVI TWENTY", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10BAF, .schematic_name = "PSALTER PAHLAVI HUNDRED", .joining_type = .U, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10D00, .schematic_name = "HANIFI ROHINGYA A", .joining_type = .L, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10D01, .schematic_name = "HANIFI ROHINGYA BA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10D02, .schematic_name = "HANIFI ROHINGYA PA", .joining_type = .D, .joining_group = .HANIFI_ROHINGYA_PA }, + .{ .codepoint = 0x10D03, .schematic_name = "HANIFI ROHINGYA TA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10D04, .schematic_name = "HANIFI ROHINGYA TTA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10D05, .schematic_name = "HANIFI ROHINGYA JA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10D06, .schematic_name = "HANIFI ROHINGYA CA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10D07, .schematic_name = "HANIFI ROHINGYA HA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10D08, .schematic_name = "HANIFI ROHINGYA KHA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10D09, .schematic_name = "HANIFI ROHINGYA PA WITH DOT ABOVE", .joining_type = .D, .joining_group = .HANIFI_ROHINGYA_PA }, + .{ .codepoint = 0x10D0A, .schematic_name = "HANIFI ROHINGYA DA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10D0B, .schematic_name = "HANIFI ROHINGYA DDA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10D0C, .schematic_name = "HANIFI ROHINGYA RA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10D0D, .schematic_name = "HANIFI ROHINGYA RRA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10D0E, .schematic_name = "HANIFI ROHINGYA ZA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10D0F, .schematic_name = "HANIFI ROHINGYA SA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10D10, .schematic_name = "HANIFI ROHINGYA SHA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10D11, .schematic_name = "HANIFI ROHINGYA KA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10D12, .schematic_name = "HANIFI ROHINGYA GA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10D13, .schematic_name = "HANIFI ROHINGYA LA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10D14, .schematic_name = "HANIFI ROHINGYA MA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10D15, .schematic_name = "HANIFI ROHINGYA NA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10D16, .schematic_name = "HANIFI ROHINGYA WA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10D17, .schematic_name = "HANIFI ROHINGYA KINNA WA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10D18, .schematic_name = "HANIFI ROHINGYA YA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10D19, .schematic_name = "HANIFI ROHINGYA KINNA YA", .joining_type = .D, .joining_group = .HANIFI_ROHINGYA_KINNA_YA }, + .{ .codepoint = 0x10D1A, .schematic_name = "HANIFI ROHINGYA NGA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10D1B, .schematic_name = "HANIFI ROHINGYA NYA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10D1C, .schematic_name = "HANIFI ROHINGYA PA WITH 3 DOTS ABOVE", .joining_type = .D, .joining_group = .HANIFI_ROHINGYA_PA }, + .{ .codepoint = 0x10D1D, .schematic_name = "HANIFI ROHINGYA VOWEL A", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10D1E, .schematic_name = "HANIFI ROHINGYA DOTLESS KINNA YA WITH LEFT-FACING HOOK BELOW", .joining_type = .D, .joining_group = .HANIFI_ROHINGYA_KINNA_YA }, + .{ .codepoint = 0x10D1F, .schematic_name = "HANIFI ROHINGYA VOWEL U", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10D20, .schematic_name = "HANIFI ROHINGYA DOTLESS KINNA YA WITH RIGHT-FACING HOOK BELOW", .joining_type = .D, .joining_group = .HANIFI_ROHINGYA_KINNA_YA }, + .{ .codepoint = 0x10D21, .schematic_name = "HANIFI ROHINGYA VOWEL O", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10D22, .schematic_name = "HANIFI ROHINGYA SAKIN", .joining_type = .R, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10D23, .schematic_name = "HANIFI ROHINGYA DOTLESS KINNA YA WITH DOT ABOVE", .joining_type = .D, .joining_group = .HANIFI_ROHINGYA_KINNA_YA }, + .{ .codepoint = 0x10F30, .schematic_name = "SOGDIAN ALEPH", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10F31, .schematic_name = "SOGDIAN BETH", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10F32, .schematic_name = "SOGDIAN GIMEL", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10F33, .schematic_name = "SOGDIAN HE", .joining_type = .R, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10F34, .schematic_name = "SOGDIAN WAW", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10F35, .schematic_name = "SOGDIAN ZAYIN", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10F36, .schematic_name = "SOGDIAN HETH", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10F37, .schematic_name = "SOGDIAN YODH", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10F38, .schematic_name = "SOGDIAN KAPH", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10F39, .schematic_name = "SOGDIAN LAMEDH", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10F3A, .schematic_name = "SOGDIAN MEM", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10F3B, .schematic_name = "SOGDIAN NUN", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10F3C, .schematic_name = "SOGDIAN SAMEKH", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10F3D, .schematic_name = "SOGDIAN AYIN", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10F3E, .schematic_name = "SOGDIAN PE", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10F3F, .schematic_name = "SOGDIAN SADHE", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10F40, .schematic_name = "SOGDIAN RESH-AYIN", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10F41, .schematic_name = "SOGDIAN SHIN", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10F42, .schematic_name = "SOGDIAN TAW", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10F43, .schematic_name = "SOGDIAN FETH", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10F44, .schematic_name = "SOGDIAN LESH", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10F45, .schematic_name = "SOGDIAN INDEPENDENT SHIN", .joining_type = .U, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10F51, .schematic_name = "SOGDIAN ONE", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10F52, .schematic_name = "SOGDIAN TEN", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10F53, .schematic_name = "SOGDIAN TWENTY", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10F54, .schematic_name = "SOGDIAN ONE HUNDRED", .joining_type = .R, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10FB0, .schematic_name = "CHORASMIAN ALEPH", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10FB1, .schematic_name = "CHORASMIAN SMALL ALEPH", .joining_type = .U, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10FB2, .schematic_name = "CHORASMIAN BETH", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10FB3, .schematic_name = "CHORASMIAN GIMEL", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10FB4, .schematic_name = "CHORASMIAN DALETH", .joining_type = .R, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10FB5, .schematic_name = "CHORASMIAN HE", .joining_type = .R, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10FB6, .schematic_name = "CHORASMIAN WAW", .joining_type = .R, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10FB7, .schematic_name = "CHORASMIAN CURLED WAW", .joining_type = .U, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10FB8, .schematic_name = "CHORASMIAN ZAYIN", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10FB9, .schematic_name = "CHORASMIAN HETH", .joining_type = .R, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10FBA, .schematic_name = "CHORASMIAN YODH", .joining_type = .R, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10FBB, .schematic_name = "CHORASMIAN KAPH", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10FBC, .schematic_name = "CHORASMIAN LAMEDH", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10FBD, .schematic_name = "CHORASMIAN MEM", .joining_type = .R, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10FBE, .schematic_name = "CHORASMIAN NUN", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10FBF, .schematic_name = "CHORASMIAN SAMEKH", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10FC0, .schematic_name = "CHORASMIAN AYIN", .joining_type = .U, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10FC1, .schematic_name = "CHORASMIAN PE", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10FC2, .schematic_name = "CHORASMIAN RESH", .joining_type = .R, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10FC3, .schematic_name = "CHORASMIAN SHIN", .joining_type = .R, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10FC4, .schematic_name = "CHORASMIAN TAW", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10FC5, .schematic_name = "CHORASMIAN ONE", .joining_type = .U, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10FC6, .schematic_name = "CHORASMIAN TWO", .joining_type = .U, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10FC7, .schematic_name = "CHORASMIAN THREE", .joining_type = .U, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10FC8, .schematic_name = "CHORASMIAN FOUR", .joining_type = .U, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10FC9, .schematic_name = "CHORASMIAN TEN", .joining_type = .R, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10FCA, .schematic_name = "CHORASMIAN TWENTY", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x10FCB, .schematic_name = "CHORASMIAN ONE HUNDRED", .joining_type = .L, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x110BD, .schematic_name = "KAITHI NUMBER SIGN", .joining_type = .U, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x110CD, .schematic_name = "KAITHI NUMBER SIGN ABOVE", .joining_type = .U, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1E900, .schematic_name = "ADLAM CAPITAL ALIF", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1E901, .schematic_name = "ADLAM CAPITAL DAALI", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1E902, .schematic_name = "ADLAM CAPITAL LAAM", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1E903, .schematic_name = "ADLAM CAPITAL MIIM", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1E904, .schematic_name = "ADLAM CAPITAL BA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1E905, .schematic_name = "ADLAM CAPITAL SINNYIIYHE", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1E906, .schematic_name = "ADLAM CAPITAL PE", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1E907, .schematic_name = "ADLAM CAPITAL BHE", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1E908, .schematic_name = "ADLAM CAPITAL RA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1E909, .schematic_name = "ADLAM CAPITAL E", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1E90A, .schematic_name = "ADLAM CAPITAL FA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1E90B, .schematic_name = "ADLAM CAPITAL I", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1E90C, .schematic_name = "ADLAM CAPITAL O", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1E90D, .schematic_name = "ADLAM CAPITAL DHA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1E90E, .schematic_name = "ADLAM CAPITAL YHE", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1E90F, .schematic_name = "ADLAM CAPITAL WAW", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1E910, .schematic_name = "ADLAM CAPITAL NUN", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1E911, .schematic_name = "ADLAM CAPITAL KAF", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1E912, .schematic_name = "ADLAM CAPITAL YA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1E913, .schematic_name = "ADLAM CAPITAL U", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1E914, .schematic_name = "ADLAM CAPITAL JIIM", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1E915, .schematic_name = "ADLAM CAPITAL CHI", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1E916, .schematic_name = "ADLAM CAPITAL HA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1E917, .schematic_name = "ADLAM CAPITAL QAAF", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1E918, .schematic_name = "ADLAM CAPITAL GA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1E919, .schematic_name = "ADLAM CAPITAL NYA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1E91A, .schematic_name = "ADLAM CAPITAL TU", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1E91B, .schematic_name = "ADLAM CAPITAL NHA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1E91C, .schematic_name = "ADLAM CAPITAL VA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1E91D, .schematic_name = "ADLAM CAPITAL KHA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1E91E, .schematic_name = "ADLAM CAPITAL GBE", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1E91F, .schematic_name = "ADLAM CAPITAL ZAL", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1E920, .schematic_name = "ADLAM CAPITAL KPO", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1E921, .schematic_name = "ADLAM CAPITAL SHA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1E922, .schematic_name = "ADLAM SMALL ALIF", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1E923, .schematic_name = "ADLAM SMALL DAALI", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1E924, .schematic_name = "ADLAM SMALL LAAM", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1E925, .schematic_name = "ADLAM SMALL MIIM", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1E926, .schematic_name = "ADLAM SMALL BA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1E927, .schematic_name = "ADLAM SMALL SINNYIIYHE", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1E928, .schematic_name = "ADLAM SMALL PE", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1E929, .schematic_name = "ADLAM SMALL BHE", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1E92A, .schematic_name = "ADLAM SMALL RA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1E92B, .schematic_name = "ADLAM SMALL E", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1E92C, .schematic_name = "ADLAM SMALL FA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1E92D, .schematic_name = "ADLAM SMALL I", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1E92E, .schematic_name = "ADLAM SMALL O", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1E92F, .schematic_name = "ADLAM SMALL DHA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1E930, .schematic_name = "ADLAM SMALL YHE", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1E931, .schematic_name = "ADLAM SMALL WAW", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1E932, .schematic_name = "ADLAM SMALL NUN", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1E933, .schematic_name = "ADLAM SMALL KAF", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1E934, .schematic_name = "ADLAM SMALL YA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1E935, .schematic_name = "ADLAM SMALL U", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1E936, .schematic_name = "ADLAM SMALL JIIM", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1E937, .schematic_name = "ADLAM SMALL CHI", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1E938, .schematic_name = "ADLAM SMALL HA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1E939, .schematic_name = "ADLAM SMALL QAAF", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1E93A, .schematic_name = "ADLAM SMALL GA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1E93B, .schematic_name = "ADLAM SMALL NYA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1E93C, .schematic_name = "ADLAM SMALL TU", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1E93D, .schematic_name = "ADLAM SMALL NHA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1E93E, .schematic_name = "ADLAM SMALL VA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1E93F, .schematic_name = "ADLAM SMALL KHA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1E940, .schematic_name = "ADLAM SMALL GBE", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1E941, .schematic_name = "ADLAM SMALL ZAL", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1E942, .schematic_name = "ADLAM SMALL KPO", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1E943, .schematic_name = "ADLAM SMALL SHA", .joining_type = .D, .joining_group = .No_Joining_Group }, + .{ .codepoint = 0x1E94B, .schematic_name = "ADLAM NASALIZATION MARK", .joining_type = .T, .joining_group = .No_Joining_Group }, +}; diff --git a/src/lib.zig b/src/lib.zig index 7a14f1e933f4a2dd5cb232e2430eb1d41b262d05..0329462ce0d55acd10ac1617423ef8995d0b8c2a 100644 --- a/src/lib.zig +++ b/src/lib.zig @@ -1,4 +1,4 @@ -// +pub const arabic_shaping = @import("./arabic_shaping.zig"); // // // diff --git a/src/main.zig b/src/main.zig index c8400f8992f34d2657bbd6132a0e2af5a3ba2356..9201ad0fcffbf8494dbbfb1ed9a22bb652a7dc1b 100644 --- a/src/main.zig +++ b/src/main.zig @@ -7,6 +7,7 @@ pub fn main() !void { const data = .{ ucd.blocks.blocks, + ucd.arabic_shaping.arabic_shaping, }; inline for (data) |b| { -- 2.54.0