yeslogic_unicode_blocks/
unicode_blocks.rs

1// The dataset is from https://www.unicode.org/Public/UNIDATA/Blocks.txt
2
3use crate::UnicodeBlock;
4
5pub const VERSION: &str = "16.0.0";
6pub const BASIC_LATIN: UnicodeBlock = UnicodeBlock {
7    name: "Basic Latin",
8    start: 0x0000,
9    end: 0x007F,
10};
11pub const LATIN_1_SUPPLEMENT: UnicodeBlock = UnicodeBlock {
12    name: "Latin-1 Supplement",
13    start: 0x0080,
14    end: 0x00FF,
15};
16pub const LATIN_EXTENDED_A: UnicodeBlock = UnicodeBlock {
17    name: "Latin Extended-A",
18    start: 0x0100,
19    end: 0x017F,
20};
21pub const LATIN_EXTENDED_B: UnicodeBlock = UnicodeBlock {
22    name: "Latin Extended-B",
23    start: 0x0180,
24    end: 0x024F,
25};
26pub const IPA_EXTENSIONS: UnicodeBlock = UnicodeBlock {
27    name: "IPA Extensions",
28    start: 0x0250,
29    end: 0x02AF,
30};
31pub const SPACING_MODIFIER_LETTERS: UnicodeBlock = UnicodeBlock {
32    name: "Spacing Modifier Letters",
33    start: 0x02B0,
34    end: 0x02FF,
35};
36pub const COMBINING_DIACRITICAL_MARKS: UnicodeBlock = UnicodeBlock {
37    name: "Combining Diacritical Marks",
38    start: 0x0300,
39    end: 0x036F,
40};
41pub const GREEK_AND_COPTIC: UnicodeBlock = UnicodeBlock {
42    name: "Greek and Coptic",
43    start: 0x0370,
44    end: 0x03FF,
45};
46pub const CYRILLIC: UnicodeBlock = UnicodeBlock {
47    name: "Cyrillic",
48    start: 0x0400,
49    end: 0x04FF,
50};
51pub const CYRILLIC_SUPPLEMENT: UnicodeBlock = UnicodeBlock {
52    name: "Cyrillic Supplement",
53    start: 0x0500,
54    end: 0x052F,
55};
56pub const ARMENIAN: UnicodeBlock = UnicodeBlock {
57    name: "Armenian",
58    start: 0x0530,
59    end: 0x058F,
60};
61pub const HEBREW: UnicodeBlock = UnicodeBlock {
62    name: "Hebrew",
63    start: 0x0590,
64    end: 0x05FF,
65};
66pub const ARABIC: UnicodeBlock = UnicodeBlock {
67    name: "Arabic",
68    start: 0x0600,
69    end: 0x06FF,
70};
71pub const SYRIAC: UnicodeBlock = UnicodeBlock {
72    name: "Syriac",
73    start: 0x0700,
74    end: 0x074F,
75};
76pub const ARABIC_SUPPLEMENT: UnicodeBlock = UnicodeBlock {
77    name: "Arabic Supplement",
78    start: 0x0750,
79    end: 0x077F,
80};
81pub const THAANA: UnicodeBlock = UnicodeBlock {
82    name: "Thaana",
83    start: 0x0780,
84    end: 0x07BF,
85};
86pub const NKO: UnicodeBlock = UnicodeBlock {
87    name: "NKo",
88    start: 0x07C0,
89    end: 0x07FF,
90};
91pub const SAMARITAN: UnicodeBlock = UnicodeBlock {
92    name: "Samaritan",
93    start: 0x0800,
94    end: 0x083F,
95};
96pub const MANDAIC: UnicodeBlock = UnicodeBlock {
97    name: "Mandaic",
98    start: 0x0840,
99    end: 0x085F,
100};
101pub const SYRIAC_SUPPLEMENT: UnicodeBlock = UnicodeBlock {
102    name: "Syriac Supplement",
103    start: 0x0860,
104    end: 0x086F,
105};
106pub const ARABIC_EXTENDED_B: UnicodeBlock = UnicodeBlock {
107    name: "Arabic Extended-B",
108    start: 0x0870,
109    end: 0x089F,
110};
111pub const ARABIC_EXTENDED_A: UnicodeBlock = UnicodeBlock {
112    name: "Arabic Extended-A",
113    start: 0x08A0,
114    end: 0x08FF,
115};
116pub const DEVANAGARI: UnicodeBlock = UnicodeBlock {
117    name: "Devanagari",
118    start: 0x0900,
119    end: 0x097F,
120};
121pub const BENGALI: UnicodeBlock = UnicodeBlock {
122    name: "Bengali",
123    start: 0x0980,
124    end: 0x09FF,
125};
126pub const GURMUKHI: UnicodeBlock = UnicodeBlock {
127    name: "Gurmukhi",
128    start: 0x0A00,
129    end: 0x0A7F,
130};
131pub const GUJARATI: UnicodeBlock = UnicodeBlock {
132    name: "Gujarati",
133    start: 0x0A80,
134    end: 0x0AFF,
135};
136pub const ORIYA: UnicodeBlock = UnicodeBlock {
137    name: "Oriya",
138    start: 0x0B00,
139    end: 0x0B7F,
140};
141pub const TAMIL: UnicodeBlock = UnicodeBlock {
142    name: "Tamil",
143    start: 0x0B80,
144    end: 0x0BFF,
145};
146pub const TELUGU: UnicodeBlock = UnicodeBlock {
147    name: "Telugu",
148    start: 0x0C00,
149    end: 0x0C7F,
150};
151pub const KANNADA: UnicodeBlock = UnicodeBlock {
152    name: "Kannada",
153    start: 0x0C80,
154    end: 0x0CFF,
155};
156pub const MALAYALAM: UnicodeBlock = UnicodeBlock {
157    name: "Malayalam",
158    start: 0x0D00,
159    end: 0x0D7F,
160};
161pub const SINHALA: UnicodeBlock = UnicodeBlock {
162    name: "Sinhala",
163    start: 0x0D80,
164    end: 0x0DFF,
165};
166pub const THAI: UnicodeBlock = UnicodeBlock {
167    name: "Thai",
168    start: 0x0E00,
169    end: 0x0E7F,
170};
171pub const LAO: UnicodeBlock = UnicodeBlock {
172    name: "Lao",
173    start: 0x0E80,
174    end: 0x0EFF,
175};
176pub const TIBETAN: UnicodeBlock = UnicodeBlock {
177    name: "Tibetan",
178    start: 0x0F00,
179    end: 0x0FFF,
180};
181pub const MYANMAR: UnicodeBlock = UnicodeBlock {
182    name: "Myanmar",
183    start: 0x1000,
184    end: 0x109F,
185};
186pub const GEORGIAN: UnicodeBlock = UnicodeBlock {
187    name: "Georgian",
188    start: 0x10A0,
189    end: 0x10FF,
190};
191pub const HANGUL_JAMO: UnicodeBlock = UnicodeBlock {
192    name: "Hangul Jamo",
193    start: 0x1100,
194    end: 0x11FF,
195};
196pub const ETHIOPIC: UnicodeBlock = UnicodeBlock {
197    name: "Ethiopic",
198    start: 0x1200,
199    end: 0x137F,
200};
201pub const ETHIOPIC_SUPPLEMENT: UnicodeBlock = UnicodeBlock {
202    name: "Ethiopic Supplement",
203    start: 0x1380,
204    end: 0x139F,
205};
206pub const CHEROKEE: UnicodeBlock = UnicodeBlock {
207    name: "Cherokee",
208    start: 0x13A0,
209    end: 0x13FF,
210};
211pub const UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS: UnicodeBlock = UnicodeBlock {
212    name: "Unified Canadian Aboriginal Syllabics",
213    start: 0x1400,
214    end: 0x167F,
215};
216pub const OGHAM: UnicodeBlock = UnicodeBlock {
217    name: "Ogham",
218    start: 0x1680,
219    end: 0x169F,
220};
221pub const RUNIC: UnicodeBlock = UnicodeBlock {
222    name: "Runic",
223    start: 0x16A0,
224    end: 0x16FF,
225};
226pub const TAGALOG: UnicodeBlock = UnicodeBlock {
227    name: "Tagalog",
228    start: 0x1700,
229    end: 0x171F,
230};
231pub const HANUNOO: UnicodeBlock = UnicodeBlock {
232    name: "Hanunoo",
233    start: 0x1720,
234    end: 0x173F,
235};
236pub const BUHID: UnicodeBlock = UnicodeBlock {
237    name: "Buhid",
238    start: 0x1740,
239    end: 0x175F,
240};
241pub const TAGBANWA: UnicodeBlock = UnicodeBlock {
242    name: "Tagbanwa",
243    start: 0x1760,
244    end: 0x177F,
245};
246pub const KHMER: UnicodeBlock = UnicodeBlock {
247    name: "Khmer",
248    start: 0x1780,
249    end: 0x17FF,
250};
251pub const MONGOLIAN: UnicodeBlock = UnicodeBlock {
252    name: "Mongolian",
253    start: 0x1800,
254    end: 0x18AF,
255};
256pub const UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS_EXTENDED: UnicodeBlock = UnicodeBlock {
257    name: "Unified Canadian Aboriginal Syllabics Extended",
258    start: 0x18B0,
259    end: 0x18FF,
260};
261pub const LIMBU: UnicodeBlock = UnicodeBlock {
262    name: "Limbu",
263    start: 0x1900,
264    end: 0x194F,
265};
266pub const TAI_LE: UnicodeBlock = UnicodeBlock {
267    name: "Tai Le",
268    start: 0x1950,
269    end: 0x197F,
270};
271pub const NEW_TAI_LUE: UnicodeBlock = UnicodeBlock {
272    name: "New Tai Lue",
273    start: 0x1980,
274    end: 0x19DF,
275};
276pub const KHMER_SYMBOLS: UnicodeBlock = UnicodeBlock {
277    name: "Khmer Symbols",
278    start: 0x19E0,
279    end: 0x19FF,
280};
281pub const BUGINESE: UnicodeBlock = UnicodeBlock {
282    name: "Buginese",
283    start: 0x1A00,
284    end: 0x1A1F,
285};
286pub const TAI_THAM: UnicodeBlock = UnicodeBlock {
287    name: "Tai Tham",
288    start: 0x1A20,
289    end: 0x1AAF,
290};
291pub const COMBINING_DIACRITICAL_MARKS_EXTENDED: UnicodeBlock = UnicodeBlock {
292    name: "Combining Diacritical Marks Extended",
293    start: 0x1AB0,
294    end: 0x1AFF,
295};
296pub const BALINESE: UnicodeBlock = UnicodeBlock {
297    name: "Balinese",
298    start: 0x1B00,
299    end: 0x1B7F,
300};
301pub const SUNDANESE: UnicodeBlock = UnicodeBlock {
302    name: "Sundanese",
303    start: 0x1B80,
304    end: 0x1BBF,
305};
306pub const BATAK: UnicodeBlock = UnicodeBlock {
307    name: "Batak",
308    start: 0x1BC0,
309    end: 0x1BFF,
310};
311pub const LEPCHA: UnicodeBlock = UnicodeBlock {
312    name: "Lepcha",
313    start: 0x1C00,
314    end: 0x1C4F,
315};
316pub const OL_CHIKI: UnicodeBlock = UnicodeBlock {
317    name: "Ol Chiki",
318    start: 0x1C50,
319    end: 0x1C7F,
320};
321pub const CYRILLIC_EXTENDED_C: UnicodeBlock = UnicodeBlock {
322    name: "Cyrillic Extended-C",
323    start: 0x1C80,
324    end: 0x1C8F,
325};
326pub const GEORGIAN_EXTENDED: UnicodeBlock = UnicodeBlock {
327    name: "Georgian Extended",
328    start: 0x1C90,
329    end: 0x1CBF,
330};
331pub const SUNDANESE_SUPPLEMENT: UnicodeBlock = UnicodeBlock {
332    name: "Sundanese Supplement",
333    start: 0x1CC0,
334    end: 0x1CCF,
335};
336pub const VEDIC_EXTENSIONS: UnicodeBlock = UnicodeBlock {
337    name: "Vedic Extensions",
338    start: 0x1CD0,
339    end: 0x1CFF,
340};
341pub const PHONETIC_EXTENSIONS: UnicodeBlock = UnicodeBlock {
342    name: "Phonetic Extensions",
343    start: 0x1D00,
344    end: 0x1D7F,
345};
346pub const PHONETIC_EXTENSIONS_SUPPLEMENT: UnicodeBlock = UnicodeBlock {
347    name: "Phonetic Extensions Supplement",
348    start: 0x1D80,
349    end: 0x1DBF,
350};
351pub const COMBINING_DIACRITICAL_MARKS_SUPPLEMENT: UnicodeBlock = UnicodeBlock {
352    name: "Combining Diacritical Marks Supplement",
353    start: 0x1DC0,
354    end: 0x1DFF,
355};
356pub const LATIN_EXTENDED_ADDITIONAL: UnicodeBlock = UnicodeBlock {
357    name: "Latin Extended Additional",
358    start: 0x1E00,
359    end: 0x1EFF,
360};
361pub const GREEK_EXTENDED: UnicodeBlock = UnicodeBlock {
362    name: "Greek Extended",
363    start: 0x1F00,
364    end: 0x1FFF,
365};
366pub const GENERAL_PUNCTUATION: UnicodeBlock = UnicodeBlock {
367    name: "General Punctuation",
368    start: 0x2000,
369    end: 0x206F,
370};
371pub const SUPERSCRIPTS_AND_SUBSCRIPTS: UnicodeBlock = UnicodeBlock {
372    name: "Superscripts and Subscripts",
373    start: 0x2070,
374    end: 0x209F,
375};
376pub const CURRENCY_SYMBOLS: UnicodeBlock = UnicodeBlock {
377    name: "Currency Symbols",
378    start: 0x20A0,
379    end: 0x20CF,
380};
381pub const COMBINING_DIACRITICAL_MARKS_FOR_SYMBOLS: UnicodeBlock = UnicodeBlock {
382    name: "Combining Diacritical Marks for Symbols",
383    start: 0x20D0,
384    end: 0x20FF,
385};
386pub const LETTERLIKE_SYMBOLS: UnicodeBlock = UnicodeBlock {
387    name: "Letterlike Symbols",
388    start: 0x2100,
389    end: 0x214F,
390};
391pub const NUMBER_FORMS: UnicodeBlock = UnicodeBlock {
392    name: "Number Forms",
393    start: 0x2150,
394    end: 0x218F,
395};
396pub const ARROWS: UnicodeBlock = UnicodeBlock {
397    name: "Arrows",
398    start: 0x2190,
399    end: 0x21FF,
400};
401pub const MATHEMATICAL_OPERATORS: UnicodeBlock = UnicodeBlock {
402    name: "Mathematical Operators",
403    start: 0x2200,
404    end: 0x22FF,
405};
406pub const MISCELLANEOUS_TECHNICAL: UnicodeBlock = UnicodeBlock {
407    name: "Miscellaneous Technical",
408    start: 0x2300,
409    end: 0x23FF,
410};
411pub const CONTROL_PICTURES: UnicodeBlock = UnicodeBlock {
412    name: "Control Pictures",
413    start: 0x2400,
414    end: 0x243F,
415};
416pub const OPTICAL_CHARACTER_RECOGNITION: UnicodeBlock = UnicodeBlock {
417    name: "Optical Character Recognition",
418    start: 0x2440,
419    end: 0x245F,
420};
421pub const ENCLOSED_ALPHANUMERICS: UnicodeBlock = UnicodeBlock {
422    name: "Enclosed Alphanumerics",
423    start: 0x2460,
424    end: 0x24FF,
425};
426pub const BOX_DRAWING: UnicodeBlock = UnicodeBlock {
427    name: "Box Drawing",
428    start: 0x2500,
429    end: 0x257F,
430};
431pub const BLOCK_ELEMENTS: UnicodeBlock = UnicodeBlock {
432    name: "Block Elements",
433    start: 0x2580,
434    end: 0x259F,
435};
436pub const GEOMETRIC_SHAPES: UnicodeBlock = UnicodeBlock {
437    name: "Geometric Shapes",
438    start: 0x25A0,
439    end: 0x25FF,
440};
441pub const MISCELLANEOUS_SYMBOLS: UnicodeBlock = UnicodeBlock {
442    name: "Miscellaneous Symbols",
443    start: 0x2600,
444    end: 0x26FF,
445};
446pub const DINGBATS: UnicodeBlock = UnicodeBlock {
447    name: "Dingbats",
448    start: 0x2700,
449    end: 0x27BF,
450};
451pub const MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A: UnicodeBlock = UnicodeBlock {
452    name: "Miscellaneous Mathematical Symbols-A",
453    start: 0x27C0,
454    end: 0x27EF,
455};
456pub const SUPPLEMENTAL_ARROWS_A: UnicodeBlock = UnicodeBlock {
457    name: "Supplemental Arrows-A",
458    start: 0x27F0,
459    end: 0x27FF,
460};
461pub const BRAILLE_PATTERNS: UnicodeBlock = UnicodeBlock {
462    name: "Braille Patterns",
463    start: 0x2800,
464    end: 0x28FF,
465};
466pub const SUPPLEMENTAL_ARROWS_B: UnicodeBlock = UnicodeBlock {
467    name: "Supplemental Arrows-B",
468    start: 0x2900,
469    end: 0x297F,
470};
471pub const MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B: UnicodeBlock = UnicodeBlock {
472    name: "Miscellaneous Mathematical Symbols-B",
473    start: 0x2980,
474    end: 0x29FF,
475};
476pub const SUPPLEMENTAL_MATHEMATICAL_OPERATORS: UnicodeBlock = UnicodeBlock {
477    name: "Supplemental Mathematical Operators",
478    start: 0x2A00,
479    end: 0x2AFF,
480};
481pub const MISCELLANEOUS_SYMBOLS_AND_ARROWS: UnicodeBlock = UnicodeBlock {
482    name: "Miscellaneous Symbols and Arrows",
483    start: 0x2B00,
484    end: 0x2BFF,
485};
486pub const GLAGOLITIC: UnicodeBlock = UnicodeBlock {
487    name: "Glagolitic",
488    start: 0x2C00,
489    end: 0x2C5F,
490};
491pub const LATIN_EXTENDED_C: UnicodeBlock = UnicodeBlock {
492    name: "Latin Extended-C",
493    start: 0x2C60,
494    end: 0x2C7F,
495};
496pub const COPTIC: UnicodeBlock = UnicodeBlock {
497    name: "Coptic",
498    start: 0x2C80,
499    end: 0x2CFF,
500};
501pub const GEORGIAN_SUPPLEMENT: UnicodeBlock = UnicodeBlock {
502    name: "Georgian Supplement",
503    start: 0x2D00,
504    end: 0x2D2F,
505};
506pub const TIFINAGH: UnicodeBlock = UnicodeBlock {
507    name: "Tifinagh",
508    start: 0x2D30,
509    end: 0x2D7F,
510};
511pub const ETHIOPIC_EXTENDED: UnicodeBlock = UnicodeBlock {
512    name: "Ethiopic Extended",
513    start: 0x2D80,
514    end: 0x2DDF,
515};
516pub const CYRILLIC_EXTENDED_A: UnicodeBlock = UnicodeBlock {
517    name: "Cyrillic Extended-A",
518    start: 0x2DE0,
519    end: 0x2DFF,
520};
521pub const SUPPLEMENTAL_PUNCTUATION: UnicodeBlock = UnicodeBlock {
522    name: "Supplemental Punctuation",
523    start: 0x2E00,
524    end: 0x2E7F,
525};
526pub const CJK_RADICALS_SUPPLEMENT: UnicodeBlock = UnicodeBlock {
527    name: "CJK Radicals Supplement",
528    start: 0x2E80,
529    end: 0x2EFF,
530};
531pub const KANGXI_RADICALS: UnicodeBlock = UnicodeBlock {
532    name: "Kangxi Radicals",
533    start: 0x2F00,
534    end: 0x2FDF,
535};
536pub const IDEOGRAPHIC_DESCRIPTION_CHARACTERS: UnicodeBlock = UnicodeBlock {
537    name: "Ideographic Description Characters",
538    start: 0x2FF0,
539    end: 0x2FFF,
540};
541pub const CJK_SYMBOLS_AND_PUNCTUATION: UnicodeBlock = UnicodeBlock {
542    name: "CJK Symbols and Punctuation",
543    start: 0x3000,
544    end: 0x303F,
545};
546pub const HIRAGANA: UnicodeBlock = UnicodeBlock {
547    name: "Hiragana",
548    start: 0x3040,
549    end: 0x309F,
550};
551pub const KATAKANA: UnicodeBlock = UnicodeBlock {
552    name: "Katakana",
553    start: 0x30A0,
554    end: 0x30FF,
555};
556pub const BOPOMOFO: UnicodeBlock = UnicodeBlock {
557    name: "Bopomofo",
558    start: 0x3100,
559    end: 0x312F,
560};
561pub const HANGUL_COMPATIBILITY_JAMO: UnicodeBlock = UnicodeBlock {
562    name: "Hangul Compatibility Jamo",
563    start: 0x3130,
564    end: 0x318F,
565};
566pub const KANBUN: UnicodeBlock = UnicodeBlock {
567    name: "Kanbun",
568    start: 0x3190,
569    end: 0x319F,
570};
571pub const BOPOMOFO_EXTENDED: UnicodeBlock = UnicodeBlock {
572    name: "Bopomofo Extended",
573    start: 0x31A0,
574    end: 0x31BF,
575};
576pub const CJK_STROKES: UnicodeBlock = UnicodeBlock {
577    name: "CJK Strokes",
578    start: 0x31C0,
579    end: 0x31EF,
580};
581pub const KATAKANA_PHONETIC_EXTENSIONS: UnicodeBlock = UnicodeBlock {
582    name: "Katakana Phonetic Extensions",
583    start: 0x31F0,
584    end: 0x31FF,
585};
586pub const ENCLOSED_CJK_LETTERS_AND_MONTHS: UnicodeBlock = UnicodeBlock {
587    name: "Enclosed CJK Letters and Months",
588    start: 0x3200,
589    end: 0x32FF,
590};
591pub const CJK_COMPATIBILITY: UnicodeBlock = UnicodeBlock {
592    name: "CJK Compatibility",
593    start: 0x3300,
594    end: 0x33FF,
595};
596pub const CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A: UnicodeBlock = UnicodeBlock {
597    name: "CJK Unified Ideographs Extension A",
598    start: 0x3400,
599    end: 0x4DBF,
600};
601pub const YIJING_HEXAGRAM_SYMBOLS: UnicodeBlock = UnicodeBlock {
602    name: "Yijing Hexagram Symbols",
603    start: 0x4DC0,
604    end: 0x4DFF,
605};
606pub const CJK_UNIFIED_IDEOGRAPHS: UnicodeBlock = UnicodeBlock {
607    name: "CJK Unified Ideographs",
608    start: 0x4E00,
609    end: 0x9FFF,
610};
611pub const YI_SYLLABLES: UnicodeBlock = UnicodeBlock {
612    name: "Yi Syllables",
613    start: 0xA000,
614    end: 0xA48F,
615};
616pub const YI_RADICALS: UnicodeBlock = UnicodeBlock {
617    name: "Yi Radicals",
618    start: 0xA490,
619    end: 0xA4CF,
620};
621pub const LISU: UnicodeBlock = UnicodeBlock {
622    name: "Lisu",
623    start: 0xA4D0,
624    end: 0xA4FF,
625};
626pub const VAI: UnicodeBlock = UnicodeBlock {
627    name: "Vai",
628    start: 0xA500,
629    end: 0xA63F,
630};
631pub const CYRILLIC_EXTENDED_B: UnicodeBlock = UnicodeBlock {
632    name: "Cyrillic Extended-B",
633    start: 0xA640,
634    end: 0xA69F,
635};
636pub const BAMUM: UnicodeBlock = UnicodeBlock {
637    name: "Bamum",
638    start: 0xA6A0,
639    end: 0xA6FF,
640};
641pub const MODIFIER_TONE_LETTERS: UnicodeBlock = UnicodeBlock {
642    name: "Modifier Tone Letters",
643    start: 0xA700,
644    end: 0xA71F,
645};
646pub const LATIN_EXTENDED_D: UnicodeBlock = UnicodeBlock {
647    name: "Latin Extended-D",
648    start: 0xA720,
649    end: 0xA7FF,
650};
651pub const SYLOTI_NAGRI: UnicodeBlock = UnicodeBlock {
652    name: "Syloti Nagri",
653    start: 0xA800,
654    end: 0xA82F,
655};
656pub const COMMON_INDIC_NUMBER_FORMS: UnicodeBlock = UnicodeBlock {
657    name: "Common Indic Number Forms",
658    start: 0xA830,
659    end: 0xA83F,
660};
661pub const PHAGS_PA: UnicodeBlock = UnicodeBlock {
662    name: "Phags-pa",
663    start: 0xA840,
664    end: 0xA87F,
665};
666pub const SAURASHTRA: UnicodeBlock = UnicodeBlock {
667    name: "Saurashtra",
668    start: 0xA880,
669    end: 0xA8DF,
670};
671pub const DEVANAGARI_EXTENDED: UnicodeBlock = UnicodeBlock {
672    name: "Devanagari Extended",
673    start: 0xA8E0,
674    end: 0xA8FF,
675};
676pub const KAYAH_LI: UnicodeBlock = UnicodeBlock {
677    name: "Kayah Li",
678    start: 0xA900,
679    end: 0xA92F,
680};
681pub const REJANG: UnicodeBlock = UnicodeBlock {
682    name: "Rejang",
683    start: 0xA930,
684    end: 0xA95F,
685};
686pub const HANGUL_JAMO_EXTENDED_A: UnicodeBlock = UnicodeBlock {
687    name: "Hangul Jamo Extended-A",
688    start: 0xA960,
689    end: 0xA97F,
690};
691pub const JAVANESE: UnicodeBlock = UnicodeBlock {
692    name: "Javanese",
693    start: 0xA980,
694    end: 0xA9DF,
695};
696pub const MYANMAR_EXTENDED_B: UnicodeBlock = UnicodeBlock {
697    name: "Myanmar Extended-B",
698    start: 0xA9E0,
699    end: 0xA9FF,
700};
701pub const CHAM: UnicodeBlock = UnicodeBlock {
702    name: "Cham",
703    start: 0xAA00,
704    end: 0xAA5F,
705};
706pub const MYANMAR_EXTENDED_A: UnicodeBlock = UnicodeBlock {
707    name: "Myanmar Extended-A",
708    start: 0xAA60,
709    end: 0xAA7F,
710};
711pub const TAI_VIET: UnicodeBlock = UnicodeBlock {
712    name: "Tai Viet",
713    start: 0xAA80,
714    end: 0xAADF,
715};
716pub const MEETEI_MAYEK_EXTENSIONS: UnicodeBlock = UnicodeBlock {
717    name: "Meetei Mayek Extensions",
718    start: 0xAAE0,
719    end: 0xAAFF,
720};
721pub const ETHIOPIC_EXTENDED_A: UnicodeBlock = UnicodeBlock {
722    name: "Ethiopic Extended-A",
723    start: 0xAB00,
724    end: 0xAB2F,
725};
726pub const LATIN_EXTENDED_E: UnicodeBlock = UnicodeBlock {
727    name: "Latin Extended-E",
728    start: 0xAB30,
729    end: 0xAB6F,
730};
731pub const CHEROKEE_SUPPLEMENT: UnicodeBlock = UnicodeBlock {
732    name: "Cherokee Supplement",
733    start: 0xAB70,
734    end: 0xABBF,
735};
736pub const MEETEI_MAYEK: UnicodeBlock = UnicodeBlock {
737    name: "Meetei Mayek",
738    start: 0xABC0,
739    end: 0xABFF,
740};
741pub const HANGUL_SYLLABLES: UnicodeBlock = UnicodeBlock {
742    name: "Hangul Syllables",
743    start: 0xAC00,
744    end: 0xD7AF,
745};
746pub const HANGUL_JAMO_EXTENDED_B: UnicodeBlock = UnicodeBlock {
747    name: "Hangul Jamo Extended-B",
748    start: 0xD7B0,
749    end: 0xD7FF,
750};
751pub const HIGH_SURROGATES: UnicodeBlock = UnicodeBlock {
752    name: "High Surrogates",
753    start: 0xD800,
754    end: 0xDB7F,
755};
756pub const HIGH_PRIVATE_USE_SURROGATES: UnicodeBlock = UnicodeBlock {
757    name: "High Private Use Surrogates",
758    start: 0xDB80,
759    end: 0xDBFF,
760};
761pub const LOW_SURROGATES: UnicodeBlock = UnicodeBlock {
762    name: "Low Surrogates",
763    start: 0xDC00,
764    end: 0xDFFF,
765};
766pub const PRIVATE_USE_AREA: UnicodeBlock = UnicodeBlock {
767    name: "Private Use Area",
768    start: 0xE000,
769    end: 0xF8FF,
770};
771pub const CJK_COMPATIBILITY_IDEOGRAPHS: UnicodeBlock = UnicodeBlock {
772    name: "CJK Compatibility Ideographs",
773    start: 0xF900,
774    end: 0xFAFF,
775};
776pub const ALPHABETIC_PRESENTATION_FORMS: UnicodeBlock = UnicodeBlock {
777    name: "Alphabetic Presentation Forms",
778    start: 0xFB00,
779    end: 0xFB4F,
780};
781pub const ARABIC_PRESENTATION_FORMS_A: UnicodeBlock = UnicodeBlock {
782    name: "Arabic Presentation Forms-A",
783    start: 0xFB50,
784    end: 0xFDFF,
785};
786pub const VARIATION_SELECTORS: UnicodeBlock = UnicodeBlock {
787    name: "Variation Selectors",
788    start: 0xFE00,
789    end: 0xFE0F,
790};
791pub const VERTICAL_FORMS: UnicodeBlock = UnicodeBlock {
792    name: "Vertical Forms",
793    start: 0xFE10,
794    end: 0xFE1F,
795};
796pub const COMBINING_HALF_MARKS: UnicodeBlock = UnicodeBlock {
797    name: "Combining Half Marks",
798    start: 0xFE20,
799    end: 0xFE2F,
800};
801pub const CJK_COMPATIBILITY_FORMS: UnicodeBlock = UnicodeBlock {
802    name: "CJK Compatibility Forms",
803    start: 0xFE30,
804    end: 0xFE4F,
805};
806pub const SMALL_FORM_VARIANTS: UnicodeBlock = UnicodeBlock {
807    name: "Small Form Variants",
808    start: 0xFE50,
809    end: 0xFE6F,
810};
811pub const ARABIC_PRESENTATION_FORMS_B: UnicodeBlock = UnicodeBlock {
812    name: "Arabic Presentation Forms-B",
813    start: 0xFE70,
814    end: 0xFEFF,
815};
816pub const HALFWIDTH_AND_FULLWIDTH_FORMS: UnicodeBlock = UnicodeBlock {
817    name: "Halfwidth and Fullwidth Forms",
818    start: 0xFF00,
819    end: 0xFFEF,
820};
821pub const SPECIALS: UnicodeBlock = UnicodeBlock {
822    name: "Specials",
823    start: 0xFFF0,
824    end: 0xFFFF,
825};
826pub const LINEAR_B_SYLLABARY: UnicodeBlock = UnicodeBlock {
827    name: "Linear B Syllabary",
828    start: 0x10000,
829    end: 0x1007F,
830};
831pub const LINEAR_B_IDEOGRAMS: UnicodeBlock = UnicodeBlock {
832    name: "Linear B Ideograms",
833    start: 0x10080,
834    end: 0x100FF,
835};
836pub const AEGEAN_NUMBERS: UnicodeBlock = UnicodeBlock {
837    name: "Aegean Numbers",
838    start: 0x10100,
839    end: 0x1013F,
840};
841pub const ANCIENT_GREEK_NUMBERS: UnicodeBlock = UnicodeBlock {
842    name: "Ancient Greek Numbers",
843    start: 0x10140,
844    end: 0x1018F,
845};
846pub const ANCIENT_SYMBOLS: UnicodeBlock = UnicodeBlock {
847    name: "Ancient Symbols",
848    start: 0x10190,
849    end: 0x101CF,
850};
851pub const PHAISTOS_DISC: UnicodeBlock = UnicodeBlock {
852    name: "Phaistos Disc",
853    start: 0x101D0,
854    end: 0x101FF,
855};
856pub const LYCIAN: UnicodeBlock = UnicodeBlock {
857    name: "Lycian",
858    start: 0x10280,
859    end: 0x1029F,
860};
861pub const CARIAN: UnicodeBlock = UnicodeBlock {
862    name: "Carian",
863    start: 0x102A0,
864    end: 0x102DF,
865};
866pub const COPTIC_EPACT_NUMBERS: UnicodeBlock = UnicodeBlock {
867    name: "Coptic Epact Numbers",
868    start: 0x102E0,
869    end: 0x102FF,
870};
871pub const OLD_ITALIC: UnicodeBlock = UnicodeBlock {
872    name: "Old Italic",
873    start: 0x10300,
874    end: 0x1032F,
875};
876pub const GOTHIC: UnicodeBlock = UnicodeBlock {
877    name: "Gothic",
878    start: 0x10330,
879    end: 0x1034F,
880};
881pub const OLD_PERMIC: UnicodeBlock = UnicodeBlock {
882    name: "Old Permic",
883    start: 0x10350,
884    end: 0x1037F,
885};
886pub const UGARITIC: UnicodeBlock = UnicodeBlock {
887    name: "Ugaritic",
888    start: 0x10380,
889    end: 0x1039F,
890};
891pub const OLD_PERSIAN: UnicodeBlock = UnicodeBlock {
892    name: "Old Persian",
893    start: 0x103A0,
894    end: 0x103DF,
895};
896pub const DESERET: UnicodeBlock = UnicodeBlock {
897    name: "Deseret",
898    start: 0x10400,
899    end: 0x1044F,
900};
901pub const SHAVIAN: UnicodeBlock = UnicodeBlock {
902    name: "Shavian",
903    start: 0x10450,
904    end: 0x1047F,
905};
906pub const OSMANYA: UnicodeBlock = UnicodeBlock {
907    name: "Osmanya",
908    start: 0x10480,
909    end: 0x104AF,
910};
911pub const OSAGE: UnicodeBlock = UnicodeBlock {
912    name: "Osage",
913    start: 0x104B0,
914    end: 0x104FF,
915};
916pub const ELBASAN: UnicodeBlock = UnicodeBlock {
917    name: "Elbasan",
918    start: 0x10500,
919    end: 0x1052F,
920};
921pub const CAUCASIAN_ALBANIAN: UnicodeBlock = UnicodeBlock {
922    name: "Caucasian Albanian",
923    start: 0x10530,
924    end: 0x1056F,
925};
926pub const VITHKUQI: UnicodeBlock = UnicodeBlock {
927    name: "Vithkuqi",
928    start: 0x10570,
929    end: 0x105BF,
930};
931pub const TODHRI: UnicodeBlock = UnicodeBlock {
932    name: "Todhri",
933    start: 0x105C0,
934    end: 0x105FF,
935};
936pub const LINEAR_A: UnicodeBlock = UnicodeBlock {
937    name: "Linear A",
938    start: 0x10600,
939    end: 0x1077F,
940};
941pub const LATIN_EXTENDED_F: UnicodeBlock = UnicodeBlock {
942    name: "Latin Extended-F",
943    start: 0x10780,
944    end: 0x107BF,
945};
946pub const CYPRIOT_SYLLABARY: UnicodeBlock = UnicodeBlock {
947    name: "Cypriot Syllabary",
948    start: 0x10800,
949    end: 0x1083F,
950};
951pub const IMPERIAL_ARAMAIC: UnicodeBlock = UnicodeBlock {
952    name: "Imperial Aramaic",
953    start: 0x10840,
954    end: 0x1085F,
955};
956pub const PALMYRENE: UnicodeBlock = UnicodeBlock {
957    name: "Palmyrene",
958    start: 0x10860,
959    end: 0x1087F,
960};
961pub const NABATAEAN: UnicodeBlock = UnicodeBlock {
962    name: "Nabataean",
963    start: 0x10880,
964    end: 0x108AF,
965};
966pub const HATRAN: UnicodeBlock = UnicodeBlock {
967    name: "Hatran",
968    start: 0x108E0,
969    end: 0x108FF,
970};
971pub const PHOENICIAN: UnicodeBlock = UnicodeBlock {
972    name: "Phoenician",
973    start: 0x10900,
974    end: 0x1091F,
975};
976pub const LYDIAN: UnicodeBlock = UnicodeBlock {
977    name: "Lydian",
978    start: 0x10920,
979    end: 0x1093F,
980};
981pub const MEROITIC_HIEROGLYPHS: UnicodeBlock = UnicodeBlock {
982    name: "Meroitic Hieroglyphs",
983    start: 0x10980,
984    end: 0x1099F,
985};
986pub const MEROITIC_CURSIVE: UnicodeBlock = UnicodeBlock {
987    name: "Meroitic Cursive",
988    start: 0x109A0,
989    end: 0x109FF,
990};
991pub const KHAROSHTHI: UnicodeBlock = UnicodeBlock {
992    name: "Kharoshthi",
993    start: 0x10A00,
994    end: 0x10A5F,
995};
996pub const OLD_SOUTH_ARABIAN: UnicodeBlock = UnicodeBlock {
997    name: "Old South Arabian",
998    start: 0x10A60,
999    end: 0x10A7F,
1000};
1001pub const OLD_NORTH_ARABIAN: UnicodeBlock = UnicodeBlock {
1002    name: "Old North Arabian",
1003    start: 0x10A80,
1004    end: 0x10A9F,
1005};
1006pub const MANICHAEAN: UnicodeBlock = UnicodeBlock {
1007    name: "Manichaean",
1008    start: 0x10AC0,
1009    end: 0x10AFF,
1010};
1011pub const AVESTAN: UnicodeBlock = UnicodeBlock {
1012    name: "Avestan",
1013    start: 0x10B00,
1014    end: 0x10B3F,
1015};
1016pub const INSCRIPTIONAL_PARTHIAN: UnicodeBlock = UnicodeBlock {
1017    name: "Inscriptional Parthian",
1018    start: 0x10B40,
1019    end: 0x10B5F,
1020};
1021pub const INSCRIPTIONAL_PAHLAVI: UnicodeBlock = UnicodeBlock {
1022    name: "Inscriptional Pahlavi",
1023    start: 0x10B60,
1024    end: 0x10B7F,
1025};
1026pub const PSALTER_PAHLAVI: UnicodeBlock = UnicodeBlock {
1027    name: "Psalter Pahlavi",
1028    start: 0x10B80,
1029    end: 0x10BAF,
1030};
1031pub const OLD_TURKIC: UnicodeBlock = UnicodeBlock {
1032    name: "Old Turkic",
1033    start: 0x10C00,
1034    end: 0x10C4F,
1035};
1036pub const OLD_HUNGARIAN: UnicodeBlock = UnicodeBlock {
1037    name: "Old Hungarian",
1038    start: 0x10C80,
1039    end: 0x10CFF,
1040};
1041pub const HANIFI_ROHINGYA: UnicodeBlock = UnicodeBlock {
1042    name: "Hanifi Rohingya",
1043    start: 0x10D00,
1044    end: 0x10D3F,
1045};
1046pub const GARAY: UnicodeBlock = UnicodeBlock {
1047    name: "Garay",
1048    start: 0x10D40,
1049    end: 0x10D8F,
1050};
1051pub const RUMI_NUMERAL_SYMBOLS: UnicodeBlock = UnicodeBlock {
1052    name: "Rumi Numeral Symbols",
1053    start: 0x10E60,
1054    end: 0x10E7F,
1055};
1056pub const YEZIDI: UnicodeBlock = UnicodeBlock {
1057    name: "Yezidi",
1058    start: 0x10E80,
1059    end: 0x10EBF,
1060};
1061pub const ARABIC_EXTENDED_C: UnicodeBlock = UnicodeBlock {
1062    name: "Arabic Extended-C",
1063    start: 0x10EC0,
1064    end: 0x10EFF,
1065};
1066pub const OLD_SOGDIAN: UnicodeBlock = UnicodeBlock {
1067    name: "Old Sogdian",
1068    start: 0x10F00,
1069    end: 0x10F2F,
1070};
1071pub const SOGDIAN: UnicodeBlock = UnicodeBlock {
1072    name: "Sogdian",
1073    start: 0x10F30,
1074    end: 0x10F6F,
1075};
1076pub const OLD_UYGHUR: UnicodeBlock = UnicodeBlock {
1077    name: "Old Uyghur",
1078    start: 0x10F70,
1079    end: 0x10FAF,
1080};
1081pub const CHORASMIAN: UnicodeBlock = UnicodeBlock {
1082    name: "Chorasmian",
1083    start: 0x10FB0,
1084    end: 0x10FDF,
1085};
1086pub const ELYMAIC: UnicodeBlock = UnicodeBlock {
1087    name: "Elymaic",
1088    start: 0x10FE0,
1089    end: 0x10FFF,
1090};
1091pub const BRAHMI: UnicodeBlock = UnicodeBlock {
1092    name: "Brahmi",
1093    start: 0x11000,
1094    end: 0x1107F,
1095};
1096pub const KAITHI: UnicodeBlock = UnicodeBlock {
1097    name: "Kaithi",
1098    start: 0x11080,
1099    end: 0x110CF,
1100};
1101pub const SORA_SOMPENG: UnicodeBlock = UnicodeBlock {
1102    name: "Sora Sompeng",
1103    start: 0x110D0,
1104    end: 0x110FF,
1105};
1106pub const CHAKMA: UnicodeBlock = UnicodeBlock {
1107    name: "Chakma",
1108    start: 0x11100,
1109    end: 0x1114F,
1110};
1111pub const MAHAJANI: UnicodeBlock = UnicodeBlock {
1112    name: "Mahajani",
1113    start: 0x11150,
1114    end: 0x1117F,
1115};
1116pub const SHARADA: UnicodeBlock = UnicodeBlock {
1117    name: "Sharada",
1118    start: 0x11180,
1119    end: 0x111DF,
1120};
1121pub const SINHALA_ARCHAIC_NUMBERS: UnicodeBlock = UnicodeBlock {
1122    name: "Sinhala Archaic Numbers",
1123    start: 0x111E0,
1124    end: 0x111FF,
1125};
1126pub const KHOJKI: UnicodeBlock = UnicodeBlock {
1127    name: "Khojki",
1128    start: 0x11200,
1129    end: 0x1124F,
1130};
1131pub const MULTANI: UnicodeBlock = UnicodeBlock {
1132    name: "Multani",
1133    start: 0x11280,
1134    end: 0x112AF,
1135};
1136pub const KHUDAWADI: UnicodeBlock = UnicodeBlock {
1137    name: "Khudawadi",
1138    start: 0x112B0,
1139    end: 0x112FF,
1140};
1141pub const GRANTHA: UnicodeBlock = UnicodeBlock {
1142    name: "Grantha",
1143    start: 0x11300,
1144    end: 0x1137F,
1145};
1146pub const TULU_TIGALARI: UnicodeBlock = UnicodeBlock {
1147    name: "Tulu-Tigalari",
1148    start: 0x11380,
1149    end: 0x113FF,
1150};
1151pub const NEWA: UnicodeBlock = UnicodeBlock {
1152    name: "Newa",
1153    start: 0x11400,
1154    end: 0x1147F,
1155};
1156pub const TIRHUTA: UnicodeBlock = UnicodeBlock {
1157    name: "Tirhuta",
1158    start: 0x11480,
1159    end: 0x114DF,
1160};
1161pub const SIDDHAM: UnicodeBlock = UnicodeBlock {
1162    name: "Siddham",
1163    start: 0x11580,
1164    end: 0x115FF,
1165};
1166pub const MODI: UnicodeBlock = UnicodeBlock {
1167    name: "Modi",
1168    start: 0x11600,
1169    end: 0x1165F,
1170};
1171pub const MONGOLIAN_SUPPLEMENT: UnicodeBlock = UnicodeBlock {
1172    name: "Mongolian Supplement",
1173    start: 0x11660,
1174    end: 0x1167F,
1175};
1176pub const TAKRI: UnicodeBlock = UnicodeBlock {
1177    name: "Takri",
1178    start: 0x11680,
1179    end: 0x116CF,
1180};
1181pub const MYANMAR_EXTENDED_C: UnicodeBlock = UnicodeBlock {
1182    name: "Myanmar Extended-C",
1183    start: 0x116D0,
1184    end: 0x116FF,
1185};
1186pub const AHOM: UnicodeBlock = UnicodeBlock {
1187    name: "Ahom",
1188    start: 0x11700,
1189    end: 0x1174F,
1190};
1191pub const DOGRA: UnicodeBlock = UnicodeBlock {
1192    name: "Dogra",
1193    start: 0x11800,
1194    end: 0x1184F,
1195};
1196pub const WARANG_CITI: UnicodeBlock = UnicodeBlock {
1197    name: "Warang Citi",
1198    start: 0x118A0,
1199    end: 0x118FF,
1200};
1201pub const DIVES_AKURU: UnicodeBlock = UnicodeBlock {
1202    name: "Dives Akuru",
1203    start: 0x11900,
1204    end: 0x1195F,
1205};
1206pub const NANDINAGARI: UnicodeBlock = UnicodeBlock {
1207    name: "Nandinagari",
1208    start: 0x119A0,
1209    end: 0x119FF,
1210};
1211pub const ZANABAZAR_SQUARE: UnicodeBlock = UnicodeBlock {
1212    name: "Zanabazar Square",
1213    start: 0x11A00,
1214    end: 0x11A4F,
1215};
1216pub const SOYOMBO: UnicodeBlock = UnicodeBlock {
1217    name: "Soyombo",
1218    start: 0x11A50,
1219    end: 0x11AAF,
1220};
1221pub const UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS_EXTENDED_A: UnicodeBlock = UnicodeBlock {
1222    name: "Unified Canadian Aboriginal Syllabics Extended-A",
1223    start: 0x11AB0,
1224    end: 0x11ABF,
1225};
1226pub const PAU_CIN_HAU: UnicodeBlock = UnicodeBlock {
1227    name: "Pau Cin Hau",
1228    start: 0x11AC0,
1229    end: 0x11AFF,
1230};
1231pub const DEVANAGARI_EXTENDED_A: UnicodeBlock = UnicodeBlock {
1232    name: "Devanagari Extended-A",
1233    start: 0x11B00,
1234    end: 0x11B5F,
1235};
1236pub const SUNUWAR: UnicodeBlock = UnicodeBlock {
1237    name: "Sunuwar",
1238    start: 0x11BC0,
1239    end: 0x11BFF,
1240};
1241pub const BHAIKSUKI: UnicodeBlock = UnicodeBlock {
1242    name: "Bhaiksuki",
1243    start: 0x11C00,
1244    end: 0x11C6F,
1245};
1246pub const MARCHEN: UnicodeBlock = UnicodeBlock {
1247    name: "Marchen",
1248    start: 0x11C70,
1249    end: 0x11CBF,
1250};
1251pub const MASARAM_GONDI: UnicodeBlock = UnicodeBlock {
1252    name: "Masaram Gondi",
1253    start: 0x11D00,
1254    end: 0x11D5F,
1255};
1256pub const GUNJALA_GONDI: UnicodeBlock = UnicodeBlock {
1257    name: "Gunjala Gondi",
1258    start: 0x11D60,
1259    end: 0x11DAF,
1260};
1261pub const MAKASAR: UnicodeBlock = UnicodeBlock {
1262    name: "Makasar",
1263    start: 0x11EE0,
1264    end: 0x11EFF,
1265};
1266pub const KAWI: UnicodeBlock = UnicodeBlock {
1267    name: "Kawi",
1268    start: 0x11F00,
1269    end: 0x11F5F,
1270};
1271pub const LISU_SUPPLEMENT: UnicodeBlock = UnicodeBlock {
1272    name: "Lisu Supplement",
1273    start: 0x11FB0,
1274    end: 0x11FBF,
1275};
1276pub const TAMIL_SUPPLEMENT: UnicodeBlock = UnicodeBlock {
1277    name: "Tamil Supplement",
1278    start: 0x11FC0,
1279    end: 0x11FFF,
1280};
1281pub const CUNEIFORM: UnicodeBlock = UnicodeBlock {
1282    name: "Cuneiform",
1283    start: 0x12000,
1284    end: 0x123FF,
1285};
1286pub const CUNEIFORM_NUMBERS_AND_PUNCTUATION: UnicodeBlock = UnicodeBlock {
1287    name: "Cuneiform Numbers and Punctuation",
1288    start: 0x12400,
1289    end: 0x1247F,
1290};
1291pub const EARLY_DYNASTIC_CUNEIFORM: UnicodeBlock = UnicodeBlock {
1292    name: "Early Dynastic Cuneiform",
1293    start: 0x12480,
1294    end: 0x1254F,
1295};
1296pub const CYPRO_MINOAN: UnicodeBlock = UnicodeBlock {
1297    name: "Cypro-Minoan",
1298    start: 0x12F90,
1299    end: 0x12FFF,
1300};
1301pub const EGYPTIAN_HIEROGLYPHS: UnicodeBlock = UnicodeBlock {
1302    name: "Egyptian Hieroglyphs",
1303    start: 0x13000,
1304    end: 0x1342F,
1305};
1306pub const EGYPTIAN_HIEROGLYPH_FORMAT_CONTROLS: UnicodeBlock = UnicodeBlock {
1307    name: "Egyptian Hieroglyph Format Controls",
1308    start: 0x13430,
1309    end: 0x1345F,
1310};
1311pub const EGYPTIAN_HIEROGLYPHS_EXTENDED_A: UnicodeBlock = UnicodeBlock {
1312    name: "Egyptian Hieroglyphs Extended-A",
1313    start: 0x13460,
1314    end: 0x143FF,
1315};
1316pub const ANATOLIAN_HIEROGLYPHS: UnicodeBlock = UnicodeBlock {
1317    name: "Anatolian Hieroglyphs",
1318    start: 0x14400,
1319    end: 0x1467F,
1320};
1321pub const GURUNG_KHEMA: UnicodeBlock = UnicodeBlock {
1322    name: "Gurung Khema",
1323    start: 0x16100,
1324    end: 0x1613F,
1325};
1326pub const BAMUM_SUPPLEMENT: UnicodeBlock = UnicodeBlock {
1327    name: "Bamum Supplement",
1328    start: 0x16800,
1329    end: 0x16A3F,
1330};
1331pub const MRO: UnicodeBlock = UnicodeBlock {
1332    name: "Mro",
1333    start: 0x16A40,
1334    end: 0x16A6F,
1335};
1336pub const TANGSA: UnicodeBlock = UnicodeBlock {
1337    name: "Tangsa",
1338    start: 0x16A70,
1339    end: 0x16ACF,
1340};
1341pub const BASSA_VAH: UnicodeBlock = UnicodeBlock {
1342    name: "Bassa Vah",
1343    start: 0x16AD0,
1344    end: 0x16AFF,
1345};
1346pub const PAHAWH_HMONG: UnicodeBlock = UnicodeBlock {
1347    name: "Pahawh Hmong",
1348    start: 0x16B00,
1349    end: 0x16B8F,
1350};
1351pub const KIRAT_RAI: UnicodeBlock = UnicodeBlock {
1352    name: "Kirat Rai",
1353    start: 0x16D40,
1354    end: 0x16D7F,
1355};
1356pub const MEDEFAIDRIN: UnicodeBlock = UnicodeBlock {
1357    name: "Medefaidrin",
1358    start: 0x16E40,
1359    end: 0x16E9F,
1360};
1361pub const MIAO: UnicodeBlock = UnicodeBlock {
1362    name: "Miao",
1363    start: 0x16F00,
1364    end: 0x16F9F,
1365};
1366pub const IDEOGRAPHIC_SYMBOLS_AND_PUNCTUATION: UnicodeBlock = UnicodeBlock {
1367    name: "Ideographic Symbols and Punctuation",
1368    start: 0x16FE0,
1369    end: 0x16FFF,
1370};
1371pub const TANGUT: UnicodeBlock = UnicodeBlock {
1372    name: "Tangut",
1373    start: 0x17000,
1374    end: 0x187FF,
1375};
1376pub const TANGUT_COMPONENTS: UnicodeBlock = UnicodeBlock {
1377    name: "Tangut Components",
1378    start: 0x18800,
1379    end: 0x18AFF,
1380};
1381pub const KHITAN_SMALL_SCRIPT: UnicodeBlock = UnicodeBlock {
1382    name: "Khitan Small Script",
1383    start: 0x18B00,
1384    end: 0x18CFF,
1385};
1386pub const TANGUT_SUPPLEMENT: UnicodeBlock = UnicodeBlock {
1387    name: "Tangut Supplement",
1388    start: 0x18D00,
1389    end: 0x18D7F,
1390};
1391pub const KANA_EXTENDED_B: UnicodeBlock = UnicodeBlock {
1392    name: "Kana Extended-B",
1393    start: 0x1AFF0,
1394    end: 0x1AFFF,
1395};
1396pub const KANA_SUPPLEMENT: UnicodeBlock = UnicodeBlock {
1397    name: "Kana Supplement",
1398    start: 0x1B000,
1399    end: 0x1B0FF,
1400};
1401pub const KANA_EXTENDED_A: UnicodeBlock = UnicodeBlock {
1402    name: "Kana Extended-A",
1403    start: 0x1B100,
1404    end: 0x1B12F,
1405};
1406pub const SMALL_KANA_EXTENSION: UnicodeBlock = UnicodeBlock {
1407    name: "Small Kana Extension",
1408    start: 0x1B130,
1409    end: 0x1B16F,
1410};
1411pub const NUSHU: UnicodeBlock = UnicodeBlock {
1412    name: "Nushu",
1413    start: 0x1B170,
1414    end: 0x1B2FF,
1415};
1416pub const DUPLOYAN: UnicodeBlock = UnicodeBlock {
1417    name: "Duployan",
1418    start: 0x1BC00,
1419    end: 0x1BC9F,
1420};
1421pub const SHORTHAND_FORMAT_CONTROLS: UnicodeBlock = UnicodeBlock {
1422    name: "Shorthand Format Controls",
1423    start: 0x1BCA0,
1424    end: 0x1BCAF,
1425};
1426pub const SYMBOLS_FOR_LEGACY_COMPUTING_SUPPLEMENT: UnicodeBlock = UnicodeBlock {
1427    name: "Symbols for Legacy Computing Supplement",
1428    start: 0x1CC00,
1429    end: 0x1CEBF,
1430};
1431pub const ZNAMENNY_MUSICAL_NOTATION: UnicodeBlock = UnicodeBlock {
1432    name: "Znamenny Musical Notation",
1433    start: 0x1CF00,
1434    end: 0x1CFCF,
1435};
1436pub const BYZANTINE_MUSICAL_SYMBOLS: UnicodeBlock = UnicodeBlock {
1437    name: "Byzantine Musical Symbols",
1438    start: 0x1D000,
1439    end: 0x1D0FF,
1440};
1441pub const MUSICAL_SYMBOLS: UnicodeBlock = UnicodeBlock {
1442    name: "Musical Symbols",
1443    start: 0x1D100,
1444    end: 0x1D1FF,
1445};
1446pub const ANCIENT_GREEK_MUSICAL_NOTATION: UnicodeBlock = UnicodeBlock {
1447    name: "Ancient Greek Musical Notation",
1448    start: 0x1D200,
1449    end: 0x1D24F,
1450};
1451pub const KAKTOVIK_NUMERALS: UnicodeBlock = UnicodeBlock {
1452    name: "Kaktovik Numerals",
1453    start: 0x1D2C0,
1454    end: 0x1D2DF,
1455};
1456pub const MAYAN_NUMERALS: UnicodeBlock = UnicodeBlock {
1457    name: "Mayan Numerals",
1458    start: 0x1D2E0,
1459    end: 0x1D2FF,
1460};
1461pub const TAI_XUAN_JING_SYMBOLS: UnicodeBlock = UnicodeBlock {
1462    name: "Tai Xuan Jing Symbols",
1463    start: 0x1D300,
1464    end: 0x1D35F,
1465};
1466pub const COUNTING_ROD_NUMERALS: UnicodeBlock = UnicodeBlock {
1467    name: "Counting Rod Numerals",
1468    start: 0x1D360,
1469    end: 0x1D37F,
1470};
1471pub const MATHEMATICAL_ALPHANUMERIC_SYMBOLS: UnicodeBlock = UnicodeBlock {
1472    name: "Mathematical Alphanumeric Symbols",
1473    start: 0x1D400,
1474    end: 0x1D7FF,
1475};
1476pub const SUTTON_SIGNWRITING: UnicodeBlock = UnicodeBlock {
1477    name: "Sutton SignWriting",
1478    start: 0x1D800,
1479    end: 0x1DAAF,
1480};
1481pub const LATIN_EXTENDED_G: UnicodeBlock = UnicodeBlock {
1482    name: "Latin Extended-G",
1483    start: 0x1DF00,
1484    end: 0x1DFFF,
1485};
1486pub const GLAGOLITIC_SUPPLEMENT: UnicodeBlock = UnicodeBlock {
1487    name: "Glagolitic Supplement",
1488    start: 0x1E000,
1489    end: 0x1E02F,
1490};
1491pub const CYRILLIC_EXTENDED_D: UnicodeBlock = UnicodeBlock {
1492    name: "Cyrillic Extended-D",
1493    start: 0x1E030,
1494    end: 0x1E08F,
1495};
1496pub const NYIAKENG_PUACHUE_HMONG: UnicodeBlock = UnicodeBlock {
1497    name: "Nyiakeng Puachue Hmong",
1498    start: 0x1E100,
1499    end: 0x1E14F,
1500};
1501pub const TOTO: UnicodeBlock = UnicodeBlock {
1502    name: "Toto",
1503    start: 0x1E290,
1504    end: 0x1E2BF,
1505};
1506pub const WANCHO: UnicodeBlock = UnicodeBlock {
1507    name: "Wancho",
1508    start: 0x1E2C0,
1509    end: 0x1E2FF,
1510};
1511pub const NAG_MUNDARI: UnicodeBlock = UnicodeBlock {
1512    name: "Nag Mundari",
1513    start: 0x1E4D0,
1514    end: 0x1E4FF,
1515};
1516pub const OL_ONAL: UnicodeBlock = UnicodeBlock {
1517    name: "Ol Onal",
1518    start: 0x1E5D0,
1519    end: 0x1E5FF,
1520};
1521pub const ETHIOPIC_EXTENDED_B: UnicodeBlock = UnicodeBlock {
1522    name: "Ethiopic Extended-B",
1523    start: 0x1E7E0,
1524    end: 0x1E7FF,
1525};
1526pub const MENDE_KIKAKUI: UnicodeBlock = UnicodeBlock {
1527    name: "Mende Kikakui",
1528    start: 0x1E800,
1529    end: 0x1E8DF,
1530};
1531pub const ADLAM: UnicodeBlock = UnicodeBlock {
1532    name: "Adlam",
1533    start: 0x1E900,
1534    end: 0x1E95F,
1535};
1536pub const INDIC_SIYAQ_NUMBERS: UnicodeBlock = UnicodeBlock {
1537    name: "Indic Siyaq Numbers",
1538    start: 0x1EC70,
1539    end: 0x1ECBF,
1540};
1541pub const OTTOMAN_SIYAQ_NUMBERS: UnicodeBlock = UnicodeBlock {
1542    name: "Ottoman Siyaq Numbers",
1543    start: 0x1ED00,
1544    end: 0x1ED4F,
1545};
1546pub const ARABIC_MATHEMATICAL_ALPHABETIC_SYMBOLS: UnicodeBlock = UnicodeBlock {
1547    name: "Arabic Mathematical Alphabetic Symbols",
1548    start: 0x1EE00,
1549    end: 0x1EEFF,
1550};
1551pub const MAHJONG_TILES: UnicodeBlock = UnicodeBlock {
1552    name: "Mahjong Tiles",
1553    start: 0x1F000,
1554    end: 0x1F02F,
1555};
1556pub const DOMINO_TILES: UnicodeBlock = UnicodeBlock {
1557    name: "Domino Tiles",
1558    start: 0x1F030,
1559    end: 0x1F09F,
1560};
1561pub const PLAYING_CARDS: UnicodeBlock = UnicodeBlock {
1562    name: "Playing Cards",
1563    start: 0x1F0A0,
1564    end: 0x1F0FF,
1565};
1566pub const ENCLOSED_ALPHANUMERIC_SUPPLEMENT: UnicodeBlock = UnicodeBlock {
1567    name: "Enclosed Alphanumeric Supplement",
1568    start: 0x1F100,
1569    end: 0x1F1FF,
1570};
1571pub const ENCLOSED_IDEOGRAPHIC_SUPPLEMENT: UnicodeBlock = UnicodeBlock {
1572    name: "Enclosed Ideographic Supplement",
1573    start: 0x1F200,
1574    end: 0x1F2FF,
1575};
1576pub const MISCELLANEOUS_SYMBOLS_AND_PICTOGRAPHS: UnicodeBlock = UnicodeBlock {
1577    name: "Miscellaneous Symbols and Pictographs",
1578    start: 0x1F300,
1579    end: 0x1F5FF,
1580};
1581pub const EMOTICONS: UnicodeBlock = UnicodeBlock {
1582    name: "Emoticons",
1583    start: 0x1F600,
1584    end: 0x1F64F,
1585};
1586pub const ORNAMENTAL_DINGBATS: UnicodeBlock = UnicodeBlock {
1587    name: "Ornamental Dingbats",
1588    start: 0x1F650,
1589    end: 0x1F67F,
1590};
1591pub const TRANSPORT_AND_MAP_SYMBOLS: UnicodeBlock = UnicodeBlock {
1592    name: "Transport and Map Symbols",
1593    start: 0x1F680,
1594    end: 0x1F6FF,
1595};
1596pub const ALCHEMICAL_SYMBOLS: UnicodeBlock = UnicodeBlock {
1597    name: "Alchemical Symbols",
1598    start: 0x1F700,
1599    end: 0x1F77F,
1600};
1601pub const GEOMETRIC_SHAPES_EXTENDED: UnicodeBlock = UnicodeBlock {
1602    name: "Geometric Shapes Extended",
1603    start: 0x1F780,
1604    end: 0x1F7FF,
1605};
1606pub const SUPPLEMENTAL_ARROWS_C: UnicodeBlock = UnicodeBlock {
1607    name: "Supplemental Arrows-C",
1608    start: 0x1F800,
1609    end: 0x1F8FF,
1610};
1611pub const SUPPLEMENTAL_SYMBOLS_AND_PICTOGRAPHS: UnicodeBlock = UnicodeBlock {
1612    name: "Supplemental Symbols and Pictographs",
1613    start: 0x1F900,
1614    end: 0x1F9FF,
1615};
1616pub const CHESS_SYMBOLS: UnicodeBlock = UnicodeBlock {
1617    name: "Chess Symbols",
1618    start: 0x1FA00,
1619    end: 0x1FA6F,
1620};
1621pub const SYMBOLS_AND_PICTOGRAPHS_EXTENDED_A: UnicodeBlock = UnicodeBlock {
1622    name: "Symbols and Pictographs Extended-A",
1623    start: 0x1FA70,
1624    end: 0x1FAFF,
1625};
1626pub const SYMBOLS_FOR_LEGACY_COMPUTING: UnicodeBlock = UnicodeBlock {
1627    name: "Symbols for Legacy Computing",
1628    start: 0x1FB00,
1629    end: 0x1FBFF,
1630};
1631pub const CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B: UnicodeBlock = UnicodeBlock {
1632    name: "CJK Unified Ideographs Extension B",
1633    start: 0x20000,
1634    end: 0x2A6DF,
1635};
1636pub const CJK_UNIFIED_IDEOGRAPHS_EXTENSION_C: UnicodeBlock = UnicodeBlock {
1637    name: "CJK Unified Ideographs Extension C",
1638    start: 0x2A700,
1639    end: 0x2B73F,
1640};
1641pub const CJK_UNIFIED_IDEOGRAPHS_EXTENSION_D: UnicodeBlock = UnicodeBlock {
1642    name: "CJK Unified Ideographs Extension D",
1643    start: 0x2B740,
1644    end: 0x2B81F,
1645};
1646pub const CJK_UNIFIED_IDEOGRAPHS_EXTENSION_E: UnicodeBlock = UnicodeBlock {
1647    name: "CJK Unified Ideographs Extension E",
1648    start: 0x2B820,
1649    end: 0x2CEAF,
1650};
1651pub const CJK_UNIFIED_IDEOGRAPHS_EXTENSION_F: UnicodeBlock = UnicodeBlock {
1652    name: "CJK Unified Ideographs Extension F",
1653    start: 0x2CEB0,
1654    end: 0x2EBEF,
1655};
1656pub const CJK_UNIFIED_IDEOGRAPHS_EXTENSION_I: UnicodeBlock = UnicodeBlock {
1657    name: "CJK Unified Ideographs Extension I",
1658    start: 0x2EBF0,
1659    end: 0x2EE5F,
1660};
1661pub const CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT: UnicodeBlock = UnicodeBlock {
1662    name: "CJK Compatibility Ideographs Supplement",
1663    start: 0x2F800,
1664    end: 0x2FA1F,
1665};
1666pub const CJK_UNIFIED_IDEOGRAPHS_EXTENSION_G: UnicodeBlock = UnicodeBlock {
1667    name: "CJK Unified Ideographs Extension G",
1668    start: 0x30000,
1669    end: 0x3134F,
1670};
1671pub const CJK_UNIFIED_IDEOGRAPHS_EXTENSION_H: UnicodeBlock = UnicodeBlock {
1672    name: "CJK Unified Ideographs Extension H",
1673    start: 0x31350,
1674    end: 0x323AF,
1675};
1676pub const TAGS: UnicodeBlock = UnicodeBlock {
1677    name: "Tags",
1678    start: 0xE0000,
1679    end: 0xE007F,
1680};
1681pub const VARIATION_SELECTORS_SUPPLEMENT: UnicodeBlock = UnicodeBlock {
1682    name: "Variation Selectors Supplement",
1683    start: 0xE0100,
1684    end: 0xE01EF,
1685};
1686pub const SUPPLEMENTARY_PRIVATE_USE_AREA_A: UnicodeBlock = UnicodeBlock {
1687    name: "Supplementary Private Use Area-A",
1688    start: 0xF0000,
1689    end: 0xFFFFF,
1690};
1691pub const SUPPLEMENTARY_PRIVATE_USE_AREA_B: UnicodeBlock = UnicodeBlock {
1692    name: "Supplementary Private Use Area-B",
1693    start: 0x100000,
1694    end: 0x10FFFF,
1695};
1696
1697/// Given a character, determine what unicode block contains it.
1698pub fn find_unicode_block(c: char) -> Option<UnicodeBlock> {
1699    match c {
1700        '\u{0000}'..='\u{007F}' => Some(BASIC_LATIN),
1701        '\u{0080}'..='\u{00FF}' => Some(LATIN_1_SUPPLEMENT),
1702        '\u{0100}'..='\u{017F}' => Some(LATIN_EXTENDED_A),
1703        '\u{0180}'..='\u{024F}' => Some(LATIN_EXTENDED_B),
1704        '\u{0250}'..='\u{02AF}' => Some(IPA_EXTENSIONS),
1705        '\u{02B0}'..='\u{02FF}' => Some(SPACING_MODIFIER_LETTERS),
1706        '\u{0300}'..='\u{036F}' => Some(COMBINING_DIACRITICAL_MARKS),
1707        '\u{0370}'..='\u{03FF}' => Some(GREEK_AND_COPTIC),
1708        '\u{0400}'..='\u{04FF}' => Some(CYRILLIC),
1709        '\u{0500}'..='\u{052F}' => Some(CYRILLIC_SUPPLEMENT),
1710        '\u{0530}'..='\u{058F}' => Some(ARMENIAN),
1711        '\u{0590}'..='\u{05FF}' => Some(HEBREW),
1712        '\u{0600}'..='\u{06FF}' => Some(ARABIC),
1713        '\u{0700}'..='\u{074F}' => Some(SYRIAC),
1714        '\u{0750}'..='\u{077F}' => Some(ARABIC_SUPPLEMENT),
1715        '\u{0780}'..='\u{07BF}' => Some(THAANA),
1716        '\u{07C0}'..='\u{07FF}' => Some(NKO),
1717        '\u{0800}'..='\u{083F}' => Some(SAMARITAN),
1718        '\u{0840}'..='\u{085F}' => Some(MANDAIC),
1719        '\u{0860}'..='\u{086F}' => Some(SYRIAC_SUPPLEMENT),
1720        '\u{0870}'..='\u{089F}' => Some(ARABIC_EXTENDED_B),
1721        '\u{08A0}'..='\u{08FF}' => Some(ARABIC_EXTENDED_A),
1722        '\u{0900}'..='\u{097F}' => Some(DEVANAGARI),
1723        '\u{0980}'..='\u{09FF}' => Some(BENGALI),
1724        '\u{0A00}'..='\u{0A7F}' => Some(GURMUKHI),
1725        '\u{0A80}'..='\u{0AFF}' => Some(GUJARATI),
1726        '\u{0B00}'..='\u{0B7F}' => Some(ORIYA),
1727        '\u{0B80}'..='\u{0BFF}' => Some(TAMIL),
1728        '\u{0C00}'..='\u{0C7F}' => Some(TELUGU),
1729        '\u{0C80}'..='\u{0CFF}' => Some(KANNADA),
1730        '\u{0D00}'..='\u{0D7F}' => Some(MALAYALAM),
1731        '\u{0D80}'..='\u{0DFF}' => Some(SINHALA),
1732        '\u{0E00}'..='\u{0E7F}' => Some(THAI),
1733        '\u{0E80}'..='\u{0EFF}' => Some(LAO),
1734        '\u{0F00}'..='\u{0FFF}' => Some(TIBETAN),
1735        '\u{1000}'..='\u{109F}' => Some(MYANMAR),
1736        '\u{10A0}'..='\u{10FF}' => Some(GEORGIAN),
1737        '\u{1100}'..='\u{11FF}' => Some(HANGUL_JAMO),
1738        '\u{1200}'..='\u{137F}' => Some(ETHIOPIC),
1739        '\u{1380}'..='\u{139F}' => Some(ETHIOPIC_SUPPLEMENT),
1740        '\u{13A0}'..='\u{13FF}' => Some(CHEROKEE),
1741        '\u{1400}'..='\u{167F}' => Some(UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS),
1742        '\u{1680}'..='\u{169F}' => Some(OGHAM),
1743        '\u{16A0}'..='\u{16FF}' => Some(RUNIC),
1744        '\u{1700}'..='\u{171F}' => Some(TAGALOG),
1745        '\u{1720}'..='\u{173F}' => Some(HANUNOO),
1746        '\u{1740}'..='\u{175F}' => Some(BUHID),
1747        '\u{1760}'..='\u{177F}' => Some(TAGBANWA),
1748        '\u{1780}'..='\u{17FF}' => Some(KHMER),
1749        '\u{1800}'..='\u{18AF}' => Some(MONGOLIAN),
1750        '\u{18B0}'..='\u{18FF}' => Some(UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS_EXTENDED),
1751        '\u{1900}'..='\u{194F}' => Some(LIMBU),
1752        '\u{1950}'..='\u{197F}' => Some(TAI_LE),
1753        '\u{1980}'..='\u{19DF}' => Some(NEW_TAI_LUE),
1754        '\u{19E0}'..='\u{19FF}' => Some(KHMER_SYMBOLS),
1755        '\u{1A00}'..='\u{1A1F}' => Some(BUGINESE),
1756        '\u{1A20}'..='\u{1AAF}' => Some(TAI_THAM),
1757        '\u{1AB0}'..='\u{1AFF}' => Some(COMBINING_DIACRITICAL_MARKS_EXTENDED),
1758        '\u{1B00}'..='\u{1B7F}' => Some(BALINESE),
1759        '\u{1B80}'..='\u{1BBF}' => Some(SUNDANESE),
1760        '\u{1BC0}'..='\u{1BFF}' => Some(BATAK),
1761        '\u{1C00}'..='\u{1C4F}' => Some(LEPCHA),
1762        '\u{1C50}'..='\u{1C7F}' => Some(OL_CHIKI),
1763        '\u{1C80}'..='\u{1C8F}' => Some(CYRILLIC_EXTENDED_C),
1764        '\u{1C90}'..='\u{1CBF}' => Some(GEORGIAN_EXTENDED),
1765        '\u{1CC0}'..='\u{1CCF}' => Some(SUNDANESE_SUPPLEMENT),
1766        '\u{1CD0}'..='\u{1CFF}' => Some(VEDIC_EXTENSIONS),
1767        '\u{1D00}'..='\u{1D7F}' => Some(PHONETIC_EXTENSIONS),
1768        '\u{1D80}'..='\u{1DBF}' => Some(PHONETIC_EXTENSIONS_SUPPLEMENT),
1769        '\u{1DC0}'..='\u{1DFF}' => Some(COMBINING_DIACRITICAL_MARKS_SUPPLEMENT),
1770        '\u{1E00}'..='\u{1EFF}' => Some(LATIN_EXTENDED_ADDITIONAL),
1771        '\u{1F00}'..='\u{1FFF}' => Some(GREEK_EXTENDED),
1772        '\u{2000}'..='\u{206F}' => Some(GENERAL_PUNCTUATION),
1773        '\u{2070}'..='\u{209F}' => Some(SUPERSCRIPTS_AND_SUBSCRIPTS),
1774        '\u{20A0}'..='\u{20CF}' => Some(CURRENCY_SYMBOLS),
1775        '\u{20D0}'..='\u{20FF}' => Some(COMBINING_DIACRITICAL_MARKS_FOR_SYMBOLS),
1776        '\u{2100}'..='\u{214F}' => Some(LETTERLIKE_SYMBOLS),
1777        '\u{2150}'..='\u{218F}' => Some(NUMBER_FORMS),
1778        '\u{2190}'..='\u{21FF}' => Some(ARROWS),
1779        '\u{2200}'..='\u{22FF}' => Some(MATHEMATICAL_OPERATORS),
1780        '\u{2300}'..='\u{23FF}' => Some(MISCELLANEOUS_TECHNICAL),
1781        '\u{2400}'..='\u{243F}' => Some(CONTROL_PICTURES),
1782        '\u{2440}'..='\u{245F}' => Some(OPTICAL_CHARACTER_RECOGNITION),
1783        '\u{2460}'..='\u{24FF}' => Some(ENCLOSED_ALPHANUMERICS),
1784        '\u{2500}'..='\u{257F}' => Some(BOX_DRAWING),
1785        '\u{2580}'..='\u{259F}' => Some(BLOCK_ELEMENTS),
1786        '\u{25A0}'..='\u{25FF}' => Some(GEOMETRIC_SHAPES),
1787        '\u{2600}'..='\u{26FF}' => Some(MISCELLANEOUS_SYMBOLS),
1788        '\u{2700}'..='\u{27BF}' => Some(DINGBATS),
1789        '\u{27C0}'..='\u{27EF}' => Some(MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A),
1790        '\u{27F0}'..='\u{27FF}' => Some(SUPPLEMENTAL_ARROWS_A),
1791        '\u{2800}'..='\u{28FF}' => Some(BRAILLE_PATTERNS),
1792        '\u{2900}'..='\u{297F}' => Some(SUPPLEMENTAL_ARROWS_B),
1793        '\u{2980}'..='\u{29FF}' => Some(MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B),
1794        '\u{2A00}'..='\u{2AFF}' => Some(SUPPLEMENTAL_MATHEMATICAL_OPERATORS),
1795        '\u{2B00}'..='\u{2BFF}' => Some(MISCELLANEOUS_SYMBOLS_AND_ARROWS),
1796        '\u{2C00}'..='\u{2C5F}' => Some(GLAGOLITIC),
1797        '\u{2C60}'..='\u{2C7F}' => Some(LATIN_EXTENDED_C),
1798        '\u{2C80}'..='\u{2CFF}' => Some(COPTIC),
1799        '\u{2D00}'..='\u{2D2F}' => Some(GEORGIAN_SUPPLEMENT),
1800        '\u{2D30}'..='\u{2D7F}' => Some(TIFINAGH),
1801        '\u{2D80}'..='\u{2DDF}' => Some(ETHIOPIC_EXTENDED),
1802        '\u{2DE0}'..='\u{2DFF}' => Some(CYRILLIC_EXTENDED_A),
1803        '\u{2E00}'..='\u{2E7F}' => Some(SUPPLEMENTAL_PUNCTUATION),
1804        '\u{2E80}'..='\u{2EFF}' => Some(CJK_RADICALS_SUPPLEMENT),
1805        '\u{2F00}'..='\u{2FDF}' => Some(KANGXI_RADICALS),
1806        '\u{2FF0}'..='\u{2FFF}' => Some(IDEOGRAPHIC_DESCRIPTION_CHARACTERS),
1807        '\u{3000}'..='\u{303F}' => Some(CJK_SYMBOLS_AND_PUNCTUATION),
1808        '\u{3040}'..='\u{309F}' => Some(HIRAGANA),
1809        '\u{30A0}'..='\u{30FF}' => Some(KATAKANA),
1810        '\u{3100}'..='\u{312F}' => Some(BOPOMOFO),
1811        '\u{3130}'..='\u{318F}' => Some(HANGUL_COMPATIBILITY_JAMO),
1812        '\u{3190}'..='\u{319F}' => Some(KANBUN),
1813        '\u{31A0}'..='\u{31BF}' => Some(BOPOMOFO_EXTENDED),
1814        '\u{31C0}'..='\u{31EF}' => Some(CJK_STROKES),
1815        '\u{31F0}'..='\u{31FF}' => Some(KATAKANA_PHONETIC_EXTENSIONS),
1816        '\u{3200}'..='\u{32FF}' => Some(ENCLOSED_CJK_LETTERS_AND_MONTHS),
1817        '\u{3300}'..='\u{33FF}' => Some(CJK_COMPATIBILITY),
1818        '\u{3400}'..='\u{4DBF}' => Some(CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A),
1819        '\u{4DC0}'..='\u{4DFF}' => Some(YIJING_HEXAGRAM_SYMBOLS),
1820        '\u{4E00}'..='\u{9FFF}' => Some(CJK_UNIFIED_IDEOGRAPHS),
1821        '\u{A000}'..='\u{A48F}' => Some(YI_SYLLABLES),
1822        '\u{A490}'..='\u{A4CF}' => Some(YI_RADICALS),
1823        '\u{A4D0}'..='\u{A4FF}' => Some(LISU),
1824        '\u{A500}'..='\u{A63F}' => Some(VAI),
1825        '\u{A640}'..='\u{A69F}' => Some(CYRILLIC_EXTENDED_B),
1826        '\u{A6A0}'..='\u{A6FF}' => Some(BAMUM),
1827        '\u{A700}'..='\u{A71F}' => Some(MODIFIER_TONE_LETTERS),
1828        '\u{A720}'..='\u{A7FF}' => Some(LATIN_EXTENDED_D),
1829        '\u{A800}'..='\u{A82F}' => Some(SYLOTI_NAGRI),
1830        '\u{A830}'..='\u{A83F}' => Some(COMMON_INDIC_NUMBER_FORMS),
1831        '\u{A840}'..='\u{A87F}' => Some(PHAGS_PA),
1832        '\u{A880}'..='\u{A8DF}' => Some(SAURASHTRA),
1833        '\u{A8E0}'..='\u{A8FF}' => Some(DEVANAGARI_EXTENDED),
1834        '\u{A900}'..='\u{A92F}' => Some(KAYAH_LI),
1835        '\u{A930}'..='\u{A95F}' => Some(REJANG),
1836        '\u{A960}'..='\u{A97F}' => Some(HANGUL_JAMO_EXTENDED_A),
1837        '\u{A980}'..='\u{A9DF}' => Some(JAVANESE),
1838        '\u{A9E0}'..='\u{A9FF}' => Some(MYANMAR_EXTENDED_B),
1839        '\u{AA00}'..='\u{AA5F}' => Some(CHAM),
1840        '\u{AA60}'..='\u{AA7F}' => Some(MYANMAR_EXTENDED_A),
1841        '\u{AA80}'..='\u{AADF}' => Some(TAI_VIET),
1842        '\u{AAE0}'..='\u{AAFF}' => Some(MEETEI_MAYEK_EXTENSIONS),
1843        '\u{AB00}'..='\u{AB2F}' => Some(ETHIOPIC_EXTENDED_A),
1844        '\u{AB30}'..='\u{AB6F}' => Some(LATIN_EXTENDED_E),
1845        '\u{AB70}'..='\u{ABBF}' => Some(CHEROKEE_SUPPLEMENT),
1846        '\u{ABC0}'..='\u{ABFF}' => Some(MEETEI_MAYEK),
1847        '\u{AC00}'..='\u{D7AF}' => Some(HANGUL_SYLLABLES),
1848        '\u{D7B0}'..='\u{D7FF}' => Some(HANGUL_JAMO_EXTENDED_B),
1849        '\u{E000}'..='\u{F8FF}' => Some(PRIVATE_USE_AREA),
1850        '\u{F900}'..='\u{FAFF}' => Some(CJK_COMPATIBILITY_IDEOGRAPHS),
1851        '\u{FB00}'..='\u{FB4F}' => Some(ALPHABETIC_PRESENTATION_FORMS),
1852        '\u{FB50}'..='\u{FDFF}' => Some(ARABIC_PRESENTATION_FORMS_A),
1853        '\u{FE00}'..='\u{FE0F}' => Some(VARIATION_SELECTORS),
1854        '\u{FE10}'..='\u{FE1F}' => Some(VERTICAL_FORMS),
1855        '\u{FE20}'..='\u{FE2F}' => Some(COMBINING_HALF_MARKS),
1856        '\u{FE30}'..='\u{FE4F}' => Some(CJK_COMPATIBILITY_FORMS),
1857        '\u{FE50}'..='\u{FE6F}' => Some(SMALL_FORM_VARIANTS),
1858        '\u{FE70}'..='\u{FEFF}' => Some(ARABIC_PRESENTATION_FORMS_B),
1859        '\u{FF00}'..='\u{FFEF}' => Some(HALFWIDTH_AND_FULLWIDTH_FORMS),
1860        '\u{FFF0}'..='\u{FFFF}' => Some(SPECIALS),
1861        '\u{10000}'..='\u{1007F}' => Some(LINEAR_B_SYLLABARY),
1862        '\u{10080}'..='\u{100FF}' => Some(LINEAR_B_IDEOGRAMS),
1863        '\u{10100}'..='\u{1013F}' => Some(AEGEAN_NUMBERS),
1864        '\u{10140}'..='\u{1018F}' => Some(ANCIENT_GREEK_NUMBERS),
1865        '\u{10190}'..='\u{101CF}' => Some(ANCIENT_SYMBOLS),
1866        '\u{101D0}'..='\u{101FF}' => Some(PHAISTOS_DISC),
1867        '\u{10280}'..='\u{1029F}' => Some(LYCIAN),
1868        '\u{102A0}'..='\u{102DF}' => Some(CARIAN),
1869        '\u{102E0}'..='\u{102FF}' => Some(COPTIC_EPACT_NUMBERS),
1870        '\u{10300}'..='\u{1032F}' => Some(OLD_ITALIC),
1871        '\u{10330}'..='\u{1034F}' => Some(GOTHIC),
1872        '\u{10350}'..='\u{1037F}' => Some(OLD_PERMIC),
1873        '\u{10380}'..='\u{1039F}' => Some(UGARITIC),
1874        '\u{103A0}'..='\u{103DF}' => Some(OLD_PERSIAN),
1875        '\u{10400}'..='\u{1044F}' => Some(DESERET),
1876        '\u{10450}'..='\u{1047F}' => Some(SHAVIAN),
1877        '\u{10480}'..='\u{104AF}' => Some(OSMANYA),
1878        '\u{104B0}'..='\u{104FF}' => Some(OSAGE),
1879        '\u{10500}'..='\u{1052F}' => Some(ELBASAN),
1880        '\u{10530}'..='\u{1056F}' => Some(CAUCASIAN_ALBANIAN),
1881        '\u{10570}'..='\u{105BF}' => Some(VITHKUQI),
1882        '\u{105C0}'..='\u{105FF}' => Some(TODHRI),
1883        '\u{10600}'..='\u{1077F}' => Some(LINEAR_A),
1884        '\u{10780}'..='\u{107BF}' => Some(LATIN_EXTENDED_F),
1885        '\u{10800}'..='\u{1083F}' => Some(CYPRIOT_SYLLABARY),
1886        '\u{10840}'..='\u{1085F}' => Some(IMPERIAL_ARAMAIC),
1887        '\u{10860}'..='\u{1087F}' => Some(PALMYRENE),
1888        '\u{10880}'..='\u{108AF}' => Some(NABATAEAN),
1889        '\u{108E0}'..='\u{108FF}' => Some(HATRAN),
1890        '\u{10900}'..='\u{1091F}' => Some(PHOENICIAN),
1891        '\u{10920}'..='\u{1093F}' => Some(LYDIAN),
1892        '\u{10980}'..='\u{1099F}' => Some(MEROITIC_HIEROGLYPHS),
1893        '\u{109A0}'..='\u{109FF}' => Some(MEROITIC_CURSIVE),
1894        '\u{10A00}'..='\u{10A5F}' => Some(KHAROSHTHI),
1895        '\u{10A60}'..='\u{10A7F}' => Some(OLD_SOUTH_ARABIAN),
1896        '\u{10A80}'..='\u{10A9F}' => Some(OLD_NORTH_ARABIAN),
1897        '\u{10AC0}'..='\u{10AFF}' => Some(MANICHAEAN),
1898        '\u{10B00}'..='\u{10B3F}' => Some(AVESTAN),
1899        '\u{10B40}'..='\u{10B5F}' => Some(INSCRIPTIONAL_PARTHIAN),
1900        '\u{10B60}'..='\u{10B7F}' => Some(INSCRIPTIONAL_PAHLAVI),
1901        '\u{10B80}'..='\u{10BAF}' => Some(PSALTER_PAHLAVI),
1902        '\u{10C00}'..='\u{10C4F}' => Some(OLD_TURKIC),
1903        '\u{10C80}'..='\u{10CFF}' => Some(OLD_HUNGARIAN),
1904        '\u{10D00}'..='\u{10D3F}' => Some(HANIFI_ROHINGYA),
1905        '\u{10D40}'..='\u{10D8F}' => Some(GARAY),
1906        '\u{10E60}'..='\u{10E7F}' => Some(RUMI_NUMERAL_SYMBOLS),
1907        '\u{10E80}'..='\u{10EBF}' => Some(YEZIDI),
1908        '\u{10EC0}'..='\u{10EFF}' => Some(ARABIC_EXTENDED_C),
1909        '\u{10F00}'..='\u{10F2F}' => Some(OLD_SOGDIAN),
1910        '\u{10F30}'..='\u{10F6F}' => Some(SOGDIAN),
1911        '\u{10F70}'..='\u{10FAF}' => Some(OLD_UYGHUR),
1912        '\u{10FB0}'..='\u{10FDF}' => Some(CHORASMIAN),
1913        '\u{10FE0}'..='\u{10FFF}' => Some(ELYMAIC),
1914        '\u{11000}'..='\u{1107F}' => Some(BRAHMI),
1915        '\u{11080}'..='\u{110CF}' => Some(KAITHI),
1916        '\u{110D0}'..='\u{110FF}' => Some(SORA_SOMPENG),
1917        '\u{11100}'..='\u{1114F}' => Some(CHAKMA),
1918        '\u{11150}'..='\u{1117F}' => Some(MAHAJANI),
1919        '\u{11180}'..='\u{111DF}' => Some(SHARADA),
1920        '\u{111E0}'..='\u{111FF}' => Some(SINHALA_ARCHAIC_NUMBERS),
1921        '\u{11200}'..='\u{1124F}' => Some(KHOJKI),
1922        '\u{11280}'..='\u{112AF}' => Some(MULTANI),
1923        '\u{112B0}'..='\u{112FF}' => Some(KHUDAWADI),
1924        '\u{11300}'..='\u{1137F}' => Some(GRANTHA),
1925        '\u{11380}'..='\u{113FF}' => Some(TULU_TIGALARI),
1926        '\u{11400}'..='\u{1147F}' => Some(NEWA),
1927        '\u{11480}'..='\u{114DF}' => Some(TIRHUTA),
1928        '\u{11580}'..='\u{115FF}' => Some(SIDDHAM),
1929        '\u{11600}'..='\u{1165F}' => Some(MODI),
1930        '\u{11660}'..='\u{1167F}' => Some(MONGOLIAN_SUPPLEMENT),
1931        '\u{11680}'..='\u{116CF}' => Some(TAKRI),
1932        '\u{116D0}'..='\u{116FF}' => Some(MYANMAR_EXTENDED_C),
1933        '\u{11700}'..='\u{1174F}' => Some(AHOM),
1934        '\u{11800}'..='\u{1184F}' => Some(DOGRA),
1935        '\u{118A0}'..='\u{118FF}' => Some(WARANG_CITI),
1936        '\u{11900}'..='\u{1195F}' => Some(DIVES_AKURU),
1937        '\u{119A0}'..='\u{119FF}' => Some(NANDINAGARI),
1938        '\u{11A00}'..='\u{11A4F}' => Some(ZANABAZAR_SQUARE),
1939        '\u{11A50}'..='\u{11AAF}' => Some(SOYOMBO),
1940        '\u{11AB0}'..='\u{11ABF}' => Some(UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS_EXTENDED_A),
1941        '\u{11AC0}'..='\u{11AFF}' => Some(PAU_CIN_HAU),
1942        '\u{11B00}'..='\u{11B5F}' => Some(DEVANAGARI_EXTENDED_A),
1943        '\u{11BC0}'..='\u{11BFF}' => Some(SUNUWAR),
1944        '\u{11C00}'..='\u{11C6F}' => Some(BHAIKSUKI),
1945        '\u{11C70}'..='\u{11CBF}' => Some(MARCHEN),
1946        '\u{11D00}'..='\u{11D5F}' => Some(MASARAM_GONDI),
1947        '\u{11D60}'..='\u{11DAF}' => Some(GUNJALA_GONDI),
1948        '\u{11EE0}'..='\u{11EFF}' => Some(MAKASAR),
1949        '\u{11F00}'..='\u{11F5F}' => Some(KAWI),
1950        '\u{11FB0}'..='\u{11FBF}' => Some(LISU_SUPPLEMENT),
1951        '\u{11FC0}'..='\u{11FFF}' => Some(TAMIL_SUPPLEMENT),
1952        '\u{12000}'..='\u{123FF}' => Some(CUNEIFORM),
1953        '\u{12400}'..='\u{1247F}' => Some(CUNEIFORM_NUMBERS_AND_PUNCTUATION),
1954        '\u{12480}'..='\u{1254F}' => Some(EARLY_DYNASTIC_CUNEIFORM),
1955        '\u{12F90}'..='\u{12FFF}' => Some(CYPRO_MINOAN),
1956        '\u{13000}'..='\u{1342F}' => Some(EGYPTIAN_HIEROGLYPHS),
1957        '\u{13430}'..='\u{1345F}' => Some(EGYPTIAN_HIEROGLYPH_FORMAT_CONTROLS),
1958        '\u{13460}'..='\u{143FF}' => Some(EGYPTIAN_HIEROGLYPHS_EXTENDED_A),
1959        '\u{14400}'..='\u{1467F}' => Some(ANATOLIAN_HIEROGLYPHS),
1960        '\u{16100}'..='\u{1613F}' => Some(GURUNG_KHEMA),
1961        '\u{16800}'..='\u{16A3F}' => Some(BAMUM_SUPPLEMENT),
1962        '\u{16A40}'..='\u{16A6F}' => Some(MRO),
1963        '\u{16A70}'..='\u{16ACF}' => Some(TANGSA),
1964        '\u{16AD0}'..='\u{16AFF}' => Some(BASSA_VAH),
1965        '\u{16B00}'..='\u{16B8F}' => Some(PAHAWH_HMONG),
1966        '\u{16D40}'..='\u{16D7F}' => Some(KIRAT_RAI),
1967        '\u{16E40}'..='\u{16E9F}' => Some(MEDEFAIDRIN),
1968        '\u{16F00}'..='\u{16F9F}' => Some(MIAO),
1969        '\u{16FE0}'..='\u{16FFF}' => Some(IDEOGRAPHIC_SYMBOLS_AND_PUNCTUATION),
1970        '\u{17000}'..='\u{187FF}' => Some(TANGUT),
1971        '\u{18800}'..='\u{18AFF}' => Some(TANGUT_COMPONENTS),
1972        '\u{18B00}'..='\u{18CFF}' => Some(KHITAN_SMALL_SCRIPT),
1973        '\u{18D00}'..='\u{18D7F}' => Some(TANGUT_SUPPLEMENT),
1974        '\u{1AFF0}'..='\u{1AFFF}' => Some(KANA_EXTENDED_B),
1975        '\u{1B000}'..='\u{1B0FF}' => Some(KANA_SUPPLEMENT),
1976        '\u{1B100}'..='\u{1B12F}' => Some(KANA_EXTENDED_A),
1977        '\u{1B130}'..='\u{1B16F}' => Some(SMALL_KANA_EXTENSION),
1978        '\u{1B170}'..='\u{1B2FF}' => Some(NUSHU),
1979        '\u{1BC00}'..='\u{1BC9F}' => Some(DUPLOYAN),
1980        '\u{1BCA0}'..='\u{1BCAF}' => Some(SHORTHAND_FORMAT_CONTROLS),
1981        '\u{1CC00}'..='\u{1CEBF}' => Some(SYMBOLS_FOR_LEGACY_COMPUTING_SUPPLEMENT),
1982        '\u{1CF00}'..='\u{1CFCF}' => Some(ZNAMENNY_MUSICAL_NOTATION),
1983        '\u{1D000}'..='\u{1D0FF}' => Some(BYZANTINE_MUSICAL_SYMBOLS),
1984        '\u{1D100}'..='\u{1D1FF}' => Some(MUSICAL_SYMBOLS),
1985        '\u{1D200}'..='\u{1D24F}' => Some(ANCIENT_GREEK_MUSICAL_NOTATION),
1986        '\u{1D2C0}'..='\u{1D2DF}' => Some(KAKTOVIK_NUMERALS),
1987        '\u{1D2E0}'..='\u{1D2FF}' => Some(MAYAN_NUMERALS),
1988        '\u{1D300}'..='\u{1D35F}' => Some(TAI_XUAN_JING_SYMBOLS),
1989        '\u{1D360}'..='\u{1D37F}' => Some(COUNTING_ROD_NUMERALS),
1990        '\u{1D400}'..='\u{1D7FF}' => Some(MATHEMATICAL_ALPHANUMERIC_SYMBOLS),
1991        '\u{1D800}'..='\u{1DAAF}' => Some(SUTTON_SIGNWRITING),
1992        '\u{1DF00}'..='\u{1DFFF}' => Some(LATIN_EXTENDED_G),
1993        '\u{1E000}'..='\u{1E02F}' => Some(GLAGOLITIC_SUPPLEMENT),
1994        '\u{1E030}'..='\u{1E08F}' => Some(CYRILLIC_EXTENDED_D),
1995        '\u{1E100}'..='\u{1E14F}' => Some(NYIAKENG_PUACHUE_HMONG),
1996        '\u{1E290}'..='\u{1E2BF}' => Some(TOTO),
1997        '\u{1E2C0}'..='\u{1E2FF}' => Some(WANCHO),
1998        '\u{1E4D0}'..='\u{1E4FF}' => Some(NAG_MUNDARI),
1999        '\u{1E5D0}'..='\u{1E5FF}' => Some(OL_ONAL),
2000        '\u{1E7E0}'..='\u{1E7FF}' => Some(ETHIOPIC_EXTENDED_B),
2001        '\u{1E800}'..='\u{1E8DF}' => Some(MENDE_KIKAKUI),
2002        '\u{1E900}'..='\u{1E95F}' => Some(ADLAM),
2003        '\u{1EC70}'..='\u{1ECBF}' => Some(INDIC_SIYAQ_NUMBERS),
2004        '\u{1ED00}'..='\u{1ED4F}' => Some(OTTOMAN_SIYAQ_NUMBERS),
2005        '\u{1EE00}'..='\u{1EEFF}' => Some(ARABIC_MATHEMATICAL_ALPHABETIC_SYMBOLS),
2006        '\u{1F000}'..='\u{1F02F}' => Some(MAHJONG_TILES),
2007        '\u{1F030}'..='\u{1F09F}' => Some(DOMINO_TILES),
2008        '\u{1F0A0}'..='\u{1F0FF}' => Some(PLAYING_CARDS),
2009        '\u{1F100}'..='\u{1F1FF}' => Some(ENCLOSED_ALPHANUMERIC_SUPPLEMENT),
2010        '\u{1F200}'..='\u{1F2FF}' => Some(ENCLOSED_IDEOGRAPHIC_SUPPLEMENT),
2011        '\u{1F300}'..='\u{1F5FF}' => Some(MISCELLANEOUS_SYMBOLS_AND_PICTOGRAPHS),
2012        '\u{1F600}'..='\u{1F64F}' => Some(EMOTICONS),
2013        '\u{1F650}'..='\u{1F67F}' => Some(ORNAMENTAL_DINGBATS),
2014        '\u{1F680}'..='\u{1F6FF}' => Some(TRANSPORT_AND_MAP_SYMBOLS),
2015        '\u{1F700}'..='\u{1F77F}' => Some(ALCHEMICAL_SYMBOLS),
2016        '\u{1F780}'..='\u{1F7FF}' => Some(GEOMETRIC_SHAPES_EXTENDED),
2017        '\u{1F800}'..='\u{1F8FF}' => Some(SUPPLEMENTAL_ARROWS_C),
2018        '\u{1F900}'..='\u{1F9FF}' => Some(SUPPLEMENTAL_SYMBOLS_AND_PICTOGRAPHS),
2019        '\u{1FA00}'..='\u{1FA6F}' => Some(CHESS_SYMBOLS),
2020        '\u{1FA70}'..='\u{1FAFF}' => Some(SYMBOLS_AND_PICTOGRAPHS_EXTENDED_A),
2021        '\u{1FB00}'..='\u{1FBFF}' => Some(SYMBOLS_FOR_LEGACY_COMPUTING),
2022        '\u{20000}'..='\u{2A6DF}' => Some(CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B),
2023        '\u{2A700}'..='\u{2B73F}' => Some(CJK_UNIFIED_IDEOGRAPHS_EXTENSION_C),
2024        '\u{2B740}'..='\u{2B81F}' => Some(CJK_UNIFIED_IDEOGRAPHS_EXTENSION_D),
2025        '\u{2B820}'..='\u{2CEAF}' => Some(CJK_UNIFIED_IDEOGRAPHS_EXTENSION_E),
2026        '\u{2CEB0}'..='\u{2EBEF}' => Some(CJK_UNIFIED_IDEOGRAPHS_EXTENSION_F),
2027        '\u{2EBF0}'..='\u{2EE5F}' => Some(CJK_UNIFIED_IDEOGRAPHS_EXTENSION_I),
2028        '\u{2F800}'..='\u{2FA1F}' => Some(CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT),
2029        '\u{30000}'..='\u{3134F}' => Some(CJK_UNIFIED_IDEOGRAPHS_EXTENSION_G),
2030        '\u{31350}'..='\u{323AF}' => Some(CJK_UNIFIED_IDEOGRAPHS_EXTENSION_H),
2031        '\u{E0000}'..='\u{E007F}' => Some(TAGS),
2032        '\u{E0100}'..='\u{E01EF}' => Some(VARIATION_SELECTORS_SUPPLEMENT),
2033        '\u{F0000}'..='\u{FFFFF}' => Some(SUPPLEMENTARY_PRIVATE_USE_AREA_A),
2034        '\u{100000}'..='\u{10FFFF}' => Some(SUPPLEMENTARY_PRIVATE_USE_AREA_B),
2035        _ => None,
2036    }
2037}