1use crate::ast::ASTNode;
3
4pub const GENERAL_CATEGORY_CC: &[(char, char)] = &[('\u{0}', '\u{1f}'), ('\u{7f}', '\u{9f}')];
5
6pub fn alternate_general_category_cc() -> ASTNode<char> {
7 ASTNode::alternate_all(GENERAL_CATEGORY_CC.iter().copied()).unwrap()
8}
9
10pub fn negate_general_category_cc() -> ASTNode<char> {
11 ASTNode::negate_all(GENERAL_CATEGORY_CC.iter().copied()).unwrap()
12}
13
14pub const GENERAL_CATEGORY_ZS: &[(char, char)] = &[
15 ('\u{20}', '\u{20}'),
16 ('\u{a0}', '\u{a0}'),
17 ('\u{1680}', '\u{1680}'),
18 ('\u{2000}', '\u{200a}'),
19 ('\u{202f}', '\u{202f}'),
20 ('\u{205f}', '\u{205f}'),
21 ('\u{3000}', '\u{3000}'),
22];
23
24pub fn alternate_general_category_zs() -> ASTNode<char> {
25 ASTNode::alternate_all(GENERAL_CATEGORY_ZS.iter().copied()).unwrap()
26}
27
28pub fn negate_general_category_zs() -> ASTNode<char> {
29 ASTNode::negate_all(GENERAL_CATEGORY_ZS.iter().copied()).unwrap()
30}
31
32pub const GENERAL_CATEGORY_PO: &[(char, char)] = &[
33 ('\u{21}', '\u{23}'),
34 ('\u{25}', '\u{27}'),
35 ('\u{2a}', '\u{2a}'),
36 ('\u{2c}', '\u{2c}'),
37 ('\u{2e}', '\u{2f}'),
38 ('\u{3a}', '\u{3b}'),
39 ('\u{3f}', '\u{40}'),
40 ('\u{5c}', '\u{5c}'),
41 ('\u{a1}', '\u{a1}'),
42 ('\u{a7}', '\u{a7}'),
43 ('\u{b6}', '\u{b7}'),
44 ('\u{bf}', '\u{bf}'),
45 ('\u{37e}', '\u{37e}'),
46 ('\u{387}', '\u{387}'),
47 ('\u{55a}', '\u{55f}'),
48 ('\u{589}', '\u{589}'),
49 ('\u{5c0}', '\u{5c0}'),
50 ('\u{5c3}', '\u{5c3}'),
51 ('\u{5c6}', '\u{5c6}'),
52 ('\u{5f3}', '\u{5f4}'),
53 ('\u{609}', '\u{60a}'),
54 ('\u{60c}', '\u{60d}'),
55 ('\u{61b}', '\u{61b}'),
56 ('\u{61d}', '\u{61f}'),
57 ('\u{66a}', '\u{66d}'),
58 ('\u{6d4}', '\u{6d4}'),
59 ('\u{700}', '\u{70d}'),
60 ('\u{7f7}', '\u{7f9}'),
61 ('\u{830}', '\u{83e}'),
62 ('\u{85e}', '\u{85e}'),
63 ('\u{964}', '\u{965}'),
64 ('\u{970}', '\u{970}'),
65 ('\u{9fd}', '\u{9fd}'),
66 ('\u{a76}', '\u{a76}'),
67 ('\u{af0}', '\u{af0}'),
68 ('\u{c77}', '\u{c77}'),
69 ('\u{c84}', '\u{c84}'),
70 ('\u{df4}', '\u{df4}'),
71 ('\u{e4f}', '\u{e4f}'),
72 ('\u{e5a}', '\u{e5b}'),
73 ('\u{f04}', '\u{f12}'),
74 ('\u{f14}', '\u{f14}'),
75 ('\u{f85}', '\u{f85}'),
76 ('\u{fd0}', '\u{fd4}'),
77 ('\u{fd9}', '\u{fda}'),
78 ('\u{104a}', '\u{104f}'),
79 ('\u{10fb}', '\u{10fb}'),
80 ('\u{1360}', '\u{1368}'),
81 ('\u{166e}', '\u{166e}'),
82 ('\u{16eb}', '\u{16ed}'),
83 ('\u{1735}', '\u{1736}'),
84 ('\u{17d4}', '\u{17d6}'),
85 ('\u{17d8}', '\u{17da}'),
86 ('\u{1800}', '\u{1805}'),
87 ('\u{1807}', '\u{180a}'),
88 ('\u{1944}', '\u{1945}'),
89 ('\u{1a1e}', '\u{1a1f}'),
90 ('\u{1aa0}', '\u{1aa6}'),
91 ('\u{1aa8}', '\u{1aad}'),
92 ('\u{1b4e}', '\u{1b4f}'),
93 ('\u{1b5a}', '\u{1b60}'),
94 ('\u{1b7d}', '\u{1b7f}'),
95 ('\u{1bfc}', '\u{1bff}'),
96 ('\u{1c3b}', '\u{1c3f}'),
97 ('\u{1c7e}', '\u{1c7f}'),
98 ('\u{1cc0}', '\u{1cc7}'),
99 ('\u{1cd3}', '\u{1cd3}'),
100 ('\u{2016}', '\u{2017}'),
101 ('\u{2020}', '\u{2027}'),
102 ('\u{2030}', '\u{2038}'),
103 ('\u{203b}', '\u{203e}'),
104 ('\u{2041}', '\u{2043}'),
105 ('\u{2047}', '\u{2051}'),
106 ('\u{2053}', '\u{2053}'),
107 ('\u{2055}', '\u{205e}'),
108 ('\u{2cf9}', '\u{2cfc}'),
109 ('\u{2cfe}', '\u{2cff}'),
110 ('\u{2d70}', '\u{2d70}'),
111 ('\u{2e00}', '\u{2e01}'),
112 ('\u{2e06}', '\u{2e08}'),
113 ('\u{2e0b}', '\u{2e0b}'),
114 ('\u{2e0e}', '\u{2e16}'),
115 ('\u{2e18}', '\u{2e19}'),
116 ('\u{2e1b}', '\u{2e1b}'),
117 ('\u{2e1e}', '\u{2e1f}'),
118 ('\u{2e2a}', '\u{2e2e}'),
119 ('\u{2e30}', '\u{2e39}'),
120 ('\u{2e3c}', '\u{2e3f}'),
121 ('\u{2e41}', '\u{2e41}'),
122 ('\u{2e43}', '\u{2e4f}'),
123 ('\u{2e52}', '\u{2e54}'),
124 ('\u{3001}', '\u{3003}'),
125 ('\u{303d}', '\u{303d}'),
126 ('\u{30fb}', '\u{30fb}'),
127 ('\u{a4fe}', '\u{a4ff}'),
128 ('\u{a60d}', '\u{a60f}'),
129 ('\u{a673}', '\u{a673}'),
130 ('\u{a67e}', '\u{a67e}'),
131 ('\u{a6f2}', '\u{a6f7}'),
132 ('\u{a874}', '\u{a877}'),
133 ('\u{a8ce}', '\u{a8cf}'),
134 ('\u{a8f8}', '\u{a8fa}'),
135 ('\u{a8fc}', '\u{a8fc}'),
136 ('\u{a92e}', '\u{a92f}'),
137 ('\u{a95f}', '\u{a95f}'),
138 ('\u{a9c1}', '\u{a9cd}'),
139 ('\u{a9de}', '\u{a9df}'),
140 ('\u{aa5c}', '\u{aa5f}'),
141 ('\u{aade}', '\u{aadf}'),
142 ('\u{aaf0}', '\u{aaf1}'),
143 ('\u{abeb}', '\u{abeb}'),
144 ('\u{fe10}', '\u{fe16}'),
145 ('\u{fe19}', '\u{fe19}'),
146 ('\u{fe30}', '\u{fe30}'),
147 ('\u{fe45}', '\u{fe46}'),
148 ('\u{fe49}', '\u{fe4c}'),
149 ('\u{fe50}', '\u{fe52}'),
150 ('\u{fe54}', '\u{fe57}'),
151 ('\u{fe5f}', '\u{fe61}'),
152 ('\u{fe68}', '\u{fe68}'),
153 ('\u{fe6a}', '\u{fe6b}'),
154 ('\u{ff01}', '\u{ff03}'),
155 ('\u{ff05}', '\u{ff07}'),
156 ('\u{ff0a}', '\u{ff0a}'),
157 ('\u{ff0c}', '\u{ff0c}'),
158 ('\u{ff0e}', '\u{ff0f}'),
159 ('\u{ff1a}', '\u{ff1b}'),
160 ('\u{ff1f}', '\u{ff20}'),
161 ('\u{ff3c}', '\u{ff3c}'),
162 ('\u{ff61}', '\u{ff61}'),
163 ('\u{ff64}', '\u{ff65}'),
164 ('\u{10100}', '\u{10102}'),
165 ('\u{1039f}', '\u{1039f}'),
166 ('\u{103d0}', '\u{103d0}'),
167 ('\u{1056f}', '\u{1056f}'),
168 ('\u{10857}', '\u{10857}'),
169 ('\u{1091f}', '\u{1091f}'),
170 ('\u{1093f}', '\u{1093f}'),
171 ('\u{10a50}', '\u{10a58}'),
172 ('\u{10a7f}', '\u{10a7f}'),
173 ('\u{10af0}', '\u{10af6}'),
174 ('\u{10b39}', '\u{10b3f}'),
175 ('\u{10b99}', '\u{10b9c}'),
176 ('\u{10f55}', '\u{10f59}'),
177 ('\u{10f86}', '\u{10f89}'),
178 ('\u{11047}', '\u{1104d}'),
179 ('\u{110bb}', '\u{110bc}'),
180 ('\u{110be}', '\u{110c1}'),
181 ('\u{11140}', '\u{11143}'),
182 ('\u{11174}', '\u{11175}'),
183 ('\u{111c5}', '\u{111c8}'),
184 ('\u{111cd}', '\u{111cd}'),
185 ('\u{111db}', '\u{111db}'),
186 ('\u{111dd}', '\u{111df}'),
187 ('\u{11238}', '\u{1123d}'),
188 ('\u{112a9}', '\u{112a9}'),
189 ('\u{113d4}', '\u{113d5}'),
190 ('\u{113d7}', '\u{113d8}'),
191 ('\u{1144b}', '\u{1144f}'),
192 ('\u{1145a}', '\u{1145b}'),
193 ('\u{1145d}', '\u{1145d}'),
194 ('\u{114c6}', '\u{114c6}'),
195 ('\u{115c1}', '\u{115d7}'),
196 ('\u{11641}', '\u{11643}'),
197 ('\u{11660}', '\u{1166c}'),
198 ('\u{116b9}', '\u{116b9}'),
199 ('\u{1173c}', '\u{1173e}'),
200 ('\u{1183b}', '\u{1183b}'),
201 ('\u{11944}', '\u{11946}'),
202 ('\u{119e2}', '\u{119e2}'),
203 ('\u{11a3f}', '\u{11a46}'),
204 ('\u{11a9a}', '\u{11a9c}'),
205 ('\u{11a9e}', '\u{11aa2}'),
206 ('\u{11b00}', '\u{11b09}'),
207 ('\u{11be1}', '\u{11be1}'),
208 ('\u{11c41}', '\u{11c45}'),
209 ('\u{11c70}', '\u{11c71}'),
210 ('\u{11ef7}', '\u{11ef8}'),
211 ('\u{11f43}', '\u{11f4f}'),
212 ('\u{11fff}', '\u{11fff}'),
213 ('\u{12470}', '\u{12474}'),
214 ('\u{12ff1}', '\u{12ff2}'),
215 ('\u{16a6e}', '\u{16a6f}'),
216 ('\u{16af5}', '\u{16af5}'),
217 ('\u{16b37}', '\u{16b3b}'),
218 ('\u{16b44}', '\u{16b44}'),
219 ('\u{16d6d}', '\u{16d6f}'),
220 ('\u{16e97}', '\u{16e9a}'),
221 ('\u{16fe2}', '\u{16fe2}'),
222 ('\u{1bc9f}', '\u{1bc9f}'),
223 ('\u{1da87}', '\u{1da8b}'),
224 ('\u{1e5ff}', '\u{1e5ff}'),
225 ('\u{1e95e}', '\u{1e95f}'),
226];
227
228pub fn alternate_general_category_po() -> ASTNode<char> {
229 ASTNode::alternate_all(GENERAL_CATEGORY_PO.iter().copied()).unwrap()
230}
231
232pub fn negate_general_category_po() -> ASTNode<char> {
233 ASTNode::negate_all(GENERAL_CATEGORY_PO.iter().copied()).unwrap()
234}
235
236pub const GENERAL_CATEGORY_SC: &[(char, char)] = &[
237 ('\u{24}', '\u{24}'),
238 ('\u{a2}', '\u{a5}'),
239 ('\u{58f}', '\u{58f}'),
240 ('\u{60b}', '\u{60b}'),
241 ('\u{7fe}', '\u{7ff}'),
242 ('\u{9f2}', '\u{9f3}'),
243 ('\u{9fb}', '\u{9fb}'),
244 ('\u{af1}', '\u{af1}'),
245 ('\u{bf9}', '\u{bf9}'),
246 ('\u{e3f}', '\u{e3f}'),
247 ('\u{17db}', '\u{17db}'),
248 ('\u{20a0}', '\u{20c0}'),
249 ('\u{a838}', '\u{a838}'),
250 ('\u{fdfc}', '\u{fdfc}'),
251 ('\u{fe69}', '\u{fe69}'),
252 ('\u{ff04}', '\u{ff04}'),
253 ('\u{ffe0}', '\u{ffe1}'),
254 ('\u{ffe5}', '\u{ffe6}'),
255 ('\u{11fdd}', '\u{11fe0}'),
256 ('\u{1e2ff}', '\u{1e2ff}'),
257 ('\u{1ecb0}', '\u{1ecb0}'),
258];
259
260pub fn alternate_general_category_sc() -> ASTNode<char> {
261 ASTNode::alternate_all(GENERAL_CATEGORY_SC.iter().copied()).unwrap()
262}
263
264pub fn negate_general_category_sc() -> ASTNode<char> {
265 ASTNode::negate_all(GENERAL_CATEGORY_SC.iter().copied()).unwrap()
266}
267
268pub const GENERAL_CATEGORY_PS: &[(char, char)] = &[
269 ('\u{28}', '\u{28}'),
270 ('\u{5b}', '\u{5b}'),
271 ('\u{7b}', '\u{7b}'),
272 ('\u{f3a}', '\u{f3a}'),
273 ('\u{f3c}', '\u{f3c}'),
274 ('\u{169b}', '\u{169b}'),
275 ('\u{201a}', '\u{201a}'),
276 ('\u{201e}', '\u{201e}'),
277 ('\u{2045}', '\u{2045}'),
278 ('\u{207d}', '\u{207d}'),
279 ('\u{208d}', '\u{208d}'),
280 ('\u{2308}', '\u{2308}'),
281 ('\u{230a}', '\u{230a}'),
282 ('\u{2329}', '\u{2329}'),
283 ('\u{2768}', '\u{2768}'),
284 ('\u{276a}', '\u{276a}'),
285 ('\u{276c}', '\u{276c}'),
286 ('\u{276e}', '\u{276e}'),
287 ('\u{2770}', '\u{2770}'),
288 ('\u{2772}', '\u{2772}'),
289 ('\u{2774}', '\u{2774}'),
290 ('\u{27c5}', '\u{27c5}'),
291 ('\u{27e6}', '\u{27e6}'),
292 ('\u{27e8}', '\u{27e8}'),
293 ('\u{27ea}', '\u{27ea}'),
294 ('\u{27ec}', '\u{27ec}'),
295 ('\u{27ee}', '\u{27ee}'),
296 ('\u{2983}', '\u{2983}'),
297 ('\u{2985}', '\u{2985}'),
298 ('\u{2987}', '\u{2987}'),
299 ('\u{2989}', '\u{2989}'),
300 ('\u{298b}', '\u{298b}'),
301 ('\u{298d}', '\u{298d}'),
302 ('\u{298f}', '\u{298f}'),
303 ('\u{2991}', '\u{2991}'),
304 ('\u{2993}', '\u{2993}'),
305 ('\u{2995}', '\u{2995}'),
306 ('\u{2997}', '\u{2997}'),
307 ('\u{29d8}', '\u{29d8}'),
308 ('\u{29da}', '\u{29da}'),
309 ('\u{29fc}', '\u{29fc}'),
310 ('\u{2e22}', '\u{2e22}'),
311 ('\u{2e24}', '\u{2e24}'),
312 ('\u{2e26}', '\u{2e26}'),
313 ('\u{2e28}', '\u{2e28}'),
314 ('\u{2e42}', '\u{2e42}'),
315 ('\u{2e55}', '\u{2e55}'),
316 ('\u{2e57}', '\u{2e57}'),
317 ('\u{2e59}', '\u{2e59}'),
318 ('\u{2e5b}', '\u{2e5b}'),
319 ('\u{3008}', '\u{3008}'),
320 ('\u{300a}', '\u{300a}'),
321 ('\u{300c}', '\u{300c}'),
322 ('\u{300e}', '\u{300e}'),
323 ('\u{3010}', '\u{3010}'),
324 ('\u{3014}', '\u{3014}'),
325 ('\u{3016}', '\u{3016}'),
326 ('\u{3018}', '\u{3018}'),
327 ('\u{301a}', '\u{301a}'),
328 ('\u{301d}', '\u{301d}'),
329 ('\u{fd3f}', '\u{fd3f}'),
330 ('\u{fe17}', '\u{fe17}'),
331 ('\u{fe35}', '\u{fe35}'),
332 ('\u{fe37}', '\u{fe37}'),
333 ('\u{fe39}', '\u{fe39}'),
334 ('\u{fe3b}', '\u{fe3b}'),
335 ('\u{fe3d}', '\u{fe3d}'),
336 ('\u{fe3f}', '\u{fe3f}'),
337 ('\u{fe41}', '\u{fe41}'),
338 ('\u{fe43}', '\u{fe43}'),
339 ('\u{fe47}', '\u{fe47}'),
340 ('\u{fe59}', '\u{fe59}'),
341 ('\u{fe5b}', '\u{fe5b}'),
342 ('\u{fe5d}', '\u{fe5d}'),
343 ('\u{ff08}', '\u{ff08}'),
344 ('\u{ff3b}', '\u{ff3b}'),
345 ('\u{ff5b}', '\u{ff5b}'),
346 ('\u{ff5f}', '\u{ff5f}'),
347 ('\u{ff62}', '\u{ff62}'),
348];
349
350pub fn alternate_general_category_ps() -> ASTNode<char> {
351 ASTNode::alternate_all(GENERAL_CATEGORY_PS.iter().copied()).unwrap()
352}
353
354pub fn negate_general_category_ps() -> ASTNode<char> {
355 ASTNode::negate_all(GENERAL_CATEGORY_PS.iter().copied()).unwrap()
356}
357
358pub const GENERAL_CATEGORY_PE: &[(char, char)] = &[
359 ('\u{29}', '\u{29}'),
360 ('\u{5d}', '\u{5d}'),
361 ('\u{7d}', '\u{7d}'),
362 ('\u{f3b}', '\u{f3b}'),
363 ('\u{f3d}', '\u{f3d}'),
364 ('\u{169c}', '\u{169c}'),
365 ('\u{2046}', '\u{2046}'),
366 ('\u{207e}', '\u{207e}'),
367 ('\u{208e}', '\u{208e}'),
368 ('\u{2309}', '\u{2309}'),
369 ('\u{230b}', '\u{230b}'),
370 ('\u{232a}', '\u{232a}'),
371 ('\u{2769}', '\u{2769}'),
372 ('\u{276b}', '\u{276b}'),
373 ('\u{276d}', '\u{276d}'),
374 ('\u{276f}', '\u{276f}'),
375 ('\u{2771}', '\u{2771}'),
376 ('\u{2773}', '\u{2773}'),
377 ('\u{2775}', '\u{2775}'),
378 ('\u{27c6}', '\u{27c6}'),
379 ('\u{27e7}', '\u{27e7}'),
380 ('\u{27e9}', '\u{27e9}'),
381 ('\u{27eb}', '\u{27eb}'),
382 ('\u{27ed}', '\u{27ed}'),
383 ('\u{27ef}', '\u{27ef}'),
384 ('\u{2984}', '\u{2984}'),
385 ('\u{2986}', '\u{2986}'),
386 ('\u{2988}', '\u{2988}'),
387 ('\u{298a}', '\u{298a}'),
388 ('\u{298c}', '\u{298c}'),
389 ('\u{298e}', '\u{298e}'),
390 ('\u{2990}', '\u{2990}'),
391 ('\u{2992}', '\u{2992}'),
392 ('\u{2994}', '\u{2994}'),
393 ('\u{2996}', '\u{2996}'),
394 ('\u{2998}', '\u{2998}'),
395 ('\u{29d9}', '\u{29d9}'),
396 ('\u{29db}', '\u{29db}'),
397 ('\u{29fd}', '\u{29fd}'),
398 ('\u{2e23}', '\u{2e23}'),
399 ('\u{2e25}', '\u{2e25}'),
400 ('\u{2e27}', '\u{2e27}'),
401 ('\u{2e29}', '\u{2e29}'),
402 ('\u{2e56}', '\u{2e56}'),
403 ('\u{2e58}', '\u{2e58}'),
404 ('\u{2e5a}', '\u{2e5a}'),
405 ('\u{2e5c}', '\u{2e5c}'),
406 ('\u{3009}', '\u{3009}'),
407 ('\u{300b}', '\u{300b}'),
408 ('\u{300d}', '\u{300d}'),
409 ('\u{300f}', '\u{300f}'),
410 ('\u{3011}', '\u{3011}'),
411 ('\u{3015}', '\u{3015}'),
412 ('\u{3017}', '\u{3017}'),
413 ('\u{3019}', '\u{3019}'),
414 ('\u{301b}', '\u{301b}'),
415 ('\u{301e}', '\u{301f}'),
416 ('\u{fd3e}', '\u{fd3e}'),
417 ('\u{fe18}', '\u{fe18}'),
418 ('\u{fe36}', '\u{fe36}'),
419 ('\u{fe38}', '\u{fe38}'),
420 ('\u{fe3a}', '\u{fe3a}'),
421 ('\u{fe3c}', '\u{fe3c}'),
422 ('\u{fe3e}', '\u{fe3e}'),
423 ('\u{fe40}', '\u{fe40}'),
424 ('\u{fe42}', '\u{fe42}'),
425 ('\u{fe44}', '\u{fe44}'),
426 ('\u{fe48}', '\u{fe48}'),
427 ('\u{fe5a}', '\u{fe5a}'),
428 ('\u{fe5c}', '\u{fe5c}'),
429 ('\u{fe5e}', '\u{fe5e}'),
430 ('\u{ff09}', '\u{ff09}'),
431 ('\u{ff3d}', '\u{ff3d}'),
432 ('\u{ff5d}', '\u{ff5d}'),
433 ('\u{ff60}', '\u{ff60}'),
434 ('\u{ff63}', '\u{ff63}'),
435];
436
437pub fn alternate_general_category_pe() -> ASTNode<char> {
438 ASTNode::alternate_all(GENERAL_CATEGORY_PE.iter().copied()).unwrap()
439}
440
441pub fn negate_general_category_pe() -> ASTNode<char> {
442 ASTNode::negate_all(GENERAL_CATEGORY_PE.iter().copied()).unwrap()
443}
444
445pub const GENERAL_CATEGORY_SM: &[(char, char)] = &[
446 ('\u{2b}', '\u{2b}'),
447 ('\u{3c}', '\u{3e}'),
448 ('\u{7c}', '\u{7c}'),
449 ('\u{7e}', '\u{7e}'),
450 ('\u{ac}', '\u{ac}'),
451 ('\u{b1}', '\u{b1}'),
452 ('\u{d7}', '\u{d7}'),
453 ('\u{f7}', '\u{f7}'),
454 ('\u{3f6}', '\u{3f6}'),
455 ('\u{606}', '\u{608}'),
456 ('\u{2044}', '\u{2044}'),
457 ('\u{2052}', '\u{2052}'),
458 ('\u{207a}', '\u{207c}'),
459 ('\u{208a}', '\u{208c}'),
460 ('\u{2118}', '\u{2118}'),
461 ('\u{2140}', '\u{2144}'),
462 ('\u{214b}', '\u{214b}'),
463 ('\u{2190}', '\u{2194}'),
464 ('\u{219a}', '\u{219b}'),
465 ('\u{21a0}', '\u{21a0}'),
466 ('\u{21a3}', '\u{21a3}'),
467 ('\u{21a6}', '\u{21a6}'),
468 ('\u{21ae}', '\u{21ae}'),
469 ('\u{21ce}', '\u{21cf}'),
470 ('\u{21d2}', '\u{21d2}'),
471 ('\u{21d4}', '\u{21d4}'),
472 ('\u{21f4}', '\u{22ff}'),
473 ('\u{2320}', '\u{2321}'),
474 ('\u{237c}', '\u{237c}'),
475 ('\u{239b}', '\u{23b3}'),
476 ('\u{23dc}', '\u{23e1}'),
477 ('\u{25b7}', '\u{25b7}'),
478 ('\u{25c1}', '\u{25c1}'),
479 ('\u{25f8}', '\u{25ff}'),
480 ('\u{266f}', '\u{266f}'),
481 ('\u{27c0}', '\u{27c4}'),
482 ('\u{27c7}', '\u{27e5}'),
483 ('\u{27f0}', '\u{27ff}'),
484 ('\u{2900}', '\u{2982}'),
485 ('\u{2999}', '\u{29d7}'),
486 ('\u{29dc}', '\u{29fb}'),
487 ('\u{29fe}', '\u{2aff}'),
488 ('\u{2b30}', '\u{2b44}'),
489 ('\u{2b47}', '\u{2b4c}'),
490 ('\u{fb29}', '\u{fb29}'),
491 ('\u{fe62}', '\u{fe62}'),
492 ('\u{fe64}', '\u{fe66}'),
493 ('\u{ff0b}', '\u{ff0b}'),
494 ('\u{ff1c}', '\u{ff1e}'),
495 ('\u{ff5c}', '\u{ff5c}'),
496 ('\u{ff5e}', '\u{ff5e}'),
497 ('\u{ffe2}', '\u{ffe2}'),
498 ('\u{ffe9}', '\u{ffec}'),
499 ('\u{10d8e}', '\u{10d8f}'),
500 ('\u{1d6c1}', '\u{1d6c1}'),
501 ('\u{1d6db}', '\u{1d6db}'),
502 ('\u{1d6fb}', '\u{1d6fb}'),
503 ('\u{1d715}', '\u{1d715}'),
504 ('\u{1d735}', '\u{1d735}'),
505 ('\u{1d74f}', '\u{1d74f}'),
506 ('\u{1d76f}', '\u{1d76f}'),
507 ('\u{1d789}', '\u{1d789}'),
508 ('\u{1d7a9}', '\u{1d7a9}'),
509 ('\u{1d7c3}', '\u{1d7c3}'),
510 ('\u{1eef0}', '\u{1eef1}'),
511];
512
513pub fn alternate_general_category_sm() -> ASTNode<char> {
514 ASTNode::alternate_all(GENERAL_CATEGORY_SM.iter().copied()).unwrap()
515}
516
517pub fn negate_general_category_sm() -> ASTNode<char> {
518 ASTNode::negate_all(GENERAL_CATEGORY_SM.iter().copied()).unwrap()
519}
520
521pub const GENERAL_CATEGORY_PD: &[(char, char)] = &[
522 ('\u{2d}', '\u{2d}'),
523 ('\u{58a}', '\u{58a}'),
524 ('\u{5be}', '\u{5be}'),
525 ('\u{1400}', '\u{1400}'),
526 ('\u{1806}', '\u{1806}'),
527 ('\u{2010}', '\u{2015}'),
528 ('\u{2e17}', '\u{2e17}'),
529 ('\u{2e1a}', '\u{2e1a}'),
530 ('\u{2e3a}', '\u{2e3b}'),
531 ('\u{2e40}', '\u{2e40}'),
532 ('\u{2e5d}', '\u{2e5d}'),
533 ('\u{301c}', '\u{301c}'),
534 ('\u{3030}', '\u{3030}'),
535 ('\u{30a0}', '\u{30a0}'),
536 ('\u{fe31}', '\u{fe32}'),
537 ('\u{fe58}', '\u{fe58}'),
538 ('\u{fe63}', '\u{fe63}'),
539 ('\u{ff0d}', '\u{ff0d}'),
540 ('\u{10d6e}', '\u{10d6e}'),
541 ('\u{10ead}', '\u{10ead}'),
542];
543
544pub fn alternate_general_category_pd() -> ASTNode<char> {
545 ASTNode::alternate_all(GENERAL_CATEGORY_PD.iter().copied()).unwrap()
546}
547
548pub fn negate_general_category_pd() -> ASTNode<char> {
549 ASTNode::negate_all(GENERAL_CATEGORY_PD.iter().copied()).unwrap()
550}
551
552pub const GENERAL_CATEGORY_ND: &[(char, char)] = &[
553 ('\u{30}', '\u{39}'),
554 ('\u{660}', '\u{669}'),
555 ('\u{6f0}', '\u{6f9}'),
556 ('\u{7c0}', '\u{7c9}'),
557 ('\u{966}', '\u{96f}'),
558 ('\u{9e6}', '\u{9ef}'),
559 ('\u{a66}', '\u{a6f}'),
560 ('\u{ae6}', '\u{aef}'),
561 ('\u{b66}', '\u{b6f}'),
562 ('\u{be6}', '\u{bef}'),
563 ('\u{c66}', '\u{c6f}'),
564 ('\u{ce6}', '\u{cef}'),
565 ('\u{d66}', '\u{d6f}'),
566 ('\u{de6}', '\u{def}'),
567 ('\u{e50}', '\u{e59}'),
568 ('\u{ed0}', '\u{ed9}'),
569 ('\u{f20}', '\u{f29}'),
570 ('\u{1040}', '\u{1049}'),
571 ('\u{1090}', '\u{1099}'),
572 ('\u{17e0}', '\u{17e9}'),
573 ('\u{1810}', '\u{1819}'),
574 ('\u{1946}', '\u{194f}'),
575 ('\u{19d0}', '\u{19d9}'),
576 ('\u{1a80}', '\u{1a89}'),
577 ('\u{1a90}', '\u{1a99}'),
578 ('\u{1b50}', '\u{1b59}'),
579 ('\u{1bb0}', '\u{1bb9}'),
580 ('\u{1c40}', '\u{1c49}'),
581 ('\u{1c50}', '\u{1c59}'),
582 ('\u{a620}', '\u{a629}'),
583 ('\u{a8d0}', '\u{a8d9}'),
584 ('\u{a900}', '\u{a909}'),
585 ('\u{a9d0}', '\u{a9d9}'),
586 ('\u{a9f0}', '\u{a9f9}'),
587 ('\u{aa50}', '\u{aa59}'),
588 ('\u{abf0}', '\u{abf9}'),
589 ('\u{ff10}', '\u{ff19}'),
590 ('\u{104a0}', '\u{104a9}'),
591 ('\u{10d30}', '\u{10d39}'),
592 ('\u{10d40}', '\u{10d49}'),
593 ('\u{11066}', '\u{1106f}'),
594 ('\u{110f0}', '\u{110f9}'),
595 ('\u{11136}', '\u{1113f}'),
596 ('\u{111d0}', '\u{111d9}'),
597 ('\u{112f0}', '\u{112f9}'),
598 ('\u{11450}', '\u{11459}'),
599 ('\u{114d0}', '\u{114d9}'),
600 ('\u{11650}', '\u{11659}'),
601 ('\u{116c0}', '\u{116c9}'),
602 ('\u{116d0}', '\u{116e3}'),
603 ('\u{11730}', '\u{11739}'),
604 ('\u{118e0}', '\u{118e9}'),
605 ('\u{11950}', '\u{11959}'),
606 ('\u{11bf0}', '\u{11bf9}'),
607 ('\u{11c50}', '\u{11c59}'),
608 ('\u{11d50}', '\u{11d59}'),
609 ('\u{11da0}', '\u{11da9}'),
610 ('\u{11f50}', '\u{11f59}'),
611 ('\u{16130}', '\u{16139}'),
612 ('\u{16a60}', '\u{16a69}'),
613 ('\u{16ac0}', '\u{16ac9}'),
614 ('\u{16b50}', '\u{16b59}'),
615 ('\u{16d70}', '\u{16d79}'),
616 ('\u{1ccf0}', '\u{1ccf9}'),
617 ('\u{1d7ce}', '\u{1d7ff}'),
618 ('\u{1e140}', '\u{1e149}'),
619 ('\u{1e2f0}', '\u{1e2f9}'),
620 ('\u{1e4f0}', '\u{1e4f9}'),
621 ('\u{1e5f1}', '\u{1e5fa}'),
622 ('\u{1e950}', '\u{1e959}'),
623 ('\u{1fbf0}', '\u{1fbf9}'),
624];
625
626pub fn alternate_general_category_nd() -> ASTNode<char> {
627 ASTNode::alternate_all(GENERAL_CATEGORY_ND.iter().copied()).unwrap()
628}
629
630pub fn negate_general_category_nd() -> ASTNode<char> {
631 ASTNode::negate_all(GENERAL_CATEGORY_ND.iter().copied()).unwrap()
632}
633
634pub const GENERAL_CATEGORY_LU: &[(char, char)] = &[
635 ('\u{41}', '\u{5a}'),
636 ('\u{c0}', '\u{d6}'),
637 ('\u{d8}', '\u{de}'),
638 ('\u{100}', '\u{100}'),
639 ('\u{102}', '\u{102}'),
640 ('\u{104}', '\u{104}'),
641 ('\u{106}', '\u{106}'),
642 ('\u{108}', '\u{108}'),
643 ('\u{10a}', '\u{10a}'),
644 ('\u{10c}', '\u{10c}'),
645 ('\u{10e}', '\u{10e}'),
646 ('\u{110}', '\u{110}'),
647 ('\u{112}', '\u{112}'),
648 ('\u{114}', '\u{114}'),
649 ('\u{116}', '\u{116}'),
650 ('\u{118}', '\u{118}'),
651 ('\u{11a}', '\u{11a}'),
652 ('\u{11c}', '\u{11c}'),
653 ('\u{11e}', '\u{11e}'),
654 ('\u{120}', '\u{120}'),
655 ('\u{122}', '\u{122}'),
656 ('\u{124}', '\u{124}'),
657 ('\u{126}', '\u{126}'),
658 ('\u{128}', '\u{128}'),
659 ('\u{12a}', '\u{12a}'),
660 ('\u{12c}', '\u{12c}'),
661 ('\u{12e}', '\u{12e}'),
662 ('\u{130}', '\u{130}'),
663 ('\u{132}', '\u{132}'),
664 ('\u{134}', '\u{134}'),
665 ('\u{136}', '\u{136}'),
666 ('\u{139}', '\u{139}'),
667 ('\u{13b}', '\u{13b}'),
668 ('\u{13d}', '\u{13d}'),
669 ('\u{13f}', '\u{13f}'),
670 ('\u{141}', '\u{141}'),
671 ('\u{143}', '\u{143}'),
672 ('\u{145}', '\u{145}'),
673 ('\u{147}', '\u{147}'),
674 ('\u{14a}', '\u{14a}'),
675 ('\u{14c}', '\u{14c}'),
676 ('\u{14e}', '\u{14e}'),
677 ('\u{150}', '\u{150}'),
678 ('\u{152}', '\u{152}'),
679 ('\u{154}', '\u{154}'),
680 ('\u{156}', '\u{156}'),
681 ('\u{158}', '\u{158}'),
682 ('\u{15a}', '\u{15a}'),
683 ('\u{15c}', '\u{15c}'),
684 ('\u{15e}', '\u{15e}'),
685 ('\u{160}', '\u{160}'),
686 ('\u{162}', '\u{162}'),
687 ('\u{164}', '\u{164}'),
688 ('\u{166}', '\u{166}'),
689 ('\u{168}', '\u{168}'),
690 ('\u{16a}', '\u{16a}'),
691 ('\u{16c}', '\u{16c}'),
692 ('\u{16e}', '\u{16e}'),
693 ('\u{170}', '\u{170}'),
694 ('\u{172}', '\u{172}'),
695 ('\u{174}', '\u{174}'),
696 ('\u{176}', '\u{176}'),
697 ('\u{178}', '\u{179}'),
698 ('\u{17b}', '\u{17b}'),
699 ('\u{17d}', '\u{17d}'),
700 ('\u{181}', '\u{182}'),
701 ('\u{184}', '\u{184}'),
702 ('\u{186}', '\u{187}'),
703 ('\u{189}', '\u{18b}'),
704 ('\u{18e}', '\u{191}'),
705 ('\u{193}', '\u{194}'),
706 ('\u{196}', '\u{198}'),
707 ('\u{19c}', '\u{19d}'),
708 ('\u{19f}', '\u{1a0}'),
709 ('\u{1a2}', '\u{1a2}'),
710 ('\u{1a4}', '\u{1a4}'),
711 ('\u{1a6}', '\u{1a7}'),
712 ('\u{1a9}', '\u{1a9}'),
713 ('\u{1ac}', '\u{1ac}'),
714 ('\u{1ae}', '\u{1af}'),
715 ('\u{1b1}', '\u{1b3}'),
716 ('\u{1b5}', '\u{1b5}'),
717 ('\u{1b7}', '\u{1b8}'),
718 ('\u{1bc}', '\u{1bc}'),
719 ('\u{1c4}', '\u{1c4}'),
720 ('\u{1c7}', '\u{1c7}'),
721 ('\u{1ca}', '\u{1ca}'),
722 ('\u{1cd}', '\u{1cd}'),
723 ('\u{1cf}', '\u{1cf}'),
724 ('\u{1d1}', '\u{1d1}'),
725 ('\u{1d3}', '\u{1d3}'),
726 ('\u{1d5}', '\u{1d5}'),
727 ('\u{1d7}', '\u{1d7}'),
728 ('\u{1d9}', '\u{1d9}'),
729 ('\u{1db}', '\u{1db}'),
730 ('\u{1de}', '\u{1de}'),
731 ('\u{1e0}', '\u{1e0}'),
732 ('\u{1e2}', '\u{1e2}'),
733 ('\u{1e4}', '\u{1e4}'),
734 ('\u{1e6}', '\u{1e6}'),
735 ('\u{1e8}', '\u{1e8}'),
736 ('\u{1ea}', '\u{1ea}'),
737 ('\u{1ec}', '\u{1ec}'),
738 ('\u{1ee}', '\u{1ee}'),
739 ('\u{1f1}', '\u{1f1}'),
740 ('\u{1f4}', '\u{1f4}'),
741 ('\u{1f6}', '\u{1f8}'),
742 ('\u{1fa}', '\u{1fa}'),
743 ('\u{1fc}', '\u{1fc}'),
744 ('\u{1fe}', '\u{1fe}'),
745 ('\u{200}', '\u{200}'),
746 ('\u{202}', '\u{202}'),
747 ('\u{204}', '\u{204}'),
748 ('\u{206}', '\u{206}'),
749 ('\u{208}', '\u{208}'),
750 ('\u{20a}', '\u{20a}'),
751 ('\u{20c}', '\u{20c}'),
752 ('\u{20e}', '\u{20e}'),
753 ('\u{210}', '\u{210}'),
754 ('\u{212}', '\u{212}'),
755 ('\u{214}', '\u{214}'),
756 ('\u{216}', '\u{216}'),
757 ('\u{218}', '\u{218}'),
758 ('\u{21a}', '\u{21a}'),
759 ('\u{21c}', '\u{21c}'),
760 ('\u{21e}', '\u{21e}'),
761 ('\u{220}', '\u{220}'),
762 ('\u{222}', '\u{222}'),
763 ('\u{224}', '\u{224}'),
764 ('\u{226}', '\u{226}'),
765 ('\u{228}', '\u{228}'),
766 ('\u{22a}', '\u{22a}'),
767 ('\u{22c}', '\u{22c}'),
768 ('\u{22e}', '\u{22e}'),
769 ('\u{230}', '\u{230}'),
770 ('\u{232}', '\u{232}'),
771 ('\u{23a}', '\u{23b}'),
772 ('\u{23d}', '\u{23e}'),
773 ('\u{241}', '\u{241}'),
774 ('\u{243}', '\u{246}'),
775 ('\u{248}', '\u{248}'),
776 ('\u{24a}', '\u{24a}'),
777 ('\u{24c}', '\u{24c}'),
778 ('\u{24e}', '\u{24e}'),
779 ('\u{370}', '\u{370}'),
780 ('\u{372}', '\u{372}'),
781 ('\u{376}', '\u{376}'),
782 ('\u{37f}', '\u{37f}'),
783 ('\u{386}', '\u{386}'),
784 ('\u{388}', '\u{38a}'),
785 ('\u{38c}', '\u{38c}'),
786 ('\u{38e}', '\u{38f}'),
787 ('\u{391}', '\u{3a1}'),
788 ('\u{3a3}', '\u{3ab}'),
789 ('\u{3cf}', '\u{3cf}'),
790 ('\u{3d2}', '\u{3d4}'),
791 ('\u{3d8}', '\u{3d8}'),
792 ('\u{3da}', '\u{3da}'),
793 ('\u{3dc}', '\u{3dc}'),
794 ('\u{3de}', '\u{3de}'),
795 ('\u{3e0}', '\u{3e0}'),
796 ('\u{3e2}', '\u{3e2}'),
797 ('\u{3e4}', '\u{3e4}'),
798 ('\u{3e6}', '\u{3e6}'),
799 ('\u{3e8}', '\u{3e8}'),
800 ('\u{3ea}', '\u{3ea}'),
801 ('\u{3ec}', '\u{3ec}'),
802 ('\u{3ee}', '\u{3ee}'),
803 ('\u{3f4}', '\u{3f4}'),
804 ('\u{3f7}', '\u{3f7}'),
805 ('\u{3f9}', '\u{3fa}'),
806 ('\u{3fd}', '\u{42f}'),
807 ('\u{460}', '\u{460}'),
808 ('\u{462}', '\u{462}'),
809 ('\u{464}', '\u{464}'),
810 ('\u{466}', '\u{466}'),
811 ('\u{468}', '\u{468}'),
812 ('\u{46a}', '\u{46a}'),
813 ('\u{46c}', '\u{46c}'),
814 ('\u{46e}', '\u{46e}'),
815 ('\u{470}', '\u{470}'),
816 ('\u{472}', '\u{472}'),
817 ('\u{474}', '\u{474}'),
818 ('\u{476}', '\u{476}'),
819 ('\u{478}', '\u{478}'),
820 ('\u{47a}', '\u{47a}'),
821 ('\u{47c}', '\u{47c}'),
822 ('\u{47e}', '\u{47e}'),
823 ('\u{480}', '\u{480}'),
824 ('\u{48a}', '\u{48a}'),
825 ('\u{48c}', '\u{48c}'),
826 ('\u{48e}', '\u{48e}'),
827 ('\u{490}', '\u{490}'),
828 ('\u{492}', '\u{492}'),
829 ('\u{494}', '\u{494}'),
830 ('\u{496}', '\u{496}'),
831 ('\u{498}', '\u{498}'),
832 ('\u{49a}', '\u{49a}'),
833 ('\u{49c}', '\u{49c}'),
834 ('\u{49e}', '\u{49e}'),
835 ('\u{4a0}', '\u{4a0}'),
836 ('\u{4a2}', '\u{4a2}'),
837 ('\u{4a4}', '\u{4a4}'),
838 ('\u{4a6}', '\u{4a6}'),
839 ('\u{4a8}', '\u{4a8}'),
840 ('\u{4aa}', '\u{4aa}'),
841 ('\u{4ac}', '\u{4ac}'),
842 ('\u{4ae}', '\u{4ae}'),
843 ('\u{4b0}', '\u{4b0}'),
844 ('\u{4b2}', '\u{4b2}'),
845 ('\u{4b4}', '\u{4b4}'),
846 ('\u{4b6}', '\u{4b6}'),
847 ('\u{4b8}', '\u{4b8}'),
848 ('\u{4ba}', '\u{4ba}'),
849 ('\u{4bc}', '\u{4bc}'),
850 ('\u{4be}', '\u{4be}'),
851 ('\u{4c0}', '\u{4c1}'),
852 ('\u{4c3}', '\u{4c3}'),
853 ('\u{4c5}', '\u{4c5}'),
854 ('\u{4c7}', '\u{4c7}'),
855 ('\u{4c9}', '\u{4c9}'),
856 ('\u{4cb}', '\u{4cb}'),
857 ('\u{4cd}', '\u{4cd}'),
858 ('\u{4d0}', '\u{4d0}'),
859 ('\u{4d2}', '\u{4d2}'),
860 ('\u{4d4}', '\u{4d4}'),
861 ('\u{4d6}', '\u{4d6}'),
862 ('\u{4d8}', '\u{4d8}'),
863 ('\u{4da}', '\u{4da}'),
864 ('\u{4dc}', '\u{4dc}'),
865 ('\u{4de}', '\u{4de}'),
866 ('\u{4e0}', '\u{4e0}'),
867 ('\u{4e2}', '\u{4e2}'),
868 ('\u{4e4}', '\u{4e4}'),
869 ('\u{4e6}', '\u{4e6}'),
870 ('\u{4e8}', '\u{4e8}'),
871 ('\u{4ea}', '\u{4ea}'),
872 ('\u{4ec}', '\u{4ec}'),
873 ('\u{4ee}', '\u{4ee}'),
874 ('\u{4f0}', '\u{4f0}'),
875 ('\u{4f2}', '\u{4f2}'),
876 ('\u{4f4}', '\u{4f4}'),
877 ('\u{4f6}', '\u{4f6}'),
878 ('\u{4f8}', '\u{4f8}'),
879 ('\u{4fa}', '\u{4fa}'),
880 ('\u{4fc}', '\u{4fc}'),
881 ('\u{4fe}', '\u{4fe}'),
882 ('\u{500}', '\u{500}'),
883 ('\u{502}', '\u{502}'),
884 ('\u{504}', '\u{504}'),
885 ('\u{506}', '\u{506}'),
886 ('\u{508}', '\u{508}'),
887 ('\u{50a}', '\u{50a}'),
888 ('\u{50c}', '\u{50c}'),
889 ('\u{50e}', '\u{50e}'),
890 ('\u{510}', '\u{510}'),
891 ('\u{512}', '\u{512}'),
892 ('\u{514}', '\u{514}'),
893 ('\u{516}', '\u{516}'),
894 ('\u{518}', '\u{518}'),
895 ('\u{51a}', '\u{51a}'),
896 ('\u{51c}', '\u{51c}'),
897 ('\u{51e}', '\u{51e}'),
898 ('\u{520}', '\u{520}'),
899 ('\u{522}', '\u{522}'),
900 ('\u{524}', '\u{524}'),
901 ('\u{526}', '\u{526}'),
902 ('\u{528}', '\u{528}'),
903 ('\u{52a}', '\u{52a}'),
904 ('\u{52c}', '\u{52c}'),
905 ('\u{52e}', '\u{52e}'),
906 ('\u{531}', '\u{556}'),
907 ('\u{10a0}', '\u{10c5}'),
908 ('\u{10c7}', '\u{10c7}'),
909 ('\u{10cd}', '\u{10cd}'),
910 ('\u{13a0}', '\u{13f5}'),
911 ('\u{1c89}', '\u{1c89}'),
912 ('\u{1c90}', '\u{1cba}'),
913 ('\u{1cbd}', '\u{1cbf}'),
914 ('\u{1e00}', '\u{1e00}'),
915 ('\u{1e02}', '\u{1e02}'),
916 ('\u{1e04}', '\u{1e04}'),
917 ('\u{1e06}', '\u{1e06}'),
918 ('\u{1e08}', '\u{1e08}'),
919 ('\u{1e0a}', '\u{1e0a}'),
920 ('\u{1e0c}', '\u{1e0c}'),
921 ('\u{1e0e}', '\u{1e0e}'),
922 ('\u{1e10}', '\u{1e10}'),
923 ('\u{1e12}', '\u{1e12}'),
924 ('\u{1e14}', '\u{1e14}'),
925 ('\u{1e16}', '\u{1e16}'),
926 ('\u{1e18}', '\u{1e18}'),
927 ('\u{1e1a}', '\u{1e1a}'),
928 ('\u{1e1c}', '\u{1e1c}'),
929 ('\u{1e1e}', '\u{1e1e}'),
930 ('\u{1e20}', '\u{1e20}'),
931 ('\u{1e22}', '\u{1e22}'),
932 ('\u{1e24}', '\u{1e24}'),
933 ('\u{1e26}', '\u{1e26}'),
934 ('\u{1e28}', '\u{1e28}'),
935 ('\u{1e2a}', '\u{1e2a}'),
936 ('\u{1e2c}', '\u{1e2c}'),
937 ('\u{1e2e}', '\u{1e2e}'),
938 ('\u{1e30}', '\u{1e30}'),
939 ('\u{1e32}', '\u{1e32}'),
940 ('\u{1e34}', '\u{1e34}'),
941 ('\u{1e36}', '\u{1e36}'),
942 ('\u{1e38}', '\u{1e38}'),
943 ('\u{1e3a}', '\u{1e3a}'),
944 ('\u{1e3c}', '\u{1e3c}'),
945 ('\u{1e3e}', '\u{1e3e}'),
946 ('\u{1e40}', '\u{1e40}'),
947 ('\u{1e42}', '\u{1e42}'),
948 ('\u{1e44}', '\u{1e44}'),
949 ('\u{1e46}', '\u{1e46}'),
950 ('\u{1e48}', '\u{1e48}'),
951 ('\u{1e4a}', '\u{1e4a}'),
952 ('\u{1e4c}', '\u{1e4c}'),
953 ('\u{1e4e}', '\u{1e4e}'),
954 ('\u{1e50}', '\u{1e50}'),
955 ('\u{1e52}', '\u{1e52}'),
956 ('\u{1e54}', '\u{1e54}'),
957 ('\u{1e56}', '\u{1e56}'),
958 ('\u{1e58}', '\u{1e58}'),
959 ('\u{1e5a}', '\u{1e5a}'),
960 ('\u{1e5c}', '\u{1e5c}'),
961 ('\u{1e5e}', '\u{1e5e}'),
962 ('\u{1e60}', '\u{1e60}'),
963 ('\u{1e62}', '\u{1e62}'),
964 ('\u{1e64}', '\u{1e64}'),
965 ('\u{1e66}', '\u{1e66}'),
966 ('\u{1e68}', '\u{1e68}'),
967 ('\u{1e6a}', '\u{1e6a}'),
968 ('\u{1e6c}', '\u{1e6c}'),
969 ('\u{1e6e}', '\u{1e6e}'),
970 ('\u{1e70}', '\u{1e70}'),
971 ('\u{1e72}', '\u{1e72}'),
972 ('\u{1e74}', '\u{1e74}'),
973 ('\u{1e76}', '\u{1e76}'),
974 ('\u{1e78}', '\u{1e78}'),
975 ('\u{1e7a}', '\u{1e7a}'),
976 ('\u{1e7c}', '\u{1e7c}'),
977 ('\u{1e7e}', '\u{1e7e}'),
978 ('\u{1e80}', '\u{1e80}'),
979 ('\u{1e82}', '\u{1e82}'),
980 ('\u{1e84}', '\u{1e84}'),
981 ('\u{1e86}', '\u{1e86}'),
982 ('\u{1e88}', '\u{1e88}'),
983 ('\u{1e8a}', '\u{1e8a}'),
984 ('\u{1e8c}', '\u{1e8c}'),
985 ('\u{1e8e}', '\u{1e8e}'),
986 ('\u{1e90}', '\u{1e90}'),
987 ('\u{1e92}', '\u{1e92}'),
988 ('\u{1e94}', '\u{1e94}'),
989 ('\u{1e9e}', '\u{1e9e}'),
990 ('\u{1ea0}', '\u{1ea0}'),
991 ('\u{1ea2}', '\u{1ea2}'),
992 ('\u{1ea4}', '\u{1ea4}'),
993 ('\u{1ea6}', '\u{1ea6}'),
994 ('\u{1ea8}', '\u{1ea8}'),
995 ('\u{1eaa}', '\u{1eaa}'),
996 ('\u{1eac}', '\u{1eac}'),
997 ('\u{1eae}', '\u{1eae}'),
998 ('\u{1eb0}', '\u{1eb0}'),
999 ('\u{1eb2}', '\u{1eb2}'),
1000 ('\u{1eb4}', '\u{1eb4}'),
1001 ('\u{1eb6}', '\u{1eb6}'),
1002 ('\u{1eb8}', '\u{1eb8}'),
1003 ('\u{1eba}', '\u{1eba}'),
1004 ('\u{1ebc}', '\u{1ebc}'),
1005 ('\u{1ebe}', '\u{1ebe}'),
1006 ('\u{1ec0}', '\u{1ec0}'),
1007 ('\u{1ec2}', '\u{1ec2}'),
1008 ('\u{1ec4}', '\u{1ec4}'),
1009 ('\u{1ec6}', '\u{1ec6}'),
1010 ('\u{1ec8}', '\u{1ec8}'),
1011 ('\u{1eca}', '\u{1eca}'),
1012 ('\u{1ecc}', '\u{1ecc}'),
1013 ('\u{1ece}', '\u{1ece}'),
1014 ('\u{1ed0}', '\u{1ed0}'),
1015 ('\u{1ed2}', '\u{1ed2}'),
1016 ('\u{1ed4}', '\u{1ed4}'),
1017 ('\u{1ed6}', '\u{1ed6}'),
1018 ('\u{1ed8}', '\u{1ed8}'),
1019 ('\u{1eda}', '\u{1eda}'),
1020 ('\u{1edc}', '\u{1edc}'),
1021 ('\u{1ede}', '\u{1ede}'),
1022 ('\u{1ee0}', '\u{1ee0}'),
1023 ('\u{1ee2}', '\u{1ee2}'),
1024 ('\u{1ee4}', '\u{1ee4}'),
1025 ('\u{1ee6}', '\u{1ee6}'),
1026 ('\u{1ee8}', '\u{1ee8}'),
1027 ('\u{1eea}', '\u{1eea}'),
1028 ('\u{1eec}', '\u{1eec}'),
1029 ('\u{1eee}', '\u{1eee}'),
1030 ('\u{1ef0}', '\u{1ef0}'),
1031 ('\u{1ef2}', '\u{1ef2}'),
1032 ('\u{1ef4}', '\u{1ef4}'),
1033 ('\u{1ef6}', '\u{1ef6}'),
1034 ('\u{1ef8}', '\u{1ef8}'),
1035 ('\u{1efa}', '\u{1efa}'),
1036 ('\u{1efc}', '\u{1efc}'),
1037 ('\u{1efe}', '\u{1efe}'),
1038 ('\u{1f08}', '\u{1f0f}'),
1039 ('\u{1f18}', '\u{1f1d}'),
1040 ('\u{1f28}', '\u{1f2f}'),
1041 ('\u{1f38}', '\u{1f3f}'),
1042 ('\u{1f48}', '\u{1f4d}'),
1043 ('\u{1f59}', '\u{1f59}'),
1044 ('\u{1f5b}', '\u{1f5b}'),
1045 ('\u{1f5d}', '\u{1f5d}'),
1046 ('\u{1f5f}', '\u{1f5f}'),
1047 ('\u{1f68}', '\u{1f6f}'),
1048 ('\u{1fb8}', '\u{1fbb}'),
1049 ('\u{1fc8}', '\u{1fcb}'),
1050 ('\u{1fd8}', '\u{1fdb}'),
1051 ('\u{1fe8}', '\u{1fec}'),
1052 ('\u{1ff8}', '\u{1ffb}'),
1053 ('\u{2102}', '\u{2102}'),
1054 ('\u{2107}', '\u{2107}'),
1055 ('\u{210b}', '\u{210d}'),
1056 ('\u{2110}', '\u{2112}'),
1057 ('\u{2115}', '\u{2115}'),
1058 ('\u{2119}', '\u{211d}'),
1059 ('\u{2124}', '\u{2124}'),
1060 ('\u{2126}', '\u{2126}'),
1061 ('\u{2128}', '\u{2128}'),
1062 ('\u{212a}', '\u{212d}'),
1063 ('\u{2130}', '\u{2133}'),
1064 ('\u{213e}', '\u{213f}'),
1065 ('\u{2145}', '\u{2145}'),
1066 ('\u{2183}', '\u{2183}'),
1067 ('\u{2c00}', '\u{2c2f}'),
1068 ('\u{2c60}', '\u{2c60}'),
1069 ('\u{2c62}', '\u{2c64}'),
1070 ('\u{2c67}', '\u{2c67}'),
1071 ('\u{2c69}', '\u{2c69}'),
1072 ('\u{2c6b}', '\u{2c6b}'),
1073 ('\u{2c6d}', '\u{2c70}'),
1074 ('\u{2c72}', '\u{2c72}'),
1075 ('\u{2c75}', '\u{2c75}'),
1076 ('\u{2c7e}', '\u{2c80}'),
1077 ('\u{2c82}', '\u{2c82}'),
1078 ('\u{2c84}', '\u{2c84}'),
1079 ('\u{2c86}', '\u{2c86}'),
1080 ('\u{2c88}', '\u{2c88}'),
1081 ('\u{2c8a}', '\u{2c8a}'),
1082 ('\u{2c8c}', '\u{2c8c}'),
1083 ('\u{2c8e}', '\u{2c8e}'),
1084 ('\u{2c90}', '\u{2c90}'),
1085 ('\u{2c92}', '\u{2c92}'),
1086 ('\u{2c94}', '\u{2c94}'),
1087 ('\u{2c96}', '\u{2c96}'),
1088 ('\u{2c98}', '\u{2c98}'),
1089 ('\u{2c9a}', '\u{2c9a}'),
1090 ('\u{2c9c}', '\u{2c9c}'),
1091 ('\u{2c9e}', '\u{2c9e}'),
1092 ('\u{2ca0}', '\u{2ca0}'),
1093 ('\u{2ca2}', '\u{2ca2}'),
1094 ('\u{2ca4}', '\u{2ca4}'),
1095 ('\u{2ca6}', '\u{2ca6}'),
1096 ('\u{2ca8}', '\u{2ca8}'),
1097 ('\u{2caa}', '\u{2caa}'),
1098 ('\u{2cac}', '\u{2cac}'),
1099 ('\u{2cae}', '\u{2cae}'),
1100 ('\u{2cb0}', '\u{2cb0}'),
1101 ('\u{2cb2}', '\u{2cb2}'),
1102 ('\u{2cb4}', '\u{2cb4}'),
1103 ('\u{2cb6}', '\u{2cb6}'),
1104 ('\u{2cb8}', '\u{2cb8}'),
1105 ('\u{2cba}', '\u{2cba}'),
1106 ('\u{2cbc}', '\u{2cbc}'),
1107 ('\u{2cbe}', '\u{2cbe}'),
1108 ('\u{2cc0}', '\u{2cc0}'),
1109 ('\u{2cc2}', '\u{2cc2}'),
1110 ('\u{2cc4}', '\u{2cc4}'),
1111 ('\u{2cc6}', '\u{2cc6}'),
1112 ('\u{2cc8}', '\u{2cc8}'),
1113 ('\u{2cca}', '\u{2cca}'),
1114 ('\u{2ccc}', '\u{2ccc}'),
1115 ('\u{2cce}', '\u{2cce}'),
1116 ('\u{2cd0}', '\u{2cd0}'),
1117 ('\u{2cd2}', '\u{2cd2}'),
1118 ('\u{2cd4}', '\u{2cd4}'),
1119 ('\u{2cd6}', '\u{2cd6}'),
1120 ('\u{2cd8}', '\u{2cd8}'),
1121 ('\u{2cda}', '\u{2cda}'),
1122 ('\u{2cdc}', '\u{2cdc}'),
1123 ('\u{2cde}', '\u{2cde}'),
1124 ('\u{2ce0}', '\u{2ce0}'),
1125 ('\u{2ce2}', '\u{2ce2}'),
1126 ('\u{2ceb}', '\u{2ceb}'),
1127 ('\u{2ced}', '\u{2ced}'),
1128 ('\u{2cf2}', '\u{2cf2}'),
1129 ('\u{a640}', '\u{a640}'),
1130 ('\u{a642}', '\u{a642}'),
1131 ('\u{a644}', '\u{a644}'),
1132 ('\u{a646}', '\u{a646}'),
1133 ('\u{a648}', '\u{a648}'),
1134 ('\u{a64a}', '\u{a64a}'),
1135 ('\u{a64c}', '\u{a64c}'),
1136 ('\u{a64e}', '\u{a64e}'),
1137 ('\u{a650}', '\u{a650}'),
1138 ('\u{a652}', '\u{a652}'),
1139 ('\u{a654}', '\u{a654}'),
1140 ('\u{a656}', '\u{a656}'),
1141 ('\u{a658}', '\u{a658}'),
1142 ('\u{a65a}', '\u{a65a}'),
1143 ('\u{a65c}', '\u{a65c}'),
1144 ('\u{a65e}', '\u{a65e}'),
1145 ('\u{a660}', '\u{a660}'),
1146 ('\u{a662}', '\u{a662}'),
1147 ('\u{a664}', '\u{a664}'),
1148 ('\u{a666}', '\u{a666}'),
1149 ('\u{a668}', '\u{a668}'),
1150 ('\u{a66a}', '\u{a66a}'),
1151 ('\u{a66c}', '\u{a66c}'),
1152 ('\u{a680}', '\u{a680}'),
1153 ('\u{a682}', '\u{a682}'),
1154 ('\u{a684}', '\u{a684}'),
1155 ('\u{a686}', '\u{a686}'),
1156 ('\u{a688}', '\u{a688}'),
1157 ('\u{a68a}', '\u{a68a}'),
1158 ('\u{a68c}', '\u{a68c}'),
1159 ('\u{a68e}', '\u{a68e}'),
1160 ('\u{a690}', '\u{a690}'),
1161 ('\u{a692}', '\u{a692}'),
1162 ('\u{a694}', '\u{a694}'),
1163 ('\u{a696}', '\u{a696}'),
1164 ('\u{a698}', '\u{a698}'),
1165 ('\u{a69a}', '\u{a69a}'),
1166 ('\u{a722}', '\u{a722}'),
1167 ('\u{a724}', '\u{a724}'),
1168 ('\u{a726}', '\u{a726}'),
1169 ('\u{a728}', '\u{a728}'),
1170 ('\u{a72a}', '\u{a72a}'),
1171 ('\u{a72c}', '\u{a72c}'),
1172 ('\u{a72e}', '\u{a72e}'),
1173 ('\u{a732}', '\u{a732}'),
1174 ('\u{a734}', '\u{a734}'),
1175 ('\u{a736}', '\u{a736}'),
1176 ('\u{a738}', '\u{a738}'),
1177 ('\u{a73a}', '\u{a73a}'),
1178 ('\u{a73c}', '\u{a73c}'),
1179 ('\u{a73e}', '\u{a73e}'),
1180 ('\u{a740}', '\u{a740}'),
1181 ('\u{a742}', '\u{a742}'),
1182 ('\u{a744}', '\u{a744}'),
1183 ('\u{a746}', '\u{a746}'),
1184 ('\u{a748}', '\u{a748}'),
1185 ('\u{a74a}', '\u{a74a}'),
1186 ('\u{a74c}', '\u{a74c}'),
1187 ('\u{a74e}', '\u{a74e}'),
1188 ('\u{a750}', '\u{a750}'),
1189 ('\u{a752}', '\u{a752}'),
1190 ('\u{a754}', '\u{a754}'),
1191 ('\u{a756}', '\u{a756}'),
1192 ('\u{a758}', '\u{a758}'),
1193 ('\u{a75a}', '\u{a75a}'),
1194 ('\u{a75c}', '\u{a75c}'),
1195 ('\u{a75e}', '\u{a75e}'),
1196 ('\u{a760}', '\u{a760}'),
1197 ('\u{a762}', '\u{a762}'),
1198 ('\u{a764}', '\u{a764}'),
1199 ('\u{a766}', '\u{a766}'),
1200 ('\u{a768}', '\u{a768}'),
1201 ('\u{a76a}', '\u{a76a}'),
1202 ('\u{a76c}', '\u{a76c}'),
1203 ('\u{a76e}', '\u{a76e}'),
1204 ('\u{a779}', '\u{a779}'),
1205 ('\u{a77b}', '\u{a77b}'),
1206 ('\u{a77d}', '\u{a77e}'),
1207 ('\u{a780}', '\u{a780}'),
1208 ('\u{a782}', '\u{a782}'),
1209 ('\u{a784}', '\u{a784}'),
1210 ('\u{a786}', '\u{a786}'),
1211 ('\u{a78b}', '\u{a78b}'),
1212 ('\u{a78d}', '\u{a78d}'),
1213 ('\u{a790}', '\u{a790}'),
1214 ('\u{a792}', '\u{a792}'),
1215 ('\u{a796}', '\u{a796}'),
1216 ('\u{a798}', '\u{a798}'),
1217 ('\u{a79a}', '\u{a79a}'),
1218 ('\u{a79c}', '\u{a79c}'),
1219 ('\u{a79e}', '\u{a79e}'),
1220 ('\u{a7a0}', '\u{a7a0}'),
1221 ('\u{a7a2}', '\u{a7a2}'),
1222 ('\u{a7a4}', '\u{a7a4}'),
1223 ('\u{a7a6}', '\u{a7a6}'),
1224 ('\u{a7a8}', '\u{a7a8}'),
1225 ('\u{a7aa}', '\u{a7ae}'),
1226 ('\u{a7b0}', '\u{a7b4}'),
1227 ('\u{a7b6}', '\u{a7b6}'),
1228 ('\u{a7b8}', '\u{a7b8}'),
1229 ('\u{a7ba}', '\u{a7ba}'),
1230 ('\u{a7bc}', '\u{a7bc}'),
1231 ('\u{a7be}', '\u{a7be}'),
1232 ('\u{a7c0}', '\u{a7c0}'),
1233 ('\u{a7c2}', '\u{a7c2}'),
1234 ('\u{a7c4}', '\u{a7c7}'),
1235 ('\u{a7c9}', '\u{a7c9}'),
1236 ('\u{a7cb}', '\u{a7cc}'),
1237 ('\u{a7d0}', '\u{a7d0}'),
1238 ('\u{a7d6}', '\u{a7d6}'),
1239 ('\u{a7d8}', '\u{a7d8}'),
1240 ('\u{a7da}', '\u{a7da}'),
1241 ('\u{a7dc}', '\u{a7dc}'),
1242 ('\u{a7f5}', '\u{a7f5}'),
1243 ('\u{ff21}', '\u{ff3a}'),
1244 ('\u{10400}', '\u{10427}'),
1245 ('\u{104b0}', '\u{104d3}'),
1246 ('\u{10570}', '\u{1057a}'),
1247 ('\u{1057c}', '\u{1058a}'),
1248 ('\u{1058c}', '\u{10592}'),
1249 ('\u{10594}', '\u{10595}'),
1250 ('\u{10c80}', '\u{10cb2}'),
1251 ('\u{10d50}', '\u{10d65}'),
1252 ('\u{118a0}', '\u{118bf}'),
1253 ('\u{16e40}', '\u{16e5f}'),
1254 ('\u{1d400}', '\u{1d419}'),
1255 ('\u{1d434}', '\u{1d44d}'),
1256 ('\u{1d468}', '\u{1d481}'),
1257 ('\u{1d49c}', '\u{1d49c}'),
1258 ('\u{1d49e}', '\u{1d49f}'),
1259 ('\u{1d4a2}', '\u{1d4a2}'),
1260 ('\u{1d4a5}', '\u{1d4a6}'),
1261 ('\u{1d4a9}', '\u{1d4ac}'),
1262 ('\u{1d4ae}', '\u{1d4b5}'),
1263 ('\u{1d4d0}', '\u{1d4e9}'),
1264 ('\u{1d504}', '\u{1d505}'),
1265 ('\u{1d507}', '\u{1d50a}'),
1266 ('\u{1d50d}', '\u{1d514}'),
1267 ('\u{1d516}', '\u{1d51c}'),
1268 ('\u{1d538}', '\u{1d539}'),
1269 ('\u{1d53b}', '\u{1d53e}'),
1270 ('\u{1d540}', '\u{1d544}'),
1271 ('\u{1d546}', '\u{1d546}'),
1272 ('\u{1d54a}', '\u{1d550}'),
1273 ('\u{1d56c}', '\u{1d585}'),
1274 ('\u{1d5a0}', '\u{1d5b9}'),
1275 ('\u{1d5d4}', '\u{1d5ed}'),
1276 ('\u{1d608}', '\u{1d621}'),
1277 ('\u{1d63c}', '\u{1d655}'),
1278 ('\u{1d670}', '\u{1d689}'),
1279 ('\u{1d6a8}', '\u{1d6c0}'),
1280 ('\u{1d6e2}', '\u{1d6fa}'),
1281 ('\u{1d71c}', '\u{1d734}'),
1282 ('\u{1d756}', '\u{1d76e}'),
1283 ('\u{1d790}', '\u{1d7a8}'),
1284 ('\u{1d7ca}', '\u{1d7ca}'),
1285 ('\u{1e900}', '\u{1e921}'),
1286];
1287
1288pub fn alternate_general_category_lu() -> ASTNode<char> {
1289 ASTNode::alternate_all(GENERAL_CATEGORY_LU.iter().copied()).unwrap()
1290}
1291
1292pub fn negate_general_category_lu() -> ASTNode<char> {
1293 ASTNode::negate_all(GENERAL_CATEGORY_LU.iter().copied()).unwrap()
1294}
1295
1296pub const GENERAL_CATEGORY_SK: &[(char, char)] = &[
1297 ('\u{5e}', '\u{5e}'),
1298 ('\u{60}', '\u{60}'),
1299 ('\u{a8}', '\u{a8}'),
1300 ('\u{af}', '\u{af}'),
1301 ('\u{b4}', '\u{b4}'),
1302 ('\u{b8}', '\u{b8}'),
1303 ('\u{2c2}', '\u{2c5}'),
1304 ('\u{2d2}', '\u{2df}'),
1305 ('\u{2e5}', '\u{2eb}'),
1306 ('\u{2ed}', '\u{2ed}'),
1307 ('\u{2ef}', '\u{2ff}'),
1308 ('\u{375}', '\u{375}'),
1309 ('\u{384}', '\u{385}'),
1310 ('\u{888}', '\u{888}'),
1311 ('\u{1fbd}', '\u{1fbd}'),
1312 ('\u{1fbf}', '\u{1fc1}'),
1313 ('\u{1fcd}', '\u{1fcf}'),
1314 ('\u{1fdd}', '\u{1fdf}'),
1315 ('\u{1fed}', '\u{1fef}'),
1316 ('\u{1ffd}', '\u{1ffe}'),
1317 ('\u{309b}', '\u{309c}'),
1318 ('\u{a700}', '\u{a716}'),
1319 ('\u{a720}', '\u{a721}'),
1320 ('\u{a789}', '\u{a78a}'),
1321 ('\u{ab5b}', '\u{ab5b}'),
1322 ('\u{ab6a}', '\u{ab6b}'),
1323 ('\u{fbb2}', '\u{fbc2}'),
1324 ('\u{ff3e}', '\u{ff3e}'),
1325 ('\u{ff40}', '\u{ff40}'),
1326 ('\u{ffe3}', '\u{ffe3}'),
1327 ('\u{1f3fb}', '\u{1f3ff}'),
1328];
1329
1330pub fn alternate_general_category_sk() -> ASTNode<char> {
1331 ASTNode::alternate_all(GENERAL_CATEGORY_SK.iter().copied()).unwrap()
1332}
1333
1334pub fn negate_general_category_sk() -> ASTNode<char> {
1335 ASTNode::negate_all(GENERAL_CATEGORY_SK.iter().copied()).unwrap()
1336}
1337
1338pub const GENERAL_CATEGORY_PC: &[(char, char)] = &[
1339 ('\u{5f}', '\u{5f}'),
1340 ('\u{203f}', '\u{2040}'),
1341 ('\u{2054}', '\u{2054}'),
1342 ('\u{fe33}', '\u{fe34}'),
1343 ('\u{fe4d}', '\u{fe4f}'),
1344 ('\u{ff3f}', '\u{ff3f}'),
1345];
1346
1347pub fn alternate_general_category_pc() -> ASTNode<char> {
1348 ASTNode::alternate_all(GENERAL_CATEGORY_PC.iter().copied()).unwrap()
1349}
1350
1351pub fn negate_general_category_pc() -> ASTNode<char> {
1352 ASTNode::negate_all(GENERAL_CATEGORY_PC.iter().copied()).unwrap()
1353}
1354
1355pub const GENERAL_CATEGORY_LL: &[(char, char)] = &[
1356 ('\u{61}', '\u{7a}'),
1357 ('\u{b5}', '\u{b5}'),
1358 ('\u{df}', '\u{f6}'),
1359 ('\u{f8}', '\u{ff}'),
1360 ('\u{101}', '\u{101}'),
1361 ('\u{103}', '\u{103}'),
1362 ('\u{105}', '\u{105}'),
1363 ('\u{107}', '\u{107}'),
1364 ('\u{109}', '\u{109}'),
1365 ('\u{10b}', '\u{10b}'),
1366 ('\u{10d}', '\u{10d}'),
1367 ('\u{10f}', '\u{10f}'),
1368 ('\u{111}', '\u{111}'),
1369 ('\u{113}', '\u{113}'),
1370 ('\u{115}', '\u{115}'),
1371 ('\u{117}', '\u{117}'),
1372 ('\u{119}', '\u{119}'),
1373 ('\u{11b}', '\u{11b}'),
1374 ('\u{11d}', '\u{11d}'),
1375 ('\u{11f}', '\u{11f}'),
1376 ('\u{121}', '\u{121}'),
1377 ('\u{123}', '\u{123}'),
1378 ('\u{125}', '\u{125}'),
1379 ('\u{127}', '\u{127}'),
1380 ('\u{129}', '\u{129}'),
1381 ('\u{12b}', '\u{12b}'),
1382 ('\u{12d}', '\u{12d}'),
1383 ('\u{12f}', '\u{12f}'),
1384 ('\u{131}', '\u{131}'),
1385 ('\u{133}', '\u{133}'),
1386 ('\u{135}', '\u{135}'),
1387 ('\u{137}', '\u{138}'),
1388 ('\u{13a}', '\u{13a}'),
1389 ('\u{13c}', '\u{13c}'),
1390 ('\u{13e}', '\u{13e}'),
1391 ('\u{140}', '\u{140}'),
1392 ('\u{142}', '\u{142}'),
1393 ('\u{144}', '\u{144}'),
1394 ('\u{146}', '\u{146}'),
1395 ('\u{148}', '\u{149}'),
1396 ('\u{14b}', '\u{14b}'),
1397 ('\u{14d}', '\u{14d}'),
1398 ('\u{14f}', '\u{14f}'),
1399 ('\u{151}', '\u{151}'),
1400 ('\u{153}', '\u{153}'),
1401 ('\u{155}', '\u{155}'),
1402 ('\u{157}', '\u{157}'),
1403 ('\u{159}', '\u{159}'),
1404 ('\u{15b}', '\u{15b}'),
1405 ('\u{15d}', '\u{15d}'),
1406 ('\u{15f}', '\u{15f}'),
1407 ('\u{161}', '\u{161}'),
1408 ('\u{163}', '\u{163}'),
1409 ('\u{165}', '\u{165}'),
1410 ('\u{167}', '\u{167}'),
1411 ('\u{169}', '\u{169}'),
1412 ('\u{16b}', '\u{16b}'),
1413 ('\u{16d}', '\u{16d}'),
1414 ('\u{16f}', '\u{16f}'),
1415 ('\u{171}', '\u{171}'),
1416 ('\u{173}', '\u{173}'),
1417 ('\u{175}', '\u{175}'),
1418 ('\u{177}', '\u{177}'),
1419 ('\u{17a}', '\u{17a}'),
1420 ('\u{17c}', '\u{17c}'),
1421 ('\u{17e}', '\u{180}'),
1422 ('\u{183}', '\u{183}'),
1423 ('\u{185}', '\u{185}'),
1424 ('\u{188}', '\u{188}'),
1425 ('\u{18c}', '\u{18d}'),
1426 ('\u{192}', '\u{192}'),
1427 ('\u{195}', '\u{195}'),
1428 ('\u{199}', '\u{19b}'),
1429 ('\u{19e}', '\u{19e}'),
1430 ('\u{1a1}', '\u{1a1}'),
1431 ('\u{1a3}', '\u{1a3}'),
1432 ('\u{1a5}', '\u{1a5}'),
1433 ('\u{1a8}', '\u{1a8}'),
1434 ('\u{1aa}', '\u{1ab}'),
1435 ('\u{1ad}', '\u{1ad}'),
1436 ('\u{1b0}', '\u{1b0}'),
1437 ('\u{1b4}', '\u{1b4}'),
1438 ('\u{1b6}', '\u{1b6}'),
1439 ('\u{1b9}', '\u{1ba}'),
1440 ('\u{1bd}', '\u{1bf}'),
1441 ('\u{1c6}', '\u{1c6}'),
1442 ('\u{1c9}', '\u{1c9}'),
1443 ('\u{1cc}', '\u{1cc}'),
1444 ('\u{1ce}', '\u{1ce}'),
1445 ('\u{1d0}', '\u{1d0}'),
1446 ('\u{1d2}', '\u{1d2}'),
1447 ('\u{1d4}', '\u{1d4}'),
1448 ('\u{1d6}', '\u{1d6}'),
1449 ('\u{1d8}', '\u{1d8}'),
1450 ('\u{1da}', '\u{1da}'),
1451 ('\u{1dc}', '\u{1dd}'),
1452 ('\u{1df}', '\u{1df}'),
1453 ('\u{1e1}', '\u{1e1}'),
1454 ('\u{1e3}', '\u{1e3}'),
1455 ('\u{1e5}', '\u{1e5}'),
1456 ('\u{1e7}', '\u{1e7}'),
1457 ('\u{1e9}', '\u{1e9}'),
1458 ('\u{1eb}', '\u{1eb}'),
1459 ('\u{1ed}', '\u{1ed}'),
1460 ('\u{1ef}', '\u{1f0}'),
1461 ('\u{1f3}', '\u{1f3}'),
1462 ('\u{1f5}', '\u{1f5}'),
1463 ('\u{1f9}', '\u{1f9}'),
1464 ('\u{1fb}', '\u{1fb}'),
1465 ('\u{1fd}', '\u{1fd}'),
1466 ('\u{1ff}', '\u{1ff}'),
1467 ('\u{201}', '\u{201}'),
1468 ('\u{203}', '\u{203}'),
1469 ('\u{205}', '\u{205}'),
1470 ('\u{207}', '\u{207}'),
1471 ('\u{209}', '\u{209}'),
1472 ('\u{20b}', '\u{20b}'),
1473 ('\u{20d}', '\u{20d}'),
1474 ('\u{20f}', '\u{20f}'),
1475 ('\u{211}', '\u{211}'),
1476 ('\u{213}', '\u{213}'),
1477 ('\u{215}', '\u{215}'),
1478 ('\u{217}', '\u{217}'),
1479 ('\u{219}', '\u{219}'),
1480 ('\u{21b}', '\u{21b}'),
1481 ('\u{21d}', '\u{21d}'),
1482 ('\u{21f}', '\u{21f}'),
1483 ('\u{221}', '\u{221}'),
1484 ('\u{223}', '\u{223}'),
1485 ('\u{225}', '\u{225}'),
1486 ('\u{227}', '\u{227}'),
1487 ('\u{229}', '\u{229}'),
1488 ('\u{22b}', '\u{22b}'),
1489 ('\u{22d}', '\u{22d}'),
1490 ('\u{22f}', '\u{22f}'),
1491 ('\u{231}', '\u{231}'),
1492 ('\u{233}', '\u{239}'),
1493 ('\u{23c}', '\u{23c}'),
1494 ('\u{23f}', '\u{240}'),
1495 ('\u{242}', '\u{242}'),
1496 ('\u{247}', '\u{247}'),
1497 ('\u{249}', '\u{249}'),
1498 ('\u{24b}', '\u{24b}'),
1499 ('\u{24d}', '\u{24d}'),
1500 ('\u{24f}', '\u{293}'),
1501 ('\u{295}', '\u{2af}'),
1502 ('\u{371}', '\u{371}'),
1503 ('\u{373}', '\u{373}'),
1504 ('\u{377}', '\u{377}'),
1505 ('\u{37b}', '\u{37d}'),
1506 ('\u{390}', '\u{390}'),
1507 ('\u{3ac}', '\u{3ce}'),
1508 ('\u{3d0}', '\u{3d1}'),
1509 ('\u{3d5}', '\u{3d7}'),
1510 ('\u{3d9}', '\u{3d9}'),
1511 ('\u{3db}', '\u{3db}'),
1512 ('\u{3dd}', '\u{3dd}'),
1513 ('\u{3df}', '\u{3df}'),
1514 ('\u{3e1}', '\u{3e1}'),
1515 ('\u{3e3}', '\u{3e3}'),
1516 ('\u{3e5}', '\u{3e5}'),
1517 ('\u{3e7}', '\u{3e7}'),
1518 ('\u{3e9}', '\u{3e9}'),
1519 ('\u{3eb}', '\u{3eb}'),
1520 ('\u{3ed}', '\u{3ed}'),
1521 ('\u{3ef}', '\u{3f3}'),
1522 ('\u{3f5}', '\u{3f5}'),
1523 ('\u{3f8}', '\u{3f8}'),
1524 ('\u{3fb}', '\u{3fc}'),
1525 ('\u{430}', '\u{45f}'),
1526 ('\u{461}', '\u{461}'),
1527 ('\u{463}', '\u{463}'),
1528 ('\u{465}', '\u{465}'),
1529 ('\u{467}', '\u{467}'),
1530 ('\u{469}', '\u{469}'),
1531 ('\u{46b}', '\u{46b}'),
1532 ('\u{46d}', '\u{46d}'),
1533 ('\u{46f}', '\u{46f}'),
1534 ('\u{471}', '\u{471}'),
1535 ('\u{473}', '\u{473}'),
1536 ('\u{475}', '\u{475}'),
1537 ('\u{477}', '\u{477}'),
1538 ('\u{479}', '\u{479}'),
1539 ('\u{47b}', '\u{47b}'),
1540 ('\u{47d}', '\u{47d}'),
1541 ('\u{47f}', '\u{47f}'),
1542 ('\u{481}', '\u{481}'),
1543 ('\u{48b}', '\u{48b}'),
1544 ('\u{48d}', '\u{48d}'),
1545 ('\u{48f}', '\u{48f}'),
1546 ('\u{491}', '\u{491}'),
1547 ('\u{493}', '\u{493}'),
1548 ('\u{495}', '\u{495}'),
1549 ('\u{497}', '\u{497}'),
1550 ('\u{499}', '\u{499}'),
1551 ('\u{49b}', '\u{49b}'),
1552 ('\u{49d}', '\u{49d}'),
1553 ('\u{49f}', '\u{49f}'),
1554 ('\u{4a1}', '\u{4a1}'),
1555 ('\u{4a3}', '\u{4a3}'),
1556 ('\u{4a5}', '\u{4a5}'),
1557 ('\u{4a7}', '\u{4a7}'),
1558 ('\u{4a9}', '\u{4a9}'),
1559 ('\u{4ab}', '\u{4ab}'),
1560 ('\u{4ad}', '\u{4ad}'),
1561 ('\u{4af}', '\u{4af}'),
1562 ('\u{4b1}', '\u{4b1}'),
1563 ('\u{4b3}', '\u{4b3}'),
1564 ('\u{4b5}', '\u{4b5}'),
1565 ('\u{4b7}', '\u{4b7}'),
1566 ('\u{4b9}', '\u{4b9}'),
1567 ('\u{4bb}', '\u{4bb}'),
1568 ('\u{4bd}', '\u{4bd}'),
1569 ('\u{4bf}', '\u{4bf}'),
1570 ('\u{4c2}', '\u{4c2}'),
1571 ('\u{4c4}', '\u{4c4}'),
1572 ('\u{4c6}', '\u{4c6}'),
1573 ('\u{4c8}', '\u{4c8}'),
1574 ('\u{4ca}', '\u{4ca}'),
1575 ('\u{4cc}', '\u{4cc}'),
1576 ('\u{4ce}', '\u{4cf}'),
1577 ('\u{4d1}', '\u{4d1}'),
1578 ('\u{4d3}', '\u{4d3}'),
1579 ('\u{4d5}', '\u{4d5}'),
1580 ('\u{4d7}', '\u{4d7}'),
1581 ('\u{4d9}', '\u{4d9}'),
1582 ('\u{4db}', '\u{4db}'),
1583 ('\u{4dd}', '\u{4dd}'),
1584 ('\u{4df}', '\u{4df}'),
1585 ('\u{4e1}', '\u{4e1}'),
1586 ('\u{4e3}', '\u{4e3}'),
1587 ('\u{4e5}', '\u{4e5}'),
1588 ('\u{4e7}', '\u{4e7}'),
1589 ('\u{4e9}', '\u{4e9}'),
1590 ('\u{4eb}', '\u{4eb}'),
1591 ('\u{4ed}', '\u{4ed}'),
1592 ('\u{4ef}', '\u{4ef}'),
1593 ('\u{4f1}', '\u{4f1}'),
1594 ('\u{4f3}', '\u{4f3}'),
1595 ('\u{4f5}', '\u{4f5}'),
1596 ('\u{4f7}', '\u{4f7}'),
1597 ('\u{4f9}', '\u{4f9}'),
1598 ('\u{4fb}', '\u{4fb}'),
1599 ('\u{4fd}', '\u{4fd}'),
1600 ('\u{4ff}', '\u{4ff}'),
1601 ('\u{501}', '\u{501}'),
1602 ('\u{503}', '\u{503}'),
1603 ('\u{505}', '\u{505}'),
1604 ('\u{507}', '\u{507}'),
1605 ('\u{509}', '\u{509}'),
1606 ('\u{50b}', '\u{50b}'),
1607 ('\u{50d}', '\u{50d}'),
1608 ('\u{50f}', '\u{50f}'),
1609 ('\u{511}', '\u{511}'),
1610 ('\u{513}', '\u{513}'),
1611 ('\u{515}', '\u{515}'),
1612 ('\u{517}', '\u{517}'),
1613 ('\u{519}', '\u{519}'),
1614 ('\u{51b}', '\u{51b}'),
1615 ('\u{51d}', '\u{51d}'),
1616 ('\u{51f}', '\u{51f}'),
1617 ('\u{521}', '\u{521}'),
1618 ('\u{523}', '\u{523}'),
1619 ('\u{525}', '\u{525}'),
1620 ('\u{527}', '\u{527}'),
1621 ('\u{529}', '\u{529}'),
1622 ('\u{52b}', '\u{52b}'),
1623 ('\u{52d}', '\u{52d}'),
1624 ('\u{52f}', '\u{52f}'),
1625 ('\u{560}', '\u{588}'),
1626 ('\u{10d0}', '\u{10fa}'),
1627 ('\u{10fd}', '\u{10ff}'),
1628 ('\u{13f8}', '\u{13fd}'),
1629 ('\u{1c80}', '\u{1c88}'),
1630 ('\u{1c8a}', '\u{1c8a}'),
1631 ('\u{1d00}', '\u{1d2b}'),
1632 ('\u{1d6b}', '\u{1d77}'),
1633 ('\u{1d79}', '\u{1d9a}'),
1634 ('\u{1e01}', '\u{1e01}'),
1635 ('\u{1e03}', '\u{1e03}'),
1636 ('\u{1e05}', '\u{1e05}'),
1637 ('\u{1e07}', '\u{1e07}'),
1638 ('\u{1e09}', '\u{1e09}'),
1639 ('\u{1e0b}', '\u{1e0b}'),
1640 ('\u{1e0d}', '\u{1e0d}'),
1641 ('\u{1e0f}', '\u{1e0f}'),
1642 ('\u{1e11}', '\u{1e11}'),
1643 ('\u{1e13}', '\u{1e13}'),
1644 ('\u{1e15}', '\u{1e15}'),
1645 ('\u{1e17}', '\u{1e17}'),
1646 ('\u{1e19}', '\u{1e19}'),
1647 ('\u{1e1b}', '\u{1e1b}'),
1648 ('\u{1e1d}', '\u{1e1d}'),
1649 ('\u{1e1f}', '\u{1e1f}'),
1650 ('\u{1e21}', '\u{1e21}'),
1651 ('\u{1e23}', '\u{1e23}'),
1652 ('\u{1e25}', '\u{1e25}'),
1653 ('\u{1e27}', '\u{1e27}'),
1654 ('\u{1e29}', '\u{1e29}'),
1655 ('\u{1e2b}', '\u{1e2b}'),
1656 ('\u{1e2d}', '\u{1e2d}'),
1657 ('\u{1e2f}', '\u{1e2f}'),
1658 ('\u{1e31}', '\u{1e31}'),
1659 ('\u{1e33}', '\u{1e33}'),
1660 ('\u{1e35}', '\u{1e35}'),
1661 ('\u{1e37}', '\u{1e37}'),
1662 ('\u{1e39}', '\u{1e39}'),
1663 ('\u{1e3b}', '\u{1e3b}'),
1664 ('\u{1e3d}', '\u{1e3d}'),
1665 ('\u{1e3f}', '\u{1e3f}'),
1666 ('\u{1e41}', '\u{1e41}'),
1667 ('\u{1e43}', '\u{1e43}'),
1668 ('\u{1e45}', '\u{1e45}'),
1669 ('\u{1e47}', '\u{1e47}'),
1670 ('\u{1e49}', '\u{1e49}'),
1671 ('\u{1e4b}', '\u{1e4b}'),
1672 ('\u{1e4d}', '\u{1e4d}'),
1673 ('\u{1e4f}', '\u{1e4f}'),
1674 ('\u{1e51}', '\u{1e51}'),
1675 ('\u{1e53}', '\u{1e53}'),
1676 ('\u{1e55}', '\u{1e55}'),
1677 ('\u{1e57}', '\u{1e57}'),
1678 ('\u{1e59}', '\u{1e59}'),
1679 ('\u{1e5b}', '\u{1e5b}'),
1680 ('\u{1e5d}', '\u{1e5d}'),
1681 ('\u{1e5f}', '\u{1e5f}'),
1682 ('\u{1e61}', '\u{1e61}'),
1683 ('\u{1e63}', '\u{1e63}'),
1684 ('\u{1e65}', '\u{1e65}'),
1685 ('\u{1e67}', '\u{1e67}'),
1686 ('\u{1e69}', '\u{1e69}'),
1687 ('\u{1e6b}', '\u{1e6b}'),
1688 ('\u{1e6d}', '\u{1e6d}'),
1689 ('\u{1e6f}', '\u{1e6f}'),
1690 ('\u{1e71}', '\u{1e71}'),
1691 ('\u{1e73}', '\u{1e73}'),
1692 ('\u{1e75}', '\u{1e75}'),
1693 ('\u{1e77}', '\u{1e77}'),
1694 ('\u{1e79}', '\u{1e79}'),
1695 ('\u{1e7b}', '\u{1e7b}'),
1696 ('\u{1e7d}', '\u{1e7d}'),
1697 ('\u{1e7f}', '\u{1e7f}'),
1698 ('\u{1e81}', '\u{1e81}'),
1699 ('\u{1e83}', '\u{1e83}'),
1700 ('\u{1e85}', '\u{1e85}'),
1701 ('\u{1e87}', '\u{1e87}'),
1702 ('\u{1e89}', '\u{1e89}'),
1703 ('\u{1e8b}', '\u{1e8b}'),
1704 ('\u{1e8d}', '\u{1e8d}'),
1705 ('\u{1e8f}', '\u{1e8f}'),
1706 ('\u{1e91}', '\u{1e91}'),
1707 ('\u{1e93}', '\u{1e93}'),
1708 ('\u{1e95}', '\u{1e9d}'),
1709 ('\u{1e9f}', '\u{1e9f}'),
1710 ('\u{1ea1}', '\u{1ea1}'),
1711 ('\u{1ea3}', '\u{1ea3}'),
1712 ('\u{1ea5}', '\u{1ea5}'),
1713 ('\u{1ea7}', '\u{1ea7}'),
1714 ('\u{1ea9}', '\u{1ea9}'),
1715 ('\u{1eab}', '\u{1eab}'),
1716 ('\u{1ead}', '\u{1ead}'),
1717 ('\u{1eaf}', '\u{1eaf}'),
1718 ('\u{1eb1}', '\u{1eb1}'),
1719 ('\u{1eb3}', '\u{1eb3}'),
1720 ('\u{1eb5}', '\u{1eb5}'),
1721 ('\u{1eb7}', '\u{1eb7}'),
1722 ('\u{1eb9}', '\u{1eb9}'),
1723 ('\u{1ebb}', '\u{1ebb}'),
1724 ('\u{1ebd}', '\u{1ebd}'),
1725 ('\u{1ebf}', '\u{1ebf}'),
1726 ('\u{1ec1}', '\u{1ec1}'),
1727 ('\u{1ec3}', '\u{1ec3}'),
1728 ('\u{1ec5}', '\u{1ec5}'),
1729 ('\u{1ec7}', '\u{1ec7}'),
1730 ('\u{1ec9}', '\u{1ec9}'),
1731 ('\u{1ecb}', '\u{1ecb}'),
1732 ('\u{1ecd}', '\u{1ecd}'),
1733 ('\u{1ecf}', '\u{1ecf}'),
1734 ('\u{1ed1}', '\u{1ed1}'),
1735 ('\u{1ed3}', '\u{1ed3}'),
1736 ('\u{1ed5}', '\u{1ed5}'),
1737 ('\u{1ed7}', '\u{1ed7}'),
1738 ('\u{1ed9}', '\u{1ed9}'),
1739 ('\u{1edb}', '\u{1edb}'),
1740 ('\u{1edd}', '\u{1edd}'),
1741 ('\u{1edf}', '\u{1edf}'),
1742 ('\u{1ee1}', '\u{1ee1}'),
1743 ('\u{1ee3}', '\u{1ee3}'),
1744 ('\u{1ee5}', '\u{1ee5}'),
1745 ('\u{1ee7}', '\u{1ee7}'),
1746 ('\u{1ee9}', '\u{1ee9}'),
1747 ('\u{1eeb}', '\u{1eeb}'),
1748 ('\u{1eed}', '\u{1eed}'),
1749 ('\u{1eef}', '\u{1eef}'),
1750 ('\u{1ef1}', '\u{1ef1}'),
1751 ('\u{1ef3}', '\u{1ef3}'),
1752 ('\u{1ef5}', '\u{1ef5}'),
1753 ('\u{1ef7}', '\u{1ef7}'),
1754 ('\u{1ef9}', '\u{1ef9}'),
1755 ('\u{1efb}', '\u{1efb}'),
1756 ('\u{1efd}', '\u{1efd}'),
1757 ('\u{1eff}', '\u{1f07}'),
1758 ('\u{1f10}', '\u{1f15}'),
1759 ('\u{1f20}', '\u{1f27}'),
1760 ('\u{1f30}', '\u{1f37}'),
1761 ('\u{1f40}', '\u{1f45}'),
1762 ('\u{1f50}', '\u{1f57}'),
1763 ('\u{1f60}', '\u{1f67}'),
1764 ('\u{1f70}', '\u{1f7d}'),
1765 ('\u{1f80}', '\u{1f87}'),
1766 ('\u{1f90}', '\u{1f97}'),
1767 ('\u{1fa0}', '\u{1fa7}'),
1768 ('\u{1fb0}', '\u{1fb4}'),
1769 ('\u{1fb6}', '\u{1fb7}'),
1770 ('\u{1fbe}', '\u{1fbe}'),
1771 ('\u{1fc2}', '\u{1fc4}'),
1772 ('\u{1fc6}', '\u{1fc7}'),
1773 ('\u{1fd0}', '\u{1fd3}'),
1774 ('\u{1fd6}', '\u{1fd7}'),
1775 ('\u{1fe0}', '\u{1fe7}'),
1776 ('\u{1ff2}', '\u{1ff4}'),
1777 ('\u{1ff6}', '\u{1ff7}'),
1778 ('\u{210a}', '\u{210a}'),
1779 ('\u{210e}', '\u{210f}'),
1780 ('\u{2113}', '\u{2113}'),
1781 ('\u{212f}', '\u{212f}'),
1782 ('\u{2134}', '\u{2134}'),
1783 ('\u{2139}', '\u{2139}'),
1784 ('\u{213c}', '\u{213d}'),
1785 ('\u{2146}', '\u{2149}'),
1786 ('\u{214e}', '\u{214e}'),
1787 ('\u{2184}', '\u{2184}'),
1788 ('\u{2c30}', '\u{2c5f}'),
1789 ('\u{2c61}', '\u{2c61}'),
1790 ('\u{2c65}', '\u{2c66}'),
1791 ('\u{2c68}', '\u{2c68}'),
1792 ('\u{2c6a}', '\u{2c6a}'),
1793 ('\u{2c6c}', '\u{2c6c}'),
1794 ('\u{2c71}', '\u{2c71}'),
1795 ('\u{2c73}', '\u{2c74}'),
1796 ('\u{2c76}', '\u{2c7b}'),
1797 ('\u{2c81}', '\u{2c81}'),
1798 ('\u{2c83}', '\u{2c83}'),
1799 ('\u{2c85}', '\u{2c85}'),
1800 ('\u{2c87}', '\u{2c87}'),
1801 ('\u{2c89}', '\u{2c89}'),
1802 ('\u{2c8b}', '\u{2c8b}'),
1803 ('\u{2c8d}', '\u{2c8d}'),
1804 ('\u{2c8f}', '\u{2c8f}'),
1805 ('\u{2c91}', '\u{2c91}'),
1806 ('\u{2c93}', '\u{2c93}'),
1807 ('\u{2c95}', '\u{2c95}'),
1808 ('\u{2c97}', '\u{2c97}'),
1809 ('\u{2c99}', '\u{2c99}'),
1810 ('\u{2c9b}', '\u{2c9b}'),
1811 ('\u{2c9d}', '\u{2c9d}'),
1812 ('\u{2c9f}', '\u{2c9f}'),
1813 ('\u{2ca1}', '\u{2ca1}'),
1814 ('\u{2ca3}', '\u{2ca3}'),
1815 ('\u{2ca5}', '\u{2ca5}'),
1816 ('\u{2ca7}', '\u{2ca7}'),
1817 ('\u{2ca9}', '\u{2ca9}'),
1818 ('\u{2cab}', '\u{2cab}'),
1819 ('\u{2cad}', '\u{2cad}'),
1820 ('\u{2caf}', '\u{2caf}'),
1821 ('\u{2cb1}', '\u{2cb1}'),
1822 ('\u{2cb3}', '\u{2cb3}'),
1823 ('\u{2cb5}', '\u{2cb5}'),
1824 ('\u{2cb7}', '\u{2cb7}'),
1825 ('\u{2cb9}', '\u{2cb9}'),
1826 ('\u{2cbb}', '\u{2cbb}'),
1827 ('\u{2cbd}', '\u{2cbd}'),
1828 ('\u{2cbf}', '\u{2cbf}'),
1829 ('\u{2cc1}', '\u{2cc1}'),
1830 ('\u{2cc3}', '\u{2cc3}'),
1831 ('\u{2cc5}', '\u{2cc5}'),
1832 ('\u{2cc7}', '\u{2cc7}'),
1833 ('\u{2cc9}', '\u{2cc9}'),
1834 ('\u{2ccb}', '\u{2ccb}'),
1835 ('\u{2ccd}', '\u{2ccd}'),
1836 ('\u{2ccf}', '\u{2ccf}'),
1837 ('\u{2cd1}', '\u{2cd1}'),
1838 ('\u{2cd3}', '\u{2cd3}'),
1839 ('\u{2cd5}', '\u{2cd5}'),
1840 ('\u{2cd7}', '\u{2cd7}'),
1841 ('\u{2cd9}', '\u{2cd9}'),
1842 ('\u{2cdb}', '\u{2cdb}'),
1843 ('\u{2cdd}', '\u{2cdd}'),
1844 ('\u{2cdf}', '\u{2cdf}'),
1845 ('\u{2ce1}', '\u{2ce1}'),
1846 ('\u{2ce3}', '\u{2ce4}'),
1847 ('\u{2cec}', '\u{2cec}'),
1848 ('\u{2cee}', '\u{2cee}'),
1849 ('\u{2cf3}', '\u{2cf3}'),
1850 ('\u{2d00}', '\u{2d25}'),
1851 ('\u{2d27}', '\u{2d27}'),
1852 ('\u{2d2d}', '\u{2d2d}'),
1853 ('\u{a641}', '\u{a641}'),
1854 ('\u{a643}', '\u{a643}'),
1855 ('\u{a645}', '\u{a645}'),
1856 ('\u{a647}', '\u{a647}'),
1857 ('\u{a649}', '\u{a649}'),
1858 ('\u{a64b}', '\u{a64b}'),
1859 ('\u{a64d}', '\u{a64d}'),
1860 ('\u{a64f}', '\u{a64f}'),
1861 ('\u{a651}', '\u{a651}'),
1862 ('\u{a653}', '\u{a653}'),
1863 ('\u{a655}', '\u{a655}'),
1864 ('\u{a657}', '\u{a657}'),
1865 ('\u{a659}', '\u{a659}'),
1866 ('\u{a65b}', '\u{a65b}'),
1867 ('\u{a65d}', '\u{a65d}'),
1868 ('\u{a65f}', '\u{a65f}'),
1869 ('\u{a661}', '\u{a661}'),
1870 ('\u{a663}', '\u{a663}'),
1871 ('\u{a665}', '\u{a665}'),
1872 ('\u{a667}', '\u{a667}'),
1873 ('\u{a669}', '\u{a669}'),
1874 ('\u{a66b}', '\u{a66b}'),
1875 ('\u{a66d}', '\u{a66d}'),
1876 ('\u{a681}', '\u{a681}'),
1877 ('\u{a683}', '\u{a683}'),
1878 ('\u{a685}', '\u{a685}'),
1879 ('\u{a687}', '\u{a687}'),
1880 ('\u{a689}', '\u{a689}'),
1881 ('\u{a68b}', '\u{a68b}'),
1882 ('\u{a68d}', '\u{a68d}'),
1883 ('\u{a68f}', '\u{a68f}'),
1884 ('\u{a691}', '\u{a691}'),
1885 ('\u{a693}', '\u{a693}'),
1886 ('\u{a695}', '\u{a695}'),
1887 ('\u{a697}', '\u{a697}'),
1888 ('\u{a699}', '\u{a699}'),
1889 ('\u{a69b}', '\u{a69b}'),
1890 ('\u{a723}', '\u{a723}'),
1891 ('\u{a725}', '\u{a725}'),
1892 ('\u{a727}', '\u{a727}'),
1893 ('\u{a729}', '\u{a729}'),
1894 ('\u{a72b}', '\u{a72b}'),
1895 ('\u{a72d}', '\u{a72d}'),
1896 ('\u{a72f}', '\u{a731}'),
1897 ('\u{a733}', '\u{a733}'),
1898 ('\u{a735}', '\u{a735}'),
1899 ('\u{a737}', '\u{a737}'),
1900 ('\u{a739}', '\u{a739}'),
1901 ('\u{a73b}', '\u{a73b}'),
1902 ('\u{a73d}', '\u{a73d}'),
1903 ('\u{a73f}', '\u{a73f}'),
1904 ('\u{a741}', '\u{a741}'),
1905 ('\u{a743}', '\u{a743}'),
1906 ('\u{a745}', '\u{a745}'),
1907 ('\u{a747}', '\u{a747}'),
1908 ('\u{a749}', '\u{a749}'),
1909 ('\u{a74b}', '\u{a74b}'),
1910 ('\u{a74d}', '\u{a74d}'),
1911 ('\u{a74f}', '\u{a74f}'),
1912 ('\u{a751}', '\u{a751}'),
1913 ('\u{a753}', '\u{a753}'),
1914 ('\u{a755}', '\u{a755}'),
1915 ('\u{a757}', '\u{a757}'),
1916 ('\u{a759}', '\u{a759}'),
1917 ('\u{a75b}', '\u{a75b}'),
1918 ('\u{a75d}', '\u{a75d}'),
1919 ('\u{a75f}', '\u{a75f}'),
1920 ('\u{a761}', '\u{a761}'),
1921 ('\u{a763}', '\u{a763}'),
1922 ('\u{a765}', '\u{a765}'),
1923 ('\u{a767}', '\u{a767}'),
1924 ('\u{a769}', '\u{a769}'),
1925 ('\u{a76b}', '\u{a76b}'),
1926 ('\u{a76d}', '\u{a76d}'),
1927 ('\u{a76f}', '\u{a76f}'),
1928 ('\u{a771}', '\u{a778}'),
1929 ('\u{a77a}', '\u{a77a}'),
1930 ('\u{a77c}', '\u{a77c}'),
1931 ('\u{a77f}', '\u{a77f}'),
1932 ('\u{a781}', '\u{a781}'),
1933 ('\u{a783}', '\u{a783}'),
1934 ('\u{a785}', '\u{a785}'),
1935 ('\u{a787}', '\u{a787}'),
1936 ('\u{a78c}', '\u{a78c}'),
1937 ('\u{a78e}', '\u{a78e}'),
1938 ('\u{a791}', '\u{a791}'),
1939 ('\u{a793}', '\u{a795}'),
1940 ('\u{a797}', '\u{a797}'),
1941 ('\u{a799}', '\u{a799}'),
1942 ('\u{a79b}', '\u{a79b}'),
1943 ('\u{a79d}', '\u{a79d}'),
1944 ('\u{a79f}', '\u{a79f}'),
1945 ('\u{a7a1}', '\u{a7a1}'),
1946 ('\u{a7a3}', '\u{a7a3}'),
1947 ('\u{a7a5}', '\u{a7a5}'),
1948 ('\u{a7a7}', '\u{a7a7}'),
1949 ('\u{a7a9}', '\u{a7a9}'),
1950 ('\u{a7af}', '\u{a7af}'),
1951 ('\u{a7b5}', '\u{a7b5}'),
1952 ('\u{a7b7}', '\u{a7b7}'),
1953 ('\u{a7b9}', '\u{a7b9}'),
1954 ('\u{a7bb}', '\u{a7bb}'),
1955 ('\u{a7bd}', '\u{a7bd}'),
1956 ('\u{a7bf}', '\u{a7bf}'),
1957 ('\u{a7c1}', '\u{a7c1}'),
1958 ('\u{a7c3}', '\u{a7c3}'),
1959 ('\u{a7c8}', '\u{a7c8}'),
1960 ('\u{a7ca}', '\u{a7ca}'),
1961 ('\u{a7cd}', '\u{a7cd}'),
1962 ('\u{a7d1}', '\u{a7d1}'),
1963 ('\u{a7d3}', '\u{a7d3}'),
1964 ('\u{a7d5}', '\u{a7d5}'),
1965 ('\u{a7d7}', '\u{a7d7}'),
1966 ('\u{a7d9}', '\u{a7d9}'),
1967 ('\u{a7db}', '\u{a7db}'),
1968 ('\u{a7f6}', '\u{a7f6}'),
1969 ('\u{a7fa}', '\u{a7fa}'),
1970 ('\u{ab30}', '\u{ab5a}'),
1971 ('\u{ab60}', '\u{ab68}'),
1972 ('\u{ab70}', '\u{abbf}'),
1973 ('\u{fb00}', '\u{fb06}'),
1974 ('\u{fb13}', '\u{fb17}'),
1975 ('\u{ff41}', '\u{ff5a}'),
1976 ('\u{10428}', '\u{1044f}'),
1977 ('\u{104d8}', '\u{104fb}'),
1978 ('\u{10597}', '\u{105a1}'),
1979 ('\u{105a3}', '\u{105b1}'),
1980 ('\u{105b3}', '\u{105b9}'),
1981 ('\u{105bb}', '\u{105bc}'),
1982 ('\u{10cc0}', '\u{10cf2}'),
1983 ('\u{10d70}', '\u{10d85}'),
1984 ('\u{118c0}', '\u{118df}'),
1985 ('\u{16e60}', '\u{16e7f}'),
1986 ('\u{1d41a}', '\u{1d433}'),
1987 ('\u{1d44e}', '\u{1d454}'),
1988 ('\u{1d456}', '\u{1d467}'),
1989 ('\u{1d482}', '\u{1d49b}'),
1990 ('\u{1d4b6}', '\u{1d4b9}'),
1991 ('\u{1d4bb}', '\u{1d4bb}'),
1992 ('\u{1d4bd}', '\u{1d4c3}'),
1993 ('\u{1d4c5}', '\u{1d4cf}'),
1994 ('\u{1d4ea}', '\u{1d503}'),
1995 ('\u{1d51e}', '\u{1d537}'),
1996 ('\u{1d552}', '\u{1d56b}'),
1997 ('\u{1d586}', '\u{1d59f}'),
1998 ('\u{1d5ba}', '\u{1d5d3}'),
1999 ('\u{1d5ee}', '\u{1d607}'),
2000 ('\u{1d622}', '\u{1d63b}'),
2001 ('\u{1d656}', '\u{1d66f}'),
2002 ('\u{1d68a}', '\u{1d6a5}'),
2003 ('\u{1d6c2}', '\u{1d6da}'),
2004 ('\u{1d6dc}', '\u{1d6e1}'),
2005 ('\u{1d6fc}', '\u{1d714}'),
2006 ('\u{1d716}', '\u{1d71b}'),
2007 ('\u{1d736}', '\u{1d74e}'),
2008 ('\u{1d750}', '\u{1d755}'),
2009 ('\u{1d770}', '\u{1d788}'),
2010 ('\u{1d78a}', '\u{1d78f}'),
2011 ('\u{1d7aa}', '\u{1d7c2}'),
2012 ('\u{1d7c4}', '\u{1d7c9}'),
2013 ('\u{1d7cb}', '\u{1d7cb}'),
2014 ('\u{1df00}', '\u{1df09}'),
2015 ('\u{1df0b}', '\u{1df1e}'),
2016 ('\u{1df25}', '\u{1df2a}'),
2017 ('\u{1e922}', '\u{1e943}'),
2018];
2019
2020pub fn alternate_general_category_ll() -> ASTNode<char> {
2021 ASTNode::alternate_all(GENERAL_CATEGORY_LL.iter().copied()).unwrap()
2022}
2023
2024pub fn negate_general_category_ll() -> ASTNode<char> {
2025 ASTNode::negate_all(GENERAL_CATEGORY_LL.iter().copied()).unwrap()
2026}
2027
2028pub const GENERAL_CATEGORY_SO: &[(char, char)] = &[
2029 ('\u{a6}', '\u{a6}'),
2030 ('\u{a9}', '\u{a9}'),
2031 ('\u{ae}', '\u{ae}'),
2032 ('\u{b0}', '\u{b0}'),
2033 ('\u{482}', '\u{482}'),
2034 ('\u{58d}', '\u{58e}'),
2035 ('\u{60e}', '\u{60f}'),
2036 ('\u{6de}', '\u{6de}'),
2037 ('\u{6e9}', '\u{6e9}'),
2038 ('\u{6fd}', '\u{6fe}'),
2039 ('\u{7f6}', '\u{7f6}'),
2040 ('\u{9fa}', '\u{9fa}'),
2041 ('\u{b70}', '\u{b70}'),
2042 ('\u{bf3}', '\u{bf8}'),
2043 ('\u{bfa}', '\u{bfa}'),
2044 ('\u{c7f}', '\u{c7f}'),
2045 ('\u{d4f}', '\u{d4f}'),
2046 ('\u{d79}', '\u{d79}'),
2047 ('\u{f01}', '\u{f03}'),
2048 ('\u{f13}', '\u{f13}'),
2049 ('\u{f15}', '\u{f17}'),
2050 ('\u{f1a}', '\u{f1f}'),
2051 ('\u{f34}', '\u{f34}'),
2052 ('\u{f36}', '\u{f36}'),
2053 ('\u{f38}', '\u{f38}'),
2054 ('\u{fbe}', '\u{fc5}'),
2055 ('\u{fc7}', '\u{fcc}'),
2056 ('\u{fce}', '\u{fcf}'),
2057 ('\u{fd5}', '\u{fd8}'),
2058 ('\u{109e}', '\u{109f}'),
2059 ('\u{1390}', '\u{1399}'),
2060 ('\u{166d}', '\u{166d}'),
2061 ('\u{1940}', '\u{1940}'),
2062 ('\u{19de}', '\u{19ff}'),
2063 ('\u{1b61}', '\u{1b6a}'),
2064 ('\u{1b74}', '\u{1b7c}'),
2065 ('\u{2100}', '\u{2101}'),
2066 ('\u{2103}', '\u{2106}'),
2067 ('\u{2108}', '\u{2109}'),
2068 ('\u{2114}', '\u{2114}'),
2069 ('\u{2116}', '\u{2117}'),
2070 ('\u{211e}', '\u{2123}'),
2071 ('\u{2125}', '\u{2125}'),
2072 ('\u{2127}', '\u{2127}'),
2073 ('\u{2129}', '\u{2129}'),
2074 ('\u{212e}', '\u{212e}'),
2075 ('\u{213a}', '\u{213b}'),
2076 ('\u{214a}', '\u{214a}'),
2077 ('\u{214c}', '\u{214d}'),
2078 ('\u{214f}', '\u{214f}'),
2079 ('\u{218a}', '\u{218b}'),
2080 ('\u{2195}', '\u{2199}'),
2081 ('\u{219c}', '\u{219f}'),
2082 ('\u{21a1}', '\u{21a2}'),
2083 ('\u{21a4}', '\u{21a5}'),
2084 ('\u{21a7}', '\u{21ad}'),
2085 ('\u{21af}', '\u{21cd}'),
2086 ('\u{21d0}', '\u{21d1}'),
2087 ('\u{21d3}', '\u{21d3}'),
2088 ('\u{21d5}', '\u{21f3}'),
2089 ('\u{2300}', '\u{2307}'),
2090 ('\u{230c}', '\u{231f}'),
2091 ('\u{2322}', '\u{2328}'),
2092 ('\u{232b}', '\u{237b}'),
2093 ('\u{237d}', '\u{239a}'),
2094 ('\u{23b4}', '\u{23db}'),
2095 ('\u{23e2}', '\u{2429}'),
2096 ('\u{2440}', '\u{244a}'),
2097 ('\u{249c}', '\u{24e9}'),
2098 ('\u{2500}', '\u{25b6}'),
2099 ('\u{25b8}', '\u{25c0}'),
2100 ('\u{25c2}', '\u{25f7}'),
2101 ('\u{2600}', '\u{266e}'),
2102 ('\u{2670}', '\u{2767}'),
2103 ('\u{2794}', '\u{27bf}'),
2104 ('\u{2800}', '\u{28ff}'),
2105 ('\u{2b00}', '\u{2b2f}'),
2106 ('\u{2b45}', '\u{2b46}'),
2107 ('\u{2b4d}', '\u{2b73}'),
2108 ('\u{2b76}', '\u{2b95}'),
2109 ('\u{2b97}', '\u{2bff}'),
2110 ('\u{2ce5}', '\u{2cea}'),
2111 ('\u{2e50}', '\u{2e51}'),
2112 ('\u{2e80}', '\u{2e99}'),
2113 ('\u{2e9b}', '\u{2ef3}'),
2114 ('\u{2f00}', '\u{2fd5}'),
2115 ('\u{2ff0}', '\u{2fff}'),
2116 ('\u{3004}', '\u{3004}'),
2117 ('\u{3012}', '\u{3013}'),
2118 ('\u{3020}', '\u{3020}'),
2119 ('\u{3036}', '\u{3037}'),
2120 ('\u{303e}', '\u{303f}'),
2121 ('\u{3190}', '\u{3191}'),
2122 ('\u{3196}', '\u{319f}'),
2123 ('\u{31c0}', '\u{31e5}'),
2124 ('\u{31ef}', '\u{31ef}'),
2125 ('\u{3200}', '\u{321e}'),
2126 ('\u{322a}', '\u{3247}'),
2127 ('\u{3250}', '\u{3250}'),
2128 ('\u{3260}', '\u{327f}'),
2129 ('\u{328a}', '\u{32b0}'),
2130 ('\u{32c0}', '\u{33ff}'),
2131 ('\u{4dc0}', '\u{4dff}'),
2132 ('\u{a490}', '\u{a4c6}'),
2133 ('\u{a828}', '\u{a82b}'),
2134 ('\u{a836}', '\u{a837}'),
2135 ('\u{a839}', '\u{a839}'),
2136 ('\u{aa77}', '\u{aa79}'),
2137 ('\u{fd40}', '\u{fd4f}'),
2138 ('\u{fdcf}', '\u{fdcf}'),
2139 ('\u{fdfd}', '\u{fdff}'),
2140 ('\u{ffe4}', '\u{ffe4}'),
2141 ('\u{ffe8}', '\u{ffe8}'),
2142 ('\u{ffed}', '\u{ffee}'),
2143 ('\u{fffc}', '\u{fffd}'),
2144 ('\u{10137}', '\u{1013f}'),
2145 ('\u{10179}', '\u{10189}'),
2146 ('\u{1018c}', '\u{1018e}'),
2147 ('\u{10190}', '\u{1019c}'),
2148 ('\u{101a0}', '\u{101a0}'),
2149 ('\u{101d0}', '\u{101fc}'),
2150 ('\u{10877}', '\u{10878}'),
2151 ('\u{10ac8}', '\u{10ac8}'),
2152 ('\u{1173f}', '\u{1173f}'),
2153 ('\u{11fd5}', '\u{11fdc}'),
2154 ('\u{11fe1}', '\u{11ff1}'),
2155 ('\u{16b3c}', '\u{16b3f}'),
2156 ('\u{16b45}', '\u{16b45}'),
2157 ('\u{1bc9c}', '\u{1bc9c}'),
2158 ('\u{1cc00}', '\u{1ccef}'),
2159 ('\u{1cd00}', '\u{1ceb3}'),
2160 ('\u{1cf50}', '\u{1cfc3}'),
2161 ('\u{1d000}', '\u{1d0f5}'),
2162 ('\u{1d100}', '\u{1d126}'),
2163 ('\u{1d129}', '\u{1d164}'),
2164 ('\u{1d16a}', '\u{1d16c}'),
2165 ('\u{1d183}', '\u{1d184}'),
2166 ('\u{1d18c}', '\u{1d1a9}'),
2167 ('\u{1d1ae}', '\u{1d1ea}'),
2168 ('\u{1d200}', '\u{1d241}'),
2169 ('\u{1d245}', '\u{1d245}'),
2170 ('\u{1d300}', '\u{1d356}'),
2171 ('\u{1d800}', '\u{1d9ff}'),
2172 ('\u{1da37}', '\u{1da3a}'),
2173 ('\u{1da6d}', '\u{1da74}'),
2174 ('\u{1da76}', '\u{1da83}'),
2175 ('\u{1da85}', '\u{1da86}'),
2176 ('\u{1e14f}', '\u{1e14f}'),
2177 ('\u{1ecac}', '\u{1ecac}'),
2178 ('\u{1ed2e}', '\u{1ed2e}'),
2179 ('\u{1f000}', '\u{1f02b}'),
2180 ('\u{1f030}', '\u{1f093}'),
2181 ('\u{1f0a0}', '\u{1f0ae}'),
2182 ('\u{1f0b1}', '\u{1f0bf}'),
2183 ('\u{1f0c1}', '\u{1f0cf}'),
2184 ('\u{1f0d1}', '\u{1f0f5}'),
2185 ('\u{1f10d}', '\u{1f1ad}'),
2186 ('\u{1f1e6}', '\u{1f202}'),
2187 ('\u{1f210}', '\u{1f23b}'),
2188 ('\u{1f240}', '\u{1f248}'),
2189 ('\u{1f250}', '\u{1f251}'),
2190 ('\u{1f260}', '\u{1f265}'),
2191 ('\u{1f300}', '\u{1f3fa}'),
2192 ('\u{1f400}', '\u{1f6d7}'),
2193 ('\u{1f6dc}', '\u{1f6ec}'),
2194 ('\u{1f6f0}', '\u{1f6fc}'),
2195 ('\u{1f700}', '\u{1f776}'),
2196 ('\u{1f77b}', '\u{1f7d9}'),
2197 ('\u{1f7e0}', '\u{1f7eb}'),
2198 ('\u{1f7f0}', '\u{1f7f0}'),
2199 ('\u{1f800}', '\u{1f80b}'),
2200 ('\u{1f810}', '\u{1f847}'),
2201 ('\u{1f850}', '\u{1f859}'),
2202 ('\u{1f860}', '\u{1f887}'),
2203 ('\u{1f890}', '\u{1f8ad}'),
2204 ('\u{1f8b0}', '\u{1f8bb}'),
2205 ('\u{1f8c0}', '\u{1f8c1}'),
2206 ('\u{1f900}', '\u{1fa53}'),
2207 ('\u{1fa60}', '\u{1fa6d}'),
2208 ('\u{1fa70}', '\u{1fa7c}'),
2209 ('\u{1fa80}', '\u{1fa89}'),
2210 ('\u{1fa8f}', '\u{1fac6}'),
2211 ('\u{1face}', '\u{1fadc}'),
2212 ('\u{1fadf}', '\u{1fae9}'),
2213 ('\u{1faf0}', '\u{1faf8}'),
2214 ('\u{1fb00}', '\u{1fb92}'),
2215 ('\u{1fb94}', '\u{1fbef}'),
2216];
2217
2218pub fn alternate_general_category_so() -> ASTNode<char> {
2219 ASTNode::alternate_all(GENERAL_CATEGORY_SO.iter().copied()).unwrap()
2220}
2221
2222pub fn negate_general_category_so() -> ASTNode<char> {
2223 ASTNode::negate_all(GENERAL_CATEGORY_SO.iter().copied()).unwrap()
2224}
2225
2226pub const GENERAL_CATEGORY_LO: &[(char, char)] = &[
2227 ('\u{aa}', '\u{aa}'),
2228 ('\u{ba}', '\u{ba}'),
2229 ('\u{1bb}', '\u{1bb}'),
2230 ('\u{1c0}', '\u{1c3}'),
2231 ('\u{294}', '\u{294}'),
2232 ('\u{5d0}', '\u{5ea}'),
2233 ('\u{5ef}', '\u{5f2}'),
2234 ('\u{620}', '\u{63f}'),
2235 ('\u{641}', '\u{64a}'),
2236 ('\u{66e}', '\u{66f}'),
2237 ('\u{671}', '\u{6d3}'),
2238 ('\u{6d5}', '\u{6d5}'),
2239 ('\u{6ee}', '\u{6ef}'),
2240 ('\u{6fa}', '\u{6fc}'),
2241 ('\u{6ff}', '\u{6ff}'),
2242 ('\u{710}', '\u{710}'),
2243 ('\u{712}', '\u{72f}'),
2244 ('\u{74d}', '\u{7a5}'),
2245 ('\u{7b1}', '\u{7b1}'),
2246 ('\u{7ca}', '\u{7ea}'),
2247 ('\u{800}', '\u{815}'),
2248 ('\u{840}', '\u{858}'),
2249 ('\u{860}', '\u{86a}'),
2250 ('\u{870}', '\u{887}'),
2251 ('\u{889}', '\u{88e}'),
2252 ('\u{8a0}', '\u{8c8}'),
2253 ('\u{904}', '\u{939}'),
2254 ('\u{93d}', '\u{93d}'),
2255 ('\u{950}', '\u{950}'),
2256 ('\u{958}', '\u{961}'),
2257 ('\u{972}', '\u{980}'),
2258 ('\u{985}', '\u{98c}'),
2259 ('\u{98f}', '\u{990}'),
2260 ('\u{993}', '\u{9a8}'),
2261 ('\u{9aa}', '\u{9b0}'),
2262 ('\u{9b2}', '\u{9b2}'),
2263 ('\u{9b6}', '\u{9b9}'),
2264 ('\u{9bd}', '\u{9bd}'),
2265 ('\u{9ce}', '\u{9ce}'),
2266 ('\u{9dc}', '\u{9dd}'),
2267 ('\u{9df}', '\u{9e1}'),
2268 ('\u{9f0}', '\u{9f1}'),
2269 ('\u{9fc}', '\u{9fc}'),
2270 ('\u{a05}', '\u{a0a}'),
2271 ('\u{a0f}', '\u{a10}'),
2272 ('\u{a13}', '\u{a28}'),
2273 ('\u{a2a}', '\u{a30}'),
2274 ('\u{a32}', '\u{a33}'),
2275 ('\u{a35}', '\u{a36}'),
2276 ('\u{a38}', '\u{a39}'),
2277 ('\u{a59}', '\u{a5c}'),
2278 ('\u{a5e}', '\u{a5e}'),
2279 ('\u{a72}', '\u{a74}'),
2280 ('\u{a85}', '\u{a8d}'),
2281 ('\u{a8f}', '\u{a91}'),
2282 ('\u{a93}', '\u{aa8}'),
2283 ('\u{aaa}', '\u{ab0}'),
2284 ('\u{ab2}', '\u{ab3}'),
2285 ('\u{ab5}', '\u{ab9}'),
2286 ('\u{abd}', '\u{abd}'),
2287 ('\u{ad0}', '\u{ad0}'),
2288 ('\u{ae0}', '\u{ae1}'),
2289 ('\u{af9}', '\u{af9}'),
2290 ('\u{b05}', '\u{b0c}'),
2291 ('\u{b0f}', '\u{b10}'),
2292 ('\u{b13}', '\u{b28}'),
2293 ('\u{b2a}', '\u{b30}'),
2294 ('\u{b32}', '\u{b33}'),
2295 ('\u{b35}', '\u{b39}'),
2296 ('\u{b3d}', '\u{b3d}'),
2297 ('\u{b5c}', '\u{b5d}'),
2298 ('\u{b5f}', '\u{b61}'),
2299 ('\u{b71}', '\u{b71}'),
2300 ('\u{b83}', '\u{b83}'),
2301 ('\u{b85}', '\u{b8a}'),
2302 ('\u{b8e}', '\u{b90}'),
2303 ('\u{b92}', '\u{b95}'),
2304 ('\u{b99}', '\u{b9a}'),
2305 ('\u{b9c}', '\u{b9c}'),
2306 ('\u{b9e}', '\u{b9f}'),
2307 ('\u{ba3}', '\u{ba4}'),
2308 ('\u{ba8}', '\u{baa}'),
2309 ('\u{bae}', '\u{bb9}'),
2310 ('\u{bd0}', '\u{bd0}'),
2311 ('\u{c05}', '\u{c0c}'),
2312 ('\u{c0e}', '\u{c10}'),
2313 ('\u{c12}', '\u{c28}'),
2314 ('\u{c2a}', '\u{c39}'),
2315 ('\u{c3d}', '\u{c3d}'),
2316 ('\u{c58}', '\u{c5a}'),
2317 ('\u{c5d}', '\u{c5d}'),
2318 ('\u{c60}', '\u{c61}'),
2319 ('\u{c80}', '\u{c80}'),
2320 ('\u{c85}', '\u{c8c}'),
2321 ('\u{c8e}', '\u{c90}'),
2322 ('\u{c92}', '\u{ca8}'),
2323 ('\u{caa}', '\u{cb3}'),
2324 ('\u{cb5}', '\u{cb9}'),
2325 ('\u{cbd}', '\u{cbd}'),
2326 ('\u{cdd}', '\u{cde}'),
2327 ('\u{ce0}', '\u{ce1}'),
2328 ('\u{cf1}', '\u{cf2}'),
2329 ('\u{d04}', '\u{d0c}'),
2330 ('\u{d0e}', '\u{d10}'),
2331 ('\u{d12}', '\u{d3a}'),
2332 ('\u{d3d}', '\u{d3d}'),
2333 ('\u{d4e}', '\u{d4e}'),
2334 ('\u{d54}', '\u{d56}'),
2335 ('\u{d5f}', '\u{d61}'),
2336 ('\u{d7a}', '\u{d7f}'),
2337 ('\u{d85}', '\u{d96}'),
2338 ('\u{d9a}', '\u{db1}'),
2339 ('\u{db3}', '\u{dbb}'),
2340 ('\u{dbd}', '\u{dbd}'),
2341 ('\u{dc0}', '\u{dc6}'),
2342 ('\u{e01}', '\u{e30}'),
2343 ('\u{e32}', '\u{e33}'),
2344 ('\u{e40}', '\u{e45}'),
2345 ('\u{e81}', '\u{e82}'),
2346 ('\u{e84}', '\u{e84}'),
2347 ('\u{e86}', '\u{e8a}'),
2348 ('\u{e8c}', '\u{ea3}'),
2349 ('\u{ea5}', '\u{ea5}'),
2350 ('\u{ea7}', '\u{eb0}'),
2351 ('\u{eb2}', '\u{eb3}'),
2352 ('\u{ebd}', '\u{ebd}'),
2353 ('\u{ec0}', '\u{ec4}'),
2354 ('\u{edc}', '\u{edf}'),
2355 ('\u{f00}', '\u{f00}'),
2356 ('\u{f40}', '\u{f47}'),
2357 ('\u{f49}', '\u{f6c}'),
2358 ('\u{f88}', '\u{f8c}'),
2359 ('\u{1000}', '\u{102a}'),
2360 ('\u{103f}', '\u{103f}'),
2361 ('\u{1050}', '\u{1055}'),
2362 ('\u{105a}', '\u{105d}'),
2363 ('\u{1061}', '\u{1061}'),
2364 ('\u{1065}', '\u{1066}'),
2365 ('\u{106e}', '\u{1070}'),
2366 ('\u{1075}', '\u{1081}'),
2367 ('\u{108e}', '\u{108e}'),
2368 ('\u{1100}', '\u{1248}'),
2369 ('\u{124a}', '\u{124d}'),
2370 ('\u{1250}', '\u{1256}'),
2371 ('\u{1258}', '\u{1258}'),
2372 ('\u{125a}', '\u{125d}'),
2373 ('\u{1260}', '\u{1288}'),
2374 ('\u{128a}', '\u{128d}'),
2375 ('\u{1290}', '\u{12b0}'),
2376 ('\u{12b2}', '\u{12b5}'),
2377 ('\u{12b8}', '\u{12be}'),
2378 ('\u{12c0}', '\u{12c0}'),
2379 ('\u{12c2}', '\u{12c5}'),
2380 ('\u{12c8}', '\u{12d6}'),
2381 ('\u{12d8}', '\u{1310}'),
2382 ('\u{1312}', '\u{1315}'),
2383 ('\u{1318}', '\u{135a}'),
2384 ('\u{1380}', '\u{138f}'),
2385 ('\u{1401}', '\u{166c}'),
2386 ('\u{166f}', '\u{167f}'),
2387 ('\u{1681}', '\u{169a}'),
2388 ('\u{16a0}', '\u{16ea}'),
2389 ('\u{16f1}', '\u{16f8}'),
2390 ('\u{1700}', '\u{1711}'),
2391 ('\u{171f}', '\u{1731}'),
2392 ('\u{1740}', '\u{1751}'),
2393 ('\u{1760}', '\u{176c}'),
2394 ('\u{176e}', '\u{1770}'),
2395 ('\u{1780}', '\u{17b3}'),
2396 ('\u{17dc}', '\u{17dc}'),
2397 ('\u{1820}', '\u{1842}'),
2398 ('\u{1844}', '\u{1878}'),
2399 ('\u{1880}', '\u{1884}'),
2400 ('\u{1887}', '\u{18a8}'),
2401 ('\u{18aa}', '\u{18aa}'),
2402 ('\u{18b0}', '\u{18f5}'),
2403 ('\u{1900}', '\u{191e}'),
2404 ('\u{1950}', '\u{196d}'),
2405 ('\u{1970}', '\u{1974}'),
2406 ('\u{1980}', '\u{19ab}'),
2407 ('\u{19b0}', '\u{19c9}'),
2408 ('\u{1a00}', '\u{1a16}'),
2409 ('\u{1a20}', '\u{1a54}'),
2410 ('\u{1b05}', '\u{1b33}'),
2411 ('\u{1b45}', '\u{1b4c}'),
2412 ('\u{1b83}', '\u{1ba0}'),
2413 ('\u{1bae}', '\u{1baf}'),
2414 ('\u{1bba}', '\u{1be5}'),
2415 ('\u{1c00}', '\u{1c23}'),
2416 ('\u{1c4d}', '\u{1c4f}'),
2417 ('\u{1c5a}', '\u{1c77}'),
2418 ('\u{1ce9}', '\u{1cec}'),
2419 ('\u{1cee}', '\u{1cf3}'),
2420 ('\u{1cf5}', '\u{1cf6}'),
2421 ('\u{1cfa}', '\u{1cfa}'),
2422 ('\u{2135}', '\u{2138}'),
2423 ('\u{2d30}', '\u{2d67}'),
2424 ('\u{2d80}', '\u{2d96}'),
2425 ('\u{2da0}', '\u{2da6}'),
2426 ('\u{2da8}', '\u{2dae}'),
2427 ('\u{2db0}', '\u{2db6}'),
2428 ('\u{2db8}', '\u{2dbe}'),
2429 ('\u{2dc0}', '\u{2dc6}'),
2430 ('\u{2dc8}', '\u{2dce}'),
2431 ('\u{2dd0}', '\u{2dd6}'),
2432 ('\u{2dd8}', '\u{2dde}'),
2433 ('\u{3006}', '\u{3006}'),
2434 ('\u{303c}', '\u{303c}'),
2435 ('\u{3041}', '\u{3096}'),
2436 ('\u{309f}', '\u{309f}'),
2437 ('\u{30a1}', '\u{30fa}'),
2438 ('\u{30ff}', '\u{30ff}'),
2439 ('\u{3105}', '\u{312f}'),
2440 ('\u{3131}', '\u{318e}'),
2441 ('\u{31a0}', '\u{31bf}'),
2442 ('\u{31f0}', '\u{31ff}'),
2443 ('\u{3400}', '\u{3400}'),
2444 ('\u{4dbf}', '\u{4dbf}'),
2445 ('\u{4e00}', '\u{4e00}'),
2446 ('\u{9fff}', '\u{a014}'),
2447 ('\u{a016}', '\u{a48c}'),
2448 ('\u{a4d0}', '\u{a4f7}'),
2449 ('\u{a500}', '\u{a60b}'),
2450 ('\u{a610}', '\u{a61f}'),
2451 ('\u{a62a}', '\u{a62b}'),
2452 ('\u{a66e}', '\u{a66e}'),
2453 ('\u{a6a0}', '\u{a6e5}'),
2454 ('\u{a78f}', '\u{a78f}'),
2455 ('\u{a7f7}', '\u{a7f7}'),
2456 ('\u{a7fb}', '\u{a801}'),
2457 ('\u{a803}', '\u{a805}'),
2458 ('\u{a807}', '\u{a80a}'),
2459 ('\u{a80c}', '\u{a822}'),
2460 ('\u{a840}', '\u{a873}'),
2461 ('\u{a882}', '\u{a8b3}'),
2462 ('\u{a8f2}', '\u{a8f7}'),
2463 ('\u{a8fb}', '\u{a8fb}'),
2464 ('\u{a8fd}', '\u{a8fe}'),
2465 ('\u{a90a}', '\u{a925}'),
2466 ('\u{a930}', '\u{a946}'),
2467 ('\u{a960}', '\u{a97c}'),
2468 ('\u{a984}', '\u{a9b2}'),
2469 ('\u{a9e0}', '\u{a9e4}'),
2470 ('\u{a9e7}', '\u{a9ef}'),
2471 ('\u{a9fa}', '\u{a9fe}'),
2472 ('\u{aa00}', '\u{aa28}'),
2473 ('\u{aa40}', '\u{aa42}'),
2474 ('\u{aa44}', '\u{aa4b}'),
2475 ('\u{aa60}', '\u{aa6f}'),
2476 ('\u{aa71}', '\u{aa76}'),
2477 ('\u{aa7a}', '\u{aa7a}'),
2478 ('\u{aa7e}', '\u{aaaf}'),
2479 ('\u{aab1}', '\u{aab1}'),
2480 ('\u{aab5}', '\u{aab6}'),
2481 ('\u{aab9}', '\u{aabd}'),
2482 ('\u{aac0}', '\u{aac0}'),
2483 ('\u{aac2}', '\u{aac2}'),
2484 ('\u{aadb}', '\u{aadc}'),
2485 ('\u{aae0}', '\u{aaea}'),
2486 ('\u{aaf2}', '\u{aaf2}'),
2487 ('\u{ab01}', '\u{ab06}'),
2488 ('\u{ab09}', '\u{ab0e}'),
2489 ('\u{ab11}', '\u{ab16}'),
2490 ('\u{ab20}', '\u{ab26}'),
2491 ('\u{ab28}', '\u{ab2e}'),
2492 ('\u{abc0}', '\u{abe2}'),
2493 ('\u{ac00}', '\u{ac00}'),
2494 ('\u{d7a3}', '\u{d7a3}'),
2495 ('\u{d7b0}', '\u{d7c6}'),
2496 ('\u{d7cb}', '\u{d7fb}'),
2497 ('\u{f900}', '\u{fa6d}'),
2498 ('\u{fa70}', '\u{fad9}'),
2499 ('\u{fb1d}', '\u{fb1d}'),
2500 ('\u{fb1f}', '\u{fb28}'),
2501 ('\u{fb2a}', '\u{fb36}'),
2502 ('\u{fb38}', '\u{fb3c}'),
2503 ('\u{fb3e}', '\u{fb3e}'),
2504 ('\u{fb40}', '\u{fb41}'),
2505 ('\u{fb43}', '\u{fb44}'),
2506 ('\u{fb46}', '\u{fbb1}'),
2507 ('\u{fbd3}', '\u{fd3d}'),
2508 ('\u{fd50}', '\u{fd8f}'),
2509 ('\u{fd92}', '\u{fdc7}'),
2510 ('\u{fdf0}', '\u{fdfb}'),
2511 ('\u{fe70}', '\u{fe74}'),
2512 ('\u{fe76}', '\u{fefc}'),
2513 ('\u{ff66}', '\u{ff6f}'),
2514 ('\u{ff71}', '\u{ff9d}'),
2515 ('\u{ffa0}', '\u{ffbe}'),
2516 ('\u{ffc2}', '\u{ffc7}'),
2517 ('\u{ffca}', '\u{ffcf}'),
2518 ('\u{ffd2}', '\u{ffd7}'),
2519 ('\u{ffda}', '\u{ffdc}'),
2520 ('\u{10000}', '\u{1000b}'),
2521 ('\u{1000d}', '\u{10026}'),
2522 ('\u{10028}', '\u{1003a}'),
2523 ('\u{1003c}', '\u{1003d}'),
2524 ('\u{1003f}', '\u{1004d}'),
2525 ('\u{10050}', '\u{1005d}'),
2526 ('\u{10080}', '\u{100fa}'),
2527 ('\u{10280}', '\u{1029c}'),
2528 ('\u{102a0}', '\u{102d0}'),
2529 ('\u{10300}', '\u{1031f}'),
2530 ('\u{1032d}', '\u{10340}'),
2531 ('\u{10342}', '\u{10349}'),
2532 ('\u{10350}', '\u{10375}'),
2533 ('\u{10380}', '\u{1039d}'),
2534 ('\u{103a0}', '\u{103c3}'),
2535 ('\u{103c8}', '\u{103cf}'),
2536 ('\u{10450}', '\u{1049d}'),
2537 ('\u{10500}', '\u{10527}'),
2538 ('\u{10530}', '\u{10563}'),
2539 ('\u{105c0}', '\u{105f3}'),
2540 ('\u{10600}', '\u{10736}'),
2541 ('\u{10740}', '\u{10755}'),
2542 ('\u{10760}', '\u{10767}'),
2543 ('\u{10800}', '\u{10805}'),
2544 ('\u{10808}', '\u{10808}'),
2545 ('\u{1080a}', '\u{10835}'),
2546 ('\u{10837}', '\u{10838}'),
2547 ('\u{1083c}', '\u{1083c}'),
2548 ('\u{1083f}', '\u{10855}'),
2549 ('\u{10860}', '\u{10876}'),
2550 ('\u{10880}', '\u{1089e}'),
2551 ('\u{108e0}', '\u{108f2}'),
2552 ('\u{108f4}', '\u{108f5}'),
2553 ('\u{10900}', '\u{10915}'),
2554 ('\u{10920}', '\u{10939}'),
2555 ('\u{10980}', '\u{109b7}'),
2556 ('\u{109be}', '\u{109bf}'),
2557 ('\u{10a00}', '\u{10a00}'),
2558 ('\u{10a10}', '\u{10a13}'),
2559 ('\u{10a15}', '\u{10a17}'),
2560 ('\u{10a19}', '\u{10a35}'),
2561 ('\u{10a60}', '\u{10a7c}'),
2562 ('\u{10a80}', '\u{10a9c}'),
2563 ('\u{10ac0}', '\u{10ac7}'),
2564 ('\u{10ac9}', '\u{10ae4}'),
2565 ('\u{10b00}', '\u{10b35}'),
2566 ('\u{10b40}', '\u{10b55}'),
2567 ('\u{10b60}', '\u{10b72}'),
2568 ('\u{10b80}', '\u{10b91}'),
2569 ('\u{10c00}', '\u{10c48}'),
2570 ('\u{10d00}', '\u{10d23}'),
2571 ('\u{10d4a}', '\u{10d4d}'),
2572 ('\u{10d4f}', '\u{10d4f}'),
2573 ('\u{10e80}', '\u{10ea9}'),
2574 ('\u{10eb0}', '\u{10eb1}'),
2575 ('\u{10ec2}', '\u{10ec4}'),
2576 ('\u{10f00}', '\u{10f1c}'),
2577 ('\u{10f27}', '\u{10f27}'),
2578 ('\u{10f30}', '\u{10f45}'),
2579 ('\u{10f70}', '\u{10f81}'),
2580 ('\u{10fb0}', '\u{10fc4}'),
2581 ('\u{10fe0}', '\u{10ff6}'),
2582 ('\u{11003}', '\u{11037}'),
2583 ('\u{11071}', '\u{11072}'),
2584 ('\u{11075}', '\u{11075}'),
2585 ('\u{11083}', '\u{110af}'),
2586 ('\u{110d0}', '\u{110e8}'),
2587 ('\u{11103}', '\u{11126}'),
2588 ('\u{11144}', '\u{11144}'),
2589 ('\u{11147}', '\u{11147}'),
2590 ('\u{11150}', '\u{11172}'),
2591 ('\u{11176}', '\u{11176}'),
2592 ('\u{11183}', '\u{111b2}'),
2593 ('\u{111c1}', '\u{111c4}'),
2594 ('\u{111da}', '\u{111da}'),
2595 ('\u{111dc}', '\u{111dc}'),
2596 ('\u{11200}', '\u{11211}'),
2597 ('\u{11213}', '\u{1122b}'),
2598 ('\u{1123f}', '\u{11240}'),
2599 ('\u{11280}', '\u{11286}'),
2600 ('\u{11288}', '\u{11288}'),
2601 ('\u{1128a}', '\u{1128d}'),
2602 ('\u{1128f}', '\u{1129d}'),
2603 ('\u{1129f}', '\u{112a8}'),
2604 ('\u{112b0}', '\u{112de}'),
2605 ('\u{11305}', '\u{1130c}'),
2606 ('\u{1130f}', '\u{11310}'),
2607 ('\u{11313}', '\u{11328}'),
2608 ('\u{1132a}', '\u{11330}'),
2609 ('\u{11332}', '\u{11333}'),
2610 ('\u{11335}', '\u{11339}'),
2611 ('\u{1133d}', '\u{1133d}'),
2612 ('\u{11350}', '\u{11350}'),
2613 ('\u{1135d}', '\u{11361}'),
2614 ('\u{11380}', '\u{11389}'),
2615 ('\u{1138b}', '\u{1138b}'),
2616 ('\u{1138e}', '\u{1138e}'),
2617 ('\u{11390}', '\u{113b5}'),
2618 ('\u{113b7}', '\u{113b7}'),
2619 ('\u{113d1}', '\u{113d1}'),
2620 ('\u{113d3}', '\u{113d3}'),
2621 ('\u{11400}', '\u{11434}'),
2622 ('\u{11447}', '\u{1144a}'),
2623 ('\u{1145f}', '\u{11461}'),
2624 ('\u{11480}', '\u{114af}'),
2625 ('\u{114c4}', '\u{114c5}'),
2626 ('\u{114c7}', '\u{114c7}'),
2627 ('\u{11580}', '\u{115ae}'),
2628 ('\u{115d8}', '\u{115db}'),
2629 ('\u{11600}', '\u{1162f}'),
2630 ('\u{11644}', '\u{11644}'),
2631 ('\u{11680}', '\u{116aa}'),
2632 ('\u{116b8}', '\u{116b8}'),
2633 ('\u{11700}', '\u{1171a}'),
2634 ('\u{11740}', '\u{11746}'),
2635 ('\u{11800}', '\u{1182b}'),
2636 ('\u{118ff}', '\u{11906}'),
2637 ('\u{11909}', '\u{11909}'),
2638 ('\u{1190c}', '\u{11913}'),
2639 ('\u{11915}', '\u{11916}'),
2640 ('\u{11918}', '\u{1192f}'),
2641 ('\u{1193f}', '\u{1193f}'),
2642 ('\u{11941}', '\u{11941}'),
2643 ('\u{119a0}', '\u{119a7}'),
2644 ('\u{119aa}', '\u{119d0}'),
2645 ('\u{119e1}', '\u{119e1}'),
2646 ('\u{119e3}', '\u{119e3}'),
2647 ('\u{11a00}', '\u{11a00}'),
2648 ('\u{11a0b}', '\u{11a32}'),
2649 ('\u{11a3a}', '\u{11a3a}'),
2650 ('\u{11a50}', '\u{11a50}'),
2651 ('\u{11a5c}', '\u{11a89}'),
2652 ('\u{11a9d}', '\u{11a9d}'),
2653 ('\u{11ab0}', '\u{11af8}'),
2654 ('\u{11bc0}', '\u{11be0}'),
2655 ('\u{11c00}', '\u{11c08}'),
2656 ('\u{11c0a}', '\u{11c2e}'),
2657 ('\u{11c40}', '\u{11c40}'),
2658 ('\u{11c72}', '\u{11c8f}'),
2659 ('\u{11d00}', '\u{11d06}'),
2660 ('\u{11d08}', '\u{11d09}'),
2661 ('\u{11d0b}', '\u{11d30}'),
2662 ('\u{11d46}', '\u{11d46}'),
2663 ('\u{11d60}', '\u{11d65}'),
2664 ('\u{11d67}', '\u{11d68}'),
2665 ('\u{11d6a}', '\u{11d89}'),
2666 ('\u{11d98}', '\u{11d98}'),
2667 ('\u{11ee0}', '\u{11ef2}'),
2668 ('\u{11f02}', '\u{11f02}'),
2669 ('\u{11f04}', '\u{11f10}'),
2670 ('\u{11f12}', '\u{11f33}'),
2671 ('\u{11fb0}', '\u{11fb0}'),
2672 ('\u{12000}', '\u{12399}'),
2673 ('\u{12480}', '\u{12543}'),
2674 ('\u{12f90}', '\u{12ff0}'),
2675 ('\u{13000}', '\u{1342f}'),
2676 ('\u{13441}', '\u{13446}'),
2677 ('\u{13460}', '\u{143fa}'),
2678 ('\u{14400}', '\u{14646}'),
2679 ('\u{16100}', '\u{1611d}'),
2680 ('\u{16800}', '\u{16a38}'),
2681 ('\u{16a40}', '\u{16a5e}'),
2682 ('\u{16a70}', '\u{16abe}'),
2683 ('\u{16ad0}', '\u{16aed}'),
2684 ('\u{16b00}', '\u{16b2f}'),
2685 ('\u{16b63}', '\u{16b77}'),
2686 ('\u{16b7d}', '\u{16b8f}'),
2687 ('\u{16d43}', '\u{16d6a}'),
2688 ('\u{16f00}', '\u{16f4a}'),
2689 ('\u{16f50}', '\u{16f50}'),
2690 ('\u{17000}', '\u{17000}'),
2691 ('\u{187f7}', '\u{187f7}'),
2692 ('\u{18800}', '\u{18cd5}'),
2693 ('\u{18cff}', '\u{18d00}'),
2694 ('\u{18d08}', '\u{18d08}'),
2695 ('\u{1b000}', '\u{1b122}'),
2696 ('\u{1b132}', '\u{1b132}'),
2697 ('\u{1b150}', '\u{1b152}'),
2698 ('\u{1b155}', '\u{1b155}'),
2699 ('\u{1b164}', '\u{1b167}'),
2700 ('\u{1b170}', '\u{1b2fb}'),
2701 ('\u{1bc00}', '\u{1bc6a}'),
2702 ('\u{1bc70}', '\u{1bc7c}'),
2703 ('\u{1bc80}', '\u{1bc88}'),
2704 ('\u{1bc90}', '\u{1bc99}'),
2705 ('\u{1df0a}', '\u{1df0a}'),
2706 ('\u{1e100}', '\u{1e12c}'),
2707 ('\u{1e14e}', '\u{1e14e}'),
2708 ('\u{1e290}', '\u{1e2ad}'),
2709 ('\u{1e2c0}', '\u{1e2eb}'),
2710 ('\u{1e4d0}', '\u{1e4ea}'),
2711 ('\u{1e5d0}', '\u{1e5ed}'),
2712 ('\u{1e5f0}', '\u{1e5f0}'),
2713 ('\u{1e7e0}', '\u{1e7e6}'),
2714 ('\u{1e7e8}', '\u{1e7eb}'),
2715 ('\u{1e7ed}', '\u{1e7ee}'),
2716 ('\u{1e7f0}', '\u{1e7fe}'),
2717 ('\u{1e800}', '\u{1e8c4}'),
2718 ('\u{1ee00}', '\u{1ee03}'),
2719 ('\u{1ee05}', '\u{1ee1f}'),
2720 ('\u{1ee21}', '\u{1ee22}'),
2721 ('\u{1ee24}', '\u{1ee24}'),
2722 ('\u{1ee27}', '\u{1ee27}'),
2723 ('\u{1ee29}', '\u{1ee32}'),
2724 ('\u{1ee34}', '\u{1ee37}'),
2725 ('\u{1ee39}', '\u{1ee39}'),
2726 ('\u{1ee3b}', '\u{1ee3b}'),
2727 ('\u{1ee42}', '\u{1ee42}'),
2728 ('\u{1ee47}', '\u{1ee47}'),
2729 ('\u{1ee49}', '\u{1ee49}'),
2730 ('\u{1ee4b}', '\u{1ee4b}'),
2731 ('\u{1ee4d}', '\u{1ee4f}'),
2732 ('\u{1ee51}', '\u{1ee52}'),
2733 ('\u{1ee54}', '\u{1ee54}'),
2734 ('\u{1ee57}', '\u{1ee57}'),
2735 ('\u{1ee59}', '\u{1ee59}'),
2736 ('\u{1ee5b}', '\u{1ee5b}'),
2737 ('\u{1ee5d}', '\u{1ee5d}'),
2738 ('\u{1ee5f}', '\u{1ee5f}'),
2739 ('\u{1ee61}', '\u{1ee62}'),
2740 ('\u{1ee64}', '\u{1ee64}'),
2741 ('\u{1ee67}', '\u{1ee6a}'),
2742 ('\u{1ee6c}', '\u{1ee72}'),
2743 ('\u{1ee74}', '\u{1ee77}'),
2744 ('\u{1ee79}', '\u{1ee7c}'),
2745 ('\u{1ee7e}', '\u{1ee7e}'),
2746 ('\u{1ee80}', '\u{1ee89}'),
2747 ('\u{1ee8b}', '\u{1ee9b}'),
2748 ('\u{1eea1}', '\u{1eea3}'),
2749 ('\u{1eea5}', '\u{1eea9}'),
2750 ('\u{1eeab}', '\u{1eebb}'),
2751 ('\u{20000}', '\u{20000}'),
2752 ('\u{2a6df}', '\u{2a6df}'),
2753 ('\u{2a700}', '\u{2a700}'),
2754 ('\u{2b739}', '\u{2b739}'),
2755 ('\u{2b740}', '\u{2b740}'),
2756 ('\u{2b81d}', '\u{2b81d}'),
2757 ('\u{2b820}', '\u{2b820}'),
2758 ('\u{2cea1}', '\u{2cea1}'),
2759 ('\u{2ceb0}', '\u{2ceb0}'),
2760 ('\u{2ebe0}', '\u{2ebe0}'),
2761 ('\u{2ebf0}', '\u{2ebf0}'),
2762 ('\u{2ee5d}', '\u{2ee5d}'),
2763 ('\u{2f800}', '\u{2fa1d}'),
2764 ('\u{30000}', '\u{30000}'),
2765 ('\u{3134a}', '\u{3134a}'),
2766 ('\u{31350}', '\u{31350}'),
2767 ('\u{323af}', '\u{323af}'),
2768];
2769
2770pub fn alternate_general_category_lo() -> ASTNode<char> {
2771 ASTNode::alternate_all(GENERAL_CATEGORY_LO.iter().copied()).unwrap()
2772}
2773
2774pub fn negate_general_category_lo() -> ASTNode<char> {
2775 ASTNode::negate_all(GENERAL_CATEGORY_LO.iter().copied()).unwrap()
2776}
2777
2778pub const GENERAL_CATEGORY_PI: &[(char, char)] = &[
2779 ('\u{ab}', '\u{ab}'),
2780 ('\u{2018}', '\u{2018}'),
2781 ('\u{201b}', '\u{201c}'),
2782 ('\u{201f}', '\u{201f}'),
2783 ('\u{2039}', '\u{2039}'),
2784 ('\u{2e02}', '\u{2e02}'),
2785 ('\u{2e04}', '\u{2e04}'),
2786 ('\u{2e09}', '\u{2e09}'),
2787 ('\u{2e0c}', '\u{2e0c}'),
2788 ('\u{2e1c}', '\u{2e1c}'),
2789 ('\u{2e20}', '\u{2e20}'),
2790];
2791
2792pub fn alternate_general_category_pi() -> ASTNode<char> {
2793 ASTNode::alternate_all(GENERAL_CATEGORY_PI.iter().copied()).unwrap()
2794}
2795
2796pub fn negate_general_category_pi() -> ASTNode<char> {
2797 ASTNode::negate_all(GENERAL_CATEGORY_PI.iter().copied()).unwrap()
2798}
2799
2800pub const GENERAL_CATEGORY_CF: &[(char, char)] = &[
2801 ('\u{ad}', '\u{ad}'),
2802 ('\u{600}', '\u{605}'),
2803 ('\u{61c}', '\u{61c}'),
2804 ('\u{6dd}', '\u{6dd}'),
2805 ('\u{70f}', '\u{70f}'),
2806 ('\u{890}', '\u{891}'),
2807 ('\u{8e2}', '\u{8e2}'),
2808 ('\u{180e}', '\u{180e}'),
2809 ('\u{200b}', '\u{200f}'),
2810 ('\u{202a}', '\u{202e}'),
2811 ('\u{2060}', '\u{2064}'),
2812 ('\u{2066}', '\u{206f}'),
2813 ('\u{feff}', '\u{feff}'),
2814 ('\u{fff9}', '\u{fffb}'),
2815 ('\u{110bd}', '\u{110bd}'),
2816 ('\u{110cd}', '\u{110cd}'),
2817 ('\u{13430}', '\u{1343f}'),
2818 ('\u{1bca0}', '\u{1bca3}'),
2819 ('\u{1d173}', '\u{1d17a}'),
2820 ('\u{e0001}', '\u{e0001}'),
2821 ('\u{e0020}', '\u{e007f}'),
2822];
2823
2824pub fn alternate_general_category_cf() -> ASTNode<char> {
2825 ASTNode::alternate_all(GENERAL_CATEGORY_CF.iter().copied()).unwrap()
2826}
2827
2828pub fn negate_general_category_cf() -> ASTNode<char> {
2829 ASTNode::negate_all(GENERAL_CATEGORY_CF.iter().copied()).unwrap()
2830}
2831
2832pub const GENERAL_CATEGORY_NO: &[(char, char)] = &[
2833 ('\u{b2}', '\u{b3}'),
2834 ('\u{b9}', '\u{b9}'),
2835 ('\u{bc}', '\u{be}'),
2836 ('\u{9f4}', '\u{9f9}'),
2837 ('\u{b72}', '\u{b77}'),
2838 ('\u{bf0}', '\u{bf2}'),
2839 ('\u{c78}', '\u{c7e}'),
2840 ('\u{d58}', '\u{d5e}'),
2841 ('\u{d70}', '\u{d78}'),
2842 ('\u{f2a}', '\u{f33}'),
2843 ('\u{1369}', '\u{137c}'),
2844 ('\u{17f0}', '\u{17f9}'),
2845 ('\u{19da}', '\u{19da}'),
2846 ('\u{2070}', '\u{2070}'),
2847 ('\u{2074}', '\u{2079}'),
2848 ('\u{2080}', '\u{2089}'),
2849 ('\u{2150}', '\u{215f}'),
2850 ('\u{2189}', '\u{2189}'),
2851 ('\u{2460}', '\u{249b}'),
2852 ('\u{24ea}', '\u{24ff}'),
2853 ('\u{2776}', '\u{2793}'),
2854 ('\u{2cfd}', '\u{2cfd}'),
2855 ('\u{3192}', '\u{3195}'),
2856 ('\u{3220}', '\u{3229}'),
2857 ('\u{3248}', '\u{324f}'),
2858 ('\u{3251}', '\u{325f}'),
2859 ('\u{3280}', '\u{3289}'),
2860 ('\u{32b1}', '\u{32bf}'),
2861 ('\u{a830}', '\u{a835}'),
2862 ('\u{10107}', '\u{10133}'),
2863 ('\u{10175}', '\u{10178}'),
2864 ('\u{1018a}', '\u{1018b}'),
2865 ('\u{102e1}', '\u{102fb}'),
2866 ('\u{10320}', '\u{10323}'),
2867 ('\u{10858}', '\u{1085f}'),
2868 ('\u{10879}', '\u{1087f}'),
2869 ('\u{108a7}', '\u{108af}'),
2870 ('\u{108fb}', '\u{108ff}'),
2871 ('\u{10916}', '\u{1091b}'),
2872 ('\u{109bc}', '\u{109bd}'),
2873 ('\u{109c0}', '\u{109cf}'),
2874 ('\u{109d2}', '\u{109ff}'),
2875 ('\u{10a40}', '\u{10a48}'),
2876 ('\u{10a7d}', '\u{10a7e}'),
2877 ('\u{10a9d}', '\u{10a9f}'),
2878 ('\u{10aeb}', '\u{10aef}'),
2879 ('\u{10b58}', '\u{10b5f}'),
2880 ('\u{10b78}', '\u{10b7f}'),
2881 ('\u{10ba9}', '\u{10baf}'),
2882 ('\u{10cfa}', '\u{10cff}'),
2883 ('\u{10e60}', '\u{10e7e}'),
2884 ('\u{10f1d}', '\u{10f26}'),
2885 ('\u{10f51}', '\u{10f54}'),
2886 ('\u{10fc5}', '\u{10fcb}'),
2887 ('\u{11052}', '\u{11065}'),
2888 ('\u{111e1}', '\u{111f4}'),
2889 ('\u{1173a}', '\u{1173b}'),
2890 ('\u{118ea}', '\u{118f2}'),
2891 ('\u{11c5a}', '\u{11c6c}'),
2892 ('\u{11fc0}', '\u{11fd4}'),
2893 ('\u{16b5b}', '\u{16b61}'),
2894 ('\u{16e80}', '\u{16e96}'),
2895 ('\u{1d2c0}', '\u{1d2d3}'),
2896 ('\u{1d2e0}', '\u{1d2f3}'),
2897 ('\u{1d360}', '\u{1d378}'),
2898 ('\u{1e8c7}', '\u{1e8cf}'),
2899 ('\u{1ec71}', '\u{1ecab}'),
2900 ('\u{1ecad}', '\u{1ecaf}'),
2901 ('\u{1ecb1}', '\u{1ecb4}'),
2902 ('\u{1ed01}', '\u{1ed2d}'),
2903 ('\u{1ed2f}', '\u{1ed3d}'),
2904 ('\u{1f100}', '\u{1f10c}'),
2905];
2906
2907pub fn alternate_general_category_no() -> ASTNode<char> {
2908 ASTNode::alternate_all(GENERAL_CATEGORY_NO.iter().copied()).unwrap()
2909}
2910
2911pub fn negate_general_category_no() -> ASTNode<char> {
2912 ASTNode::negate_all(GENERAL_CATEGORY_NO.iter().copied()).unwrap()
2913}
2914
2915pub const GENERAL_CATEGORY_PF: &[(char, char)] = &[
2916 ('\u{bb}', '\u{bb}'),
2917 ('\u{2019}', '\u{2019}'),
2918 ('\u{201d}', '\u{201d}'),
2919 ('\u{203a}', '\u{203a}'),
2920 ('\u{2e03}', '\u{2e03}'),
2921 ('\u{2e05}', '\u{2e05}'),
2922 ('\u{2e0a}', '\u{2e0a}'),
2923 ('\u{2e0d}', '\u{2e0d}'),
2924 ('\u{2e1d}', '\u{2e1d}'),
2925 ('\u{2e21}', '\u{2e21}'),
2926];
2927
2928pub fn alternate_general_category_pf() -> ASTNode<char> {
2929 ASTNode::alternate_all(GENERAL_CATEGORY_PF.iter().copied()).unwrap()
2930}
2931
2932pub fn negate_general_category_pf() -> ASTNode<char> {
2933 ASTNode::negate_all(GENERAL_CATEGORY_PF.iter().copied()).unwrap()
2934}
2935
2936pub const GENERAL_CATEGORY_LT: &[(char, char)] = &[
2937 ('\u{1c5}', '\u{1c5}'),
2938 ('\u{1c8}', '\u{1c8}'),
2939 ('\u{1cb}', '\u{1cb}'),
2940 ('\u{1f2}', '\u{1f2}'),
2941 ('\u{1f88}', '\u{1f8f}'),
2942 ('\u{1f98}', '\u{1f9f}'),
2943 ('\u{1fa8}', '\u{1faf}'),
2944 ('\u{1fbc}', '\u{1fbc}'),
2945 ('\u{1fcc}', '\u{1fcc}'),
2946 ('\u{1ffc}', '\u{1ffc}'),
2947];
2948
2949pub fn alternate_general_category_lt() -> ASTNode<char> {
2950 ASTNode::alternate_all(GENERAL_CATEGORY_LT.iter().copied()).unwrap()
2951}
2952
2953pub fn negate_general_category_lt() -> ASTNode<char> {
2954 ASTNode::negate_all(GENERAL_CATEGORY_LT.iter().copied()).unwrap()
2955}
2956
2957pub const GENERAL_CATEGORY_LM: &[(char, char)] = &[
2958 ('\u{2b0}', '\u{2c1}'),
2959 ('\u{2c6}', '\u{2d1}'),
2960 ('\u{2e0}', '\u{2e4}'),
2961 ('\u{2ec}', '\u{2ec}'),
2962 ('\u{2ee}', '\u{2ee}'),
2963 ('\u{374}', '\u{374}'),
2964 ('\u{37a}', '\u{37a}'),
2965 ('\u{559}', '\u{559}'),
2966 ('\u{640}', '\u{640}'),
2967 ('\u{6e5}', '\u{6e6}'),
2968 ('\u{7f4}', '\u{7f5}'),
2969 ('\u{7fa}', '\u{7fa}'),
2970 ('\u{81a}', '\u{81a}'),
2971 ('\u{824}', '\u{824}'),
2972 ('\u{828}', '\u{828}'),
2973 ('\u{8c9}', '\u{8c9}'),
2974 ('\u{971}', '\u{971}'),
2975 ('\u{e46}', '\u{e46}'),
2976 ('\u{ec6}', '\u{ec6}'),
2977 ('\u{10fc}', '\u{10fc}'),
2978 ('\u{17d7}', '\u{17d7}'),
2979 ('\u{1843}', '\u{1843}'),
2980 ('\u{1aa7}', '\u{1aa7}'),
2981 ('\u{1c78}', '\u{1c7d}'),
2982 ('\u{1d2c}', '\u{1d6a}'),
2983 ('\u{1d78}', '\u{1d78}'),
2984 ('\u{1d9b}', '\u{1dbf}'),
2985 ('\u{2071}', '\u{2071}'),
2986 ('\u{207f}', '\u{207f}'),
2987 ('\u{2090}', '\u{209c}'),
2988 ('\u{2c7c}', '\u{2c7d}'),
2989 ('\u{2d6f}', '\u{2d6f}'),
2990 ('\u{2e2f}', '\u{2e2f}'),
2991 ('\u{3005}', '\u{3005}'),
2992 ('\u{3031}', '\u{3035}'),
2993 ('\u{303b}', '\u{303b}'),
2994 ('\u{309d}', '\u{309e}'),
2995 ('\u{30fc}', '\u{30fe}'),
2996 ('\u{a015}', '\u{a015}'),
2997 ('\u{a4f8}', '\u{a4fd}'),
2998 ('\u{a60c}', '\u{a60c}'),
2999 ('\u{a67f}', '\u{a67f}'),
3000 ('\u{a69c}', '\u{a69d}'),
3001 ('\u{a717}', '\u{a71f}'),
3002 ('\u{a770}', '\u{a770}'),
3003 ('\u{a788}', '\u{a788}'),
3004 ('\u{a7f2}', '\u{a7f4}'),
3005 ('\u{a7f8}', '\u{a7f9}'),
3006 ('\u{a9cf}', '\u{a9cf}'),
3007 ('\u{a9e6}', '\u{a9e6}'),
3008 ('\u{aa70}', '\u{aa70}'),
3009 ('\u{aadd}', '\u{aadd}'),
3010 ('\u{aaf3}', '\u{aaf4}'),
3011 ('\u{ab5c}', '\u{ab5f}'),
3012 ('\u{ab69}', '\u{ab69}'),
3013 ('\u{ff70}', '\u{ff70}'),
3014 ('\u{ff9e}', '\u{ff9f}'),
3015 ('\u{10780}', '\u{10785}'),
3016 ('\u{10787}', '\u{107b0}'),
3017 ('\u{107b2}', '\u{107ba}'),
3018 ('\u{10d4e}', '\u{10d4e}'),
3019 ('\u{10d6f}', '\u{10d6f}'),
3020 ('\u{16b40}', '\u{16b43}'),
3021 ('\u{16d40}', '\u{16d42}'),
3022 ('\u{16d6b}', '\u{16d6c}'),
3023 ('\u{16f93}', '\u{16f9f}'),
3024 ('\u{16fe0}', '\u{16fe1}'),
3025 ('\u{16fe3}', '\u{16fe3}'),
3026 ('\u{1aff0}', '\u{1aff3}'),
3027 ('\u{1aff5}', '\u{1affb}'),
3028 ('\u{1affd}', '\u{1affe}'),
3029 ('\u{1e030}', '\u{1e06d}'),
3030 ('\u{1e137}', '\u{1e13d}'),
3031 ('\u{1e4eb}', '\u{1e4eb}'),
3032 ('\u{1e94b}', '\u{1e94b}'),
3033];
3034
3035pub fn alternate_general_category_lm() -> ASTNode<char> {
3036 ASTNode::alternate_all(GENERAL_CATEGORY_LM.iter().copied()).unwrap()
3037}
3038
3039pub fn negate_general_category_lm() -> ASTNode<char> {
3040 ASTNode::negate_all(GENERAL_CATEGORY_LM.iter().copied()).unwrap()
3041}
3042
3043pub const GENERAL_CATEGORY_MN: &[(char, char)] = &[
3044 ('\u{300}', '\u{36f}'),
3045 ('\u{483}', '\u{487}'),
3046 ('\u{591}', '\u{5bd}'),
3047 ('\u{5bf}', '\u{5bf}'),
3048 ('\u{5c1}', '\u{5c2}'),
3049 ('\u{5c4}', '\u{5c5}'),
3050 ('\u{5c7}', '\u{5c7}'),
3051 ('\u{610}', '\u{61a}'),
3052 ('\u{64b}', '\u{65f}'),
3053 ('\u{670}', '\u{670}'),
3054 ('\u{6d6}', '\u{6dc}'),
3055 ('\u{6df}', '\u{6e4}'),
3056 ('\u{6e7}', '\u{6e8}'),
3057 ('\u{6ea}', '\u{6ed}'),
3058 ('\u{711}', '\u{711}'),
3059 ('\u{730}', '\u{74a}'),
3060 ('\u{7a6}', '\u{7b0}'),
3061 ('\u{7eb}', '\u{7f3}'),
3062 ('\u{7fd}', '\u{7fd}'),
3063 ('\u{816}', '\u{819}'),
3064 ('\u{81b}', '\u{823}'),
3065 ('\u{825}', '\u{827}'),
3066 ('\u{829}', '\u{82d}'),
3067 ('\u{859}', '\u{85b}'),
3068 ('\u{897}', '\u{89f}'),
3069 ('\u{8ca}', '\u{8e1}'),
3070 ('\u{8e3}', '\u{902}'),
3071 ('\u{93a}', '\u{93a}'),
3072 ('\u{93c}', '\u{93c}'),
3073 ('\u{941}', '\u{948}'),
3074 ('\u{94d}', '\u{94d}'),
3075 ('\u{951}', '\u{957}'),
3076 ('\u{962}', '\u{963}'),
3077 ('\u{981}', '\u{981}'),
3078 ('\u{9bc}', '\u{9bc}'),
3079 ('\u{9c1}', '\u{9c4}'),
3080 ('\u{9cd}', '\u{9cd}'),
3081 ('\u{9e2}', '\u{9e3}'),
3082 ('\u{9fe}', '\u{9fe}'),
3083 ('\u{a01}', '\u{a02}'),
3084 ('\u{a3c}', '\u{a3c}'),
3085 ('\u{a41}', '\u{a42}'),
3086 ('\u{a47}', '\u{a48}'),
3087 ('\u{a4b}', '\u{a4d}'),
3088 ('\u{a51}', '\u{a51}'),
3089 ('\u{a70}', '\u{a71}'),
3090 ('\u{a75}', '\u{a75}'),
3091 ('\u{a81}', '\u{a82}'),
3092 ('\u{abc}', '\u{abc}'),
3093 ('\u{ac1}', '\u{ac5}'),
3094 ('\u{ac7}', '\u{ac8}'),
3095 ('\u{acd}', '\u{acd}'),
3096 ('\u{ae2}', '\u{ae3}'),
3097 ('\u{afa}', '\u{aff}'),
3098 ('\u{b01}', '\u{b01}'),
3099 ('\u{b3c}', '\u{b3c}'),
3100 ('\u{b3f}', '\u{b3f}'),
3101 ('\u{b41}', '\u{b44}'),
3102 ('\u{b4d}', '\u{b4d}'),
3103 ('\u{b55}', '\u{b56}'),
3104 ('\u{b62}', '\u{b63}'),
3105 ('\u{b82}', '\u{b82}'),
3106 ('\u{bc0}', '\u{bc0}'),
3107 ('\u{bcd}', '\u{bcd}'),
3108 ('\u{c00}', '\u{c00}'),
3109 ('\u{c04}', '\u{c04}'),
3110 ('\u{c3c}', '\u{c3c}'),
3111 ('\u{c3e}', '\u{c40}'),
3112 ('\u{c46}', '\u{c48}'),
3113 ('\u{c4a}', '\u{c4d}'),
3114 ('\u{c55}', '\u{c56}'),
3115 ('\u{c62}', '\u{c63}'),
3116 ('\u{c81}', '\u{c81}'),
3117 ('\u{cbc}', '\u{cbc}'),
3118 ('\u{cbf}', '\u{cbf}'),
3119 ('\u{cc6}', '\u{cc6}'),
3120 ('\u{ccc}', '\u{ccd}'),
3121 ('\u{ce2}', '\u{ce3}'),
3122 ('\u{d00}', '\u{d01}'),
3123 ('\u{d3b}', '\u{d3c}'),
3124 ('\u{d41}', '\u{d44}'),
3125 ('\u{d4d}', '\u{d4d}'),
3126 ('\u{d62}', '\u{d63}'),
3127 ('\u{d81}', '\u{d81}'),
3128 ('\u{dca}', '\u{dca}'),
3129 ('\u{dd2}', '\u{dd4}'),
3130 ('\u{dd6}', '\u{dd6}'),
3131 ('\u{e31}', '\u{e31}'),
3132 ('\u{e34}', '\u{e3a}'),
3133 ('\u{e47}', '\u{e4e}'),
3134 ('\u{eb1}', '\u{eb1}'),
3135 ('\u{eb4}', '\u{ebc}'),
3136 ('\u{ec8}', '\u{ece}'),
3137 ('\u{f18}', '\u{f19}'),
3138 ('\u{f35}', '\u{f35}'),
3139 ('\u{f37}', '\u{f37}'),
3140 ('\u{f39}', '\u{f39}'),
3141 ('\u{f71}', '\u{f7e}'),
3142 ('\u{f80}', '\u{f84}'),
3143 ('\u{f86}', '\u{f87}'),
3144 ('\u{f8d}', '\u{f97}'),
3145 ('\u{f99}', '\u{fbc}'),
3146 ('\u{fc6}', '\u{fc6}'),
3147 ('\u{102d}', '\u{1030}'),
3148 ('\u{1032}', '\u{1037}'),
3149 ('\u{1039}', '\u{103a}'),
3150 ('\u{103d}', '\u{103e}'),
3151 ('\u{1058}', '\u{1059}'),
3152 ('\u{105e}', '\u{1060}'),
3153 ('\u{1071}', '\u{1074}'),
3154 ('\u{1082}', '\u{1082}'),
3155 ('\u{1085}', '\u{1086}'),
3156 ('\u{108d}', '\u{108d}'),
3157 ('\u{109d}', '\u{109d}'),
3158 ('\u{135d}', '\u{135f}'),
3159 ('\u{1712}', '\u{1714}'),
3160 ('\u{1732}', '\u{1733}'),
3161 ('\u{1752}', '\u{1753}'),
3162 ('\u{1772}', '\u{1773}'),
3163 ('\u{17b4}', '\u{17b5}'),
3164 ('\u{17b7}', '\u{17bd}'),
3165 ('\u{17c6}', '\u{17c6}'),
3166 ('\u{17c9}', '\u{17d3}'),
3167 ('\u{17dd}', '\u{17dd}'),
3168 ('\u{180b}', '\u{180d}'),
3169 ('\u{180f}', '\u{180f}'),
3170 ('\u{1885}', '\u{1886}'),
3171 ('\u{18a9}', '\u{18a9}'),
3172 ('\u{1920}', '\u{1922}'),
3173 ('\u{1927}', '\u{1928}'),
3174 ('\u{1932}', '\u{1932}'),
3175 ('\u{1939}', '\u{193b}'),
3176 ('\u{1a17}', '\u{1a18}'),
3177 ('\u{1a1b}', '\u{1a1b}'),
3178 ('\u{1a56}', '\u{1a56}'),
3179 ('\u{1a58}', '\u{1a5e}'),
3180 ('\u{1a60}', '\u{1a60}'),
3181 ('\u{1a62}', '\u{1a62}'),
3182 ('\u{1a65}', '\u{1a6c}'),
3183 ('\u{1a73}', '\u{1a7c}'),
3184 ('\u{1a7f}', '\u{1a7f}'),
3185 ('\u{1ab0}', '\u{1abd}'),
3186 ('\u{1abf}', '\u{1ace}'),
3187 ('\u{1b00}', '\u{1b03}'),
3188 ('\u{1b34}', '\u{1b34}'),
3189 ('\u{1b36}', '\u{1b3a}'),
3190 ('\u{1b3c}', '\u{1b3c}'),
3191 ('\u{1b42}', '\u{1b42}'),
3192 ('\u{1b6b}', '\u{1b73}'),
3193 ('\u{1b80}', '\u{1b81}'),
3194 ('\u{1ba2}', '\u{1ba5}'),
3195 ('\u{1ba8}', '\u{1ba9}'),
3196 ('\u{1bab}', '\u{1bad}'),
3197 ('\u{1be6}', '\u{1be6}'),
3198 ('\u{1be8}', '\u{1be9}'),
3199 ('\u{1bed}', '\u{1bed}'),
3200 ('\u{1bef}', '\u{1bf1}'),
3201 ('\u{1c2c}', '\u{1c33}'),
3202 ('\u{1c36}', '\u{1c37}'),
3203 ('\u{1cd0}', '\u{1cd2}'),
3204 ('\u{1cd4}', '\u{1ce0}'),
3205 ('\u{1ce2}', '\u{1ce8}'),
3206 ('\u{1ced}', '\u{1ced}'),
3207 ('\u{1cf4}', '\u{1cf4}'),
3208 ('\u{1cf8}', '\u{1cf9}'),
3209 ('\u{1dc0}', '\u{1dff}'),
3210 ('\u{20d0}', '\u{20dc}'),
3211 ('\u{20e1}', '\u{20e1}'),
3212 ('\u{20e5}', '\u{20f0}'),
3213 ('\u{2cef}', '\u{2cf1}'),
3214 ('\u{2d7f}', '\u{2d7f}'),
3215 ('\u{2de0}', '\u{2dff}'),
3216 ('\u{302a}', '\u{302d}'),
3217 ('\u{3099}', '\u{309a}'),
3218 ('\u{a66f}', '\u{a66f}'),
3219 ('\u{a674}', '\u{a67d}'),
3220 ('\u{a69e}', '\u{a69f}'),
3221 ('\u{a6f0}', '\u{a6f1}'),
3222 ('\u{a802}', '\u{a802}'),
3223 ('\u{a806}', '\u{a806}'),
3224 ('\u{a80b}', '\u{a80b}'),
3225 ('\u{a825}', '\u{a826}'),
3226 ('\u{a82c}', '\u{a82c}'),
3227 ('\u{a8c4}', '\u{a8c5}'),
3228 ('\u{a8e0}', '\u{a8f1}'),
3229 ('\u{a8ff}', '\u{a8ff}'),
3230 ('\u{a926}', '\u{a92d}'),
3231 ('\u{a947}', '\u{a951}'),
3232 ('\u{a980}', '\u{a982}'),
3233 ('\u{a9b3}', '\u{a9b3}'),
3234 ('\u{a9b6}', '\u{a9b9}'),
3235 ('\u{a9bc}', '\u{a9bd}'),
3236 ('\u{a9e5}', '\u{a9e5}'),
3237 ('\u{aa29}', '\u{aa2e}'),
3238 ('\u{aa31}', '\u{aa32}'),
3239 ('\u{aa35}', '\u{aa36}'),
3240 ('\u{aa43}', '\u{aa43}'),
3241 ('\u{aa4c}', '\u{aa4c}'),
3242 ('\u{aa7c}', '\u{aa7c}'),
3243 ('\u{aab0}', '\u{aab0}'),
3244 ('\u{aab2}', '\u{aab4}'),
3245 ('\u{aab7}', '\u{aab8}'),
3246 ('\u{aabe}', '\u{aabf}'),
3247 ('\u{aac1}', '\u{aac1}'),
3248 ('\u{aaec}', '\u{aaed}'),
3249 ('\u{aaf6}', '\u{aaf6}'),
3250 ('\u{abe5}', '\u{abe5}'),
3251 ('\u{abe8}', '\u{abe8}'),
3252 ('\u{abed}', '\u{abed}'),
3253 ('\u{fb1e}', '\u{fb1e}'),
3254 ('\u{fe00}', '\u{fe0f}'),
3255 ('\u{fe20}', '\u{fe2f}'),
3256 ('\u{101fd}', '\u{101fd}'),
3257 ('\u{102e0}', '\u{102e0}'),
3258 ('\u{10376}', '\u{1037a}'),
3259 ('\u{10a01}', '\u{10a03}'),
3260 ('\u{10a05}', '\u{10a06}'),
3261 ('\u{10a0c}', '\u{10a0f}'),
3262 ('\u{10a38}', '\u{10a3a}'),
3263 ('\u{10a3f}', '\u{10a3f}'),
3264 ('\u{10ae5}', '\u{10ae6}'),
3265 ('\u{10d24}', '\u{10d27}'),
3266 ('\u{10d69}', '\u{10d6d}'),
3267 ('\u{10eab}', '\u{10eac}'),
3268 ('\u{10efc}', '\u{10eff}'),
3269 ('\u{10f46}', '\u{10f50}'),
3270 ('\u{10f82}', '\u{10f85}'),
3271 ('\u{11001}', '\u{11001}'),
3272 ('\u{11038}', '\u{11046}'),
3273 ('\u{11070}', '\u{11070}'),
3274 ('\u{11073}', '\u{11074}'),
3275 ('\u{1107f}', '\u{11081}'),
3276 ('\u{110b3}', '\u{110b6}'),
3277 ('\u{110b9}', '\u{110ba}'),
3278 ('\u{110c2}', '\u{110c2}'),
3279 ('\u{11100}', '\u{11102}'),
3280 ('\u{11127}', '\u{1112b}'),
3281 ('\u{1112d}', '\u{11134}'),
3282 ('\u{11173}', '\u{11173}'),
3283 ('\u{11180}', '\u{11181}'),
3284 ('\u{111b6}', '\u{111be}'),
3285 ('\u{111c9}', '\u{111cc}'),
3286 ('\u{111cf}', '\u{111cf}'),
3287 ('\u{1122f}', '\u{11231}'),
3288 ('\u{11234}', '\u{11234}'),
3289 ('\u{11236}', '\u{11237}'),
3290 ('\u{1123e}', '\u{1123e}'),
3291 ('\u{11241}', '\u{11241}'),
3292 ('\u{112df}', '\u{112df}'),
3293 ('\u{112e3}', '\u{112ea}'),
3294 ('\u{11300}', '\u{11301}'),
3295 ('\u{1133b}', '\u{1133c}'),
3296 ('\u{11340}', '\u{11340}'),
3297 ('\u{11366}', '\u{1136c}'),
3298 ('\u{11370}', '\u{11374}'),
3299 ('\u{113bb}', '\u{113c0}'),
3300 ('\u{113ce}', '\u{113ce}'),
3301 ('\u{113d0}', '\u{113d0}'),
3302 ('\u{113d2}', '\u{113d2}'),
3303 ('\u{113e1}', '\u{113e2}'),
3304 ('\u{11438}', '\u{1143f}'),
3305 ('\u{11442}', '\u{11444}'),
3306 ('\u{11446}', '\u{11446}'),
3307 ('\u{1145e}', '\u{1145e}'),
3308 ('\u{114b3}', '\u{114b8}'),
3309 ('\u{114ba}', '\u{114ba}'),
3310 ('\u{114bf}', '\u{114c0}'),
3311 ('\u{114c2}', '\u{114c3}'),
3312 ('\u{115b2}', '\u{115b5}'),
3313 ('\u{115bc}', '\u{115bd}'),
3314 ('\u{115bf}', '\u{115c0}'),
3315 ('\u{115dc}', '\u{115dd}'),
3316 ('\u{11633}', '\u{1163a}'),
3317 ('\u{1163d}', '\u{1163d}'),
3318 ('\u{1163f}', '\u{11640}'),
3319 ('\u{116ab}', '\u{116ab}'),
3320 ('\u{116ad}', '\u{116ad}'),
3321 ('\u{116b0}', '\u{116b5}'),
3322 ('\u{116b7}', '\u{116b7}'),
3323 ('\u{1171d}', '\u{1171d}'),
3324 ('\u{1171f}', '\u{1171f}'),
3325 ('\u{11722}', '\u{11725}'),
3326 ('\u{11727}', '\u{1172b}'),
3327 ('\u{1182f}', '\u{11837}'),
3328 ('\u{11839}', '\u{1183a}'),
3329 ('\u{1193b}', '\u{1193c}'),
3330 ('\u{1193e}', '\u{1193e}'),
3331 ('\u{11943}', '\u{11943}'),
3332 ('\u{119d4}', '\u{119d7}'),
3333 ('\u{119da}', '\u{119db}'),
3334 ('\u{119e0}', '\u{119e0}'),
3335 ('\u{11a01}', '\u{11a0a}'),
3336 ('\u{11a33}', '\u{11a38}'),
3337 ('\u{11a3b}', '\u{11a3e}'),
3338 ('\u{11a47}', '\u{11a47}'),
3339 ('\u{11a51}', '\u{11a56}'),
3340 ('\u{11a59}', '\u{11a5b}'),
3341 ('\u{11a8a}', '\u{11a96}'),
3342 ('\u{11a98}', '\u{11a99}'),
3343 ('\u{11c30}', '\u{11c36}'),
3344 ('\u{11c38}', '\u{11c3d}'),
3345 ('\u{11c3f}', '\u{11c3f}'),
3346 ('\u{11c92}', '\u{11ca7}'),
3347 ('\u{11caa}', '\u{11cb0}'),
3348 ('\u{11cb2}', '\u{11cb3}'),
3349 ('\u{11cb5}', '\u{11cb6}'),
3350 ('\u{11d31}', '\u{11d36}'),
3351 ('\u{11d3a}', '\u{11d3a}'),
3352 ('\u{11d3c}', '\u{11d3d}'),
3353 ('\u{11d3f}', '\u{11d45}'),
3354 ('\u{11d47}', '\u{11d47}'),
3355 ('\u{11d90}', '\u{11d91}'),
3356 ('\u{11d95}', '\u{11d95}'),
3357 ('\u{11d97}', '\u{11d97}'),
3358 ('\u{11ef3}', '\u{11ef4}'),
3359 ('\u{11f00}', '\u{11f01}'),
3360 ('\u{11f36}', '\u{11f3a}'),
3361 ('\u{11f40}', '\u{11f40}'),
3362 ('\u{11f42}', '\u{11f42}'),
3363 ('\u{11f5a}', '\u{11f5a}'),
3364 ('\u{13440}', '\u{13440}'),
3365 ('\u{13447}', '\u{13455}'),
3366 ('\u{1611e}', '\u{16129}'),
3367 ('\u{1612d}', '\u{1612f}'),
3368 ('\u{16af0}', '\u{16af4}'),
3369 ('\u{16b30}', '\u{16b36}'),
3370 ('\u{16f4f}', '\u{16f4f}'),
3371 ('\u{16f8f}', '\u{16f92}'),
3372 ('\u{16fe4}', '\u{16fe4}'),
3373 ('\u{1bc9d}', '\u{1bc9e}'),
3374 ('\u{1cf00}', '\u{1cf2d}'),
3375 ('\u{1cf30}', '\u{1cf46}'),
3376 ('\u{1d167}', '\u{1d169}'),
3377 ('\u{1d17b}', '\u{1d182}'),
3378 ('\u{1d185}', '\u{1d18b}'),
3379 ('\u{1d1aa}', '\u{1d1ad}'),
3380 ('\u{1d242}', '\u{1d244}'),
3381 ('\u{1da00}', '\u{1da36}'),
3382 ('\u{1da3b}', '\u{1da6c}'),
3383 ('\u{1da75}', '\u{1da75}'),
3384 ('\u{1da84}', '\u{1da84}'),
3385 ('\u{1da9b}', '\u{1da9f}'),
3386 ('\u{1daa1}', '\u{1daaf}'),
3387 ('\u{1e000}', '\u{1e006}'),
3388 ('\u{1e008}', '\u{1e018}'),
3389 ('\u{1e01b}', '\u{1e021}'),
3390 ('\u{1e023}', '\u{1e024}'),
3391 ('\u{1e026}', '\u{1e02a}'),
3392 ('\u{1e08f}', '\u{1e08f}'),
3393 ('\u{1e130}', '\u{1e136}'),
3394 ('\u{1e2ae}', '\u{1e2ae}'),
3395 ('\u{1e2ec}', '\u{1e2ef}'),
3396 ('\u{1e4ec}', '\u{1e4ef}'),
3397 ('\u{1e5ee}', '\u{1e5ef}'),
3398 ('\u{1e8d0}', '\u{1e8d6}'),
3399 ('\u{1e944}', '\u{1e94a}'),
3400 ('\u{e0100}', '\u{e01ef}'),
3401];
3402
3403pub fn alternate_general_category_mn() -> ASTNode<char> {
3404 ASTNode::alternate_all(GENERAL_CATEGORY_MN.iter().copied()).unwrap()
3405}
3406
3407pub fn negate_general_category_mn() -> ASTNode<char> {
3408 ASTNode::negate_all(GENERAL_CATEGORY_MN.iter().copied()).unwrap()
3409}
3410
3411pub const GENERAL_CATEGORY_ME: &[(char, char)] = &[
3412 ('\u{488}', '\u{489}'),
3413 ('\u{1abe}', '\u{1abe}'),
3414 ('\u{20dd}', '\u{20e0}'),
3415 ('\u{20e2}', '\u{20e4}'),
3416 ('\u{a670}', '\u{a672}'),
3417];
3418
3419pub fn alternate_general_category_me() -> ASTNode<char> {
3420 ASTNode::alternate_all(GENERAL_CATEGORY_ME.iter().copied()).unwrap()
3421}
3422
3423pub fn negate_general_category_me() -> ASTNode<char> {
3424 ASTNode::negate_all(GENERAL_CATEGORY_ME.iter().copied()).unwrap()
3425}
3426
3427pub const GENERAL_CATEGORY_MC: &[(char, char)] = &[
3428 ('\u{903}', '\u{903}'),
3429 ('\u{93b}', '\u{93b}'),
3430 ('\u{93e}', '\u{940}'),
3431 ('\u{949}', '\u{94c}'),
3432 ('\u{94e}', '\u{94f}'),
3433 ('\u{982}', '\u{983}'),
3434 ('\u{9be}', '\u{9c0}'),
3435 ('\u{9c7}', '\u{9c8}'),
3436 ('\u{9cb}', '\u{9cc}'),
3437 ('\u{9d7}', '\u{9d7}'),
3438 ('\u{a03}', '\u{a03}'),
3439 ('\u{a3e}', '\u{a40}'),
3440 ('\u{a83}', '\u{a83}'),
3441 ('\u{abe}', '\u{ac0}'),
3442 ('\u{ac9}', '\u{ac9}'),
3443 ('\u{acb}', '\u{acc}'),
3444 ('\u{b02}', '\u{b03}'),
3445 ('\u{b3e}', '\u{b3e}'),
3446 ('\u{b40}', '\u{b40}'),
3447 ('\u{b47}', '\u{b48}'),
3448 ('\u{b4b}', '\u{b4c}'),
3449 ('\u{b57}', '\u{b57}'),
3450 ('\u{bbe}', '\u{bbf}'),
3451 ('\u{bc1}', '\u{bc2}'),
3452 ('\u{bc6}', '\u{bc8}'),
3453 ('\u{bca}', '\u{bcc}'),
3454 ('\u{bd7}', '\u{bd7}'),
3455 ('\u{c01}', '\u{c03}'),
3456 ('\u{c41}', '\u{c44}'),
3457 ('\u{c82}', '\u{c83}'),
3458 ('\u{cbe}', '\u{cbe}'),
3459 ('\u{cc0}', '\u{cc4}'),
3460 ('\u{cc7}', '\u{cc8}'),
3461 ('\u{cca}', '\u{ccb}'),
3462 ('\u{cd5}', '\u{cd6}'),
3463 ('\u{cf3}', '\u{cf3}'),
3464 ('\u{d02}', '\u{d03}'),
3465 ('\u{d3e}', '\u{d40}'),
3466 ('\u{d46}', '\u{d48}'),
3467 ('\u{d4a}', '\u{d4c}'),
3468 ('\u{d57}', '\u{d57}'),
3469 ('\u{d82}', '\u{d83}'),
3470 ('\u{dcf}', '\u{dd1}'),
3471 ('\u{dd8}', '\u{ddf}'),
3472 ('\u{df2}', '\u{df3}'),
3473 ('\u{f3e}', '\u{f3f}'),
3474 ('\u{f7f}', '\u{f7f}'),
3475 ('\u{102b}', '\u{102c}'),
3476 ('\u{1031}', '\u{1031}'),
3477 ('\u{1038}', '\u{1038}'),
3478 ('\u{103b}', '\u{103c}'),
3479 ('\u{1056}', '\u{1057}'),
3480 ('\u{1062}', '\u{1064}'),
3481 ('\u{1067}', '\u{106d}'),
3482 ('\u{1083}', '\u{1084}'),
3483 ('\u{1087}', '\u{108c}'),
3484 ('\u{108f}', '\u{108f}'),
3485 ('\u{109a}', '\u{109c}'),
3486 ('\u{1715}', '\u{1715}'),
3487 ('\u{1734}', '\u{1734}'),
3488 ('\u{17b6}', '\u{17b6}'),
3489 ('\u{17be}', '\u{17c5}'),
3490 ('\u{17c7}', '\u{17c8}'),
3491 ('\u{1923}', '\u{1926}'),
3492 ('\u{1929}', '\u{192b}'),
3493 ('\u{1930}', '\u{1931}'),
3494 ('\u{1933}', '\u{1938}'),
3495 ('\u{1a19}', '\u{1a1a}'),
3496 ('\u{1a55}', '\u{1a55}'),
3497 ('\u{1a57}', '\u{1a57}'),
3498 ('\u{1a61}', '\u{1a61}'),
3499 ('\u{1a63}', '\u{1a64}'),
3500 ('\u{1a6d}', '\u{1a72}'),
3501 ('\u{1b04}', '\u{1b04}'),
3502 ('\u{1b35}', '\u{1b35}'),
3503 ('\u{1b3b}', '\u{1b3b}'),
3504 ('\u{1b3d}', '\u{1b41}'),
3505 ('\u{1b43}', '\u{1b44}'),
3506 ('\u{1b82}', '\u{1b82}'),
3507 ('\u{1ba1}', '\u{1ba1}'),
3508 ('\u{1ba6}', '\u{1ba7}'),
3509 ('\u{1baa}', '\u{1baa}'),
3510 ('\u{1be7}', '\u{1be7}'),
3511 ('\u{1bea}', '\u{1bec}'),
3512 ('\u{1bee}', '\u{1bee}'),
3513 ('\u{1bf2}', '\u{1bf3}'),
3514 ('\u{1c24}', '\u{1c2b}'),
3515 ('\u{1c34}', '\u{1c35}'),
3516 ('\u{1ce1}', '\u{1ce1}'),
3517 ('\u{1cf7}', '\u{1cf7}'),
3518 ('\u{302e}', '\u{302f}'),
3519 ('\u{a823}', '\u{a824}'),
3520 ('\u{a827}', '\u{a827}'),
3521 ('\u{a880}', '\u{a881}'),
3522 ('\u{a8b4}', '\u{a8c3}'),
3523 ('\u{a952}', '\u{a953}'),
3524 ('\u{a983}', '\u{a983}'),
3525 ('\u{a9b4}', '\u{a9b5}'),
3526 ('\u{a9ba}', '\u{a9bb}'),
3527 ('\u{a9be}', '\u{a9c0}'),
3528 ('\u{aa2f}', '\u{aa30}'),
3529 ('\u{aa33}', '\u{aa34}'),
3530 ('\u{aa4d}', '\u{aa4d}'),
3531 ('\u{aa7b}', '\u{aa7b}'),
3532 ('\u{aa7d}', '\u{aa7d}'),
3533 ('\u{aaeb}', '\u{aaeb}'),
3534 ('\u{aaee}', '\u{aaef}'),
3535 ('\u{aaf5}', '\u{aaf5}'),
3536 ('\u{abe3}', '\u{abe4}'),
3537 ('\u{abe6}', '\u{abe7}'),
3538 ('\u{abe9}', '\u{abea}'),
3539 ('\u{abec}', '\u{abec}'),
3540 ('\u{11000}', '\u{11000}'),
3541 ('\u{11002}', '\u{11002}'),
3542 ('\u{11082}', '\u{11082}'),
3543 ('\u{110b0}', '\u{110b2}'),
3544 ('\u{110b7}', '\u{110b8}'),
3545 ('\u{1112c}', '\u{1112c}'),
3546 ('\u{11145}', '\u{11146}'),
3547 ('\u{11182}', '\u{11182}'),
3548 ('\u{111b3}', '\u{111b5}'),
3549 ('\u{111bf}', '\u{111c0}'),
3550 ('\u{111ce}', '\u{111ce}'),
3551 ('\u{1122c}', '\u{1122e}'),
3552 ('\u{11232}', '\u{11233}'),
3553 ('\u{11235}', '\u{11235}'),
3554 ('\u{112e0}', '\u{112e2}'),
3555 ('\u{11302}', '\u{11303}'),
3556 ('\u{1133e}', '\u{1133f}'),
3557 ('\u{11341}', '\u{11344}'),
3558 ('\u{11347}', '\u{11348}'),
3559 ('\u{1134b}', '\u{1134d}'),
3560 ('\u{11357}', '\u{11357}'),
3561 ('\u{11362}', '\u{11363}'),
3562 ('\u{113b8}', '\u{113ba}'),
3563 ('\u{113c2}', '\u{113c2}'),
3564 ('\u{113c5}', '\u{113c5}'),
3565 ('\u{113c7}', '\u{113ca}'),
3566 ('\u{113cc}', '\u{113cd}'),
3567 ('\u{113cf}', '\u{113cf}'),
3568 ('\u{11435}', '\u{11437}'),
3569 ('\u{11440}', '\u{11441}'),
3570 ('\u{11445}', '\u{11445}'),
3571 ('\u{114b0}', '\u{114b2}'),
3572 ('\u{114b9}', '\u{114b9}'),
3573 ('\u{114bb}', '\u{114be}'),
3574 ('\u{114c1}', '\u{114c1}'),
3575 ('\u{115af}', '\u{115b1}'),
3576 ('\u{115b8}', '\u{115bb}'),
3577 ('\u{115be}', '\u{115be}'),
3578 ('\u{11630}', '\u{11632}'),
3579 ('\u{1163b}', '\u{1163c}'),
3580 ('\u{1163e}', '\u{1163e}'),
3581 ('\u{116ac}', '\u{116ac}'),
3582 ('\u{116ae}', '\u{116af}'),
3583 ('\u{116b6}', '\u{116b6}'),
3584 ('\u{1171e}', '\u{1171e}'),
3585 ('\u{11720}', '\u{11721}'),
3586 ('\u{11726}', '\u{11726}'),
3587 ('\u{1182c}', '\u{1182e}'),
3588 ('\u{11838}', '\u{11838}'),
3589 ('\u{11930}', '\u{11935}'),
3590 ('\u{11937}', '\u{11938}'),
3591 ('\u{1193d}', '\u{1193d}'),
3592 ('\u{11940}', '\u{11940}'),
3593 ('\u{11942}', '\u{11942}'),
3594 ('\u{119d1}', '\u{119d3}'),
3595 ('\u{119dc}', '\u{119df}'),
3596 ('\u{119e4}', '\u{119e4}'),
3597 ('\u{11a39}', '\u{11a39}'),
3598 ('\u{11a57}', '\u{11a58}'),
3599 ('\u{11a97}', '\u{11a97}'),
3600 ('\u{11c2f}', '\u{11c2f}'),
3601 ('\u{11c3e}', '\u{11c3e}'),
3602 ('\u{11ca9}', '\u{11ca9}'),
3603 ('\u{11cb1}', '\u{11cb1}'),
3604 ('\u{11cb4}', '\u{11cb4}'),
3605 ('\u{11d8a}', '\u{11d8e}'),
3606 ('\u{11d93}', '\u{11d94}'),
3607 ('\u{11d96}', '\u{11d96}'),
3608 ('\u{11ef5}', '\u{11ef6}'),
3609 ('\u{11f03}', '\u{11f03}'),
3610 ('\u{11f34}', '\u{11f35}'),
3611 ('\u{11f3e}', '\u{11f3f}'),
3612 ('\u{11f41}', '\u{11f41}'),
3613 ('\u{1612a}', '\u{1612c}'),
3614 ('\u{16f51}', '\u{16f87}'),
3615 ('\u{16ff0}', '\u{16ff1}'),
3616 ('\u{1d165}', '\u{1d166}'),
3617 ('\u{1d16d}', '\u{1d172}'),
3618];
3619
3620pub fn alternate_general_category_mc() -> ASTNode<char> {
3621 ASTNode::alternate_all(GENERAL_CATEGORY_MC.iter().copied()).unwrap()
3622}
3623
3624pub fn negate_general_category_mc() -> ASTNode<char> {
3625 ASTNode::negate_all(GENERAL_CATEGORY_MC.iter().copied()).unwrap()
3626}
3627
3628pub const GENERAL_CATEGORY_NL: &[(char, char)] = &[
3629 ('\u{16ee}', '\u{16f0}'),
3630 ('\u{2160}', '\u{2182}'),
3631 ('\u{2185}', '\u{2188}'),
3632 ('\u{3007}', '\u{3007}'),
3633 ('\u{3021}', '\u{3029}'),
3634 ('\u{3038}', '\u{303a}'),
3635 ('\u{a6e6}', '\u{a6ef}'),
3636 ('\u{10140}', '\u{10174}'),
3637 ('\u{10341}', '\u{10341}'),
3638 ('\u{1034a}', '\u{1034a}'),
3639 ('\u{103d1}', '\u{103d5}'),
3640 ('\u{12400}', '\u{1246e}'),
3641];
3642
3643pub fn alternate_general_category_nl() -> ASTNode<char> {
3644 ASTNode::alternate_all(GENERAL_CATEGORY_NL.iter().copied()).unwrap()
3645}
3646
3647pub fn negate_general_category_nl() -> ASTNode<char> {
3648 ASTNode::negate_all(GENERAL_CATEGORY_NL.iter().copied()).unwrap()
3649}
3650
3651pub const GENERAL_CATEGORY_ZL: &[(char, char)] = &[('\u{2028}', '\u{2028}')];
3652
3653pub fn alternate_general_category_zl() -> ASTNode<char> {
3654 ASTNode::alternate_all(GENERAL_CATEGORY_ZL.iter().copied()).unwrap()
3655}
3656
3657pub fn negate_general_category_zl() -> ASTNode<char> {
3658 ASTNode::negate_all(GENERAL_CATEGORY_ZL.iter().copied()).unwrap()
3659}
3660
3661pub const GENERAL_CATEGORY_ZP: &[(char, char)] = &[('\u{2029}', '\u{2029}')];
3662
3663pub fn alternate_general_category_zp() -> ASTNode<char> {
3664 ASTNode::alternate_all(GENERAL_CATEGORY_ZP.iter().copied()).unwrap()
3665}
3666
3667pub fn negate_general_category_zp() -> ASTNode<char> {
3668 ASTNode::negate_all(GENERAL_CATEGORY_ZP.iter().copied()).unwrap()
3669}
3670
3671pub const GENERAL_CATEGORY_CO: &[(char, char)] = &[
3672 ('\u{e000}', '\u{e000}'),
3673 ('\u{f8ff}', '\u{f8ff}'),
3674 ('\u{f0000}', '\u{f0000}'),
3675 ('\u{ffffd}', '\u{ffffd}'),
3676 ('\u{100000}', '\u{100000}'),
3677 ('\u{10fffd}', '\u{10fffd}'),
3678];
3679
3680pub fn alternate_general_category_co() -> ASTNode<char> {
3681 ASTNode::alternate_all(GENERAL_CATEGORY_CO.iter().copied()).unwrap()
3682}
3683
3684pub fn negate_general_category_co() -> ASTNode<char> {
3685 ASTNode::negate_all(GENERAL_CATEGORY_CO.iter().copied()).unwrap()
3686}
3687
3688pub fn iterate_general_category_c() -> impl Iterator<Item = (char, char)> {
3689 GENERAL_CATEGORY_CO
3690 .iter()
3691 .chain(GENERAL_CATEGORY_CF.iter())
3692 .chain(GENERAL_CATEGORY_CC.iter())
3693 .copied()
3694}
3695
3696pub fn iterate_general_category_z() -> impl Iterator<Item = (char, char)> {
3697 GENERAL_CATEGORY_ZP
3698 .iter()
3699 .chain(GENERAL_CATEGORY_ZL.iter())
3700 .chain(GENERAL_CATEGORY_ZS.iter())
3701 .copied()
3702}
3703
3704pub fn iterate_general_category_p() -> impl Iterator<Item = (char, char)> {
3705 GENERAL_CATEGORY_PF
3706 .iter()
3707 .chain(GENERAL_CATEGORY_PI.iter())
3708 .chain(GENERAL_CATEGORY_PC.iter())
3709 .chain(GENERAL_CATEGORY_PD.iter())
3710 .chain(GENERAL_CATEGORY_PE.iter())
3711 .chain(GENERAL_CATEGORY_PS.iter())
3712 .chain(GENERAL_CATEGORY_PO.iter())
3713 .copied()
3714}
3715
3716pub fn iterate_general_category_s() -> impl Iterator<Item = (char, char)> {
3717 GENERAL_CATEGORY_SO
3718 .iter()
3719 .chain(GENERAL_CATEGORY_SK.iter())
3720 .chain(GENERAL_CATEGORY_SM.iter())
3721 .chain(GENERAL_CATEGORY_SC.iter())
3722 .copied()
3723}
3724
3725pub fn iterate_general_category_n() -> impl Iterator<Item = (char, char)> {
3726 GENERAL_CATEGORY_NL
3727 .iter()
3728 .chain(GENERAL_CATEGORY_NO.iter())
3729 .chain(GENERAL_CATEGORY_ND.iter())
3730 .copied()
3731}
3732
3733pub fn iterate_general_category_l() -> impl Iterator<Item = (char, char)> {
3734 GENERAL_CATEGORY_LM
3735 .iter()
3736 .chain(GENERAL_CATEGORY_LT.iter())
3737 .chain(GENERAL_CATEGORY_LO.iter())
3738 .chain(GENERAL_CATEGORY_LL.iter())
3739 .chain(GENERAL_CATEGORY_LU.iter())
3740 .copied()
3741}
3742
3743pub fn iterate_general_category_m() -> impl Iterator<Item = (char, char)> {
3744 GENERAL_CATEGORY_MC
3745 .iter()
3746 .chain(GENERAL_CATEGORY_ME.iter())
3747 .chain(GENERAL_CATEGORY_MN.iter())
3748 .copied()
3749}
3750
3751pub const BLOCK_TO_RANGES: &[(&str, char, char)] = &[
3752 ("adlam", '\u{1E900}', '\u{1E95F}'),
3753 ("aegeannumbers", '\u{10100}', '\u{1013F}'),
3754 ("ahom", '\u{11700}', '\u{1174F}'),
3755 ("alchemicalsymbols", '\u{1F700}', '\u{1F77F}'),
3756 ("alphabeticpresentationforms", '\u{FB00}', '\u{FB4F}'),
3757 ("anatolianhieroglyphs", '\u{14400}', '\u{1467F}'),
3758 ("ancientgreekmusicalnotation", '\u{1D200}', '\u{1D24F}'),
3759 ("ancientgreeknumbers", '\u{10140}', '\u{1018F}'),
3760 ("ancientsymbols", '\u{10190}', '\u{101CF}'),
3761 ("arabic", '\u{0600}', '\u{06FF}'),
3762 ("arabicextendeda", '\u{08A0}', '\u{08FF}'),
3763 ("arabicextendedb", '\u{0870}', '\u{089F}'),
3764 ("arabicextendedc", '\u{10EC0}', '\u{10EFF}'),
3765 (
3766 "arabicmathematicalalphabeticsymbols",
3767 '\u{1EE00}',
3768 '\u{1EEFF}',
3769 ),
3770 ("arabicpresentationformsa", '\u{FB50}', '\u{FDFF}'),
3771 ("arabicpresentationformsb", '\u{FE70}', '\u{FEFF}'),
3772 ("arabicsupplement", '\u{0750}', '\u{077F}'),
3773 ("armenian", '\u{0530}', '\u{058F}'),
3774 ("arrows", '\u{2190}', '\u{21FF}'),
3775 ("avestan", '\u{10B00}', '\u{10B3F}'),
3776 ("balinese", '\u{1B00}', '\u{1B7F}'),
3777 ("bamum", '\u{A6A0}', '\u{A6FF}'),
3778 ("bamumsupplement", '\u{16800}', '\u{16A3F}'),
3779 ("basiclatin", '\u{0000}', '\u{007F}'),
3780 ("bassavah", '\u{16AD0}', '\u{16AFF}'),
3781 ("batak", '\u{1BC0}', '\u{1BFF}'),
3782 ("bengali", '\u{0980}', '\u{09FF}'),
3783 ("bhaiksuki", '\u{11C00}', '\u{11C6F}'),
3784 ("blockelements", '\u{2580}', '\u{259F}'),
3785 ("bopomofo", '\u{3100}', '\u{312F}'),
3786 ("bopomofoextended", '\u{31A0}', '\u{31BF}'),
3787 ("boxdrawing", '\u{2500}', '\u{257F}'),
3788 ("brahmi", '\u{11000}', '\u{1107F}'),
3789 ("braillepatterns", '\u{2800}', '\u{28FF}'),
3790 ("buginese", '\u{1A00}', '\u{1A1F}'),
3791 ("buhid", '\u{1740}', '\u{175F}'),
3792 ("byzantinemusicalsymbols", '\u{1D000}', '\u{1D0FF}'),
3793 ("carian", '\u{102A0}', '\u{102DF}'),
3794 ("caucasianalbanian", '\u{10530}', '\u{1056F}'),
3795 ("chakma", '\u{11100}', '\u{1114F}'),
3796 ("cham", '\u{AA00}', '\u{AA5F}'),
3797 ("cherokee", '\u{13A0}', '\u{13FF}'),
3798 ("cherokeesupplement", '\u{AB70}', '\u{ABBF}'),
3799 ("chesssymbols", '\u{1FA00}', '\u{1FA6F}'),
3800 ("chorasmian", '\u{10FB0}', '\u{10FDF}'),
3801 ("cjkcompatibility", '\u{3300}', '\u{33FF}'),
3802 ("cjkcompatibilityforms", '\u{FE30}', '\u{FE4F}'),
3803 ("cjkcompatibilityideographs", '\u{F900}', '\u{FAFF}'),
3804 (
3805 "cjkcompatibilityideographssupplement",
3806 '\u{2F800}',
3807 '\u{2FA1F}',
3808 ),
3809 ("cjkradicalssupplement", '\u{2E80}', '\u{2EFF}'),
3810 ("cjkstrokes", '\u{31C0}', '\u{31EF}'),
3811 ("cjksymbolsandpunctuation", '\u{3000}', '\u{303F}'),
3812 ("cjkunifiedideographs", '\u{4E00}', '\u{9FFF}'),
3813 ("cjkunifiedideographsextensiona", '\u{3400}', '\u{4DBF}'),
3814 ("cjkunifiedideographsextensionb", '\u{20000}', '\u{2A6DF}'),
3815 ("cjkunifiedideographsextensionc", '\u{2A700}', '\u{2B73F}'),
3816 ("cjkunifiedideographsextensiond", '\u{2B740}', '\u{2B81F}'),
3817 ("cjkunifiedideographsextensione", '\u{2B820}', '\u{2CEAF}'),
3818 ("cjkunifiedideographsextensionf", '\u{2CEB0}', '\u{2EBEF}'),
3819 ("cjkunifiedideographsextensiong", '\u{30000}', '\u{3134F}'),
3820 ("cjkunifiedideographsextensionh", '\u{31350}', '\u{323AF}'),
3821 ("cjkunifiedideographsextensioni", '\u{2EBF0}', '\u{2EE5F}'),
3822 ("combiningdiacriticalmarks", '\u{0300}', '\u{036F}'),
3823 ("combiningdiacriticalmarksextended", '\u{1AB0}', '\u{1AFF}'),
3824 (
3825 "combiningdiacriticalmarksforsymbols",
3826 '\u{20D0}',
3827 '\u{20FF}',
3828 ),
3829 (
3830 "combiningdiacriticalmarkssupplement",
3831 '\u{1DC0}',
3832 '\u{1DFF}',
3833 ),
3834 ("combininghalfmarks", '\u{FE20}', '\u{FE2F}'),
3835 ("commonindicnumberforms", '\u{A830}', '\u{A83F}'),
3836 ("controlpictures", '\u{2400}', '\u{243F}'),
3837 ("coptic", '\u{2C80}', '\u{2CFF}'),
3838 ("copticepactnumbers", '\u{102E0}', '\u{102FF}'),
3839 ("countingrodnumerals", '\u{1D360}', '\u{1D37F}'),
3840 ("cuneiform", '\u{12000}', '\u{123FF}'),
3841 ("cuneiformnumbersandpunctuation", '\u{12400}', '\u{1247F}'),
3842 ("currencysymbols", '\u{20A0}', '\u{20CF}'),
3843 ("cypriotsyllabary", '\u{10800}', '\u{1083F}'),
3844 ("cyprominoan", '\u{12F90}', '\u{12FFF}'),
3845 ("cyrillic", '\u{0400}', '\u{04FF}'),
3846 ("cyrillicextendeda", '\u{2DE0}', '\u{2DFF}'),
3847 ("cyrillicextendedb", '\u{A640}', '\u{A69F}'),
3848 ("cyrillicextendedc", '\u{1C80}', '\u{1C8F}'),
3849 ("cyrillicextendedd", '\u{1E030}', '\u{1E08F}'),
3850 ("cyrillicsupplement", '\u{0500}', '\u{052F}'),
3851 ("deseret", '\u{10400}', '\u{1044F}'),
3852 ("devanagari", '\u{0900}', '\u{097F}'),
3853 ("devanagariextended", '\u{A8E0}', '\u{A8FF}'),
3854 ("devanagariextendeda", '\u{11B00}', '\u{11B5F}'),
3855 ("dingbats", '\u{2700}', '\u{27BF}'),
3856 ("divesakuru", '\u{11900}', '\u{1195F}'),
3857 ("dogra", '\u{11800}', '\u{1184F}'),
3858 ("dominotiles", '\u{1F030}', '\u{1F09F}'),
3859 ("duployan", '\u{1BC00}', '\u{1BC9F}'),
3860 ("earlydynasticcuneiform", '\u{12480}', '\u{1254F}'),
3861 ("egyptianhieroglyphformatcontrols", '\u{13430}', '\u{1345F}'),
3862 ("egyptianhieroglyphs", '\u{13000}', '\u{1342F}'),
3863 ("egyptianhieroglyphsextendeda", '\u{13460}', '\u{143FF}'),
3864 ("elbasan", '\u{10500}', '\u{1052F}'),
3865 ("elymaic", '\u{10FE0}', '\u{10FFF}'),
3866 ("emoticons", '\u{1F600}', '\u{1F64F}'),
3867 ("enclosedalphanumerics", '\u{2460}', '\u{24FF}'),
3868 ("enclosedalphanumericsupplement", '\u{1F100}', '\u{1F1FF}'),
3869 ("enclosedcjklettersandmonths", '\u{3200}', '\u{32FF}'),
3870 ("enclosedideographicsupplement", '\u{1F200}', '\u{1F2FF}'),
3871 ("ethiopic", '\u{1200}', '\u{137F}'),
3872 ("ethiopicextended", '\u{2D80}', '\u{2DDF}'),
3873 ("ethiopicextendeda", '\u{AB00}', '\u{AB2F}'),
3874 ("ethiopicextendedb", '\u{1E7E0}', '\u{1E7FF}'),
3875 ("ethiopicsupplement", '\u{1380}', '\u{139F}'),
3876 ("garay", '\u{10D40}', '\u{10D8F}'),
3877 ("generalpunctuation", '\u{2000}', '\u{206F}'),
3878 ("geometricshapes", '\u{25A0}', '\u{25FF}'),
3879 ("geometricshapesextended", '\u{1F780}', '\u{1F7FF}'),
3880 ("georgian", '\u{10A0}', '\u{10FF}'),
3881 ("georgianextended", '\u{1C90}', '\u{1CBF}'),
3882 ("georgiansupplement", '\u{2D00}', '\u{2D2F}'),
3883 ("glagolitic", '\u{2C00}', '\u{2C5F}'),
3884 ("glagoliticsupplement", '\u{1E000}', '\u{1E02F}'),
3885 ("gothic", '\u{10330}', '\u{1034F}'),
3886 ("grantha", '\u{11300}', '\u{1137F}'),
3887 ("greekandcoptic", '\u{0370}', '\u{03FF}'),
3888 ("greekextended", '\u{1F00}', '\u{1FFF}'),
3889 ("gujarati", '\u{0A80}', '\u{0AFF}'),
3890 ("gunjalagondi", '\u{11D60}', '\u{11DAF}'),
3891 ("gurmukhi", '\u{0A00}', '\u{0A7F}'),
3892 ("gurungkhema", '\u{16100}', '\u{1613F}'),
3893 ("halfwidthandfullwidthforms", '\u{FF00}', '\u{FFEF}'),
3894 ("hangulcompatibilityjamo", '\u{3130}', '\u{318F}'),
3895 ("hanguljamo", '\u{1100}', '\u{11FF}'),
3896 ("hanguljamoextendeda", '\u{A960}', '\u{A97F}'),
3897 ("hanguljamoextendedb", '\u{D7B0}', '\u{D7FF}'),
3898 ("hangulsyllables", '\u{AC00}', '\u{D7AF}'),
3899 ("hanifirohingya", '\u{10D00}', '\u{10D3F}'),
3900 ("hanunoo", '\u{1720}', '\u{173F}'),
3901 ("hatran", '\u{108E0}', '\u{108FF}'),
3902 ("hebrew", '\u{0590}', '\u{05FF}'),
3903 ("hiragana", '\u{3040}', '\u{309F}'),
3904 ("ideographicdescriptioncharacters", '\u{2FF0}', '\u{2FFF}'),
3905 ("ideographicsymbolsandpunctuation", '\u{16FE0}', '\u{16FFF}'),
3906 ("imperialaramaic", '\u{10840}', '\u{1085F}'),
3907 ("indicsiyaqnumbers", '\u{1EC70}', '\u{1ECBF}'),
3908 ("inscriptionalpahlavi", '\u{10B60}', '\u{10B7F}'),
3909 ("inscriptionalparthian", '\u{10B40}', '\u{10B5F}'),
3910 ("ipaextensions", '\u{0250}', '\u{02AF}'),
3911 ("javanese", '\u{A980}', '\u{A9DF}'),
3912 ("kaithi", '\u{11080}', '\u{110CF}'),
3913 ("kaktoviknumerals", '\u{1D2C0}', '\u{1D2DF}'),
3914 ("kanaextendeda", '\u{1B100}', '\u{1B12F}'),
3915 ("kanaextendedb", '\u{1AFF0}', '\u{1AFFF}'),
3916 ("kanasupplement", '\u{1B000}', '\u{1B0FF}'),
3917 ("kanbun", '\u{3190}', '\u{319F}'),
3918 ("kangxiradicals", '\u{2F00}', '\u{2FDF}'),
3919 ("kannada", '\u{0C80}', '\u{0CFF}'),
3920 ("katakana", '\u{30A0}', '\u{30FF}'),
3921 ("katakanaphoneticextensions", '\u{31F0}', '\u{31FF}'),
3922 ("kawi", '\u{11F00}', '\u{11F5F}'),
3923 ("kayahli", '\u{A900}', '\u{A92F}'),
3924 ("kharoshthi", '\u{10A00}', '\u{10A5F}'),
3925 ("khitansmallscript", '\u{18B00}', '\u{18CFF}'),
3926 ("khmer", '\u{1780}', '\u{17FF}'),
3927 ("khmersymbols", '\u{19E0}', '\u{19FF}'),
3928 ("khojki", '\u{11200}', '\u{1124F}'),
3929 ("khudawadi", '\u{112B0}', '\u{112FF}'),
3930 ("kiratrai", '\u{16D40}', '\u{16D7F}'),
3931 ("lao", '\u{0E80}', '\u{0EFF}'),
3932 ("latin1supplement", '\u{0080}', '\u{00FF}'),
3933 ("latinextendeda", '\u{0100}', '\u{017F}'),
3934 ("latinextendedadditional", '\u{1E00}', '\u{1EFF}'),
3935 ("latinextendedb", '\u{0180}', '\u{024F}'),
3936 ("latinextendedc", '\u{2C60}', '\u{2C7F}'),
3937 ("latinextendedd", '\u{A720}', '\u{A7FF}'),
3938 ("latinextendede", '\u{AB30}', '\u{AB6F}'),
3939 ("latinextendedf", '\u{10780}', '\u{107BF}'),
3940 ("latinextendedg", '\u{1DF00}', '\u{1DFFF}'),
3941 ("lepcha", '\u{1C00}', '\u{1C4F}'),
3942 ("letterlikesymbols", '\u{2100}', '\u{214F}'),
3943 ("limbu", '\u{1900}', '\u{194F}'),
3944 ("lineara", '\u{10600}', '\u{1077F}'),
3945 ("linearbideograms", '\u{10080}', '\u{100FF}'),
3946 ("linearbsyllabary", '\u{10000}', '\u{1007F}'),
3947 ("lisu", '\u{A4D0}', '\u{A4FF}'),
3948 ("lisusupplement", '\u{11FB0}', '\u{11FBF}'),
3949 ("lycian", '\u{10280}', '\u{1029F}'),
3950 ("lydian", '\u{10920}', '\u{1093F}'),
3951 ("mahajani", '\u{11150}', '\u{1117F}'),
3952 ("mahjongtiles", '\u{1F000}', '\u{1F02F}'),
3953 ("makasar", '\u{11EE0}', '\u{11EFF}'),
3954 ("malayalam", '\u{0D00}', '\u{0D7F}'),
3955 ("mandaic", '\u{0840}', '\u{085F}'),
3956 ("manichaean", '\u{10AC0}', '\u{10AFF}'),
3957 ("marchen", '\u{11C70}', '\u{11CBF}'),
3958 ("masaramgondi", '\u{11D00}', '\u{11D5F}'),
3959 ("mathematicalalphanumericsymbols", '\u{1D400}', '\u{1D7FF}'),
3960 ("mathematicaloperators", '\u{2200}', '\u{22FF}'),
3961 ("mayannumerals", '\u{1D2E0}', '\u{1D2FF}'),
3962 ("medefaidrin", '\u{16E40}', '\u{16E9F}'),
3963 ("meeteimayek", '\u{ABC0}', '\u{ABFF}'),
3964 ("meeteimayekextensions", '\u{AAE0}', '\u{AAFF}'),
3965 ("mendekikakui", '\u{1E800}', '\u{1E8DF}'),
3966 ("meroiticcursive", '\u{109A0}', '\u{109FF}'),
3967 ("meroitichieroglyphs", '\u{10980}', '\u{1099F}'),
3968 ("miao", '\u{16F00}', '\u{16F9F}'),
3969 ("miscellaneousmathematicalsymbolsa", '\u{27C0}', '\u{27EF}'),
3970 ("miscellaneousmathematicalsymbolsb", '\u{2980}', '\u{29FF}'),
3971 ("miscellaneoussymbols", '\u{2600}', '\u{26FF}'),
3972 ("miscellaneoussymbolsandarrows", '\u{2B00}', '\u{2BFF}'),
3973 (
3974 "miscellaneoussymbolsandpictographs",
3975 '\u{1F300}',
3976 '\u{1F5FF}',
3977 ),
3978 ("miscellaneoustechnical", '\u{2300}', '\u{23FF}'),
3979 ("modi", '\u{11600}', '\u{1165F}'),
3980 ("modifiertoneletters", '\u{A700}', '\u{A71F}'),
3981 ("mongolian", '\u{1800}', '\u{18AF}'),
3982 ("mongoliansupplement", '\u{11660}', '\u{1167F}'),
3983 ("mro", '\u{16A40}', '\u{16A6F}'),
3984 ("multani", '\u{11280}', '\u{112AF}'),
3985 ("musicalsymbols", '\u{1D100}', '\u{1D1FF}'),
3986 ("myanmar", '\u{1000}', '\u{109F}'),
3987 ("myanmarextendeda", '\u{AA60}', '\u{AA7F}'),
3988 ("myanmarextendedb", '\u{A9E0}', '\u{A9FF}'),
3989 ("myanmarextendedc", '\u{116D0}', '\u{116FF}'),
3990 ("nabataean", '\u{10880}', '\u{108AF}'),
3991 ("nagmundari", '\u{1E4D0}', '\u{1E4FF}'),
3992 ("nandinagari", '\u{119A0}', '\u{119FF}'),
3993 ("newa", '\u{11400}', '\u{1147F}'),
3994 ("newtailue", '\u{1980}', '\u{19DF}'),
3995 ("nko", '\u{07C0}', '\u{07FF}'),
3996 ("numberforms", '\u{2150}', '\u{218F}'),
3997 ("nushu", '\u{1B170}', '\u{1B2FF}'),
3998 ("nyiakengpuachuehmong", '\u{1E100}', '\u{1E14F}'),
3999 ("ogham", '\u{1680}', '\u{169F}'),
4000 ("olchiki", '\u{1C50}', '\u{1C7F}'),
4001 ("oldhungarian", '\u{10C80}', '\u{10CFF}'),
4002 ("olditalic", '\u{10300}', '\u{1032F}'),
4003 ("oldnortharabian", '\u{10A80}', '\u{10A9F}'),
4004 ("oldpermic", '\u{10350}', '\u{1037F}'),
4005 ("oldpersian", '\u{103A0}', '\u{103DF}'),
4006 ("oldsogdian", '\u{10F00}', '\u{10F2F}'),
4007 ("oldsoutharabian", '\u{10A60}', '\u{10A7F}'),
4008 ("oldturkic", '\u{10C00}', '\u{10C4F}'),
4009 ("olduyghur", '\u{10F70}', '\u{10FAF}'),
4010 ("olonal", '\u{1E5D0}', '\u{1E5FF}'),
4011 ("opticalcharacterrecognition", '\u{2440}', '\u{245F}'),
4012 ("oriya", '\u{0B00}', '\u{0B7F}'),
4013 ("ornamentaldingbats", '\u{1F650}', '\u{1F67F}'),
4014 ("osage", '\u{104B0}', '\u{104FF}'),
4015 ("osmanya", '\u{10480}', '\u{104AF}'),
4016 ("ottomansiyaqnumbers", '\u{1ED00}', '\u{1ED4F}'),
4017 ("pahawhhmong", '\u{16B00}', '\u{16B8F}'),
4018 ("palmyrene", '\u{10860}', '\u{1087F}'),
4019 ("paucinhau", '\u{11AC0}', '\u{11AFF}'),
4020 ("phagspa", '\u{A840}', '\u{A87F}'),
4021 ("phaistosdisc", '\u{101D0}', '\u{101FF}'),
4022 ("phoenician", '\u{10900}', '\u{1091F}'),
4023 ("phoneticextensions", '\u{1D00}', '\u{1D7F}'),
4024 ("phoneticextensionssupplement", '\u{1D80}', '\u{1DBF}'),
4025 ("playingcards", '\u{1F0A0}', '\u{1F0FF}'),
4026 ("privateusearea", '\u{E000}', '\u{F8FF}'),
4027 ("psalterpahlavi", '\u{10B80}', '\u{10BAF}'),
4028 ("rejang", '\u{A930}', '\u{A95F}'),
4029 ("ruminumeralsymbols", '\u{10E60}', '\u{10E7F}'),
4030 ("runic", '\u{16A0}', '\u{16FF}'),
4031 ("samaritan", '\u{0800}', '\u{083F}'),
4032 ("saurashtra", '\u{A880}', '\u{A8DF}'),
4033 ("sharada", '\u{11180}', '\u{111DF}'),
4034 ("shavian", '\u{10450}', '\u{1047F}'),
4035 ("shorthandformatcontrols", '\u{1BCA0}', '\u{1BCAF}'),
4036 ("siddham", '\u{11580}', '\u{115FF}'),
4037 ("sinhala", '\u{0D80}', '\u{0DFF}'),
4038 ("sinhalaarchaicnumbers", '\u{111E0}', '\u{111FF}'),
4039 ("smallformvariants", '\u{FE50}', '\u{FE6F}'),
4040 ("smallkanaextension", '\u{1B130}', '\u{1B16F}'),
4041 ("sogdian", '\u{10F30}', '\u{10F6F}'),
4042 ("sorasompeng", '\u{110D0}', '\u{110FF}'),
4043 ("soyombo", '\u{11A50}', '\u{11AAF}'),
4044 ("spacingmodifierletters", '\u{02B0}', '\u{02FF}'),
4045 ("specials", '\u{FFF0}', '\u{FFFF}'),
4046 ("sundanese", '\u{1B80}', '\u{1BBF}'),
4047 ("sundanesesupplement", '\u{1CC0}', '\u{1CCF}'),
4048 ("sunuwar", '\u{11BC0}', '\u{11BFF}'),
4049 ("superscriptsandsubscripts", '\u{2070}', '\u{209F}'),
4050 ("supplementalarrowsa", '\u{27F0}', '\u{27FF}'),
4051 ("supplementalarrowsb", '\u{2900}', '\u{297F}'),
4052 ("supplementalarrowsc", '\u{1F800}', '\u{1F8FF}'),
4053 ("supplementalmathematicaloperators", '\u{2A00}', '\u{2AFF}'),
4054 ("supplementalpunctuation", '\u{2E00}', '\u{2E7F}'),
4055 (
4056 "supplementalsymbolsandpictographs",
4057 '\u{1F900}',
4058 '\u{1F9FF}',
4059 ),
4060 ("supplementaryprivateuseareaa", '\u{F0000}', '\u{FFFFF}'),
4061 ("supplementaryprivateuseareab", '\u{100000}', '\u{10FFFF}'),
4062 ("suttonsignwriting", '\u{1D800}', '\u{1DAAF}'),
4063 ("sylotinagri", '\u{A800}', '\u{A82F}'),
4064 ("symbolsandpictographsextendeda", '\u{1FA70}', '\u{1FAFF}'),
4065 ("symbolsforlegacycomputing", '\u{1FB00}', '\u{1FBFF}'),
4066 (
4067 "symbolsforlegacycomputingsupplement",
4068 '\u{1CC00}',
4069 '\u{1CEBF}',
4070 ),
4071 ("syriac", '\u{0700}', '\u{074F}'),
4072 ("syriacsupplement", '\u{0860}', '\u{086F}'),
4073 ("tagalog", '\u{1700}', '\u{171F}'),
4074 ("tagbanwa", '\u{1760}', '\u{177F}'),
4075 ("tags", '\u{E0000}', '\u{E007F}'),
4076 ("taile", '\u{1950}', '\u{197F}'),
4077 ("taitham", '\u{1A20}', '\u{1AAF}'),
4078 ("taiviet", '\u{AA80}', '\u{AADF}'),
4079 ("taixuanjingsymbols", '\u{1D300}', '\u{1D35F}'),
4080 ("takri", '\u{11680}', '\u{116CF}'),
4081 ("tamil", '\u{0B80}', '\u{0BFF}'),
4082 ("tamilsupplement", '\u{11FC0}', '\u{11FFF}'),
4083 ("tangsa", '\u{16A70}', '\u{16ACF}'),
4084 ("tangut", '\u{17000}', '\u{187FF}'),
4085 ("tangutcomponents", '\u{18800}', '\u{18AFF}'),
4086 ("tangutsupplement", '\u{18D00}', '\u{18D7F}'),
4087 ("telugu", '\u{0C00}', '\u{0C7F}'),
4088 ("thaana", '\u{0780}', '\u{07BF}'),
4089 ("thai", '\u{0E00}', '\u{0E7F}'),
4090 ("tibetan", '\u{0F00}', '\u{0FFF}'),
4091 ("tifinagh", '\u{2D30}', '\u{2D7F}'),
4092 ("tirhuta", '\u{11480}', '\u{114DF}'),
4093 ("todhri", '\u{105C0}', '\u{105FF}'),
4094 ("toto", '\u{1E290}', '\u{1E2BF}'),
4095 ("transportandmapsymbols", '\u{1F680}', '\u{1F6FF}'),
4096 ("tulutigalari", '\u{11380}', '\u{113FF}'),
4097 ("ugaritic", '\u{10380}', '\u{1039F}'),
4098 ("unifiedcanadianaboriginalsyllabics", '\u{1400}', '\u{167F}'),
4099 (
4100 "unifiedcanadianaboriginalsyllabicsextended",
4101 '\u{18B0}',
4102 '\u{18FF}',
4103 ),
4104 (
4105 "unifiedcanadianaboriginalsyllabicsextendeda",
4106 '\u{11AB0}',
4107 '\u{11ABF}',
4108 ),
4109 ("vai", '\u{A500}', '\u{A63F}'),
4110 ("variationselectors", '\u{FE00}', '\u{FE0F}'),
4111 ("variationselectorssupplement", '\u{E0100}', '\u{E01EF}'),
4112 ("vedicextensions", '\u{1CD0}', '\u{1CFF}'),
4113 ("verticalforms", '\u{FE10}', '\u{FE1F}'),
4114 ("vithkuqi", '\u{10570}', '\u{105BF}'),
4115 ("wancho", '\u{1E2C0}', '\u{1E2FF}'),
4116 ("warangciti", '\u{118A0}', '\u{118FF}'),
4117 ("yezidi", '\u{10E80}', '\u{10EBF}'),
4118 ("yijinghexagramsymbols", '\u{4DC0}', '\u{4DFF}'),
4119 ("yiradicals", '\u{A490}', '\u{A4CF}'),
4120 ("yisyllables", '\u{A000}', '\u{A48F}'),
4121 ("zanabazarsquare", '\u{11A00}', '\u{11A4F}'),
4122 ("znamennymusicalnotation", '\u{1CF00}', '\u{1CFCF}'),
4123];
4124
4125pub fn seach_block_range(block_name: &str) -> Option<(char, char)> {
4126 let block_name = block_name
4132 .trim()
4133 .replace(|c: char| c.is_whitespace() || c == '-' || c == '_', "")
4134 .to_lowercase();
4135 BLOCK_TO_RANGES
4136 .binary_search_by_key(&block_name.as_str(), |k| k.0)
4137 .ok()
4138 .map(|i| (BLOCK_TO_RANGES[i].1, BLOCK_TO_RANGES[i].2))
4139}