1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 static const uc_block_t blocks[] =
29 {
30 { 0x0000, 0x007F, "Basic Latin" },
31 { 0x0080, 0x00FF, "Latin-1 Supplement" },
32 { 0x0100, 0x017F, "Latin Extended-A" },
33 { 0x0180, 0x024F, "Latin Extended-B" },
34 { 0x0250, 0x02AF, "IPA Extensions" },
35 { 0x02B0, 0x02FF, "Spacing Modifier Letters" },
36 { 0x0300, 0x036F, "Combining Diacritical Marks" },
37 { 0x0370, 0x03FF, "Greek and Coptic" },
38 { 0x0400, 0x04FF, "Cyrillic" },
39 { 0x0500, 0x052F, "Cyrillic Supplement" },
40 { 0x0530, 0x058F, "Armenian" },
41 { 0x0590, 0x05FF, "Hebrew" },
42 { 0x0600, 0x06FF, "Arabic" },
43 { 0x0700, 0x074F, "Syriac" },
44 { 0x0750, 0x077F, "Arabic Supplement" },
45 { 0x0780, 0x07BF, "Thaana" },
46 { 0x07C0, 0x07FF, "NKo" },
47 { 0x0800, 0x083F, "Samaritan" },
48 { 0x0840, 0x085F, "Mandaic" },
49 { 0x08A0, 0x08FF, "Arabic Extended-A" },
50 { 0x0900, 0x097F, "Devanagari" },
51 { 0x0980, 0x09FF, "Bengali" },
52 { 0x0A00, 0x0A7F, "Gurmukhi" },
53 { 0x0A80, 0x0AFF, "Gujarati" },
54 { 0x0B00, 0x0B7F, "Oriya" },
55 { 0x0B80, 0x0BFF, "Tamil" },
56 { 0x0C00, 0x0C7F, "Telugu" },
57 { 0x0C80, 0x0CFF, "Kannada" },
58 { 0x0D00, 0x0D7F, "Malayalam" },
59 { 0x0D80, 0x0DFF, "Sinhala" },
60 { 0x0E00, 0x0E7F, "Thai" },
61 { 0x0E80, 0x0EFF, "Lao" },
62 { 0x0F00, 0x0FFF, "Tibetan" },
63 { 0x1000, 0x109F, "Myanmar" },
64 { 0x10A0, 0x10FF, "Georgian" },
65 { 0x1100, 0x11FF, "Hangul Jamo" },
66 { 0x1200, 0x137F, "Ethiopic" },
67 { 0x1380, 0x139F, "Ethiopic Supplement" },
68 { 0x13A0, 0x13FF, "Cherokee" },
69 { 0x1400, 0x167F, "Unified Canadian Aboriginal Syllabics" },
70 { 0x1680, 0x169F, "Ogham" },
71 { 0x16A0, 0x16FF, "Runic" },
72 { 0x1700, 0x171F, "Tagalog" },
73 { 0x1720, 0x173F, "Hanunoo" },
74 { 0x1740, 0x175F, "Buhid" },
75 { 0x1760, 0x177F, "Tagbanwa" },
76 { 0x1780, 0x17FF, "Khmer" },
77 { 0x1800, 0x18AF, "Mongolian" },
78 { 0x18B0, 0x18FF, "Unified Canadian Aboriginal Syllabics Extended" },
79 { 0x1900, 0x194F, "Limbu" },
80 { 0x1950, 0x197F, "Tai Le" },
81 { 0x1980, 0x19DF, "New Tai Lue" },
82 { 0x19E0, 0x19FF, "Khmer Symbols" },
83 { 0x1A00, 0x1A1F, "Buginese" },
84 { 0x1A20, 0x1AAF, "Tai Tham" },
85 { 0x1AB0, 0x1AFF, "Combining Diacritical Marks Extended" },
86 { 0x1B00, 0x1B7F, "Balinese" },
87 { 0x1B80, 0x1BBF, "Sundanese" },
88 { 0x1BC0, 0x1BFF, "Batak" },
89 { 0x1C00, 0x1C4F, "Lepcha" },
90 { 0x1C50, 0x1C7F, "Ol Chiki" },
91 { 0x1C80, 0x1C8F, "Cyrillic Extended-C" },
92 { 0x1CC0, 0x1CCF, "Sundanese Supplement" },
93 { 0x1CD0, 0x1CFF, "Vedic Extensions" },
94 { 0x1D00, 0x1D7F, "Phonetic Extensions" },
95 { 0x1D80, 0x1DBF, "Phonetic Extensions Supplement" },
96 { 0x1DC0, 0x1DFF, "Combining Diacritical Marks Supplement" },
97 { 0x1E00, 0x1EFF, "Latin Extended Additional" },
98 { 0x1F00, 0x1FFF, "Greek Extended" },
99 { 0x2000, 0x206F, "General Punctuation" },
100 { 0x2070, 0x209F, "Superscripts and Subscripts" },
101 { 0x20A0, 0x20CF, "Currency Symbols" },
102 { 0x20D0, 0x20FF, "Combining Diacritical Marks for Symbols" },
103 { 0x2100, 0x214F, "Letterlike Symbols" },
104 { 0x2150, 0x218F, "Number Forms" },
105 { 0x2190, 0x21FF, "Arrows" },
106 { 0x2200, 0x22FF, "Mathematical Operators" },
107 { 0x2300, 0x23FF, "Miscellaneous Technical" },
108 { 0x2400, 0x243F, "Control Pictures" },
109 { 0x2440, 0x245F, "Optical Character Recognition" },
110 { 0x2460, 0x24FF, "Enclosed Alphanumerics" },
111 { 0x2500, 0x257F, "Box Drawing" },
112 { 0x2580, 0x259F, "Block Elements" },
113 { 0x25A0, 0x25FF, "Geometric Shapes" },
114 { 0x2600, 0x26FF, "Miscellaneous Symbols" },
115 { 0x2700, 0x27BF, "Dingbats" },
116 { 0x27C0, 0x27EF, "Miscellaneous Mathematical Symbols-A" },
117 { 0x27F0, 0x27FF, "Supplemental Arrows-A" },
118 { 0x2800, 0x28FF, "Braille Patterns" },
119 { 0x2900, 0x297F, "Supplemental Arrows-B" },
120 { 0x2980, 0x29FF, "Miscellaneous Mathematical Symbols-B" },
121 { 0x2A00, 0x2AFF, "Supplemental Mathematical Operators" },
122 { 0x2B00, 0x2BFF, "Miscellaneous Symbols and Arrows" },
123 { 0x2C00, 0x2C5F, "Glagolitic" },
124 { 0x2C60, 0x2C7F, "Latin Extended-C" },
125 { 0x2C80, 0x2CFF, "Coptic" },
126 { 0x2D00, 0x2D2F, "Georgian Supplement" },
127 { 0x2D30, 0x2D7F, "Tifinagh" },
128 { 0x2D80, 0x2DDF, "Ethiopic Extended" },
129 { 0x2DE0, 0x2DFF, "Cyrillic Extended-A" },
130 { 0x2E00, 0x2E7F, "Supplemental Punctuation" },
131 { 0x2E80, 0x2EFF, "CJK Radicals Supplement" },
132 { 0x2F00, 0x2FDF, "Kangxi Radicals" },
133 { 0x2FF0, 0x2FFF, "Ideographic Description Characters" },
134 { 0x3000, 0x303F, "CJK Symbols and Punctuation" },
135 { 0x3040, 0x309F, "Hiragana" },
136 { 0x30A0, 0x30FF, "Katakana" },
137 { 0x3100, 0x312F, "Bopomofo" },
138 { 0x3130, 0x318F, "Hangul Compatibility Jamo" },
139 { 0x3190, 0x319F, "Kanbun" },
140 { 0x31A0, 0x31BF, "Bopomofo Extended" },
141 { 0x31C0, 0x31EF, "CJK Strokes" },
142 { 0x31F0, 0x31FF, "Katakana Phonetic Extensions" },
143 { 0x3200, 0x32FF, "Enclosed CJK Letters and Months" },
144 { 0x3300, 0x33FF, "CJK Compatibility" },
145 { 0x3400, 0x4DBF, "CJK Unified Ideographs Extension A" },
146 { 0x4DC0, 0x4DFF, "Yijing Hexagram Symbols" },
147 { 0x4E00, 0x9FFF, "CJK Unified Ideographs" },
148 { 0xA000, 0xA48F, "Yi Syllables" },
149 { 0xA490, 0xA4CF, "Yi Radicals" },
150 { 0xA4D0, 0xA4FF, "Lisu" },
151 { 0xA500, 0xA63F, "Vai" },
152 { 0xA640, 0xA69F, "Cyrillic Extended-B" },
153 { 0xA6A0, 0xA6FF, "Bamum" },
154 { 0xA700, 0xA71F, "Modifier Tone Letters" },
155 { 0xA720, 0xA7FF, "Latin Extended-D" },
156 { 0xA800, 0xA82F, "Syloti Nagri" },
157 { 0xA830, 0xA83F, "Common Indic Number Forms" },
158 { 0xA840, 0xA87F, "Phags-pa" },
159 { 0xA880, 0xA8DF, "Saurashtra" },
160 { 0xA8E0, 0xA8FF, "Devanagari Extended" },
161 { 0xA900, 0xA92F, "Kayah Li" },
162 { 0xA930, 0xA95F, "Rejang" },
163 { 0xA960, 0xA97F, "Hangul Jamo Extended-A" },
164 { 0xA980, 0xA9DF, "Javanese" },
165 { 0xA9E0, 0xA9FF, "Myanmar Extended-B" },
166 { 0xAA00, 0xAA5F, "Cham" },
167 { 0xAA60, 0xAA7F, "Myanmar Extended-A" },
168 { 0xAA80, 0xAADF, "Tai Viet" },
169 { 0xAAE0, 0xAAFF, "Meetei Mayek Extensions" },
170 { 0xAB00, 0xAB2F, "Ethiopic Extended-A" },
171 { 0xAB30, 0xAB6F, "Latin Extended-E" },
172 { 0xAB70, 0xABBF, "Cherokee Supplement" },
173 { 0xABC0, 0xABFF, "Meetei Mayek" },
174 { 0xAC00, 0xD7AF, "Hangul Syllables" },
175 { 0xD7B0, 0xD7FF, "Hangul Jamo Extended-B" },
176 { 0xD800, 0xDB7F, "High Surrogates" },
177 { 0xDB80, 0xDBFF, "High Private Use Surrogates" },
178 { 0xDC00, 0xDFFF, "Low Surrogates" },
179 { 0xE000, 0xF8FF, "Private Use Area" },
180 { 0xF900, 0xFAFF, "CJK Compatibility Ideographs" },
181 { 0xFB00, 0xFB4F, "Alphabetic Presentation Forms" },
182 { 0xFB50, 0xFDFF, "Arabic Presentation Forms-A" },
183 { 0xFE00, 0xFE0F, "Variation Selectors" },
184 { 0xFE10, 0xFE1F, "Vertical Forms" },
185 { 0xFE20, 0xFE2F, "Combining Half Marks" },
186 { 0xFE30, 0xFE4F, "CJK Compatibility Forms" },
187 { 0xFE50, 0xFE6F, "Small Form Variants" },
188 { 0xFE70, 0xFEFF, "Arabic Presentation Forms-B" },
189 { 0xFF00, 0xFFEF, "Halfwidth and Fullwidth Forms" },
190 { 0xFFF0, 0xFFFF, "Specials" },
191 { 0x10000, 0x1007F, "Linear B Syllabary" },
192 { 0x10080, 0x100FF, "Linear B Ideograms" },
193 { 0x10100, 0x1013F, "Aegean Numbers" },
194 { 0x10140, 0x1018F, "Ancient Greek Numbers" },
195 { 0x10190, 0x101CF, "Ancient Symbols" },
196 { 0x101D0, 0x101FF, "Phaistos Disc" },
197 { 0x10280, 0x1029F, "Lycian" },
198 { 0x102A0, 0x102DF, "Carian" },
199 { 0x102E0, 0x102FF, "Coptic Epact Numbers" },
200 { 0x10300, 0x1032F, "Old Italic" },
201 { 0x10330, 0x1034F, "Gothic" },
202 { 0x10350, 0x1037F, "Old Permic" },
203 { 0x10380, 0x1039F, "Ugaritic" },
204 { 0x103A0, 0x103DF, "Old Persian" },
205 { 0x10400, 0x1044F, "Deseret" },
206 { 0x10450, 0x1047F, "Shavian" },
207 { 0x10480, 0x104AF, "Osmanya" },
208 { 0x104B0, 0x104FF, "Osage" },
209 { 0x10500, 0x1052F, "Elbasan" },
210 { 0x10530, 0x1056F, "Caucasian Albanian" },
211 { 0x10600, 0x1077F, "Linear A" },
212 { 0x10800, 0x1083F, "Cypriot Syllabary" },
213 { 0x10840, 0x1085F, "Imperial Aramaic" },
214 { 0x10860, 0x1087F, "Palmyrene" },
215 { 0x10880, 0x108AF, "Nabataean" },
216 { 0x108E0, 0x108FF, "Hatran" },
217 { 0x10900, 0x1091F, "Phoenician" },
218 { 0x10920, 0x1093F, "Lydian" },
219 { 0x10980, 0x1099F, "Meroitic Hieroglyphs" },
220 { 0x109A0, 0x109FF, "Meroitic Cursive" },
221 { 0x10A00, 0x10A5F, "Kharoshthi" },
222 { 0x10A60, 0x10A7F, "Old South Arabian" },
223 { 0x10A80, 0x10A9F, "Old North Arabian" },
224 { 0x10AC0, 0x10AFF, "Manichaean" },
225 { 0x10B00, 0x10B3F, "Avestan" },
226 { 0x10B40, 0x10B5F, "Inscriptional Parthian" },
227 { 0x10B60, 0x10B7F, "Inscriptional Pahlavi" },
228 { 0x10B80, 0x10BAF, "Psalter Pahlavi" },
229 { 0x10C00, 0x10C4F, "Old Turkic" },
230 { 0x10C80, 0x10CFF, "Old Hungarian" },
231 { 0x10E60, 0x10E7F, "Rumi Numeral Symbols" },
232 { 0x11000, 0x1107F, "Brahmi" },
233 { 0x11080, 0x110CF, "Kaithi" },
234 { 0x110D0, 0x110FF, "Sora Sompeng" },
235 { 0x11100, 0x1114F, "Chakma" },
236 { 0x11150, 0x1117F, "Mahajani" },
237 { 0x11180, 0x111DF, "Sharada" },
238 { 0x111E0, 0x111FF, "Sinhala Archaic Numbers" },
239 { 0x11200, 0x1124F, "Khojki" },
240 { 0x11280, 0x112AF, "Multani" },
241 { 0x112B0, 0x112FF, "Khudawadi" },
242 { 0x11300, 0x1137F, "Grantha" },
243 { 0x11400, 0x1147F, "Newa" },
244 { 0x11480, 0x114DF, "Tirhuta" },
245 { 0x11580, 0x115FF, "Siddham" },
246 { 0x11600, 0x1165F, "Modi" },
247 { 0x11660, 0x1167F, "Mongolian Supplement" },
248 { 0x11680, 0x116CF, "Takri" },
249 { 0x11700, 0x1173F, "Ahom" },
250 { 0x118A0, 0x118FF, "Warang Citi" },
251 { 0x11AC0, 0x11AFF, "Pau Cin Hau" },
252 { 0x11C00, 0x11C6F, "Bhaiksuki" },
253 { 0x11C70, 0x11CBF, "Marchen" },
254 { 0x12000, 0x123FF, "Cuneiform" },
255 { 0x12400, 0x1247F, "Cuneiform Numbers and Punctuation" },
256 { 0x12480, 0x1254F, "Early Dynastic Cuneiform" },
257 { 0x13000, 0x1342F, "Egyptian Hieroglyphs" },
258 { 0x14400, 0x1467F, "Anatolian Hieroglyphs" },
259 { 0x16800, 0x16A3F, "Bamum Supplement" },
260 { 0x16A40, 0x16A6F, "Mro" },
261 { 0x16AD0, 0x16AFF, "Bassa Vah" },
262 { 0x16B00, 0x16B8F, "Pahawh Hmong" },
263 { 0x16F00, 0x16F9F, "Miao" },
264 { 0x16FE0, 0x16FFF, "Ideographic Symbols and Punctuation" },
265 { 0x17000, 0x187FF, "Tangut" },
266 { 0x18800, 0x18AFF, "Tangut Components" },
267 { 0x1B000, 0x1B0FF, "Kana Supplement" },
268 { 0x1BC00, 0x1BC9F, "Duployan" },
269 { 0x1BCA0, 0x1BCAF, "Shorthand Format Controls" },
270 { 0x1D000, 0x1D0FF, "Byzantine Musical Symbols" },
271 { 0x1D100, 0x1D1FF, "Musical Symbols" },
272 { 0x1D200, 0x1D24F, "Ancient Greek Musical Notation" },
273 { 0x1D300, 0x1D35F, "Tai Xuan Jing Symbols" },
274 { 0x1D360, 0x1D37F, "Counting Rod Numerals" },
275 { 0x1D400, 0x1D7FF, "Mathematical Alphanumeric Symbols" },
276 { 0x1D800, 0x1DAAF, "Sutton SignWriting" },
277 { 0x1E000, 0x1E02F, "Glagolitic Supplement" },
278 { 0x1E800, 0x1E8DF, "Mende Kikakui" },
279 { 0x1E900, 0x1E95F, "Adlam" },
280 { 0x1EE00, 0x1EEFF, "Arabic Mathematical Alphabetic Symbols" },
281 { 0x1F000, 0x1F02F, "Mahjong Tiles" },
282 { 0x1F030, 0x1F09F, "Domino Tiles" },
283 { 0x1F0A0, 0x1F0FF, "Playing Cards" },
284 { 0x1F100, 0x1F1FF, "Enclosed Alphanumeric Supplement" },
285 { 0x1F200, 0x1F2FF, "Enclosed Ideographic Supplement" },
286 { 0x1F300, 0x1F5FF, "Miscellaneous Symbols and Pictographs" },
287 { 0x1F600, 0x1F64F, "Emoticons" },
288 { 0x1F650, 0x1F67F, "Ornamental Dingbats" },
289 { 0x1F680, 0x1F6FF, "Transport and Map Symbols" },
290 { 0x1F700, 0x1F77F, "Alchemical Symbols" },
291 { 0x1F780, 0x1F7FF, "Geometric Shapes Extended" },
292 { 0x1F800, 0x1F8FF, "Supplemental Arrows-C" },
293 { 0x1F900, 0x1F9FF, "Supplemental Symbols and Pictographs" },
294 { 0x20000, 0x2A6DF, "CJK Unified Ideographs Extension B" },
295 { 0x2A700, 0x2B73F, "CJK Unified Ideographs Extension C" },
296 { 0x2B740, 0x2B81F, "CJK Unified Ideographs Extension D" },
297 { 0x2B820, 0x2CEAF, "CJK Unified Ideographs Extension E" },
298 { 0x2F800, 0x2FA1F, "CJK Compatibility Ideographs Supplement" },
299 { 0xE0000, 0xE007F, "Tags" },
300 { 0xE0100, 0xE01EF, "Variation Selectors Supplement" },
301 { 0xF0000, 0xFFFFF, "Supplementary Private Use Area-A" },
302 { 0x100000, 0x10FFFF, "Supplementary Private Use Area-B" }
303 };
304 #define blocks_level1_shift 8
305 #define blocks_level1_threshold 0x28000
306 static const uint16_t blocks_level1[640 * 2] =
307 {
308 0, 2,
309 2, 4,
310 3, 6,
311 6, 8,
312 8, 9,
313 9, 12,
314 12, 13,
315 13, 17,
316 17, 20,
317 20, 22,
318 22, 24,
319 24, 26,
320 26, 28,
321 28, 30,
322 30, 32,
323 32, 33,
324 33, 35,
325 35, 36,
326 36, 37,
327 36, 39,
328 39, 40,
329 39, 40,
330 39, 42,
331 42, 47,
332 47, 49,
333 49, 53,
334 53, 56,
335 56, 59,
336 59, 64,
337 64, 67,
338 67, 68,
339 68, 69,
340 69, 73,
341 73, 76,
342 76, 77,
343 77, 78,
344 78, 81,
345 81, 84,
346 84, 85,
347 85, 88,
348 88, 89,
349 89, 91,
350 91, 92,
351 92, 93,
352 93, 96,
353 96, 100,
354 100, 102,
355 102, 104,
356 104, 107,
357 107, 113,
358 113, 114,
359 114, 115,
360 115, 116,
361 115, 116,
362 115, 116,
363 115, 116,
364 115, 116,
365 115, 116,
366 115, 116,
367 115, 116,
368 115, 116,
369 115, 116,
370 115, 116,
371 115, 116,
372 115, 116,
373 115, 116,
374 115, 116,
375 115, 116,
376 115, 116,
377 115, 116,
378 115, 116,
379 115, 116,
380 115, 116,
381 115, 116,
382 115, 116,
383 115, 116,
384 115, 116,
385 115, 117,
386 117, 118,
387 117, 118,
388 117, 118,
389 117, 118,
390 117, 118,
391 117, 118,
392 117, 118,
393 117, 118,
394 117, 118,
395 117, 118,
396 117, 118,
397 117, 118,
398 117, 118,
399 117, 118,
400 117, 118,
401 117, 118,
402 117, 118,
403 117, 118,
404 117, 118,
405 117, 118,
406 117, 118,
407 117, 118,
408 117, 118,
409 117, 118,
410 117, 118,
411 117, 118,
412 117, 118,
413 117, 118,
414 117, 118,
415 117, 118,
416 117, 118,
417 117, 118,
418 117, 118,
419 117, 118,
420 117, 118,
421 117, 118,
422 117, 118,
423 117, 118,
424 117, 118,
425 117, 118,
426 117, 118,
427 117, 118,
428 117, 118,
429 117, 118,
430 117, 118,
431 117, 118,
432 117, 118,
433 117, 118,
434 117, 118,
435 117, 118,
436 117, 118,
437 117, 118,
438 117, 118,
439 117, 118,
440 117, 118,
441 117, 118,
442 117, 118,
443 117, 118,
444 117, 118,
445 117, 118,
446 117, 118,
447 117, 118,
448 117, 118,
449 117, 118,
450 117, 118,
451 117, 118,
452 117, 118,
453 117, 118,
454 117, 118,
455 117, 118,
456 117, 118,
457 117, 118,
458 117, 118,
459 117, 118,
460 117, 118,
461 117, 118,
462 117, 118,
463 117, 118,
464 117, 118,
465 117, 118,
466 117, 118,
467 117, 118,
468 118, 119,
469 118, 119,
470 118, 119,
471 118, 119,
472 118, 121,
473 121, 122,
474 121, 124,
475 124, 126,
476 126, 131,
477 131, 136,
478 136, 140,
479 140, 144,
480 144, 145,
481 144, 145,
482 144, 145,
483 144, 145,
484 144, 145,
485 144, 145,
486 144, 145,
487 144, 145,
488 144, 145,
489 144, 145,
490 144, 145,
491 144, 145,
492 144, 145,
493 144, 145,
494 144, 145,
495 144, 145,
496 144, 145,
497 144, 145,
498 144, 145,
499 144, 145,
500 144, 145,
501 144, 145,
502 144, 145,
503 144, 145,
504 144, 145,
505 144, 145,
506 144, 145,
507 144, 145,
508 144, 145,
509 144, 145,
510 144, 145,
511 144, 145,
512 144, 145,
513 144, 145,
514 144, 145,
515 144, 145,
516 144, 145,
517 144, 145,
518 144, 145,
519 144, 145,
520 144, 145,
521 144, 145,
522 144, 145,
523 144, 146,
524 146, 147,
525 146, 147,
526 146, 147,
527 146, 148,
528 148, 149,
529 148, 149,
530 148, 149,
531 148, 149,
532 149, 150,
533 149, 150,
534 149, 150,
535 149, 150,
536 149, 150,
537 149, 150,
538 149, 150,
539 149, 150,
540 149, 150,
541 149, 150,
542 149, 150,
543 149, 150,
544 149, 150,
545 149, 150,
546 149, 150,
547 149, 150,
548 149, 150,
549 149, 150,
550 149, 150,
551 149, 150,
552 149, 150,
553 149, 150,
554 149, 150,
555 149, 150,
556 149, 150,
557 150, 151,
558 150, 151,
559 151, 153,
560 152, 153,
561 152, 153,
562 153, 159,
563 159, 161,
564 161, 163,
565 163, 167,
566 167, 170,
567 170, 175,
568 175, 179,
569 179, 181,
570 181, 182,
571 181, 182,
572 182, 187,
573 187, 191,
574 191, 195,
575 195, 199,
576 199, 201,
577 201, 201,
578 201, 202,
579 202, 202,
580 202, 205,
581 205, 209,
582 209, 212,
583 212, 213,
584 213, 215,
585 215, 216,
586 216, 219,
587 219, 220,
588 220, 221,
589 221, 221,
590 221, 222,
591 222, 222,
592 222, 224,
593 224, 224,
594 224, 224,
595 224, 224,
596 224, 225,
597 224, 225,
598 224, 225,
599 224, 225,
600 225, 227,
601 226, 227,
602 227, 227,
603 227, 227,
604 227, 227,
605 227, 227,
606 227, 227,
607 227, 227,
608 227, 227,
609 227, 227,
610 227, 227,
611 227, 227,
612 227, 228,
613 227, 228,
614 227, 228,
615 227, 228,
616 227, 228,
617 228, 228,
618 228, 228,
619 228, 228,
620 228, 228,
621 228, 228,
622 228, 228,
623 228, 228,
624 228, 228,
625 228, 228,
626 228, 228,
627 228, 228,
628 228, 228,
629 228, 228,
630 228, 228,
631 228, 228,
632 228, 229,
633 228, 229,
634 228, 229,
635 229, 229,
636 229, 229,
637 229, 229,
638 229, 229,
639 229, 229,
640 229, 229,
641 229, 229,
642 229, 229,
643 229, 229,
644 229, 229,
645 229, 229,
646 229, 229,
647 229, 229,
648 229, 229,
649 229, 229,
650 229, 229,
651 229, 229,
652 229, 229,
653 229, 229,
654 229, 229,
655 229, 229,
656 229, 229,
657 229, 229,
658 229, 229,
659 229, 229,
660 229, 229,
661 229, 229,
662 229, 229,
663 229, 229,
664 229, 229,
665 229, 229,
666 229, 229,
667 229, 229,
668 229, 230,
669 229, 230,
670 229, 232,
671 232, 233,
672 233, 233,
673 233, 233,
674 233, 233,
675 233, 235,
676 235, 236,
677 235, 236,
678 235, 236,
679 235, 236,
680 235, 236,
681 235, 236,
682 235, 236,
683 235, 236,
684 235, 236,
685 235, 236,
686 235, 236,
687 235, 236,
688 235, 236,
689 235, 236,
690 235, 236,
691 235, 236,
692 235, 236,
693 235, 236,
694 235, 236,
695 235, 236,
696 235, 236,
697 235, 236,
698 235, 236,
699 235, 236,
700 236, 237,
701 236, 237,
702 236, 237,
703 237, 237,
704 237, 237,
705 237, 237,
706 237, 237,
707 237, 237,
708 237, 237,
709 237, 237,
710 237, 237,
711 237, 237,
712 237, 237,
713 237, 237,
714 237, 237,
715 237, 237,
716 237, 237,
717 237, 237,
718 237, 237,
719 237, 237,
720 237, 237,
721 237, 237,
722 237, 237,
723 237, 237,
724 237, 237,
725 237, 237,
726 237, 237,
727 237, 237,
728 237, 237,
729 237, 237,
730 237, 237,
731 237, 237,
732 237, 237,
733 237, 237,
734 237, 237,
735 237, 237,
736 237, 237,
737 237, 237,
738 237, 237,
739 237, 237,
740 237, 238,
741 238, 238,
742 238, 238,
743 238, 238,
744 238, 238,
745 238, 238,
746 238, 238,
747 238, 238,
748 238, 238,
749 238, 238,
750 238, 238,
751 238, 238,
752 238, 240,
753 240, 240,
754 240, 240,
755 240, 240,
756 240, 240,
757 240, 240,
758 240, 240,
759 240, 240,
760 240, 240,
761 240, 240,
762 240, 240,
763 240, 240,
764 240, 240,
765 240, 240,
766 240, 240,
767 240, 240,
768 240, 240,
769 240, 240,
770 240, 240,
771 240, 240,
772 240, 241,
773 241, 242,
774 242, 243,
775 243, 245,
776 245, 246,
777 245, 246,
778 245, 246,
779 245, 246,
780 246, 247,
781 246, 247,
782 246, 247,
783 247, 247,
784 247, 247,
785 247, 247,
786 247, 247,
787 247, 247,
788 247, 248,
789 248, 248,
790 248, 248,
791 248, 248,
792 248, 248,
793 248, 248,
794 248, 248,
795 248, 248,
796 248, 249,
797 249, 250,
798 250, 250,
799 250, 250,
800 250, 250,
801 250, 250,
802 250, 251,
803 251, 251,
804 251, 254,
805 254, 255,
806 255, 256,
807 256, 257,
808 256, 257,
809 256, 257,
810 257, 260,
811 260, 262,
812 262, 263,
813 263, 264,
814 264, 264,
815 264, 264,
816 264, 264,
817 264, 264,
818 264, 264,
819 264, 264,
820 264, 265,
821 264, 265,
822 264, 265,
823 264, 265,
824 264, 265,
825 264, 265,
826 264, 265,
827 264, 265,
828 264, 265,
829 264, 265,
830 264, 265,
831 264, 265,
832 264, 265,
833 264, 265,
834 264, 265,
835 264, 265,
836 264, 265,
837 264, 265,
838 264, 265,
839 264, 265,
840 264, 265,
841 264, 265,
842 264, 265,
843 264, 265,
844 264, 265,
845 264, 265,
846 264, 265,
847 264, 265,
848 264, 265,
849 264, 265,
850 264, 265,
851 264, 265,
852 264, 265,
853 264, 265,
854 264, 265,
855 264, 265,
856 264, 265,
857 264, 265,
858 264, 265,
859 264, 265,
860 264, 265,
861 264, 265,
862 264, 265,
863 264, 265,
864 264, 265,
865 264, 265,
866 264, 265,
867 264, 265,
868 264, 265,
869 264, 265,
870 264, 265,
871 264, 265,
872 264, 265,
873 264, 265,
874 264, 265,
875 264, 265,
876 264, 265,
877 264, 265,
878 264, 265,
879 264, 265,
880 264, 265,
881 264, 265,
882 264, 265,
883 264, 265,
884 264, 265,
885 264, 265,
886 264, 265,
887 264, 265,
888 264, 265,
889 264, 265,
890 264, 265,
891 264, 265,
892 264, 265,
893 264, 265,
894 264, 265,
895 264, 265,
896 264, 265,
897 264, 265,
898 264, 265,
899 264, 265,
900 264, 265,
901 264, 265,
902 264, 265,
903 264, 265,
904 264, 265,
905 264, 265,
906 264, 265,
907 264, 265,
908 264, 265,
909 264, 265,
910 264, 265,
911 264, 265,
912 264, 265,
913 264, 265,
914 264, 265,
915 264, 265,
916 264, 265,
917 264, 265,
918 264, 265,
919 264, 265,
920 264, 265,
921 264, 265,
922 264, 265,
923 264, 265,
924 264, 265,
925 264, 265,
926 264, 265,
927 264, 265,
928 264, 265,
929 264, 265,
930 264, 265,
931 264, 265,
932 264, 265,
933 264, 265,
934 264, 265,
935 264, 265,
936 264, 265,
937 264, 265,
938 264, 265,
939 264, 265,
940 264, 265,
941 264, 265,
942 264, 265,
943 264, 265,
944 264, 265,
945 264, 265,
946 264, 265,
947 264, 265
948 };
949 #define blocks_upper_first_index 264
950 #define blocks_upper_last_index 273