7 #include "tdeunicodedata.h"
19 constexpr TDEUnicodeData::Subcategory BasicLatin[] = {
21 { 0x0020,
I18N_NOOP(
"ASCII punctuation and symbols") },
22 { 0x002B,
I18N_NOOP(
"ASCII math operator") },
23 { 0x002C,
I18N_NOOP(
"ASCII punctuation") },
25 { 0x003A,
I18N_NOOP(
"ASCII punctuation") },
26 { 0x003C,
I18N_NOOP(
"ASCII mathematical operators") },
27 { 0x003F,
I18N_NOOP(
"ASCII punctuation") },
28 { 0x0041,
I18N_NOOP(
"Uppercase Latin alphabet") },
29 { 0x005B,
I18N_NOOP(
"ASCII punctuation and symbols") },
30 { 0x0061,
I18N_NOOP(
"Lowercase Latin alphabet") },
31 { 0x007B,
I18N_NOOP(
"ASCII punctuation and symbols") },
32 { 0x007F,
I18N_NOOP(
"Control character") },
35 constexpr TDEUnicodeData::Subcategory Latin1Supplement[] = {
37 { 0x00A0,
I18N_NOOP(
"Latin-1 punctuation and symbols") },
38 { 0x00BC,
I18N_NOOP(
"Vulgar fractions") },
40 { 0x00C0,
I18N_NOOP(
"Uppercase letters") },
41 { 0x00D7,
I18N_NOOP(
"Mathematical operator") },
42 { 0x00D8,
I18N_NOOP(
"Uppercase letters") },
43 { 0x00DF,
I18N_NOOP(
"Lowercase letters") },
44 { 0x00F7,
I18N_NOOP(
"Mathematical operator") },
45 { 0x00F8,
I18N_NOOP(
"Lowercase letters") },
48 constexpr TDEUnicodeData::Subcategory LatinExtendedA[] = {
50 { 0x0149,
I18N_NOOP(
"Deprecated letter") },
54 constexpr TDEUnicodeData::Subcategory LatinExtendedB[] = {
55 { 0x0180,
I18N_NOOP(
"Non-European and historic Latin") },
56 { 0x01C0,
I18N_NOOP(
"African letters for clicks") },
57 { 0x01C4,
I18N_NOOP(
"Latin digraphs matching Serbian Cyrillic letters") },
58 { 0x01CD,
I18N_NOOP(
"Pinyin diacritic-vowel combinations") },
59 { 0x01DD,
I18N_NOOP(
"Phonetic and historic letters") },
60 { 0x0200,
I18N_NOOP(
"Additions for Slovenian") },
61 { 0x0218,
I18N_NOOP(
"Additions for Romanian") },
62 { 0x021C,
I18N_NOOP(
"Miscellaneous additions") },
63 { 0x022A,
I18N_NOOP(
"Additions for Livonian") },
64 { 0x0234,
I18N_NOOP(
"Additions for Sinology") },
65 { 0x0237,
I18N_NOOP(
"Miscellaneous addition") },
66 { 0x0238,
I18N_NOOP(
"Additions for Africanist linguistics") },
67 { 0x023A,
I18N_NOOP(
"Additions for Sencoten") },
68 { 0x023F,
I18N_NOOP(
"Additions for Africanist linguistics") },
69 { 0x0241,
I18N_NOOP(
"Miscellaneous additions") },
72 constexpr TDEUnicodeData::Subcategory IPAExtensions[] = {
74 { 0x027F,
I18N_NOOP(
"Sinological extension") },
76 { 0x0285,
I18N_NOOP(
"Sinological extension") },
78 { 0x02A9,
I18N_NOOP(
"IPA characters for disordered speech") },
79 { 0x02AE,
I18N_NOOP(
"Sinological extensions") },
82 constexpr TDEUnicodeData::Subcategory SpacingModifierLetters[] = {
83 { 0x02B0,
I18N_NOOP(
"Latin superscript modifier letters") },
84 { 0x02B9,
I18N_NOOP(
"Miscellaneous phonetic modifiers") },
85 { 0x02D8,
I18N_NOOP(
"Spacing clones of diacritics") },
86 { 0x02DE,
I18N_NOOP(
"Additions based on 1989 IPA") },
88 { 0x02EA,
I18N_NOOP(
"Extended Bopomofo tone marks") },
90 { 0x02EE,
I18N_NOOP(
"Other modifier letter") },
94 constexpr TDEUnicodeData::Subcategory CombiningDiacriticalMarks[] = {
95 { 0x0300,
I18N_NOOP(
"Ordinary diacritics") },
96 { 0x0334,
I18N_NOOP(
"Overstruck diacritics") },
97 { 0x0339,
I18N_NOOP(
"Miscellaneous additions") },
98 { 0x0340,
I18N_NOOP(
"Vietnamese tone marks") },
99 { 0x0342,
I18N_NOOP(
"Additions for Greek") },
100 { 0x0346,
I18N_NOOP(
"Additions for IPA") },
101 { 0x034B,
I18N_NOOP(
"IPA diacritics for disordered speech") },
102 { 0x034F,
I18N_NOOP(
"Miscellaneous addition") },
103 { 0x0350,
I18N_NOOP(
"Additions for the Uralic Phonetic Alphabet") },
104 { 0x0358,
I18N_NOOP(
"Miscellaneous additions") },
105 { 0x035C,
I18N_NOOP(
"Double diacritics") },
106 { 0x0363,
I18N_NOOP(
"Medieval superscript letter diacritics") },
109 constexpr TDEUnicodeData::Subcategory GreekandCoptic[] = {
110 { 0x0370,
I18N_NOOP(
"Archaic letters") },
112 { 0x0376,
I18N_NOOP(
"Archaic letters") },
114 { 0x037B,
I18N_NOOP(
"Lowercase of editorial symbols") },
116 { 0x037F,
I18N_NOOP(
"Additional letter") },
117 { 0x0384,
I18N_NOOP(
"Spacing accent marks") },
121 { 0x03CF,
I18N_NOOP(
"Variant letterforms") },
122 { 0x03D8,
I18N_NOOP(
"Archaic letters") },
123 { 0x03E2,
I18N_NOOP(
"Coptic letters derived from Demotic") },
124 { 0x03F0,
I18N_NOOP(
"Variant letterforms") },
125 { 0x03F3,
I18N_NOOP(
"Additional letter") },
126 { 0x03F4,
I18N_NOOP(
"Variant letterforms and symbols") },
127 { 0x03F7,
I18N_NOOP(
"Additional archaic letters for Bactrian") },
128 { 0x03F9,
I18N_NOOP(
"Variant letterform") },
129 { 0x03FA,
I18N_NOOP(
"Archaic letters") },
131 { 0x03FD,
I18N_NOOP(
"Editorial symbols") },
134 constexpr TDEUnicodeData::Subcategory Cyrillic[] = {
135 { 0x0400,
I18N_NOOP(
"Cyrillic extensions") },
136 { 0x0410,
I18N_NOOP(
"Basic Russian alphabet") },
137 { 0x0450,
I18N_NOOP(
"Cyrillic extensions") },
138 { 0x0460,
I18N_NOOP(
"Historic letters") },
139 { 0x0478,
I18N_NOOP(
"Historic digraphs") },
140 { 0x047A,
I18N_NOOP(
"Historic letters") },
141 { 0x0482,
I18N_NOOP(
"Historic miscellaneous") },
142 { 0x048A,
I18N_NOOP(
"Extended Cyrillic") },
143 { 0x04FA,
I18N_NOOP(
"Additions for Nivkh") },
146 constexpr TDEUnicodeData::Subcategory CyrillicSupplement[] = {
149 { 0x0512,
I18N_NOOP(
"Chukchi letters") },
150 { 0x0514,
I18N_NOOP(
"Mordvin letters") },
151 { 0x051A,
I18N_NOOP(
"Kurdish letters") },
153 { 0x0520,
I18N_NOOP(
"Chuvash letters") },
155 { 0x0526,
I18N_NOOP(
"Azerbaijani letters") },
161 constexpr TDEUnicodeData::Subcategory Armenian[] = {
162 { 0x0531,
I18N_NOOP(
"Uppercase letters") },
163 { 0x0559,
I18N_NOOP(
"Modifier letters") },
164 { 0x0560,
I18N_NOOP(
"Lowercase letters") },
166 { 0x058D,
I18N_NOOP(
"Religious symbols") },
167 { 0x058F,
I18N_NOOP(
"Currency symbol") },
170 constexpr TDEUnicodeData::Subcategory Hebrew[] = {
171 { 0x0591,
I18N_NOOP(
"Cantillation marks") },
172 { 0x05B0,
I18N_NOOP(
"Points and punctuation") },
173 { 0x05C4,
I18N_NOOP(
"Puncta extraordinaria") },
174 { 0x05C6,
I18N_NOOP(
"Points and punctuation") },
175 { 0x05D0,
I18N_NOOP(
"Based on ISO 8859-8") },
177 { 0x05F0,
I18N_NOOP(
"Yiddish digraphs") },
178 { 0x05F3,
I18N_NOOP(
"Additional punctuation") },
181 constexpr TDEUnicodeData::Subcategory Arabic[] = {
182 { 0x0600,
I18N_NOOP(
"Subtending marks") },
183 { 0x0605,
I18N_NOOP(
"Supertending mark") },
185 { 0x0608,
I18N_NOOP(
"Letterlike symbol") },
187 { 0x060B,
I18N_NOOP(
"Currency symbol") },
191 { 0x0615,
I18N_NOOP(
"Quranic annotation sign") },
192 { 0x0616,
I18N_NOOP(
"Extended Arabic mark") },
193 { 0x0617,
I18N_NOOP(
"Quranic annotation signs") },
195 { 0x061C,
I18N_NOOP(
"Format character") },
197 { 0x0620,
I18N_NOOP(
"Addition for Kashmiri") },
198 { 0x0621,
I18N_NOOP(
"Based on ISO 8859-6") },
199 { 0x063B,
I18N_NOOP(
"Additions for early Persian and Azerbaijani") },
200 { 0x0640,
I18N_NOOP(
"Based on ISO 8859-6") },
201 { 0x064B,
I18N_NOOP(
"Tashkil from ISO 8859-6") },
202 { 0x0653,
I18N_NOOP(
"Combining maddah and hamza") },
203 { 0x0656,
I18N_NOOP(
"Other combining marks") },
204 { 0x0660,
I18N_NOOP(
"Arabic-Indic digits") },
206 { 0x066E,
I18N_NOOP(
"Archaic letters") },
208 { 0x0671,
I18N_NOOP(
"Extended Arabic letters") },
209 { 0x0673,
I18N_NOOP(
"Deprecated letter") },
211 { 0x0675,
I18N_NOOP(
"Digraphic letters for Kazakh") },
212 { 0x0679,
I18N_NOOP(
"Extended Arabic letters") },
214 { 0x06D5,
I18N_NOOP(
"Extended Arabic letter") },
215 { 0x06D6,
I18N_NOOP(
"Quranic annotation signs") },
216 { 0x06EE,
I18N_NOOP(
"Extended Arabic letters for Parkari") },
217 { 0x06F0,
I18N_NOOP(
"Eastern Arabic-Indic digits") },
218 { 0x06FA,
I18N_NOOP(
"Extended Arabic letters") },
219 { 0x06FD,
I18N_NOOP(
"Signs for Sindhi") },
220 { 0x06FF,
I18N_NOOP(
"Extended Arabic letter for Parkari") },
223 constexpr TDEUnicodeData::Subcategory Syriac[] = {
224 { 0x0700,
I18N_NOOP(
"Syriac punctuation and signs") },
225 { 0x070F,
I18N_NOOP(
"Syriac format control character") },
227 { 0x072D,
I18N_NOOP(
"Persian letters") },
228 { 0x0730,
I18N_NOOP(
"Syriac points (vowels)") },
230 { 0x074D,
I18N_NOOP(
"Sogdian letters") },
233 constexpr TDEUnicodeData::Subcategory ArabicSupplement[] = {
234 { 0x0750,
I18N_NOOP(
"Extended Arabic letters") },
235 { 0x076E,
I18N_NOOP(
"Additions for Khowar") },
236 { 0x0772,
I18N_NOOP(
"Addition for Torwali") },
237 { 0x0773,
I18N_NOOP(
"Additions for Burushaski") },
238 { 0x077E,
I18N_NOOP(
"Additions for early Persian") },
241 constexpr TDEUnicodeData::Subcategory Thaana[] = {
242 { 0x0780,
I18N_NOOP(
"Basic consonants") },
243 { 0x0798,
I18N_NOOP(
"Extensions for Arabic") },
245 { 0x07B1,
I18N_NOOP(
"Consonant for Addu dialect") },
248 constexpr TDEUnicodeData::Subcategory NKo[] = {
251 { 0x07E8,
I18N_NOOP(
"Archaic letters") },
253 { 0x07F2,
I18N_NOOP(
"Other diacritics") },
254 { 0x07F4,
I18N_NOOP(
"Tonal apostrophes") },
257 { 0x07FA,
I18N_NOOP(
"Letter extender") },
258 { 0x07FD,
I18N_NOOP(
"Abbreviation sign") },
259 { 0x07FE,
I18N_NOOP(
"Currency symbols") },
262 constexpr TDEUnicodeData::Subcategory Samaritan[] = {
264 { 0x0816,
I18N_NOOP(
"Consonant modifiers") },
266 { 0x082D,
I18N_NOOP(
"Variant reading sign") },
270 constexpr TDEUnicodeData::Subcategory Mandaic[] = {
276 constexpr TDEUnicodeData::Subcategory SyriacSupplement[] = {
280 constexpr TDEUnicodeData::Subcategory ArabicExtendedB[] = {
281 { 0x0870,
I18N_NOOP(
"Additions for Quranic orthographies") },
282 { 0x0889,
I18N_NOOP(
"Additions for Bosnian orthographies") },
283 { 0x088B,
I18N_NOOP(
"Additions for Pegon orthographies") },
284 { 0x088E,
I18N_NOOP(
"Abbreviation mark") },
285 { 0x088F,
I18N_NOOP(
"Addition for Eastern Punjabi orthographies") },
286 { 0x0890,
I18N_NOOP(
"Supertending currency symbols") },
287 { 0x0897,
I18N_NOOP(
"Vowel sign for Pegon") },
288 { 0x0898,
I18N_NOOP(
"Additions for Quranic orthographies") },
291 constexpr TDEUnicodeData::Subcategory ArabicExtendedA[] = {
292 { 0x08A0,
I18N_NOOP(
"Arabic letters for African languages") },
293 { 0x08AA,
I18N_NOOP(
"Dependent consonants for Rohingya") },
294 { 0x08AD,
I18N_NOOP(
"Arabic letters for European and Central Asian languages") },
295 { 0x08B2,
I18N_NOOP(
"Arabic letter for Berber") },
296 { 0x08B3,
I18N_NOOP(
"Arabic letters for Arwi") },
297 { 0x08B5,
I18N_NOOP(
"Early Arabic letter") },
298 { 0x08B6,
I18N_NOOP(
"Arabic letters for Bravanese") },
299 { 0x08BB,
I18N_NOOP(
"Arabic letters for Warsh orthography") },
300 { 0x08BE,
I18N_NOOP(
"Arabic letters for Hindko") },
301 { 0x08C3,
I18N_NOOP(
"Arabic letters for Hausa, Wolof and other African orthographies") },
302 { 0x08C7,
I18N_NOOP(
"Arabic letter for Punjabi") },
303 { 0x08C8,
I18N_NOOP(
"Arabic letter for Balti") },
304 { 0x08C9,
I18N_NOOP(
"Additions for Quranic orthographies") },
305 { 0x08D3,
I18N_NOOP(
"Quranic annotation signs") },
306 { 0x08E3,
I18N_NOOP(
"Extended vowel sign for Arwi") },
307 { 0x08E4,
I18N_NOOP(
"Extended vowel signs for Rohingya") },
308 { 0x08EA,
I18N_NOOP(
"Tone marks for Rohingya") },
309 { 0x08F0,
I18N_NOOP(
"Quranic annotation signs") },
310 { 0x08F4,
I18N_NOOP(
"Extended vowel signs for African languages") },
311 { 0x08FE,
I18N_NOOP(
"Extended vowel signs") },
314 constexpr TDEUnicodeData::Subcategory Devanagari[] = {
316 { 0x0904,
I18N_NOOP(
"Independent vowels") },
318 { 0x093A,
I18N_NOOP(
"Dependent vowel signs") },
320 { 0x093E,
I18N_NOOP(
"Dependent vowel signs") },
322 { 0x094E,
I18N_NOOP(
"Dependent vowel signs") },
324 { 0x0951,
I18N_NOOP(
"Vedic tone marks") },
326 { 0x0955,
I18N_NOOP(
"Dependent vowel sign") },
327 { 0x0956,
I18N_NOOP(
"Dependent vowel signs for Kashmiri") },
328 { 0x0958,
I18N_NOOP(
"Additional consonants") },
329 { 0x0960,
I18N_NOOP(
"Additional vowels for Sanskrit") },
330 { 0x0964,
I18N_NOOP(
"Generic punctuation for scripts of India") },
332 { 0x0970,
I18N_NOOP(
"Additional signs") },
333 { 0x0972,
I18N_NOOP(
"Independent vowel for Marathi") },
334 { 0x0973,
I18N_NOOP(
"Independent vowels") },
335 { 0x0976,
I18N_NOOP(
"Independent vowels for Kashmiri") },
336 { 0x0978,
I18N_NOOP(
"Additional consonants") },
337 { 0x097B,
I18N_NOOP(
"Sindhi implosives") },
339 { 0x097E,
I18N_NOOP(
"Sindhi implosives") },
342 constexpr TDEUnicodeData::Subcategory Bengali[] = {
344 { 0x0985,
I18N_NOOP(
"Independent vowels") },
347 { 0x09BE,
I18N_NOOP(
"Dependent vowel signs") },
348 { 0x09CB,
I18N_NOOP(
"Two-part dependent vowel signs") },
350 { 0x09CE,
I18N_NOOP(
"Additional consonant") },
352 { 0x09DC,
I18N_NOOP(
"Additional consonants") },
353 { 0x09E0,
I18N_NOOP(
"Additional vowels for Sanskrit") },
356 { 0x09F0,
I18N_NOOP(
"Additions for Assamese") },
357 { 0x09F2,
I18N_NOOP(
"Currency symbols") },
358 { 0x09F4,
I18N_NOOP(
"Historic symbols for fractional values") },
360 { 0x09FB,
I18N_NOOP(
"Historic currency sign") },
364 constexpr TDEUnicodeData::Subcategory Gurmukhi[] = {
366 { 0x0A05,
I18N_NOOP(
"Independent vowels") },
369 { 0x0A3E,
I18N_NOOP(
"Dependent vowel signs") },
372 { 0x0A59,
I18N_NOOP(
"Additional consonants") },
380 constexpr TDEUnicodeData::Subcategory Gujarati[] = {
382 { 0x0A85,
I18N_NOOP(
"Independent vowels") },
385 { 0x0ABE,
I18N_NOOP(
"Dependent vowel signs") },
388 { 0x0AE0,
I18N_NOOP(
"Additional vowels for Sanskrit") },
391 { 0x0AF0,
I18N_NOOP(
"Abbreviation sign") },
392 { 0x0AF1,
I18N_NOOP(
"Currency symbol") },
393 { 0x0AF9,
I18N_NOOP(
"Additional consonant") },
394 { 0x0AFA,
I18N_NOOP(
"Transliteration signs") },
397 constexpr TDEUnicodeData::Subcategory Oriya[] = {
399 { 0x0B05,
I18N_NOOP(
"Independent vowels") },
402 { 0x0B3E,
I18N_NOOP(
"Dependent vowel signs") },
403 { 0x0B4B,
I18N_NOOP(
"Two-part dependent vowel signs") },
406 { 0x0B5C,
I18N_NOOP(
"Additional consonants") },
407 { 0x0B60,
I18N_NOOP(
"Additional vowels for Sanskrit") },
408 { 0x0B62,
I18N_NOOP(
"Dependent vowels") },
412 { 0x0B71,
I18N_NOOP(
"Additional consonant") },
416 constexpr TDEUnicodeData::Subcategory Tamil[] = {
418 { 0x0B85,
I18N_NOOP(
"Independent vowels") },
420 { 0x0BBE,
I18N_NOOP(
"Dependent vowel signs") },
421 { 0x0BCA,
I18N_NOOP(
"Two-part dependent vowel signs") },
427 { 0x0BF3,
I18N_NOOP(
"Tamil calendrical symbols") },
428 { 0x0BF6,
I18N_NOOP(
"Tamil clerical symbols") },
429 { 0x0BF9,
I18N_NOOP(
"Currency symbol") },
430 { 0x0BFA,
I18N_NOOP(
"Tamil clerical symbol") },
433 constexpr TDEUnicodeData::Subcategory Telugu[] = {
435 { 0x0C05,
I18N_NOOP(
"Independent vowels") },
438 { 0x0C3D,
I18N_NOOP(
"Addition for Sanskrit") },
439 { 0x0C3E,
I18N_NOOP(
"Dependent vowel signs") },
442 { 0x0C58,
I18N_NOOP(
"Historic phonetic variants") },
445 { 0x0C60,
I18N_NOOP(
"Additional vowels for Sanskrit") },
446 { 0x0C62,
I18N_NOOP(
"Dependent vowels") },
450 { 0x0C78,
I18N_NOOP(
"Telugu fractions and weights") },
453 constexpr TDEUnicodeData::Subcategory Kannada[] = {
455 { 0x0C85,
I18N_NOOP(
"Independent vowels") },
458 { 0x0CBE,
I18N_NOOP(
"Dependent vowel signs") },
462 { 0x0CDD,
I18N_NOOP(
"Additional consonants") },
463 { 0x0CE0,
I18N_NOOP(
"Additional vowels for Sanskrit") },
464 { 0x0CE2,
I18N_NOOP(
"Dependent vowels") },
467 { 0x0CF1,
I18N_NOOP(
"Signs used in Sanskrit") },
470 constexpr TDEUnicodeData::Subcategory Malayalam[] = {
472 { 0x0D05,
I18N_NOOP(
"Independent vowels") },
474 { 0x0D3B,
I18N_NOOP(
"Variant shape viramas") },
475 { 0x0D3D,
I18N_NOOP(
"Addition for Sanskrit") },
476 { 0x0D3E,
I18N_NOOP(
"Dependent vowel signs") },
477 { 0x0D4A,
I18N_NOOP(
"Two-part dependent vowel signs") },
480 { 0x0D4F,
I18N_NOOP(
"Measurement symbol") },
481 { 0x0D54,
I18N_NOOP(
"Additional historic chillu letters") },
482 { 0x0D57,
I18N_NOOP(
"Dependent vowel sign") },
483 { 0x0D58,
I18N_NOOP(
"Minor fractions") },
484 { 0x0D5F,
I18N_NOOP(
"Additional historic vowel") },
485 { 0x0D60,
I18N_NOOP(
"Additional vowels for Sanskrit") },
486 { 0x0D62,
I18N_NOOP(
"Dependent vowels") },
489 { 0x0D70,
I18N_NOOP(
"Malayalam numerics") },
495 constexpr TDEUnicodeData::Subcategory Sinhala[] = {
497 { 0x0D85,
I18N_NOOP(
"Independent vowels") },
500 { 0x0DCF,
I18N_NOOP(
"Dependent vowel signs") },
501 { 0x0DDC,
I18N_NOOP(
"Two-part dependent vowel signs") },
502 { 0x0DDF,
I18N_NOOP(
"Dependent vowel sign") },
503 { 0x0DE6,
I18N_NOOP(
"Astrological digits") },
504 { 0x0DF2,
I18N_NOOP(
"Additional dependent vowel signs") },
508 constexpr TDEUnicodeData::Subcategory Thai[] = {
512 { 0x0E3F,
I18N_NOOP(
"Currency symbol") },
514 { 0x0E45,
I18N_NOOP(
"Vowel length sign") },
515 { 0x0E46,
I18N_NOOP(
"Repetition mark") },
523 constexpr TDEUnicodeData::Subcategory Lao[] = {
531 { 0x0EC6,
I18N_NOOP(
"Repetition mark") },
536 { 0x0EDE,
I18N_NOOP(
"Consonants for Khmu") },
539 constexpr TDEUnicodeData::Subcategory Tibetan[] = {
542 { 0x0F08,
I18N_NOOP(
"Marks and signs") },
543 { 0x0F15,
I18N_NOOP(
"Astrological signs") },
545 { 0x0F2A,
I18N_NOOP(
"Digits minus half") },
546 { 0x0F34,
I18N_NOOP(
"Marks and signs") },
547 { 0x0F3A,
I18N_NOOP(
"Paired punctuation") },
548 { 0x0F3E,
I18N_NOOP(
"Astrological signs") },
550 { 0x0F6B,
I18N_NOOP(
"Extensions for Balti") },
551 { 0x0F71,
I18N_NOOP(
"Dependent vowel signs") },
552 { 0x0F7E,
I18N_NOOP(
"Vocalic modification") },
553 { 0x0F80,
I18N_NOOP(
"Dependent vowel signs") },
554 { 0x0F82,
I18N_NOOP(
"Marks and signs") },
555 { 0x0F88,
I18N_NOOP(
"Transliteration head letters") },
556 { 0x0F8D,
I18N_NOOP(
"Transliteration subjoined signs") },
557 { 0x0F90,
I18N_NOOP(
"Subjoined consonants") },
558 { 0x0FBA,
I18N_NOOP(
"Fixed-form subjoined consonants") },
560 { 0x0FC0,
I18N_NOOP(
"Cantillation signs") },
562 { 0x0FCE,
I18N_NOOP(
"Astrological signs") },
565 { 0x0FD5,
I18N_NOOP(
"Religious symbols") },
566 { 0x0FD9,
I18N_NOOP(
"Annotation marks") },
569 constexpr TDEUnicodeData::Subcategory Myanmar[] = {
571 { 0x1021,
I18N_NOOP(
"Independent vowels") },
572 { 0x102B,
I18N_NOOP(
"Dependent vowel signs") },
574 { 0x1039,
I18N_NOOP(
"Virama and killer") },
575 { 0x103B,
I18N_NOOP(
"Dependent consonant signs") },
580 { 0x1050,
I18N_NOOP(
"Pali and Sanskrit extensions") },
581 { 0x105A,
I18N_NOOP(
"Extensions for Mon") },
582 { 0x1061,
I18N_NOOP(
"Extensions for S'gaw Karen") },
583 { 0x1065,
I18N_NOOP(
"Extensions for Western Pwo Karen") },
584 { 0x106E,
I18N_NOOP(
"Extensions for Eastern Pwo Karen") },
585 { 0x1071,
I18N_NOOP(
"Extension for Geba Karen") },
586 { 0x1072,
I18N_NOOP(
"Extensions for Kayah") },
587 { 0x1075,
I18N_NOOP(
"Extensions for Shan") },
588 { 0x108E,
I18N_NOOP(
"Extensions for Rumai Palaung") },
590 { 0x109A,
I18N_NOOP(
"Extensions for Khamti Shan") },
591 { 0x109C,
I18N_NOOP(
"Extensions for Aiton and Phake") },
595 constexpr TDEUnicodeData::Subcategory Georgian[] = {
596 { 0x10A0,
I18N_NOOP(
"Capital letters (Khutsuri)") },
597 { 0x10C7,
I18N_NOOP(
"Additional letter") },
598 { 0x10CD,
I18N_NOOP(
"Additional letter for Ossetian") },
600 { 0x10F1,
I18N_NOOP(
"Archaic letters") },
601 { 0x10F7,
I18N_NOOP(
"Additional letters for Mingrelian and Svan") },
602 { 0x10F9,
I18N_NOOP(
"Additional letters") },
604 { 0x10FC,
I18N_NOOP(
"Modifier letter") },
605 { 0x10FD,
I18N_NOOP(
"Additional letters for Ossetian and Abkhaz") },
608 constexpr TDEUnicodeData::Subcategory HangulJamo[] = {
609 { 0x1100,
I18N_NOOP(
"Initial consonants") },
610 { 0x1113,
I18N_NOOP(
"Old initial consonants") },
612 { 0x1176,
I18N_NOOP(
"Old medial vowels") },
613 { 0x11A8,
I18N_NOOP(
"Final consonants") },
614 { 0x11C3,
I18N_NOOP(
"Old final consonants") },
617 constexpr TDEUnicodeData::Subcategory Ethiopic[] = {
619 { 0x135D,
I18N_NOOP(
"Combining marks") },
625 constexpr TDEUnicodeData::Subcategory EthiopicSupplement[] = {
626 { 0x1380,
I18N_NOOP(
"Syllables for Gurage") },
630 constexpr TDEUnicodeData::Subcategory Cherokee[] = {
631 { 0x13A0,
I18N_NOOP(
"Uppercase syllables") },
632 { 0x13F5,
I18N_NOOP(
"Archaic uppercase syllable") },
633 { 0x13F8,
I18N_NOOP(
"Lowercase syllables") },
634 { 0x13FD,
I18N_NOOP(
"Archaic lowercase syllable") },
637 constexpr TDEUnicodeData::Subcategory UnifiedCanadianAboriginalSyllabics[] = {
640 { 0x15C4,
I18N_NOOP(
"Syllables for Carrier") },
646 constexpr TDEUnicodeData::Subcategory Ogham[] = {
648 { 0x1681,
I18N_NOOP(
"Traditional letters") },
649 { 0x1695,
I18N_NOOP(
"Forfeda (supplementary letters)") },
653 constexpr TDEUnicodeData::Subcategory Runic[] = {
656 { 0x16EE,
I18N_NOOP(
"Golden number runes") },
657 { 0x16F1,
I18N_NOOP(
"Tolkienian extensions") },
658 { 0x16F4,
I18N_NOOP(
"Cryptogrammic letters") },
661 constexpr TDEUnicodeData::Subcategory Tagalog[] = {
662 { 0x1700,
I18N_NOOP(
"Independent vowels") },
664 { 0x1712,
I18N_NOOP(
"Dependent vowel signs") },
669 constexpr TDEUnicodeData::Subcategory Hanunoo[] = {
670 { 0x1720,
I18N_NOOP(
"Independent vowels") },
672 { 0x1732,
I18N_NOOP(
"Dependent vowel signs") },
674 { 0x1735,
I18N_NOOP(
"Generic punctuation for Philippine scripts") },
677 constexpr TDEUnicodeData::Subcategory Buhid[] = {
678 { 0x1740,
I18N_NOOP(
"Independent vowels") },
680 { 0x1752,
I18N_NOOP(
"Dependent vowel signs") },
683 constexpr TDEUnicodeData::Subcategory Tagbanwa[] = {
684 { 0x1760,
I18N_NOOP(
"Independent vowels") },
686 { 0x1772,
I18N_NOOP(
"Dependent vowel signs") },
689 constexpr TDEUnicodeData::Subcategory Khmer[] = {
691 { 0x17A3,
I18N_NOOP(
"Deprecated independent vowels for transliteration") },
692 { 0x17A5,
I18N_NOOP(
"Independent vowels") },
693 { 0x17B4,
I18N_NOOP(
"Inherent vowels") },
694 { 0x17B6,
I18N_NOOP(
"Dependent vowel signs") },
695 { 0x17BE,
I18N_NOOP(
"Two-part dependent vowel signs") },
696 { 0x17C1,
I18N_NOOP(
"Dependent vowel signs") },
697 { 0x17C4,
I18N_NOOP(
"Two-part dependent vowel signs") },
699 { 0x17C9,
I18N_NOOP(
"Consonant shifters") },
701 { 0x17D3,
I18N_NOOP(
"Lunar date sign") },
703 { 0x17DB,
I18N_NOOP(
"Currency symbol") },
706 { 0x17F0,
I18N_NOOP(
"Numeric symbols for divination lore") },
709 constexpr TDEUnicodeData::Subcategory Mongolian[] = {
711 { 0x180B,
I18N_NOOP(
"Format controls") },
718 { 0x1880,
I18N_NOOP(
"Extensions for Sanskrit and Tibetan") },
721 constexpr TDEUnicodeData::Subcategory UnifiedCanadianAboriginalSyllabicsExtended[] = {
722 { 0x18B0,
I18N_NOOP(
"Syllables for Moose Cree") },
723 { 0x18C6,
I18N_NOOP(
"Syllables for Cree and Ojibway") },
724 { 0x18D4,
I18N_NOOP(
"Finals for Cree and Ojibway") },
725 { 0x18E0,
I18N_NOOP(
"Syllables for Beaver Dene, Hare Dene, and Chipewyan Dene") },
726 { 0x18F3,
I18N_NOOP(
"Finals for Dene and Carrier") },
729 constexpr TDEUnicodeData::Subcategory Limbu[] = {
731 { 0x1920,
I18N_NOOP(
"Dependent vowel signs") },
732 { 0x1929,
I18N_NOOP(
"Subjoined consonants") },
733 { 0x1930,
I18N_NOOP(
"Final consonants") },
738 constexpr TDEUnicodeData::Subcategory TaiLe[] = {
744 constexpr TDEUnicodeData::Subcategory NewTaiLue[] = {
747 { 0x19C1,
I18N_NOOP(
"Final consonants") },
753 constexpr TDEUnicodeData::Subcategory KhmerSymbols[] = {
754 { 0x19E0,
I18N_NOOP(
"Lunar date symbols") },
757 constexpr TDEUnicodeData::Subcategory Buginese[] = {
763 constexpr TDEUnicodeData::Subcategory TaiTham[] = {
765 { 0x1A4D,
I18N_NOOP(
"Independent vowels") },
767 { 0x1A55,
I18N_NOOP(
"Consonant signs") },
769 { 0x1A61,
I18N_NOOP(
"Dependent vowel signs") },
772 { 0x1A7F,
I18N_NOOP(
"Cryptogrammic mark") },
781 constexpr TDEUnicodeData::Subcategory CombiningDiacriticalMarksExtended[] = {
782 { 0x1AB0,
I18N_NOOP(
"Used in German dialectology") },
783 { 0x1ABB,
I18N_NOOP(
"Marks surrounding other diacritics or letters") },
784 { 0x1ABF,
I18N_NOOP(
"Used in Scots dialectology") },
785 { 0x1AC1,
I18N_NOOP(
"Marks next to or surrounding other diacritics") },
787 { 0x1AC7,
I18N_NOOP(
"Used in extended IPA") },
788 { 0x1ACB,
I18N_NOOP(
"Used in Middle English Ormulum") },
789 { 0x1ACF,
I18N_NOOP(
"Compound tone diacritics") },
790 { 0x1AD9,
I18N_NOOP(
"J.P. Harrington diacritics") },
791 { 0x1AE0,
I18N_NOOP(
"IPA positional variants") },
793 { 0x1AE8,
I18N_NOOP(
"Extended IPA positional variants") },
796 constexpr TDEUnicodeData::Subcategory Balinese[] = {
798 { 0x1B05,
I18N_NOOP(
"Independent vowels") },
801 { 0x1B35,
I18N_NOOP(
"Dependent vowel signs") },
803 { 0x1B45,
I18N_NOOP(
"Additional consonants") },
807 { 0x1B61,
I18N_NOOP(
"Musical symbols for notes") },
808 { 0x1B6B,
I18N_NOOP(
"Diacritical marks for musical symbols") },
809 { 0x1B74,
I18N_NOOP(
"Musical symbols") },
813 constexpr TDEUnicodeData::Subcategory Sundanese[] = {
817 { 0x1BA1,
I18N_NOOP(
"Consonant signs") },
820 { 0x1BAC,
I18N_NOOP(
"Consonant signs") },
821 { 0x1BAE,
I18N_NOOP(
"Additional consonants") },
824 { 0x1BBB,
I18N_NOOP(
"Historic letters") },
827 constexpr TDEUnicodeData::Subcategory Batak[] = {
830 { 0x1BE7,
I18N_NOOP(
"Dependent vowel signs") },
831 { 0x1BF0,
I18N_NOOP(
"Dependent consonant signs") },
836 constexpr TDEUnicodeData::Subcategory Lepcha[] = {
838 { 0x1C24,
I18N_NOOP(
"Subjoined consonants") },
839 { 0x1C26,
I18N_NOOP(
"Dependent vowels") },
840 { 0x1C2D,
I18N_NOOP(
"Consonant signs") },
844 { 0x1C4D,
I18N_NOOP(
"Additional letters") },
847 constexpr TDEUnicodeData::Subcategory OlChiki[] = {
850 { 0x1C78,
I18N_NOOP(
"Modifier letters") },
854 constexpr TDEUnicodeData::Subcategory CyrillicExtendedC[] = {
855 { 0x1C80,
I18N_NOOP(
"Historic letter variants") },
859 constexpr TDEUnicodeData::Subcategory GeorgianExtended[] = {
860 { 0x1C90,
I18N_NOOP(
"Capital letters (Mtavruli)") },
861 { 0x1CB1,
I18N_NOOP(
"Archaic letters") },
862 { 0x1CB7,
I18N_NOOP(
"Additional letters for Mingrelian and Svan") },
863 { 0x1CB9,
I18N_NOOP(
"Additional letters") },
864 { 0x1CBD,
I18N_NOOP(
"Additional letters for Ossetian and Abkhaz") },
867 constexpr TDEUnicodeData::Subcategory SundaneseSupplement[] = {
871 constexpr TDEUnicodeData::Subcategory VedicExtensions[] = {
872 { 0x1CD0,
I18N_NOOP(
"Tone marks for the Samaveda") },
873 { 0x1CD3,
I18N_NOOP(
"Breathing mark for the Samaveda") },
874 { 0x1CD4,
I18N_NOOP(
"Signs for Yajurvedic") },
875 { 0x1CDE,
I18N_NOOP(
"Tone marks for the Satapathabrahmana") },
876 { 0x1CE0,
I18N_NOOP(
"Tone mark for the Rigveda") },
877 { 0x1CE1,
I18N_NOOP(
"Tone mark for the Atharvaveda") },
878 { 0x1CE2,
I18N_NOOP(
"Diacritics for visarga") },
879 { 0x1CE9,
I18N_NOOP(
"Nasalization signs") },
881 { 0x1CF4,
I18N_NOOP(
"Sign for Yajurvedic") },
883 { 0x1CF8,
I18N_NOOP(
"Signs for Jaiminiya Sama Veda") },
884 { 0x1CFA,
I18N_NOOP(
"Nasalization sign") },
887 constexpr TDEUnicodeData::Subcategory PhoneticExtensions[] = {
890 { 0x1D2B,
I18N_NOOP(
"Cyrillic letter") },
891 { 0x1D2C,
I18N_NOOP(
"Latin superscript modifier letters") },
892 { 0x1D5D,
I18N_NOOP(
"Greek superscript modifier letters") },
893 { 0x1D62,
I18N_NOOP(
"Latin subscript modifier letters") },
894 { 0x1D66,
I18N_NOOP(
"Greek subscript modifier letters") },
895 { 0x1D6B,
I18N_NOOP(
"Latin letter for American lexicography") },
896 { 0x1D6C,
I18N_NOOP(
"Latin letters with middle tilde") },
897 { 0x1D77,
I18N_NOOP(
"Letters for Caucasian linguistics") },
898 { 0x1D79,
I18N_NOOP(
"Other phonetic symbols") },
901 constexpr TDEUnicodeData::Subcategory PhoneticExtensionsSupplement[] = {
902 { 0x1D80,
I18N_NOOP(
"Latin letters with palatal hook") },
903 { 0x1D8F,
I18N_NOOP(
"Latin letters with retroflex hook") },
904 { 0x1D9B,
I18N_NOOP(
"Modifier letters") },
907 constexpr TDEUnicodeData::Subcategory CombiningDiacriticalMarksSupplement[] = {
908 { 0x1DC0,
I18N_NOOP(
"Used for Ancient Greek") },
909 { 0x1DC2,
I18N_NOOP(
"Miscellaneous marks") },
910 { 0x1DC4,
I18N_NOOP(
"Contour tone marks") },
911 { 0x1DCA,
I18N_NOOP(
"Miscellaneous mark") },
912 { 0x1DCB,
I18N_NOOP(
"Contour tone marks") },
913 { 0x1DCD,
I18N_NOOP(
"Double diacritic") },
914 { 0x1DCE,
I18N_NOOP(
"Medievalist additions") },
915 { 0x1DD3,
I18N_NOOP(
"Medieval superscript letter diacritics") },
916 { 0x1DE7,
I18N_NOOP(
"Superscript letter diacritics for German dialectology") },
917 { 0x1DF5,
I18N_NOOP(
"Diacritic for American lexicography") },
919 { 0x1DF8,
I18N_NOOP(
"Miscellaneous marks") },
920 { 0x1DFC,
I18N_NOOP(
"Double diacritic mark for UPA") },
921 { 0x1DFD,
I18N_NOOP(
"Miscellaneous mark") },
922 { 0x1DFE,
I18N_NOOP(
"Additional marks for UPA") },
925 constexpr TDEUnicodeData::Subcategory LatinExtendedAdditional[] = {
926 { 0x1E00,
I18N_NOOP(
"Latin general use extensions") },
927 { 0x1E9C,
I18N_NOOP(
"Medievalist additions") },
928 { 0x1E9E,
I18N_NOOP(
"Addition for German typography") },
929 { 0x1E9F,
I18N_NOOP(
"Medievalist addition") },
930 { 0x1EA0,
I18N_NOOP(
"Latin extensions for Vietnamese") },
931 { 0x1EF2,
I18N_NOOP(
"Latin general extensions") },
932 { 0x1EFA,
I18N_NOOP(
"Medievalist additions") },
935 constexpr TDEUnicodeData::Subcategory GreekExtended[] = {
936 { 0x1F00,
I18N_NOOP(
"Precomposed polytonic Greek") },
939 constexpr TDEUnicodeData::Subcategory GeneralPunctuation[] = {
941 { 0x200B,
I18N_NOOP(
"Format characters") },
943 { 0x2016,
I18N_NOOP(
"General punctuation") },
944 { 0x2018,
I18N_NOOP(
"Quotation marks and apostrophe") },
945 { 0x2020,
I18N_NOOP(
"General punctuation") },
947 { 0x202A,
I18N_NOOP(
"Format characters") },
949 { 0x2030,
I18N_NOOP(
"General punctuation") },
950 { 0x2039,
I18N_NOOP(
"Quotation marks") },
951 { 0x203B,
I18N_NOOP(
"General punctuation") },
952 { 0x203C,
I18N_NOOP(
"Double punctuation for vertical text") },
953 { 0x203D,
I18N_NOOP(
"General punctuation") },
955 { 0x2047,
I18N_NOOP(
"Double punctuation for vertical text") },
956 { 0x204A,
I18N_NOOP(
"General punctuation") },
957 { 0x2056,
I18N_NOOP(
"Archaic punctuation") },
958 { 0x2057,
I18N_NOOP(
"General punctuation") },
959 { 0x2058,
I18N_NOOP(
"Archaic punctuation") },
961 { 0x2060,
I18N_NOOP(
"Format character") },
962 { 0x2061,
I18N_NOOP(
"Invisible operators") },
963 { 0x2066,
I18N_NOOP(
"Format characters") },
967 constexpr TDEUnicodeData::Subcategory SuperscriptsandSubscripts[] = {
970 { 0x2095,
I18N_NOOP(
"Subscripts for UPA") },
973 constexpr TDEUnicodeData::Subcategory CurrencySymbols[] = {
974 { 0x20A0,
I18N_NOOP(
"Currency symbols") },
977 constexpr TDEUnicodeData::Subcategory CombiningDiacriticalMarksforSymbols[] = {
978 { 0x20D0,
I18N_NOOP(
"Combining diacritical marks for symbols") },
979 { 0x20DD,
I18N_NOOP(
"Enclosing diacritics") },
980 { 0x20E1,
I18N_NOOP(
"Additional diacritical mark for symbols") },
981 { 0x20E2,
I18N_NOOP(
"Additional enclosing diacritics") },
982 { 0x20E5,
I18N_NOOP(
"Additional diacritical marks for symbols") },
985 constexpr TDEUnicodeData::Subcategory LetterlikeSymbols[] = {
986 { 0x2100,
I18N_NOOP(
"Letterlike symbols") },
987 { 0x2135,
I18N_NOOP(
"Hebrew letterlike math symbols") },
988 { 0x2139,
I18N_NOOP(
"Additional letterlike symbols") },
989 { 0x2140,
I18N_NOOP(
"Double-struck large operator") },
990 { 0x2141,
I18N_NOOP(
"Additional letterlike symbols") },
991 { 0x2145,
I18N_NOOP(
"Double-struck italic math symbols") },
992 { 0x214A,
I18N_NOOP(
"Additional letterlike symbols") },
993 { 0x214E,
I18N_NOOP(
"Lowercase Claudian letter") },
994 { 0x214F,
I18N_NOOP(
"Biblical editorial symbol") },
997 constexpr TDEUnicodeData::Subcategory NumberForms[] = {
1000 { 0x2180,
I18N_NOOP(
"Archaic Roman numerals") },
1001 { 0x2184,
I18N_NOOP(
"Lowercase Claudian letter") },
1002 { 0x2185,
I18N_NOOP(
"Archaic Roman numerals") },
1007 constexpr TDEUnicodeData::Subcategory Arrows[] = {
1009 { 0x219A,
I18N_NOOP(
"Arrows with modifications") },
1010 { 0x21B0,
I18N_NOOP(
"Arrows with bent tips") },
1011 { 0x21B4,
I18N_NOOP(
"Keyboard symbols and circle arrows") },
1013 { 0x21C4,
I18N_NOOP(
"Paired arrows and harpoons") },
1015 { 0x21DA,
I18N_NOOP(
"Miscellaneous arrows and keyboard symbols") },
1016 { 0x21E6,
I18N_NOOP(
"White arrows and keyboard symbols") },
1017 { 0x21F4,
I18N_NOOP(
"Miscellaneous arrows") },
1020 constexpr TDEUnicodeData::Subcategory MathematicalOperators[] = {
1021 { 0x2200,
I18N_NOOP(
"Miscellaneous mathematical symbols") },
1022 { 0x2208,
I18N_NOOP(
"Set membership") },
1023 { 0x220E,
I18N_NOOP(
"Miscellaneous mathematical symbol") },
1024 { 0x220F,
I18N_NOOP(
"N-ary operators") },
1026 { 0x221E,
I18N_NOOP(
"Miscellaneous mathematical symbol") },
1029 { 0x2227,
I18N_NOOP(
"Logical and set operators") },
1031 { 0x2234,
I18N_NOOP(
"Miscellaneous mathematical symbols") },
1037 { 0x223F,
I18N_NOOP(
"Miscellaneous mathematical symbol") },
1043 { 0x22A4,
I18N_NOOP(
"Miscellaneous mathematical symbols") },
1046 { 0x22BE,
I18N_NOOP(
"Miscellaneous mathematical symbols") },
1047 { 0x22C0,
I18N_NOOP(
"N-ary operators") },
1052 { 0x22CE,
I18N_NOOP(
"Logical operators") },
1056 { 0x22EE,
I18N_NOOP(
"Matrix ellipses") },
1060 constexpr TDEUnicodeData::Subcategory MiscellaneousTechnical[] = {
1061 { 0x2300,
I18N_NOOP(
"Miscellaneous technical") },
1062 { 0x2308,
I18N_NOOP(
"Ceilings and floors") },
1064 { 0x2310,
I18N_NOOP(
"Miscellaneous technical") },
1065 { 0x231A,
I18N_NOOP(
"User interface symbols") },
1067 { 0x2320,
I18N_NOOP(
"Integral pieces") },
1068 { 0x2322,
I18N_NOOP(
"Frown and smile") },
1069 { 0x2324,
I18N_NOOP(
"Keyboard symbols") },
1070 { 0x2329,
I18N_NOOP(
"Deprecated angle brackets") },
1071 { 0x232B,
I18N_NOOP(
"Keyboard symbol") },
1072 { 0x232C,
I18N_NOOP(
"Chemistry symbol") },
1073 { 0x232D,
I18N_NOOP(
"Drafting symbols") },
1075 { 0x237B,
I18N_NOOP(
"Graphics for control codes") },
1076 { 0x237C,
I18N_NOOP(
"Miscellaneous technical") },
1077 { 0x237D,
I18N_NOOP(
"Graphics for control codes") },
1078 { 0x2380,
I18N_NOOP(
"Keyboard symbols from ISO 9995-7") },
1079 { 0x238D,
I18N_NOOP(
"Electrotechnical symbols from IR 181") },
1081 { 0x2396,
I18N_NOOP(
"Keyboard symbols from ISO 9995-7") },
1082 { 0x239B,
I18N_NOOP(
"Bracket pieces") },
1083 { 0x23AE,
I18N_NOOP(
"Special character extensions") },
1084 { 0x23B0,
I18N_NOOP(
"Bracket pieces") },
1085 { 0x23B2,
I18N_NOOP(
"Summation sign parts") },
1086 { 0x23B4,
I18N_NOOP(
"Horizontal brackets") },
1087 { 0x23B7,
I18N_NOOP(
"Terminal graphic characters") },
1088 { 0x23BA,
I18N_NOOP(
"Scan lines for terminal graphics") },
1089 { 0x23BE,
I18N_NOOP(
"Dentistry notation symbols") },
1090 { 0x23CD,
I18N_NOOP(
"Miscellaneous technical") },
1091 { 0x23CE,
I18N_NOOP(
"Keyboard and UI symbols") },
1092 { 0x23D0,
I18N_NOOP(
"Special character extension") },
1093 { 0x23D1,
I18N_NOOP(
"Metrical symbols") },
1094 { 0x23DA,
I18N_NOOP(
"Electrotechnical symbols") },
1095 { 0x23DC,
I18N_NOOP(
"Horizontal brackets") },
1096 { 0x23E2,
I18N_NOOP(
"Miscellaneous technical") },
1097 { 0x23E3,
I18N_NOOP(
"Chemistry symbol") },
1098 { 0x23E4,
I18N_NOOP(
"Miscellaneous technical") },
1099 { 0x23E9,
I18N_NOOP(
"User interface symbols") },
1100 { 0x23FB,
I18N_NOOP(
"Power symbols from ISO 7000:2012") },
1101 { 0x23FE,
I18N_NOOP(
"Power symbol from IEEE 1621-2004") },
1102 { 0x23FF,
I18N_NOOP(
"Miscellaneous symbol") },
1105 constexpr TDEUnicodeData::Subcategory ControlPictures[] = {
1106 { 0x2400,
I18N_NOOP(
"Graphic pictures for control codes") },
1107 { 0x2422,
I18N_NOOP(
"Specific symbols for space") },
1108 { 0x2424,
I18N_NOOP(
"Graphic picture for control code") },
1109 { 0x2425,
I18N_NOOP(
"Keyboard symbol") },
1110 { 0x2426,
I18N_NOOP(
"Specific symbol for control code") },
1111 { 0x2427,
I18N_NOOP(
"Legacy computer symbols for delete") },
1114 constexpr TDEUnicodeData::Subcategory OpticalCharacterRecognition[] = {
1120 constexpr TDEUnicodeData::Subcategory EnclosedAlphanumerics[] = {
1121 { 0x2460,
I18N_NOOP(
"Circled numbers") },
1122 { 0x2474,
I18N_NOOP(
"Parenthesized numbers") },
1123 { 0x2488,
I18N_NOOP(
"Numbers period") },
1124 { 0x249C,
I18N_NOOP(
"Parenthesized Latin letters") },
1125 { 0x24B6,
I18N_NOOP(
"Circled Latin letters") },
1126 { 0x24EA,
I18N_NOOP(
"Additional circled number") },
1127 { 0x24EB,
I18N_NOOP(
"White on black circled numbers") },
1128 { 0x24F5,
I18N_NOOP(
"Double circled numbers") },
1129 { 0x24FF,
I18N_NOOP(
"Additional white on black circled number") },
1132 constexpr TDEUnicodeData::Subcategory BoxDrawing[] = {
1133 { 0x2500,
I18N_NOOP(
"Light and heavy solid lines") },
1134 { 0x2504,
I18N_NOOP(
"Light and heavy dashed lines") },
1135 { 0x250C,
I18N_NOOP(
"Light and heavy line box components") },
1136 { 0x254C,
I18N_NOOP(
"Light and heavy dashed lines") },
1138 { 0x2552,
I18N_NOOP(
"Light and double line box components") },
1139 { 0x256D,
I18N_NOOP(
"Character cell arcs") },
1140 { 0x2571,
I18N_NOOP(
"Character cell diagonals") },
1141 { 0x2574,
I18N_NOOP(
"Light and heavy half lines") },
1142 { 0x257C,
I18N_NOOP(
"Mixed light and heavy lines") },
1145 constexpr TDEUnicodeData::Subcategory BlockElements[] = {
1146 { 0x2580,
I18N_NOOP(
"Block elements") },
1147 { 0x2591,
I18N_NOOP(
"Shade characters") },
1148 { 0x2594,
I18N_NOOP(
"Block elements") },
1149 { 0x2596,
I18N_NOOP(
"Terminal graphic characters") },
1152 constexpr TDEUnicodeData::Subcategory GeometricShapes[] = {
1153 { 0x25A0,
I18N_NOOP(
"Geometric shapes") },
1154 { 0x25F0,
I18N_NOOP(
"Control code graphics") },
1155 { 0x25F8,
I18N_NOOP(
"Geometric shapes") },
1158 constexpr TDEUnicodeData::Subcategory MiscellaneousSymbols[] = {
1159 { 0x2600,
I18N_NOOP(
"Weather and astrological symbols") },
1160 { 0x260E,
I18N_NOOP(
"Miscellaneous symbols") },
1161 { 0x2614,
I18N_NOOP(
"Weather symbol") },
1162 { 0x2615,
I18N_NOOP(
"Miscellaneous symbol") },
1163 { 0x2616,
I18N_NOOP(
"Japanese chess symbols") },
1164 { 0x2618,
I18N_NOOP(
"Miscellaneous symbols") },
1165 { 0x261A,
I18N_NOOP(
"Pointing hand symbols") },
1167 { 0x2624,
I18N_NOOP(
"Medical and healing symbols") },
1168 { 0x2626,
I18N_NOOP(
"Religious and political symbols") },
1169 { 0x2630,
I18N_NOOP(
"Yijing trigram symbols") },
1170 { 0x2638,
I18N_NOOP(
"Miscellaneous symbol") },
1172 { 0x263C,
I18N_NOOP(
"Miscellaneous symbol") },
1173 { 0x263D,
I18N_NOOP(
"Astrological symbols") },
1174 { 0x2648,
I18N_NOOP(
"Zodiacal symbols") },
1176 { 0x2660,
I18N_NOOP(
"Playing card symbols") },
1177 { 0x2668,
I18N_NOOP(
"Miscellaneous symbol") },
1178 { 0x2669,
I18N_NOOP(
"Musical symbols") },
1179 { 0x2670,
I18N_NOOP(
"Syriac cross symbols") },
1180 { 0x2672,
I18N_NOOP(
"Recycling symbols") },
1181 { 0x267E,
I18N_NOOP(
"Miscellaneous symbols") },
1184 { 0x268A,
I18N_NOOP(
"Yijing monogram and digram symbols") },
1185 { 0x2690,
I18N_NOOP(
"Dictionary and map symbols") },
1186 { 0x269C,
I18N_NOOP(
"Miscellaneous symbols") },
1187 { 0x269E,
I18N_NOOP(
"Symbols for closed captioning from ARIB STD B24") },
1188 { 0x26A0,
I18N_NOOP(
"Miscellaneous symbols") },
1189 { 0x26A2,
I18N_NOOP(
"Gender symbols") },
1191 { 0x26AD,
I18N_NOOP(
"Genealogical symbols") },
1193 { 0x26B3,
I18N_NOOP(
"Astrological signs") },
1194 { 0x26B9,
I18N_NOOP(
"Astrological aspects") },
1196 { 0x26BF,
I18N_NOOP(
"Miscellaneous symbol from ARIB STD B24") },
1197 { 0x26C0,
I18N_NOOP(
"Symbols for draughts and checkers") },
1198 { 0x26C4,
I18N_NOOP(
"Weather symbols from ARIB STD B24") },
1199 { 0x26C9,
I18N_NOOP(
"Game symbols from ARIB STD B24") },
1200 { 0x26CC,
I18N_NOOP(
"Traffic signs from ARIB STD B24") },
1201 { 0x26CE,
I18N_NOOP(
"Zodiacal symbol") },
1202 { 0x26CF,
I18N_NOOP(
"Traffic signs from ARIB STD B24") },
1203 { 0x26E2,
I18N_NOOP(
"Astronomical symbol") },
1204 { 0x26E3,
I18N_NOOP(
"Map symbol from ARIB STD B24") },
1205 { 0x26E4,
I18N_NOOP(
"Pentagram symbols") },
1206 { 0x26E8,
I18N_NOOP(
"Map symbols from ARIB STD B24") },
1209 constexpr TDEUnicodeData::Subcategory Dingbats[] = {
1212 { 0x2721,
I18N_NOOP(
"Stars and asterisks") },
1214 { 0x2742,
I18N_NOOP(
"Stars, asterisks and snowflakes") },
1216 { 0x275B,
I18N_NOOP(
"Punctuation mark ornaments") },
1218 { 0x2768,
I18N_NOOP(
"Ornamental brackets") },
1219 { 0x2776,
I18N_NOOP(
"Dingbat circled digits") },
1221 { 0x2795,
I18N_NOOP(
"Heavy variants of arithmetic symbols") },
1222 { 0x2798,
I18N_NOOP(
"Dingbat arrows") },
1224 { 0x27B1,
I18N_NOOP(
"Dingbat arrows") },
1228 constexpr TDEUnicodeData::Subcategory MiscellaneousMathematicalSymbolsA[] = {
1229 { 0x27C0,
I18N_NOOP(
"Miscellaneous symbols") },
1230 { 0x27C5,
I18N_NOOP(
"Paired punctuation") },
1232 { 0x27C8,
I18N_NOOP(
"Miscellaneous symbols") },
1233 { 0x27CA,
I18N_NOOP(
"Vertical line operator") },
1234 { 0x27CB,
I18N_NOOP(
"Miscellaneous symbol") },
1235 { 0x27CC,
I18N_NOOP(
"Division operator") },
1236 { 0x27CD,
I18N_NOOP(
"Miscellaneous symbol") },
1238 { 0x27D0,
I18N_NOOP(
"Miscellaneous symbol") },
1240 { 0x27D5,
I18N_NOOP(
"Database theory operators") },
1241 { 0x27D8,
I18N_NOOP(
"Tacks and turnstiles") },
1242 { 0x27E0,
I18N_NOOP(
"Modal logic operators") },
1243 { 0x27E6,
I18N_NOOP(
"Mathematical brackets") },
1246 constexpr TDEUnicodeData::Subcategory SupplementalArrowsA[] = {
1251 constexpr TDEUnicodeData::Subcategory BraillePatterns[] = {
1252 { 0x2800,
I18N_NOOP(
"Braille patterns") },
1255 constexpr TDEUnicodeData::Subcategory SupplementalArrowsB[] = {
1256 { 0x2900,
I18N_NOOP(
"Miscellaneous arrows") },
1258 { 0x291D,
I18N_NOOP(
"Miscellaneous arrows") },
1259 { 0x2927,
I18N_NOOP(
"Crossing arrows for knot theory") },
1260 { 0x2933,
I18N_NOOP(
"Miscellaneous curved arrows") },
1261 { 0x2942,
I18N_NOOP(
"Arrows combined with operators") },
1262 { 0x294A,
I18N_NOOP(
"Double-barbed harpoons") },
1263 { 0x2952,
I18N_NOOP(
"Modified harpoons") },
1264 { 0x2962,
I18N_NOOP(
"Paired harpoons") },
1265 { 0x2970,
I18N_NOOP(
"Miscellaneous arrow") },
1266 { 0x2971,
I18N_NOOP(
"Arrows combined with relations") },
1270 constexpr TDEUnicodeData::Subcategory MiscellaneousMathematicalSymbolsB[] = {
1271 { 0x2980,
I18N_NOOP(
"Miscellaneous mathematical symbols") },
1273 { 0x298D,
I18N_NOOP(
"Brackets with ticks") },
1278 { 0x29B5,
I18N_NOOP(
"Circle symbols") },
1279 { 0x29C4,
I18N_NOOP(
"Square symbols") },
1280 { 0x29CA,
I18N_NOOP(
"Triangle symbols") },
1281 { 0x29D1,
I18N_NOOP(
"Bowtie symbols") },
1283 { 0x29DC,
I18N_NOOP(
"Miscellaneous mathematical symbols") },
1285 { 0x29E7,
I18N_NOOP(
"Miscellaneous mathematical symbols") },
1286 { 0x29EE,
I18N_NOOP(
"Error bar symbols") },
1287 { 0x29F4,
I18N_NOOP(
"Miscellaneous mathematical symbols") },
1288 { 0x29F8,
I18N_NOOP(
"Large operators") },
1289 { 0x29FA,
I18N_NOOP(
"Specialized plus sign operators") },
1291 { 0x29FE,
I18N_NOOP(
"Symbols used in game theory") },
1294 constexpr TDEUnicodeData::Subcategory SupplementalMathematicalOperators[] = {
1295 { 0x2A00,
I18N_NOOP(
"N-ary operators") },
1296 { 0x2A0A,
I18N_NOOP(
"Summations and integrals") },
1297 { 0x2A1D,
I18N_NOOP(
"Miscellaneous large operators") },
1298 { 0x2A22,
I18N_NOOP(
"Plus and minus sign operators") },
1299 { 0x2A2F,
I18N_NOOP(
"Multiplication and division sign operators") },
1300 { 0x2A39,
I18N_NOOP(
"Miscellaneous mathematical operators") },
1301 { 0x2A40,
I18N_NOOP(
"Intersections and unions") },
1302 { 0x2A51,
I18N_NOOP(
"Logical ands and ors") },
1303 { 0x2A64,
I18N_NOOP(
"Miscellaneous mathematical operators") },
1304 { 0x2A66,
I18N_NOOP(
"Relational operators") },
1305 { 0x2ABD,
I18N_NOOP(
"Subset and superset relations") },
1307 { 0x2ADE,
I18N_NOOP(
"Tacks and turnstiles") },
1308 { 0x2AEE,
I18N_NOOP(
"Vertical line operators") },
1309 { 0x2AF6,
I18N_NOOP(
"Miscellaneous mathematical operator") },
1314 constexpr TDEUnicodeData::Subcategory MiscellaneousSymbolsandArrows[] = {
1315 { 0x2B00,
I18N_NOOP(
"White and black arrows") },
1316 { 0x2B0E,
I18N_NOOP(
"Arrows with bent tips") },
1323 { 0x2B25,
I18N_NOOP(
"Diamonds and lozenges") },
1325 { 0x2B30,
I18N_NOOP(
"Mathematical arrows") },
1326 { 0x2B4D,
I18N_NOOP(
"Miscellaneous arrow") },
1327 { 0x2B4E,
I18N_NOOP(
"Intonation marks for Lithuanian dialectology") },
1330 { 0x2B55,
I18N_NOOP(
"Traffic sign from ARIB STD B24") },
1331 { 0x2B56,
I18N_NOOP(
"Dictionary and map symbols from ARIB STD B24") },
1332 { 0x2B5A,
I18N_NOOP(
"Intonation marks for Lithuanian dialectology") },
1333 { 0x2B60,
I18N_NOOP(
"Triangle-headed arrows") },
1334 { 0x2B7E,
I18N_NOOP(
"Keyboard symbols") },
1335 { 0x2B80,
I18N_NOOP(
"Paired triangle-headed arrows") },
1336 { 0x2B88,
I18N_NOOP(
"Circled arrows") },
1337 { 0x2B8C,
I18N_NOOP(
"Triangle-headed u-shaped arrows") },
1338 { 0x2B90,
I18N_NOOP(
"Keyboard symbols") },
1339 { 0x2B94,
I18N_NOOP(
"Miscellaneous arrow symbol") },
1341 { 0x2B96,
I18N_NOOP(
"Symbol used in chess notation") },
1342 { 0x2B97,
I18N_NOOP(
"Miscellaneous symbol") },
1344 { 0x2BA0,
I18N_NOOP(
"Triangle-headed arrows with bent tips") },
1345 { 0x2BA8,
I18N_NOOP(
"Black curved arrows") },
1347 { 0x2BB8,
I18N_NOOP(
"Keyboard symbols") },
1348 { 0x2BBA,
I18N_NOOP(
"Symbols used in chess notation") },
1349 { 0x2BBD,
I18N_NOOP(
"Geometric symbols") },
1350 { 0x2BC0,
I18N_NOOP(
"Centred geometric shapes") },
1351 { 0x2BC9,
I18N_NOOP(
"Astronomical symbol") },
1354 { 0x2BD0,
I18N_NOOP(
"Miscellaneous symbols") },
1355 { 0x2BD3,
I18N_NOOP(
"Astrological symbols for Pluto") },
1356 { 0x2BD7,
I18N_NOOP(
"Miscellaneous astrological symbols") },
1357 { 0x2BE0,
I18N_NOOP(
"Uranian astrological symbols") },
1358 { 0x2BE8,
I18N_NOOP(
"Half star characters") },
1359 { 0x2BEC,
I18N_NOOP(
"Two-headed arrow symbols") },
1360 { 0x2BF0,
I18N_NOOP(
"Astrological symbols for Eris and Sedna") },
1361 { 0x2BF3,
I18N_NOOP(
"Russian astrological aspects") },
1362 { 0x2BF9,
I18N_NOOP(
"Symbols used in chess notation") },
1363 { 0x2BFF,
I18N_NOOP(
"Miscellaneous symbol") },
1366 constexpr TDEUnicodeData::Subcategory Glagolitic[] = {
1367 { 0x2C00,
I18N_NOOP(
"Capital letters") },
1371 constexpr TDEUnicodeData::Subcategory LatinExtendedC[] = {
1372 { 0x2C60,
I18N_NOOP(
"Orthographic Latin additions") },
1373 { 0x2C67,
I18N_NOOP(
"Additions for Uyghur") },
1374 { 0x2C6D,
I18N_NOOP(
"Miscellaneous additions") },
1375 { 0x2C75,
I18N_NOOP(
"Claudian letters") },
1376 { 0x2C77,
I18N_NOOP(
"Additions for UPA") },
1377 { 0x2C7E,
I18N_NOOP(
"Additions for Shona") },
1380 constexpr TDEUnicodeData::Subcategory Coptic[] = {
1381 { 0x2C80,
I18N_NOOP(
"Bohairic Coptic letters") },
1382 { 0x2CB2,
I18N_NOOP(
"Old Coptic and dialect letters") },
1383 { 0x2CDC,
I18N_NOOP(
"Old Nubian letters") },
1385 { 0x2CEB,
I18N_NOOP(
"Cryptogrammic letters") },
1386 { 0x2CEF,
I18N_NOOP(
"Combining marks") },
1387 { 0x2CF2,
I18N_NOOP(
"Bohairic Coptic letters") },
1388 { 0x2CF9,
I18N_NOOP(
"Old Nubian punctuation") },
1389 { 0x2CFD,
I18N_NOOP(
"Numeric character") },
1393 constexpr TDEUnicodeData::Subcategory GeorgianSupplement[] = {
1394 { 0x2D00,
I18N_NOOP(
"Small letters (Khutsuri)") },
1395 { 0x2D27,
I18N_NOOP(
"Additional letter") },
1396 { 0x2D2D,
I18N_NOOP(
"Additional letter for Ossetian") },
1399 constexpr TDEUnicodeData::Subcategory Tifinagh[] = {
1401 { 0x2D6F,
I18N_NOOP(
"Modifier letter") },
1406 constexpr TDEUnicodeData::Subcategory EthiopicExtended[] = {
1407 { 0x2D80,
I18N_NOOP(
"Syllables for Me'en") },
1408 { 0x2D93,
I18N_NOOP(
"Syllables for Blin") },
1409 { 0x2DA0,
I18N_NOOP(
"Syllables for Bench") },
1410 { 0x2DC0,
I18N_NOOP(
"Syllables for Gurage") },
1413 constexpr TDEUnicodeData::Subcategory CyrillicExtendedA[] = {
1414 { 0x2DE0,
I18N_NOOP(
"Old Church Slavonic combining letters") },
1417 constexpr TDEUnicodeData::Subcategory SupplementalPunctuation[] = {
1418 { 0x2E00,
I18N_NOOP(
"New Testament editorial symbols") },
1419 { 0x2E0E,
I18N_NOOP(
"Ancient Greek textual symbols") },
1420 { 0x2E17,
I18N_NOOP(
"Ancient Near-Eastern linguistic symbol") },
1421 { 0x2E18,
I18N_NOOP(
"General punctuation") },
1422 { 0x2E1A,
I18N_NOOP(
"Dictionary punctuation") },
1424 { 0x2E1E,
I18N_NOOP(
"Dictionary punctuation") },
1428 { 0x2E2A,
I18N_NOOP(
"Historic punctuation") },
1429 { 0x2E32,
I18N_NOOP(
"Palaeotype transliteration symbol") },
1430 { 0x2E33,
I18N_NOOP(
"Historic punctuation") },
1431 { 0x2E35,
I18N_NOOP(
"Palaeotype transliteration symbols") },
1433 { 0x2E3C,
I18N_NOOP(
"Alternate forms of punctuation") },
1434 { 0x2E3F,
I18N_NOOP(
"Historic punctuation") },
1436 { 0x2E41,
I18N_NOOP(
"Reversed punctuation") },
1437 { 0x2E43,
I18N_NOOP(
"Miscellaneous punctuation") },
1438 { 0x2E45,
I18N_NOOP(
"Typicon punctuation") },
1439 { 0x2E4A,
I18N_NOOP(
"Historic punctuation") },
1441 { 0x2E59,
I18N_NOOP(
"Parentheses top and bottom halves") },
1442 { 0x2E5D,
I18N_NOOP(
"Oblique hyphen") },
1445 constexpr TDEUnicodeData::Subcategory CJKRadicalsSupplement[] = {
1446 { 0x2E80,
I18N_NOOP(
"CJK radicals supplement") },
1449 constexpr TDEUnicodeData::Subcategory KangxiRadicals[] = {
1450 { 0x2F00,
I18N_NOOP(
"Kangxi radicals") },
1453 constexpr TDEUnicodeData::Subcategory IdeographicDescriptionCharacters[] = {
1454 { 0x2FF0,
I18N_NOOP(
"Ideographic description characters") },
1457 constexpr TDEUnicodeData::Subcategory CJKSymbolsandPunctuation[] = {
1458 { 0x3000,
I18N_NOOP(
"CJK symbols and punctuation") },
1459 { 0x3008,
I18N_NOOP(
"CJK angle brackets") },
1460 { 0x300C,
I18N_NOOP(
"CJK corner brackets") },
1464 { 0x301C,
I18N_NOOP(
"CJK punctuation") },
1466 { 0x3021,
I18N_NOOP(
"Suzhou numerals") },
1467 { 0x302A,
I18N_NOOP(
"Combining tone marks") },
1468 { 0x3030,
I18N_NOOP(
"Other CJK punctuation") },
1469 { 0x3031,
I18N_NOOP(
"Kana repeat marks") },
1470 { 0x3036,
I18N_NOOP(
"Other CJK symbols") },
1471 { 0x3038,
I18N_NOOP(
"Additional Suzhou numerals") },
1472 { 0x303B,
I18N_NOOP(
"Other CJK punctuation") },
1473 { 0x303E,
I18N_NOOP(
"Special CJK indicators") },
1476 constexpr TDEUnicodeData::Subcategory Hiragana[] = {
1477 { 0x3041,
I18N_NOOP(
"Hiragana letters") },
1480 { 0x309D,
I18N_NOOP(
"Iteration marks") },
1481 { 0x309F,
I18N_NOOP(
"Hiragana digraph") },
1484 constexpr TDEUnicodeData::Subcategory Katakana[] = {
1485 { 0x30A0,
I18N_NOOP(
"Katakana punctuation") },
1486 { 0x30A1,
I18N_NOOP(
"Katakana letters") },
1487 { 0x30FB,
I18N_NOOP(
"Conjunction and length marks") },
1488 { 0x30FD,
I18N_NOOP(
"Iteration marks") },
1489 { 0x30FF,
I18N_NOOP(
"Katakana digraph") },
1492 constexpr TDEUnicodeData::Subcategory Bopomofo[] = {
1493 { 0x3105,
I18N_NOOP(
"Based on GB 2312") },
1494 { 0x312A,
I18N_NOOP(
"Dialect (non-Mandarin) letters") },
1495 { 0x312D,
I18N_NOOP(
"Miscellaneous additions") },
1498 constexpr TDEUnicodeData::Subcategory HangulCompatibilityJamo[] = {
1499 { 0x3131,
I18N_NOOP(
"Consonant letters") },
1501 { 0x3164,
I18N_NOOP(
"Special character") },
1502 { 0x3165,
I18N_NOOP(
"Old consonant letters") },
1503 { 0x3187,
I18N_NOOP(
"Old vowel letters") },
1506 constexpr TDEUnicodeData::Subcategory Kanbun[] = {
1511 constexpr TDEUnicodeData::Subcategory BopomofoExtended[] = {
1512 { 0x31A0,
I18N_NOOP(
"Extended Bopomofo for Minnan and Hakka") },
1513 { 0x31B8,
I18N_NOOP(
"Extended Bopomofo for Hmu and Ge") },
1514 { 0x31BB,
I18N_NOOP(
"Extended Bopomofo for Minnan and Hakka") },
1515 { 0x31BC,
I18N_NOOP(
"Extended Bopomofo for Cantonese") },
1518 constexpr TDEUnicodeData::Subcategory CJKStrokes[] = {
1520 { 0x31EF,
I18N_NOOP(
"Ideographic description character") },
1523 constexpr TDEUnicodeData::Subcategory KatakanaPhoneticExtensions[] = {
1524 { 0x31F0,
I18N_NOOP(
"Phonetic extensions for Ainu") },
1527 constexpr TDEUnicodeData::Subcategory EnclosedCJKLettersandMonths[] = {
1528 { 0x3200,
I18N_NOOP(
"Parenthesized Hangul letters") },
1529 { 0x320E,
I18N_NOOP(
"Parenthesized Hangul syllables") },
1530 { 0x321D,
I18N_NOOP(
"Parenthesized Korean words") },
1531 { 0x3220,
I18N_NOOP(
"Parenthesized ideographs") },
1532 { 0x3244,
I18N_NOOP(
"Circled ideographs from ARIB STD B24") },
1533 { 0x3248,
I18N_NOOP(
"Circled numbers on black squares from ARIB STD B24") },
1534 { 0x3250,
I18N_NOOP(
"Squared Latin abbreviation") },
1535 { 0x3251,
I18N_NOOP(
"Circled numbers") },
1536 { 0x3260,
I18N_NOOP(
"Circled Hangul letters") },
1537 { 0x326E,
I18N_NOOP(
"Circled Hangul syllables") },
1538 { 0x327C,
I18N_NOOP(
"Circled Korean words") },
1539 { 0x327E,
I18N_NOOP(
"Circled Hangul syllable") },
1541 { 0x3280,
I18N_NOOP(
"Circled ideographs") },
1542 { 0x32B1,
I18N_NOOP(
"Circled numbers") },
1543 { 0x32C0,
I18N_NOOP(
"Telegraph symbols for months") },
1544 { 0x32CC,
I18N_NOOP(
"Squared Latin abbreviations") },
1545 { 0x32D0,
I18N_NOOP(
"Circled Katakana") },
1546 { 0x32FF,
I18N_NOOP(
"Japanese era name") },
1549 constexpr TDEUnicodeData::Subcategory CJKCompatibility[] = {
1550 { 0x3300,
I18N_NOOP(
"Squared Katakana words") },
1551 { 0x3358,
I18N_NOOP(
"Telegraph symbols for hours") },
1552 { 0x3371,
I18N_NOOP(
"Squared Latin abbreviations") },
1553 { 0x337B,
I18N_NOOP(
"Japanese era names") },
1554 { 0x337F,
I18N_NOOP(
"Japanese corporation") },
1555 { 0x3380,
I18N_NOOP(
"Squared Latin abbreviations") },
1556 { 0x3395,
I18N_NOOP(
"Abbreviations involving liter symbols") },
1557 { 0x3399,
I18N_NOOP(
"Squared Latin abbreviations") },
1558 { 0x33E0,
I18N_NOOP(
"Telegraph symbols for days") },
1559 { 0x33FF,
I18N_NOOP(
"Squared Latin abbreviation") },
1562 constexpr TDEUnicodeData::Subcategory CJKUnifiedIdeographsExtensionA[] = {
1565 constexpr TDEUnicodeData::Subcategory YijingHexagramSymbols[] = {
1566 { 0x4DC0,
I18N_NOOP(
"Yijing hexagram symbols") },
1569 constexpr TDEUnicodeData::Subcategory CJKUnifiedIdeographs[] = {
1572 constexpr TDEUnicodeData::Subcategory YiSyllables[] = {
1574 { 0xA015,
I18N_NOOP(
"Syllable iteration mark") },
1578 constexpr TDEUnicodeData::Subcategory YiRadicals[] = {
1582 constexpr TDEUnicodeData::Subcategory Lisu[] = {
1589 constexpr TDEUnicodeData::Subcategory Vai[] = {
1590 { 0xA500,
I18N_NOOP(
"Syllables in -ee") },
1591 { 0xA524,
I18N_NOOP(
"Syllables in -i") },
1592 { 0xA549,
I18N_NOOP(
"Syllables in -a") },
1593 { 0xA571,
I18N_NOOP(
"Syllables in -oo") },
1594 { 0xA595,
I18N_NOOP(
"Syllables in -u") },
1595 { 0xA5BA,
I18N_NOOP(
"Syllables in -o") },
1596 { 0xA5E1,
I18N_NOOP(
"Syllables in -e") },
1597 { 0xA60B,
I18N_NOOP(
"Syllable finals") },
1599 { 0xA610,
I18N_NOOP(
"Historic syllables") },
1602 { 0xA62A,
I18N_NOOP(
"Historic syllables") },
1605 constexpr TDEUnicodeData::Subcategory CyrillicExtendedB[] = {
1606 { 0xA640,
I18N_NOOP(
"Letters for Old Cyrillic") },
1607 { 0xA66F,
I18N_NOOP(
"Abbreviation mark") },
1608 { 0xA670,
I18N_NOOP(
"Combining numeric signs") },
1609 { 0xA673,
I18N_NOOP(
"Punctuation mark") },
1610 { 0xA674,
I18N_NOOP(
"Combining marks for Old Cyrillic") },
1611 { 0xA67E,
I18N_NOOP(
"Punctuation mark") },
1612 { 0xA67F,
I18N_NOOP(
"Modifier letter") },
1613 { 0xA680,
I18N_NOOP(
"Letters for Old Abkhasian orthography") },
1614 { 0xA698,
I18N_NOOP(
"Letters for Old Cyrillic") },
1615 { 0xA69C,
I18N_NOOP(
"Intonation marks for Lithuanian dialectology") },
1616 { 0xA69E,
I18N_NOOP(
"Combining marks for Old Cyrillic") },
1619 constexpr TDEUnicodeData::Subcategory Bamum[] = {
1621 { 0xA6F0,
I18N_NOOP(
"Combining marks") },
1625 constexpr TDEUnicodeData::Subcategory ModifierToneLetters[] = {
1626 { 0xA700,
I18N_NOOP(
"Corner tone marks for Chinese") },
1627 { 0xA708,
I18N_NOOP(
"Dotted tone letters") },
1628 { 0xA712,
I18N_NOOP(
"Left-stem tone letters") },
1629 { 0xA717,
I18N_NOOP(
"Chinantec tone marks") },
1630 { 0xA71B,
I18N_NOOP(
"Africanist tone letters") },
1633 constexpr TDEUnicodeData::Subcategory LatinExtendedD[] = {
1634 { 0xA720,
I18N_NOOP(
"Additions for UPA") },
1635 { 0xA722,
I18N_NOOP(
"Egyptological additions") },
1636 { 0xA726,
I18N_NOOP(
"Mayanist additions") },
1637 { 0xA730,
I18N_NOOP(
"Medievalist additions") },
1638 { 0xA779,
I18N_NOOP(
"Insular and Celticist letters") },
1639 { 0xA788,
I18N_NOOP(
"Modifier letters") },
1640 { 0xA78B,
I18N_NOOP(
"Orthographic letters for glottals") },
1641 { 0xA78D,
I18N_NOOP(
"Additional letter") },
1642 { 0xA78E,
I18N_NOOP(
"Phonetic symbol") },
1643 { 0xA78F,
I18N_NOOP(
"Transliteration letter for sinology") },
1644 { 0xA790,
I18N_NOOP(
"Additional letters") },
1645 { 0xA794,
I18N_NOOP(
"Additions for Lithuanian dialectology") },
1646 { 0xA796,
I18N_NOOP(
"Letters for Middle Vietnamese") },
1647 { 0xA798,
I18N_NOOP(
"Archaic letters for Ewe") },
1648 { 0xA79A,
I18N_NOOP(
"Archaic letters for Volapük") },
1649 { 0xA7A0,
I18N_NOOP(
"Letters for pre-1921 Latvian orthography") },
1650 { 0xA7AA,
I18N_NOOP(
"Additional letters") },
1651 { 0xA7AE,
I18N_NOOP(
"Letter for West African languages") },
1652 { 0xA7AF,
I18N_NOOP(
"Letter for Japanese phonemic transcription") },
1653 { 0xA7B0,
I18N_NOOP(
"Letters for Americanist orthographies") },
1654 { 0xA7B2,
I18N_NOOP(
"Letter for African languages") },
1655 { 0xA7B3,
I18N_NOOP(
"Letter for German dialectology") },
1656 { 0xA7B4,
I18N_NOOP(
"Letters for African languages") },
1657 { 0xA7B8,
I18N_NOOP(
"Letters for Mazahua (México)") },
1658 { 0xA7BA,
I18N_NOOP(
"Letters for Ugaritic and Egyptological transliteration") },
1659 { 0xA7C0,
I18N_NOOP(
"Additional medieval letters") },
1660 { 0xA7C4,
I18N_NOOP(
"Letters used in early Pinyin romanization") },
1661 { 0xA7C7,
I18N_NOOP(
"Additional letters for Gaulish") },
1662 { 0xA7CB,
I18N_NOOP(
"Letter for Eastern Dan") },
1663 { 0xA7CC,
I18N_NOOP(
"Letters for Luiseño") },
1664 { 0xA7CE,
I18N_NOOP(
"Cased voiced pharyngeal letters") },
1665 { 0xA7D0,
I18N_NOOP(
"Letters used in the Middle English Ormulum") },
1666 { 0xA7D6,
I18N_NOOP(
"Letters used in medieval palaeography") },
1667 { 0xA7DA,
I18N_NOOP(
"Letters used in Wakashan and Salishan languages") },
1668 { 0xA7F1,
I18N_NOOP(
"Modifier letters for Chatino (México)") },
1669 { 0xA7F4,
I18N_NOOP(
"Modifier letter for Japanese phonemic transcription") },
1670 { 0xA7F5,
I18N_NOOP(
"Ancient Gaulish and Celtic epigraphic letters") },
1671 { 0xA7F8,
I18N_NOOP(
"Additions for Extended IPA") },
1672 { 0xA7FA,
I18N_NOOP(
"Addition for UPA") },
1673 { 0xA7FB,
I18N_NOOP(
"Ancient Roman epigraphic letters") },
1676 constexpr TDEUnicodeData::Subcategory SylotiNagri[] = {
1677 { 0xA800,
I18N_NOOP(
"Independent vowels and dvisvara") },
1679 { 0xA807,
I18N_NOOP(
"Consonants and consonant signs") },
1680 { 0xA823,
I18N_NOOP(
"Dependent vowel signs") },
1685 constexpr TDEUnicodeData::Subcategory CommonIndicNumberForms[] = {
1687 { 0xA837,
I18N_NOOP(
"Miscellaneous sign") },
1688 { 0xA838,
I18N_NOOP(
"Currency symbol") },
1689 { 0xA839,
I18N_NOOP(
"Miscellaneous sign") },
1692 constexpr TDEUnicodeData::Subcategory Phagspa[] = {
1698 { 0xA867,
I18N_NOOP(
"Subjoined consonants") },
1699 { 0xA869,
I18N_NOOP(
"Consonant additions for Sanskrit") },
1700 { 0xA86D,
I18N_NOOP(
"Alternate consonant forms for Chinese") },
1701 { 0xA871,
I18N_NOOP(
"Subjoined consonant") },
1702 { 0xA872,
I18N_NOOP(
"Consonant addition for Tibetan") },
1704 { 0xA874,
I18N_NOOP(
"Head marks for Tibetan") },
1705 { 0xA876,
I18N_NOOP(
"Punctuation for Tibetan") },
1708 constexpr TDEUnicodeData::Subcategory Saurashtra[] = {
1710 { 0xA882,
I18N_NOOP(
"Independent vowels") },
1712 { 0xA8B5,
I18N_NOOP(
"Dependent vowel signs") },
1719 constexpr TDEUnicodeData::Subcategory DevanagariExtended[] = {
1720 { 0xA8E0,
I18N_NOOP(
"Cantillation marks (svara) for the Samaveda") },
1721 { 0xA8F2,
I18N_NOOP(
"Marks of nasalization") },
1722 { 0xA8F8,
I18N_NOOP(
"Editorial marks") },
1724 { 0xA8FE,
I18N_NOOP(
"Additional vowel and vowel sign") },
1727 constexpr TDEUnicodeData::Subcategory KayahLi[] = {
1735 constexpr TDEUnicodeData::Subcategory Rejang[] = {
1738 { 0xA94F,
I18N_NOOP(
"Consonant signs") },
1743 constexpr TDEUnicodeData::Subcategory HangulJamoExtendedA[] = {
1744 { 0xA960,
I18N_NOOP(
"Old initial consonants") },
1747 constexpr TDEUnicodeData::Subcategory Javanese[] = {
1751 { 0xA9B4,
I18N_NOOP(
"Dependent vowel signs") },
1752 { 0xA9BD,
I18N_NOOP(
"Dependent consonant signs") },
1755 { 0xA9CF,
I18N_NOOP(
"Syllable reduplicator") },
1757 { 0xA9DE,
I18N_NOOP(
"Ellipsis marks") },
1760 constexpr TDEUnicodeData::Subcategory MyanmarExtendedB[] = {
1761 { 0xA9E0,
I18N_NOOP(
"Additions for Shan Pali") },
1762 { 0xA9E6,
I18N_NOOP(
"Reduplication mark") },
1763 { 0xA9E7,
I18N_NOOP(
"Tai Laing consonants") },
1764 { 0xA9F0,
I18N_NOOP(
"Tai Laing digits") },
1765 { 0xA9FA,
I18N_NOOP(
"Tai Laing consonants") },
1768 constexpr TDEUnicodeData::Subcategory Cham[] = {
1769 { 0xAA00,
I18N_NOOP(
"Independent vowels") },
1771 { 0xAA29,
I18N_NOOP(
"Dependent vowel signs") },
1772 { 0xAA33,
I18N_NOOP(
"Consonant signs") },
1773 { 0xAA40,
I18N_NOOP(
"Final consonants") },
1778 constexpr TDEUnicodeData::Subcategory MyanmarExtendedA[] = {
1779 { 0xAA60,
I18N_NOOP(
"Khamti Shan consonants") },
1780 { 0xAA74,
I18N_NOOP(
"Khamti Shan logograms") },
1781 { 0xAA77,
I18N_NOOP(
"Aiton symbols and letters") },
1782 { 0xAA7B,
I18N_NOOP(
"Pa'o Karen tone mark") },
1783 { 0xAA7C,
I18N_NOOP(
"Tai Laing tone marks") },
1784 { 0xAA7E,
I18N_NOOP(
"Shwe Palaung letters") },
1787 constexpr TDEUnicodeData::Subcategory TaiViet[] = {
1789 { 0xAAB0,
I18N_NOOP(
"Vowels and finals") },
1791 { 0xAADB,
I18N_NOOP(
"Word ligature symbols") },
1792 { 0xAADD,
I18N_NOOP(
"Repetition mark") },
1796 constexpr TDEUnicodeData::Subcategory MeeteiMayekExtensions[] = {
1797 { 0xAAE0,
I18N_NOOP(
"Independent vowel signs") },
1799 { 0xAAEB,
I18N_NOOP(
"Dependent vowel signs") },
1802 { 0xAAF3,
I18N_NOOP(
"Repetition marks") },
1807 constexpr TDEUnicodeData::Subcategory EthiopicExtendedA[] = {
1808 { 0xAB01,
I18N_NOOP(
"Gamo-Gofa-Dawro and Basketo") },
1809 { 0xAB11,
I18N_NOOP(
"Gamo-Gofa-Dawro") },
1813 constexpr TDEUnicodeData::Subcategory LatinExtendedE[] = {
1814 { 0xAB30,
I18N_NOOP(
"Letters for German dialectology") },
1815 { 0xAB5B,
I18N_NOOP(
"Modifier letters for German dialectology") },
1816 { 0xAB60,
I18N_NOOP(
"Historic letters for Sakha (Yakut)") },
1817 { 0xAB64,
I18N_NOOP(
"Letters for Americanist orthographies") },
1818 { 0xAB66,
I18N_NOOP(
"Letters for sinological and Tibetanist phonetic transcription") },
1819 { 0xAB68,
I18N_NOOP(
"Letters for Scots dialectology") },
1822 constexpr TDEUnicodeData::Subcategory CherokeeSupplement[] = {
1823 { 0xAB70,
I18N_NOOP(
"Lowercase syllables") },
1826 constexpr TDEUnicodeData::Subcategory MeeteiMayek[] = {
1828 { 0xABDB,
I18N_NOOP(
"Final consonants") },
1829 { 0xABE3,
I18N_NOOP(
"Dependent vowel signs") },
1834 constexpr TDEUnicodeData::Subcategory HangulSyllables[] = {
1837 constexpr TDEUnicodeData::Subcategory HangulJamoExtendedB[] = {
1838 { 0xD7B0,
I18N_NOOP(
"Old medial vowels") },
1839 { 0xD7CB,
I18N_NOOP(
"Old final consonants") },
1842 constexpr TDEUnicodeData::Subcategory HighSurrogates[] = {
1845 constexpr TDEUnicodeData::Subcategory HighPrivateUseSurrogates[] = {
1848 constexpr TDEUnicodeData::Subcategory LowSurrogates[] = {
1851 constexpr TDEUnicodeData::Subcategory PrivateUseArea[] = {
1854 constexpr TDEUnicodeData::Subcategory CJKCompatibilityIdeographs[] = {
1855 { 0xF900,
I18N_NOOP(
"Pronunciation variants from KS X 1001:1998") },
1856 { 0xFA0C,
I18N_NOOP(
"Duplicate characters from Big 5") },
1857 { 0xFA0E,
I18N_NOOP(
"The IBM 32 compatibility ideographs") },
1858 { 0xFA2E,
I18N_NOOP(
"Korean compatibility ideographs") },
1859 { 0xFA30,
I18N_NOOP(
"JIS X 0213 compatibility ideographs") },
1860 { 0xFA6B,
I18N_NOOP(
"ARIB compatibility ideographs") },
1861 { 0xFA70,
I18N_NOOP(
"DPRK compatibility ideographs") },
1864 constexpr TDEUnicodeData::Subcategory AlphabeticPresentationForms[] = {
1865 { 0xFB00,
I18N_NOOP(
"Latin ligatures") },
1866 { 0xFB13,
I18N_NOOP(
"Armenian ligatures") },
1867 { 0xFB1D,
I18N_NOOP(
"Hebrew presentation forms") },
1870 constexpr TDEUnicodeData::Subcategory ArabicPresentationFormsA[] = {
1871 { 0xFB50,
I18N_NOOP(
"Glyphs for contextual forms of letters for Persian, Urdu, Sindhi, etc.") },
1872 { 0xFBB2,
I18N_NOOP(
"Arabic pedagogical symbols") },
1873 { 0xFBC3,
I18N_NOOP(
"Honorific word ligatures") },
1874 { 0xFBD3,
I18N_NOOP(
"Glyphs for contextual forms of letters for Central Asian languages") },
1875 { 0xFBEA,
I18N_NOOP(
"Ligatures (two elements)") },
1877 { 0xFD40,
I18N_NOOP(
"Honorific word ligatures") },
1878 { 0xFD50,
I18N_NOOP(
"Ligatures (three elements)") },
1879 { 0xFD90,
I18N_NOOP(
"Honorific word ligatures") },
1880 { 0xFD92,
I18N_NOOP(
"Ligatures (three elements)") },
1881 { 0xFDC8,
I18N_NOOP(
"Honorific word ligatures") },
1883 { 0xFDF0,
I18N_NOOP(
"Word ligatures") },
1884 { 0xFDFC,
I18N_NOOP(
"Currency symbol") },
1885 { 0xFDFD,
I18N_NOOP(
"Honorific word ligatures") },
1888 constexpr TDEUnicodeData::Subcategory VariationSelectors[] = {
1889 { 0xFE00,
I18N_NOOP(
"Variation selectors") },
1890 { 0xFE0E,
I18N_NOOP(
"Emoji-specific variation selectors") },
1893 constexpr TDEUnicodeData::Subcategory VerticalForms[] = {
1894 { 0xFE10,
I18N_NOOP(
"Glyphs for vertical variants") },
1897 constexpr TDEUnicodeData::Subcategory CombiningHalfMarks[] = {
1898 { 0xFE20,
I18N_NOOP(
"Combining half marks") },
1899 { 0xFE24,
I18N_NOOP(
"Continuous macrons for Coptic") },
1900 { 0xFE27,
I18N_NOOP(
"Combining half marks below") },
1901 { 0xFE2E,
I18N_NOOP(
"Combining half marks") },
1904 constexpr TDEUnicodeData::Subcategory CJKCompatibilityForms[] = {
1905 { 0xFE30,
I18N_NOOP(
"Glyphs for vertical variants") },
1906 { 0xFE45,
I18N_NOOP(
"Sidelining emphasis marks") },
1907 { 0xFE47,
I18N_NOOP(
"Glyphs for vertical variants") },
1908 { 0xFE49,
I18N_NOOP(
"Overscores and underscores") },
1911 constexpr TDEUnicodeData::Subcategory SmallFormVariants[] = {
1912 { 0xFE50,
I18N_NOOP(
"Small form variants") },
1915 constexpr TDEUnicodeData::Subcategory ArabicPresentationFormsB[] = {
1916 { 0xFE70,
I18N_NOOP(
"Glyphs for spacing forms of Arabic points") },
1918 { 0xFE74,
I18N_NOOP(
"Glyphs for spacing forms of Arabic points") },
1919 { 0xFE80,
I18N_NOOP(
"Basic glyphs for Arabic language contextual forms") },
1923 constexpr TDEUnicodeData::Subcategory HalfwidthandFullwidthForms[] = {
1924 { 0xFF01,
I18N_NOOP(
"Fullwidth ASCII variants") },
1925 { 0xFF5F,
I18N_NOOP(
"Fullwidth brackets") },
1926 { 0xFF61,
I18N_NOOP(
"Halfwidth CJK punctuation") },
1927 { 0xFF65,
I18N_NOOP(
"Halfwidth Katakana variants") },
1928 { 0xFFA0,
I18N_NOOP(
"Halfwidth Hangul variants") },
1929 { 0xFFE0,
I18N_NOOP(
"Fullwidth symbol variants") },
1930 { 0xFFE8,
I18N_NOOP(
"Halfwidth symbol variants") },
1933 constexpr TDEUnicodeData::Subcategory Specials[] = {
1934 { 0xFFF9,
I18N_NOOP(
"Interlinear annotation") },
1935 { 0xFFFC,
I18N_NOOP(
"Replacement characters") },
1939 constexpr TDEUnicodeData::Subcategory LinearBSyllabary[] = {
1940 { 0x10000,
I18N_NOOP(
"Basic syllables") },
1941 { 0x10040,
I18N_NOOP(
"Supplementary signs") },
1945 constexpr TDEUnicodeData::Subcategory LinearBIdeograms[] = {
1946 { 0x10080,
I18N_NOOP(
"People and animals") },
1947 { 0x1008E,
I18N_NOOP(
"Cereals and plants") },
1950 { 0x1009D,
I18N_NOOP(
"Other materials") },
1954 constexpr TDEUnicodeData::Subcategory AegeanNumbers[] = {
1960 constexpr TDEUnicodeData::Subcategory AncientGreekNumbers[] = {
1961 { 0x10140,
I18N_NOOP(
"Ancient Greek acrophonic numerals") },
1962 { 0x10175,
I18N_NOOP(
"Ancient Greek papyrological numbers") },
1963 { 0x1018C,
I18N_NOOP(
"Ancient Greek symbols") },
1966 constexpr TDEUnicodeData::Subcategory AncientSymbols[] = {
1967 { 0x10190,
I18N_NOOP(
"Roman weights and measures") },
1968 { 0x10196,
I18N_NOOP(
"Roman coin symbols") },
1969 { 0x1019B,
I18N_NOOP(
"Other Roman epigraphic symbols") },
1973 constexpr TDEUnicodeData::Subcategory PhaistosDisc[] = {
1975 { 0x101FD,
I18N_NOOP(
"Combining stroke") },
1978 constexpr TDEUnicodeData::Subcategory Lycian[] = {
1982 constexpr TDEUnicodeData::Subcategory Carian[] = {
1986 constexpr TDEUnicodeData::Subcategory CopticEpactNumbers[] = {
1992 constexpr TDEUnicodeData::Subcategory OldItalic[] = {
1994 { 0x1031B,
I18N_NOOP(
"Umbrian letters") },
1995 { 0x1031D,
I18N_NOOP(
"Oscan letters") },
1996 { 0x1031F,
I18N_NOOP(
"South Picene letter") },
1998 { 0x1032D,
I18N_NOOP(
"North Italic letters") },
2001 constexpr TDEUnicodeData::Subcategory Gothic[] = {
2005 constexpr TDEUnicodeData::Subcategory OldPermic[] = {
2007 { 0x10376,
I18N_NOOP(
"Combining letters") },
2010 constexpr TDEUnicodeData::Subcategory Ugaritic[] = {
2015 constexpr TDEUnicodeData::Subcategory OldPersian[] = {
2016 { 0x103A0,
I18N_NOOP(
"Independent vowels") },
2018 { 0x103C8,
I18N_NOOP(
"Various signs") },
2023 constexpr TDEUnicodeData::Subcategory Deseret[] = {
2024 { 0x10400,
I18N_NOOP(
"Uppercase letters") },
2025 { 0x10428,
I18N_NOOP(
"Lowercase letters") },
2028 constexpr TDEUnicodeData::Subcategory Shavian[] = {
2029 { 0x10450,
I18N_NOOP(
"Tall and deep letters (consonants)") },
2030 { 0x10464,
I18N_NOOP(
"Short letters") },
2034 constexpr TDEUnicodeData::Subcategory Osmanya[] = {
2039 constexpr TDEUnicodeData::Subcategory Osage[] = {
2040 { 0x104B0,
I18N_NOOP(
"Uppercase letters") },
2041 { 0x104D8,
I18N_NOOP(
"Lowercase letters") },
2044 constexpr TDEUnicodeData::Subcategory Elbasan[] = {
2048 constexpr TDEUnicodeData::Subcategory CaucasianAlbanian[] = {
2053 constexpr TDEUnicodeData::Subcategory Vithkuqi[] = {
2054 { 0x10570,
I18N_NOOP(
"Capital letters") },
2055 { 0x10597,
I18N_NOOP(
"Small letters") },
2058 constexpr TDEUnicodeData::Subcategory Todhri[] = {
2061 constexpr TDEUnicodeData::Subcategory LinearA[] = {
2064 { 0x106B3,
I18N_NOOP(
"Complex signs") },
2065 { 0x10727,
I18N_NOOP(
"Complex signs with vase shapes") },
2066 { 0x10740,
I18N_NOOP(
"Fractions and compound fractions") },
2067 { 0x10760,
I18N_NOOP(
"Additional signs") },
2070 constexpr TDEUnicodeData::Subcategory LatinExtendedF[] = {
2071 { 0x10780,
I18N_NOOP(
"Modifier letter for VoQS") },
2072 { 0x10781,
I18N_NOOP(
"Modifier letters for IPA") },
2075 constexpr TDEUnicodeData::Subcategory CypriotSyllabary[] = {
2079 constexpr TDEUnicodeData::Subcategory ImperialAramaic[] = {
2085 constexpr TDEUnicodeData::Subcategory Palmyrene[] = {
2091 constexpr TDEUnicodeData::Subcategory Nabataean[] = {
2096 constexpr TDEUnicodeData::Subcategory Hatran[] = {
2101 constexpr TDEUnicodeData::Subcategory Phoenician[] = {
2107 constexpr TDEUnicodeData::Subcategory Lydian[] = {
2112 constexpr TDEUnicodeData::Subcategory Sidetic[] = {
2113 { 0x10940,
I18N_NOOP(
"Vowel and semivowel letters") },
2114 { 0x10947,
I18N_NOOP(
"Consonant letters") },
2117 constexpr TDEUnicodeData::Subcategory MeroiticHieroglyphs[] = {
2118 { 0x10980,
I18N_NOOP(
"Vowel letters") },
2119 { 0x10984,
I18N_NOOP(
"Consonant letters") },
2123 constexpr TDEUnicodeData::Subcategory MeroiticCursive[] = {
2124 { 0x109A0,
I18N_NOOP(
"Vowel letters") },
2125 { 0x109A4,
I18N_NOOP(
"Consonant letters") },
2132 { 0x109E4,
I18N_NOOP(
"Ten thousands") },
2133 { 0x109ED,
I18N_NOOP(
"Hundred thousands") },
2137 constexpr TDEUnicodeData::Subcategory Kharoshthi[] = {
2140 { 0x10A0D,
I18N_NOOP(
"Various signs") },
2142 { 0x10A38,
I18N_NOOP(
"Various signs") },
2145 { 0x10A44,
I18N_NOOP(
"Numbers and fractions") },
2149 constexpr TDEUnicodeData::Subcategory OldSouthArabian[] = {
2154 constexpr TDEUnicodeData::Subcategory OldNorthArabian[] = {
2159 constexpr TDEUnicodeData::Subcategory Manichaean[] = {
2163 { 0x10AE5,
I18N_NOOP(
"Combining marks") },
2168 constexpr TDEUnicodeData::Subcategory Avestan[] = {
2174 constexpr TDEUnicodeData::Subcategory InscriptionalParthian[] = {
2179 constexpr TDEUnicodeData::Subcategory InscriptionalPahlavi[] = {
2184 constexpr TDEUnicodeData::Subcategory PsalterPahlavi[] = {
2190 constexpr TDEUnicodeData::Subcategory OldTurkic[] = {
2195 constexpr TDEUnicodeData::Subcategory OldHungarian[] = {
2196 { 0x10C80,
I18N_NOOP(
"Uppercase letters") },
2197 { 0x10CC0,
I18N_NOOP(
"Lowercase letters") },
2201 constexpr TDEUnicodeData::Subcategory HanifiRohingya[] = {
2203 { 0x10D1C,
I18N_NOOP(
"Additional letter") },
2205 { 0x10D22,
I18N_NOOP(
"Vowel silencer") },
2206 { 0x10D23,
I18N_NOOP(
"Nasalization mark") },
2208 { 0x10D27,
I18N_NOOP(
"Gemination sign") },
2212 constexpr TDEUnicodeData::Subcategory Garay[] = {
2215 { 0x10D4E,
I18N_NOOP(
"Vowel modifiers") },
2216 { 0x10D50,
I18N_NOOP(
"Uppercase consonant letters") },
2219 { 0x10D6E,
I18N_NOOP(
"Punctuation and reduplication mark") },
2220 { 0x10D70,
I18N_NOOP(
"Lowercase consonant letters") },
2221 { 0x10D8E,
I18N_NOOP(
"Mathematical symbols") },
2224 constexpr TDEUnicodeData::Subcategory RumiNumeralSymbols[] = {
2230 constexpr TDEUnicodeData::Subcategory Yezidi[] = {
2232 { 0x10EAB,
I18N_NOOP(
"Combining marks") },
2234 { 0x10EB0,
I18N_NOOP(
"Historical letters with diacritics") },
2237 constexpr TDEUnicodeData::Subcategory ArabicExtendedC[] = {
2238 { 0x10EC2,
I18N_NOOP(
"Letters for Pegon") },
2239 { 0x10EC5,
I18N_NOOP(
"Quranic letter used in Indonesia") },
2240 { 0x10EC6,
I18N_NOOP(
"Quranic letter used in Warsh orthography") },
2241 { 0x10EC7,
I18N_NOOP(
"Letter used for Swahili") },
2242 { 0x10ED0,
I18N_NOOP(
"Biblical punctuation mark") },
2243 { 0x10ED1,
I18N_NOOP(
"Honorific word ligatures") },
2244 { 0x10EFA,
I18N_NOOP(
"Tanween mark used in Old Sindhi") },
2245 { 0x10EFB,
I18N_NOOP(
"Quranic mark used in Indonesia") },
2246 { 0x10EFC,
I18N_NOOP(
"Quranic mark used in Libya") },
2247 { 0x10EFD,
I18N_NOOP(
"Quranic marks used in Turkey") },
2250 constexpr TDEUnicodeData::Subcategory OldSogdian[] = {
2256 constexpr TDEUnicodeData::Subcategory Sogdian[] = {
2259 { 0x10F46,
I18N_NOOP(
"Combining marks") },
2264 constexpr TDEUnicodeData::Subcategory OldUyghur[] = {
2266 { 0x10F82,
I18N_NOOP(
"Combining signs") },
2270 constexpr TDEUnicodeData::Subcategory Chorasmian[] = {
2275 constexpr TDEUnicodeData::Subcategory Elymaic[] = {
2280 constexpr TDEUnicodeData::Subcategory Brahmi[] = {
2281 { 0x11000,
I18N_NOOP(
"Various signs") },
2282 { 0x11005,
I18N_NOOP(
"Independent vowels") },
2284 { 0x11038,
I18N_NOOP(
"Dependent vowel signs") },
2290 { 0x11071,
I18N_NOOP(
"Independent vowels") },
2291 { 0x11073,
I18N_NOOP(
"Dependent vowel signs") },
2293 { 0x1107F,
I18N_NOOP(
"Number joiner") },
2296 constexpr TDEUnicodeData::Subcategory Kaithi[] = {
2297 { 0x11080,
I18N_NOOP(
"Various signs") },
2298 { 0x11083,
I18N_NOOP(
"Independent vowels") },
2300 { 0x110B0,
I18N_NOOP(
"Dependent vowel signs") },
2302 { 0x110BA,
I18N_NOOP(
"Various signs") },
2308 constexpr TDEUnicodeData::Subcategory SoraSompeng[] = {
2315 constexpr TDEUnicodeData::Subcategory Chakma[] = {
2316 { 0x11100,
I18N_NOOP(
"Various signs") },
2317 { 0x11103,
I18N_NOOP(
"Independent vowels") },
2319 { 0x11127,
I18N_NOOP(
"Dependent vowel signs") },
2320 { 0x11133,
I18N_NOOP(
"Various signs") },
2324 { 0x11145,
I18N_NOOP(
"Dependent vowel signs") },
2328 constexpr TDEUnicodeData::Subcategory Mahajani[] = {
2333 { 0x11176,
I18N_NOOP(
"Word ligature") },
2336 constexpr TDEUnicodeData::Subcategory Sharada[] = {
2337 { 0x11180,
I18N_NOOP(
"Various signs") },
2338 { 0x11183,
I18N_NOOP(
"Independent vowels") },
2340 { 0x111B3,
I18N_NOOP(
"Dependent vowel signs") },
2342 { 0x111C1,
I18N_NOOP(
"Various signs") },
2345 { 0x111CA,
I18N_NOOP(
"Signs for Kashmiri") },
2347 { 0x111CE,
I18N_NOOP(
"Historic vowel sign") },
2351 { 0x111DE,
I18N_NOOP(
"Section marks") },
2354 constexpr TDEUnicodeData::Subcategory SinhalaArchaicNumbers[] = {
2355 { 0x111E1,
I18N_NOOP(
"Historical digits") },
2356 { 0x111EA,
I18N_NOOP(
"Historical numbers") },
2359 constexpr TDEUnicodeData::Subcategory Khojki[] = {
2360 { 0x11200,
I18N_NOOP(
"Independent vowels") },
2362 { 0x1122C,
I18N_NOOP(
"Dependent vowel signs") },
2363 { 0x11234,
I18N_NOOP(
"Various signs") },
2367 { 0x11240,
I18N_NOOP(
"Independent vowel") },
2368 { 0x11241,
I18N_NOOP(
"Dependent vowel sign") },
2371 constexpr TDEUnicodeData::Subcategory Multani[] = {
2377 constexpr TDEUnicodeData::Subcategory Khudawadi[] = {
2378 { 0x112B0,
I18N_NOOP(
"Independent vowels") },
2381 { 0x112E0,
I18N_NOOP(
"Dependent vowel signs") },
2382 { 0x112E9,
I18N_NOOP(
"Various signs") },
2386 constexpr TDEUnicodeData::Subcategory Grantha[] = {
2387 { 0x11300,
I18N_NOOP(
"Various signs") },
2388 { 0x11305,
I18N_NOOP(
"Independent vowels") },
2390 { 0x1133B,
I18N_NOOP(
"Various signs") },
2391 { 0x1133E,
I18N_NOOP(
"Dependent vowel signs") },
2392 { 0x1134B,
I18N_NOOP(
"Two-part dependent vowel signs") },
2395 { 0x11357,
I18N_NOOP(
"Dependent vowel sign") },
2398 { 0x11360,
I18N_NOOP(
"Independent vowels") },
2399 { 0x11362,
I18N_NOOP(
"Dependent vowel signs") },
2400 { 0x11366,
I18N_NOOP(
"Cantillation marks (svara) for the Samaveda") },
2403 constexpr TDEUnicodeData::Subcategory TuluTigalari[] = {
2404 { 0x11380,
I18N_NOOP(
"Independent vowels") },
2408 { 0x113C9,
I18N_NOOP(
"Various signs") },
2409 { 0x113D3,
I18N_NOOP(
"Vowel length mark") },
2411 { 0x113E1,
I18N_NOOP(
"Vedic tone marks") },
2414 constexpr TDEUnicodeData::Subcategory Newa[] = {
2415 { 0x11400,
I18N_NOOP(
"Independent vowels") },
2417 { 0x11435,
I18N_NOOP(
"Dependent vowel signs") },
2418 { 0x11442,
I18N_NOOP(
"Various signs") },
2419 { 0x11449,
I18N_NOOP(
"Invocation signs") },
2423 { 0x1145B,
I18N_NOOP(
"Various signs") },
2426 constexpr TDEUnicodeData::Subcategory Tirhuta[] = {
2428 { 0x11481,
I18N_NOOP(
"Independent vowels") },
2430 { 0x114B0,
I18N_NOOP(
"Dependent vowel signs") },
2431 { 0x114BF,
I18N_NOOP(
"Various signs") },
2435 constexpr TDEUnicodeData::Subcategory Siddham[] = {
2436 { 0x11580,
I18N_NOOP(
"Independent vowels") },
2438 { 0x115AF,
I18N_NOOP(
"Dependent vowel signs") },
2439 { 0x115BC,
I18N_NOOP(
"Various signs") },
2442 { 0x115C6,
I18N_NOOP(
"Repetition marks") },
2443 { 0x115C9,
I18N_NOOP(
"Terminal mark") },
2444 { 0x115CA,
I18N_NOOP(
"Section marks") },
2445 { 0x115D8,
I18N_NOOP(
"Alternate letters") },
2446 { 0x115DC,
I18N_NOOP(
"Alternate vowel signs") },
2449 constexpr TDEUnicodeData::Subcategory Modi[] = {
2450 { 0x11600,
I18N_NOOP(
"Independent vowels") },
2452 { 0x11630,
I18N_NOOP(
"Dependent vowel signs") },
2453 { 0x1163D,
I18N_NOOP(
"Various signs") },
2459 constexpr TDEUnicodeData::Subcategory MongolianSupplement[] = {
2463 constexpr TDEUnicodeData::Subcategory Takri[] = {
2464 { 0x11680,
I18N_NOOP(
"Independent vowels") },
2466 { 0x116AB,
I18N_NOOP(
"Various signs") },
2467 { 0x116AD,
I18N_NOOP(
"Dependent vowel signs") },
2475 constexpr TDEUnicodeData::Subcategory MyanmarExtendedC[] = {
2477 { 0x116DA,
I18N_NOOP(
"Eastern Pwo Karen digits") },
2480 constexpr TDEUnicodeData::Subcategory Ahom[] = {
2487 { 0x11740,
I18N_NOOP(
"Additional consonants") },
2490 constexpr TDEUnicodeData::Subcategory Dogra[] = {
2491 { 0x11800,
I18N_NOOP(
"Independent vowels") },
2493 { 0x1182C,
I18N_NOOP(
"Dependent vowel signs") },
2494 { 0x11837,
I18N_NOOP(
"Various signs") },
2498 constexpr TDEUnicodeData::Subcategory WarangCiti[] = {
2499 { 0x118A0,
I18N_NOOP(
"Uppercase vowels") },
2500 { 0x118AA,
I18N_NOOP(
"Uppercase consonants") },
2501 { 0x118C0,
I18N_NOOP(
"Lowercase vowels") },
2502 { 0x118CA,
I18N_NOOP(
"Lowercase consonants") },
2508 constexpr TDEUnicodeData::Subcategory DivesAkuru[] = {
2509 { 0x11900,
I18N_NOOP(
"Independent vowels") },
2511 { 0x11930,
I18N_NOOP(
"Dependent vowel signs") },
2512 { 0x1193B,
I18N_NOOP(
"Nasalization signs") },
2514 { 0x11940,
I18N_NOOP(
"Conjunct-specific letters") },
2520 constexpr TDEUnicodeData::Subcategory Nandinagari[] = {
2521 { 0x119A0,
I18N_NOOP(
"Independent vowels") },
2523 { 0x119D1,
I18N_NOOP(
"Dependent vowel signs") },
2524 { 0x119DE,
I18N_NOOP(
"Various signs") },
2526 { 0x119E4,
I18N_NOOP(
"Dependent vowel sign") },
2529 constexpr TDEUnicodeData::Subcategory ZanabazarSquare[] = {
2532 { 0x11A0A,
I18N_NOOP(
"Vowel length mark") },
2534 { 0x11A33,
I18N_NOOP(
"Final consonant mark") },
2536 { 0x11A35,
I18N_NOOP(
"Candrabindu and candra ornaments") },
2537 { 0x11A38,
I18N_NOOP(
"Signs for Sanskrit") },
2538 { 0x11A3A,
I18N_NOOP(
"Cluster-initial consonant") },
2539 { 0x11A3B,
I18N_NOOP(
"Cluster-final consonants") },
2546 constexpr TDEUnicodeData::Subcategory Soyombo[] = {
2549 { 0x11A5B,
I18N_NOOP(
"Vowel length mark") },
2551 { 0x11A84,
I18N_NOOP(
"Alternate visarga signs") },
2552 { 0x11A86,
I18N_NOOP(
"Cluster-initial letters") },
2553 { 0x11A8A,
I18N_NOOP(
"Final consonant signs") },
2554 { 0x11A96,
I18N_NOOP(
"Various signs") },
2555 { 0x11A98,
I18N_NOOP(
"Gemination mark") },
2558 { 0x11A9D,
I18N_NOOP(
"Elongation mark") },
2560 { 0x11AA1,
I18N_NOOP(
"Terminal marks") },
2563 constexpr TDEUnicodeData::Subcategory UnifiedCanadianAboriginalSyllabicsExtendedA[] = {
2564 { 0x11AB0,
I18N_NOOP(
"Syllables for Nattilik") },
2565 { 0x11ABC,
I18N_NOOP(
"Historic syllables for Cree and Ojibway") },
2568 constexpr TDEUnicodeData::Subcategory PauCinHau[] = {
2571 { 0x11ADC,
I18N_NOOP(
"Final consonants") },
2575 constexpr TDEUnicodeData::Subcategory DevanagariExtendedA[] = {
2577 { 0x11B02,
I18N_NOOP(
"Auspicious signs") },
2580 constexpr TDEUnicodeData::Subcategory SharadaSupplement[] = {
2581 { 0x11B60,
I18N_NOOP(
"Kashmiri vowel signs") },
2584 constexpr TDEUnicodeData::Subcategory Sunuwar[] = {
2590 constexpr TDEUnicodeData::Subcategory Bhaiksuki[] = {
2591 { 0x11C00,
I18N_NOOP(
"Independent vowels") },
2593 { 0x11C2F,
I18N_NOOP(
"Dependent vowel signs") },
2594 { 0x11C3C,
I18N_NOOP(
"Various signs") },
2601 constexpr TDEUnicodeData::Subcategory Marchen[] = {
2604 { 0x11C92,
I18N_NOOP(
"Subjoined letters") },
2605 { 0x11CB0,
I18N_NOOP(
"Dependent vowel signs") },
2606 { 0x11CB5,
I18N_NOOP(
"Various signs") },
2609 constexpr TDEUnicodeData::Subcategory MasaramGondi[] = {
2612 { 0x11D2E,
I18N_NOOP(
"Conjunct letters") },
2613 { 0x11D31,
I18N_NOOP(
"Dependent vowel signs") },
2614 { 0x11D40,
I18N_NOOP(
"Various signs") },
2616 { 0x11D46,
I18N_NOOP(
"Cluster-specific consonant forms") },
2620 constexpr TDEUnicodeData::Subcategory GunjalaGondi[] = {
2621 { 0x11D60,
I18N_NOOP(
"Independent vowels") },
2623 { 0x11D8A,
I18N_NOOP(
"Dependent vowel signs") },
2624 { 0x11D95,
I18N_NOOP(
"Various signs") },
2630 constexpr TDEUnicodeData::Subcategory TolongSiki[] = {
2631 { 0x11DB0,
I18N_NOOP(
"Vowel letters") },
2632 { 0x11DB6,
I18N_NOOP(
"Consonant letters") },
2634 { 0x11DDB,
I18N_NOOP(
"Auspicious sign") },
2638 constexpr TDEUnicodeData::Subcategory Makasar[] = {
2640 { 0x11EF2,
I18N_NOOP(
"Consonant reduplicator") },
2645 constexpr TDEUnicodeData::Subcategory Kawi[] = {
2647 { 0x11F04,
I18N_NOOP(
"Independent vowels") },
2649 { 0x11F34,
I18N_NOOP(
"Dependent vowel signs") },
2656 constexpr TDEUnicodeData::Subcategory LisuSupplement[] = {
2660 constexpr TDEUnicodeData::Subcategory TamilSupplement[] = {
2662 { 0x11FD5,
I18N_NOOP(
"Measures of grain") },
2663 { 0x11FDD,
I18N_NOOP(
"Old currency symbols") },
2664 { 0x11FE1,
I18N_NOOP(
"Symbols of weight, length, and area") },
2665 { 0x11FE4,
I18N_NOOP(
"Agricultural symbols") },
2666 { 0x11FE8,
I18N_NOOP(
"Clerical symbols") },
2667 { 0x11FEE,
I18N_NOOP(
"Other symbols and abbreviations") },
2671 constexpr TDEUnicodeData::Subcategory Cuneiform[] = {
2677 constexpr TDEUnicodeData::Subcategory CuneiformNumbersandPunctuation[] = {
2678 { 0x12400,
I18N_NOOP(
"Common numeric signs") },
2679 { 0x12434,
I18N_NOOP(
"Area measures") },
2680 { 0x1243A,
I18N_NOOP(
"Variant stacking patterns") },
2681 { 0x1244A,
I18N_NOOP(
"Slanted numerals") },
2682 { 0x1244F,
I18N_NOOP(
"Capacity measures") },
2683 { 0x12458,
I18N_NOOP(
"Area measures") },
2685 { 0x12463,
I18N_NOOP(
"Capacity measures") },
2686 { 0x12465,
I18N_NOOP(
"Elamite fractions") },
2687 { 0x12467,
I18N_NOOP(
"Elamite numeric signs") },
2688 { 0x12469,
I18N_NOOP(
"Variant stacking patterns") },
2692 constexpr TDEUnicodeData::Subcategory EarlyDynasticCuneiform[] = {
2696 constexpr TDEUnicodeData::Subcategory CyproMinoan[] = {
2701 constexpr TDEUnicodeData::Subcategory EgyptianHieroglyphs[] = {
2702 { 0x13000,
I18N_NOOP(
"A. Man and his occupations") },
2703 { 0x13050,
I18N_NOOP(
"B. Woman and her occupations") },
2704 { 0x1305A,
I18N_NOOP(
"C. Anthropomorphic deities") },
2705 { 0x13076,
I18N_NOOP(
"D. Parts of the human body") },
2707 { 0x130FE,
I18N_NOOP(
"F. Parts of mammals") },
2709 { 0x1317F,
I18N_NOOP(
"H. Parts of birds") },
2710 { 0x13188,
I18N_NOOP(
"I. Amphibious animals, reptiles, etc.") },
2711 { 0x1319B,
I18N_NOOP(
"K. Fishes and parts of fishes") },
2712 { 0x131A3,
I18N_NOOP(
"L. Invertebrata and lesser animals") },
2713 { 0x131AD,
I18N_NOOP(
"M. Trees and plants") },
2714 { 0x131EF,
I18N_NOOP(
"N. Sky, earth, water") },
2715 { 0x13220,
I18N_NOOP(
"NL. Nomes of Lower Egypt") },
2716 { 0x13236,
I18N_NOOP(
"NU. Nomes of Upper Egypt") },
2717 { 0x13250,
I18N_NOOP(
"O. Buildings, parts of buildings, etc.") },
2718 { 0x1329B,
I18N_NOOP(
"P. Ships and parts of ships") },
2719 { 0x132A8,
I18N_NOOP(
"Q. Domestic and funerary furniture") },
2720 { 0x132AF,
I18N_NOOP(
"R. Temple furniture and sacred emblems") },
2721 { 0x132D1,
I18N_NOOP(
"S. Crowns, dress, staves, etc.") },
2722 { 0x13307,
I18N_NOOP(
"T. Warfare, hunting, butchery") },
2723 { 0x13333,
I18N_NOOP(
"U. Agriculture, crafts, and professions") },
2724 { 0x13362,
I18N_NOOP(
"V. Rope, fiber, baskets, bags, etc.") },
2725 { 0x133AF,
I18N_NOOP(
"W. Vessels of stone and earthenware") },
2726 { 0x133CF,
I18N_NOOP(
"X. Loaves and cakes") },
2727 { 0x133DB,
I18N_NOOP(
"Y. Writings, games, music") },
2728 { 0x133E4,
I18N_NOOP(
"Z. Strokes, signs derived from Hieratic, geometrical figures") },
2729 { 0x1340D,
I18N_NOOP(
"Aa. Unclassified") },
2730 { 0x1342F,
I18N_NOOP(
"Addition to group V") },
2733 constexpr TDEUnicodeData::Subcategory EgyptianHieroglyphFormatControls[] = {
2735 { 0x13432,
I18N_NOOP(
"Sign insertion controls") },
2736 { 0x13436,
I18N_NOOP(
"Sign stacking control") },
2737 { 0x13437,
I18N_NOOP(
"Segment scoping delimiters") },
2738 { 0x13439,
I18N_NOOP(
"Sign insertion controls") },
2739 { 0x1343C,
I18N_NOOP(
"Enclosure controls") },
2740 { 0x13440,
I18N_NOOP(
"Mirror control") },
2741 { 0x13441,
I18N_NOOP(
"Blank and lost signs") },
2742 { 0x13447,
I18N_NOOP(
"Damage modifiers") },
2745 constexpr TDEUnicodeData::Subcategory EgyptianHieroglyphsExtendedA[] = {
2746 { 0x13460,
I18N_NOOP(
"A01. Man seated or kneeling empty handed") },
2747 { 0x13488,
I18N_NOOP(
"A02. Man standing empty handed") },
2748 { 0x134A5,
I18N_NOOP(
"A04. Man adoring or bent") },
2749 { 0x134B0,
I18N_NOOP(
"A05. Man on the ground or in water") },
2750 { 0x134C6,
I18N_NOOP(
"A06. Man or god standing, holding a staff") },
2751 { 0x134DB,
I18N_NOOP(
"A07. Man seated or kneeling, holding something") },
2752 { 0x134FD,
I18N_NOOP(
"A08. Man standing, holding something") },
2753 { 0x13510,
I18N_NOOP(
"A09. Man seated, pouring water") },
2754 { 0x1351F,
I18N_NOOP(
"A10. Man standing, pouring water, spreading powder") },
2755 { 0x13527,
I18N_NOOP(
"A11. Man hiding") },
2756 { 0x1352B,
I18N_NOOP(
"A12. Man working") },
2757 { 0x1354E,
I18N_NOOP(
"A13. Shepherd and porter") },
2758 { 0x13563,
I18N_NOOP(
"A14. Man carrying a bundle") },
2759 { 0x1356B,
I18N_NOOP(
"A15. Man or god standing, composed with a hieroglyphic sign") },
2760 { 0x1358E,
I18N_NOOP(
"A16. Man or god holding a weapon") },
2761 { 0x135A5,
I18N_NOOP(
"A17. Soldier, seated") },
2762 { 0x135AF,
I18N_NOOP(
"A18. Prisoner and enemy") },
2763 { 0x135DE,
I18N_NOOP(
"A19. Dancer and acrobat") },
2764 { 0x135EB,
I18N_NOOP(
"A20. Musician") },
2765 { 0x13604,
I18N_NOOP(
"A21. Man and animal") },
2766 { 0x1361C,
I18N_NOOP(
"A22. Man in a boat") },
2769 { 0x1363E,
I18N_NOOP(
"A25. King or noble seated on a chair") },
2770 { 0x13652,
I18N_NOOP(
"A26. King or god seated without crown") },
2771 { 0x13662,
I18N_NOOP(
"A27. King or god standing without crown") },
2772 { 0x1366F,
I18N_NOOP(
"A28. King or god wearing the white crown") },
2773 { 0x1368A,
I18N_NOOP(
"A29. King or god wearing the red crown") },
2774 { 0x13698,
I18N_NOOP(
"A30. King or god wearing another crown") },
2775 { 0x136B0,
I18N_NOOP(
"A31. Dead person kneeling") },
2778 { 0x136C3,
I18N_NOOP(
"A34. Man, varia") },
2779 { 0x136D4,
I18N_NOOP(
"B01. Woman seated") },
2780 { 0x136F0,
I18N_NOOP(
"B02. Woman kneeling") },
2781 { 0x136F6,
I18N_NOOP(
"B03. Woman kneeling with visible arms") },
2782 { 0x13700,
I18N_NOOP(
"B04. Woman seated on a chair") },
2783 { 0x1370F,
I18N_NOOP(
"B05. Woman, standing") },
2784 { 0x1372A,
I18N_NOOP(
"B06. Queen or goddess, seated, wearing a crown") },
2785 { 0x1372D,
I18N_NOOP(
"B07. Queen or goddess, standing, wearing a crown") },
2786 { 0x13732,
I18N_NOOP(
"B08. Woman, musician") },
2787 { 0x13737,
I18N_NOOP(
"B09. Woman, queen or goddess pregnant, giving birth, breastfeeding") },
2788 { 0x13744,
I18N_NOOP(
"B10. Woman, varia") },
2789 { 0x13749,
I18N_NOOP(
"C01. God, seated, various headsets") },
2790 { 0x1375E,
I18N_NOOP(
"C02. God, various, with animal heads") },
2792 { 0x1376E,
I18N_NOOP(
"C04. Anubis and canides gods") },
2793 { 0x1378D,
I18N_NOOP(
"C05. Apis and bull head gods") },
2796 { 0x13796,
I18N_NOOP(
"C09. Falcon, seated") },
2797 { 0x137CC,
I18N_NOOP(
"C10. Falcon, standing") },
2798 { 0x137DF,
I18N_NOOP(
"C11. Falcon, slaying an animal") },
2801 { 0x13804,
I18N_NOOP(
"C14. Ihy and children gods") },
2802 { 0x1380B,
I18N_NOOP(
"C15. Khnoum and ram gods") },
2803 { 0x1381B,
I18N_NOOP(
"C16. Gods with lion head") },
2805 { 0x13821,
I18N_NOOP(
"C18. Nefertoum") },
2816 { 0x13857,
I18N_NOOP(
"C29. Gods with monkey head") },
2819 { 0x13871,
I18N_NOOP(
"C32. Gods, varia") },
2821 { 0x13878,
I18N_NOOP(
"C34. Ermouthis and snake goddesses") },
2822 { 0x1387D,
I18N_NOOP(
"C35. Hathor/Isis") },
2823 { 0x138AE,
I18N_NOOP(
"C36. Lion gods and goddesses") },
2829 { 0x138F1,
I18N_NOOP(
"C42. Nephthys") },
2834 { 0x13907,
I18N_NOOP(
"C47. Goddesses, varia") },
2835 { 0x13923,
I18N_NOOP(
"C48. Goddesses, gods group") },
2836 { 0x1392D,
I18N_NOOP(
"D01. Head, sideways") },
2837 { 0x13935,
I18N_NOOP(
"D02. Head, front") },
2838 { 0x13937,
I18N_NOOP(
"D03. Head and arms") },
2841 { 0x13976,
I18N_NOOP(
"D06. Eye made up") },
2842 { 0x13986,
I18N_NOOP(
"D07. Eye crying") },
2843 { 0x1398C,
I18N_NOOP(
"D08. Udjat eye") },
2844 { 0x1398F,
I18N_NOOP(
"D09. Udjat eye components") },
2846 { 0x13991,
I18N_NOOP(
"D11. Face sideways") },
2849 { 0x13999,
I18N_NOOP(
"D14. Mouth spitting") },
2851 { 0x1399F,
I18N_NOOP(
"D17. Lower part of kneeling or sitting man") },
2852 { 0x139A0,
I18N_NOOP(
"D18. Arms (straight)") },
2853 { 0x139A6,
I18N_NOOP(
"D19. Arms (bent)") },
2854 { 0x139B0,
I18N_NOOP(
"D20. Arm or arms holding an oar") },
2855 { 0x139B7,
I18N_NOOP(
"D21. Arm holding shield and weapons") },
2856 { 0x139C2,
I18N_NOOP(
"D22. Arm flat") },
2857 { 0x139C3,
I18N_NOOP(
"D23. Forearm (empty handed, palm up)") },
2858 { 0x139C5,
I18N_NOOP(
"D24. Forearm (holding loaf of bread or round vase with rim)") },
2859 { 0x139C7,
I18N_NOOP(
"D25. Forearm (holding stick, varia)") },
2860 { 0x139DB,
I18N_NOOP(
"D26. Arm bent") },
2861 { 0x139F0,
I18N_NOOP(
"D27. Arms bent, holding an object") },
2865 { 0x13A07,
I18N_NOOP(
"D31. Male genitals") },
2866 { 0x13A0D,
I18N_NOOP(
"D32. Female genitals") },
2871 { 0x13A32,
I18N_NOOP(
"D39. Human parts, varia") },
2873 { 0x13A4C,
I18N_NOOP(
"E02. Sethian animal") },
2874 { 0x13A5A,
I18N_NOOP(
"E03. Antelope") },
2875 { 0x13A67,
I18N_NOOP(
"E04. Ram and ewe") },
2877 { 0x13A7C,
I18N_NOOP(
"E06. Dog, jackal standing") },
2878 { 0x13A86,
I18N_NOOP(
"E07. Dog, jackal sitting") },
2881 { 0x13AAA,
I18N_NOOP(
"E10. Goat and kid") },
2883 { 0x13AB0,
I18N_NOOP(
"E14. Hippopotamus") },
2894 { 0x13B59,
I18N_NOOP(
"E26. Mammals, varia") },
2895 { 0x13B5C,
I18N_NOOP(
"F01. Donkey head") },
2896 { 0x13B60,
I18N_NOOP(
"F02. Ram head") },
2897 { 0x13B6A,
I18N_NOOP(
"F03. Bovidae heads") },
2898 { 0x13B76,
I18N_NOOP(
"F04. Dog head") },
2899 { 0x13B81,
I18N_NOOP(
"F05. Animal heads on stick or leg") },
2900 { 0x13B87,
I18N_NOOP(
"F06. Cervidae heads") },
2901 { 0x13B8F,
I18N_NOOP(
"F07. Hippopotamus head") },
2902 { 0x13B90,
I18N_NOOP(
"F08. Lion head and protome") },
2903 { 0x13B97,
I18N_NOOP(
"F09. Donkey and horse protomes") },
2904 { 0x13BA1,
I18N_NOOP(
"F10. Animal head, varia") },
2905 { 0x13BA4,
I18N_NOOP(
"F11. Bovidae horns") },
2906 { 0x13BAA,
I18N_NOOP(
"F12. Ram horns") },
2907 { 0x13BAC,
I18N_NOOP(
"F14. Elephant tusk") },
2911 { 0x13BB7,
I18N_NOOP(
"F18. Hindquarter") },
2917 { 0x13BDD,
I18N_NOOP(
"F24. Heart and lungs") },
2919 { 0x13BF0,
I18N_NOOP(
"F26. Vertebrae and ribs") },
2921 { 0x13BFD,
I18N_NOOP(
"F28. Intestines") },
2922 { 0x13C01,
I18N_NOOP(
"F30. Excrements, pustule") },
2923 { 0x13C03,
I18N_NOOP(
"F31. Placenta") },
2924 { 0x13C05,
I18N_NOOP(
"F32. Mammal parts, varia") },
2928 { 0x13C15,
I18N_NOOP(
"G05. Duck, flying") },
2929 { 0x13C21,
I18N_NOOP(
"G06. Duck tied to a pole") },
2932 { 0x13C31,
I18N_NOOP(
"G10. Cormorant") },
2933 { 0x13C32,
I18N_NOOP(
"G11. Wader: ibis, flamingo, stork, heron, egret") },
2935 { 0x13CAD,
I18N_NOOP(
"G13. Falcon opening his wings") },
2936 { 0x13CBF,
I18N_NOOP(
"G14. Falcon legs bent") },
2937 { 0x13CC3,
I18N_NOOP(
"G15. Falcon mummified or emblem of falcon") },
2938 { 0x13CCF,
I18N_NOOP(
"G16. Swallow, sparrow") },
2940 { 0x13CD5,
I18N_NOOP(
"G18. Bird, human-headed") },
2941 { 0x13CDE,
I18N_NOOP(
"G19. Bird, dog- or ram-headed") },
2942 { 0x13CE0,
I18N_NOOP(
"G20. Chick or sitting duck") },
2944 { 0x13CF1,
I18N_NOOP(
"G22. Guinea fowl") },
2945 { 0x13CF7,
I18N_NOOP(
"G23. Peewit, lapwing") },
2947 { 0x13D09,
I18N_NOOP(
"G25. Vulture, with open wings") },
2948 { 0x13D0D,
I18N_NOOP(
"G26. Vulture (Neophron percnopterus)") },
2949 { 0x13D0F,
I18N_NOOP(
"G27. Bird, varia") },
2950 { 0x13D10,
I18N_NOOP(
"H01. Falcon head") },
2951 { 0x13D17,
I18N_NOOP(
"H02. Falcon eye") },
2952 { 0x13D19,
I18N_NOOP(
"H03. Duck/goose head") },
2953 { 0x13D1D,
I18N_NOOP(
"H04. Crested bird head") },
2954 { 0x13D1F,
I18N_NOOP(
"H06. Vulture head") },
2959 { 0x13D2B,
I18N_NOOP(
"H11. Bird part, varia") },
2962 { 0x13D32,
I18N_NOOP(
"I03. Crocodile") },
2963 { 0x13D4A,
I18N_NOOP(
"I04. Crocodile parts") },
2964 { 0x13D51,
I18N_NOOP(
"I05. Frog, tadpole") },
2966 { 0x13D5C,
I18N_NOOP(
"I07. Horned viper") },
2967 { 0x13D65,
I18N_NOOP(
"I08. Snake wrt hk.w") },
2968 { 0x13D66,
I18N_NOOP(
"I09. Cobra type 1 (I10)") },
2969 { 0x13D73,
I18N_NOOP(
"I10. Cobra type 2 (I40)") },
2970 { 0x13D79,
I18N_NOOP(
"I11. Cobra type 3 (I64)") },
2971 { 0x13DAB,
I18N_NOOP(
"I12. Cobra type 4 (I80)") },
2972 { 0x13DB1,
I18N_NOOP(
"I13. Cobra type 5 (I14/I15)") },
2973 { 0x13DC9,
I18N_NOOP(
"I14. Snake head") },
2974 { 0x13DCA,
I18N_NOOP(
"I15. Snake, varia") },
2976 { 0x13DDB,
I18N_NOOP(
"K02. Fish parts") },
2978 { 0x13DEE,
I18N_NOOP(
"L02. Bee, fly and wasp") },
2979 { 0x13DF0,
I18N_NOOP(
"L03. Grasshopper, locust") },
2980 { 0x13DF1,
I18N_NOOP(
"L04. Praying mantis") },
2981 { 0x13DF2,
I18N_NOOP(
"L06. Scorpion and water bug") },
2982 { 0x13DF7,
I18N_NOOP(
"L07. Insects, varia") },
2984 { 0x13E08,
I18N_NOOP(
"M02. Palm tree") },
2985 { 0x13E0B,
I18N_NOOP(
"M03. Clump type 1") },
2987 { 0x13E18,
I18N_NOOP(
"M05. Stripped palm branch") },
2988 { 0x13E29,
I18N_NOOP(
"M06. Lotus on a pond") },
2989 { 0x13E38,
I18N_NOOP(
"M07. Lotus bud") },
2990 { 0x13E3C,
I18N_NOOP(
"M08. Lotus flower") },
2991 { 0x13E4F,
I18N_NOOP(
"M09. Composite flower bunch") },
2992 { 0x13E59,
I18N_NOOP(
"M10. Lotus with bent stem") },
2993 { 0x13E5C,
I18N_NOOP(
"M11. Lotus leaf") },
2994 { 0x13E66,
I18N_NOOP(
"M12. Papyrus stem") },
2995 { 0x13E73,
I18N_NOOP(
"M13. Clump of papyrus and lily") },
2996 { 0x13E84,
I18N_NOOP(
"M14. Reed leaf") },
2997 { 0x13E8A,
I18N_NOOP(
"M15. Clump of reeds") },
2998 { 0x13E8C,
I18N_NOOP(
"M16. Rush with shoots") },
2999 { 0x13E9E,
I18N_NOOP(
"M17. Carob pod") },
3004 { 0x13EA8,
I18N_NOOP(
"M22. Sheaf (flax bundle)") },
3005 { 0x13EB1,
I18N_NOOP(
"M23. Basket of fruits or grains") },
3006 { 0x13EB3,
I18N_NOOP(
"M24. Reed bundle") },
3007 { 0x13EB7,
I18N_NOOP(
"M26. Vine arbor (grape vines on props)") },
3008 { 0x13EB9,
I18N_NOOP(
"M28. Vegetal elements, varia") },
3011 { 0x13ED3,
I18N_NOOP(
"N03. Sun with uraeus") },
3012 { 0x13EDB,
I18N_NOOP(
"N04. Sun, radiant, with rays") },
3013 { 0x13EE7,
I18N_NOOP(
"N05. Sun with wings") },
3016 { 0x13EF7,
I18N_NOOP(
"N09. Flat land") },
3017 { 0x13F01,
I18N_NOOP(
"N10. Tongue of land") },
3018 { 0x13F02,
I18N_NOOP(
"N11. Canal, irrigated land") },
3019 { 0x13F14,
I18N_NOOP(
"N13. Mountain range (desert)") },
3021 { 0x13F20,
I18N_NOOP(
"N15. Sunrise over mountain (horizon)") },
3022 { 0x13F24,
I18N_NOOP(
"N16. Rising sun") },
3023 { 0x13F25,
I18N_NOOP(
"N17. Sand slope, hill with shrubs (mound)") },
3024 { 0x13F29,
I18N_NOOP(
"N18. Road bordered with shrubs (road)") },
3026 { 0x13F34,
I18N_NOOP(
"N20. Canal and pool") },
3028 { 0x13F46,
I18N_NOOP(
"N22. Sky, ground, earth, varia") },
3030 { 0x13F53,
I18N_NOOP(
"O02. Reed shelter, winding wall (enclosure)") },
3031 { 0x13F55,
I18N_NOOP(
"O03. Plan of rectangular enclosure") },
3032 { 0x13F62,
I18N_NOOP(
"O04. Palace with battlements") },
3033 { 0x13F6A,
I18N_NOOP(
"O05. Enclosure with battlements") },
3034 { 0x13F7B,
I18N_NOOP(
"O06. Palace or tomb façade") },
3035 { 0x13F88,
I18N_NOOP(
"O07. Shrine façade") },
3036 { 0x13F92,
I18N_NOOP(
"O08. Door and gateway with snake") },
3038 { 0x13FB7,
I18N_NOOP(
"O10. Open shelter") },
3039 { 0x13FC0,
I18N_NOOP(
"O11. Double platform (sed-festival)") },
3043 { 0x13FDF,
I18N_NOOP(
"O16. Column (support)") },
3044 { 0x13FEE,
I18N_NOOP(
"O18. Door bolt") },
3045 { 0x13FF3,
I18N_NOOP(
"O19. Building angle") },
3046 { 0x13FF4,
I18N_NOOP(
"O20. Stairway") },
3048 { 0x13FFF,
I18N_NOOP(
"O22. Grain mound on mud floor") },
3049 { 0x14006,
I18N_NOOP(
"O23. Frieze elements") },
3050 { 0x14008,
I18N_NOOP(
"O24. Architecture elements") },
3052 { 0x1403D,
I18N_NOOP(
"P02. Sailboat") },
3053 { 0x14043,
I18N_NOOP(
"P03. Sacred boat") },
3054 { 0x14076,
I18N_NOOP(
"P04. Boat with net") },
3055 { 0x1407A,
I18N_NOOP(
"P05. Boat, varia") },
3059 { 0x14092,
I18N_NOOP(
"P09. Steering oar") },
3060 { 0x14094,
I18N_NOOP(
"P10. Mooring post") },
3061 { 0x14095,
I18N_NOOP(
"P11. Steering gear") },
3062 { 0x14098,
I18N_NOOP(
"P13. Boat parts, varia") },
3064 { 0x140A6,
I18N_NOOP(
"Q02. Headrest") },
3066 { 0x140B0,
I18N_NOOP(
"Q04. Mirror and base") },
3067 { 0x140B2,
I18N_NOOP(
"Q05. Chest and coffin") },
3069 { 0x140CB,
I18N_NOOP(
"Q07. Furniture, varia") },
3070 { 0x140CF,
I18N_NOOP(
"R01. Table for offerings") },
3071 { 0x140D4,
I18N_NOOP(
"R02. Low table (dresser)") },
3073 { 0x140F2,
I18N_NOOP(
"R04. Bread loaf on a mat") },
3075 { 0x140F9,
I18N_NOOP(
"R06. Incense bowl") },
3077 { 0x14112,
I18N_NOOP(
"R08. Reed column") },
3078 { 0x14115,
I18N_NOOP(
"R09. Standard") },
3079 { 0x1411F,
I18N_NOOP(
"R11. West or right side emblem") },
3080 { 0x14128,
I18N_NOOP(
"R12. East or left side emblem") },
3081 { 0x14133,
I18N_NOOP(
"R13. Emblem type R80") },
3082 { 0x14134,
I18N_NOOP(
"R14. Emblem of eighth nome of Upper Egypt") },
3083 { 0x1413E,
I18N_NOOP(
"R15. Nefertoum emblem") },
3084 { 0x14141,
I18N_NOOP(
"R16. Seth emblem") },
3085 { 0x14144,
I18N_NOOP(
"R17. Seshat emblem") },
3086 { 0x14145,
I18N_NOOP(
"R18. Min emblem") },
3087 { 0x14148,
I18N_NOOP(
"R20. Sign mks") },
3088 { 0x14149,
I18N_NOOP(
"R22. Shedet emblem") },
3089 { 0x1414A,
I18N_NOOP(
"R23. Temple furniture, varia") },
3090 { 0x1414D,
I18N_NOOP(
"S01. White crown of Upper Egypt") },
3091 { 0x14157,
I18N_NOOP(
"S02. Red crown of Lower Egypt") },
3092 { 0x1415B,
I18N_NOOP(
"S03. Union of red crown of Lower Egypt and white crown of Upper Egypt") },
3093 { 0x1415C,
I18N_NOOP(
"S04. Blue crown") },
3094 { 0x1415D,
I18N_NOOP(
"S05. Head cloth") },
3095 { 0x14164,
I18N_NOOP(
"S06. Band of head cloth with loop and ties at the back") },
3096 { 0x14166,
I18N_NOOP(
"S07. Atef crown") },
3097 { 0x1416B,
I18N_NOOP(
"S08. Hemhem crown") },
3098 { 0x1416E,
I18N_NOOP(
"S09. Double plumes headdress") },
3099 { 0x14182,
I18N_NOOP(
"S10. Headband") },
3102 { 0x141AA,
I18N_NOOP(
"S13. Knots, bracelets, garment with knots") },
3103 { 0x141AF,
I18N_NOOP(
"S14. Loincloth, apron") },
3105 { 0x141C5,
I18N_NOOP(
"S17. Sandal strap, ankh") },
3106 { 0x141CA,
I18N_NOOP(
"S20. Sunshade type 2 (S36)") },
3107 { 0x141CF,
I18N_NOOP(
"S21. Sunshade type 3 (S37D)") },
3108 { 0x141D3,
I18N_NOOP(
"S22. Sceptre type 1 (crook)") },
3109 { 0x141D4,
I18N_NOOP(
"S23. Sceptre type 2 (Seth animal)") },
3110 { 0x141D8,
I18N_NOOP(
"S24. Sceptre type 3 (S42)") },
3111 { 0x141DB,
I18N_NOOP(
"S25. Sticks, other sceptres") },
3112 { 0x141E3,
I18N_NOOP(
"S26. Flabellum") },
3113 { 0x141E5,
I18N_NOOP(
"S27. Seth tool") },
3114 { 0x141E9,
I18N_NOOP(
"S28. Collar counterweight, bag of clothes") },
3115 { 0x141F1,
I18N_NOOP(
"S29. S category, varia") },
3119 { 0x14206,
I18N_NOOP(
"T04. Axe head") },
3122 { 0x1420C,
I18N_NOOP(
"T07. Arrow, quiver, cover of a quiver") },
3123 { 0x14224,
I18N_NOOP(
"T08. Bowstring") },
3124 { 0x14229,
I18N_NOOP(
"T09. Throwing stick") },
3125 { 0x1422F,
I18N_NOOP(
"T10. Scimitar") },
3126 { 0x14235,
I18N_NOOP(
"T12. Crook with package") },
3128 { 0x14258,
I18N_NOOP(
"T14. Fishing net (sideways)") },
3129 { 0x14261,
I18N_NOOP(
"T15. Reed float") },
3132 { 0x14287,
I18N_NOOP(
"T19. Sharpener, butcher's knife") },
3133 { 0x14289,
I18N_NOOP(
"T20. Knife pesesh-kaf") },
3134 { 0x1428A,
I18N_NOOP(
"T21. T category, varia") },
3137 { 0x14295,
I18N_NOOP(
"U03. Grain measure") },
3139 { 0x142A3,
I18N_NOOP(
"U06. Sled (protome)") },
3140 { 0x142A9,
I18N_NOOP(
"U07. Planted Pick") },
3142 { 0x142B1,
I18N_NOOP(
"U09. Chisel and Drill") },
3143 { 0x142D8,
I18N_NOOP(
"U11. Kiln and ingot") },
3145 { 0x142DE,
I18N_NOOP(
"U13. Spindle (stopper)") },
3147 { 0x142E2,
I18N_NOOP(
"U16. Scale, measuring instrument") },
3148 { 0x142FB,
I18N_NOOP(
"U17. Potter's wheel") },
3149 { 0x14301,
I18N_NOOP(
"U18. Press (wine, oil), warp extended between poles") },
3150 { 0x14313,
I18N_NOOP(
"U19. Riddle (coarse sieve)") },
3151 { 0x14316,
I18N_NOOP(
"U21. Mill tool") },
3152 { 0x14319,
I18N_NOOP(
"U22. U category, varia") },
3153 { 0x1431E,
I18N_NOOP(
"V01. Rope and rope coils") },
3154 { 0x14324,
I18N_NOOP(
"V02. Round cartouche, knot") },
3155 { 0x14325,
I18N_NOOP(
"V03. Cartouche") },
3156 { 0x14326,
I18N_NOOP(
"V04. String, tethering rope, hobble") },
3158 { 0x14335,
I18N_NOOP(
"V06. Cord on stick") },
3159 { 0x14336,
I18N_NOOP(
"V07. Spool with thread") },
3160 { 0x14337,
I18N_NOOP(
"V08. Wick and swab") },
3162 { 0x14346,
I18N_NOOP(
"V10. Woven basket") },
3163 { 0x14347,
I18N_NOOP(
"V11. Wicker satchel") },
3164 { 0x1434A,
I18N_NOOP(
"V14. Receptacle, bunch") },
3165 { 0x14352,
I18N_NOOP(
"V15. Bandage, receptacle") },
3168 { 0x14359,
I18N_NOOP(
"W01. Oil vessel") },
3169 { 0x14363,
I18N_NOOP(
"W02. Alabaster basin") },
3170 { 0x14367,
I18N_NOOP(
"W03. Stone jug (hnm)") },
3173 { 0x1436E,
I18N_NOOP(
"W06. Tall jar") },
3174 { 0x1437F,
I18N_NOOP(
"W07. Milk jug") },
3176 { 0x14386,
I18N_NOOP(
"W09. Jug pouring liquid") },
3177 { 0x14389,
I18N_NOOP(
"W10. Wine jars (twin jars)") },
3178 { 0x1438E,
I18N_NOOP(
"W11. Receptacles, varia") },
3179 { 0x143BC,
I18N_NOOP(
"X02. Tall bread loaf") },
3180 { 0x143C0,
I18N_NOOP(
"X03. Bread type 1 (X3)") },
3181 { 0x143C3,
I18N_NOOP(
"X04. Bread roll type 2") },
3182 { 0x143C9,
I18N_NOOP(
"X05. Bread roll type 3 (X5)") },
3183 { 0x143CA,
I18N_NOOP(
"X06. Bread type 4 (X6)") },
3184 { 0x143CD,
I18N_NOOP(
"X08. Other breads") },
3185 { 0x143CF,
I18N_NOOP(
"Y01. Papyrus scroll") },
3186 { 0x143D1,
I18N_NOOP(
"Y02. Scribal kit, graver") },
3187 { 0x143D8,
I18N_NOOP(
"Y03. Game board and piece (senet)") },
3189 { 0x143DE,
I18N_NOOP(
"Y05. Tambourine and ball") },
3193 { 0x143EB,
I18N_NOOP(
"Z03. Squares and rectangles") },
3194 { 0x143EC,
I18N_NOOP(
"Z04. Triangles, lozenges") },
3195 { 0x143EE,
I18N_NOOP(
"Z06. Geometric shapes, varia") },
3196 { 0x143F3,
I18N_NOOP(
"Z07. Hieratic signs") },
3197 { 0x143F7,
I18N_NOOP(
"AA08. Sign type 8") },
3198 { 0x143F8,
I18N_NOOP(
"AA22. Unclassified signs, varia") },
3201 constexpr TDEUnicodeData::Subcategory AnatolianHieroglyphs[] = {
3202 { 0x14400,
I18N_NOOP(
"A. The human body and clothing") },
3207 { 0x14530,
I18N_NOOP(
"F. Arms, tools, furniture, and other instruments") },
3208 { 0x14577,
I18N_NOOP(
"G. Vases and receptacles") },
3210 { 0x145AD,
I18N_NOOP(
"J. Lines, numbers, and geometric shapes") },
3212 { 0x14629,
I18N_NOOP(
"M. Additional signs") },
3215 constexpr TDEUnicodeData::Subcategory GurungKhema[] = {
3216 { 0x16100,
I18N_NOOP(
"Vowel carrier") },
3219 { 0x16129,
I18N_NOOP(
"Vowel length mark") },
3220 { 0x1612A,
I18N_NOOP(
"Medial consonant signs") },
3221 { 0x1612D,
I18N_NOOP(
"Various signs") },
3225 constexpr TDEUnicodeData::Subcategory BamumSupplement[] = {
3226 { 0x16800,
I18N_NOOP(
"Characters found through Phase A") },
3227 { 0x16857,
I18N_NOOP(
"Characters found through Phase B") },
3228 { 0x1688F,
I18N_NOOP(
"Characters found through Phase C") },
3229 { 0x168F1,
I18N_NOOP(
"Characters found through Phase D") },
3230 { 0x16966,
I18N_NOOP(
"Characters found through Phase E") },
3231 { 0x16A03,
I18N_NOOP(
"Characters found through Phase F") },
3234 constexpr TDEUnicodeData::Subcategory Mro[] = {
3240 constexpr TDEUnicodeData::Subcategory Tangsa[] = {
3246 constexpr TDEUnicodeData::Subcategory BassaVah[] = {
3247 { 0x16AD0,
I18N_NOOP(
"Consonant letters") },
3248 { 0x16AE7,
I18N_NOOP(
"Vowel letters") },
3249 { 0x16AF0,
I18N_NOOP(
"Combining tone marks") },
3253 constexpr TDEUnicodeData::Subcategory PahawhHmong[] = {
3255 { 0x16B1C,
I18N_NOOP(
"Consonant onsets") },
3256 { 0x16B30,
I18N_NOOP(
"Combining diacritical marks") },
3258 { 0x16B3C,
I18N_NOOP(
"Mathematical operators") },
3259 { 0x16B40,
I18N_NOOP(
"Modifier letters") },
3264 { 0x16B7D,
I18N_NOOP(
"Logographs for clan names") },
3267 constexpr TDEUnicodeData::Subcategory KiratRai[] = {
3268 { 0x16D40,
I18N_NOOP(
"Various signs") },
3269 { 0x16D43,
I18N_NOOP(
"Independent vowel") },
3272 { 0x16D6B,
I18N_NOOP(
"Various signs") },
3277 constexpr TDEUnicodeData::Subcategory Medefaidrin[] = {
3278 { 0x16E40,
I18N_NOOP(
"Uppercase letters") },
3279 { 0x16E60,
I18N_NOOP(
"Lowercase letters") },
3282 { 0x16E94,
I18N_NOOP(
"Alternate digits") },
3287 constexpr TDEUnicodeData::Subcategory BeriaErfe[] = {
3288 { 0x16EA0,
I18N_NOOP(
"Uppercase letters") },
3289 { 0x16EBB,
I18N_NOOP(
"Lowercase letters") },
3292 constexpr TDEUnicodeData::Subcategory Miao[] = {
3293 { 0x16F00,
I18N_NOOP(
"Consonant onsets") },
3295 { 0x16F54,
I18N_NOOP(
"Vowels and finals") },
3296 { 0x16F8F,
I18N_NOOP(
"Positioning tone marks") },
3297 { 0x16F93,
I18N_NOOP(
"Baseline tone marks") },
3298 { 0x16F9A,
I18N_NOOP(
"Archaic baseline tone marks") },
3301 constexpr TDEUnicodeData::Subcategory IdeographicSymbolsandPunctuation[] = {
3304 { 0x16FE2,
I18N_NOOP(
"Marks used in ancient Chinese texts") },
3305 { 0x16FE4,
I18N_NOOP(
"Small Khitan format character") },
3306 { 0x16FF0,
I18N_NOOP(
"Combining diacritics for CJK ideographs") },
3307 { 0x16FF2,
I18N_NOOP(
"Characters used for rhotacization") },
3308 { 0x16FF4,
I18N_NOOP(
"Characters used for Cantonese music") },
3311 constexpr TDEUnicodeData::Subcategory Tangut[] = {
3314 constexpr TDEUnicodeData::Subcategory TangutComponents[] = {
3315 { 0x18800,
I18N_NOOP(
"One-stroke components") },
3316 { 0x1880A,
I18N_NOOP(
"Two-stroke components") },
3317 { 0x18826,
I18N_NOOP(
"Three-stroke components") },
3318 { 0x18860,
I18N_NOOP(
"Four-stroke components") },
3319 { 0x188CC,
I18N_NOOP(
"Five-stroke components") },
3320 { 0x18959,
I18N_NOOP(
"Six-stroke components") },
3321 { 0x189DB,
I18N_NOOP(
"Seven-stroke components") },
3322 { 0x18A41,
I18N_NOOP(
"Eight-stroke components") },
3323 { 0x18A99,
I18N_NOOP(
"Nine-stroke components") },
3324 { 0x18AA4,
I18N_NOOP(
"Ten-stroke component") },
3325 { 0x18AA5,
I18N_NOOP(
"Nine-stroke components") },
3326 { 0x18AC1,
I18N_NOOP(
"Ten-stroke components") },
3327 { 0x18AD5,
I18N_NOOP(
"Eleven-stroke components") },
3328 { 0x18AE3,
I18N_NOOP(
"Twelve-stroke components") },
3329 { 0x18AEC,
I18N_NOOP(
"Thirteen-stroke components") },
3330 { 0x18AF2,
I18N_NOOP(
"Sixteen-stroke component") },
3331 { 0x18AF3,
I18N_NOOP(
"Additional components") },
3334 constexpr TDEUnicodeData::Subcategory KhitanSmallScript[] = {
3335 { 0x18B00,
I18N_NOOP(
"Iteration mark") },
3356 { 0x18CFF,
I18N_NOOP(
"Indication of missing character") },
3359 constexpr TDEUnicodeData::Subcategory TangutSupplement[] = {
3362 constexpr TDEUnicodeData::Subcategory TangutComponentsSupplement[] = {
3363 { 0x18D80,
I18N_NOOP(
"Miscellaneous components") },
3364 { 0x18D82,
I18N_NOOP(
"One-stroke components") },
3365 { 0x18D84,
I18N_NOOP(
"Two-stroke component") },
3366 { 0x18D85,
I18N_NOOP(
"Three-stroke component") },
3367 { 0x18D86,
I18N_NOOP(
"Four-stroke components") },
3368 { 0x18D89,
I18N_NOOP(
"Five-stroke components") },
3369 { 0x18D91,
I18N_NOOP(
"Six-stroke components") },
3370 { 0x18D9D,
I18N_NOOP(
"Seven-stroke components") },
3371 { 0x18DAE,
I18N_NOOP(
"Eight-stroke components") },
3372 { 0x18DC4,
I18N_NOOP(
"Nine-stroke components") },
3373 { 0x18DD9,
I18N_NOOP(
"Ten-stroke components") },
3374 { 0x18DE7,
I18N_NOOP(
"Eleven-stroke components") },
3375 { 0x18DEB,
I18N_NOOP(
"Twelve-stroke components") },
3376 { 0x18DEF,
I18N_NOOP(
"Thirteen-stroke components") },
3377 { 0x18DF2,
I18N_NOOP(
"Fourteen-stroke component") },
3380 constexpr TDEUnicodeData::Subcategory KanaExtendedB[] = {
3382 { 0x1AFF7,
I18N_NOOP(
"Nasalized tone marks") },
3385 constexpr TDEUnicodeData::Subcategory KanaSupplement[] = {
3386 { 0x1B000,
I18N_NOOP(
"Historic Katakana") },
3387 { 0x1B001,
I18N_NOOP(
"Historic Hiragana and Hentaigana") },
3391 constexpr TDEUnicodeData::Subcategory KanaExtendedA[] = {
3393 { 0x1B11F,
I18N_NOOP(
"Historic Hiragana") },
3394 { 0x1B120,
I18N_NOOP(
"Historic Katakana") },
3397 constexpr TDEUnicodeData::Subcategory SmallKanaExtension[] = {
3398 { 0x1B132,
I18N_NOOP(
"Historic small hiragana letters") },
3399 { 0x1B155,
I18N_NOOP(
"Historic small katakana letters") },
3402 constexpr TDEUnicodeData::Subcategory Nushu[] = {
3403 { 0x1B170,
I18N_NOOP(
"One-stroke character") },
3404 { 0x1B171,
I18N_NOOP(
"Two-stroke characters") },
3405 { 0x1B178,
I18N_NOOP(
"Three-stroke characters") },
3406 { 0x1B18B,
I18N_NOOP(
"Four-stroke characters") },
3407 { 0x1B1A8,
I18N_NOOP(
"Five-stroke characters") },
3408 { 0x1B1DE,
I18N_NOOP(
"Six-stroke characters") },
3409 { 0x1B216,
I18N_NOOP(
"Seven-stroke characters") },
3410 { 0x1B244,
I18N_NOOP(
"Eight-stroke characters") },
3411 { 0x1B284,
I18N_NOOP(
"Nine-stroke characters") },
3412 { 0x1B2B0,
I18N_NOOP(
"Ten-stroke characters") },
3413 { 0x1B2CE,
I18N_NOOP(
"Eleven-stroke characters") },
3414 { 0x1B2E1,
I18N_NOOP(
"Twelve-stroke characters") },
3415 { 0x1B2EE,
I18N_NOOP(
"Thirteen-stroke characters") },
3416 { 0x1B2F4,
I18N_NOOP(
"Fourteen-stroke characters") },
3417 { 0x1B2F7,
I18N_NOOP(
"Fifteen-stroke characters") },
3418 { 0x1B2FA,
I18N_NOOP(
"Sixteen-stroke characters") },
3421 constexpr TDEUnicodeData::Subcategory Duployan[] = {
3422 { 0x1BC00,
I18N_NOOP(
"Non-joining consonants") },
3423 { 0x1BC02,
I18N_NOOP(
"Line consonants") },
3424 { 0x1BC19,
I18N_NOOP(
"Arc consonants") },
3425 { 0x1BC32,
I18N_NOOP(
"Quarter-arc consonants written downwards") },
3426 { 0x1BC3B,
I18N_NOOP(
"Quarter-arc consonants written upwards") },
3427 { 0x1BC41,
I18N_NOOP(
"Circle vowels") },
3428 { 0x1BC46,
I18N_NOOP(
"Semi-circle vowels") },
3429 { 0x1BC4F,
I18N_NOOP(
"Diagonal-line vowels") },
3430 { 0x1BC51,
I18N_NOOP(
"Quarter-circle vowels") },
3432 { 0x1BC5A,
I18N_NOOP(
"Dotted-circle vowels") },
3433 { 0x1BC5C,
I18N_NOOP(
"Compound vowels") },
3434 { 0x1BC61,
I18N_NOOP(
"Basic nasal vowels") },
3435 { 0x1BC65,
I18N_NOOP(
"Additional nasal vowels") },
3436 { 0x1BC70,
I18N_NOOP(
"Attached affixes") },
3439 { 0x1BC9C,
I18N_NOOP(
"Miscellaneous sign") },
3440 { 0x1BC9D,
I18N_NOOP(
"Sloan R-form selector") },
3441 { 0x1BC9E,
I18N_NOOP(
"Shorthand double mark") },
3442 { 0x1BC9F,
I18N_NOOP(
"Chinook punctuation") },
3445 constexpr TDEUnicodeData::Subcategory ShorthandFormatControls[] = {
3446 { 0x1BCA0,
I18N_NOOP(
"Shorthand format controls") },
3449 constexpr TDEUnicodeData::Subcategory SymbolsforLegacyComputingSupplement[] = {
3451 { 0x1CC05,
I18N_NOOP(
"Rule segments") },
3452 { 0x1CC08,
I18N_NOOP(
"Schematic symbols") },
3453 { 0x1CC1B,
I18N_NOOP(
"Box drawing characters") },
3454 { 0x1CC21,
I18N_NOOP(
"Separated mosaic terminal graphic characters") },
3455 { 0x1CC30,
I18N_NOOP(
"Circle segments") },
3456 { 0x1CC40,
I18N_NOOP(
"Fill characters") },
3460 { 0x1CC86,
I18N_NOOP(
"Terminal graphic characters") },
3461 { 0x1CC90,
I18N_NOOP(
"Lines with tick marks") },
3465 { 0x1CCBA,
I18N_NOOP(
"Chess symbols") },
3467 { 0x1CCD6,
I18N_NOOP(
"Outlined uppercase Latin alphabet") },
3468 { 0x1CCF0,
I18N_NOOP(
"Outlined digits") },
3469 { 0x1CCFA,
I18N_NOOP(
"Terminal graphic characters") },
3470 { 0x1CD00,
I18N_NOOP(
"Block mosaic terminal graphic characters") },
3472 { 0x1CE00,
I18N_NOOP(
"Terminal graphic characters") },
3474 { 0x1CE0F,
I18N_NOOP(
"Lines with tick marks") },
3475 { 0x1CE16,
I18N_NOOP(
"Box drawing characters") },
3476 { 0x1CE1A,
I18N_NOOP(
"Large type pieces") },
3477 { 0x1CE51,
I18N_NOOP(
"Separated mosaic terminal graphic characters") },
3478 { 0x1CE90,
I18N_NOOP(
"Block elements") },
3479 { 0x1CEB0,
I18N_NOOP(
"Smalltalk symbols") },
3480 { 0x1CEBA,
I18N_NOOP(
"Terminal graphic characters") },
3483 constexpr TDEUnicodeData::Subcategory MiscellaneousSymbolsSupplement[] = {
3484 { 0x1CEC0,
I18N_NOOP(
"Astronomical symbols for asteroids") },
3485 { 0x1CEE0,
I18N_NOOP(
"Symbols for geomantic figures") },
3486 { 0x1CEF0,
I18N_NOOP(
"Miscellaneous symbol") },
3489 constexpr TDEUnicodeData::Subcategory ZnamennyMusicalNotation[] = {
3490 { 0x1CF00,
I18N_NOOP(
"Combining red marks") },
3491 { 0x1CF30,
I18N_NOOP(
"Combining black marks") },
3492 { 0x1CF42,
I18N_NOOP(
"Modifying marks for priznaki") },
3493 { 0x1CF50,
I18N_NOOP(
"Znamenny neumes") },
3496 constexpr TDEUnicodeData::Subcategory ByzantineMusicalSymbols[] = {
3497 { 0x1D000,
I18N_NOOP(
"Prosodies (Prosodics)") },
3499 { 0x1D015,
I18N_NOOP(
"Melodimata (Melodics)") },
3500 { 0x1D046,
I18N_NOOP(
"Fonitika (Vocals)") },
3501 { 0x1D057,
I18N_NOOP(
"Afona or Ypostaseis (Mutes or Hypostases)") },
3502 { 0x1D07F,
I18N_NOOP(
"Argies (Retards)") },
3503 { 0x1D08A,
I18N_NOOP(
"Leimmata or Siopes (Leimmas or Silencers)") },
3504 { 0x1D08F,
I18N_NOOP(
"Synagmata or Gorgotites (Synagmas or Quickeners)") },
3505 { 0x1D09A,
I18N_NOOP(
"Agogika (Conduits)") },
3506 { 0x1D0A2,
I18N_NOOP(
"Ichimata and Martyrika (Ichimas and Evidentials)") },
3507 { 0x1D0B6,
I18N_NOOP(
"Fthores (Destroyers)") },
3508 { 0x1D0CB,
I18N_NOOP(
"Alloioseis (Differentiators)") },
3509 { 0x1D0DA,
I18N_NOOP(
"Rythmika (Rhythmics)") },
3510 { 0x1D0E6,
I18N_NOOP(
"Grammata (Letters)") },
3514 constexpr TDEUnicodeData::Subcategory MusicalSymbols[] = {
3517 { 0x1D10D,
I18N_NOOP(
"Figure repetitions") },
3518 { 0x1D110,
I18N_NOOP(
"Holds and pauses") },
3519 { 0x1D114,
I18N_NOOP(
"Staff brackets") },
3524 { 0x1D12A,
I18N_NOOP(
"Pitch modifiers") },
3525 { 0x1D134,
I18N_NOOP(
"Time signatures") },
3532 { 0x1D16D,
I18N_NOOP(
"Augmentation dot") },
3534 { 0x1D173,
I18N_NOOP(
"Beams and slurs") },
3539 { 0x1D1AA,
I18N_NOOP(
"Instrumentation") },
3541 { 0x1D1B1,
I18N_NOOP(
"Miscellaneous symbols") },
3542 { 0x1D1B6,
I18N_NOOP(
"Mensural notes") },
3543 { 0x1D1C1,
I18N_NOOP(
"Mensural rests") },
3544 { 0x1D1C7,
I18N_NOOP(
"Mensural prolations") },
3545 { 0x1D1CF,
I18N_NOOP(
"Miscellaneous symbol") },
3550 { 0x1D1DF,
I18N_NOOP(
"Ornamentation") },
3553 { 0x1D1E9,
I18N_NOOP(
"Accidentals for quarter tones") },
3556 constexpr TDEUnicodeData::Subcategory AncientGreekMusicalNotation[] = {
3557 { 0x1D200,
I18N_NOOP(
"Ancient Greek vocalic notation") },
3558 { 0x1D21D,
I18N_NOOP(
"Ancient Greek instrumental notation") },
3559 { 0x1D242,
I18N_NOOP(
"Further Greek musical notation symbols") },
3562 constexpr TDEUnicodeData::Subcategory KaktovikNumerals[] = {
3566 constexpr TDEUnicodeData::Subcategory MayanNumerals[] = {
3567 { 0x1D2E0,
I18N_NOOP(
"Mayan numerals") },
3570 constexpr TDEUnicodeData::Subcategory TaiXuanJingSymbols[] = {
3576 constexpr TDEUnicodeData::Subcategory CountingRodNumerals[] = {
3577 { 0x1D360,
I18N_NOOP(
"Counting rod units") },
3578 { 0x1D372,
I18N_NOOP(
"Ideographic tally marks") },
3579 { 0x1D377,
I18N_NOOP(
"Western tally marks") },
3582 constexpr TDEUnicodeData::Subcategory MathematicalAlphanumericSymbols[] = {
3584 { 0x1D434,
I18N_NOOP(
"Italic symbols") },
3585 { 0x1D468,
I18N_NOOP(
"Bold italic symbols") },
3586 { 0x1D49C,
I18N_NOOP(
"Script symbols") },
3587 { 0x1D4D0,
I18N_NOOP(
"Bold script symbols") },
3588 { 0x1D504,
I18N_NOOP(
"Fraktur symbols") },
3589 { 0x1D538,
I18N_NOOP(
"Double-struck symbols") },
3590 { 0x1D56C,
I18N_NOOP(
"Bold Fraktur symbols") },
3591 { 0x1D5A0,
I18N_NOOP(
"Sans-serif symbols") },
3592 { 0x1D5D4,
I18N_NOOP(
"Sans-serif bold symbols") },
3593 { 0x1D608,
I18N_NOOP(
"Sans-serif italic symbols") },
3594 { 0x1D63C,
I18N_NOOP(
"Sans-serif bold italic symbols") },
3595 { 0x1D670,
I18N_NOOP(
"Monospace symbols") },
3596 { 0x1D6A4,
I18N_NOOP(
"Dotless symbols") },
3597 { 0x1D6A8,
I18N_NOOP(
"Bold Greek symbols") },
3598 { 0x1D6DB,
I18N_NOOP(
"Additional bold Greek symbols") },
3599 { 0x1D6E2,
I18N_NOOP(
"Italic Greek symbols") },
3600 { 0x1D715,
I18N_NOOP(
"Additional italic Greek symbols") },
3601 { 0x1D71C,
I18N_NOOP(
"Bold italic Greek symbols") },
3602 { 0x1D74F,
I18N_NOOP(
"Additional bold italic Greek symbols") },
3603 { 0x1D756,
I18N_NOOP(
"Sans-serif bold Greek symbols") },
3604 { 0x1D789,
I18N_NOOP(
"Additional sans-serif bold Greek symbols") },
3605 { 0x1D790,
I18N_NOOP(
"Sans-serif bold italic Greek symbols") },
3606 { 0x1D7C3,
I18N_NOOP(
"Additional sans-serif bold italic Greek symbols") },
3607 { 0x1D7CA,
I18N_NOOP(
"Additional bold Greek symbols") },
3609 { 0x1D7D8,
I18N_NOOP(
"Double-struck digits") },
3610 { 0x1D7E2,
I18N_NOOP(
"Sans-serif digits") },
3611 { 0x1D7EC,
I18N_NOOP(
"Sans-serif bold digits") },
3612 { 0x1D7F6,
I18N_NOOP(
"Monospace digits") },
3615 constexpr TDEUnicodeData::Subcategory SuttonSignWriting[] = {
3616 { 0x1D800,
I18N_NOOP(
"Hand shapes with index finger") },
3617 { 0x1D80E,
I18N_NOOP(
"Hand shapes with index and middle fingers") },
3618 { 0x1D81E,
I18N_NOOP(
"Hand shapes with index and middle fingers and thumb") },
3619 { 0x1D844,
I18N_NOOP(
"Hand shapes with four fingers") },
3620 { 0x1D84C,
I18N_NOOP(
"Hand shapes with five fingers") },
3621 { 0x1D886,
I18N_NOOP(
"Hand shapes with little finger") },
3622 { 0x1D8A4,
I18N_NOOP(
"Hand shapes with ring finger") },
3623 { 0x1D8BA,
I18N_NOOP(
"Hand shapes with middle finger") },
3624 { 0x1D8CD,
I18N_NOOP(
"Hand shapes with index finger and thumb") },
3625 { 0x1D8F5,
I18N_NOOP(
"Hand shapes with thumb") },
3626 { 0x1D905,
I18N_NOOP(
"Contact movement indicators") },
3627 { 0x1D916,
I18N_NOOP(
"Finger movement indicators") },
3628 { 0x1D92A,
I18N_NOOP(
"Movement indicators") },
3629 { 0x1D9F5,
I18N_NOOP(
"Dynamics indicators") },
3632 { 0x1DA7F,
I18N_NOOP(
"Location bases") },
3634 { 0x1DA9B,
I18N_NOOP(
"Fill modifiers") },
3635 { 0x1DAA1,
I18N_NOOP(
"Rotation modifiers") },
3638 constexpr TDEUnicodeData::Subcategory LatinExtendedG[] = {
3639 { 0x1DF00,
I18N_NOOP(
"Extended IPA for disordered speech") },
3640 { 0x1DF08,
I18N_NOOP(
"IPA extensions") },
3643 { 0x1DF12,
I18N_NOOP(
"Letters with palatal hooks") },
3644 { 0x1DF19,
I18N_NOOP(
"Letters with retroflex hooks") },
3645 { 0x1DF1E,
I18N_NOOP(
"IPA extension") },
3646 { 0x1DF25,
I18N_NOOP(
"Letters for Malayalam transliteration") },
3649 constexpr TDEUnicodeData::Subcategory GlagoliticSupplement[] = {
3650 { 0x1E000,
I18N_NOOP(
"Combining letters") },
3653 constexpr TDEUnicodeData::Subcategory CyrillicExtendedD[] = {
3654 { 0x1E030,
I18N_NOOP(
"Superscript modifier letters") },
3655 { 0x1E051,
I18N_NOOP(
"Subscript modifier letters") },
3656 { 0x1E06B,
I18N_NOOP(
"Superscript modifier letters") },
3657 { 0x1E08F,
I18N_NOOP(
"Diacritical mark") },
3660 constexpr TDEUnicodeData::Subcategory NyiakengPuachueHmong[] = {
3661 { 0x1E100,
I18N_NOOP(
"Consonant onsets") },
3664 { 0x1E137,
I18N_NOOP(
"Determinatives") },
3665 { 0x1E13C,
I18N_NOOP(
"Repetition mark") },
3666 { 0x1E13D,
I18N_NOOP(
"Syllable lengthener") },
3671 constexpr TDEUnicodeData::Subcategory Toto[] = {
3672 { 0x1E290,
I18N_NOOP(
"Basic consonants") },
3677 constexpr TDEUnicodeData::Subcategory Wancho[] = {
3681 { 0x1E2FF,
I18N_NOOP(
"Currency symbol") },
3684 constexpr TDEUnicodeData::Subcategory NagMundari[] = {
3686 { 0x1E4EB,
I18N_NOOP(
"Various signs") },
3690 constexpr TDEUnicodeData::Subcategory OlOnal[] = {
3692 { 0x1E5EE,
I18N_NOOP(
"Various signs") },
3694 { 0x1E5FF,
I18N_NOOP(
"Abbreviation sign") },
3697 constexpr TDEUnicodeData::Subcategory TaiYo[] = {
3699 { 0x1E6E0,
I18N_NOOP(
"Vowel letters and rhyme signs") },
3704 constexpr TDEUnicodeData::Subcategory EthiopicExtendedB[] = {
3705 { 0x1E7E0,
I18N_NOOP(
"Syllables for Gurage") },
3708 constexpr TDEUnicodeData::Subcategory MendeKikakui[] = {
3709 { 0x1E800,
I18N_NOOP(
"Syllables in k-") },
3710 { 0x1E808,
I18N_NOOP(
"Syllables in w-") },
3711 { 0x1E811,
I18N_NOOP(
"Syllables in wv-") },
3712 { 0x1E814,
I18N_NOOP(
"Syllables in m-") },
3713 { 0x1E81B,
I18N_NOOP(
"Syllables in b-") },
3715 { 0x1E82E,
I18N_NOOP(
"Syllables in s-") },
3716 { 0x1E836,
I18N_NOOP(
"Syllables in l-") },
3717 { 0x1E83E,
I18N_NOOP(
"Syllables in d-") },
3718 { 0x1E844,
I18N_NOOP(
"Syllables in t-") },
3719 { 0x1E84B,
I18N_NOOP(
"Syllables in j-") },
3720 { 0x1E853,
I18N_NOOP(
"Syllables in y-") },
3721 { 0x1E85A,
I18N_NOOP(
"Syllables in f-") },
3722 { 0x1E863,
I18N_NOOP(
"Syllables in n-") },
3723 { 0x1E868,
I18N_NOOP(
"Syllables in h-") },
3724 { 0x1E877,
I18N_NOOP(
"Syllables in ngg-") },
3725 { 0x1E883,
I18N_NOOP(
"Syllables in g-") },
3726 { 0x1E889,
I18N_NOOP(
"Syllables in ng-") },
3727 { 0x1E88C,
I18N_NOOP(
"Syllables in p-") },
3728 { 0x1E893,
I18N_NOOP(
"Syllables in mb-") },
3729 { 0x1E89F,
I18N_NOOP(
"Syllables in kp-") },
3730 { 0x1E8A6,
I18N_NOOP(
"Syllables in gb-") },
3731 { 0x1E8AD,
I18N_NOOP(
"Syllable in r-") },
3732 { 0x1E8AE,
I18N_NOOP(
"Syllables in nd-") },
3733 { 0x1E8B5,
I18N_NOOP(
"Syllables in nj-") },
3734 { 0x1E8B9,
I18N_NOOP(
"Syllables in v-") },
3735 { 0x1E8C0,
I18N_NOOP(
"Syllables in ny-") },
3737 { 0x1E8D0,
I18N_NOOP(
"Combining number bases") },
3740 constexpr TDEUnicodeData::Subcategory Adlam[] = {
3741 { 0x1E900,
I18N_NOOP(
"Capital letters") },
3742 { 0x1E91C,
I18N_NOOP(
"Supplementary capital letters") },
3743 { 0x1E922,
I18N_NOOP(
"Small letters") },
3744 { 0x1E93E,
I18N_NOOP(
"Supplementary small letters") },
3745 { 0x1E944,
I18N_NOOP(
"Diacritical marks") },
3746 { 0x1E94B,
I18N_NOOP(
"Modifier letter") },
3751 constexpr TDEUnicodeData::Subcategory IndicSiyaqNumbers[] = {
3752 { 0x1EC71,
I18N_NOOP(
"Primary numbers") },
3756 { 0x1EC95,
I18N_NOOP(
"Ten thousands") },
3759 { 0x1ECA3,
I18N_NOOP(
"Prefixed forms of primary numbers") },
3762 { 0x1ECB0,
I18N_NOOP(
"Currency symbol") },
3763 { 0x1ECB1,
I18N_NOOP(
"Alternate forms") },
3766 constexpr TDEUnicodeData::Subcategory OttomanSiyaqNumbers[] = {
3767 { 0x1ED01,
I18N_NOOP(
"Primary numbers") },
3771 { 0x1ED25,
I18N_NOOP(
"Ten thousands") },
3773 { 0x1ED2F,
I18N_NOOP(
"Alternate forms") },
3777 constexpr TDEUnicodeData::Subcategory ArabicMathematicalAlphabeticSymbols[] = {
3778 { 0x1EE00,
I18N_NOOP(
"Isolated symbols") },
3779 { 0x1EE21,
I18N_NOOP(
"Initial symbols") },
3780 { 0x1EE42,
I18N_NOOP(
"Tailed symbols") },
3781 { 0x1EE61,
I18N_NOOP(
"Stretched symbols") },
3782 { 0x1EE80,
I18N_NOOP(
"Looped symbols") },
3783 { 0x1EEA1,
I18N_NOOP(
"Double-struck symbols") },
3784 { 0x1EEF0,
I18N_NOOP(
"Stretching operators") },
3787 constexpr TDEUnicodeData::Subcategory MahjongTiles[] = {
3788 { 0x1F000,
I18N_NOOP(
"Prevailing wind tiles") },
3790 { 0x1F007,
I18N_NOOP(
"Character suit tiles") },
3791 { 0x1F010,
I18N_NOOP(
"Bamboo suit tiles") },
3792 { 0x1F019,
I18N_NOOP(
"Circle suit tiles") },
3795 { 0x1F02A,
I18N_NOOP(
"Miscellaneous tiles") },
3798 constexpr TDEUnicodeData::Subcategory DominoTiles[] = {
3799 { 0x1F030,
I18N_NOOP(
"Horizontal tiles") },
3807 { 0x1F062,
I18N_NOOP(
"Vertical tiles") },
3817 constexpr TDEUnicodeData::Subcategory PlayingCards[] = {
3819 { 0x1F0A1,
I18N_NOOP(
"Spades or swords") },
3820 { 0x1F0B1,
I18N_NOOP(
"Hearts or cups") },
3822 { 0x1F0C1,
I18N_NOOP(
"Diamonds or pentacles") },
3824 { 0x1F0D1,
I18N_NOOP(
"Clubs or wands") },
3829 constexpr TDEUnicodeData::Subcategory EnclosedAlphanumericSupplement[] = {
3830 { 0x1F100,
I18N_NOOP(
"Number with full stop") },
3831 { 0x1F101,
I18N_NOOP(
"Numbers with comma") },
3832 { 0x1F10B,
I18N_NOOP(
"Circled sans-serif digits") },
3833 { 0x1F10D,
I18N_NOOP(
"Creative Commons symbols") },
3834 { 0x1F110,
I18N_NOOP(
"Parenthesized Latin letters") },
3835 { 0x1F12A,
I18N_NOOP(
"Latin letter with tortoise shell brackets") },
3836 { 0x1F12B,
I18N_NOOP(
"Circled italic Latin letters") },
3837 { 0x1F12D,
I18N_NOOP(
"Circled Latin letters or letter sequences") },
3838 { 0x1F130,
I18N_NOOP(
"Squared Latin letters") },
3839 { 0x1F150,
I18N_NOOP(
"White on black circled Latin letters") },
3840 { 0x1F16A,
I18N_NOOP(
"Raised squared Latin sequences") },
3841 { 0x1F16D,
I18N_NOOP(
"Creative Commons symbols") },
3842 { 0x1F170,
I18N_NOOP(
"White on black squared Latin letters") },
3843 { 0x1F190,
I18N_NOOP(
"Squared Latin letter sequences") },
3844 { 0x1F19B,
I18N_NOOP(
"Squared Latin letter sequences from ARIB STD B62") },
3845 { 0x1F1AD,
I18N_NOOP(
"Miscellaneous symbol") },
3846 { 0x1F1E6,
I18N_NOOP(
"Regional indicator symbols") },
3849 constexpr TDEUnicodeData::Subcategory EnclosedIdeographicSupplement[] = {
3850 { 0x1F200,
I18N_NOOP(
"Squared hiragana from ARIB STD B24") },
3851 { 0x1F201,
I18N_NOOP(
"Squared katakana") },
3852 { 0x1F210,
I18N_NOOP(
"Squared ideographs and kana from ARIB STD B24") },
3853 { 0x1F232,
I18N_NOOP(
"Squared ideographs") },
3854 { 0x1F240,
I18N_NOOP(
"Ideographs with tortoise shell brackets from ARIB STD B24") },
3855 { 0x1F250,
I18N_NOOP(
"Circled ideographs") },
3856 { 0x1F260,
I18N_NOOP(
"Symbols for Chinese folk religion") },
3859 constexpr TDEUnicodeData::Subcategory MiscellaneousSymbolsandPictographs[] = {
3860 { 0x1F300,
I18N_NOOP(
"Weather, landscape, and sky symbols") },
3861 { 0x1F30D,
I18N_NOOP(
"Globe symbols") },
3862 { 0x1F311,
I18N_NOOP(
"Moon, sun, and star symbols") },
3863 { 0x1F321,
I18N_NOOP(
"Weather symbols") },
3865 { 0x1F330,
I18N_NOOP(
"Plant symbols") },
3866 { 0x1F345,
I18N_NOOP(
"Fruit and vegetable symbols") },
3868 { 0x1F375,
I18N_NOOP(
"Beverage symbols") },
3869 { 0x1F37D,
I18N_NOOP(
"Accommodation symbol") },
3870 { 0x1F37E,
I18N_NOOP(
"Beverage and food symbols") },
3871 { 0x1F380,
I18N_NOOP(
"Celebration symbols") },
3872 { 0x1F398,
I18N_NOOP(
"Musical symbols") },
3873 { 0x1F39E,
I18N_NOOP(
"Entertainment symbols") },
3875 { 0x1F3B5,
I18N_NOOP(
"Musical symbols") },
3876 { 0x1F3BD,
I18N_NOOP(
"Sport symbols") },
3877 { 0x1F3D4,
I18N_NOOP(
"Building and map symbols") },
3880 { 0x1F3F7,
I18N_NOOP(
"Miscellaneous symbol") },
3881 { 0x1F3F8,
I18N_NOOP(
"Sport symbols") },
3882 { 0x1F3FA,
I18N_NOOP(
"Miscellaneous symbol") },
3883 { 0x1F3FB,
I18N_NOOP(
"Emoji modifiers") },
3884 { 0x1F400,
I18N_NOOP(
"Animal symbols") },
3886 { 0x1F43E,
I18N_NOOP(
"Animal symbols") },
3887 { 0x1F440,
I18N_NOOP(
"Facial parts symbols") },
3889 { 0x1F451,
I18N_NOOP(
"Clothing and accessories") },
3890 { 0x1F464,
I18N_NOOP(
"Portrait and role symbols") },
3891 { 0x1F478,
I18N_NOOP(
"Fairy tale symbols") },
3893 { 0x1F484,
I18N_NOOP(
"Personal care symbols") },
3894 { 0x1F489,
I18N_NOOP(
"Medical symbols") },
3895 { 0x1F48B,
I18N_NOOP(
"Romance symbols") },
3896 { 0x1F493,
I18N_NOOP(
"Heart symbols") },
3897 { 0x1F4A0,
I18N_NOOP(
"Comic style symbols") },
3898 { 0x1F4AE,
I18N_NOOP(
"Japanese school grade symbols") },
3899 { 0x1F4B0,
I18N_NOOP(
"Money symbols") },
3900 { 0x1F4BA,
I18N_NOOP(
"Office symbols") },
3901 { 0x1F4DD,
I18N_NOOP(
"Communication symbols") },
3902 { 0x1F4F7,
I18N_NOOP(
"Audio and video symbols") },
3903 { 0x1F4FF,
I18N_NOOP(
"Religious symbol") },
3904 { 0x1F500,
I18N_NOOP(
"User interface symbols") },
3905 { 0x1F519,
I18N_NOOP(
"Words with arrows") },
3906 { 0x1F51E,
I18N_NOOP(
"Enclosed alphanumeric symbols") },
3907 { 0x1F520,
I18N_NOOP(
"User interface input status symbols") },
3909 { 0x1F52F,
I18N_NOOP(
"Miscellaneous symbols") },
3910 { 0x1F532,
I18N_NOOP(
"Geometric shapes") },
3911 { 0x1F53A,
I18N_NOOP(
"User interface symbols") },
3912 { 0x1F53E,
I18N_NOOP(
"Shadowed geometric shapes") },
3913 { 0x1F540,
I18N_NOOP(
"Religious symbols") },
3914 { 0x1F54F,
I18N_NOOP(
"Miscellaneous symbol") },
3915 { 0x1F550,
I18N_NOOP(
"Clock face symbols") },
3916 { 0x1F568,
I18N_NOOP(
"Communication symbols") },
3917 { 0x1F56D,
I18N_NOOP(
"Miscellaneous symbols") },
3918 { 0x1F577,
I18N_NOOP(
"Animal symbols") },
3921 { 0x1F57B,
I18N_NOOP(
"Communication symbols") },
3924 { 0x1F5A5,
I18N_NOOP(
"Computer symbols") },
3925 { 0x1F5B9,
I18N_NOOP(
"Office symbols") },
3926 { 0x1F5BF,
I18N_NOOP(
"User interface symbols") },
3927 { 0x1F5DE,
I18N_NOOP(
"Miscellaneous symbols") },
3928 { 0x1F5E1,
I18N_NOOP(
"Rating symbols") },
3929 { 0x1F5E4,
I18N_NOOP(
"Sound symbols") },
3930 { 0x1F5E8,
I18N_NOOP(
"Bubble symbols") },
3931 { 0x1F5F3,
I18N_NOOP(
"Ballot symbols") },
3933 { 0x1F5FB,
I18N_NOOP(
"Cultural symbols") },
3936 constexpr TDEUnicodeData::Subcategory Emoticons[] = {
3940 { 0x1F645,
I18N_NOOP(
"Gesture symbols") },
3943 constexpr TDEUnicodeData::Subcategory OrnamentalDingbats[] = {
3945 { 0x1F668,
I18N_NOOP(
"Quilt square ornaments") },
3946 { 0x1F66C,
I18N_NOOP(
"Rocket ornaments") },
3947 { 0x1F670,
I18N_NOOP(
"Ampersand and ligature et ornaments") },
3948 { 0x1F676,
I18N_NOOP(
"Punctuation mark ornaments") },
3949 { 0x1F67E,
I18N_NOOP(
"Miscellaneous symbols") },
3952 constexpr TDEUnicodeData::Subcategory TransportandMapSymbols[] = {
3954 { 0x1F6A5,
I18N_NOOP(
"Traffic signs") },
3955 { 0x1F6A9,
I18N_NOOP(
"Signage and other symbols") },
3956 { 0x1F6CB,
I18N_NOOP(
"Accommodation symbols") },
3957 { 0x1F6D0,
I18N_NOOP(
"Signage and other symbols") },
3959 { 0x1F6DC,
I18N_NOOP(
"Miscellaneous symbols") },
3963 constexpr TDEUnicodeData::Subcategory AlchemicalSymbols[] = {
3964 { 0x1F700,
I18N_NOOP(
"Symbols for Aristotelian elements") },
3965 { 0x1F705,
I18N_NOOP(
"Symbols for important solvents") },
3966 { 0x1F70D,
I18N_NOOP(
"Symbols for sulfur and mercury") },
3967 { 0x1F714,
I18N_NOOP(
"Symbols for salt, vitriol, and nitre") },
3968 { 0x1F71A,
I18N_NOOP(
"Symbols for gold and silver") },
3969 { 0x1F71C,
I18N_NOOP(
"Symbols for iron, iron ore and derivatives") },
3970 { 0x1F720,
I18N_NOOP(
"Symbols for copper, copper ore and derivatives") },
3971 { 0x1F729,
I18N_NOOP(
"Symbols for tin and lead ore") },
3972 { 0x1F72B,
I18N_NOOP(
"Symbols for antimony, antimony ore and derivatives") },
3973 { 0x1F736,
I18N_NOOP(
"Symbols for other substances") },
3980 { 0x1F775,
I18N_NOOP(
"Eclipse symbols") },
3981 { 0x1F777,
I18N_NOOP(
"Historical symbols for asteroids") },
3982 { 0x1F77B,
I18N_NOOP(
"Symbols for dwarf planets") },
3985 constexpr TDEUnicodeData::Subcategory GeometricShapesExtended[] = {
3986 { 0x1F780,
I18N_NOOP(
"Isosceles right triangles") },
3987 { 0x1F784,
I18N_NOOP(
"Black circles") },
3988 { 0x1F785,
I18N_NOOP(
"White circles") },
3989 { 0x1F78A,
I18N_NOOP(
"White circles containing another black circle") },
3990 { 0x1F78B,
I18N_NOOP(
"Target symbol") },
3991 { 0x1F78C,
I18N_NOOP(
"Black squares") },
3992 { 0x1F78E,
I18N_NOOP(
"White squares") },
3993 { 0x1F794,
I18N_NOOP(
"White squares containing another black square") },
3994 { 0x1F796,
I18N_NOOP(
"Target symbol") },
3995 { 0x1F797,
I18N_NOOP(
"Black diamonds") },
3996 { 0x1F79A,
I18N_NOOP(
"White diamonds containing another black diamond") },
3997 { 0x1F79C,
I18N_NOOP(
"Target symbol") },
3998 { 0x1F79D,
I18N_NOOP(
"Black lozenges") },
3999 { 0x1F7A0,
I18N_NOOP(
"White lozenge containing another black lozenge") },
4000 { 0x1F7A1,
I18N_NOOP(
"Greek crosses") },
4002 { 0x1F7AF,
I18N_NOOP(
"Five spoked asterisks") },
4003 { 0x1F7B5,
I18N_NOOP(
"Six spoked asterisks") },
4004 { 0x1F7BB,
I18N_NOOP(
"Eight spoked asterisks") },
4005 { 0x1F7C0,
I18N_NOOP(
"Three pointed stars") },
4006 { 0x1F7C4,
I18N_NOOP(
"Four pointed stars") },
4007 { 0x1F7C9,
I18N_NOOP(
"Five pointed stars") },
4008 { 0x1F7CB,
I18N_NOOP(
"Six pointed stars") },
4009 { 0x1F7CE,
I18N_NOOP(
"Eight pointed stars") },
4010 { 0x1F7D2,
I18N_NOOP(
"Twelve pointed stars") },
4011 { 0x1F7D5,
I18N_NOOP(
"Go stone markers") },
4012 { 0x1F7D9,
I18N_NOOP(
"Nine pointed star") },
4013 { 0x1F7E0,
I18N_NOOP(
"Colored circles") },
4014 { 0x1F7E5,
I18N_NOOP(
"Colored squares") },
4015 { 0x1F7F0,
I18N_NOOP(
"Miscellaneous symbol") },
4018 constexpr TDEUnicodeData::Subcategory SupplementalArrowsC[] = {
4019 { 0x1F800,
I18N_NOOP(
"Arrows with triangle arrowheads") },
4020 { 0x1F810,
I18N_NOOP(
"Arrows with equilateral triangle arrowheads") },
4021 { 0x1F820,
I18N_NOOP(
"Triangle headed arrows with different shaft weights") },
4022 { 0x1F834,
I18N_NOOP(
"Finger-post arrows") },
4023 { 0x1F838,
I18N_NOOP(
"Squared arrows") },
4024 { 0x1F83C,
I18N_NOOP(
"Compressed arrows") },
4026 { 0x1F850,
I18N_NOOP(
"Sans-serif arrows") },
4027 { 0x1F860,
I18N_NOOP(
"Wide-headed barb arrows") },
4029 { 0x1F898,
I18N_NOOP(
"Notched arrows") },
4030 { 0x1F89C,
I18N_NOOP(
"Heavy arrow shafts") },
4031 { 0x1F8A0,
I18N_NOOP(
"Shaded white arrows") },
4032 { 0x1F8AC,
I18N_NOOP(
"White arrow shafts") },
4033 { 0x1F8B0,
I18N_NOOP(
"Arrows for legacy computing") },
4034 { 0x1F8C0,
I18N_NOOP(
"Arrows for Egyptology") },
4035 { 0x1F8D0,
I18N_NOOP(
"Reaction arrows for chemistry") },
4036 { 0x1F8D6,
I18N_NOOP(
"Unsuccessful reaction arrows for chemistry") },
4037 { 0x1F8D8,
I18N_NOOP(
"Isolobal arrow") },
4040 constexpr TDEUnicodeData::Subcategory SupplementalSymbolsandPictographs[] = {
4041 { 0x1F900,
I18N_NOOP(
"Typicon symbols") },
4043 { 0x1F90D,
I18N_NOOP(
"Colored heart symbols") },
4045 { 0x1F910,
I18N_NOOP(
"Emoticon faces") },
4047 { 0x1F920,
I18N_NOOP(
"Emoticon faces") },
4048 { 0x1F930,
I18N_NOOP(
"Portrait and role symbols") },
4049 { 0x1F938,
I18N_NOOP(
"Sport symbols") },
4050 { 0x1F940,
I18N_NOOP(
"Miscellaneous symbols") },
4054 { 0x1F980,
I18N_NOOP(
"Animal symbols") },
4055 { 0x1F9AE,
I18N_NOOP(
"Accessibility symbols") },
4056 { 0x1F9B0,
I18N_NOOP(
"Emoji components") },
4059 { 0x1F9BA,
I18N_NOOP(
"Accessibility symbols") },
4061 { 0x1F9CC,
I18N_NOOP(
"Fantasy being") },
4062 { 0x1F9CD,
I18N_NOOP(
"Portrait and accessibility symbols") },
4063 { 0x1F9D0,
I18N_NOOP(
"Portrait and role symbols") },
4064 { 0x1F9D9,
I18N_NOOP(
"Fantasy beings") },
4065 { 0x1F9E0,
I18N_NOOP(
"Miscellaneous symbols") },
4070 constexpr TDEUnicodeData::Subcategory ChessSymbols[] = {
4071 { 0x1FA00,
I18N_NOOP(
"Neutral chess symbols") },
4072 { 0x1FA06,
I18N_NOOP(
"Chess symbols rotated 45 degrees") },
4073 { 0x1FA09,
I18N_NOOP(
"Chess symbols rotated 90 degrees") },
4074 { 0x1FA1B,
I18N_NOOP(
"Chess symbols rotated 135 degrees") },
4075 { 0x1FA1E,
I18N_NOOP(
"Chess symbols rotated 180 degrees (turned)") },
4076 { 0x1FA30,
I18N_NOOP(
"Chess symbols rotated 225 degrees") },
4077 { 0x1FA33,
I18N_NOOP(
"Chess symbols rotated 270 degrees") },
4078 { 0x1FA45,
I18N_NOOP(
"Chess symbols rotated 315 degrees") },
4079 { 0x1FA48,
I18N_NOOP(
"Chess equihoppers") },
4080 { 0x1FA4B,
I18N_NOOP(
"Chess equihoppers rotated 90 degrees") },
4081 { 0x1FA4E,
I18N_NOOP(
"Hybrid chess symbols") },
4082 { 0x1FA54,
I18N_NOOP(
"Shatranj chess symbols") },
4083 { 0x1FA60,
I18N_NOOP(
"Xiangqi symbols") },
4086 constexpr TDEUnicodeData::Subcategory SymbolsandPictographsExtendedA[] = {
4088 { 0x1FA75,
I18N_NOOP(
"Colored heart symbols") },
4089 { 0x1FA78,
I18N_NOOP(
"Medical symbols") },
4090 { 0x1FA80,
I18N_NOOP(
"Toys and sport symbols") },
4091 { 0x1FA87,
I18N_NOOP(
"Musical instruments") },
4092 { 0x1FA8E,
I18N_NOOP(
"Miscellaneous objects") },
4093 { 0x1FAAF,
I18N_NOOP(
"Religious symbol") },
4094 { 0x1FAB0,
I18N_NOOP(
"Animals and nature") },
4097 { 0x1FAC6,
I18N_NOOP(
"Miscellaneous") },
4098 { 0x1FAC8,
I18N_NOOP(
"Animals and nature") },
4099 { 0x1FAD0,
I18N_NOOP(
"Food and drink") },
4100 { 0x1FADF,
I18N_NOOP(
"Miscellaneous") },
4108 constexpr TDEUnicodeData::Subcategory SymbolsforLegacyComputing[] = {
4109 { 0x1FB00,
I18N_NOOP(
"Block mosaic terminal graphic characters") },
4110 { 0x1FB3C,
I18N_NOOP(
"Smooth mosaic terminal graphic characters") },
4111 { 0x1FB70,
I18N_NOOP(
"Block elements") },
4112 { 0x1FB81,
I18N_NOOP(
"Window title bar") },
4113 { 0x1FB82,
I18N_NOOP(
"Block elements") },
4114 { 0x1FB8C,
I18N_NOOP(
"Rectangular shade characters") },
4115 { 0x1FB95,
I18N_NOOP(
"Fill characters") },
4116 { 0x1FB98,
I18N_NOOP(
"Diagonal fill characters") },
4117 { 0x1FB9A,
I18N_NOOP(
"Smooth mosaic terminal graphic characters") },
4118 { 0x1FB9C,
I18N_NOOP(
"Triangular shade characters") },
4119 { 0x1FBA0,
I18N_NOOP(
"Character cell diagonals") },
4120 { 0x1FBAF,
I18N_NOOP(
"Light solid line with stroke") },
4121 { 0x1FBB0,
I18N_NOOP(
"Terminal graphic characters") },
4123 { 0x1FBB9,
I18N_NOOP(
"Terminal graphic characters") },
4124 { 0x1FBBD,
I18N_NOOP(
"Negative terminal graphic characters") },
4125 { 0x1FBC0,
I18N_NOOP(
"Terminal graphic characters") },
4126 { 0x1FBCB,
I18N_NOOP(
"Terminal graphic characters") },
4127 { 0x1FBCE,
I18N_NOOP(
"Block elements") },
4128 { 0x1FBD0,
I18N_NOOP(
"Character cell diagonals") },
4129 { 0x1FBE0,
I18N_NOOP(
"Geometric shapes") },
4130 { 0x1FBF0,
I18N_NOOP(
"Segmented digits") },
4131 { 0x1FBFA,
I18N_NOOP(
"Terminal graphic character") },
4134 constexpr TDEUnicodeData::Subcategory Unassigned[] = {
4135 { 0x1FFFE,
I18N_NOOP(
"Noncharacters") },
4138 constexpr TDEUnicodeData::Subcategory CJKUnifiedIdeographsExtensionB[] = {
4141 constexpr TDEUnicodeData::Subcategory CJKUnifiedIdeographsExtensionC[] = {
4144 constexpr TDEUnicodeData::Subcategory CJKUnifiedIdeographsExtensionD[] = {
4147 constexpr TDEUnicodeData::Subcategory CJKUnifiedIdeographsExtensionE[] = {
4150 constexpr TDEUnicodeData::Subcategory CJKUnifiedIdeographsExtensionF[] = {
4153 constexpr TDEUnicodeData::Subcategory CJKUnifiedIdeographsExtensionI[] = {
4156 constexpr TDEUnicodeData::Subcategory CJKCompatibilityIdeographsSupplement[] = {
4157 { 0x2F800,
I18N_NOOP(
"Duplicate characters from CNS 11643-1992") },
4160 constexpr TDEUnicodeData::Subcategory Unassigned2[] = {
4161 { 0x2FFFE,
I18N_NOOP(
"Noncharacters") },
4164 constexpr TDEUnicodeData::Subcategory CJKUnifiedIdeographsExtensionG[] = {
4167 constexpr TDEUnicodeData::Subcategory CJKUnifiedIdeographsExtensionH[] = {
4170 constexpr TDEUnicodeData::Subcategory CJKUnifiedIdeographsExtensionJ[] = {
4173 constexpr TDEUnicodeData::Subcategory Unassigned3[] = {
4174 { 0x3FFFE,
I18N_NOOP(
"Noncharacters") },
4177 constexpr TDEUnicodeData::Subcategory Unassigned4[] = {
4178 { 0x4FFFE,
I18N_NOOP(
"Noncharacters") },
4181 constexpr TDEUnicodeData::Subcategory Unassigned5[] = {
4182 { 0x5FFFE,
I18N_NOOP(
"Noncharacters") },
4185 constexpr TDEUnicodeData::Subcategory Unassigned6[] = {
4186 { 0x6FFFE,
I18N_NOOP(
"Noncharacters") },
4189 constexpr TDEUnicodeData::Subcategory Unassigned7[] = {
4190 { 0x7FFFE,
I18N_NOOP(
"Noncharacters") },
4193 constexpr TDEUnicodeData::Subcategory Unassigned8[] = {
4194 { 0x8FFFE,
I18N_NOOP(
"Noncharacters") },
4197 constexpr TDEUnicodeData::Subcategory Unassigned9[] = {
4198 { 0x9FFFE,
I18N_NOOP(
"Noncharacters") },
4201 constexpr TDEUnicodeData::Subcategory Unassigned10[] = {
4202 { 0xAFFFE,
I18N_NOOP(
"Noncharacters") },
4205 constexpr TDEUnicodeData::Subcategory Unassigned11[] = {
4206 { 0xBFFFE,
I18N_NOOP(
"Noncharacters") },
4209 constexpr TDEUnicodeData::Subcategory Unassigned12[] = {
4210 { 0xCFFFE,
I18N_NOOP(
"Noncharacters") },
4213 constexpr TDEUnicodeData::Subcategory Unassigned13[] = {
4214 { 0xDFFFE,
I18N_NOOP(
"Noncharacters") },
4217 constexpr TDEUnicodeData::Subcategory Tags[] = {
4218 { 0xE0001,
I18N_NOOP(
"Tag identifiers") },
4219 { 0xE0020,
I18N_NOOP(
"Tag components") },
4220 { 0xE007F,
I18N_NOOP(
"Stateful tag terminator") },
4223 constexpr TDEUnicodeData::Subcategory VariationSelectorsSupplement[] = {
4224 { 0xE0100,
I18N_NOOP(
"Ideographic-specific variation selectors") },
4227 constexpr TDEUnicodeData::Subcategory Unassigned14[] = {
4228 { 0xEFFFE,
I18N_NOOP(
"Noncharacters") },
4231 constexpr TDEUnicodeData::Subcategory SupplementaryPrivateUseAreaA[] = {
4232 { 0xFFFFE,
I18N_NOOP(
"Noncharacters") },
4235 constexpr TDEUnicodeData::Subcategory SupplementaryPrivateUseAreaB[] = {
4236 { 0x10FFFE,
I18N_NOOP(
"Noncharacters") },
4239 constexpr TDEUnicodeData::Category categories[] = {
4240 { 0x0000,
I18N_NOOP(
"Basic Latin"), BasicLatin,
sizeof(BasicLatin) /
sizeof(*BasicLatin) },
4241 { 0x0080,
I18N_NOOP(
"Latin-1 Supplement"), Latin1Supplement,
sizeof(Latin1Supplement) /
sizeof(*Latin1Supplement) },
4242 { 0x0100,
I18N_NOOP(
"Latin Extended-A"), LatinExtendedA,
sizeof(LatinExtendedA) /
sizeof(*LatinExtendedA) },
4243 { 0x0180,
I18N_NOOP(
"Latin Extended-B"), LatinExtendedB,
sizeof(LatinExtendedB) /
sizeof(*LatinExtendedB) },
4244 { 0x0250,
I18N_NOOP(
"IPA Extensions"), IPAExtensions,
sizeof(IPAExtensions) /
sizeof(*IPAExtensions) },
4245 { 0x02B0,
I18N_NOOP(
"Spacing Modifier Letters"), SpacingModifierLetters,
sizeof(SpacingModifierLetters) /
sizeof(*SpacingModifierLetters) },
4246 { 0x0300,
I18N_NOOP(
"Combining Diacritical Marks"), CombiningDiacriticalMarks,
sizeof(CombiningDiacriticalMarks) /
sizeof(*CombiningDiacriticalMarks) },
4247 { 0x0370,
I18N_NOOP(
"Greek and Coptic"), GreekandCoptic,
sizeof(GreekandCoptic) /
sizeof(*GreekandCoptic) },
4248 { 0x0400,
I18N_NOOP(
"Cyrillic"), Cyrillic,
sizeof(Cyrillic) /
sizeof(*Cyrillic) },
4249 { 0x0500,
I18N_NOOP(
"Cyrillic Supplement"), CyrillicSupplement,
sizeof(CyrillicSupplement) /
sizeof(*CyrillicSupplement) },
4250 { 0x0530,
I18N_NOOP(
"Armenian"), Armenian,
sizeof(Armenian) /
sizeof(*Armenian) },
4251 { 0x0590,
I18N_NOOP(
"Hebrew"), Hebrew,
sizeof(Hebrew) /
sizeof(*Hebrew) },
4252 { 0x0600,
I18N_NOOP(
"Arabic"), Arabic,
sizeof(Arabic) /
sizeof(*Arabic) },
4253 { 0x0700,
I18N_NOOP(
"Syriac"), Syriac,
sizeof(Syriac) /
sizeof(*Syriac) },
4254 { 0x0750,
I18N_NOOP(
"Arabic Supplement"), ArabicSupplement,
sizeof(ArabicSupplement) /
sizeof(*ArabicSupplement) },
4255 { 0x0780,
I18N_NOOP(
"Thaana"), Thaana,
sizeof(Thaana) /
sizeof(*Thaana) },
4256 { 0x07C0,
I18N_NOOP(
"NKo"), NKo,
sizeof(NKo) /
sizeof(*NKo) },
4257 { 0x0800,
I18N_NOOP(
"Samaritan"), Samaritan,
sizeof(Samaritan) /
sizeof(*Samaritan) },
4258 { 0x0840,
I18N_NOOP(
"Mandaic"), Mandaic,
sizeof(Mandaic) /
sizeof(*Mandaic) },
4259 { 0x0860,
I18N_NOOP(
"Syriac Supplement"), SyriacSupplement,
sizeof(SyriacSupplement) /
sizeof(*SyriacSupplement) },
4260 { 0x0870,
I18N_NOOP(
"Arabic Extended-B"), ArabicExtendedB,
sizeof(ArabicExtendedB) /
sizeof(*ArabicExtendedB) },
4261 { 0x08A0,
I18N_NOOP(
"Arabic Extended-A"), ArabicExtendedA,
sizeof(ArabicExtendedA) /
sizeof(*ArabicExtendedA) },
4262 { 0x0900,
I18N_NOOP(
"Devanagari"), Devanagari,
sizeof(Devanagari) /
sizeof(*Devanagari) },
4263 { 0x0980,
I18N_NOOP(
"Bengali"), Bengali,
sizeof(Bengali) /
sizeof(*Bengali) },
4264 { 0x0A00,
I18N_NOOP(
"Gurmukhi"), Gurmukhi,
sizeof(Gurmukhi) /
sizeof(*Gurmukhi) },
4265 { 0x0A80,
I18N_NOOP(
"Gujarati"), Gujarati,
sizeof(Gujarati) /
sizeof(*Gujarati) },
4266 { 0x0B00,
I18N_NOOP(
"Oriya"), Oriya,
sizeof(Oriya) /
sizeof(*Oriya) },
4267 { 0x0B80,
I18N_NOOP(
"Tamil"), Tamil,
sizeof(Tamil) /
sizeof(*Tamil) },
4268 { 0x0C00,
I18N_NOOP(
"Telugu"), Telugu,
sizeof(Telugu) /
sizeof(*Telugu) },
4269 { 0x0C80,
I18N_NOOP(
"Kannada"), Kannada,
sizeof(Kannada) /
sizeof(*Kannada) },
4270 { 0x0D00,
I18N_NOOP(
"Malayalam"), Malayalam,
sizeof(Malayalam) /
sizeof(*Malayalam) },
4271 { 0x0D80,
I18N_NOOP(
"Sinhala"), Sinhala,
sizeof(Sinhala) /
sizeof(*Sinhala) },
4272 { 0x0E00,
I18N_NOOP(
"Thai"), Thai,
sizeof(Thai) /
sizeof(*Thai) },
4273 { 0x0E80,
I18N_NOOP(
"Lao"), Lao,
sizeof(Lao) /
sizeof(*Lao) },
4274 { 0x0F00,
I18N_NOOP(
"Tibetan"), Tibetan,
sizeof(Tibetan) /
sizeof(*Tibetan) },
4275 { 0x1000,
I18N_NOOP(
"Myanmar"), Myanmar,
sizeof(Myanmar) /
sizeof(*Myanmar) },
4276 { 0x10A0,
I18N_NOOP(
"Georgian"), Georgian,
sizeof(Georgian) /
sizeof(*Georgian) },
4277 { 0x1100,
I18N_NOOP(
"Hangul Jamo"), HangulJamo,
sizeof(HangulJamo) /
sizeof(*HangulJamo) },
4278 { 0x1200,
I18N_NOOP(
"Ethiopic"), Ethiopic,
sizeof(Ethiopic) /
sizeof(*Ethiopic) },
4279 { 0x1380,
I18N_NOOP(
"Ethiopic Supplement"), EthiopicSupplement,
sizeof(EthiopicSupplement) /
sizeof(*EthiopicSupplement) },
4280 { 0x13A0,
I18N_NOOP(
"Cherokee"), Cherokee,
sizeof(Cherokee) /
sizeof(*Cherokee) },
4281 { 0x1400,
I18N_NOOP(
"Unified Canadian Aboriginal Syllabics"), UnifiedCanadianAboriginalSyllabics,
sizeof(UnifiedCanadianAboriginalSyllabics) /
sizeof(*UnifiedCanadianAboriginalSyllabics) },
4282 { 0x1680,
I18N_NOOP(
"Ogham"), Ogham,
sizeof(Ogham) /
sizeof(*Ogham) },
4283 { 0x16A0,
I18N_NOOP(
"Runic"), Runic,
sizeof(Runic) /
sizeof(*Runic) },
4284 { 0x1700,
I18N_NOOP(
"Tagalog"), Tagalog,
sizeof(Tagalog) /
sizeof(*Tagalog) },
4285 { 0x1720,
I18N_NOOP(
"Hanunoo"), Hanunoo,
sizeof(Hanunoo) /
sizeof(*Hanunoo) },
4286 { 0x1740,
I18N_NOOP(
"Buhid"), Buhid,
sizeof(Buhid) /
sizeof(*Buhid) },
4287 { 0x1760,
I18N_NOOP(
"Tagbanwa"), Tagbanwa,
sizeof(Tagbanwa) /
sizeof(*Tagbanwa) },
4288 { 0x1780,
I18N_NOOP(
"Khmer"), Khmer,
sizeof(Khmer) /
sizeof(*Khmer) },
4289 { 0x1800,
I18N_NOOP(
"Mongolian"), Mongolian,
sizeof(Mongolian) /
sizeof(*Mongolian) },
4290 { 0x18B0,
I18N_NOOP(
"Unified Canadian Aboriginal Syllabics Extended"), UnifiedCanadianAboriginalSyllabicsExtended,
sizeof(UnifiedCanadianAboriginalSyllabicsExtended) /
sizeof(*UnifiedCanadianAboriginalSyllabicsExtended) },
4291 { 0x1900,
I18N_NOOP(
"Limbu"), Limbu,
sizeof(Limbu) /
sizeof(*Limbu) },
4292 { 0x1950,
I18N_NOOP(
"Tai Le"), TaiLe,
sizeof(TaiLe) /
sizeof(*TaiLe) },
4293 { 0x1980,
I18N_NOOP(
"New Tai Lue"), NewTaiLue,
sizeof(NewTaiLue) /
sizeof(*NewTaiLue) },
4294 { 0x19E0,
I18N_NOOP(
"Khmer Symbols"), KhmerSymbols,
sizeof(KhmerSymbols) /
sizeof(*KhmerSymbols) },
4295 { 0x1A00,
I18N_NOOP(
"Buginese"), Buginese,
sizeof(Buginese) /
sizeof(*Buginese) },
4296 { 0x1A20,
I18N_NOOP(
"Tai Tham"), TaiTham,
sizeof(TaiTham) /
sizeof(*TaiTham) },
4297 { 0x1AB0,
I18N_NOOP(
"Combining Diacritical Marks Extended"), CombiningDiacriticalMarksExtended,
sizeof(CombiningDiacriticalMarksExtended) /
sizeof(*CombiningDiacriticalMarksExtended) },
4298 { 0x1B00,
I18N_NOOP(
"Balinese"), Balinese,
sizeof(Balinese) /
sizeof(*Balinese) },
4299 { 0x1B80,
I18N_NOOP(
"Sundanese"), Sundanese,
sizeof(Sundanese) /
sizeof(*Sundanese) },
4300 { 0x1BC0,
I18N_NOOP(
"Batak"), Batak,
sizeof(Batak) /
sizeof(*Batak) },
4301 { 0x1C00,
I18N_NOOP(
"Lepcha"), Lepcha,
sizeof(Lepcha) /
sizeof(*Lepcha) },
4302 { 0x1C50,
I18N_NOOP(
"Ol Chiki"), OlChiki,
sizeof(OlChiki) /
sizeof(*OlChiki) },
4303 { 0x1C80,
I18N_NOOP(
"Cyrillic Extended-C"), CyrillicExtendedC,
sizeof(CyrillicExtendedC) /
sizeof(*CyrillicExtendedC) },
4304 { 0x1C90,
I18N_NOOP(
"Georgian Extended"), GeorgianExtended,
sizeof(GeorgianExtended) /
sizeof(*GeorgianExtended) },
4305 { 0x1CC0,
I18N_NOOP(
"Sundanese Supplement"), SundaneseSupplement,
sizeof(SundaneseSupplement) /
sizeof(*SundaneseSupplement) },
4306 { 0x1CD0,
I18N_NOOP(
"Vedic Extensions"), VedicExtensions,
sizeof(VedicExtensions) /
sizeof(*VedicExtensions) },
4307 { 0x1D00,
I18N_NOOP(
"Phonetic Extensions"), PhoneticExtensions,
sizeof(PhoneticExtensions) /
sizeof(*PhoneticExtensions) },
4308 { 0x1D80,
I18N_NOOP(
"Phonetic Extensions Supplement"), PhoneticExtensionsSupplement,
sizeof(PhoneticExtensionsSupplement) /
sizeof(*PhoneticExtensionsSupplement) },
4309 { 0x1DC0,
I18N_NOOP(
"Combining Diacritical Marks Supplement"), CombiningDiacriticalMarksSupplement,
sizeof(CombiningDiacriticalMarksSupplement) /
sizeof(*CombiningDiacriticalMarksSupplement) },
4310 { 0x1E00,
I18N_NOOP(
"Latin Extended Additional"), LatinExtendedAdditional,
sizeof(LatinExtendedAdditional) /
sizeof(*LatinExtendedAdditional) },
4311 { 0x1F00,
I18N_NOOP(
"Greek Extended"), GreekExtended,
sizeof(GreekExtended) /
sizeof(*GreekExtended) },
4312 { 0x2000,
I18N_NOOP(
"General Punctuation"), GeneralPunctuation,
sizeof(GeneralPunctuation) /
sizeof(*GeneralPunctuation) },
4313 { 0x2070,
I18N_NOOP(
"Superscripts and Subscripts"), SuperscriptsandSubscripts,
sizeof(SuperscriptsandSubscripts) /
sizeof(*SuperscriptsandSubscripts) },
4314 { 0x20A0,
I18N_NOOP(
"Currency Symbols"), CurrencySymbols,
sizeof(CurrencySymbols) /
sizeof(*CurrencySymbols) },
4315 { 0x20D0,
I18N_NOOP(
"Combining Diacritical Marks for Symbols"), CombiningDiacriticalMarksforSymbols,
sizeof(CombiningDiacriticalMarksforSymbols) /
sizeof(*CombiningDiacriticalMarksforSymbols) },
4316 { 0x2100,
I18N_NOOP(
"Letterlike Symbols"), LetterlikeSymbols,
sizeof(LetterlikeSymbols) /
sizeof(*LetterlikeSymbols) },
4317 { 0x2150,
I18N_NOOP(
"Number Forms"), NumberForms,
sizeof(NumberForms) /
sizeof(*NumberForms) },
4318 { 0x2190,
I18N_NOOP(
"Arrows"), Arrows,
sizeof(Arrows) /
sizeof(*Arrows) },
4319 { 0x2200,
I18N_NOOP(
"Mathematical Operators"), MathematicalOperators,
sizeof(MathematicalOperators) /
sizeof(*MathematicalOperators) },
4320 { 0x2300,
I18N_NOOP(
"Miscellaneous Technical"), MiscellaneousTechnical,
sizeof(MiscellaneousTechnical) /
sizeof(*MiscellaneousTechnical) },
4321 { 0x2400,
I18N_NOOP(
"Control Pictures"), ControlPictures,
sizeof(ControlPictures) /
sizeof(*ControlPictures) },
4322 { 0x2440,
I18N_NOOP(
"Optical Character Recognition"), OpticalCharacterRecognition,
sizeof(OpticalCharacterRecognition) /
sizeof(*OpticalCharacterRecognition) },
4323 { 0x2460,
I18N_NOOP(
"Enclosed Alphanumerics"), EnclosedAlphanumerics,
sizeof(EnclosedAlphanumerics) /
sizeof(*EnclosedAlphanumerics) },
4324 { 0x2500,
I18N_NOOP(
"Box Drawing"), BoxDrawing,
sizeof(BoxDrawing) /
sizeof(*BoxDrawing) },
4325 { 0x2580,
I18N_NOOP(
"Block Elements"), BlockElements,
sizeof(BlockElements) /
sizeof(*BlockElements) },
4326 { 0x25A0,
I18N_NOOP(
"Geometric Shapes"), GeometricShapes,
sizeof(GeometricShapes) /
sizeof(*GeometricShapes) },
4327 { 0x2600,
I18N_NOOP(
"Miscellaneous Symbols"), MiscellaneousSymbols,
sizeof(MiscellaneousSymbols) /
sizeof(*MiscellaneousSymbols) },
4328 { 0x2700,
I18N_NOOP(
"Dingbats"), Dingbats,
sizeof(Dingbats) /
sizeof(*Dingbats) },
4329 { 0x27C0,
I18N_NOOP(
"Miscellaneous Mathematical Symbols-A"), MiscellaneousMathematicalSymbolsA,
sizeof(MiscellaneousMathematicalSymbolsA) /
sizeof(*MiscellaneousMathematicalSymbolsA) },
4330 { 0x27F0,
I18N_NOOP(
"Supplemental Arrows-A"), SupplementalArrowsA,
sizeof(SupplementalArrowsA) /
sizeof(*SupplementalArrowsA) },
4331 { 0x2800,
I18N_NOOP(
"Braille Patterns"), BraillePatterns,
sizeof(BraillePatterns) /
sizeof(*BraillePatterns) },
4332 { 0x2900,
I18N_NOOP(
"Supplemental Arrows-B"), SupplementalArrowsB,
sizeof(SupplementalArrowsB) /
sizeof(*SupplementalArrowsB) },
4333 { 0x2980,
I18N_NOOP(
"Miscellaneous Mathematical Symbols-B"), MiscellaneousMathematicalSymbolsB,
sizeof(MiscellaneousMathematicalSymbolsB) /
sizeof(*MiscellaneousMathematicalSymbolsB) },
4334 { 0x2A00,
I18N_NOOP(
"Supplemental Mathematical Operators"), SupplementalMathematicalOperators,
sizeof(SupplementalMathematicalOperators) /
sizeof(*SupplementalMathematicalOperators) },
4335 { 0x2B00,
I18N_NOOP(
"Miscellaneous Symbols and Arrows"), MiscellaneousSymbolsandArrows,
sizeof(MiscellaneousSymbolsandArrows) /
sizeof(*MiscellaneousSymbolsandArrows) },
4336 { 0x2C00,
I18N_NOOP(
"Glagolitic"), Glagolitic,
sizeof(Glagolitic) /
sizeof(*Glagolitic) },
4337 { 0x2C60,
I18N_NOOP(
"Latin Extended-C"), LatinExtendedC,
sizeof(LatinExtendedC) /
sizeof(*LatinExtendedC) },
4338 { 0x2C80,
I18N_NOOP(
"Coptic"), Coptic,
sizeof(Coptic) /
sizeof(*Coptic) },
4339 { 0x2D00,
I18N_NOOP(
"Georgian Supplement"), GeorgianSupplement,
sizeof(GeorgianSupplement) /
sizeof(*GeorgianSupplement) },
4340 { 0x2D30,
I18N_NOOP(
"Tifinagh"), Tifinagh,
sizeof(Tifinagh) /
sizeof(*Tifinagh) },
4341 { 0x2D80,
I18N_NOOP(
"Ethiopic Extended"), EthiopicExtended,
sizeof(EthiopicExtended) /
sizeof(*EthiopicExtended) },
4342 { 0x2DE0,
I18N_NOOP(
"Cyrillic Extended-A"), CyrillicExtendedA,
sizeof(CyrillicExtendedA) /
sizeof(*CyrillicExtendedA) },
4343 { 0x2E00,
I18N_NOOP(
"Supplemental Punctuation"), SupplementalPunctuation,
sizeof(SupplementalPunctuation) /
sizeof(*SupplementalPunctuation) },
4344 { 0x2E80,
I18N_NOOP(
"CJK Radicals Supplement"), CJKRadicalsSupplement,
sizeof(CJKRadicalsSupplement) /
sizeof(*CJKRadicalsSupplement) },
4345 { 0x2F00,
I18N_NOOP(
"Kangxi Radicals"), KangxiRadicals,
sizeof(KangxiRadicals) /
sizeof(*KangxiRadicals) },
4346 { 0x2FF0,
I18N_NOOP(
"Ideographic Description Characters"), IdeographicDescriptionCharacters,
sizeof(IdeographicDescriptionCharacters) /
sizeof(*IdeographicDescriptionCharacters) },
4347 { 0x3000,
I18N_NOOP(
"CJK Symbols and Punctuation"), CJKSymbolsandPunctuation,
sizeof(CJKSymbolsandPunctuation) /
sizeof(*CJKSymbolsandPunctuation) },
4348 { 0x3040,
I18N_NOOP(
"Hiragana"), Hiragana,
sizeof(Hiragana) /
sizeof(*Hiragana) },
4349 { 0x30A0,
I18N_NOOP(
"Katakana"), Katakana,
sizeof(Katakana) /
sizeof(*Katakana) },
4350 { 0x3100,
I18N_NOOP(
"Bopomofo"), Bopomofo,
sizeof(Bopomofo) /
sizeof(*Bopomofo) },
4351 { 0x3130,
I18N_NOOP(
"Hangul Compatibility Jamo"), HangulCompatibilityJamo,
sizeof(HangulCompatibilityJamo) /
sizeof(*HangulCompatibilityJamo) },
4352 { 0x3190,
I18N_NOOP(
"Kanbun"), Kanbun,
sizeof(Kanbun) /
sizeof(*Kanbun) },
4353 { 0x31A0,
I18N_NOOP(
"Bopomofo Extended"), BopomofoExtended,
sizeof(BopomofoExtended) /
sizeof(*BopomofoExtended) },
4354 { 0x31C0,
I18N_NOOP(
"CJK Strokes"), CJKStrokes,
sizeof(CJKStrokes) /
sizeof(*CJKStrokes) },
4355 { 0x31F0,
I18N_NOOP(
"Katakana Phonetic Extensions"), KatakanaPhoneticExtensions,
sizeof(KatakanaPhoneticExtensions) /
sizeof(*KatakanaPhoneticExtensions) },
4356 { 0x3200,
I18N_NOOP(
"Enclosed CJK Letters and Months"), EnclosedCJKLettersandMonths,
sizeof(EnclosedCJKLettersandMonths) /
sizeof(*EnclosedCJKLettersandMonths) },
4357 { 0x3300,
I18N_NOOP(
"CJK Compatibility"), CJKCompatibility,
sizeof(CJKCompatibility) /
sizeof(*CJKCompatibility) },
4358 { 0x3400,
I18N_NOOP(
"CJK Unified Ideographs Extension A"), CJKUnifiedIdeographsExtensionA,
sizeof(CJKUnifiedIdeographsExtensionA) /
sizeof(*CJKUnifiedIdeographsExtensionA) },
4359 { 0x4DC0,
I18N_NOOP(
"Yijing Hexagram Symbols"), YijingHexagramSymbols,
sizeof(YijingHexagramSymbols) /
sizeof(*YijingHexagramSymbols) },
4360 { 0x4E00,
I18N_NOOP(
"CJK Unified Ideographs"), CJKUnifiedIdeographs,
sizeof(CJKUnifiedIdeographs) /
sizeof(*CJKUnifiedIdeographs) },
4361 { 0xA000,
I18N_NOOP(
"Yi Syllables"), YiSyllables,
sizeof(YiSyllables) /
sizeof(*YiSyllables) },
4362 { 0xA490,
I18N_NOOP(
"Yi Radicals"), YiRadicals,
sizeof(YiRadicals) /
sizeof(*YiRadicals) },
4363 { 0xA4D0,
I18N_NOOP(
"Lisu"), Lisu,
sizeof(Lisu) /
sizeof(*Lisu) },
4364 { 0xA500,
I18N_NOOP(
"Vai"), Vai,
sizeof(Vai) /
sizeof(*Vai) },
4365 { 0xA640,
I18N_NOOP(
"Cyrillic Extended-B"), CyrillicExtendedB,
sizeof(CyrillicExtendedB) /
sizeof(*CyrillicExtendedB) },
4366 { 0xA6A0,
I18N_NOOP(
"Bamum"), Bamum,
sizeof(Bamum) /
sizeof(*Bamum) },
4367 { 0xA700,
I18N_NOOP(
"Modifier Tone Letters"), ModifierToneLetters,
sizeof(ModifierToneLetters) /
sizeof(*ModifierToneLetters) },
4368 { 0xA720,
I18N_NOOP(
"Latin Extended-D"), LatinExtendedD,
sizeof(LatinExtendedD) /
sizeof(*LatinExtendedD) },
4369 { 0xA800,
I18N_NOOP(
"Syloti Nagri"), SylotiNagri,
sizeof(SylotiNagri) /
sizeof(*SylotiNagri) },
4370 { 0xA830,
I18N_NOOP(
"Common Indic Number Forms"), CommonIndicNumberForms,
sizeof(CommonIndicNumberForms) /
sizeof(*CommonIndicNumberForms) },
4371 { 0xA840,
I18N_NOOP(
"Phags-pa"), Phagspa,
sizeof(Phagspa) /
sizeof(*Phagspa) },
4372 { 0xA880,
I18N_NOOP(
"Saurashtra"), Saurashtra,
sizeof(Saurashtra) /
sizeof(*Saurashtra) },
4373 { 0xA8E0,
I18N_NOOP(
"Devanagari Extended"), DevanagariExtended,
sizeof(DevanagariExtended) /
sizeof(*DevanagariExtended) },
4374 { 0xA900,
I18N_NOOP(
"Kayah Li"), KayahLi,
sizeof(KayahLi) /
sizeof(*KayahLi) },
4375 { 0xA930,
I18N_NOOP(
"Rejang"), Rejang,
sizeof(Rejang) /
sizeof(*Rejang) },
4376 { 0xA960,
I18N_NOOP(
"Hangul Jamo Extended-A"), HangulJamoExtendedA,
sizeof(HangulJamoExtendedA) /
sizeof(*HangulJamoExtendedA) },
4377 { 0xA980,
I18N_NOOP(
"Javanese"), Javanese,
sizeof(Javanese) /
sizeof(*Javanese) },
4378 { 0xA9E0,
I18N_NOOP(
"Myanmar Extended-B"), MyanmarExtendedB,
sizeof(MyanmarExtendedB) /
sizeof(*MyanmarExtendedB) },
4379 { 0xAA00,
I18N_NOOP(
"Cham"), Cham,
sizeof(Cham) /
sizeof(*Cham) },
4380 { 0xAA60,
I18N_NOOP(
"Myanmar Extended-A"), MyanmarExtendedA,
sizeof(MyanmarExtendedA) /
sizeof(*MyanmarExtendedA) },
4381 { 0xAA80,
I18N_NOOP(
"Tai Viet"), TaiViet,
sizeof(TaiViet) /
sizeof(*TaiViet) },
4382 { 0xAAE0,
I18N_NOOP(
"Meetei Mayek Extensions"), MeeteiMayekExtensions,
sizeof(MeeteiMayekExtensions) /
sizeof(*MeeteiMayekExtensions) },
4383 { 0xAB00,
I18N_NOOP(
"Ethiopic Extended-A"), EthiopicExtendedA,
sizeof(EthiopicExtendedA) /
sizeof(*EthiopicExtendedA) },
4384 { 0xAB30,
I18N_NOOP(
"Latin Extended-E"), LatinExtendedE,
sizeof(LatinExtendedE) /
sizeof(*LatinExtendedE) },
4385 { 0xAB70,
I18N_NOOP(
"Cherokee Supplement"), CherokeeSupplement,
sizeof(CherokeeSupplement) /
sizeof(*CherokeeSupplement) },
4386 { 0xABC0,
I18N_NOOP(
"Meetei Mayek"), MeeteiMayek,
sizeof(MeeteiMayek) /
sizeof(*MeeteiMayek) },
4387 { 0xAC00,
I18N_NOOP(
"Hangul Syllables"), HangulSyllables,
sizeof(HangulSyllables) /
sizeof(*HangulSyllables) },
4388 { 0xD7B0,
I18N_NOOP(
"Hangul Jamo Extended-B"), HangulJamoExtendedB,
sizeof(HangulJamoExtendedB) /
sizeof(*HangulJamoExtendedB) },
4389 { 0xD800,
I18N_NOOP(
"High Surrogates"), HighSurrogates,
sizeof(HighSurrogates) /
sizeof(*HighSurrogates) },
4390 { 0xDB80,
I18N_NOOP(
"High Private Use Surrogates"), HighPrivateUseSurrogates,
sizeof(HighPrivateUseSurrogates) /
sizeof(*HighPrivateUseSurrogates) },
4391 { 0xDC00,
I18N_NOOP(
"Low Surrogates"), LowSurrogates,
sizeof(LowSurrogates) /
sizeof(*LowSurrogates) },
4392 { 0xE000,
I18N_NOOP(
"Private Use Area"), PrivateUseArea,
sizeof(PrivateUseArea) /
sizeof(*PrivateUseArea) },
4393 { 0xF900,
I18N_NOOP(
"CJK Compatibility Ideographs"), CJKCompatibilityIdeographs,
sizeof(CJKCompatibilityIdeographs) /
sizeof(*CJKCompatibilityIdeographs) },
4394 { 0xFB00,
I18N_NOOP(
"Alphabetic Presentation Forms"), AlphabeticPresentationForms,
sizeof(AlphabeticPresentationForms) /
sizeof(*AlphabeticPresentationForms) },
4395 { 0xFB50,
I18N_NOOP(
"Arabic Presentation Forms-A"), ArabicPresentationFormsA,
sizeof(ArabicPresentationFormsA) /
sizeof(*ArabicPresentationFormsA) },
4396 { 0xFE00,
I18N_NOOP(
"Variation Selectors"), VariationSelectors,
sizeof(VariationSelectors) /
sizeof(*VariationSelectors) },
4397 { 0xFE10,
I18N_NOOP(
"Vertical Forms"), VerticalForms,
sizeof(VerticalForms) /
sizeof(*VerticalForms) },
4398 { 0xFE20,
I18N_NOOP(
"Combining Half Marks"), CombiningHalfMarks,
sizeof(CombiningHalfMarks) /
sizeof(*CombiningHalfMarks) },
4399 { 0xFE30,
I18N_NOOP(
"CJK Compatibility Forms"), CJKCompatibilityForms,
sizeof(CJKCompatibilityForms) /
sizeof(*CJKCompatibilityForms) },
4400 { 0xFE50,
I18N_NOOP(
"Small Form Variants"), SmallFormVariants,
sizeof(SmallFormVariants) /
sizeof(*SmallFormVariants) },
4401 { 0xFE70,
I18N_NOOP(
"Arabic Presentation Forms-B"), ArabicPresentationFormsB,
sizeof(ArabicPresentationFormsB) /
sizeof(*ArabicPresentationFormsB) },
4402 { 0xFF00,
I18N_NOOP(
"Halfwidth and Fullwidth Forms"), HalfwidthandFullwidthForms,
sizeof(HalfwidthandFullwidthForms) /
sizeof(*HalfwidthandFullwidthForms) },
4403 { 0xFFF0,
I18N_NOOP(
"Specials"), Specials,
sizeof(Specials) /
sizeof(*Specials) },
4404 { 0x10000,
I18N_NOOP(
"Linear B Syllabary"), LinearBSyllabary,
sizeof(LinearBSyllabary) /
sizeof(*LinearBSyllabary) },
4405 { 0x10080,
I18N_NOOP(
"Linear B Ideograms"), LinearBIdeograms,
sizeof(LinearBIdeograms) /
sizeof(*LinearBIdeograms) },
4406 { 0x10100,
I18N_NOOP(
"Aegean Numbers"), AegeanNumbers,
sizeof(AegeanNumbers) /
sizeof(*AegeanNumbers) },
4407 { 0x10140,
I18N_NOOP(
"Ancient Greek Numbers"), AncientGreekNumbers,
sizeof(AncientGreekNumbers) /
sizeof(*AncientGreekNumbers) },
4408 { 0x10190,
I18N_NOOP(
"Ancient Symbols"), AncientSymbols,
sizeof(AncientSymbols) /
sizeof(*AncientSymbols) },
4409 { 0x101D0,
I18N_NOOP(
"Phaistos Disc"), PhaistosDisc,
sizeof(PhaistosDisc) /
sizeof(*PhaistosDisc) },
4410 { 0x10280,
I18N_NOOP(
"Lycian"), Lycian,
sizeof(Lycian) /
sizeof(*Lycian) },
4411 { 0x102A0,
I18N_NOOP(
"Carian"), Carian,
sizeof(Carian) /
sizeof(*Carian) },
4412 { 0x102E0,
I18N_NOOP(
"Coptic Epact Numbers"), CopticEpactNumbers,
sizeof(CopticEpactNumbers) /
sizeof(*CopticEpactNumbers) },
4413 { 0x10300,
I18N_NOOP(
"Old Italic"), OldItalic,
sizeof(OldItalic) /
sizeof(*OldItalic) },
4414 { 0x10330,
I18N_NOOP(
"Gothic"), Gothic,
sizeof(Gothic) /
sizeof(*Gothic) },
4415 { 0x10350,
I18N_NOOP(
"Old Permic"), OldPermic,
sizeof(OldPermic) /
sizeof(*OldPermic) },
4416 { 0x10380,
I18N_NOOP(
"Ugaritic"), Ugaritic,
sizeof(Ugaritic) /
sizeof(*Ugaritic) },
4417 { 0x103A0,
I18N_NOOP(
"Old Persian"), OldPersian,
sizeof(OldPersian) /
sizeof(*OldPersian) },
4418 { 0x10400,
I18N_NOOP(
"Deseret"), Deseret,
sizeof(Deseret) /
sizeof(*Deseret) },
4419 { 0x10450,
I18N_NOOP(
"Shavian"), Shavian,
sizeof(Shavian) /
sizeof(*Shavian) },
4420 { 0x10480,
I18N_NOOP(
"Osmanya"), Osmanya,
sizeof(Osmanya) /
sizeof(*Osmanya) },
4421 { 0x104B0,
I18N_NOOP(
"Osage"), Osage,
sizeof(Osage) /
sizeof(*Osage) },
4422 { 0x10500,
I18N_NOOP(
"Elbasan"), Elbasan,
sizeof(Elbasan) /
sizeof(*Elbasan) },
4423 { 0x10530,
I18N_NOOP(
"Caucasian Albanian"), CaucasianAlbanian,
sizeof(CaucasianAlbanian) /
sizeof(*CaucasianAlbanian) },
4424 { 0x10570,
I18N_NOOP(
"Vithkuqi"), Vithkuqi,
sizeof(Vithkuqi) /
sizeof(*Vithkuqi) },
4425 { 0x105C0,
I18N_NOOP(
"Todhri"), Todhri,
sizeof(Todhri) /
sizeof(*Todhri) },
4426 { 0x10600,
I18N_NOOP(
"Linear A"), LinearA,
sizeof(LinearA) /
sizeof(*LinearA) },
4427 { 0x10780,
I18N_NOOP(
"Latin Extended-F"), LatinExtendedF,
sizeof(LatinExtendedF) /
sizeof(*LatinExtendedF) },
4428 { 0x10800,
I18N_NOOP(
"Cypriot Syllabary"), CypriotSyllabary,
sizeof(CypriotSyllabary) /
sizeof(*CypriotSyllabary) },
4429 { 0x10840,
I18N_NOOP(
"Imperial Aramaic"), ImperialAramaic,
sizeof(ImperialAramaic) /
sizeof(*ImperialAramaic) },
4430 { 0x10860,
I18N_NOOP(
"Palmyrene"), Palmyrene,
sizeof(Palmyrene) /
sizeof(*Palmyrene) },
4431 { 0x10880,
I18N_NOOP(
"Nabataean"), Nabataean,
sizeof(Nabataean) /
sizeof(*Nabataean) },
4432 { 0x108E0,
I18N_NOOP(
"Hatran"), Hatran,
sizeof(Hatran) /
sizeof(*Hatran) },
4433 { 0x10900,
I18N_NOOP(
"Phoenician"), Phoenician,
sizeof(Phoenician) /
sizeof(*Phoenician) },
4434 { 0x10920,
I18N_NOOP(
"Lydian"), Lydian,
sizeof(Lydian) /
sizeof(*Lydian) },
4435 { 0x10940,
I18N_NOOP(
"Sidetic"), Sidetic,
sizeof(Sidetic) /
sizeof(*Sidetic) },
4436 { 0x10980,
I18N_NOOP(
"Meroitic Hieroglyphs"), MeroiticHieroglyphs,
sizeof(MeroiticHieroglyphs) /
sizeof(*MeroiticHieroglyphs) },
4437 { 0x109A0,
I18N_NOOP(
"Meroitic Cursive"), MeroiticCursive,
sizeof(MeroiticCursive) /
sizeof(*MeroiticCursive) },
4438 { 0x10A00,
I18N_NOOP(
"Kharoshthi"), Kharoshthi,
sizeof(Kharoshthi) /
sizeof(*Kharoshthi) },
4439 { 0x10A60,
I18N_NOOP(
"Old South Arabian"), OldSouthArabian,
sizeof(OldSouthArabian) /
sizeof(*OldSouthArabian) },
4440 { 0x10A80,
I18N_NOOP(
"Old North Arabian"), OldNorthArabian,
sizeof(OldNorthArabian) /
sizeof(*OldNorthArabian) },
4441 { 0x10AC0,
I18N_NOOP(
"Manichaean"), Manichaean,
sizeof(Manichaean) /
sizeof(*Manichaean) },
4442 { 0x10B00,
I18N_NOOP(
"Avestan"), Avestan,
sizeof(Avestan) /
sizeof(*Avestan) },
4443 { 0x10B40,
I18N_NOOP(
"Inscriptional Parthian"), InscriptionalParthian,
sizeof(InscriptionalParthian) /
sizeof(*InscriptionalParthian) },
4444 { 0x10B60,
I18N_NOOP(
"Inscriptional Pahlavi"), InscriptionalPahlavi,
sizeof(InscriptionalPahlavi) /
sizeof(*InscriptionalPahlavi) },
4445 { 0x10B80,
I18N_NOOP(
"Psalter Pahlavi"), PsalterPahlavi,
sizeof(PsalterPahlavi) /
sizeof(*PsalterPahlavi) },
4446 { 0x10C00,
I18N_NOOP(
"Old Turkic"), OldTurkic,
sizeof(OldTurkic) /
sizeof(*OldTurkic) },
4447 { 0x10C80,
I18N_NOOP(
"Old Hungarian"), OldHungarian,
sizeof(OldHungarian) /
sizeof(*OldHungarian) },
4448 { 0x10D00,
I18N_NOOP(
"Hanifi Rohingya"), HanifiRohingya,
sizeof(HanifiRohingya) /
sizeof(*HanifiRohingya) },
4449 { 0x10D40,
I18N_NOOP(
"Garay"), Garay,
sizeof(Garay) /
sizeof(*Garay) },
4450 { 0x10E60,
I18N_NOOP(
"Rumi Numeral Symbols"), RumiNumeralSymbols,
sizeof(RumiNumeralSymbols) /
sizeof(*RumiNumeralSymbols) },
4451 { 0x10E80,
I18N_NOOP(
"Yezidi"), Yezidi,
sizeof(Yezidi) /
sizeof(*Yezidi) },
4452 { 0x10EC0,
I18N_NOOP(
"Arabic Extended-C"), ArabicExtendedC,
sizeof(ArabicExtendedC) /
sizeof(*ArabicExtendedC) },
4453 { 0x10F00,
I18N_NOOP(
"Old Sogdian"), OldSogdian,
sizeof(OldSogdian) /
sizeof(*OldSogdian) },
4454 { 0x10F30,
I18N_NOOP(
"Sogdian"), Sogdian,
sizeof(Sogdian) /
sizeof(*Sogdian) },
4455 { 0x10F70,
I18N_NOOP(
"Old Uyghur"), OldUyghur,
sizeof(OldUyghur) /
sizeof(*OldUyghur) },
4456 { 0x10FB0,
I18N_NOOP(
"Chorasmian"), Chorasmian,
sizeof(Chorasmian) /
sizeof(*Chorasmian) },
4457 { 0x10FE0,
I18N_NOOP(
"Elymaic"), Elymaic,
sizeof(Elymaic) /
sizeof(*Elymaic) },
4458 { 0x11000,
I18N_NOOP(
"Brahmi"), Brahmi,
sizeof(Brahmi) /
sizeof(*Brahmi) },
4459 { 0x11080,
I18N_NOOP(
"Kaithi"), Kaithi,
sizeof(Kaithi) /
sizeof(*Kaithi) },
4460 { 0x110D0,
I18N_NOOP(
"Sora Sompeng"), SoraSompeng,
sizeof(SoraSompeng) /
sizeof(*SoraSompeng) },
4461 { 0x11100,
I18N_NOOP(
"Chakma"), Chakma,
sizeof(Chakma) /
sizeof(*Chakma) },
4462 { 0x11150,
I18N_NOOP(
"Mahajani"), Mahajani,
sizeof(Mahajani) /
sizeof(*Mahajani) },
4463 { 0x11180,
I18N_NOOP(
"Sharada"), Sharada,
sizeof(Sharada) /
sizeof(*Sharada) },
4464 { 0x111E0,
I18N_NOOP(
"Sinhala Archaic Numbers"), SinhalaArchaicNumbers,
sizeof(SinhalaArchaicNumbers) /
sizeof(*SinhalaArchaicNumbers) },
4465 { 0x11200,
I18N_NOOP(
"Khojki"), Khojki,
sizeof(Khojki) /
sizeof(*Khojki) },
4466 { 0x11280,
I18N_NOOP(
"Multani"), Multani,
sizeof(Multani) /
sizeof(*Multani) },
4467 { 0x112B0,
I18N_NOOP(
"Khudawadi"), Khudawadi,
sizeof(Khudawadi) /
sizeof(*Khudawadi) },
4468 { 0x11300,
I18N_NOOP(
"Grantha"), Grantha,
sizeof(Grantha) /
sizeof(*Grantha) },
4469 { 0x11380,
I18N_NOOP(
"Tulu-Tigalari"), TuluTigalari,
sizeof(TuluTigalari) /
sizeof(*TuluTigalari) },
4470 { 0x11400,
I18N_NOOP(
"Newa"), Newa,
sizeof(Newa) /
sizeof(*Newa) },
4471 { 0x11480,
I18N_NOOP(
"Tirhuta"), Tirhuta,
sizeof(Tirhuta) /
sizeof(*Tirhuta) },
4472 { 0x11580,
I18N_NOOP(
"Siddham"), Siddham,
sizeof(Siddham) /
sizeof(*Siddham) },
4473 { 0x11600,
I18N_NOOP(
"Modi"), Modi,
sizeof(Modi) /
sizeof(*Modi) },
4474 { 0x11660,
I18N_NOOP(
"Mongolian Supplement"), MongolianSupplement,
sizeof(MongolianSupplement) /
sizeof(*MongolianSupplement) },
4475 { 0x11680,
I18N_NOOP(
"Takri"), Takri,
sizeof(Takri) /
sizeof(*Takri) },
4476 { 0x116D0,
I18N_NOOP(
"Myanmar Extended-C"), MyanmarExtendedC,
sizeof(MyanmarExtendedC) /
sizeof(*MyanmarExtendedC) },
4477 { 0x11700,
I18N_NOOP(
"Ahom"), Ahom,
sizeof(Ahom) /
sizeof(*Ahom) },
4478 { 0x11800,
I18N_NOOP(
"Dogra"), Dogra,
sizeof(Dogra) /
sizeof(*Dogra) },
4479 { 0x118A0,
I18N_NOOP(
"Warang Citi"), WarangCiti,
sizeof(WarangCiti) /
sizeof(*WarangCiti) },
4480 { 0x11900,
I18N_NOOP(
"Dives Akuru"), DivesAkuru,
sizeof(DivesAkuru) /
sizeof(*DivesAkuru) },
4481 { 0x119A0,
I18N_NOOP(
"Nandinagari"), Nandinagari,
sizeof(Nandinagari) /
sizeof(*Nandinagari) },
4482 { 0x11A00,
I18N_NOOP(
"Zanabazar Square"), ZanabazarSquare,
sizeof(ZanabazarSquare) /
sizeof(*ZanabazarSquare) },
4483 { 0x11A50,
I18N_NOOP(
"Soyombo"), Soyombo,
sizeof(Soyombo) /
sizeof(*Soyombo) },
4484 { 0x11AB0,
I18N_NOOP(
"Unified Canadian Aboriginal Syllabics Extended-A"), UnifiedCanadianAboriginalSyllabicsExtendedA,
sizeof(UnifiedCanadianAboriginalSyllabicsExtendedA) /
sizeof(*UnifiedCanadianAboriginalSyllabicsExtendedA) },
4485 { 0x11AC0,
I18N_NOOP(
"Pau Cin Hau"), PauCinHau,
sizeof(PauCinHau) /
sizeof(*PauCinHau) },
4486 { 0x11B00,
I18N_NOOP(
"Devanagari Extended-A"), DevanagariExtendedA,
sizeof(DevanagariExtendedA) /
sizeof(*DevanagariExtendedA) },
4487 { 0x11B60,
I18N_NOOP(
"Sharada Supplement"), SharadaSupplement,
sizeof(SharadaSupplement) /
sizeof(*SharadaSupplement) },
4488 { 0x11BC0,
I18N_NOOP(
"Sunuwar"), Sunuwar,
sizeof(Sunuwar) /
sizeof(*Sunuwar) },
4489 { 0x11C00,
I18N_NOOP(
"Bhaiksuki"), Bhaiksuki,
sizeof(Bhaiksuki) /
sizeof(*Bhaiksuki) },
4490 { 0x11C70,
I18N_NOOP(
"Marchen"), Marchen,
sizeof(Marchen) /
sizeof(*Marchen) },
4491 { 0x11D00,
I18N_NOOP(
"Masaram Gondi"), MasaramGondi,
sizeof(MasaramGondi) /
sizeof(*MasaramGondi) },
4492 { 0x11D60,
I18N_NOOP(
"Gunjala Gondi"), GunjalaGondi,
sizeof(GunjalaGondi) /
sizeof(*GunjalaGondi) },
4493 { 0x11DB0,
I18N_NOOP(
"Tolong Siki"), TolongSiki,
sizeof(TolongSiki) /
sizeof(*TolongSiki) },
4494 { 0x11EE0,
I18N_NOOP(
"Makasar"), Makasar,
sizeof(Makasar) /
sizeof(*Makasar) },
4495 { 0x11F00,
I18N_NOOP(
"Kawi"), Kawi,
sizeof(Kawi) /
sizeof(*Kawi) },
4496 { 0x11FB0,
I18N_NOOP(
"Lisu Supplement"), LisuSupplement,
sizeof(LisuSupplement) /
sizeof(*LisuSupplement) },
4497 { 0x11FC0,
I18N_NOOP(
"Tamil Supplement"), TamilSupplement,
sizeof(TamilSupplement) /
sizeof(*TamilSupplement) },
4498 { 0x12000,
I18N_NOOP(
"Cuneiform"), Cuneiform,
sizeof(Cuneiform) /
sizeof(*Cuneiform) },
4499 { 0x12400,
I18N_NOOP(
"Cuneiform Numbers and Punctuation"), CuneiformNumbersandPunctuation,
sizeof(CuneiformNumbersandPunctuation) /
sizeof(*CuneiformNumbersandPunctuation) },
4500 { 0x12480,
I18N_NOOP(
"Early Dynastic Cuneiform"), EarlyDynasticCuneiform,
sizeof(EarlyDynasticCuneiform) /
sizeof(*EarlyDynasticCuneiform) },
4501 { 0x12F90,
I18N_NOOP(
"Cypro-Minoan"), CyproMinoan,
sizeof(CyproMinoan) /
sizeof(*CyproMinoan) },
4502 { 0x13000,
I18N_NOOP(
"Egyptian Hieroglyphs"), EgyptianHieroglyphs,
sizeof(EgyptianHieroglyphs) /
sizeof(*EgyptianHieroglyphs) },
4503 { 0x13430,
I18N_NOOP(
"Egyptian Hieroglyph Format Controls"), EgyptianHieroglyphFormatControls,
sizeof(EgyptianHieroglyphFormatControls) /
sizeof(*EgyptianHieroglyphFormatControls) },
4504 { 0x13460,
I18N_NOOP(
"Egyptian Hieroglyphs Extended-A"), EgyptianHieroglyphsExtendedA,
sizeof(EgyptianHieroglyphsExtendedA) /
sizeof(*EgyptianHieroglyphsExtendedA) },
4505 { 0x14400,
I18N_NOOP(
"Anatolian Hieroglyphs"), AnatolianHieroglyphs,
sizeof(AnatolianHieroglyphs) /
sizeof(*AnatolianHieroglyphs) },
4506 { 0x16100,
I18N_NOOP(
"Gurung Khema"), GurungKhema,
sizeof(GurungKhema) /
sizeof(*GurungKhema) },
4507 { 0x16800,
I18N_NOOP(
"Bamum Supplement"), BamumSupplement,
sizeof(BamumSupplement) /
sizeof(*BamumSupplement) },
4508 { 0x16A40,
I18N_NOOP(
"Mro"), Mro,
sizeof(Mro) /
sizeof(*Mro) },
4509 { 0x16A70,
I18N_NOOP(
"Tangsa"), Tangsa,
sizeof(Tangsa) /
sizeof(*Tangsa) },
4510 { 0x16AD0,
I18N_NOOP(
"Bassa Vah"), BassaVah,
sizeof(BassaVah) /
sizeof(*BassaVah) },
4511 { 0x16B00,
I18N_NOOP(
"Pahawh Hmong"), PahawhHmong,
sizeof(PahawhHmong) /
sizeof(*PahawhHmong) },
4512 { 0x16D40,
I18N_NOOP(
"Kirat Rai"), KiratRai,
sizeof(KiratRai) /
sizeof(*KiratRai) },
4513 { 0x16E40,
I18N_NOOP(
"Medefaidrin"), Medefaidrin,
sizeof(Medefaidrin) /
sizeof(*Medefaidrin) },
4514 { 0x16EA0,
I18N_NOOP(
"Beria Erfe"), BeriaErfe,
sizeof(BeriaErfe) /
sizeof(*BeriaErfe) },
4515 { 0x16F00,
I18N_NOOP(
"Miao"), Miao,
sizeof(Miao) /
sizeof(*Miao) },
4516 { 0x16FE0,
I18N_NOOP(
"Ideographic Symbols and Punctuation"), IdeographicSymbolsandPunctuation,
sizeof(IdeographicSymbolsandPunctuation) /
sizeof(*IdeographicSymbolsandPunctuation) },
4517 { 0x17000,
I18N_NOOP(
"Tangut"), Tangut,
sizeof(Tangut) /
sizeof(*Tangut) },
4518 { 0x18800,
I18N_NOOP(
"Tangut Components"), TangutComponents,
sizeof(TangutComponents) /
sizeof(*TangutComponents) },
4519 { 0x18B00,
I18N_NOOP(
"Khitan Small Script"), KhitanSmallScript,
sizeof(KhitanSmallScript) /
sizeof(*KhitanSmallScript) },
4520 { 0x18D00,
I18N_NOOP(
"Tangut Supplement"), TangutSupplement,
sizeof(TangutSupplement) /
sizeof(*TangutSupplement) },
4521 { 0x18D80,
I18N_NOOP(
"Tangut Components Supplement"), TangutComponentsSupplement,
sizeof(TangutComponentsSupplement) /
sizeof(*TangutComponentsSupplement) },
4522 { 0x1AFF0,
I18N_NOOP(
"Kana Extended-B"), KanaExtendedB,
sizeof(KanaExtendedB) /
sizeof(*KanaExtendedB) },
4523 { 0x1B000,
I18N_NOOP(
"Kana Supplement"), KanaSupplement,
sizeof(KanaSupplement) /
sizeof(*KanaSupplement) },
4524 { 0x1B100,
I18N_NOOP(
"Kana Extended-A"), KanaExtendedA,
sizeof(KanaExtendedA) /
sizeof(*KanaExtendedA) },
4525 { 0x1B130,
I18N_NOOP(
"Small Kana Extension"), SmallKanaExtension,
sizeof(SmallKanaExtension) /
sizeof(*SmallKanaExtension) },
4526 { 0x1B170,
I18N_NOOP(
"Nushu"), Nushu,
sizeof(Nushu) /
sizeof(*Nushu) },
4527 { 0x1BC00,
I18N_NOOP(
"Duployan"), Duployan,
sizeof(Duployan) /
sizeof(*Duployan) },
4528 { 0x1BCA0,
I18N_NOOP(
"Shorthand Format Controls"), ShorthandFormatControls,
sizeof(ShorthandFormatControls) /
sizeof(*ShorthandFormatControls) },
4529 { 0x1CC00,
I18N_NOOP(
"Symbols for Legacy Computing Supplement"), SymbolsforLegacyComputingSupplement,
sizeof(SymbolsforLegacyComputingSupplement) /
sizeof(*SymbolsforLegacyComputingSupplement) },
4530 { 0x1CEC0,
I18N_NOOP(
"Miscellaneous Symbols Supplement"), MiscellaneousSymbolsSupplement,
sizeof(MiscellaneousSymbolsSupplement) /
sizeof(*MiscellaneousSymbolsSupplement) },
4531 { 0x1CF00,
I18N_NOOP(
"Znamenny Musical Notation"), ZnamennyMusicalNotation,
sizeof(ZnamennyMusicalNotation) /
sizeof(*ZnamennyMusicalNotation) },
4532 { 0x1D000,
I18N_NOOP(
"Byzantine Musical Symbols"), ByzantineMusicalSymbols,
sizeof(ByzantineMusicalSymbols) /
sizeof(*ByzantineMusicalSymbols) },
4533 { 0x1D100,
I18N_NOOP(
"Musical Symbols"), MusicalSymbols,
sizeof(MusicalSymbols) /
sizeof(*MusicalSymbols) },
4534 { 0x1D200,
I18N_NOOP(
"Ancient Greek Musical Notation"), AncientGreekMusicalNotation,
sizeof(AncientGreekMusicalNotation) /
sizeof(*AncientGreekMusicalNotation) },
4535 { 0x1D2C0,
I18N_NOOP(
"Kaktovik Numerals"), KaktovikNumerals,
sizeof(KaktovikNumerals) /
sizeof(*KaktovikNumerals) },
4536 { 0x1D2E0,
I18N_NOOP(
"Mayan Numerals"), MayanNumerals,
sizeof(MayanNumerals) /
sizeof(*MayanNumerals) },
4537 { 0x1D300,
I18N_NOOP(
"Tai Xuan Jing Symbols"), TaiXuanJingSymbols,
sizeof(TaiXuanJingSymbols) /
sizeof(*TaiXuanJingSymbols) },
4538 { 0x1D360,
I18N_NOOP(
"Counting Rod Numerals"), CountingRodNumerals,
sizeof(CountingRodNumerals) /
sizeof(*CountingRodNumerals) },
4539 { 0x1D400,
I18N_NOOP(
"Mathematical Alphanumeric Symbols"), MathematicalAlphanumericSymbols,
sizeof(MathematicalAlphanumericSymbols) /
sizeof(*MathematicalAlphanumericSymbols) },
4540 { 0x1D800,
I18N_NOOP(
"Sutton SignWriting"), SuttonSignWriting,
sizeof(SuttonSignWriting) /
sizeof(*SuttonSignWriting) },
4541 { 0x1DF00,
I18N_NOOP(
"Latin Extended-G"), LatinExtendedG,
sizeof(LatinExtendedG) /
sizeof(*LatinExtendedG) },
4542 { 0x1E000,
I18N_NOOP(
"Glagolitic Supplement"), GlagoliticSupplement,
sizeof(GlagoliticSupplement) /
sizeof(*GlagoliticSupplement) },
4543 { 0x1E030,
I18N_NOOP(
"Cyrillic Extended-D"), CyrillicExtendedD,
sizeof(CyrillicExtendedD) /
sizeof(*CyrillicExtendedD) },
4544 { 0x1E100,
I18N_NOOP(
"Nyiakeng Puachue Hmong"), NyiakengPuachueHmong,
sizeof(NyiakengPuachueHmong) /
sizeof(*NyiakengPuachueHmong) },
4545 { 0x1E290,
I18N_NOOP(
"Toto"), Toto,
sizeof(Toto) /
sizeof(*Toto) },
4546 { 0x1E2C0,
I18N_NOOP(
"Wancho"), Wancho,
sizeof(Wancho) /
sizeof(*Wancho) },
4547 { 0x1E4D0,
I18N_NOOP(
"Nag Mundari"), NagMundari,
sizeof(NagMundari) /
sizeof(*NagMundari) },
4548 { 0x1E5D0,
I18N_NOOP(
"Ol Onal"), OlOnal,
sizeof(OlOnal) /
sizeof(*OlOnal) },
4549 { 0x1E6C0,
I18N_NOOP(
"Tai Yo"), TaiYo,
sizeof(TaiYo) /
sizeof(*TaiYo) },
4550 { 0x1E7E0,
I18N_NOOP(
"Ethiopic Extended-B"), EthiopicExtendedB,
sizeof(EthiopicExtendedB) /
sizeof(*EthiopicExtendedB) },
4551 { 0x1E800,
I18N_NOOP(
"Mende Kikakui"), MendeKikakui,
sizeof(MendeKikakui) /
sizeof(*MendeKikakui) },
4552 { 0x1E900,
I18N_NOOP(
"Adlam"), Adlam,
sizeof(Adlam) /
sizeof(*Adlam) },
4553 { 0x1EC70,
I18N_NOOP(
"Indic Siyaq Numbers"), IndicSiyaqNumbers,
sizeof(IndicSiyaqNumbers) /
sizeof(*IndicSiyaqNumbers) },
4554 { 0x1ED00,
I18N_NOOP(
"Ottoman Siyaq Numbers"), OttomanSiyaqNumbers,
sizeof(OttomanSiyaqNumbers) /
sizeof(*OttomanSiyaqNumbers) },
4555 { 0x1EE00,
I18N_NOOP(
"Arabic Mathematical Alphabetic Symbols"), ArabicMathematicalAlphabeticSymbols,
sizeof(ArabicMathematicalAlphabeticSymbols) /
sizeof(*ArabicMathematicalAlphabeticSymbols) },
4556 { 0x1F000,
I18N_NOOP(
"Mahjong Tiles"), MahjongTiles,
sizeof(MahjongTiles) /
sizeof(*MahjongTiles) },
4557 { 0x1F030,
I18N_NOOP(
"Domino Tiles"), DominoTiles,
sizeof(DominoTiles) /
sizeof(*DominoTiles) },
4558 { 0x1F0A0,
I18N_NOOP(
"Playing Cards"), PlayingCards,
sizeof(PlayingCards) /
sizeof(*PlayingCards) },
4559 { 0x1F100,
I18N_NOOP(
"Enclosed Alphanumeric Supplement"), EnclosedAlphanumericSupplement,
sizeof(EnclosedAlphanumericSupplement) /
sizeof(*EnclosedAlphanumericSupplement) },
4560 { 0x1F200,
I18N_NOOP(
"Enclosed Ideographic Supplement"), EnclosedIdeographicSupplement,
sizeof(EnclosedIdeographicSupplement) /
sizeof(*EnclosedIdeographicSupplement) },
4561 { 0x1F300,
I18N_NOOP(
"Miscellaneous Symbols and Pictographs"), MiscellaneousSymbolsandPictographs,
sizeof(MiscellaneousSymbolsandPictographs) /
sizeof(*MiscellaneousSymbolsandPictographs) },
4562 { 0x1F600,
I18N_NOOP(
"Emoticons"), Emoticons,
sizeof(Emoticons) /
sizeof(*Emoticons) },
4563 { 0x1F650,
I18N_NOOP(
"Ornamental Dingbats"), OrnamentalDingbats,
sizeof(OrnamentalDingbats) /
sizeof(*OrnamentalDingbats) },
4564 { 0x1F680,
I18N_NOOP(
"Transport and Map Symbols"), TransportandMapSymbols,
sizeof(TransportandMapSymbols) /
sizeof(*TransportandMapSymbols) },
4565 { 0x1F700,
I18N_NOOP(
"Alchemical Symbols"), AlchemicalSymbols,
sizeof(AlchemicalSymbols) /
sizeof(*AlchemicalSymbols) },
4566 { 0x1F780,
I18N_NOOP(
"Geometric Shapes Extended"), GeometricShapesExtended,
sizeof(GeometricShapesExtended) /
sizeof(*GeometricShapesExtended) },
4567 { 0x1F800,
I18N_NOOP(
"Supplemental Arrows-C"), SupplementalArrowsC,
sizeof(SupplementalArrowsC) /
sizeof(*SupplementalArrowsC) },
4568 { 0x1F900,
I18N_NOOP(
"Supplemental Symbols and Pictographs"), SupplementalSymbolsandPictographs,
sizeof(SupplementalSymbolsandPictographs) /
sizeof(*SupplementalSymbolsandPictographs) },
4569 { 0x1FA00,
I18N_NOOP(
"Chess Symbols"), ChessSymbols,
sizeof(ChessSymbols) /
sizeof(*ChessSymbols) },
4570 { 0x1FA70,
I18N_NOOP(
"Symbols and Pictographs Extended-A"), SymbolsandPictographsExtendedA,
sizeof(SymbolsandPictographsExtendedA) /
sizeof(*SymbolsandPictographsExtendedA) },
4571 { 0x1FB00,
I18N_NOOP(
"Symbols for Legacy Computing"), SymbolsforLegacyComputing,
sizeof(SymbolsforLegacyComputing) /
sizeof(*SymbolsforLegacyComputing) },
4572 { 0x1FF80,
I18N_NOOP(
"Unassigned1"), Unassigned,
sizeof(Unassigned) /
sizeof(*Unassigned) },
4573 { 0x20000,
I18N_NOOP(
"CJK Unified Ideographs Extension B"), CJKUnifiedIdeographsExtensionB,
sizeof(CJKUnifiedIdeographsExtensionB) /
sizeof(*CJKUnifiedIdeographsExtensionB) },
4574 { 0x2A700,
I18N_NOOP(
"CJK Unified Ideographs Extension C"), CJKUnifiedIdeographsExtensionC,
sizeof(CJKUnifiedIdeographsExtensionC) /
sizeof(*CJKUnifiedIdeographsExtensionC) },
4575 { 0x2B740,
I18N_NOOP(
"CJK Unified Ideographs Extension D"), CJKUnifiedIdeographsExtensionD,
sizeof(CJKUnifiedIdeographsExtensionD) /
sizeof(*CJKUnifiedIdeographsExtensionD) },
4576 { 0x2B820,
I18N_NOOP(
"CJK Unified Ideographs Extension E"), CJKUnifiedIdeographsExtensionE,
sizeof(CJKUnifiedIdeographsExtensionE) /
sizeof(*CJKUnifiedIdeographsExtensionE) },
4577 { 0x2CEB0,
I18N_NOOP(
"CJK Unified Ideographs Extension F"), CJKUnifiedIdeographsExtensionF,
sizeof(CJKUnifiedIdeographsExtensionF) /
sizeof(*CJKUnifiedIdeographsExtensionF) },
4578 { 0x2EBF0,
I18N_NOOP(
"CJK Unified Ideographs Extension I"), CJKUnifiedIdeographsExtensionI,
sizeof(CJKUnifiedIdeographsExtensionI) /
sizeof(*CJKUnifiedIdeographsExtensionI) },
4579 { 0x2F800,
I18N_NOOP(
"CJK Compatibility Ideographs Supplement"), CJKCompatibilityIdeographsSupplement,
sizeof(CJKCompatibilityIdeographsSupplement) /
sizeof(*CJKCompatibilityIdeographsSupplement) },
4580 { 0x2FF80,
I18N_NOOP(
"Unassigned"), Unassigned2,
sizeof(Unassigned2) /
sizeof(*Unassigned2) },
4581 { 0x30000,
I18N_NOOP(
"CJK Unified Ideographs Extension G"), CJKUnifiedIdeographsExtensionG,
sizeof(CJKUnifiedIdeographsExtensionG) /
sizeof(*CJKUnifiedIdeographsExtensionG) },
4582 { 0x31350,
I18N_NOOP(
"CJK Unified Ideographs Extension H"), CJKUnifiedIdeographsExtensionH,
sizeof(CJKUnifiedIdeographsExtensionH) /
sizeof(*CJKUnifiedIdeographsExtensionH) },
4583 { 0x323B0,
I18N_NOOP(
"CJK Unified Ideographs Extension J"), CJKUnifiedIdeographsExtensionJ,
sizeof(CJKUnifiedIdeographsExtensionJ) /
sizeof(*CJKUnifiedIdeographsExtensionJ) },
4584 { 0x3FF80,
I18N_NOOP(
"Unassigned"), Unassigned3,
sizeof(Unassigned3) /
sizeof(*Unassigned3) },
4585 { 0x4FF80,
I18N_NOOP(
"Unassigned"), Unassigned4,
sizeof(Unassigned4) /
sizeof(*Unassigned4) },
4586 { 0x5FF80,
I18N_NOOP(
"Unassigned"), Unassigned5,
sizeof(Unassigned5) /
sizeof(*Unassigned5) },
4587 { 0x6FF80,
I18N_NOOP(
"Unassigned"), Unassigned6,
sizeof(Unassigned6) /
sizeof(*Unassigned6) },
4588 { 0x7FF80,
I18N_NOOP(
"Unassigned"), Unassigned7,
sizeof(Unassigned7) /
sizeof(*Unassigned7) },
4589 { 0x8FF80,
I18N_NOOP(
"Unassigned"), Unassigned8,
sizeof(Unassigned8) /
sizeof(*Unassigned8) },
4590 { 0x9FF80,
I18N_NOOP(
"Unassigned"), Unassigned9,
sizeof(Unassigned9) /
sizeof(*Unassigned9) },
4591 { 0xAFF80,
I18N_NOOP(
"Unassigned"), Unassigned10,
sizeof(Unassigned10) /
sizeof(*Unassigned10) },
4592 { 0xBFF80,
I18N_NOOP(
"Unassigned"), Unassigned11,
sizeof(Unassigned11) /
sizeof(*Unassigned11) },
4593 { 0xCFF80,
I18N_NOOP(
"Unassigned"), Unassigned12,
sizeof(Unassigned12) /
sizeof(*Unassigned12) },
4594 { 0xDFF80,
I18N_NOOP(
"Unassigned"), Unassigned13,
sizeof(Unassigned13) /
sizeof(*Unassigned13) },
4595 { 0xE0000,
I18N_NOOP(
"Tags"), Tags,
sizeof(Tags) /
sizeof(*Tags) },
4596 { 0xE0100,
I18N_NOOP(
"Variation Selectors Supplement"), VariationSelectorsSupplement,
sizeof(VariationSelectorsSupplement) /
sizeof(*VariationSelectorsSupplement) },
4597 { 0xEFF80,
I18N_NOOP(
"Unassigned"), Unassigned14,
sizeof(Unassigned14) /
sizeof(*Unassigned14) },
4598 { 0xFFF80,
I18N_NOOP(
"Supplementary Private Use Area-A"), SupplementaryPrivateUseAreaA,
sizeof(SupplementaryPrivateUseAreaA) /
sizeof(*SupplementaryPrivateUseAreaA) },
4599 { 0x10FF80,
I18N_NOOP(
"Supplementary Private Use Area-B"), SupplementaryPrivateUseAreaB,
sizeof(SupplementaryPrivateUseAreaB) /
sizeof(*SupplementaryPrivateUseAreaB) },
4602 constexpr
size_t categories_size =
sizeof(categories) /
sizeof(*categories);
#define I18N_NOOP(x)
I18N_NOOP marks a string to be translated without translating it.