authorgravatar for hello@nektro.netMeghan Denny <hello@nektro.net> 2022-12-23 00:21:09 -08:00
committergravatar for hello@nektro.netMeghan Denny <hello@nektro.net> 2022-12-23 00:37:39 -08:00
log43f41f0498ecc6d3c972f2f446872d3ec9d41670
tree3e26742dcdb3971e6e5f1285affaebe97b35abba
parent2d9519214d8f00902e79e0b2232aa2b9e1110a84

add ScriptExtensions, closes #32


5 files changed, 808 insertions(+), 1 deletions(-)

generate.zig+1
......@@ -1,6 +1,7 @@
11const std = @import("std");
22
33const files = [_]type{
4 @import("./scripts/ScriptExtensions.zig"),
45 @import("./scripts/emoji.zig"),
56 @import("./scripts/Blocks.zig"),
67 @import("./scripts/ArabicShaping.zig"),
scripts/ScriptExtensions.zig created+129
......@@ -0,0 +1,129 @@
1const std = @import("std");
2const common = @import("./_common.zig");
3
4pub usingnamespace common.Main(struct {
5 pub const source_file = "ScriptExtensions";
6
7 pub const dest_file = "src/script_extensions.zig";
8
9 pub const dest_header =
10 \\pub const ScriptExtension = struct {
11 \\ code: u21,
12 \\ scripts: []const enum {
13 \\ Beng,
14 \\ Deva,
15 \\ Dupl,
16 \\ Grek,
17 \\ Hani,
18 \\ Latn,
19 \\ Nand,
20 \\ Arab,
21 \\ Bopo,
22 \\ Bugi,
23 \\ Cprt,
24 \\ Cyrl,
25 \\ Geor,
26 \\ Gran,
27 \\ Gujr,
28 \\ Guru,
29 \\ Hira,
30 \\ Knda,
31 \\ Mong,
32 \\ Cakm,
33 \\ Kali,
34 \\ Buhd,
35 \\ Adlm,
36 \\ Copt,
37 \\ Rohg,
38 \\ Syrc,
39 \\ Thaa,
40 \\ Java,
41 \\ Linb,
42 \\ Glag,
43 \\ Perm,
44 \\ Shrd,
45 \\ Taml,
46 \\ Khoj,
47 \\ Mult,
48 \\ Kana,
49 \\ Phag,
50 \\ Yezi,
51 \\ Sylo,
52 \\ Mymr,
53 \\ Tale,
54 \\ Lina,
55 \\ Hano,
56 \\ Tagb,
57 \\ Tglg,
58 \\ Dogr,
59 \\ Kthi,
60 \\ Mahj,
61 \\ Hang,
62 \\ Yiii,
63 \\ Mlym,
64 \\ Orya,
65 \\ Telu,
66 \\ Mand,
67 \\ Mani,
68 \\ Phlp,
69 \\ Sogd,
70 \\ Tirh,
71 \\ Modi,
72 \\ Sind,
73 \\ Takr,
74 \\ Gong,
75 \\ Gonm,
76 \\ Sinh,
77 \\ Limb,
78 \\ },
79 \\};
80 \\
81 \\pub const data = [_]ScriptExtension{
82 \\
83 ;
84
85 pub const dest_footer =
86 \\};
87 \\
88 ;
89
90 pub fn exec(alloc: std.mem.Allocator, line: []const u8, writer: anytype) !bool {
91 _ = alloc;
92 var it = std.mem.tokenize(u8, line, "; ");
93
94 const first = it.next().?;
95
96 if (std.mem.indexOf(u8, first, "..")) |index| {
97 const start = try std.fmt.parseInt(u21, first[0..index], 16);
98 const end = try std.fmt.parseInt(u21, first[index + 2 ..], 16);
99 var i = start;
100 while (i <= end) : (i += 1) {
101 try writer.print(" .{{ .code = 0x{X}, .scripts = {} }},\n", .{ i, fmtScripts(untilComment(it.rest())) });
102 }
103 } else {
104 try writer.print(" .{{ .code = 0x{s}, .scripts = {} }},\n", .{ first, fmtScripts(untilComment(it.rest())) });
105 }
106
107 return true;
108 }
109});
110
111fn untilComment(input: []const u8) []const u8 {
112 return input[0..std.mem.indexOfScalar(u8, input, '#').?];
113}
114
115fn fmtScripts(bytes: []const u8) std.fmt.Formatter(formatScripts) {
116 return .{ .data = bytes };
117}
118
119fn formatScripts(bytes: []const u8, comptime fmt: []const u8, options: std.fmt.FormatOptions, writer: anytype) !void {
120 _ = fmt;
121 _ = options;
122 try writer.writeAll("&.{");
123 var it = std.mem.split(u8, bytes, " ");
124 while (it.next()) |item| {
125 if (item.len == 0) continue;
126 try writer.print(" .{s},", .{item});
127 }
128 try writer.writeAll(" }");
129}
src/lib.zig+1-1
......@@ -29,7 +29,7 @@ pub const named_sequences_prov = @import("./named_sequences_prov.zig");
2929pub const prop_list = @import("./prop_list.zig");
3030// PropertyAliases.txt
3131// PropertyValueAliases.txt
32// ScriptExtensions.txt
32pub const script_extensions = @import("./script_extensions.zig");
3333pub const scripts = @import("./scripts.zig");
3434// SpecialCasing.txt
3535// StandardizedVariants.txt
src/main.zig+1
......@@ -30,6 +30,7 @@ pub fn main() !void {
3030 ucd.scripts,
3131 ucd.vertical_orientation,
3232 ucd.emoji,
33 ucd.script_extensions,
3334 };
3435
3536 inline for (data) |b| {
src/script_extensions.zig created+676
......@@ -0,0 +1,676 @@
1// This file is part of the Unicode Character Database
2// For documentation, see http://www.unicode.org/reports/tr44/
3//
4// Based on the source file: https://unicode.org/Public/13.0.0/ucd/ScriptExtensions.txt
5//
6// zig fmt: off
7
8pub const ScriptExtension = struct {
9 code: u21,
10 scripts: []const enum {
11 Beng,
12 Deva,
13 Dupl,
14 Grek,
15 Hani,
16 Latn,
17 Nand,
18 Arab,
19 Bopo,
20 Bugi,
21 Cprt,
22 Cyrl,
23 Geor,
24 Gran,
25 Gujr,
26 Guru,
27 Hira,
28 Knda,
29 Mong,
30 Cakm,
31 Kali,
32 Buhd,
33 Adlm,
34 Copt,
35 Rohg,
36 Syrc,
37 Thaa,
38 Java,
39 Linb,
40 Glag,
41 Perm,
42 Shrd,
43 Taml,
44 Khoj,
45 Mult,
46 Kana,
47 Phag,
48 Yezi,
49 Sylo,
50 Mymr,
51 Tale,
52 Lina,
53 Hano,
54 Tagb,
55 Tglg,
56 Dogr,
57 Kthi,
58 Mahj,
59 Hang,
60 Yiii,
61 Mlym,
62 Orya,
63 Telu,
64 Mand,
65 Mani,
66 Phlp,
67 Sogd,
68 Tirh,
69 Modi,
70 Sind,
71 Takr,
72 Gong,
73 Gonm,
74 Sinh,
75 Limb,
76 },
77};
78
79pub const data = [_]ScriptExtension{
80 .{ .code = 0x1CF7, .scripts = &.{ .Beng, } },
81 .{ .code = 0x1CD1, .scripts = &.{ .Deva, } },
82 .{ .code = 0x1CD4, .scripts = &.{ .Deva, } },
83 .{ .code = 0x1CDB, .scripts = &.{ .Deva, } },
84 .{ .code = 0x1CDE, .scripts = &.{ .Deva, } },
85 .{ .code = 0x1CDF, .scripts = &.{ .Deva, } },
86 .{ .code = 0x1CE2, .scripts = &.{ .Deva, } },
87 .{ .code = 0x1CE3, .scripts = &.{ .Deva, } },
88 .{ .code = 0x1CE4, .scripts = &.{ .Deva, } },
89 .{ .code = 0x1CE5, .scripts = &.{ .Deva, } },
90 .{ .code = 0x1CE6, .scripts = &.{ .Deva, } },
91 .{ .code = 0x1CE7, .scripts = &.{ .Deva, } },
92 .{ .code = 0x1CE8, .scripts = &.{ .Deva, } },
93 .{ .code = 0x1CEB, .scripts = &.{ .Deva, } },
94 .{ .code = 0x1CEC, .scripts = &.{ .Deva, } },
95 .{ .code = 0x1CEE, .scripts = &.{ .Deva, } },
96 .{ .code = 0x1CEF, .scripts = &.{ .Deva, } },
97 .{ .code = 0x1CF0, .scripts = &.{ .Deva, } },
98 .{ .code = 0x1CF1, .scripts = &.{ .Deva, } },
99 .{ .code = 0x1BCA0, .scripts = &.{ .Dupl, } },
100 .{ .code = 0x1BCA1, .scripts = &.{ .Dupl, } },
101 .{ .code = 0x1BCA2, .scripts = &.{ .Dupl, } },
102 .{ .code = 0x1BCA3, .scripts = &.{ .Dupl, } },
103 .{ .code = 0x0342, .scripts = &.{ .Grek, } },
104 .{ .code = 0x0345, .scripts = &.{ .Grek, } },
105 .{ .code = 0x1DC0, .scripts = &.{ .Grek, } },
106 .{ .code = 0x1DC1, .scripts = &.{ .Grek, } },
107 .{ .code = 0x3006, .scripts = &.{ .Hani, } },
108 .{ .code = 0x303E, .scripts = &.{ .Hani, } },
109 .{ .code = 0x303F, .scripts = &.{ .Hani, } },
110 .{ .code = 0x3190, .scripts = &.{ .Hani, } },
111 .{ .code = 0x3191, .scripts = &.{ .Hani, } },
112 .{ .code = 0x3192, .scripts = &.{ .Hani, } },
113 .{ .code = 0x3193, .scripts = &.{ .Hani, } },
114 .{ .code = 0x3194, .scripts = &.{ .Hani, } },
115 .{ .code = 0x3195, .scripts = &.{ .Hani, } },
116 .{ .code = 0x3196, .scripts = &.{ .Hani, } },
117 .{ .code = 0x3197, .scripts = &.{ .Hani, } },
118 .{ .code = 0x3198, .scripts = &.{ .Hani, } },
119 .{ .code = 0x3199, .scripts = &.{ .Hani, } },
120 .{ .code = 0x319A, .scripts = &.{ .Hani, } },
121 .{ .code = 0x319B, .scripts = &.{ .Hani, } },
122 .{ .code = 0x319C, .scripts = &.{ .Hani, } },
123 .{ .code = 0x319D, .scripts = &.{ .Hani, } },
124 .{ .code = 0x319E, .scripts = &.{ .Hani, } },
125 .{ .code = 0x319F, .scripts = &.{ .Hani, } },
126 .{ .code = 0x31C0, .scripts = &.{ .Hani, } },
127 .{ .code = 0x31C1, .scripts = &.{ .Hani, } },
128 .{ .code = 0x31C2, .scripts = &.{ .Hani, } },
129 .{ .code = 0x31C3, .scripts = &.{ .Hani, } },
130 .{ .code = 0x31C4, .scripts = &.{ .Hani, } },
131 .{ .code = 0x31C5, .scripts = &.{ .Hani, } },
132 .{ .code = 0x31C6, .scripts = &.{ .Hani, } },
133 .{ .code = 0x31C7, .scripts = &.{ .Hani, } },
134 .{ .code = 0x31C8, .scripts = &.{ .Hani, } },
135 .{ .code = 0x31C9, .scripts = &.{ .Hani, } },
136 .{ .code = 0x31CA, .scripts = &.{ .Hani, } },
137 .{ .code = 0x31CB, .scripts = &.{ .Hani, } },
138 .{ .code = 0x31CC, .scripts = &.{ .Hani, } },
139 .{ .code = 0x31CD, .scripts = &.{ .Hani, } },
140 .{ .code = 0x31CE, .scripts = &.{ .Hani, } },
141 .{ .code = 0x31CF, .scripts = &.{ .Hani, } },
142 .{ .code = 0x31D0, .scripts = &.{ .Hani, } },
143 .{ .code = 0x31D1, .scripts = &.{ .Hani, } },
144 .{ .code = 0x31D2, .scripts = &.{ .Hani, } },
145 .{ .code = 0x31D3, .scripts = &.{ .Hani, } },
146 .{ .code = 0x31D4, .scripts = &.{ .Hani, } },
147 .{ .code = 0x31D5, .scripts = &.{ .Hani, } },
148 .{ .code = 0x31D6, .scripts = &.{ .Hani, } },
149 .{ .code = 0x31D7, .scripts = &.{ .Hani, } },
150 .{ .code = 0x31D8, .scripts = &.{ .Hani, } },
151 .{ .code = 0x31D9, .scripts = &.{ .Hani, } },
152 .{ .code = 0x31DA, .scripts = &.{ .Hani, } },
153 .{ .code = 0x31DB, .scripts = &.{ .Hani, } },
154 .{ .code = 0x31DC, .scripts = &.{ .Hani, } },
155 .{ .code = 0x31DD, .scripts = &.{ .Hani, } },
156 .{ .code = 0x31DE, .scripts = &.{ .Hani, } },
157 .{ .code = 0x31DF, .scripts = &.{ .Hani, } },
158 .{ .code = 0x31E0, .scripts = &.{ .Hani, } },
159 .{ .code = 0x31E1, .scripts = &.{ .Hani, } },
160 .{ .code = 0x31E2, .scripts = &.{ .Hani, } },
161 .{ .code = 0x31E3, .scripts = &.{ .Hani, } },
162 .{ .code = 0x3220, .scripts = &.{ .Hani, } },
163 .{ .code = 0x3221, .scripts = &.{ .Hani, } },
164 .{ .code = 0x3222, .scripts = &.{ .Hani, } },
165 .{ .code = 0x3223, .scripts = &.{ .Hani, } },
166 .{ .code = 0x3224, .scripts = &.{ .Hani, } },
167 .{ .code = 0x3225, .scripts = &.{ .Hani, } },
168 .{ .code = 0x3226, .scripts = &.{ .Hani, } },
169 .{ .code = 0x3227, .scripts = &.{ .Hani, } },
170 .{ .code = 0x3228, .scripts = &.{ .Hani, } },
171 .{ .code = 0x3229, .scripts = &.{ .Hani, } },
172 .{ .code = 0x322A, .scripts = &.{ .Hani, } },
173 .{ .code = 0x322B, .scripts = &.{ .Hani, } },
174 .{ .code = 0x322C, .scripts = &.{ .Hani, } },
175 .{ .code = 0x322D, .scripts = &.{ .Hani, } },
176 .{ .code = 0x322E, .scripts = &.{ .Hani, } },
177 .{ .code = 0x322F, .scripts = &.{ .Hani, } },
178 .{ .code = 0x3230, .scripts = &.{ .Hani, } },
179 .{ .code = 0x3231, .scripts = &.{ .Hani, } },
180 .{ .code = 0x3232, .scripts = &.{ .Hani, } },
181 .{ .code = 0x3233, .scripts = &.{ .Hani, } },
182 .{ .code = 0x3234, .scripts = &.{ .Hani, } },
183 .{ .code = 0x3235, .scripts = &.{ .Hani, } },
184 .{ .code = 0x3236, .scripts = &.{ .Hani, } },
185 .{ .code = 0x3237, .scripts = &.{ .Hani, } },
186 .{ .code = 0x3238, .scripts = &.{ .Hani, } },
187 .{ .code = 0x3239, .scripts = &.{ .Hani, } },
188 .{ .code = 0x323A, .scripts = &.{ .Hani, } },
189 .{ .code = 0x323B, .scripts = &.{ .Hani, } },
190 .{ .code = 0x323C, .scripts = &.{ .Hani, } },
191 .{ .code = 0x323D, .scripts = &.{ .Hani, } },
192 .{ .code = 0x323E, .scripts = &.{ .Hani, } },
193 .{ .code = 0x323F, .scripts = &.{ .Hani, } },
194 .{ .code = 0x3240, .scripts = &.{ .Hani, } },
195 .{ .code = 0x3241, .scripts = &.{ .Hani, } },
196 .{ .code = 0x3242, .scripts = &.{ .Hani, } },
197 .{ .code = 0x3243, .scripts = &.{ .Hani, } },
198 .{ .code = 0x3244, .scripts = &.{ .Hani, } },
199 .{ .code = 0x3245, .scripts = &.{ .Hani, } },
200 .{ .code = 0x3246, .scripts = &.{ .Hani, } },
201 .{ .code = 0x3247, .scripts = &.{ .Hani, } },
202 .{ .code = 0x3280, .scripts = &.{ .Hani, } },
203 .{ .code = 0x3281, .scripts = &.{ .Hani, } },
204 .{ .code = 0x3282, .scripts = &.{ .Hani, } },
205 .{ .code = 0x3283, .scripts = &.{ .Hani, } },
206 .{ .code = 0x3284, .scripts = &.{ .Hani, } },
207 .{ .code = 0x3285, .scripts = &.{ .Hani, } },
208 .{ .code = 0x3286, .scripts = &.{ .Hani, } },
209 .{ .code = 0x3287, .scripts = &.{ .Hani, } },
210 .{ .code = 0x3288, .scripts = &.{ .Hani, } },
211 .{ .code = 0x3289, .scripts = &.{ .Hani, } },
212 .{ .code = 0x328A, .scripts = &.{ .Hani, } },
213 .{ .code = 0x328B, .scripts = &.{ .Hani, } },
214 .{ .code = 0x328C, .scripts = &.{ .Hani, } },
215 .{ .code = 0x328D, .scripts = &.{ .Hani, } },
216 .{ .code = 0x328E, .scripts = &.{ .Hani, } },
217 .{ .code = 0x328F, .scripts = &.{ .Hani, } },
218 .{ .code = 0x3290, .scripts = &.{ .Hani, } },
219 .{ .code = 0x3291, .scripts = &.{ .Hani, } },
220 .{ .code = 0x3292, .scripts = &.{ .Hani, } },
221 .{ .code = 0x3293, .scripts = &.{ .Hani, } },
222 .{ .code = 0x3294, .scripts = &.{ .Hani, } },
223 .{ .code = 0x3295, .scripts = &.{ .Hani, } },
224 .{ .code = 0x3296, .scripts = &.{ .Hani, } },
225 .{ .code = 0x3297, .scripts = &.{ .Hani, } },
226 .{ .code = 0x3298, .scripts = &.{ .Hani, } },
227 .{ .code = 0x3299, .scripts = &.{ .Hani, } },
228 .{ .code = 0x329A, .scripts = &.{ .Hani, } },
229 .{ .code = 0x329B, .scripts = &.{ .Hani, } },
230 .{ .code = 0x329C, .scripts = &.{ .Hani, } },
231 .{ .code = 0x329D, .scripts = &.{ .Hani, } },
232 .{ .code = 0x329E, .scripts = &.{ .Hani, } },
233 .{ .code = 0x329F, .scripts = &.{ .Hani, } },
234 .{ .code = 0x32A0, .scripts = &.{ .Hani, } },
235 .{ .code = 0x32A1, .scripts = &.{ .Hani, } },
236 .{ .code = 0x32A2, .scripts = &.{ .Hani, } },
237 .{ .code = 0x32A3, .scripts = &.{ .Hani, } },
238 .{ .code = 0x32A4, .scripts = &.{ .Hani, } },
239 .{ .code = 0x32A5, .scripts = &.{ .Hani, } },
240 .{ .code = 0x32A6, .scripts = &.{ .Hani, } },
241 .{ .code = 0x32A7, .scripts = &.{ .Hani, } },
242 .{ .code = 0x32A8, .scripts = &.{ .Hani, } },
243 .{ .code = 0x32A9, .scripts = &.{ .Hani, } },
244 .{ .code = 0x32AA, .scripts = &.{ .Hani, } },
245 .{ .code = 0x32AB, .scripts = &.{ .Hani, } },
246 .{ .code = 0x32AC, .scripts = &.{ .Hani, } },
247 .{ .code = 0x32AD, .scripts = &.{ .Hani, } },
248 .{ .code = 0x32AE, .scripts = &.{ .Hani, } },
249 .{ .code = 0x32AF, .scripts = &.{ .Hani, } },
250 .{ .code = 0x32B0, .scripts = &.{ .Hani, } },
251 .{ .code = 0x32C0, .scripts = &.{ .Hani, } },
252 .{ .code = 0x32C1, .scripts = &.{ .Hani, } },
253 .{ .code = 0x32C2, .scripts = &.{ .Hani, } },
254 .{ .code = 0x32C3, .scripts = &.{ .Hani, } },
255 .{ .code = 0x32C4, .scripts = &.{ .Hani, } },
256 .{ .code = 0x32C5, .scripts = &.{ .Hani, } },
257 .{ .code = 0x32C6, .scripts = &.{ .Hani, } },
258 .{ .code = 0x32C7, .scripts = &.{ .Hani, } },
259 .{ .code = 0x32C8, .scripts = &.{ .Hani, } },
260 .{ .code = 0x32C9, .scripts = &.{ .Hani, } },
261 .{ .code = 0x32CA, .scripts = &.{ .Hani, } },
262 .{ .code = 0x32CB, .scripts = &.{ .Hani, } },
263 .{ .code = 0x32FF, .scripts = &.{ .Hani, } },
264 .{ .code = 0x3358, .scripts = &.{ .Hani, } },
265 .{ .code = 0x3359, .scripts = &.{ .Hani, } },
266 .{ .code = 0x335A, .scripts = &.{ .Hani, } },
267 .{ .code = 0x335B, .scripts = &.{ .Hani, } },
268 .{ .code = 0x335C, .scripts = &.{ .Hani, } },
269 .{ .code = 0x335D, .scripts = &.{ .Hani, } },
270 .{ .code = 0x335E, .scripts = &.{ .Hani, } },
271 .{ .code = 0x335F, .scripts = &.{ .Hani, } },
272 .{ .code = 0x3360, .scripts = &.{ .Hani, } },
273 .{ .code = 0x3361, .scripts = &.{ .Hani, } },
274 .{ .code = 0x3362, .scripts = &.{ .Hani, } },
275 .{ .code = 0x3363, .scripts = &.{ .Hani, } },
276 .{ .code = 0x3364, .scripts = &.{ .Hani, } },
277 .{ .code = 0x3365, .scripts = &.{ .Hani, } },
278 .{ .code = 0x3366, .scripts = &.{ .Hani, } },
279 .{ .code = 0x3367, .scripts = &.{ .Hani, } },
280 .{ .code = 0x3368, .scripts = &.{ .Hani, } },
281 .{ .code = 0x3369, .scripts = &.{ .Hani, } },
282 .{ .code = 0x336A, .scripts = &.{ .Hani, } },
283 .{ .code = 0x336B, .scripts = &.{ .Hani, } },
284 .{ .code = 0x336C, .scripts = &.{ .Hani, } },
285 .{ .code = 0x336D, .scripts = &.{ .Hani, } },
286 .{ .code = 0x336E, .scripts = &.{ .Hani, } },
287 .{ .code = 0x336F, .scripts = &.{ .Hani, } },
288 .{ .code = 0x3370, .scripts = &.{ .Hani, } },
289 .{ .code = 0x337B, .scripts = &.{ .Hani, } },
290 .{ .code = 0x337C, .scripts = &.{ .Hani, } },
291 .{ .code = 0x337D, .scripts = &.{ .Hani, } },
292 .{ .code = 0x337E, .scripts = &.{ .Hani, } },
293 .{ .code = 0x337F, .scripts = &.{ .Hani, } },
294 .{ .code = 0x33E0, .scripts = &.{ .Hani, } },
295 .{ .code = 0x33E1, .scripts = &.{ .Hani, } },
296 .{ .code = 0x33E2, .scripts = &.{ .Hani, } },
297 .{ .code = 0x33E3, .scripts = &.{ .Hani, } },
298 .{ .code = 0x33E4, .scripts = &.{ .Hani, } },
299 .{ .code = 0x33E5, .scripts = &.{ .Hani, } },
300 .{ .code = 0x33E6, .scripts = &.{ .Hani, } },
301 .{ .code = 0x33E7, .scripts = &.{ .Hani, } },
302 .{ .code = 0x33E8, .scripts = &.{ .Hani, } },
303 .{ .code = 0x33E9, .scripts = &.{ .Hani, } },
304 .{ .code = 0x33EA, .scripts = &.{ .Hani, } },
305 .{ .code = 0x33EB, .scripts = &.{ .Hani, } },
306 .{ .code = 0x33EC, .scripts = &.{ .Hani, } },
307 .{ .code = 0x33ED, .scripts = &.{ .Hani, } },
308 .{ .code = 0x33EE, .scripts = &.{ .Hani, } },
309 .{ .code = 0x33EF, .scripts = &.{ .Hani, } },
310 .{ .code = 0x33F0, .scripts = &.{ .Hani, } },
311 .{ .code = 0x33F1, .scripts = &.{ .Hani, } },
312 .{ .code = 0x33F2, .scripts = &.{ .Hani, } },
313 .{ .code = 0x33F3, .scripts = &.{ .Hani, } },
314 .{ .code = 0x33F4, .scripts = &.{ .Hani, } },
315 .{ .code = 0x33F5, .scripts = &.{ .Hani, } },
316 .{ .code = 0x33F6, .scripts = &.{ .Hani, } },
317 .{ .code = 0x33F7, .scripts = &.{ .Hani, } },
318 .{ .code = 0x33F8, .scripts = &.{ .Hani, } },
319 .{ .code = 0x33F9, .scripts = &.{ .Hani, } },
320 .{ .code = 0x33FA, .scripts = &.{ .Hani, } },
321 .{ .code = 0x33FB, .scripts = &.{ .Hani, } },
322 .{ .code = 0x33FC, .scripts = &.{ .Hani, } },
323 .{ .code = 0x33FD, .scripts = &.{ .Hani, } },
324 .{ .code = 0x33FE, .scripts = &.{ .Hani, } },
325 .{ .code = 0x1D360, .scripts = &.{ .Hani, } },
326 .{ .code = 0x1D361, .scripts = &.{ .Hani, } },
327 .{ .code = 0x1D362, .scripts = &.{ .Hani, } },
328 .{ .code = 0x1D363, .scripts = &.{ .Hani, } },
329 .{ .code = 0x1D364, .scripts = &.{ .Hani, } },
330 .{ .code = 0x1D365, .scripts = &.{ .Hani, } },
331 .{ .code = 0x1D366, .scripts = &.{ .Hani, } },
332 .{ .code = 0x1D367, .scripts = &.{ .Hani, } },
333 .{ .code = 0x1D368, .scripts = &.{ .Hani, } },
334 .{ .code = 0x1D369, .scripts = &.{ .Hani, } },
335 .{ .code = 0x1D36A, .scripts = &.{ .Hani, } },
336 .{ .code = 0x1D36B, .scripts = &.{ .Hani, } },
337 .{ .code = 0x1D36C, .scripts = &.{ .Hani, } },
338 .{ .code = 0x1D36D, .scripts = &.{ .Hani, } },
339 .{ .code = 0x1D36E, .scripts = &.{ .Hani, } },
340 .{ .code = 0x1D36F, .scripts = &.{ .Hani, } },
341 .{ .code = 0x1D370, .scripts = &.{ .Hani, } },
342 .{ .code = 0x1D371, .scripts = &.{ .Hani, } },
343 .{ .code = 0x1F250, .scripts = &.{ .Hani, } },
344 .{ .code = 0x1F251, .scripts = &.{ .Hani, } },
345 .{ .code = 0x363, .scripts = &.{ .Latn, } },
346 .{ .code = 0x364, .scripts = &.{ .Latn, } },
347 .{ .code = 0x365, .scripts = &.{ .Latn, } },
348 .{ .code = 0x366, .scripts = &.{ .Latn, } },
349 .{ .code = 0x367, .scripts = &.{ .Latn, } },
350 .{ .code = 0x368, .scripts = &.{ .Latn, } },
351 .{ .code = 0x369, .scripts = &.{ .Latn, } },
352 .{ .code = 0x36A, .scripts = &.{ .Latn, } },
353 .{ .code = 0x36B, .scripts = &.{ .Latn, } },
354 .{ .code = 0x36C, .scripts = &.{ .Latn, } },
355 .{ .code = 0x36D, .scripts = &.{ .Latn, } },
356 .{ .code = 0x36E, .scripts = &.{ .Latn, } },
357 .{ .code = 0x36F, .scripts = &.{ .Latn, } },
358 .{ .code = 0x1CFA, .scripts = &.{ .Nand, } },
359 .{ .code = 0x102E0, .scripts = &.{ .Arab, .Copt, } },
360 .{ .code = 0x102E1, .scripts = &.{ .Arab, .Copt, } },
361 .{ .code = 0x102E2, .scripts = &.{ .Arab, .Copt, } },
362 .{ .code = 0x102E3, .scripts = &.{ .Arab, .Copt, } },
363 .{ .code = 0x102E4, .scripts = &.{ .Arab, .Copt, } },
364 .{ .code = 0x102E5, .scripts = &.{ .Arab, .Copt, } },
365 .{ .code = 0x102E6, .scripts = &.{ .Arab, .Copt, } },
366 .{ .code = 0x102E7, .scripts = &.{ .Arab, .Copt, } },
367 .{ .code = 0x102E8, .scripts = &.{ .Arab, .Copt, } },
368 .{ .code = 0x102E9, .scripts = &.{ .Arab, .Copt, } },
369 .{ .code = 0x102EA, .scripts = &.{ .Arab, .Copt, } },
370 .{ .code = 0x102EB, .scripts = &.{ .Arab, .Copt, } },
371 .{ .code = 0x102EC, .scripts = &.{ .Arab, .Copt, } },
372 .{ .code = 0x102ED, .scripts = &.{ .Arab, .Copt, } },
373 .{ .code = 0x102EE, .scripts = &.{ .Arab, .Copt, } },
374 .{ .code = 0x102EF, .scripts = &.{ .Arab, .Copt, } },
375 .{ .code = 0x102F0, .scripts = &.{ .Arab, .Copt, } },
376 .{ .code = 0x102F1, .scripts = &.{ .Arab, .Copt, } },
377 .{ .code = 0x102F2, .scripts = &.{ .Arab, .Copt, } },
378 .{ .code = 0x102F3, .scripts = &.{ .Arab, .Copt, } },
379 .{ .code = 0x102F4, .scripts = &.{ .Arab, .Copt, } },
380 .{ .code = 0x102F5, .scripts = &.{ .Arab, .Copt, } },
381 .{ .code = 0x102F6, .scripts = &.{ .Arab, .Copt, } },
382 .{ .code = 0x102F7, .scripts = &.{ .Arab, .Copt, } },
383 .{ .code = 0x102F8, .scripts = &.{ .Arab, .Copt, } },
384 .{ .code = 0x102F9, .scripts = &.{ .Arab, .Copt, } },
385 .{ .code = 0x102FA, .scripts = &.{ .Arab, .Copt, } },
386 .{ .code = 0x102FB, .scripts = &.{ .Arab, .Copt, } },
387 .{ .code = 0x06D4, .scripts = &.{ .Arab, .Rohg, } },
388 .{ .code = 0x64B, .scripts = &.{ .Arab, .Syrc, } },
389 .{ .code = 0x64C, .scripts = &.{ .Arab, .Syrc, } },
390 .{ .code = 0x64D, .scripts = &.{ .Arab, .Syrc, } },
391 .{ .code = 0x64E, .scripts = &.{ .Arab, .Syrc, } },
392 .{ .code = 0x64F, .scripts = &.{ .Arab, .Syrc, } },
393 .{ .code = 0x650, .scripts = &.{ .Arab, .Syrc, } },
394 .{ .code = 0x651, .scripts = &.{ .Arab, .Syrc, } },
395 .{ .code = 0x652, .scripts = &.{ .Arab, .Syrc, } },
396 .{ .code = 0x653, .scripts = &.{ .Arab, .Syrc, } },
397 .{ .code = 0x654, .scripts = &.{ .Arab, .Syrc, } },
398 .{ .code = 0x655, .scripts = &.{ .Arab, .Syrc, } },
399 .{ .code = 0x0670, .scripts = &.{ .Arab, .Syrc, } },
400 .{ .code = 0xFDF2, .scripts = &.{ .Arab, .Thaa, } },
401 .{ .code = 0xFDFD, .scripts = &.{ .Arab, .Thaa, } },
402 .{ .code = 0x1CD5, .scripts = &.{ .Beng, .Deva, } },
403 .{ .code = 0x1CD6, .scripts = &.{ .Beng, .Deva, } },
404 .{ .code = 0x1CD8, .scripts = &.{ .Beng, .Deva, } },
405 .{ .code = 0x1CE1, .scripts = &.{ .Beng, .Deva, } },
406 .{ .code = 0x1CEA, .scripts = &.{ .Beng, .Deva, } },
407 .{ .code = 0x1CED, .scripts = &.{ .Beng, .Deva, } },
408 .{ .code = 0x1CF5, .scripts = &.{ .Beng, .Deva, } },
409 .{ .code = 0x1CF6, .scripts = &.{ .Beng, .Deva, } },
410 .{ .code = 0xA8F1, .scripts = &.{ .Beng, .Deva, } },
411 .{ .code = 0x302A, .scripts = &.{ .Bopo, .Hani, } },
412 .{ .code = 0x302B, .scripts = &.{ .Bopo, .Hani, } },
413 .{ .code = 0x302C, .scripts = &.{ .Bopo, .Hani, } },
414 .{ .code = 0x302D, .scripts = &.{ .Bopo, .Hani, } },
415 .{ .code = 0xA9CF, .scripts = &.{ .Bugi, .Java, } },
416 .{ .code = 0x10100, .scripts = &.{ .Cprt, .Linb, } },
417 .{ .code = 0x10101, .scripts = &.{ .Cprt, .Linb, } },
418 .{ .code = 0x10102, .scripts = &.{ .Cprt, .Linb, } },
419 .{ .code = 0x10137, .scripts = &.{ .Cprt, .Linb, } },
420 .{ .code = 0x10138, .scripts = &.{ .Cprt, .Linb, } },
421 .{ .code = 0x10139, .scripts = &.{ .Cprt, .Linb, } },
422 .{ .code = 0x1013A, .scripts = &.{ .Cprt, .Linb, } },
423 .{ .code = 0x1013B, .scripts = &.{ .Cprt, .Linb, } },
424 .{ .code = 0x1013C, .scripts = &.{ .Cprt, .Linb, } },
425 .{ .code = 0x1013D, .scripts = &.{ .Cprt, .Linb, } },
426 .{ .code = 0x1013E, .scripts = &.{ .Cprt, .Linb, } },
427 .{ .code = 0x1013F, .scripts = &.{ .Cprt, .Linb, } },
428 .{ .code = 0x0484, .scripts = &.{ .Cyrl, .Glag, } },
429 .{ .code = 0x0487, .scripts = &.{ .Cyrl, .Glag, } },
430 .{ .code = 0x2E43, .scripts = &.{ .Cyrl, .Glag, } },
431 .{ .code = 0xA66F, .scripts = &.{ .Cyrl, .Glag, } },
432 .{ .code = 0x485, .scripts = &.{ .Cyrl, .Latn, } },
433 .{ .code = 0x486, .scripts = &.{ .Cyrl, .Latn, } },
434 .{ .code = 0x0483, .scripts = &.{ .Cyrl, .Perm, } },
435 .{ .code = 0x1DF8, .scripts = &.{ .Cyrl, .Syrc, } },
436 .{ .code = 0x1CD3, .scripts = &.{ .Deva, .Gran, } },
437 .{ .code = 0x1CF3, .scripts = &.{ .Deva, .Gran, } },
438 .{ .code = 0x1CF8, .scripts = &.{ .Deva, .Gran, } },
439 .{ .code = 0x1CF9, .scripts = &.{ .Deva, .Gran, } },
440 .{ .code = 0x1CE9, .scripts = &.{ .Deva, .Nand, } },
441 .{ .code = 0x1CD7, .scripts = &.{ .Deva, .Shrd, } },
442 .{ .code = 0x1CD9, .scripts = &.{ .Deva, .Shrd, } },
443 .{ .code = 0x1CDC, .scripts = &.{ .Deva, .Shrd, } },
444 .{ .code = 0x1CDD, .scripts = &.{ .Deva, .Shrd, } },
445 .{ .code = 0x1CE0, .scripts = &.{ .Deva, .Shrd, } },
446 .{ .code = 0xA8F3, .scripts = &.{ .Deva, .Taml, } },
447 .{ .code = 0x10FB, .scripts = &.{ .Geor, .Latn, } },
448 .{ .code = 0xBE6, .scripts = &.{ .Gran, .Taml, } },
449 .{ .code = 0xBE7, .scripts = &.{ .Gran, .Taml, } },
450 .{ .code = 0xBE8, .scripts = &.{ .Gran, .Taml, } },
451 .{ .code = 0xBE9, .scripts = &.{ .Gran, .Taml, } },
452 .{ .code = 0xBEA, .scripts = &.{ .Gran, .Taml, } },
453 .{ .code = 0xBEB, .scripts = &.{ .Gran, .Taml, } },
454 .{ .code = 0xBEC, .scripts = &.{ .Gran, .Taml, } },
455 .{ .code = 0xBED, .scripts = &.{ .Gran, .Taml, } },
456 .{ .code = 0xBEE, .scripts = &.{ .Gran, .Taml, } },
457 .{ .code = 0xBEF, .scripts = &.{ .Gran, .Taml, } },
458 .{ .code = 0xBF0, .scripts = &.{ .Gran, .Taml, } },
459 .{ .code = 0xBF1, .scripts = &.{ .Gran, .Taml, } },
460 .{ .code = 0xBF2, .scripts = &.{ .Gran, .Taml, } },
461 .{ .code = 0x0BF3, .scripts = &.{ .Gran, .Taml, } },
462 .{ .code = 0x11301, .scripts = &.{ .Gran, .Taml, } },
463 .{ .code = 0x11303, .scripts = &.{ .Gran, .Taml, } },
464 .{ .code = 0x1133B, .scripts = &.{ .Gran, .Taml, } },
465 .{ .code = 0x1133C, .scripts = &.{ .Gran, .Taml, } },
466 .{ .code = 0x11FD0, .scripts = &.{ .Gran, .Taml, } },
467 .{ .code = 0x11FD1, .scripts = &.{ .Gran, .Taml, } },
468 .{ .code = 0x11FD3, .scripts = &.{ .Gran, .Taml, } },
469 .{ .code = 0xAE6, .scripts = &.{ .Gujr, .Khoj, } },
470 .{ .code = 0xAE7, .scripts = &.{ .Gujr, .Khoj, } },
471 .{ .code = 0xAE8, .scripts = &.{ .Gujr, .Khoj, } },
472 .{ .code = 0xAE9, .scripts = &.{ .Gujr, .Khoj, } },
473 .{ .code = 0xAEA, .scripts = &.{ .Gujr, .Khoj, } },
474 .{ .code = 0xAEB, .scripts = &.{ .Gujr, .Khoj, } },
475 .{ .code = 0xAEC, .scripts = &.{ .Gujr, .Khoj, } },
476 .{ .code = 0xAED, .scripts = &.{ .Gujr, .Khoj, } },
477 .{ .code = 0xAEE, .scripts = &.{ .Gujr, .Khoj, } },
478 .{ .code = 0xAEF, .scripts = &.{ .Gujr, .Khoj, } },
479 .{ .code = 0xA66, .scripts = &.{ .Guru, .Mult, } },
480 .{ .code = 0xA67, .scripts = &.{ .Guru, .Mult, } },
481 .{ .code = 0xA68, .scripts = &.{ .Guru, .Mult, } },
482 .{ .code = 0xA69, .scripts = &.{ .Guru, .Mult, } },
483 .{ .code = 0xA6A, .scripts = &.{ .Guru, .Mult, } },
484 .{ .code = 0xA6B, .scripts = &.{ .Guru, .Mult, } },
485 .{ .code = 0xA6C, .scripts = &.{ .Guru, .Mult, } },
486 .{ .code = 0xA6D, .scripts = &.{ .Guru, .Mult, } },
487 .{ .code = 0xA6E, .scripts = &.{ .Guru, .Mult, } },
488 .{ .code = 0xA6F, .scripts = &.{ .Guru, .Mult, } },
489 .{ .code = 0xA700, .scripts = &.{ .Hani, .Latn, } },
490 .{ .code = 0xA701, .scripts = &.{ .Hani, .Latn, } },
491 .{ .code = 0xA702, .scripts = &.{ .Hani, .Latn, } },
492 .{ .code = 0xA703, .scripts = &.{ .Hani, .Latn, } },
493 .{ .code = 0xA704, .scripts = &.{ .Hani, .Latn, } },
494 .{ .code = 0xA705, .scripts = &.{ .Hani, .Latn, } },
495 .{ .code = 0xA706, .scripts = &.{ .Hani, .Latn, } },
496 .{ .code = 0xA707, .scripts = &.{ .Hani, .Latn, } },
497 .{ .code = 0x3031, .scripts = &.{ .Hira, .Kana, } },
498 .{ .code = 0x3032, .scripts = &.{ .Hira, .Kana, } },
499 .{ .code = 0x3033, .scripts = &.{ .Hira, .Kana, } },
500 .{ .code = 0x3034, .scripts = &.{ .Hira, .Kana, } },
501 .{ .code = 0x3035, .scripts = &.{ .Hira, .Kana, } },
502 .{ .code = 0x3099, .scripts = &.{ .Hira, .Kana, } },
503 .{ .code = 0x309A, .scripts = &.{ .Hira, .Kana, } },
504 .{ .code = 0x309B, .scripts = &.{ .Hira, .Kana, } },
505 .{ .code = 0x309C, .scripts = &.{ .Hira, .Kana, } },
506 .{ .code = 0x30A0, .scripts = &.{ .Hira, .Kana, } },
507 .{ .code = 0x30FC, .scripts = &.{ .Hira, .Kana, } },
508 .{ .code = 0xFF70, .scripts = &.{ .Hira, .Kana, } },
509 .{ .code = 0xFF9E, .scripts = &.{ .Hira, .Kana, } },
510 .{ .code = 0xFF9F, .scripts = &.{ .Hira, .Kana, } },
511 .{ .code = 0xCE6, .scripts = &.{ .Knda, .Nand, } },
512 .{ .code = 0xCE7, .scripts = &.{ .Knda, .Nand, } },
513 .{ .code = 0xCE8, .scripts = &.{ .Knda, .Nand, } },
514 .{ .code = 0xCE9, .scripts = &.{ .Knda, .Nand, } },
515 .{ .code = 0xCEA, .scripts = &.{ .Knda, .Nand, } },
516 .{ .code = 0xCEB, .scripts = &.{ .Knda, .Nand, } },
517 .{ .code = 0xCEC, .scripts = &.{ .Knda, .Nand, } },
518 .{ .code = 0xCED, .scripts = &.{ .Knda, .Nand, } },
519 .{ .code = 0xCEE, .scripts = &.{ .Knda, .Nand, } },
520 .{ .code = 0xCEF, .scripts = &.{ .Knda, .Nand, } },
521 .{ .code = 0x202F, .scripts = &.{ .Latn, .Mong, } },
522 .{ .code = 0x1802, .scripts = &.{ .Mong, .Phag, } },
523 .{ .code = 0x1803, .scripts = &.{ .Mong, .Phag, } },
524 .{ .code = 0x1805, .scripts = &.{ .Mong, .Phag, } },
525 .{ .code = 0x061C, .scripts = &.{ .Arab, .Syrc, .Thaa, } },
526 .{ .code = 0x660, .scripts = &.{ .Arab, .Thaa, .Yezi, } },
527 .{ .code = 0x661, .scripts = &.{ .Arab, .Thaa, .Yezi, } },
528 .{ .code = 0x662, .scripts = &.{ .Arab, .Thaa, .Yezi, } },
529 .{ .code = 0x663, .scripts = &.{ .Arab, .Thaa, .Yezi, } },
530 .{ .code = 0x664, .scripts = &.{ .Arab, .Thaa, .Yezi, } },
531 .{ .code = 0x665, .scripts = &.{ .Arab, .Thaa, .Yezi, } },
532 .{ .code = 0x666, .scripts = &.{ .Arab, .Thaa, .Yezi, } },
533 .{ .code = 0x667, .scripts = &.{ .Arab, .Thaa, .Yezi, } },
534 .{ .code = 0x668, .scripts = &.{ .Arab, .Thaa, .Yezi, } },
535 .{ .code = 0x669, .scripts = &.{ .Arab, .Thaa, .Yezi, } },
536 .{ .code = 0x9E6, .scripts = &.{ .Beng, .Cakm, .Sylo, } },
537 .{ .code = 0x9E7, .scripts = &.{ .Beng, .Cakm, .Sylo, } },
538 .{ .code = 0x9E8, .scripts = &.{ .Beng, .Cakm, .Sylo, } },
539 .{ .code = 0x9E9, .scripts = &.{ .Beng, .Cakm, .Sylo, } },
540 .{ .code = 0x9EA, .scripts = &.{ .Beng, .Cakm, .Sylo, } },
541 .{ .code = 0x9EB, .scripts = &.{ .Beng, .Cakm, .Sylo, } },
542 .{ .code = 0x9EC, .scripts = &.{ .Beng, .Cakm, .Sylo, } },
543 .{ .code = 0x9ED, .scripts = &.{ .Beng, .Cakm, .Sylo, } },
544 .{ .code = 0x9EE, .scripts = &.{ .Beng, .Cakm, .Sylo, } },
545 .{ .code = 0x9EF, .scripts = &.{ .Beng, .Cakm, .Sylo, } },
546 .{ .code = 0x1040, .scripts = &.{ .Cakm, .Mymr, .Tale, } },
547 .{ .code = 0x1041, .scripts = &.{ .Cakm, .Mymr, .Tale, } },
548 .{ .code = 0x1042, .scripts = &.{ .Cakm, .Mymr, .Tale, } },
549 .{ .code = 0x1043, .scripts = &.{ .Cakm, .Mymr, .Tale, } },
550 .{ .code = 0x1044, .scripts = &.{ .Cakm, .Mymr, .Tale, } },
551 .{ .code = 0x1045, .scripts = &.{ .Cakm, .Mymr, .Tale, } },
552 .{ .code = 0x1046, .scripts = &.{ .Cakm, .Mymr, .Tale, } },
553 .{ .code = 0x1047, .scripts = &.{ .Cakm, .Mymr, .Tale, } },
554 .{ .code = 0x1048, .scripts = &.{ .Cakm, .Mymr, .Tale, } },
555 .{ .code = 0x1049, .scripts = &.{ .Cakm, .Mymr, .Tale, } },
556 .{ .code = 0x10107, .scripts = &.{ .Cprt, .Lina, .Linb, } },
557 .{ .code = 0x10108, .scripts = &.{ .Cprt, .Lina, .Linb, } },
558 .{ .code = 0x10109, .scripts = &.{ .Cprt, .Lina, .Linb, } },
559 .{ .code = 0x1010A, .scripts = &.{ .Cprt, .Lina, .Linb, } },
560 .{ .code = 0x1010B, .scripts = &.{ .Cprt, .Lina, .Linb, } },
561 .{ .code = 0x1010C, .scripts = &.{ .Cprt, .Lina, .Linb, } },
562 .{ .code = 0x1010D, .scripts = &.{ .Cprt, .Lina, .Linb, } },
563 .{ .code = 0x1010E, .scripts = &.{ .Cprt, .Lina, .Linb, } },
564 .{ .code = 0x1010F, .scripts = &.{ .Cprt, .Lina, .Linb, } },
565 .{ .code = 0x10110, .scripts = &.{ .Cprt, .Lina, .Linb, } },
566 .{ .code = 0x10111, .scripts = &.{ .Cprt, .Lina, .Linb, } },
567 .{ .code = 0x10112, .scripts = &.{ .Cprt, .Lina, .Linb, } },
568 .{ .code = 0x10113, .scripts = &.{ .Cprt, .Lina, .Linb, } },
569 .{ .code = 0x10114, .scripts = &.{ .Cprt, .Lina, .Linb, } },
570 .{ .code = 0x10115, .scripts = &.{ .Cprt, .Lina, .Linb, } },
571 .{ .code = 0x10116, .scripts = &.{ .Cprt, .Lina, .Linb, } },
572 .{ .code = 0x10117, .scripts = &.{ .Cprt, .Lina, .Linb, } },
573 .{ .code = 0x10118, .scripts = &.{ .Cprt, .Lina, .Linb, } },
574 .{ .code = 0x10119, .scripts = &.{ .Cprt, .Lina, .Linb, } },
575 .{ .code = 0x1011A, .scripts = &.{ .Cprt, .Lina, .Linb, } },
576 .{ .code = 0x1011B, .scripts = &.{ .Cprt, .Lina, .Linb, } },
577 .{ .code = 0x1011C, .scripts = &.{ .Cprt, .Lina, .Linb, } },
578 .{ .code = 0x1011D, .scripts = &.{ .Cprt, .Lina, .Linb, } },
579 .{ .code = 0x1011E, .scripts = &.{ .Cprt, .Lina, .Linb, } },
580 .{ .code = 0x1011F, .scripts = &.{ .Cprt, .Lina, .Linb, } },
581 .{ .code = 0x10120, .scripts = &.{ .Cprt, .Lina, .Linb, } },
582 .{ .code = 0x10121, .scripts = &.{ .Cprt, .Lina, .Linb, } },
583 .{ .code = 0x10122, .scripts = &.{ .Cprt, .Lina, .Linb, } },
584 .{ .code = 0x10123, .scripts = &.{ .Cprt, .Lina, .Linb, } },
585 .{ .code = 0x10124, .scripts = &.{ .Cprt, .Lina, .Linb, } },
586 .{ .code = 0x10125, .scripts = &.{ .Cprt, .Lina, .Linb, } },
587 .{ .code = 0x10126, .scripts = &.{ .Cprt, .Lina, .Linb, } },
588 .{ .code = 0x10127, .scripts = &.{ .Cprt, .Lina, .Linb, } },
589 .{ .code = 0x10128, .scripts = &.{ .Cprt, .Lina, .Linb, } },
590 .{ .code = 0x10129, .scripts = &.{ .Cprt, .Lina, .Linb, } },
591 .{ .code = 0x1012A, .scripts = &.{ .Cprt, .Lina, .Linb, } },
592 .{ .code = 0x1012B, .scripts = &.{ .Cprt, .Lina, .Linb, } },
593 .{ .code = 0x1012C, .scripts = &.{ .Cprt, .Lina, .Linb, } },
594 .{ .code = 0x1012D, .scripts = &.{ .Cprt, .Lina, .Linb, } },
595 .{ .code = 0x1012E, .scripts = &.{ .Cprt, .Lina, .Linb, } },
596 .{ .code = 0x1012F, .scripts = &.{ .Cprt, .Lina, .Linb, } },
597 .{ .code = 0x10130, .scripts = &.{ .Cprt, .Lina, .Linb, } },
598 .{ .code = 0x10131, .scripts = &.{ .Cprt, .Lina, .Linb, } },
599 .{ .code = 0x10132, .scripts = &.{ .Cprt, .Lina, .Linb, } },
600 .{ .code = 0x10133, .scripts = &.{ .Cprt, .Lina, .Linb, } },
601 .{ .code = 0x1CF4, .scripts = &.{ .Deva, .Gran, .Knda, } },
602 .{ .code = 0x20F0, .scripts = &.{ .Deva, .Gran, .Latn, } },
603 .{ .code = 0x303C, .scripts = &.{ .Hani, .Hira, .Kana, } },
604 .{ .code = 0x303D, .scripts = &.{ .Hani, .Hira, .Kana, } },
605 .{ .code = 0xA92E, .scripts = &.{ .Kali, .Latn, .Mymr, } },
606 .{ .code = 0x1CD0, .scripts = &.{ .Beng, .Deva, .Gran, .Knda, } },
607 .{ .code = 0x1CD2, .scripts = &.{ .Beng, .Deva, .Gran, .Knda, } },
608 .{ .code = 0x1735, .scripts = &.{ .Buhd, .Hano, .Tagb, .Tglg, } },
609 .{ .code = 0x1736, .scripts = &.{ .Buhd, .Hano, .Tagb, .Tglg, } },
610 .{ .code = 0x966, .scripts = &.{ .Deva, .Dogr, .Kthi, .Mahj, } },
611 .{ .code = 0x967, .scripts = &.{ .Deva, .Dogr, .Kthi, .Mahj, } },
612 .{ .code = 0x968, .scripts = &.{ .Deva, .Dogr, .Kthi, .Mahj, } },
613 .{ .code = 0x969, .scripts = &.{ .Deva, .Dogr, .Kthi, .Mahj, } },
614 .{ .code = 0x96A, .scripts = &.{ .Deva, .Dogr, .Kthi, .Mahj, } },
615 .{ .code = 0x96B, .scripts = &.{ .Deva, .Dogr, .Kthi, .Mahj, } },
616 .{ .code = 0x96C, .scripts = &.{ .Deva, .Dogr, .Kthi, .Mahj, } },
617 .{ .code = 0x96D, .scripts = &.{ .Deva, .Dogr, .Kthi, .Mahj, } },
618 .{ .code = 0x96E, .scripts = &.{ .Deva, .Dogr, .Kthi, .Mahj, } },
619 .{ .code = 0x96F, .scripts = &.{ .Deva, .Dogr, .Kthi, .Mahj, } },
620 .{ .code = 0x060C, .scripts = &.{ .Arab, .Rohg, .Syrc, .Thaa, .Yezi, } },
621 .{ .code = 0x061B, .scripts = &.{ .Arab, .Rohg, .Syrc, .Thaa, .Yezi, } },
622 .{ .code = 0x061F, .scripts = &.{ .Arab, .Rohg, .Syrc, .Thaa, .Yezi, } },
623 .{ .code = 0x3003, .scripts = &.{ .Bopo, .Hang, .Hani, .Hira, .Kana, } },
624 .{ .code = 0x3013, .scripts = &.{ .Bopo, .Hang, .Hani, .Hira, .Kana, } },
625 .{ .code = 0x301C, .scripts = &.{ .Bopo, .Hang, .Hani, .Hira, .Kana, } },
626 .{ .code = 0x301D, .scripts = &.{ .Bopo, .Hang, .Hani, .Hira, .Kana, } },
627 .{ .code = 0x301E, .scripts = &.{ .Bopo, .Hang, .Hani, .Hira, .Kana, } },
628 .{ .code = 0x301F, .scripts = &.{ .Bopo, .Hang, .Hani, .Hira, .Kana, } },
629 .{ .code = 0x3030, .scripts = &.{ .Bopo, .Hang, .Hani, .Hira, .Kana, } },
630 .{ .code = 0x3037, .scripts = &.{ .Bopo, .Hang, .Hani, .Hira, .Kana, } },
631 .{ .code = 0xFE45, .scripts = &.{ .Bopo, .Hang, .Hani, .Hira, .Kana, } },
632 .{ .code = 0xFE46, .scripts = &.{ .Bopo, .Hang, .Hani, .Hira, .Kana, } },
633 .{ .code = 0x3001, .scripts = &.{ .Bopo, .Hang, .Hani, .Hira, .Kana, .Yiii, } },
634 .{ .code = 0x3002, .scripts = &.{ .Bopo, .Hang, .Hani, .Hira, .Kana, .Yiii, } },
635 .{ .code = 0x3008, .scripts = &.{ .Bopo, .Hang, .Hani, .Hira, .Kana, .Yiii, } },
636 .{ .code = 0x3009, .scripts = &.{ .Bopo, .Hang, .Hani, .Hira, .Kana, .Yiii, } },
637 .{ .code = 0x300A, .scripts = &.{ .Bopo, .Hang, .Hani, .Hira, .Kana, .Yiii, } },
638 .{ .code = 0x300B, .scripts = &.{ .Bopo, .Hang, .Hani, .Hira, .Kana, .Yiii, } },
639 .{ .code = 0x300C, .scripts = &.{ .Bopo, .Hang, .Hani, .Hira, .Kana, .Yiii, } },
640 .{ .code = 0x300D, .scripts = &.{ .Bopo, .Hang, .Hani, .Hira, .Kana, .Yiii, } },
641 .{ .code = 0x300E, .scripts = &.{ .Bopo, .Hang, .Hani, .Hira, .Kana, .Yiii, } },
642 .{ .code = 0x300F, .scripts = &.{ .Bopo, .Hang, .Hani, .Hira, .Kana, .Yiii, } },
643 .{ .code = 0x3010, .scripts = &.{ .Bopo, .Hang, .Hani, .Hira, .Kana, .Yiii, } },
644 .{ .code = 0x3011, .scripts = &.{ .Bopo, .Hang, .Hani, .Hira, .Kana, .Yiii, } },
645 .{ .code = 0x3014, .scripts = &.{ .Bopo, .Hang, .Hani, .Hira, .Kana, .Yiii, } },
646 .{ .code = 0x3015, .scripts = &.{ .Bopo, .Hang, .Hani, .Hira, .Kana, .Yiii, } },
647 .{ .code = 0x3016, .scripts = &.{ .Bopo, .Hang, .Hani, .Hira, .Kana, .Yiii, } },
648 .{ .code = 0x3017, .scripts = &.{ .Bopo, .Hang, .Hani, .Hira, .Kana, .Yiii, } },
649 .{ .code = 0x3018, .scripts = &.{ .Bopo, .Hang, .Hani, .Hira, .Kana, .Yiii, } },
650 .{ .code = 0x3019, .scripts = &.{ .Bopo, .Hang, .Hani, .Hira, .Kana, .Yiii, } },
651 .{ .code = 0x301A, .scripts = &.{ .Bopo, .Hang, .Hani, .Hira, .Kana, .Yiii, } },
652 .{ .code = 0x301B, .scripts = &.{ .Bopo, .Hang, .Hani, .Hira, .Kana, .Yiii, } },
653 .{ .code = 0x30FB, .scripts = &.{ .Bopo, .Hang, .Hani, .Hira, .Kana, .Yiii, } },
654 .{ .code = 0xFF61, .scripts = &.{ .Bopo, .Hang, .Hani, .Hira, .Kana, .Yiii, } },
655 .{ .code = 0xFF62, .scripts = &.{ .Bopo, .Hang, .Hani, .Hira, .Kana, .Yiii, } },
656 .{ .code = 0xFF63, .scripts = &.{ .Bopo, .Hang, .Hani, .Hira, .Kana, .Yiii, } },
657 .{ .code = 0xFF64, .scripts = &.{ .Bopo, .Hang, .Hani, .Hira, .Kana, .Yiii, } },
658 .{ .code = 0xFF65, .scripts = &.{ .Bopo, .Hang, .Hani, .Hira, .Kana, .Yiii, } },
659 .{ .code = 0x1CDA, .scripts = &.{ .Deva, .Knda, .Mlym, .Orya, .Taml, .Telu, } },
660 .{ .code = 0x0640, .scripts = &.{ .Adlm, .Arab, .Mand, .Mani, .Phlp, .Rohg, .Sogd, .Syrc, } },
661 .{ .code = 0x1CF2, .scripts = &.{ .Beng, .Deva, .Gran, .Knda, .Nand, .Orya, .Telu, .Tirh, } },
662 .{ .code = 0xA836, .scripts = &.{ .Deva, .Dogr, .Gujr, .Guru, .Khoj, .Kthi, .Mahj, .Modi, .Sind, .Takr, .Tirh, } },
663 .{ .code = 0xA837, .scripts = &.{ .Deva, .Dogr, .Gujr, .Guru, .Khoj, .Kthi, .Mahj, .Modi, .Sind, .Takr, .Tirh, } },
664 .{ .code = 0xA838, .scripts = &.{ .Deva, .Dogr, .Gujr, .Guru, .Khoj, .Kthi, .Mahj, .Modi, .Sind, .Takr, .Tirh, } },
665 .{ .code = 0xA839, .scripts = &.{ .Deva, .Dogr, .Gujr, .Guru, .Khoj, .Kthi, .Mahj, .Modi, .Sind, .Takr, .Tirh, } },
666 .{ .code = 0x0952, .scripts = &.{ .Beng, .Deva, .Gran, .Gujr, .Guru, .Knda, .Latn, .Mlym, .Orya, .Taml, .Telu, .Tirh, } },
667 .{ .code = 0x0951, .scripts = &.{ .Beng, .Deva, .Gran, .Gujr, .Guru, .Knda, .Latn, .Mlym, .Orya, .Shrd, .Taml, .Telu, .Tirh, } },
668 .{ .code = 0xA833, .scripts = &.{ .Deva, .Dogr, .Gujr, .Guru, .Khoj, .Knda, .Kthi, .Mahj, .Modi, .Nand, .Sind, .Takr, .Tirh, } },
669 .{ .code = 0xA834, .scripts = &.{ .Deva, .Dogr, .Gujr, .Guru, .Khoj, .Knda, .Kthi, .Mahj, .Modi, .Nand, .Sind, .Takr, .Tirh, } },
670 .{ .code = 0xA835, .scripts = &.{ .Deva, .Dogr, .Gujr, .Guru, .Khoj, .Knda, .Kthi, .Mahj, .Modi, .Nand, .Sind, .Takr, .Tirh, } },
671 .{ .code = 0xA830, .scripts = &.{ .Deva, .Dogr, .Gujr, .Guru, .Khoj, .Knda, .Kthi, .Mahj, .Mlym, .Modi, .Nand, .Sind, .Takr, .Tirh, } },
672 .{ .code = 0xA831, .scripts = &.{ .Deva, .Dogr, .Gujr, .Guru, .Khoj, .Knda, .Kthi, .Mahj, .Mlym, .Modi, .Nand, .Sind, .Takr, .Tirh, } },
673 .{ .code = 0xA832, .scripts = &.{ .Deva, .Dogr, .Gujr, .Guru, .Khoj, .Knda, .Kthi, .Mahj, .Mlym, .Modi, .Nand, .Sind, .Takr, .Tirh, } },
674 .{ .code = 0x0964, .scripts = &.{ .Beng, .Deva, .Dogr, .Gong, .Gonm, .Gran, .Gujr, .Guru, .Knda, .Mahj, .Mlym, .Nand, .Orya, .Sind, .Sinh, .Sylo, .Takr, .Taml, .Telu, .Tirh, } },
675 .{ .code = 0x0965, .scripts = &.{ .Beng, .Deva, .Dogr, .Gong, .Gonm, .Gran, .Gujr, .Guru, .Knda, .Limb, .Mahj, .Mlym, .Nand, .Orya, .Sind, .Sinh, .Sylo, .Takr, .Taml, .Telu, .Tirh, } },
676};