2 * Copyright (C) 1999-2003 Free Software Foundation, Inc.
3 * This file is part of the GNU LIBICONV Library.
5 * The GNU LIBICONV Library is free software; you can redistribute it
6 * and/or modify it under the terms of the GNU Library General Public
7 * License as published by the Free Software Foundation; either version 2
8 * of the License, or (at your option) any later version.
10 * The GNU LIBICONV Library is distributed in the hope that it will be
11 * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Library General Public License for more details.
15 * You should have received a copy of the GNU Library General Public
16 * License along with the GNU LIBICONV Library; see the file COPYING.LIB.
17 * If not, write to the Free Software Foundation, Inc., 51 Franklin Street,
18 * Fifth Floor, Boston, MA 02110-1301, USA.
22 * Transliteration table
25 static const unsigned int translit_data
[9116] = {
52 5, ' ', '1',0x2044, '4', ' ',
53 5, ' ', '1',0x2044, '2', ' ',
54 5, ' ', '3',0x2044, '4', ' ',
350 4, 'o', '/', 'o', 'o',
355 3,0x2035,0x2035,0x2035,
363 4,0xB4,0xB4,0xB4,0xB4,
365 4,0x0110,0x1ED3, 'n', 'g',
420 5, ' ', '1',0x2044, '3', ' ',
421 5, ' ', '2',0x2044, '3', ' ',
422 5, ' ', '1',0x2044, '5', ' ',
423 5, ' ', '2',0x2044, '5', ' ',
424 5, ' ', '3',0x2044, '5', ' ',
425 5, ' ', '4',0x2044, '5', ' ',
426 5, ' ', '1',0x2044, '6', ' ',
427 5, ' ', '5',0x2044, '6', ' ',
428 5, ' ', '1',0x2044, '8', ' ',
429 5, ' ', '3',0x2044, '8', ' ',
430 5, ' ', '5',0x2044, '8', ' ',
431 5, ' ', '7',0x2044, '8', ' ',
440 4, 'V', 'I', 'I', 'I',
456 4, 'v', 'i', 'i', 'i',
480 3,0x222B,0x222B,0x222B,
482 3,0x222E,0x222E,0x222E,
494 5, '[', 'N', 'U', 'L', ']',
495 5, '[', 'S', 'O', 'H', ']',
496 5, '[', 'S', 'T', 'X', ']',
497 5, '[', 'E', 'T', 'X', ']',
498 5, '[', 'E', 'O', 'T', ']',
499 5, '[', 'E', 'N', 'Q', ']',
500 5, '[', 'A', 'C', 'K', ']',
501 5, '[', 'B', 'E', 'L', ']',
502 4, '[', 'B', 'S', ']',
503 4, '[', 'H', 'T', ']',
504 4, '[', 'L', 'F', ']',
505 4, '[', 'V', 'T', ']',
506 4, '[', 'F', 'F', ']',
507 4, '[', 'C', 'R', ']',
508 4, '[', 'S', 'O', ']',
509 4, '[', 'S', 'I', ']',
510 5, '[', 'D', 'L', 'E', ']',
511 5, '[', 'D', 'C', '1', ']',
512 5, '[', 'D', 'C', '2', ']',
513 5, '[', 'D', 'C', '3', ']',
514 5, '[', 'D', 'C', '4', ']',
515 5, '[', 'N', 'A', 'K', ']',
516 5, '[', 'S', 'Y', 'N', ']',
517 5, '[', 'E', 'T', 'B', ']',
518 5, '[', 'C', 'A', 'N', ']',
519 4, '[', 'E', 'M', ']',
520 5, '[', 'S', 'U', 'B', ']',
521 5, '[', 'E', 'S', 'C', ']',
522 4, '[', 'F', 'S', ']',
523 4, '[', 'G', 'S', ']',
524 4, '[', 'R', 'S', ']',
525 4, '[', 'U', 'S', ']',
526 4, '[', 'S', 'P', ']',
527 5, '[', 'D', 'E', 'L', ']',
528 4, '[', 'N', 'L', ']',
538 4, '(', '1', '0', ')',
539 4, '(', '1', '1', ')',
540 4, '(', '1', '2', ')',
541 4, '(', '1', '3', ')',
542 4, '(', '1', '4', ')',
543 4, '(', '1', '5', ')',
544 4, '(', '1', '6', ')',
545 4, '(', '1', '7', ')',
546 4, '(', '1', '8', ')',
547 4, '(', '1', '9', ')',
548 4, '(', '2', '0', ')',
558 4, '(', '1', '0', ')',
559 4, '(', '1', '1', ')',
560 4, '(', '1', '2', ')',
561 4, '(', '1', '3', ')',
562 4, '(', '1', '4', ')',
563 4, '(', '1', '5', ')',
564 4, '(', '1', '6', ')',
565 4, '(', '1', '7', ')',
566 4, '(', '1', '8', ')',
567 4, '(', '1', '9', ')',
568 4, '(', '2', '0', ')',
680 4,0x222B,0x222B,0x222B,0x222B,
1056 4, '(',0x1100,0x1161, ')',
1057 4, '(',0x1102,0x1161, ')',
1058 4, '(',0x1103,0x1161, ')',
1059 4, '(',0x1105,0x1161, ')',
1060 4, '(',0x1106,0x1161, ')',
1061 4, '(',0x1107,0x1161, ')',
1062 4, '(',0x1109,0x1161, ')',
1063 4, '(',0x110B,0x1161, ')',
1064 4, '(',0x110C,0x1161, ')',
1065 4, '(',0x110E,0x1161, ')',
1066 4, '(',0x110F,0x1161, ')',
1067 4, '(',0x1110,0x1161, ')',
1068 4, '(',0x1111,0x1161, ')',
1069 4, '(',0x1112,0x1161, ')',
1070 4, '(',0x110C,0x116E, ')',
1071 7, '(',0x110B,0x1169,0x110C,0x1165,0x11AB, ')',
1072 6, '(',0x110B,0x1169,0x1112,0x116E, ')',
1110 4, '(', '2', '1', ')',
1111 4, '(', '2', '2', ')',
1112 4, '(', '2', '3', ')',
1113 4, '(', '2', '4', ')',
1114 4, '(', '2', '5', ')',
1115 4, '(', '2', '6', ')',
1116 4, '(', '2', '7', ')',
1117 4, '(', '2', '8', ')',
1118 4, '(', '2', '9', ')',
1119 4, '(', '3', '0', ')',
1120 4, '(', '3', '1', ')',
1121 4, '(', '3', '2', ')',
1122 4, '(', '3', '3', ')',
1123 4, '(', '3', '4', ')',
1124 4, '(', '3', '5', ')',
1139 4, '(',0x1100,0x1161, ')',
1140 4, '(',0x1102,0x1161, ')',
1141 4, '(',0x1103,0x1161, ')',
1142 4, '(',0x1105,0x1161, ')',
1143 4, '(',0x1106,0x1161, ')',
1144 4, '(',0x1107,0x1161, ')',
1145 4, '(',0x1109,0x1161, ')',
1146 4, '(',0x110B,0x1161, ')',
1147 4, '(',0x110C,0x1161, ')',
1148 4, '(',0x110E,0x1161, ')',
1149 4, '(',0x110F,0x1161, ')',
1150 4, '(',0x1110,0x1161, ')',
1151 4, '(',0x1111,0x1161, ')',
1152 4, '(',0x1112,0x1161, ')',
1153 7, '(',0x110E,0x1161,0x11B7,0x1100,0x1169, ')',
1154 6, '(',0x110C,0x116E,0x110B,0x1174, ')',
1204 4, '(', '3', '6', ')',
1205 4, '(', '3', '7', ')',
1206 4, '(', '3', '8', ')',
1207 4, '(', '3', '9', ')',
1208 4, '(', '4', '0', ')',
1209 4, '(', '4', '1', ')',
1210 4, '(', '4', '2', ')',
1211 4, '(', '4', '3', ')',
1212 4, '(', '4', '4', ')',
1213 4, '(', '4', '5', ')',
1214 4, '(', '4', '6', ')',
1215 4, '(', '4', '7', ')',
1216 4, '(', '4', '8', ')',
1217 4, '(', '4', '9', ')',
1218 4, '(', '5', '0', ')',
1282 4,0x30A2,0x30D1,0x30FC,0x30C8,
1283 4,0x30A2,0x30EB,0x30D5,0x30A1,
1284 4,0x30A2,0x30F3,0x30DA,0x30A2,
1285 3,0x30A2,0x30FC,0x30EB,
1286 4,0x30A4,0x30CB,0x30F3,0x30B0,
1287 3,0x30A4,0x30F3,0x30C1,
1288 3,0x30A6,0x30A9,0x30F3,
1289 5,0x30A8,0x30B9,0x30AF,0x30FC,0x30C9,
1290 4,0x30A8,0x30FC,0x30AB,0x30FC,
1291 3,0x30AA,0x30F3,0x30B9,
1292 3,0x30AA,0x30FC,0x30E0,
1293 3,0x30AB,0x30A4,0x30EA,
1294 4,0x30AB,0x30E9,0x30C3,0x30C8,
1295 4,0x30AB,0x30ED,0x30EA,0x30FC,
1296 3,0x30AC,0x30ED,0x30F3,
1297 3,0x30AC,0x30F3,0x30DE,
1299 3,0x30AE,0x30CB,0x30FC,
1300 4,0x30AD,0x30E5,0x30EA,0x30FC,
1301 4,0x30AE,0x30EB,0x30C0,0x30FC,
1303 5,0x30AD,0x30ED,0x30B0,0x30E9,0x30E0,
1304 6,0x30AD,0x30ED,0x30E1,0x30FC,0x30C8,0x30EB,
1305 5,0x30AD,0x30ED,0x30EF,0x30C3,0x30C8,
1306 3,0x30B0,0x30E9,0x30E0,
1307 5,0x30B0,0x30E9,0x30E0,0x30C8,0x30F3,
1308 5,0x30AF,0x30EB,0x30BC,0x30A4,0x30ED,
1309 4,0x30AF,0x30ED,0x30FC,0x30CD,
1310 3,0x30B1,0x30FC,0x30B9,
1311 3,0x30B3,0x30EB,0x30CA,
1312 3,0x30B3,0x30FC,0x30DD,
1313 4,0x30B5,0x30A4,0x30AF,0x30EB,
1314 5,0x30B5,0x30F3,0x30C1,0x30FC,0x30E0,
1315 4,0x30B7,0x30EA,0x30F3,0x30B0,
1316 3,0x30BB,0x30F3,0x30C1,
1317 3,0x30BB,0x30F3,0x30C8,
1318 3,0x30C0,0x30FC,0x30B9,
1323 3,0x30CE,0x30C3,0x30C8,
1324 3,0x30CF,0x30A4,0x30C4,
1325 5,0x30D1,0x30FC,0x30BB,0x30F3,0x30C8,
1326 3,0x30D1,0x30FC,0x30C4,
1327 4,0x30D0,0x30FC,0x30EC,0x30EB,
1328 5,0x30D4,0x30A2,0x30B9,0x30C8,0x30EB,
1329 3,0x30D4,0x30AF,0x30EB,
1332 5,0x30D5,0x30A1,0x30E9,0x30C3,0x30C9,
1333 4,0x30D5,0x30A3,0x30FC,0x30C8,
1334 5,0x30D6,0x30C3,0x30B7,0x30A7,0x30EB,
1335 3,0x30D5,0x30E9,0x30F3,
1336 5,0x30D8,0x30AF,0x30BF,0x30FC,0x30EB,
1338 3,0x30DA,0x30CB,0x30D2,
1339 3,0x30D8,0x30EB,0x30C4,
1340 3,0x30DA,0x30F3,0x30B9,
1341 3,0x30DA,0x30FC,0x30B8,
1342 3,0x30D9,0x30FC,0x30BF,
1343 4,0x30DD,0x30A4,0x30F3,0x30C8,
1344 3,0x30DC,0x30EB,0x30C8,
1346 3,0x30DD,0x30F3,0x30C9,
1347 3,0x30DB,0x30FC,0x30EB,
1348 3,0x30DB,0x30FC,0x30F3,
1349 4,0x30DE,0x30A4,0x30AF,0x30ED,
1350 3,0x30DE,0x30A4,0x30EB,
1351 3,0x30DE,0x30C3,0x30CF,
1352 3,0x30DE,0x30EB,0x30AF,
1353 5,0x30DE,0x30F3,0x30B7,0x30E7,0x30F3,
1354 4,0x30DF,0x30AF,0x30ED,0x30F3,
1356 5,0x30DF,0x30EA,0x30D0,0x30FC,0x30EB,
1358 4,0x30E1,0x30AC,0x30C8,0x30F3,
1359 4,0x30E1,0x30FC,0x30C8,0x30EB,
1360 3,0x30E4,0x30FC,0x30C9,
1361 3,0x30E4,0x30FC,0x30EB,
1362 3,0x30E6,0x30A2,0x30F3,
1363 4,0x30EA,0x30C3,0x30C8,0x30EB,
1365 3,0x30EB,0x30D4,0x30FC,
1366 4,0x30EB,0x30FC,0x30D6,0x30EB,
1368 5,0x30EC,0x30F3,0x30C8,0x30B2,0x30F3,
1369 3,0x30EF,0x30C3,0x30C8,
1402 4, 'd', 'm', '^', '2',
1403 4, 'd', 'm', '^', '3',
1409 4,0x682A,0x5F0F,0x4F1A,0x793E,
1419 4, 'k', 'c', 'a', 'l',
1441 4, 'm', 'm', '^', '2',
1442 4, 'c', 'm', '^', '2',
1444 4, 'k', 'm', '^', '2',
1445 4, 'm', 'm', '^', '3',
1446 4, 'c', 'm', '^', '3',
1448 4, 'k', 'm', '^', '3',
1450 5, 'm', '/', 's', '^', '2',
1456 5, 'r', 'a', 'd', '/', 's',
1457 7, 'r', 'a', 'd', '/', 's', '^', '2',
1476 4, 'a', '.', 'm', '.',
1480 4, 'C', '/', 'k', 'g',
1498 4, 'p', '.', 'm', '.',
3704 static const short translit_page00
[344] = {
3705 0, 2, 4, 6, -1, 9, 13, 15, /* 0xa0-0xa7 */
3706 18, 20, 24, 26, 29, 33, 35, -1, /* 0xa8-0xaf */
3707 39, 42, 46, 49, 52, 54, 56, 58, /* 0xb0-0xb7 */
3708 60, 62, 65, 67, 70, 76, 82, 88, /* 0xb8-0xbf */
3709 90, 93, 96, 99, 102, 105, 107, 110, /* 0xc0-0xc7 */
3710 112, 115, 118, 121, 124, 127, 130, 133, /* 0xc8-0xcf */
3711 136, 138, 141, 144, 147, 150, 153, 156, /* 0xd0-0xd7 */
3712 158, 160, 163, 166, 169, 172, 175, 178, /* 0xd8-0xdf */
3713 181, 184, 187, 190, 193, 196, 198, 201, /* 0xe0-0xe7 */
3714 203, 206, 209, 212, 215, 218, 221, 224, /* 0xe8-0xef */
3715 227, 229, 232, 235, 238, 241, 244, 247, /* 0xf0-0xf7 */
3716 249, 251, 254, 257, 260, 263, 266, 269, /* 0xf8-0xff */
3718 272, 274, 276, 278, 280, 282, 284, 287, /* 0x00-0x07 */
3719 290, 293, 296, 298, 300, 302, 304, 306, /* 0x08-0x0f */
3720 308, 310, 312, 314, 316, 318, 320, 322, /* 0x10-0x17 */
3721 324, 326, 328, 330, 332, 335, 338, 340, /* 0x18-0x1f */
3722 342, 344, 346, 348, 350, 353, 356, 358, /* 0x20-0x27 */
3723 360, 363, 366, 368, 370, 372, 374, 376, /* 0x28-0x2f */
3724 378, 380, 382, 385, 388, 391, 394, 396, /* 0x30-0x37 */
3725 -1, 398, 400, 402, 404, 406, 408, 410, /* 0x38-0x3f */
3726 412, 414, 416, 418, 421, 424, 426, 428, /* 0x40-0x47 */
3727 430, 432, -1, -1, 435, 437, 439, 441, /* 0x48-0x4f */
3728 443, 446, 449, 452, 455, 458, 461, 463, /* 0x50-0x57 */
3729 465, 467, 469, 472, 475, 478, 481, 483, /* 0x58-0x5f */
3730 485, 487, 489, 491, 493, 495, 497, 499, /* 0x60-0x67 */
3731 501, 504, 507, 509, 511, 513, 515, 517, /* 0x68-0x6f */
3732 519, 522, 525, 527, 529, 532, 535, 538, /* 0x70-0x77 */
3733 541, 544, 547, 550, 552, 554, 556, 558, /* 0x78-0x7f */
3734 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x80-0x87 */
3735 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x88-0x8f */
3736 -1, -1, 560, -1, -1, -1, -1, -1, /* 0x90-0x97 */
3737 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x98-0x9f */
3738 -1, -1, -1, -1, -1, -1, -1, -1, /* 0xa0-0xa7 */
3739 -1, -1, -1, -1, -1, -1, -1, -1, /* 0xa8-0xaf */
3740 -1, -1, -1, -1, -1, -1, -1, -1, /* 0xb0-0xb7 */
3741 -1, -1, -1, -1, -1, -1, -1, -1, /* 0xb8-0xbf */
3742 -1, -1, -1, -1, 562, 565, 568, 571, /* 0xc0-0xc7 */
3743 574, 577, 580, 583, 586, -1, -1, -1, /* 0xc8-0xcf */
3744 -1, -1, -1, -1, -1, -1, -1, -1, /* 0xd0-0xd7 */
3745 -1, -1, -1, -1, -1, -1, -1, -1, /* 0xd8-0xdf */
3746 -1, -1, -1, -1, -1, -1, -1, -1, /* 0xe0-0xe7 */
3747 -1, -1, -1, -1, -1, -1, -1, -1, /* 0xe8-0xef */
3748 -1, 589, 592, 595, -1, -1, -1, -1, /* 0xf0-0xf7 */
3750 static const short translit_page02
[8] = {
3751 598, 600, 602, 604, -1, -1, -1, -1, /* 0x18-0x1f */
3753 static const short translit_page02_1
[40] = {
3754 -1, 606, 608, 610, 612, 614, -1, -1, /* 0xb8-0xbf */
3755 -1, -1, -1, -1, -1, -1, 616, -1, /* 0xc0-0xc7 */
3756 618, 620, 622, 624, -1, 626, -1, -1, /* 0xc8-0xcf */
3757 -1, -1, -1, -1, -1, -1, -1, -1, /* 0xd0-0xd7 */
3758 -1, -1, -1, -1, 628, 630, -1, -1, /* 0xd8-0xdf */
3760 static const short translit_page03
[48] = {
3761 632, 634, 636, -1, -1, 638, 640, -1, /* 0xd0-0xd7 */
3762 -1, -1, -1, -1, -1, -1, -1, -1, /* 0xd8-0xdf */
3763 -1, -1, -1, -1, -1, -1, -1, -1, /* 0xe0-0xe7 */
3764 -1, -1, -1, -1, -1, -1, -1, -1, /* 0xe8-0xef */
3765 642, 644, 646, -1, 648, 650, -1, -1, /* 0xf0-0xf7 */
3766 -1, 652, -1, -1, -1, -1, -1, -1, /* 0xf8-0xff */
3768 static const short translit_page05
[8] = {
3769 657, 660, 663, -1, -1, -1, -1, -1, /* 0xf0-0xf7 */
3771 static const short translit_page06
[16] = {
3772 -1, -1, -1, -1, -1, 666, 669, 672, /* 0x70-0x77 */
3773 675, -1, -1, -1, -1, -1, -1, -1, /* 0x78-0x7f */
3775 static const short translit_page0e
[48] = {
3776 -1, -1, -1, 681, -1, -1, -1, -1, /* 0xb0-0xb7 */
3777 -1, -1, -1, -1, -1, -1, -1, -1, /* 0xb8-0xbf */
3778 -1, -1, -1, -1, -1, -1, -1, -1, /* 0xc0-0xc7 */
3779 -1, -1, -1, -1, -1, -1, -1, -1, /* 0xc8-0xcf */
3780 -1, -1, -1, -1, -1, -1, -1, -1, /* 0xd0-0xd7 */
3781 -1, -1, -1, -1, 684, 687, -1, -1, /* 0xd8-0xdf */
3783 static const short translit_page0f
[16] = {
3784 -1, -1, -1, -1, -1, -1, -1, 690, /* 0x70-0x77 */
3785 -1, 693, -1, -1, -1, -1, -1, -1, /* 0x78-0x7f */
3787 static const short translit_page1e
[160] = {
3788 -1, -1, 696, 698, -1, -1, -1, -1, /* 0x00-0x07 */
3789 -1, -1, 700, 702, -1, -1, -1, -1, /* 0x08-0x0f */
3790 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x10-0x17 */
3791 -1, -1, -1, -1, -1, -1, 704, 706, /* 0x18-0x1f */
3792 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x20-0x27 */
3793 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x28-0x2f */
3794 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x30-0x37 */
3795 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x38-0x3f */
3796 708, 710, -1, -1, -1, -1, -1, -1, /* 0x40-0x47 */
3797 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x48-0x4f */
3798 -1, -1, -1, -1, -1, -1, 712, 714, /* 0x50-0x57 */
3799 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x58-0x5f */
3800 716, 718, -1, -1, -1, -1, -1, -1, /* 0x60-0x67 */
3801 -1, -1, 720, 722, -1, -1, -1, -1, /* 0x68-0x6f */
3802 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x70-0x77 */
3803 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x78-0x7f */
3804 724, 727, 730, 733, 736, 739, -1, -1, /* 0x80-0x87 */
3805 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x88-0x8f */
3806 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x90-0x97 */
3807 -1, -1, 742, -1, -1, -1, -1, -1, /* 0x98-0x9f */
3809 static const short translit_page1e_2
[8] = {
3810 -1, -1, 745, 748, -1, -1, -1, -1, /* 0xf0-0xf7 */
3812 static const short translit_page20
[88] = {
3813 -1, -1, 751, 753, 755, 757, 759, -1, /* 0x00-0x07 */
3814 761, 763, 765, -1, -1, -1, -1, -1, /* 0x08-0x0f */
3815 767, 769, 771, 773, 775, 777, -1, -1, /* 0x10-0x17 */
3816 779, 781, 783, 785, 787, 789, 791, 793, /* 0x18-0x1f */
3817 795, -1, 797, -1, 799, 801, 804, -1, /* 0x20-0x27 */
3818 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x28-0x2f */
3819 808, -1, 813, 815, 818, -1, 822, 825, /* 0x30-0x37 */
3820 -1, 829, 831, -1, 833, -1, -1, -1, /* 0x38-0x3f */
3821 -1, -1, -1, -1, 836, -1, -1, 838, /* 0x40-0x47 */
3822 841, 844, -1, -1, -1, -1, -1, -1, /* 0x48-0x4f */
3823 -1, -1, -1, -1, -1, -1, -1, 847, /* 0x50-0x57 */
3825 static const short translit_page20_3
[8] = {
3826 852, -1, -1, 855, 860, -1, -1, -1, /* 0xa8-0xaf */
3828 static const short translit_page21
[216] = {
3829 864, 868, 872, 874, -1, 877, 881, 885, /* 0x00-0x07 */
3830 -1, 887, 890, 892, 894, 896, 898, 900, /* 0x08-0x0f */
3831 902, 904, 906, 908, -1, 910, 912, -1, /* 0x10-0x17 */
3832 -1, 915, 917, 919, 921, 923, -1, -1, /* 0x18-0x1f */
3833 -1, 925, 929, -1, 932, -1, 934, -1, /* 0x20-0x27 */
3834 938, -1, -1, -1, 940, 942, 944, 946, /* 0x28-0x2f */
3835 948, 950, -1, 952, 954, 956, 958, 960, /* 0x30-0x37 */
3836 962, 964, -1, 966, -1, 970, 972, 974, /* 0x38-0x3f */
3837 976, -1, -1, -1, -1, 978, 980, 982, /* 0x40-0x47 */
3838 984, 986, -1, -1, -1, -1, -1, -1, /* 0x48-0x4f */
3839 -1, -1, -1, 988, 994, 1000, 1006, 1012, /* 0x50-0x57 */
3840 1018, 1024, 1030, 1036, 1042, 1048, 1054, 1060, /* 0x58-0x5f */
3841 1064, 1066, 1069, 1073, 1076, 1078, 1081, 1085, /* 0x60-0x67 */
3842 1090, 1093, 1095, 1098, 1102, 1104, 1106, 1108, /* 0x68-0x6f */
3843 1110, 1112, 1115, 1119, 1122, 1124, 1127, 1131, /* 0x70-0x77 */
3844 1136, 1139, 1141, 1144, 1148, 1150, 1152, 1154, /* 0x78-0x7f */
3845 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x80-0x87 */
3846 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x88-0x8f */
3847 1156, 1159, 1161, 1164, 1166, -1, -1, -1, /* 0x90-0x97 */
3848 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x98-0x9f */
3849 -1, -1, -1, -1, -1, -1, -1, -1, /* 0xa0-0xa7 */
3850 -1, -1, -1, -1, -1, -1, -1, -1, /* 0xa8-0xaf */
3851 -1, -1, -1, -1, -1, -1, -1, -1, /* 0xb0-0xb7 */
3852 -1, -1, -1, -1, -1, -1, -1, -1, /* 0xb8-0xbf */
3853 -1, -1, -1, -1, -1, -1, -1, -1, /* 0xc0-0xc7 */
3854 -1, -1, -1, -1, -1, -1, -1, -1, /* 0xc8-0xcf */
3855 1170, -1, 1173, -1, 1176, -1, -1, -1, /* 0xd0-0xd7 */
3857 static const short translit_page22
[96] = {
3858 -1, -1, 1180, -1, -1, 1182, 1184, 1186, /* 0x10-0x17 */
3859 -1, 1188, -1, -1, -1, -1, -1, -1, /* 0x18-0x1f */
3860 -1, -1, -1, 1190, -1, -1, -1, -1, /* 0x20-0x27 */
3861 -1, -1, -1, -1, 1192, 1195, -1, 1199, /* 0x28-0x2f */
3862 1202, -1, -1, -1, -1, -1, 1206, -1, /* 0x30-0x37 */
3863 -1, -1, -1, -1, 1208, -1, -1, -1, /* 0x38-0x3f */
3864 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x40-0x47 */
3865 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x48-0x4f */
3866 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x50-0x57 */
3867 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x58-0x5f */
3868 1210, -1, -1, -1, 1213, 1216, -1, -1, /* 0x60-0x67 */
3869 -1, -1, 1219, 1222, -1, -1, -1, -1, /* 0x68-0x6f */
3871 static const short translit_page22_4
[48] = {
3872 -1, -1, -1, -1, -1, 1225, -1, -1, /* 0xc0-0xc7 */
3873 -1, -1, -1, -1, -1, -1, -1, -1, /* 0xc8-0xcf */
3874 -1, -1, -1, -1, -1, -1, -1, -1, /* 0xd0-0xd7 */
3875 1227, 1231, -1, -1, -1, -1, -1, -1, /* 0xd8-0xdf */
3876 -1, -1, -1, -1, -1, -1, -1, -1, /* 0xe0-0xe7 */
3877 -1, -1, -1, -1, -1, -1, -1, 1235, /* 0xe8-0xef */
3879 static const short translit_page24
[240] = {
3880 1239, 1245, 1251, 1257, 1263, 1269, 1275, 1281, /* 0x00-0x07 */
3881 1287, 1292, 1297, 1302, 1307, 1312, 1317, 1322, /* 0x08-0x0f */
3882 1327, 1333, 1339, 1345, 1351, 1357, 1363, 1369, /* 0x10-0x17 */
3883 1375, 1381, 1386, 1392, 1398, 1403, 1408, 1413, /* 0x18-0x1f */
3884 1418, 1423, -1, -1, 1429, -1, -1, -1, /* 0x20-0x27 */
3885 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x28-0x2f */
3886 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x30-0x37 */
3887 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x38-0x3f */
3888 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x40-0x47 */
3889 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x48-0x4f */
3890 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x50-0x57 */
3891 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x58-0x5f */
3892 1434, 1438, 1442, 1446, 1450, 1454, 1458, 1462, /* 0x60-0x67 */
3893 1466, 1470, 1475, 1480, 1485, 1490, 1495, 1500, /* 0x68-0x6f */
3894 1505, 1510, 1515, 1520, 1525, 1529, 1533, 1537, /* 0x70-0x77 */
3895 1541, 1545, 1549, 1553, 1557, 1561, 1566, 1571, /* 0x78-0x7f */
3896 1576, 1581, 1586, 1591, 1596, 1601, 1606, 1611, /* 0x80-0x87 */
3897 1616, 1619, 1622, 1625, 1628, 1631, 1634, 1637, /* 0x88-0x8f */
3898 1640, 1643, 1647, 1651, 1655, 1659, 1663, 1667, /* 0x90-0x97 */
3899 1671, 1675, 1679, 1683, 1687, 1691, 1695, 1699, /* 0x98-0x9f */
3900 1703, 1707, 1711, 1715, 1719, 1723, 1727, 1731, /* 0xa0-0xa7 */
3901 1735, 1739, 1743, 1747, 1751, 1755, 1759, 1763, /* 0xa8-0xaf */
3902 1767, 1771, 1775, 1779, 1783, 1787, 1791, 1795, /* 0xb0-0xb7 */
3903 1799, 1803, 1807, 1811, 1815, 1819, 1823, 1827, /* 0xb8-0xbf */
3904 1831, 1835, 1839, 1843, 1847, 1851, 1855, 1859, /* 0xc0-0xc7 */
3905 1863, 1867, 1871, 1875, 1879, 1883, 1887, 1891, /* 0xc8-0xcf */
3906 1895, 1899, 1903, 1907, 1911, 1915, 1919, 1923, /* 0xd0-0xd7 */
3907 1927, 1931, 1935, 1939, 1943, 1947, 1951, 1955, /* 0xd8-0xdf */
3908 1959, 1963, 1967, 1971, 1975, 1979, 1983, 1987, /* 0xe0-0xe7 */
3909 1991, 1995, 1999, -1, -1, -1, -1, -1, /* 0xe8-0xef */
3911 static const short translit_page25
[64] = {
3912 2003, -1, 2005, -1, -1, -1, -1, -1, /* 0x00-0x07 */
3913 -1, -1, -1, -1, 2007, -1, -1, -1, /* 0x08-0x0f */
3914 2009, -1, -1, -1, 2011, -1, -1, -1, /* 0x10-0x17 */
3915 2013, -1, -1, -1, 2015, -1, -1, -1, /* 0x18-0x1f */
3916 -1, -1, -1, -1, 2017, -1, -1, -1, /* 0x20-0x27 */
3917 -1, -1, -1, -1, 2019, -1, -1, -1, /* 0x28-0x2f */
3918 -1, -1, -1, -1, 2021, -1, -1, -1, /* 0x30-0x37 */
3919 -1, -1, -1, -1, 2023, -1, -1, -1, /* 0x38-0x3f */
3921 static const short translit_page2a
[8] = {
3922 -1, -1, -1, -1, 2032, 2036, 2039, -1, /* 0x70-0x77 */
3924 static const short translit_page2f
[216] = {
3925 2047, 2049, 2051, 2053, 2055, 2057, 2059, 2061, /* 0x00-0x07 */
3926 2063, 2065, 2067, 2069, 2071, 2073, 2075, 2077, /* 0x08-0x0f */
3927 2079, 2081, 2083, 2085, 2087, 2089, 2091, 2093, /* 0x10-0x17 */
3928 2095, 2097, 2099, 2101, 2103, 2105, 2107, 2109, /* 0x18-0x1f */
3929 2111, 2113, 2115, 2117, 2119, 2121, 2123, 2125, /* 0x20-0x27 */
3930 2127, 2129, 2131, 2133, 2135, 2137, 2139, 2141, /* 0x28-0x2f */
3931 2143, 2145, 2147, 2149, 2151, 2153, 2155, 2157, /* 0x30-0x37 */
3932 2159, 2161, 2163, 2165, 2167, 2169, 2171, 2173, /* 0x38-0x3f */
3933 2175, 2177, 2179, 2181, 2183, 2185, 2187, 2189, /* 0x40-0x47 */
3934 2191, 2193, 2195, 2197, 2199, 2201, 2203, 2205, /* 0x48-0x4f */
3935 2207, 2209, 2211, 2213, 2215, 2217, 2219, 2221, /* 0x50-0x57 */
3936 2223, 2225, 2227, 2229, 2231, 2233, 2235, 2237, /* 0x58-0x5f */
3937 2239, 2241, 2243, 2245, 2247, 2249, 2251, 2253, /* 0x60-0x67 */
3938 2255, 2257, 2259, 2261, 2263, 2265, 2267, 2269, /* 0x68-0x6f */
3939 2271, 2273, 2275, 2277, 2279, 2281, 2283, 2285, /* 0x70-0x77 */
3940 2287, 2289, 2291, 2293, 2295, 2297, 2299, 2301, /* 0x78-0x7f */
3941 2303, 2305, 2307, 2309, 2311, 2313, 2315, 2317, /* 0x80-0x87 */
3942 2319, 2321, 2323, 2325, 2327, 2329, 2331, 2333, /* 0x88-0x8f */
3943 2335, 2337, 2339, 2341, 2343, 2345, 2347, 2349, /* 0x90-0x97 */
3944 2351, 2353, 2355, 2357, 2359, 2361, 2363, 2365, /* 0x98-0x9f */
3945 2367, 2369, 2371, 2373, 2375, 2377, 2379, 2381, /* 0xa0-0xa7 */
3946 2383, 2385, 2387, 2389, 2391, 2393, 2395, 2397, /* 0xa8-0xaf */
3947 2399, 2401, 2403, 2405, 2407, 2409, 2411, 2413, /* 0xb0-0xb7 */
3948 2415, 2417, 2419, 2421, 2423, 2425, 2427, 2429, /* 0xb8-0xbf */
3949 2431, 2433, 2435, 2437, 2439, 2441, 2443, 2445, /* 0xc0-0xc7 */
3950 2447, 2449, 2451, 2453, 2455, 2457, 2459, 2461, /* 0xc8-0xcf */
3951 2463, 2465, 2467, 2469, 2471, 2473, -1, -1, /* 0xd0-0xd7 */
3953 static const short translit_page30
[248] = {
3954 2475, -1, -1, -1, -1, -1, -1, -1, /* 0x00-0x07 */
3955 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x08-0x0f */
3956 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x10-0x17 */
3957 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x18-0x1f */
3958 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x20-0x27 */
3959 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x28-0x2f */
3960 -1, -1, -1, -1, -1, -1, 2477, -1, /* 0x30-0x37 */
3961 2479, 2481, 2483, -1, -1, -1, -1, -1, /* 0x38-0x3f */
3962 -1, 2485, -1, 2487, -1, 2489, -1, 2491, /* 0x40-0x47 */
3963 -1, 2493, -1, -1, -1, -1, -1, -1, /* 0x48-0x4f */
3964 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x50-0x57 */
3965 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x58-0x5f */
3966 -1, -1, -1, 2495, -1, -1, -1, -1, /* 0x60-0x67 */
3967 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x68-0x6f */
3968 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x70-0x77 */
3969 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x78-0x7f */
3970 -1, -1, -1, 2497, -1, 2499, -1, 2501, /* 0x80-0x87 */
3971 -1, -1, -1, -1, -1, -1, 2503, -1, /* 0x88-0x8f */
3972 -1, -1, -1, -1, -1, 2505, 2507, -1, /* 0x90-0x97 */
3973 -1, -1, -1, 2509, 2512, -1, -1, -1, /* 0x98-0x9f */
3974 2515, 2517, -1, 2519, -1, 2521, -1, 2523, /* 0xa0-0xa7 */
3975 -1, 2525, -1, -1, -1, -1, -1, -1, /* 0xa8-0xaf */
3976 -1, -1, -1, -1, -1, -1, -1, -1, /* 0xb0-0xb7 */
3977 -1, -1, -1, -1, -1, -1, -1, -1, /* 0xb8-0xbf */
3978 -1, -1, -1, 2527, -1, -1, -1, -1, /* 0xc0-0xc7 */
3979 -1, -1, -1, -1, -1, -1, -1, -1, /* 0xc8-0xcf */
3980 -1, -1, -1, -1, -1, -1, -1, -1, /* 0xd0-0xd7 */
3981 -1, -1, -1, -1, -1, -1, -1, -1, /* 0xd8-0xdf */
3982 -1, -1, -1, 2529, -1, 2531, -1, 2533, /* 0xe0-0xe7 */
3983 -1, -1, -1, -1, -1, -1, 2535, -1, /* 0xe8-0xef */
3984 -1, -1, -1, -1, -1, 2537, 2539, -1, /* 0xf0-0xf7 */
3986 static const short translit_page31
[96] = {
3987 -1, 2541, 2543, 2545, 2547, 2549, 2551, 2553, /* 0x30-0x37 */
3988 2555, 2557, 2559, 2561, 2563, 2565, 2567, 2569, /* 0x38-0x3f */
3989 2571, 2573, 2575, 2577, 2579, 2581, 2583, 2585, /* 0x40-0x47 */
3990 2587, 2589, 2591, 2593, 2595, 2597, 2599, 2601, /* 0x48-0x4f */
3991 2603, 2605, 2607, 2609, 2611, 2613, 2615, 2617, /* 0x50-0x57 */
3992 2619, 2621, 2623, 2625, 2627, 2629, 2631, 2633, /* 0x58-0x5f */
3993 2635, 2637, 2639, 2641, 2643, 2645, 2647, 2649, /* 0x60-0x67 */
3994 2651, 2653, 2655, 2657, 2659, 2661, 2663, 2665, /* 0x68-0x6f */
3995 2667, 2669, 2671, 2673, 2675, 2677, 2679, 2681, /* 0x70-0x77 */
3996 2683, 2685, 2687, 2689, 2691, 2693, 2695, 2697, /* 0x78-0x7f */
3997 2699, 2701, 2703, 2705, 2707, 2709, 2711, 2713, /* 0x80-0x87 */
3998 2715, 2717, 2719, 2721, 2723, 2725, 2727, -1, /* 0x88-0x8f */
4000 static const short translit_page31_5
[528] = {
4001 2729, 2731, 2733, 2735, 2737, 2739, 2741, 2743, /* 0xf0-0xf7 */
4002 2745, 2747, 2749, 2751, 2753, 2755, 2757, 2759, /* 0xf8-0xff */
4004 2761, 2765, 2769, 2773, 2777, 2781, 2785, 2789, /* 0x00-0x07 */
4005 2793, 2797, 2801, 2805, 2809, 2813, 2817, 2822, /* 0x08-0x0f */
4006 2827, 2832, 2837, 2842, 2847, 2852, 2857, 2862, /* 0x10-0x17 */
4007 2867, 2872, 2877, 2882, 2887, 2892, 2900, -1, /* 0x18-0x1f */
4008 2907, 2911, 2915, 2919, 2923, 2927, 2931, 2935, /* 0x20-0x27 */
4009 2939, 2943, 2947, 2951, 2955, 2959, 2963, 2967, /* 0x28-0x2f */
4010 2971, 2975, 2979, 2983, 2987, 2991, 2995, 2999, /* 0x30-0x37 */
4011 3003, 3007, 3011, 3015, 3019, 3023, 3027, 3031, /* 0x38-0x3f */
4012 3035, 3039, 3043, 3047, -1, -1, -1, -1, /* 0x40-0x47 */
4013 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x48-0x4f */
4014 3051, 3055, 3060, 3065, 3070, 3075, 3080, 3085, /* 0x50-0x57 */
4015 3090, 3095, 3100, 3105, 3110, 3115, 3120, 3125, /* 0x58-0x5f */
4016 3130, 3134, 3138, 3142, 3146, 3150, 3154, 3158, /* 0x60-0x67 */
4017 3162, 3166, 3170, 3174, 3178, 3182, 3186, 3191, /* 0x68-0x6f */
4018 3196, 3201, 3206, 3211, 3216, 3221, 3226, 3231, /* 0x70-0x77 */
4019 3236, 3241, 3246, 3251, 3256, 3264, -1, -1, /* 0x78-0x7f */
4020 3271, 3275, 3279, 3283, 3287, 3291, 3295, 3299, /* 0x80-0x87 */
4021 3303, 3307, 3311, 3315, 3319, 3323, 3327, 3331, /* 0x88-0x8f */
4022 3335, 3339, 3343, 3347, 3351, 3355, 3359, 3363, /* 0x90-0x97 */
4023 3367, 3371, 3375, 3379, 3383, 3387, 3391, 3395, /* 0x98-0x9f */
4024 3399, 3403, 3407, 3411, 3415, 3419, 3423, 3427, /* 0xa0-0xa7 */
4025 3431, 3435, 3439, 3443, 3447, 3451, 3455, 3459, /* 0xa8-0xaf */
4026 3463, 3467, 3472, 3477, 3482, 3487, 3492, 3497, /* 0xb0-0xb7 */
4027 3502, 3507, 3512, 3517, 3522, 3527, 3532, 3537, /* 0xb8-0xbf */
4028 3542, 3545, 3548, 3551, 3554, 3557, 3560, 3563, /* 0xc0-0xc7 */
4029 3566, 3569, 3573, 3577, 3581, 3584, 3588, 3591, /* 0xc8-0xcf */
4030 3595, 3599, 3603, 3607, 3611, 3615, 3619, 3623, /* 0xd0-0xd7 */
4031 3627, 3631, 3635, 3639, 3643, 3647, 3651, 3655, /* 0xd8-0xdf */
4032 3659, 3663, 3667, 3671, 3675, 3679, 3683, 3687, /* 0xe0-0xe7 */
4033 3691, 3695, 3699, 3703, 3707, 3711, 3715, 3719, /* 0xe8-0xef */
4034 3723, 3727, 3731, 3735, 3739, 3743, 3747, 3751, /* 0xf0-0xf7 */
4035 3755, 3759, 3763, 3767, 3771, 3775, 3779, -1, /* 0xf8-0xff */
4037 3783, 3788, 3793, 3798, 3802, 3807, 3811, 3815, /* 0x00-0x07 */
4038 3821, 3826, 3830, 3834, 3838, 3843, 3848, 3852, /* 0x08-0x0f */
4039 3856, 3859, 3863, 3868, 3873, 3876, 3882, 3889, /* 0x10-0x17 */
4040 3895, 3899, 3905, 3911, 3916, 3920, 3924, 3928, /* 0x18-0x1f */
4041 3933, 3939, 3944, 3948, 3952, 3956, 3959, 3962, /* 0x20-0x27 */
4042 3965, 3968, 3972, 3976, 3982, 3986, 3991, 3997, /* 0x28-0x2f */
4043 4001, 4004, 4007, 4013, 4018, 4024, 4028, 4034, /* 0x30-0x37 */
4044 4037, 4041, 4045, 4049, 4053, 4057, 4062, 4066, /* 0x38-0x3f */
4045 4069, 4073, 4077, 4081, 4086, 4090, 4094, 4098, /* 0x40-0x47 */
4046 4104, 4109, 4112, 4118, 4121, 4126, 4131, 4135, /* 0x48-0x4f */
4047 4139, 4143, 4148, 4151, 4155, 4160, 4163, 4169, /* 0x50-0x57 */
4048 4173, 4176, 4179, 4182, 4185, 4188, 4191, 4194, /* 0x58-0x5f */
4049 4197, 4200, 4203, 4207, 4211, 4215, 4219, 4223, /* 0x60-0x67 */
4050 4227, 4231, 4235, 4239, 4243, 4247, 4251, 4255, /* 0x68-0x6f */
4051 4259, 4263, 4267, 4270, 4273, 4277, 4280, 4283, /* 0x70-0x77 */
4052 4286, 4291, 4296, 4299, 4302, 4305, 4308, 4311, /* 0x78-0x7f */
4053 4316, 4319, 4322, 4325, 4328, 4331, 4334, 4337, /* 0x80-0x87 */
4054 4340, 4344, 4349, 4352, 4355, 4358, 4361, 4364, /* 0x88-0x8f */
4055 4367, 4370, 4374, 4378, 4382, 4386, 4389, 4392, /* 0x90-0x97 */
4056 4395, 4398, 4401, 4404, 4407, 4410, 4413, 4416, /* 0x98-0x9f */
4057 4421, 4426, 4430, 4435, 4440, 4445, 4449, 4454, /* 0xa0-0xa7 */
4058 4458, 4464, 4467, 4471, 4475, 4479, 4483, 4489, /* 0xa8-0xaf */
4059 4497, 4500, 4503, 4506, 4509, 4512, 4515, 4518, /* 0xb0-0xb7 */
4060 4521, 4524, 4527, 4530, 4533, 4536, 4539, 4542, /* 0xb8-0xbf */
4061 4545, 4548, 4551, 4556, 4559, 4562, 4565, 4570, /* 0xc0-0xc7 */
4062 4574, 4577, 4580, 4583, 4586, 4589, 4592, 4595, /* 0xc8-0xcf */
4063 4598, 4601, 4604, 4608, 4611, 4614, 4618, 4622, /* 0xd0-0xd7 */
4064 4625, 4630, 4634, 4637, 4640, 4643, 4646, 4650, /* 0xd8-0xdf */
4065 4658, 4661, 4664, 4667, 4670, 4673, 4676, 4679, /* 0xe0-0xe7 */
4066 4682, 4685, 4689, 4693, 4697, 4701, 4705, 4709, /* 0xe8-0xef */
4067 4713, 4717, 4721, 4725, 4729, 4733, 4737, 4741, /* 0xf0-0xf7 */
4068 4745, 4749, 4753, 4757, 4761, 4765, 4769, 4654, /* 0xf8-0xff */
4070 static const short translit_pagef9
[368] = {
4071 4773, 4775, 4777, 4779, 4781, 4783, 4785, 4787, /* 0x00-0x07 */
4072 4789, 4791, 4793, 4795, 4797, 4799, 4801, 4803, /* 0x08-0x0f */
4073 4805, 4807, 4809, 4811, 4813, 4815, 4817, 4819, /* 0x10-0x17 */
4074 4821, 4823, 4825, 4827, 4829, 4831, 4833, 4835, /* 0x18-0x1f */
4075 4837, 4839, 4841, 4843, 4845, 4847, 4849, 4851, /* 0x20-0x27 */
4076 4853, 4855, 4857, 4859, 4861, 4863, 4865, 4867, /* 0x28-0x2f */
4077 4869, 4871, 4873, 4875, 4877, 4879, 4881, 4883, /* 0x30-0x37 */
4078 4885, 4887, 4889, 4891, 4893, 4895, 4897, 4899, /* 0x38-0x3f */
4079 4901, 4903, 4905, 4907, 4909, 4911, 4913, 4915, /* 0x40-0x47 */
4080 4917, 4919, 4921, 4923, 4925, 4927, 4929, 4931, /* 0x48-0x4f */
4081 4933, 4935, 4937, 4939, 4941, 4943, 4945, 4947, /* 0x50-0x57 */
4082 4949, 4951, 4953, 4955, 4957, 4959, 4961, 4963, /* 0x58-0x5f */
4083 4965, 4967, 4969, 4971, 4973, 4975, 4977, 4979, /* 0x60-0x67 */
4084 4981, 4983, 4985, 4987, 4989, 4991, 4993, 4995, /* 0x68-0x6f */
4085 4997, 4999, 5001, 5003, 5005, 5007, 5009, 5011, /* 0x70-0x77 */
4086 5013, 5015, 5017, 5019, 5021, 5023, 5025, 5027, /* 0x78-0x7f */
4087 5029, 5031, 5033, 5035, 5037, 5039, 5041, 5043, /* 0x80-0x87 */
4088 5045, 5047, 5049, 5051, 5053, 5055, 5057, 5059, /* 0x88-0x8f */
4089 5061, 5063, 5065, 5067, 5069, 5071, 5073, 5075, /* 0x90-0x97 */
4090 5077, 5079, 5081, 5083, 5085, 5087, 5089, 5091, /* 0x98-0x9f */
4091 5093, 5095, 5097, 5099, 5101, 5103, 5105, 5107, /* 0xa0-0xa7 */
4092 5109, 5111, 5113, 5115, 5117, 5119, 5121, 5123, /* 0xa8-0xaf */
4093 5125, 5127, 5129, 5131, 5133, 5135, 5137, 5139, /* 0xb0-0xb7 */
4094 5141, 5143, 5145, 5147, 5149, 5151, 5153, 5155, /* 0xb8-0xbf */
4095 5157, 5159, 5161, 5163, 5165, 5167, 5169, 5171, /* 0xc0-0xc7 */
4096 5173, 5175, 5177, 5179, 5181, 5183, 5185, 5187, /* 0xc8-0xcf */
4097 5189, 5191, 5193, 5195, 5197, 5199, 5201, 5203, /* 0xd0-0xd7 */
4098 5205, 5207, 5209, 5211, 5213, 5215, 5217, 5219, /* 0xd8-0xdf */
4099 5221, 5223, 5225, 5227, 5229, 5231, 5233, 5235, /* 0xe0-0xe7 */
4100 5237, 5239, 5241, 5243, 5245, 5247, 5249, 5251, /* 0xe8-0xef */
4101 5253, 5255, 5257, 5259, 5261, 5263, 5265, 5267, /* 0xf0-0xf7 */
4102 5269, 5271, 5273, 5275, 5277, 5279, 5281, 5283, /* 0xf8-0xff */
4104 5285, 5287, 5289, 5291, 5293, 5295, 5297, 5299, /* 0x00-0x07 */
4105 5301, 5303, 5305, 5307, 5309, 5311, -1, -1, /* 0x08-0x0f */
4106 5313, -1, 5315, -1, -1, 5317, 5319, 5321, /* 0x10-0x17 */
4107 5323, 5325, 5327, 5329, 5331, 5333, 5335, -1, /* 0x18-0x1f */
4108 5337, -1, 5339, -1, -1, 5341, 5343, -1, /* 0x20-0x27 */
4109 -1, -1, 5345, 5347, 5349, 5351, -1, -1, /* 0x28-0x2f */
4110 5353, 5355, 5357, 5359, 5361, 5363, 5365, 5367, /* 0x30-0x37 */
4111 5369, 5371, 5373, 5375, 5377, 5379, 5381, 5383, /* 0x38-0x3f */
4112 5385, 5387, 5389, 5391, 5393, 5395, 5397, 5399, /* 0x40-0x47 */
4113 5401, 5403, 5405, 5407, 5409, 5411, 5413, 5415, /* 0x48-0x4f */
4114 5417, 5419, 5421, 5423, 5425, 5427, 5429, 5431, /* 0x50-0x57 */
4115 5433, 5435, 5437, 5439, 5441, 5443, 5445, 5447, /* 0x58-0x5f */
4116 5449, 5451, 5453, 5455, 5457, 5459, 5461, 5463, /* 0x60-0x67 */
4117 5465, 5467, 5469, -1, -1, -1, -1, -1, /* 0x68-0x6f */
4119 static const short translit_pagefb
[80] = {
4120 5471, 5474, 5477, 5480, 5484, 5488, 5491, -1, /* 0x00-0x07 */
4121 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x08-0x0f */
4122 -1, -1, -1, 5494, 5497, 5500, 5503, 5506, /* 0x10-0x17 */
4123 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x18-0x1f */
4124 5509, 5511, 5513, 5515, 5517, 5519, 5521, 5523, /* 0x20-0x27 */
4125 5525, 5527, -1, -1, -1, -1, -1, -1, /* 0x28-0x2f */
4126 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x30-0x37 */
4127 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x38-0x3f */
4128 -1, -1, -1, -1, -1, -1, -1, -1, /* 0x40-0x47 */
4129 -1, -1, -1, -1, -1, -1, -1, 5529, /* 0x48-0x4f */
4131 static const short translit_pagefe
[40] = {
4132 -1, 5532, 5534, 5536, 5538, 5540, 5542, 5544, /* 0x48-0x4f */
4133 5546, 5548, 5550, -1, 5552, 5554, 5556, 5558, /* 0x50-0x57 */
4134 5560, 5562, 5564, 5566, 5568, 5570, 5572, 5574, /* 0x58-0x5f */
4135 5576, 5578, 5580, 5582, 5584, 5586, 5588, -1, /* 0x60-0x67 */
4136 5590, 5592, 5594, 5596, -1, -1, -1, -1, /* 0x68-0x6f */
4138 static const short translit_pageff
[240] = {
4139 -1, 5598, 5600, 5602, 5604, 5606, 5608, 5610, /* 0x00-0x07 */
4140 5612, 5614, 5616, 5618, 5620, 5622, 5624, 5626, /* 0x08-0x0f */
4141 5628, 5630, 5632, 5634, 5636, 5638, 5640, 5642, /* 0x10-0x17 */
4142 5644, 5646, 5648, 5650, 5652, 5654, 5656, 5658, /* 0x18-0x1f */
4143 5660, 5662, 5664, 5666, 5668, 5670, 5672, 5674, /* 0x20-0x27 */
4144 5676, 5678, 5680, 5682, 5684, 5686, 5688, 5690, /* 0x28-0x2f */
4145 5692, 5694, 5696, 5698, 5700, 5702, 5704, 5706, /* 0x30-0x37 */
4146 5708, 5710, 5712, 5714, 5716, 5718, 5720, 5722, /* 0x38-0x3f */
4147 5724, 5726, 5728, 5730, 5732, 5734, 5736, 5738, /* 0x40-0x47 */
4148 5740, 5742, 5744, 5746, 5748, 5750, 5752, 5754, /* 0x48-0x4f */
4149 5756, 5758, 5760, 5762, 5764, 5766, 5768, 5770, /* 0x50-0x57 */
4150 5772, 5774, 5776, 5778, 5780, 5782, 5784, 5786, /* 0x58-0x5f */
4151 5788, 5790, 5792, 5794, 5796, 5798, 5800, 5802, /* 0x60-0x67 */
4152 5804, 5806, 5808, 5810, 5812, 5814, 5816, 5818, /* 0x68-0x6f */
4153 5820, 5822, 5824, 5826, 5828, 5830, 5832, 5834, /* 0x70-0x77 */
4154 5836, 5838, 5840, 5842, 5844, 5846, 5848, 5850, /* 0x78-0x7f */
4155 5852, 5854, 5856, 5858, 5860, 5862, 5864, 5866, /* 0x80-0x87 */
4156 5868, 5870, 5872, 5874, 5876, 5878, 5880, 5882, /* 0x88-0x8f */
4157 5884, 5886, 5888, 5890, 5892, 5894, 5896, 5898, /* 0x90-0x97 */
4158 5900, 5902, 5904, 5906, 5908, 5910, 5912, 5914, /* 0x98-0x9f */
4159 5916, 5918, 5920, 5922, 5924, 5926, 5928, 5930, /* 0xa0-0xa7 */
4160 5932, 5934, 5936, 5938, 5940, 5942, 5944, 5946, /* 0xa8-0xaf */
4161 5948, 5950, 5952, 5954, 5956, 5958, 5960, 5962, /* 0xb0-0xb7 */
4162 5964, 5966, 5968, 5970, 5972, 5974, 5976, -1, /* 0xb8-0xbf */
4163 -1, -1, 5978, 5980, 5982, 5984, 5986, 5988, /* 0xc0-0xc7 */
4164 -1, -1, 5990, 5992, 5994, 5996, 5998, 6000, /* 0xc8-0xcf */
4165 -1, -1, 6002, 6004, 6006, 6008, 6010, 6012, /* 0xd0-0xd7 */
4166 -1, -1, 6014, 6016, 6018, -1, -1, -1, /* 0xd8-0xdf */
4167 6020, 6022, 6024, 6026, 6028, 6030, 6032, -1, /* 0xe0-0xe7 */
4168 6034, 6036, 6038, 6040, 6042, 6044, 6046, -1, /* 0xe8-0xef */
4170 static const short translit_page1d4
[1024] = {
4171 6048, 6050, 6052, 6054, 6056, 6058, 6060, 6062, /* 0x00-0x07 */
4172 6064, 6066, 6068, 6070, 6072, 6074, 6076, 6078, /* 0x08-0x0f */
4173 6080, 6082, 6084, 6086, 6088, 6090, 6092, 6094, /* 0x10-0x17 */
4174 6096, 6098, 6100, 6102, 6104, 6106, 6108, 6110, /* 0x18-0x1f */
4175 6112, 6114, 6116, 6118, 6120, 6122, 6124, 6126, /* 0x20-0x27 */
4176 6128, 6130, 6132, 6134, 6136, 6138, 6140, 6142, /* 0x28-0x2f */
4177 6144, 6146, 6148, 6150, 6152, 6154, 6156, 6158, /* 0x30-0x37 */
4178 6160, 6162, 6164, 6166, 6168, 6170, 6172, 6174, /* 0x38-0x3f */
4179 6176, 6178, 6180, 6182, 6184, 6186, 6188, 6190, /* 0x40-0x47 */
4180 6192, 6194, 6196, 6198, 6200, 6202, 6204, 6206, /* 0x48-0x4f */
4181 6208, 6210, 6212, 6214, 6216, -1, 6218, 6220, /* 0x50-0x57 */
4182 6222, 6224, 6226, 6228, 6230, 6232, 6234, 6236, /* 0x58-0x5f */
4183 6238, 6240, 6242, 6244, 6246, 6248, 6250, 6252, /* 0x60-0x67 */
4184 6254, 6256, 6258, 6260, 6262, 6264, 6266, 6268, /* 0x68-0x6f */
4185 6270, 6272, 6274, 6276, 6278, 6280, 6282, 6284, /* 0x70-0x77 */
4186 6286, 6288, 6290, 6292, 6294, 6296, 6298, 6300, /* 0x78-0x7f */
4187 6302, 6304, 6306, 6308, 6310, 6312, 6314, 6316, /* 0x80-0x87 */
4188 6318, 6320, 6322, 6324, 6326, 6328, 6330, 6332, /* 0x88-0x8f */
4189 6334, 6336, 6338, 6340, 6342, 6344, 6346, 6348, /* 0x90-0x97 */
4190 6350, 6352, 6354, 6356, 6358, -1, 6360, 6362, /* 0x98-0x9f */
4191 -1, -1, 6364, -1, -1, 6366, 6368, -1, /* 0xa0-0xa7 */
4192 -1, 6370, 6372, 6374, 6376, -1, 6378, 6380, /* 0xa8-0xaf */
4193 6382, 6384, 6386, 6388, 6390, 6392, 6394, 6396, /* 0xb0-0xb7 */
4194 6398, 6400, -1, 6402, -1, 6404, 6406, 6408, /* 0xb8-0xbf */
4195 6410, 6412, 6414, 6416, -1, 6418, 6420, 6422, /* 0xc0-0xc7 */
4196 6424, 6426, 6428, 6430, 6432, 6434, 6436, 6438, /* 0xc8-0xcf */
4197 6440, 6442, 6444, 6446, 6448, 6450, 6452, 6454, /* 0xd0-0xd7 */
4198 6456, 6458, 6460, 6462, 6464, 6466, 6468, 6470, /* 0xd8-0xdf */
4199 6472, 6474, 6476, 6478, 6480, 6482, 6484, 6486, /* 0xe0-0xe7 */
4200 6488, 6490, 6492, 6494, 6496, 6498, 6500, 6502, /* 0xe8-0xef */
4201 6504, 6506, 6508, 6510, 6512, 6514, 6516, 6518, /* 0xf0-0xf7 */
4202 6520, 6522, 6524, 6526, 6528, 6530, 6532, 6534, /* 0xf8-0xff */
4204 6536, 6538, 6540, 6542, 6544, 6546, -1, 6548, /* 0x00-0x07 */
4205 6550, 6552, 6554, -1, -1, 6556, 6558, 6560, /* 0x08-0x0f */
4206 6562, 6564, 6566, 6568, 6570, -1, 6572, 6574, /* 0x10-0x17 */
4207 6576, 6578, 6580, 6582, 6584, -1, 6586, 6588, /* 0x18-0x1f */
4208 6590, 6592, 6594, 6596, 6598, 6600, 6602, 6604, /* 0x20-0x27 */
4209 6606, 6608, 6610, 6612, 6614, 6616, 6618, 6620, /* 0x28-0x2f */
4210 6622, 6624, 6626, 6628, 6630, 6632, 6634, 6636, /* 0x30-0x37 */
4211 6638, 6640, -1, 6642, 6644, 6646, 6648, -1, /* 0x38-0x3f */
4212 6650, 6652, 6654, 6656, 6658, -1, 6660, -1, /* 0x40-0x47 */
4213 -1, -1, 6662, 6664, 6666, 6668, 6670, 6672, /* 0x48-0x4f */
4214 6674, -1, 6676, 6678, 6680, 6682, 6684, 6686, /* 0x50-0x57 */
4215 6688, 6690, 6692, 6694, 6696, 6698, 6700, 6702, /* 0x58-0x5f */
4216 6704, 6706, 6708, 6710, 6712, 6714, 6716, 6718, /* 0x60-0x67 */
4217 6720, 6722, 6724, 6726, 6728, 6730, 6732, 6734, /* 0x68-0x6f */
4218 6736, 6738, 6740, 6742, 6744, 6746, 6748, 6750, /* 0x70-0x77 */
4219 6752, 6754, 6756, 6758, 6760, 6762, 6764, 6766, /* 0x78-0x7f */
4220 6768, 6770, 6772, 6774, 6776, 6778, 6780, 6782, /* 0x80-0x87 */
4221 6784, 6786, 6788, 6790, 6792, 6794, 6796, 6798, /* 0x88-0x8f */
4222 6800, 6802, 6804, 6806, 6808, 6810, 6812, 6814, /* 0x90-0x97 */
4223 6816, 6818, 6820, 6822, 6824, 6826, 6828, 6830, /* 0x98-0x9f */
4224 6832, 6834, 6836, 6838, 6840, 6842, 6844, 6846, /* 0xa0-0xa7 */
4225 6848, 6850, 6852, 6854, 6856, 6858, 6860, 6862, /* 0xa8-0xaf */
4226 6864, 6866, 6868, 6870, 6872, 6874, 6876, 6878, /* 0xb0-0xb7 */
4227 6880, 6882, 6884, 6886, 6888, 6890, 6892, 6894, /* 0xb8-0xbf */
4228 6896, 6898, 6900, 6902, 6904, 6906, 6908, 6910, /* 0xc0-0xc7 */
4229 6912, 6914, 6916, 6918, 6920, 6922, 6924, 6926, /* 0xc8-0xcf */
4230 6928, 6930, 6932, 6934, 6936, 6938, 6940, 6942, /* 0xd0-0xd7 */
4231 6944, 6946, 6948, 6950, 6952, 6954, 6956, 6958, /* 0xd8-0xdf */
4232 6960, 6962, 6964, 6966, 6968, 6970, 6972, 6974, /* 0xe0-0xe7 */
4233 6976, 6978, 6980, 6982, 6984, 6986, 6988, 6990, /* 0xe8-0xef */
4234 6992, 6994, 6996, 6998, 7000, 7002, 7004, 7006, /* 0xf0-0xf7 */
4235 7008, 7010, 7012, 7014, 7016, 7018, 7020, 7022, /* 0xf8-0xff */
4237 7024, 7026, 7028, 7030, 7032, 7034, 7036, 7038, /* 0x00-0x07 */
4238 7040, 7042, 7044, 7046, 7048, 7050, 7052, 7054, /* 0x08-0x0f */
4239 7056, 7058, 7060, 7062, 7064, 7066, 7068, 7070, /* 0x10-0x17 */
4240 7072, 7074, 7076, 7078, 7080, 7082, 7084, 7086, /* 0x18-0x1f */
4241 7088, 7090, 7092, 7094, 7096, 7098, 7100, 7102, /* 0x20-0x27 */
4242 7104, 7106, 7108, 7110, 7112, 7114, 7116, 7118, /* 0x28-0x2f */
4243 7120, 7122, 7124, 7126, 7128, 7130, 7132, 7134, /* 0x30-0x37 */
4244 7136, 7138, 7140, 7142, 7144, 7146, 7148, 7150, /* 0x38-0x3f */
4245 7152, 7154, 7156, 7158, 7160, 7162, 7164, 7166, /* 0x40-0x47 */
4246 7168, 7170, 7172, 7174, 7176, 7178, 7180, 7182, /* 0x48-0x4f */
4247 7184, 7186, 7188, 7190, 7192, 7194, 7196, 7198, /* 0x50-0x57 */
4248 7200, 7202, 7204, 7206, 7208, 7210, 7212, 7214, /* 0x58-0x5f */
4249 7216, 7218, 7220, 7222, 7224, 7226, 7228, 7230, /* 0x60-0x67 */
4250 7232, 7234, 7236, 7238, 7240, 7242, 7244, 7246, /* 0x68-0x6f */
4251 7248, 7250, 7252, 7254, 7256, 7258, 7260, 7262, /* 0x70-0x77 */
4252 7264, 7266, 7268, 7270, 7272, 7274, 7276, 7278, /* 0x78-0x7f */
4253 7280, 7282, 7284, 7286, 7288, 7290, 7292, 7294, /* 0x80-0x87 */
4254 7296, 7298, 7300, 7302, 7304, 7306, 7308, 7310, /* 0x88-0x8f */
4255 7312, 7314, 7316, 7318, 7320, 7322, 7324, 7326, /* 0x90-0x97 */
4256 7328, 7330, 7332, 7334, 7336, 7338, 7340, 7342, /* 0x98-0x9f */
4257 7344, 7346, 7348, 7350, -1, -1, -1, -1, /* 0xa0-0xa7 */
4258 7352, 7354, 7356, 7358, 7360, 7362, 7364, 7366, /* 0xa8-0xaf */
4259 7368, 7370, 7372, 7374, 7376, 7378, 7380, 7382, /* 0xb0-0xb7 */
4260 7384, 7386, 7388, 7390, 7392, 7394, 7396, 7398, /* 0xb8-0xbf */
4261 7400, 7402, 7404, 7406, 7408, 7410, 7412, 7414, /* 0xc0-0xc7 */
4262 7416, 7418, 7420, 7422, 7424, 7426, 7428, 7430, /* 0xc8-0xcf */
4263 7432, 7434, 7436, 7438, 7440, 7442, 7444, 7446, /* 0xd0-0xd7 */
4264 7448, 7450, 7452, 7454, 7456, 7458, 7460, 7462, /* 0xd8-0xdf */
4265 7464, 7466, 7468, 7470, 7472, 7474, 7476, 7478, /* 0xe0-0xe7 */
4266 7480, 7482, 7484, 7486, 7488, 7490, 7492, 7494, /* 0xe8-0xef */
4267 7496, 7498, 7500, 7502, 7504, 7506, 7508, 7510, /* 0xf0-0xf7 */
4268 7512, 7514, 7516, 7518, 7520, 7522, 7524, 7526, /* 0xf8-0xff */
4270 7528, 7530, 7532, 7534, 7536, 7538, 7540, 7542, /* 0x00-0x07 */
4271 7544, 7546, 7548, 7550, 7552, 7554, 7556, 7558, /* 0x08-0x0f */
4272 7560, 7562, 7564, 7566, 7568, 7570, 7572, 7574, /* 0x10-0x17 */
4273 7576, 7578, 7580, 7582, 7584, 7586, 7588, 7590, /* 0x18-0x1f */
4274 7592, 7594, 7596, 7598, 7600, 7602, 7604, 7606, /* 0x20-0x27 */
4275 7608, 7610, 7612, 7614, 7616, 7618, 7620, 7622, /* 0x28-0x2f */
4276 7624, 7626, 7628, 7630, 7632, 7634, 7636, 7638, /* 0x30-0x37 */
4277 7640, 7642, 7644, 7646, 7648, 7650, 7652, 7654, /* 0x38-0x3f */
4278 7656, 7658, 7660, 7662, 7664, 7666, 7668, 7670, /* 0x40-0x47 */
4279 7672, 7674, 7676, 7678, 7680, 7682, 7684, 7686, /* 0x48-0x4f */
4280 7688, 7690, 7692, 7694, 7696, 7698, 7700, 7702, /* 0x50-0x57 */
4281 7704, 7706, 7708, 7710, 7712, 7714, 7716, 7718, /* 0x58-0x5f */
4282 7720, 7722, 7724, 7726, 7728, 7730, 7732, 7734, /* 0x60-0x67 */
4283 7736, 7738, 7740, 7742, 7744, 7746, 7748, 7750, /* 0x68-0x6f */
4284 7752, 7754, 7756, 7758, 7760, 7762, 7764, 7766, /* 0x70-0x77 */
4285 7768, 7770, 7772, 7774, 7776, 7778, 7780, 7782, /* 0x78-0x7f */
4286 7784, 7786, 7788, 7790, 7792, 7794, 7796, 7798, /* 0x80-0x87 */
4287 7800, 7802, 7804, 7806, 7808, 7810, 7812, 7814, /* 0x88-0x8f */
4288 7816, 7818, 7820, 7822, 7824, 7826, 7828, 7830, /* 0x90-0x97 */
4289 7832, 7834, 7836, 7838, 7840, 7842, 7844, 7846, /* 0x98-0x9f */
4290 7848, 7850, 7852, 7854, 7856, 7858, 7860, 7862, /* 0xa0-0xa7 */
4291 7864, 7866, 7868, 7870, 7872, 7874, 7876, 7878, /* 0xa8-0xaf */
4292 7880, 7882, 7884, 7886, 7888, 7890, 7892, 7894, /* 0xb0-0xb7 */
4293 7896, 7898, 7900, 7902, 7904, 7906, 7908, 7910, /* 0xb8-0xbf */
4294 7912, 7914, 7916, 7918, 7920, 7922, 7924, 7926, /* 0xc0-0xc7 */
4295 7928, 7930, -1, -1, -1, -1, 7932, 7934, /* 0xc8-0xcf */
4296 7936, 7938, 7940, 7942, 7944, 7946, 7948, 7950, /* 0xd0-0xd7 */
4297 7952, 7954, 7956, 7958, 7960, 7962, 7964, 7966, /* 0xd8-0xdf */
4298 7968, 7970, 7972, 7974, 7976, 7978, 7980, 7982, /* 0xe0-0xe7 */
4299 7984, 7986, 7988, 7990, 7992, 7994, 7996, 7998, /* 0xe8-0xef */
4300 8000, 8002, 8004, 8006, 8008, 8010, 8012, 8014, /* 0xf0-0xf7 */
4301 8016, 8018, 8020, 8022, 8024, 8026, 8028, 8030, /* 0xf8-0xff */
4303 static const short translit_page2f8
[544] = {
4304 8032, 8034, 8036, 8038, 8040, 8042, 8044, 8046, /* 0x00-0x07 */
4305 8048, 8050, 8052, 8054, 8056, 8058, 8060, 8062, /* 0x08-0x0f */
4306 8064, 8066, 8068, 8070, 8072, 8074, 8076, 8078, /* 0x10-0x17 */
4307 8080, 8082, 8084, 8086, 8088, 8090, 8092, 8094, /* 0x18-0x1f */
4308 8096, 8098, 8100, 8102, 8104, 8106, 8108, 8110, /* 0x20-0x27 */
4309 8112, 8114, 8116, 8118, 8120, 8122, 8124, 8126, /* 0x28-0x2f */
4310 8128, 8130, 8132, 8134, 8136, 8138, 8140, 8142, /* 0x30-0x37 */
4311 8144, 8146, 8148, 8150, 8152, 8154, 8156, 8158, /* 0x38-0x3f */
4312 8160, 8162, 8164, 8166, 8168, 8170, 8172, 8174, /* 0x40-0x47 */
4313 8176, 8178, 8180, 8182, 8184, 8186, 8188, 8190, /* 0x48-0x4f */
4314 8192, 8194, 8196, 8198, 8200, 8202, 8204, 8206, /* 0x50-0x57 */
4315 8208, 8210, 8212, 8214, 8216, 8218, 8220, 8222, /* 0x58-0x5f */
4316 8224, 8226, 8228, 8230, 8232, 8234, 8236, 8238, /* 0x60-0x67 */
4317 8240, 8242, 8244, 8246, 8248, 8250, 8252, 8254, /* 0x68-0x6f */
4318 8256, 8258, 8260, 8262, 8264, 8266, 8268, 8270, /* 0x70-0x77 */
4319 8272, 8274, 8276, 8278, 8280, 8282, 8284, 8286, /* 0x78-0x7f */
4320 8288, 8290, 8292, 8294, 8296, 8298, 8300, 8302, /* 0x80-0x87 */
4321 8304, 8306, 8308, 8310, 8312, 8314, 8316, 8318, /* 0x88-0x8f */
4322 8320, 8322, 8324, 8326, 8328, 8330, 8332, 8334, /* 0x90-0x97 */
4323 8336, 8338, 8340, 8342, 8344, 8346, 8348, 8350, /* 0x98-0x9f */
4324 8352, 8354, 8356, 8358, 8360, 8362, 8364, 8366, /* 0xa0-0xa7 */
4325 8368, 8370, 8372, 8374, 8376, 8378, 8380, 8382, /* 0xa8-0xaf */
4326 8384, 8386, 8388, 8390, 8392, 8394, 8396, 8398, /* 0xb0-0xb7 */
4327 8400, 8402, 8404, 8406, 8408, 8410, 8412, 8414, /* 0xb8-0xbf */
4328 8416, 8418, 8420, 8422, 8424, 8426, 8428, 8430, /* 0xc0-0xc7 */
4329 8432, 8434, 8436, 8438, 8440, 8442, 8444, 8446, /* 0xc8-0xcf */
4330 8448, 8450, 8452, 8454, 8456, 8458, 8460, 8462, /* 0xd0-0xd7 */
4331 8464, 8466, 8468, 8470, 8472, 8474, 8476, 8478, /* 0xd8-0xdf */
4332 8480, 8482, 8484, 8486, 8488, 8490, 8492, 8494, /* 0xe0-0xe7 */
4333 8496, 8498, 8500, 8502, 8504, 8506, 8508, 8510, /* 0xe8-0xef */
4334 8512, 8514, 8516, 8518, 8520, 8522, 8524, 8526, /* 0xf0-0xf7 */
4335 8528, 8530, 8532, 8534, 8536, 8538, 8540, 8542, /* 0xf8-0xff */
4337 8544, 8546, 8548, 8550, 8552, 8554, 8556, 8558, /* 0x00-0x07 */
4338 8560, 8562, 8564, 8566, 8568, 8570, 8572, 8574, /* 0x08-0x0f */
4339 8576, 8578, 8580, 8582, 8584, 8586, 8588, 8590, /* 0x10-0x17 */
4340 8592, 8594, 8596, 8598, 8600, 8602, 8604, 8606, /* 0x18-0x1f */
4341 8608, 8610, 8612, 8614, 8616, 8618, 8620, 8622, /* 0x20-0x27 */
4342 8624, 8626, 8628, 8630, 8632, 8634, 8636, 8638, /* 0x28-0x2f */
4343 8640, 8642, 8644, 8646, 8648, 8650, 8652, 8654, /* 0x30-0x37 */
4344 8656, 8658, 8660, 8662, 8664, 8666, 8668, 8670, /* 0x38-0x3f */
4345 8672, 8674, 8676, 8678, 8680, 8682, 8684, 8686, /* 0x40-0x47 */
4346 8688, 8690, 8692, 8694, 8696, 8698, 8700, 8702, /* 0x48-0x4f */
4347 8704, 8706, 8708, 8710, 8712, 8714, 8716, 8718, /* 0x50-0x57 */
4348 8720, 8722, 8724, 8726, 8728, 8730, 8732, 8734, /* 0x58-0x5f */
4349 8736, 8738, 8740, 8742, 8744, 8746, 8748, 8750, /* 0x60-0x67 */
4350 8752, 8754, 8756, 8758, 8760, 8762, 8764, 8766, /* 0x68-0x6f */
4351 8768, 8770, 8772, 8774, 8776, 8778, 8780, 8782, /* 0x70-0x77 */
4352 8784, 8786, 8788, 8790, 8792, 8794, 8796, 8798, /* 0x78-0x7f */
4353 8800, 8802, 8804, 8806, 8808, 8810, 8812, 8814, /* 0x80-0x87 */
4354 8816, 8818, 8820, 8822, 8824, 8826, 8828, 8830, /* 0x88-0x8f */
4355 8832, 8834, 8836, 8838, 8840, 8842, 8844, 8846, /* 0x90-0x97 */
4356 8848, 8850, 8852, 8854, 8856, 8858, 8860, 8862, /* 0x98-0x9f */
4357 8864, 8866, 8868, 8870, 8872, 8874, 8876, 8878, /* 0xa0-0xa7 */
4358 8880, 8882, 8884, 8886, 8888, 8890, 8892, 8894, /* 0xa8-0xaf */
4359 8896, 8898, 8900, 8902, 8904, 8906, 8908, 8910, /* 0xb0-0xb7 */
4360 8912, 8914, 8916, 8918, 8920, 8922, 8924, 8926, /* 0xb8-0xbf */
4361 8928, 8930, 8932, 8934, 8936, 8938, 8940, 8942, /* 0xc0-0xc7 */
4362 8944, 8946, 8948, 8950, 8952, 8954, 8956, 8958, /* 0xc8-0xcf */
4363 8960, 8962, 8964, 8966, 8968, 8970, 8972, 8974, /* 0xd0-0xd7 */
4364 8976, 8978, 8980, 8982, 8984, 8986, 8988, 8990, /* 0xd8-0xdf */
4365 8992, 8994, 8996, 8998, 9000, 9002, 9004, 9006, /* 0xe0-0xe7 */
4366 9008, 9010, 9012, 9014, 9016, 9018, 9020, 9022, /* 0xe8-0xef */
4367 9024, 9026, 9028, 9030, 9032, 9034, 9036, 9038, /* 0xf0-0xf7 */
4368 9040, 9042, 9044, 9046, 9048, 9050, 9052, 9054, /* 0xf8-0xff */
4370 9056, 9058, 9060, 9062, 9064, 9066, 9068, 9070, /* 0x00-0x07 */
4371 9072, 9074, 9076, 9078, 9080, 9082, 9084, 9086, /* 0x08-0x0f */
4372 9088, 9090, 9092, 9094, 9096, 9098, 9100, 9102, /* 0x10-0x17 */
4373 9104, 9106, 9108, 9110, 9112, 9114, -1, -1, /* 0x18-0x1f */
4376 #define translit_index(wc) \
4377 (wc >= 0x00a0 && wc < 0x01f8 ? translit_page00[wc-0x00a0] : \
4378 wc >= 0x0218 && wc < 0x0220 ? translit_page02[wc-0x0218] : \
4379 wc >= 0x02b8 && wc < 0x02e0 ? translit_page02_1[wc-0x02b8] : \
4380 wc >= 0x03d0 && wc < 0x0400 ? translit_page03[wc-0x03d0] : \
4381 wc == 0x0587 ? 654 : \
4382 wc >= 0x05f0 && wc < 0x05f8 ? translit_page05[wc-0x05f0] : \
4383 wc >= 0x0670 && wc < 0x0680 ? translit_page06[wc-0x0670] : \
4384 wc == 0x0e33 ? 678 : \
4385 wc >= 0x0eb0 && wc < 0x0ee0 ? translit_page0e[wc-0x0eb0] : \
4386 wc >= 0x0f70 && wc < 0x0f80 ? translit_page0f[wc-0x0f70] : \
4387 wc >= 0x1e00 && wc < 0x1ea0 ? translit_page1e[wc-0x1e00] : \
4388 wc >= 0x1ef0 && wc < 0x1ef8 ? translit_page1e_2[wc-0x1ef0] : \
4389 wc >= 0x2000 && wc < 0x2058 ? translit_page20[wc-0x2000] : \
4390 wc >= 0x20a8 && wc < 0x20b0 ? translit_page20_3[wc-0x20a8] : \
4391 wc >= 0x2100 && wc < 0x21d8 ? translit_page21[wc-0x2100] : \
4392 wc >= 0x2210 && wc < 0x2270 ? translit_page22[wc-0x2210] : \
4393 wc >= 0x22c0 && wc < 0x22f0 ? translit_page22_4[wc-0x22c0] : \
4394 wc >= 0x2400 && wc < 0x24f0 ? translit_page24[wc-0x2400] : \
4395 wc >= 0x2500 && wc < 0x2540 ? translit_page25[wc-0x2500] : \
4396 wc == 0x25e6 ? 2025 : \
4397 wc == 0x2a0c ? 2027 : \
4398 wc >= 0x2a70 && wc < 0x2a78 ? translit_page2a[wc-0x2a70] : \
4399 wc == 0x2e9f ? 2043 : \
4400 wc == 0x2ef3 ? 2045 : \
4401 wc >= 0x2f00 && wc < 0x2fd8 ? translit_page2f[wc-0x2f00] : \
4402 wc >= 0x3000 && wc < 0x30f8 ? translit_page30[wc-0x3000] : \
4403 wc >= 0x3130 && wc < 0x3190 ? translit_page31[wc-0x3130] : \
4404 wc >= 0x31f0 && wc < 0x3400 ? translit_page31_5[wc-0x31f0] : \
4405 wc >= 0xf900 && wc < 0xfa70 ? translit_pagef9[wc-0xf900] : \
4406 wc >= 0xfb00 && wc < 0xfb50 ? translit_pagefb[wc-0xfb00] : \
4407 wc >= 0xfe48 && wc < 0xfe70 ? translit_pagefe[wc-0xfe48] : \
4408 wc >= 0xff00 && wc < 0xfff0 ? translit_pageff[wc-0xff00] : \
4409 wc >= 0x1d400 && wc < 0x1d800 ? translit_page1d4[wc-0x1d400] : \
4410 wc >= 0x2f800 && wc < 0x2fa20 ? translit_page2f8[wc-0x2f800] : \