/ Check-in [090a64fa]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Reorganize spellfix.c to make it easier to edit automatically (e.g. using a script). No changes to functionality.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256:090a64faaac579c6ed1cddb02d14e7089468a4aeaeec11e78d461790bcb6eb0a
User & Date: dan 2018-01-24 18:28:39
Context
2018-01-24
20:42
When unpacking a sorter record, do so from right to left instead of left to right, since by starting with the right-most column, the work done by OP_Column opcodes is reduced. check-in: 8055e4f4 user: drh tags: trunk
18:28
Reorganize spellfix.c to make it easier to edit automatically (e.g. using a script). No changes to functionality. check-in: 090a64fa user: dan tags: trunk
16:04
Rearrange fields of the BtCursor object so that it is smaller and requires less initialization, for a small performance improvement. check-in: 0ddf5292 user: drh tags: trunk
Changes
Hide Diffs Side-by-Side Diffs Ignore Whitespace Patch

Changes to ext/misc/spellfix.c.

  1196   1196       int sz;
  1197   1197       utf8Read((const unsigned char *)&zIn[i], nIn-i, &sz);
  1198   1198       i += sz;
  1199   1199     }
  1200   1200     return nChar;
  1201   1201   }
  1202   1202   
         1203  +typedef struct Transliteration Transliteration;
         1204  +struct Transliteration {
         1205  + unsigned short int cFrom;
         1206  + unsigned char cTo0, cTo1, cTo2, cTo3;
         1207  +};
         1208  +
  1203   1209   /*
  1204   1210   ** Table of translations from unicode characters into ASCII.
  1205   1211   */
  1206         -static const struct {
  1207         - unsigned short int cFrom;
  1208         - unsigned char cTo0, cTo1;
  1209         -} translit[] = {
  1210         -  { 0x00A0,  0x20, 0x00 },  /*   to   */
  1211         -  { 0x00B5,  0x75, 0x00 },  /* µ to u */
  1212         -  { 0x00C0,  0x41, 0x00 },  /* À to A */
  1213         -  { 0x00C1,  0x41, 0x00 },  /* Á to A */
  1214         -  { 0x00C2,  0x41, 0x00 },  /* Â to A */
  1215         -  { 0x00C3,  0x41, 0x00 },  /* Ã to A */
  1216         -  { 0x00C4,  0x41, 0x65 },  /* Ä to Ae */
  1217         -  { 0x00C5,  0x41, 0x61 },  /* Å to Aa */
  1218         -  { 0x00C6,  0x41, 0x45 },  /* Æ to AE */
  1219         -  { 0x00C7,  0x43, 0x00 },  /* Ç to C */
  1220         -  { 0x00C8,  0x45, 0x00 },  /* È to E */
  1221         -  { 0x00C9,  0x45, 0x00 },  /* É to E */
  1222         -  { 0x00CA,  0x45, 0x00 },  /* Ê to E */
  1223         -  { 0x00CB,  0x45, 0x00 },  /* Ë to E */
  1224         -  { 0x00CC,  0x49, 0x00 },  /* Ì to I */
  1225         -  { 0x00CD,  0x49, 0x00 },  /* Í to I */
  1226         -  { 0x00CE,  0x49, 0x00 },  /* Î to I */
  1227         -  { 0x00CF,  0x49, 0x00 },  /* Ï to I */
  1228         -  { 0x00D0,  0x44, 0x00 },  /* Ð to D */
  1229         -  { 0x00D1,  0x4E, 0x00 },  /* Ñ to N */
  1230         -  { 0x00D2,  0x4F, 0x00 },  /* Ò to O */
  1231         -  { 0x00D3,  0x4F, 0x00 },  /* Ó to O */
  1232         -  { 0x00D4,  0x4F, 0x00 },  /* Ô to O */
  1233         -  { 0x00D5,  0x4F, 0x00 },  /* Õ to O */
  1234         -  { 0x00D6,  0x4F, 0x65 },  /* Ö to Oe */
  1235         -  { 0x00D7,  0x78, 0x00 },  /* × to x */
  1236         -  { 0x00D8,  0x4F, 0x00 },  /* Ø to O */
  1237         -  { 0x00D9,  0x55, 0x00 },  /* Ù to U */
  1238         -  { 0x00DA,  0x55, 0x00 },  /* Ú to U */
  1239         -  { 0x00DB,  0x55, 0x00 },  /* Û to U */
  1240         -  { 0x00DC,  0x55, 0x65 },  /* Ü to Ue */
  1241         -  { 0x00DD,  0x59, 0x00 },  /* Ý to Y */
  1242         -  { 0x00DE,  0x54, 0x68 },  /* Þ to Th */
  1243         -  { 0x00DF,  0x73, 0x73 },  /* ß to ss */
  1244         -  { 0x00E0,  0x61, 0x00 },  /* à to a */
  1245         -  { 0x00E1,  0x61, 0x00 },  /* á to a */
  1246         -  { 0x00E2,  0x61, 0x00 },  /* â to a */
  1247         -  { 0x00E3,  0x61, 0x00 },  /* ã to a */
  1248         -  { 0x00E4,  0x61, 0x65 },  /* ä to ae */
  1249         -  { 0x00E5,  0x61, 0x61 },  /* å to aa */
  1250         -  { 0x00E6,  0x61, 0x65 },  /* æ to ae */
  1251         -  { 0x00E7,  0x63, 0x00 },  /* ç to c */
  1252         -  { 0x00E8,  0x65, 0x00 },  /* è to e */
  1253         -  { 0x00E9,  0x65, 0x00 },  /* é to e */
  1254         -  { 0x00EA,  0x65, 0x00 },  /* ê to e */
  1255         -  { 0x00EB,  0x65, 0x00 },  /* ë to e */
  1256         -  { 0x00EC,  0x69, 0x00 },  /* ì to i */
  1257         -  { 0x00ED,  0x69, 0x00 },  /* í to i */
  1258         -  { 0x00EE,  0x69, 0x00 },  /* î to i */
  1259         -  { 0x00EF,  0x69, 0x00 },  /* ï to i */
  1260         -  { 0x00F0,  0x64, 0x00 },  /* ð to d */
  1261         -  { 0x00F1,  0x6E, 0x00 },  /* ñ to n */
  1262         -  { 0x00F2,  0x6F, 0x00 },  /* ò to o */
  1263         -  { 0x00F3,  0x6F, 0x00 },  /* ó to o */
  1264         -  { 0x00F4,  0x6F, 0x00 },  /* ô to o */
  1265         -  { 0x00F5,  0x6F, 0x00 },  /* õ to o */
  1266         -  { 0x00F6,  0x6F, 0x65 },  /* ö to oe */
  1267         -  { 0x00F7,  0x3A, 0x00 },  /* ÷ to : */
  1268         -  { 0x00F8,  0x6F, 0x00 },  /* ø to o */
  1269         -  { 0x00F9,  0x75, 0x00 },  /* ù to u */
  1270         -  { 0x00FA,  0x75, 0x00 },  /* ú to u */
  1271         -  { 0x00FB,  0x75, 0x00 },  /* û to u */
  1272         -  { 0x00FC,  0x75, 0x65 },  /* ü to ue */
  1273         -  { 0x00FD,  0x79, 0x00 },  /* ý to y */
  1274         -  { 0x00FE,  0x74, 0x68 },  /* þ to th */
  1275         -  { 0x00FF,  0x79, 0x00 },  /* ÿ to y */
  1276         -  { 0x0100,  0x41, 0x00 },  /* Ā to A */
  1277         -  { 0x0101,  0x61, 0x00 },  /* ā to a */
  1278         -  { 0x0102,  0x41, 0x00 },  /* Ă to A */
  1279         -  { 0x0103,  0x61, 0x00 },  /* ă to a */
  1280         -  { 0x0104,  0x41, 0x00 },  /* Ą to A */
  1281         -  { 0x0105,  0x61, 0x00 },  /* ą to a */
  1282         -  { 0x0106,  0x43, 0x00 },  /* Ć to C */
  1283         -  { 0x0107,  0x63, 0x00 },  /* ć to c */
  1284         -  { 0x0108,  0x43, 0x68 },  /* Ĉ to Ch */
  1285         -  { 0x0109,  0x63, 0x68 },  /* ĉ to ch */
  1286         -  { 0x010A,  0x43, 0x00 },  /* Ċ to C */
  1287         -  { 0x010B,  0x63, 0x00 },  /* ċ to c */
  1288         -  { 0x010C,  0x43, 0x00 },  /* Č to C */
  1289         -  { 0x010D,  0x63, 0x00 },  /* č to c */
  1290         -  { 0x010E,  0x44, 0x00 },  /* Ď to D */
  1291         -  { 0x010F,  0x64, 0x00 },  /* ď to d */
  1292         -  { 0x0110,  0x44, 0x00 },  /* Đ to D */
  1293         -  { 0x0111,  0x64, 0x00 },  /* đ to d */
  1294         -  { 0x0112,  0x45, 0x00 },  /* Ē to E */
  1295         -  { 0x0113,  0x65, 0x00 },  /* ē to e */
  1296         -  { 0x0114,  0x45, 0x00 },  /* Ĕ to E */
  1297         -  { 0x0115,  0x65, 0x00 },  /* ĕ to e */
  1298         -  { 0x0116,  0x45, 0x00 },  /* Ė to E */
  1299         -  { 0x0117,  0x65, 0x00 },  /* ė to e */
  1300         -  { 0x0118,  0x45, 0x00 },  /* Ę to E */
  1301         -  { 0x0119,  0x65, 0x00 },  /* ę to e */
  1302         -  { 0x011A,  0x45, 0x00 },  /* Ě to E */
  1303         -  { 0x011B,  0x65, 0x00 },  /* ě to e */
  1304         -  { 0x011C,  0x47, 0x68 },  /* Ĝ to Gh */
  1305         -  { 0x011D,  0x67, 0x68 },  /* ĝ to gh */
  1306         -  { 0x011E,  0x47, 0x00 },  /* Ğ to G */
  1307         -  { 0x011F,  0x67, 0x00 },  /* ğ to g */
  1308         -  { 0x0120,  0x47, 0x00 },  /* Ġ to G */
  1309         -  { 0x0121,  0x67, 0x00 },  /* ġ to g */
  1310         -  { 0x0122,  0x47, 0x00 },  /* Ģ to G */
  1311         -  { 0x0123,  0x67, 0x00 },  /* ģ to g */
  1312         -  { 0x0124,  0x48, 0x68 },  /* Ĥ to Hh */
  1313         -  { 0x0125,  0x68, 0x68 },  /* ĥ to hh */
  1314         -  { 0x0126,  0x48, 0x00 },  /* Ħ to H */
  1315         -  { 0x0127,  0x68, 0x00 },  /* ħ to h */
  1316         -  { 0x0128,  0x49, 0x00 },  /* Ĩ to I */
  1317         -  { 0x0129,  0x69, 0x00 },  /* ĩ to i */
  1318         -  { 0x012A,  0x49, 0x00 },  /* Ī to I */
  1319         -  { 0x012B,  0x69, 0x00 },  /* ī to i */
  1320         -  { 0x012C,  0x49, 0x00 },  /* Ĭ to I */
  1321         -  { 0x012D,  0x69, 0x00 },  /* ĭ to i */
  1322         -  { 0x012E,  0x49, 0x00 },  /* Į to I */
  1323         -  { 0x012F,  0x69, 0x00 },  /* į to i */
  1324         -  { 0x0130,  0x49, 0x00 },  /* İ to I */
  1325         -  { 0x0131,  0x69, 0x00 },  /* ı to i */
  1326         -  { 0x0132,  0x49, 0x4A },  /* IJ to IJ */
  1327         -  { 0x0133,  0x69, 0x6A },  /* ij to ij */
  1328         -  { 0x0134,  0x4A, 0x68 },  /* Ĵ to Jh */
  1329         -  { 0x0135,  0x6A, 0x68 },  /* ĵ to jh */
  1330         -  { 0x0136,  0x4B, 0x00 },  /* Ķ to K */
  1331         -  { 0x0137,  0x6B, 0x00 },  /* ķ to k */
  1332         -  { 0x0138,  0x6B, 0x00 },  /* ĸ to k */
  1333         -  { 0x0139,  0x4C, 0x00 },  /* Ĺ to L */
  1334         -  { 0x013A,  0x6C, 0x00 },  /* ĺ to l */
  1335         -  { 0x013B,  0x4C, 0x00 },  /* Ļ to L */
  1336         -  { 0x013C,  0x6C, 0x00 },  /* ļ to l */
  1337         -  { 0x013D,  0x4C, 0x00 },  /* Ľ to L */
  1338         -  { 0x013E,  0x6C, 0x00 },  /* ľ to l */
  1339         -  { 0x013F,  0x4C, 0x2E },  /* Ŀ to L. */
  1340         -  { 0x0140,  0x6C, 0x2E },  /* ŀ to l. */
  1341         -  { 0x0141,  0x4C, 0x00 },  /* Ł to L */
  1342         -  { 0x0142,  0x6C, 0x00 },  /* ł to l */
  1343         -  { 0x0143,  0x4E, 0x00 },  /* Ń to N */
  1344         -  { 0x0144,  0x6E, 0x00 },  /* ń to n */
  1345         -  { 0x0145,  0x4E, 0x00 },  /* Ņ to N */
  1346         -  { 0x0146,  0x6E, 0x00 },  /* ņ to n */
  1347         -  { 0x0147,  0x4E, 0x00 },  /* Ň to N */
  1348         -  { 0x0148,  0x6E, 0x00 },  /* ň to n */
  1349         -  { 0x0149,  0x27, 0x6E },  /* ʼn to 'n */
  1350         -  { 0x014A,  0x4E, 0x47 },  /* Ŋ to NG */
  1351         -  { 0x014B,  0x6E, 0x67 },  /* ŋ to ng */
  1352         -  { 0x014C,  0x4F, 0x00 },  /* Ō to O */
  1353         -  { 0x014D,  0x6F, 0x00 },  /* ō to o */
  1354         -  { 0x014E,  0x4F, 0x00 },  /* Ŏ to O */
  1355         -  { 0x014F,  0x6F, 0x00 },  /* ŏ to o */
  1356         -  { 0x0150,  0x4F, 0x00 },  /* Ő to O */
  1357         -  { 0x0151,  0x6F, 0x00 },  /* ő to o */
  1358         -  { 0x0152,  0x4F, 0x45 },  /* Πto OE */
  1359         -  { 0x0153,  0x6F, 0x65 },  /* œ to oe */
  1360         -  { 0x0154,  0x52, 0x00 },  /* Ŕ to R */
  1361         -  { 0x0155,  0x72, 0x00 },  /* ŕ to r */
  1362         -  { 0x0156,  0x52, 0x00 },  /* Ŗ to R */
  1363         -  { 0x0157,  0x72, 0x00 },  /* ŗ to r */
  1364         -  { 0x0158,  0x52, 0x00 },  /* Ř to R */
  1365         -  { 0x0159,  0x72, 0x00 },  /* ř to r */
  1366         -  { 0x015A,  0x53, 0x00 },  /* Ś to S */
  1367         -  { 0x015B,  0x73, 0x00 },  /* ś to s */
  1368         -  { 0x015C,  0x53, 0x68 },  /* Ŝ to Sh */
  1369         -  { 0x015D,  0x73, 0x68 },  /* ŝ to sh */
  1370         -  { 0x015E,  0x53, 0x00 },  /* Ş to S */
  1371         -  { 0x015F,  0x73, 0x00 },  /* ş to s */
  1372         -  { 0x0160,  0x53, 0x00 },  /* Š to S */
  1373         -  { 0x0161,  0x73, 0x00 },  /* š to s */
  1374         -  { 0x0162,  0x54, 0x00 },  /* Ţ to T */
  1375         -  { 0x0163,  0x74, 0x00 },  /* ţ to t */
  1376         -  { 0x0164,  0x54, 0x00 },  /* Ť to T */
  1377         -  { 0x0165,  0x74, 0x00 },  /* ť to t */
  1378         -  { 0x0166,  0x54, 0x00 },  /* Ŧ to T */
  1379         -  { 0x0167,  0x74, 0x00 },  /* ŧ to t */
  1380         -  { 0x0168,  0x55, 0x00 },  /* Ũ to U */
  1381         -  { 0x0169,  0x75, 0x00 },  /* ũ to u */
  1382         -  { 0x016A,  0x55, 0x00 },  /* Ū to U */
  1383         -  { 0x016B,  0x75, 0x00 },  /* ū to u */
  1384         -  { 0x016C,  0x55, 0x00 },  /* Ŭ to U */
  1385         -  { 0x016D,  0x75, 0x00 },  /* ŭ to u */
  1386         -  { 0x016E,  0x55, 0x00 },  /* Ů to U */
  1387         -  { 0x016F,  0x75, 0x00 },  /* ů to u */
  1388         -  { 0x0170,  0x55, 0x00 },  /* Ű to U */
  1389         -  { 0x0171,  0x75, 0x00 },  /* ű to u */
  1390         -  { 0x0172,  0x55, 0x00 },  /* Ų to U */
  1391         -  { 0x0173,  0x75, 0x00 },  /* ų to u */
  1392         -  { 0x0174,  0x57, 0x00 },  /* Ŵ to W */
  1393         -  { 0x0175,  0x77, 0x00 },  /* ŵ to w */
  1394         -  { 0x0176,  0x59, 0x00 },  /* Ŷ to Y */
  1395         -  { 0x0177,  0x79, 0x00 },  /* ŷ to y */
  1396         -  { 0x0178,  0x59, 0x00 },  /* Ÿ to Y */
  1397         -  { 0x0179,  0x5A, 0x00 },  /* Ź to Z */
  1398         -  { 0x017A,  0x7A, 0x00 },  /* ź to z */
  1399         -  { 0x017B,  0x5A, 0x00 },  /* Ż to Z */
  1400         -  { 0x017C,  0x7A, 0x00 },  /* ż to z */
  1401         -  { 0x017D,  0x5A, 0x00 },  /* Ž to Z */
  1402         -  { 0x017E,  0x7A, 0x00 },  /* ž to z */
  1403         -  { 0x017F,  0x73, 0x00 },  /* ſ to s */
  1404         -  { 0x0192,  0x66, 0x00 },  /* ƒ to f */
  1405         -  { 0x0218,  0x53, 0x00 },  /* Ș to S */
  1406         -  { 0x0219,  0x73, 0x00 },  /* ș to s */
  1407         -  { 0x021A,  0x54, 0x00 },  /* Ț to T */
  1408         -  { 0x021B,  0x74, 0x00 },  /* ț to t */
  1409         -  { 0x0386,  0x41, 0x00 },  /* Ά to A */
  1410         -  { 0x0388,  0x45, 0x00 },  /* Έ to E */
  1411         -  { 0x0389,  0x49, 0x00 },  /* Ή to I */
  1412         -  { 0x038A,  0x49, 0x00 },  /* Ί to I */
  1413         -  { 0x038C,  0x4f, 0x00 },  /* Ό to O */
  1414         -  { 0x038E,  0x59, 0x00 },  /* Ύ to Y */
  1415         -  { 0x038F,  0x4f, 0x00 },  /* Ώ to O */
  1416         -  { 0x0390,  0x69, 0x00 },  /* ΐ to i */
  1417         -  { 0x0391,  0x41, 0x00 },  /* Α to A */
  1418         -  { 0x0392,  0x42, 0x00 },  /* Β to B */
  1419         -  { 0x0393,  0x47, 0x00 },  /* Γ to G */
  1420         -  { 0x0394,  0x44, 0x00 },  /* Δ to D */
  1421         -  { 0x0395,  0x45, 0x00 },  /* Ε to E */
  1422         -  { 0x0396,  0x5a, 0x00 },  /* Ζ to Z */
  1423         -  { 0x0397,  0x49, 0x00 },  /* Η to I */
  1424         -  { 0x0398,  0x54, 0x68 },  /* Θ to Th */
  1425         -  { 0x0399,  0x49, 0x00 },  /* Ι to I */
  1426         -  { 0x039A,  0x4b, 0x00 },  /* Κ to K */
  1427         -  { 0x039B,  0x4c, 0x00 },  /* Λ to L */
  1428         -  { 0x039C,  0x4d, 0x00 },  /* Μ to M */
  1429         -  { 0x039D,  0x4e, 0x00 },  /* Ν to N */
  1430         -  { 0x039E,  0x58, 0x00 },  /* Ξ to X */
  1431         -  { 0x039F,  0x4f, 0x00 },  /* Ο to O */
  1432         -  { 0x03A0,  0x50, 0x00 },  /* Π to P */
  1433         -  { 0x03A1,  0x52, 0x00 },  /* Ρ to R */
  1434         -  { 0x03A3,  0x53, 0x00 },  /* Σ to S */
  1435         -  { 0x03A4,  0x54, 0x00 },  /* Τ to T */
  1436         -  { 0x03A5,  0x59, 0x00 },  /* Υ to Y */
  1437         -  { 0x03A6,  0x46, 0x00 },  /* Φ to F */
  1438         -  { 0x03A7,  0x43, 0x68 },  /* Χ to Ch */
  1439         -  { 0x03A8,  0x50, 0x73 },  /* Ψ to Ps */
  1440         -  { 0x03A9,  0x4f, 0x00 },  /* Ω to O */
  1441         -  { 0x03AA,  0x49, 0x00 },  /* Ϊ to I */
  1442         -  { 0x03AB,  0x59, 0x00 },  /* Ϋ to Y */
  1443         -  { 0x03AC,  0x61, 0x00 },  /* ά to a */
  1444         -  { 0x03AD,  0x65, 0x00 },  /* έ to e */
  1445         -  { 0x03AE,  0x69, 0x00 },  /* ή to i */
  1446         -  { 0x03AF,  0x69, 0x00 },  /* ί to i */
  1447         -  { 0x03B1,  0x61, 0x00 },  /* α to a */
  1448         -  { 0x03B2,  0x62, 0x00 },  /* β to b */
  1449         -  { 0x03B3,  0x67, 0x00 },  /* γ to g */
  1450         -  { 0x03B4,  0x64, 0x00 },  /* δ to d */
  1451         -  { 0x03B5,  0x65, 0x00 },  /* ε to e */
  1452         -  { 0x03B6,  0x7a, 0x00 },  /* ζ to z */
  1453         -  { 0x03B7,  0x69, 0x00 },  /* η to i */
  1454         -  { 0x03B8,  0x74, 0x68 },  /* θ to th */
  1455         -  { 0x03B9,  0x69, 0x00 },  /* ι to i */
  1456         -  { 0x03BA,  0x6b, 0x00 },  /* κ to k */
  1457         -  { 0x03BB,  0x6c, 0x00 },  /* λ to l */
  1458         -  { 0x03BC,  0x6d, 0x00 },  /* μ to m */
  1459         -  { 0x03BD,  0x6e, 0x00 },  /* ν to n */
  1460         -  { 0x03BE,  0x78, 0x00 },  /* ξ to x */
  1461         -  { 0x03BF,  0x6f, 0x00 },  /* ο to o */
  1462         -  { 0x03C0,  0x70, 0x00 },  /* π to p */
  1463         -  { 0x03C1,  0x72, 0x00 },  /* ρ to r */
  1464         -  { 0x03C3,  0x73, 0x00 },  /* σ to s */
  1465         -  { 0x03C4,  0x74, 0x00 },  /* τ to t */
  1466         -  { 0x03C5,  0x79, 0x00 },  /* υ to y */
  1467         -  { 0x03C6,  0x66, 0x00 },  /* φ to f */
  1468         -  { 0x03C7,  0x63, 0x68 },  /* χ to ch */
  1469         -  { 0x03C8,  0x70, 0x73 },  /* ψ to ps */
  1470         -  { 0x03C9,  0x6f, 0x00 },  /* ω to o */
  1471         -  { 0x03CA,  0x69, 0x00 },  /* ϊ to i */
  1472         -  { 0x03CB,  0x79, 0x00 },  /* ϋ to y */
  1473         -  { 0x03CC,  0x6f, 0x00 },  /* ό to o */
  1474         -  { 0x03CD,  0x79, 0x00 },  /* ύ to y */
  1475         -  { 0x03CE,  0x69, 0x00 },  /* ώ to i */
  1476         -  { 0x0400,  0x45, 0x00 },  /* Ѐ to E */
  1477         -  { 0x0401,  0x45, 0x00 },  /* Ё to E */
  1478         -  { 0x0402,  0x44, 0x00 },  /* Ђ to D */
  1479         -  { 0x0403,  0x47, 0x00 },  /* Ѓ to G */
  1480         -  { 0x0404,  0x45, 0x00 },  /* Є to E */
  1481         -  { 0x0405,  0x5a, 0x00 },  /* Ѕ to Z */
  1482         -  { 0x0406,  0x49, 0x00 },  /* І to I */
  1483         -  { 0x0407,  0x49, 0x00 },  /* Ї to I */
  1484         -  { 0x0408,  0x4a, 0x00 },  /* Ј to J */
  1485         -  { 0x0409,  0x49, 0x00 },  /* Љ to I */
  1486         -  { 0x040A,  0x4e, 0x00 },  /* Њ to N */
  1487         -  { 0x040B,  0x44, 0x00 },  /* Ћ to D */
  1488         -  { 0x040C,  0x4b, 0x00 },  /* Ќ to K */
  1489         -  { 0x040D,  0x49, 0x00 },  /* Ѝ to I */
  1490         -  { 0x040E,  0x55, 0x00 },  /* Ў to U */
  1491         -  { 0x040F,  0x44, 0x00 },  /* Џ to D */
  1492         -  { 0x0410,  0x41, 0x00 },  /* А to A */
  1493         -  { 0x0411,  0x42, 0x00 },  /* Б to B */
  1494         -  { 0x0412,  0x56, 0x00 },  /* В to V */
  1495         -  { 0x0413,  0x47, 0x00 },  /* Г to G */
  1496         -  { 0x0414,  0x44, 0x00 },  /* Д to D */
  1497         -  { 0x0415,  0x45, 0x00 },  /* Е to E */
  1498         -  { 0x0416,  0x5a, 0x68 },  /* Ж to Zh */
  1499         -  { 0x0417,  0x5a, 0x00 },  /* З to Z */
  1500         -  { 0x0418,  0x49, 0x00 },  /* И to I */
  1501         -  { 0x0419,  0x49, 0x00 },  /* Й to I */
  1502         -  { 0x041A,  0x4b, 0x00 },  /* К to K */
  1503         -  { 0x041B,  0x4c, 0x00 },  /* Л to L */
  1504         -  { 0x041C,  0x4d, 0x00 },  /* М to M */
  1505         -  { 0x041D,  0x4e, 0x00 },  /* Н to N */
  1506         -  { 0x041E,  0x4f, 0x00 },  /* О to O */
  1507         -  { 0x041F,  0x50, 0x00 },  /* П to P */
  1508         -  { 0x0420,  0x52, 0x00 },  /* Р to R */
  1509         -  { 0x0421,  0x53, 0x00 },  /* С to S */
  1510         -  { 0x0422,  0x54, 0x00 },  /* Т to T */
  1511         -  { 0x0423,  0x55, 0x00 },  /* У to U */
  1512         -  { 0x0424,  0x46, 0x00 },  /* Ф to F */
  1513         -  { 0x0425,  0x4b, 0x68 },  /* Х to Kh */
  1514         -  { 0x0426,  0x54, 0x63 },  /* Ц to Tc */
  1515         -  { 0x0427,  0x43, 0x68 },  /* Ч to Ch */
  1516         -  { 0x0428,  0x53, 0x68 },  /* Ш to Sh */
  1517         -  { 0x0429,  0x53, 0x68 },  /* Щ to Shch */
  1518         -  { 0x042A,  0x61, 0x00 },  /*  to A */
  1519         -  { 0x042B,  0x59, 0x00 },  /* Ы to Y */
  1520         -  { 0x042C,  0x59, 0x00 },  /*  to Y */
  1521         -  { 0x042D,  0x45, 0x00 },  /* Э to E */
  1522         -  { 0x042E,  0x49, 0x75 },  /* Ю to Iu */
  1523         -  { 0x042F,  0x49, 0x61 },  /* Я to Ia */
  1524         -  { 0x0430,  0x61, 0x00 },  /* а to a */
  1525         -  { 0x0431,  0x62, 0x00 },  /* б to b */
  1526         -  { 0x0432,  0x76, 0x00 },  /* в to v */
  1527         -  { 0x0433,  0x67, 0x00 },  /* г to g */
  1528         -  { 0x0434,  0x64, 0x00 },  /* д to d */
  1529         -  { 0x0435,  0x65, 0x00 },  /* е to e */
  1530         -  { 0x0436,  0x7a, 0x68 },  /* ж to zh */
  1531         -  { 0x0437,  0x7a, 0x00 },  /* з to z */
  1532         -  { 0x0438,  0x69, 0x00 },  /* и to i */
  1533         -  { 0x0439,  0x69, 0x00 },  /* й to i */
  1534         -  { 0x043A,  0x6b, 0x00 },  /* к to k */
  1535         -  { 0x043B,  0x6c, 0x00 },  /* л to l */
  1536         -  { 0x043C,  0x6d, 0x00 },  /* м to m */
  1537         -  { 0x043D,  0x6e, 0x00 },  /* н to n */
  1538         -  { 0x043E,  0x6f, 0x00 },  /* о to o */
  1539         -  { 0x043F,  0x70, 0x00 },  /* п to p */
  1540         -  { 0x0440,  0x72, 0x00 },  /* р to r */
  1541         -  { 0x0441,  0x73, 0x00 },  /* с to s */
  1542         -  { 0x0442,  0x74, 0x00 },  /* т to t */
  1543         -  { 0x0443,  0x75, 0x00 },  /* у to u */
  1544         -  { 0x0444,  0x66, 0x00 },  /* ф to f */
  1545         -  { 0x0445,  0x6b, 0x68 },  /* х to kh */
  1546         -  { 0x0446,  0x74, 0x63 },  /* ц to tc */
  1547         -  { 0x0447,  0x63, 0x68 },  /* ч to ch */
  1548         -  { 0x0448,  0x73, 0x68 },  /* ш to sh */
  1549         -  { 0x0449,  0x73, 0x68 },  /* щ to shch */
  1550         -  { 0x044A,  0x61, 0x00 },  /*  to a */
  1551         -  { 0x044B,  0x79, 0x00 },  /* ы to y */
  1552         -  { 0x044C,  0x79, 0x00 },  /*  to y */
  1553         -  { 0x044D,  0x65, 0x00 },  /* э to e */
  1554         -  { 0x044E,  0x69, 0x75 },  /* ю to iu */
  1555         -  { 0x044F,  0x69, 0x61 },  /* я to ia */
  1556         -  { 0x0450,  0x65, 0x00 },  /* ѐ to e */
  1557         -  { 0x0451,  0x65, 0x00 },  /* ё to e */
  1558         -  { 0x0452,  0x64, 0x00 },  /* ђ to d */
  1559         -  { 0x0453,  0x67, 0x00 },  /* ѓ to g */
  1560         -  { 0x0454,  0x65, 0x00 },  /* є to e */
  1561         -  { 0x0455,  0x7a, 0x00 },  /* ѕ to z */
  1562         -  { 0x0456,  0x69, 0x00 },  /* і to i */
  1563         -  { 0x0457,  0x69, 0x00 },  /* ї to i */
  1564         -  { 0x0458,  0x6a, 0x00 },  /* ј to j */
  1565         -  { 0x0459,  0x69, 0x00 },  /* љ to i */
  1566         -  { 0x045A,  0x6e, 0x00 },  /* њ to n */
  1567         -  { 0x045B,  0x64, 0x00 },  /* ћ to d */
  1568         -  { 0x045C,  0x6b, 0x00 },  /* ќ to k */
  1569         -  { 0x045D,  0x69, 0x00 },  /* ѝ to i */
  1570         -  { 0x045E,  0x75, 0x00 },  /* ў to u */
  1571         -  { 0x045F,  0x64, 0x00 },  /* џ to d */
  1572         -  { 0x1E02,  0x42, 0x00 },  /* Ḃ to B */
  1573         -  { 0x1E03,  0x62, 0x00 },  /* ḃ to b */
  1574         -  { 0x1E0A,  0x44, 0x00 },  /* Ḋ to D */
  1575         -  { 0x1E0B,  0x64, 0x00 },  /* ḋ to d */
  1576         -  { 0x1E1E,  0x46, 0x00 },  /* Ḟ to F */
  1577         -  { 0x1E1F,  0x66, 0x00 },  /* ḟ to f */
  1578         -  { 0x1E40,  0x4D, 0x00 },  /* Ṁ to M */
  1579         -  { 0x1E41,  0x6D, 0x00 },  /* ṁ to m */
  1580         -  { 0x1E56,  0x50, 0x00 },  /* Ṗ to P */
  1581         -  { 0x1E57,  0x70, 0x00 },  /* ṗ to p */
  1582         -  { 0x1E60,  0x53, 0x00 },  /* Ṡ to S */
  1583         -  { 0x1E61,  0x73, 0x00 },  /* ṡ to s */
  1584         -  { 0x1E6A,  0x54, 0x00 },  /* Ṫ to T */
  1585         -  { 0x1E6B,  0x74, 0x00 },  /* ṫ to t */
  1586         -  { 0x1E80,  0x57, 0x00 },  /* Ẁ to W */
  1587         -  { 0x1E81,  0x77, 0x00 },  /* ẁ to w */
  1588         -  { 0x1E82,  0x57, 0x00 },  /* Ẃ to W */
  1589         -  { 0x1E83,  0x77, 0x00 },  /* ẃ to w */
  1590         -  { 0x1E84,  0x57, 0x00 },  /* Ẅ to W */
  1591         -  { 0x1E85,  0x77, 0x00 },  /* ẅ to w */
  1592         -  { 0x1EF2,  0x59, 0x00 },  /* Ỳ to Y */
  1593         -  { 0x1EF3,  0x79, 0x00 },  /* ỳ to y */
  1594         -  { 0xFB00,  0x66, 0x66 },  /* ff to ff */
  1595         -  { 0xFB01,  0x66, 0x69 },  /* fi to fi */
  1596         -  { 0xFB02,  0x66, 0x6C },  /* fl to fl */
  1597         -  { 0xFB05,  0x73, 0x74 },  /* ſt to st */
  1598         -  { 0xFB06,  0x73, 0x74 },  /* st to st */
         1212  +static const Transliteration translit[] = {
         1213  +  { 0x00A0,  0x20, 0x00, 0x00, 0x00 },  /*   to   */
         1214  +  { 0x00B5,  0x75, 0x00, 0x00, 0x00 },  /* µ to u */
         1215  +  { 0x00C0,  0x41, 0x00, 0x00, 0x00 },  /* À to A */
         1216  +  { 0x00C1,  0x41, 0x00, 0x00, 0x00 },  /* Á to A */
         1217  +  { 0x00C2,  0x41, 0x00, 0x00, 0x00 },  /* Â to A */
         1218  +  { 0x00C3,  0x41, 0x00, 0x00, 0x00 },  /* Ã to A */
         1219  +  { 0x00C4,  0x41, 0x65, 0x00, 0x00 },  /* Ä to Ae */
         1220  +  { 0x00C5,  0x41, 0x61, 0x00, 0x00 },  /* Å to Aa */
         1221  +  { 0x00C6,  0x41, 0x45, 0x00, 0x00 },  /* Æ to AE */
         1222  +  { 0x00C7,  0x43, 0x00, 0x00, 0x00 },  /* Ç to C */
         1223  +  { 0x00C8,  0x45, 0x00, 0x00, 0x00 },  /* È to E */
         1224  +  { 0x00C9,  0x45, 0x00, 0x00, 0x00 },  /* É to E */
         1225  +  { 0x00CA,  0x45, 0x00, 0x00, 0x00 },  /* Ê to E */
         1226  +  { 0x00CB,  0x45, 0x00, 0x00, 0x00 },  /* Ë to E */
         1227  +  { 0x00CC,  0x49, 0x00, 0x00, 0x00 },  /* Ì to I */
         1228  +  { 0x00CD,  0x49, 0x00, 0x00, 0x00 },  /* Í to I */
         1229  +  { 0x00CE,  0x49, 0x00, 0x00, 0x00 },  /* Î to I */
         1230  +  { 0x00CF,  0x49, 0x00, 0x00, 0x00 },  /* Ï to I */
         1231  +  { 0x00D0,  0x44, 0x00, 0x00, 0x00 },  /* Ð to D */
         1232  +  { 0x00D1,  0x4E, 0x00, 0x00, 0x00 },  /* Ñ to N */
         1233  +  { 0x00D2,  0x4F, 0x00, 0x00, 0x00 },  /* Ò to O */
         1234  +  { 0x00D3,  0x4F, 0x00, 0x00, 0x00 },  /* Ó to O */
         1235  +  { 0x00D4,  0x4F, 0x00, 0x00, 0x00 },  /* Ô to O */
         1236  +  { 0x00D5,  0x4F, 0x00, 0x00, 0x00 },  /* Õ to O */
         1237  +  { 0x00D6,  0x4F, 0x65, 0x00, 0x00 },  /* Ö to Oe */
         1238  +  { 0x00D7,  0x78, 0x00, 0x00, 0x00 },  /* × to x */
         1239  +  { 0x00D8,  0x4F, 0x00, 0x00, 0x00 },  /* Ø to O */
         1240  +  { 0x00D9,  0x55, 0x00, 0x00, 0x00 },  /* Ù to U */
         1241  +  { 0x00DA,  0x55, 0x00, 0x00, 0x00 },  /* Ú to U */
         1242  +  { 0x00DB,  0x55, 0x00, 0x00, 0x00 },  /* Û to U */
         1243  +  { 0x00DC,  0x55, 0x65, 0x00, 0x00 },  /* Ü to Ue */
         1244  +  { 0x00DD,  0x59, 0x00, 0x00, 0x00 },  /* Ý to Y */
         1245  +  { 0x00DE,  0x54, 0x68, 0x00, 0x00 },  /* Þ to Th */
         1246  +  { 0x00DF,  0x73, 0x73, 0x00, 0x00 },  /* ß to ss */
         1247  +  { 0x00E0,  0x61, 0x00, 0x00, 0x00 },  /* à to a */
         1248  +  { 0x00E1,  0x61, 0x00, 0x00, 0x00 },  /* á to a */
         1249  +  { 0x00E2,  0x61, 0x00, 0x00, 0x00 },  /* â to a */
         1250  +  { 0x00E3,  0x61, 0x00, 0x00, 0x00 },  /* ã to a */
         1251  +  { 0x00E4,  0x61, 0x65, 0x00, 0x00 },  /* ä to ae */
         1252  +  { 0x00E5,  0x61, 0x61, 0x00, 0x00 },  /* å to aa */
         1253  +  { 0x00E6,  0x61, 0x65, 0x00, 0x00 },  /* æ to ae */
         1254  +  { 0x00E7,  0x63, 0x00, 0x00, 0x00 },  /* ç to c */
         1255  +  { 0x00E8,  0x65, 0x00, 0x00, 0x00 },  /* è to e */
         1256  +  { 0x00E9,  0x65, 0x00, 0x00, 0x00 },  /* é to e */
         1257  +  { 0x00EA,  0x65, 0x00, 0x00, 0x00 },  /* ê to e */
         1258  +  { 0x00EB,  0x65, 0x00, 0x00, 0x00 },  /* ë to e */
         1259  +  { 0x00EC,  0x69, 0x00, 0x00, 0x00 },  /* ì to i */
         1260  +  { 0x00ED,  0x69, 0x00, 0x00, 0x00 },  /* í to i */
         1261  +  { 0x00EE,  0x69, 0x00, 0x00, 0x00 },  /* î to i */
         1262  +  { 0x00EF,  0x69, 0x00, 0x00, 0x00 },  /* ï to i */
         1263  +  { 0x00F0,  0x64, 0x00, 0x00, 0x00 },  /* ð to d */
         1264  +  { 0x00F1,  0x6E, 0x00, 0x00, 0x00 },  /* ñ to n */
         1265  +  { 0x00F2,  0x6F, 0x00, 0x00, 0x00 },  /* ò to o */
         1266  +  { 0x00F3,  0x6F, 0x00, 0x00, 0x00 },  /* ó to o */
         1267  +  { 0x00F4,  0x6F, 0x00, 0x00, 0x00 },  /* ô to o */
         1268  +  { 0x00F5,  0x6F, 0x00, 0x00, 0x00 },  /* õ to o */
         1269  +  { 0x00F6,  0x6F, 0x65, 0x00, 0x00 },  /* ö to oe */
         1270  +  { 0x00F7,  0x3A, 0x00, 0x00, 0x00 },  /* ÷ to : */
         1271  +  { 0x00F8,  0x6F, 0x00, 0x00, 0x00 },  /* ø to o */
         1272  +  { 0x00F9,  0x75, 0x00, 0x00, 0x00 },  /* ù to u */
         1273  +  { 0x00FA,  0x75, 0x00, 0x00, 0x00 },  /* ú to u */
         1274  +  { 0x00FB,  0x75, 0x00, 0x00, 0x00 },  /* û to u */
         1275  +  { 0x00FC,  0x75, 0x65, 0x00, 0x00 },  /* ü to ue */
         1276  +  { 0x00FD,  0x79, 0x00, 0x00, 0x00 },  /* ý to y */
         1277  +  { 0x00FE,  0x74, 0x68, 0x00, 0x00 },  /* þ to th */
         1278  +  { 0x00FF,  0x79, 0x00, 0x00, 0x00 },  /* ÿ to y */
         1279  +  { 0x0100,  0x41, 0x00, 0x00, 0x00 },  /* Ā to A */
         1280  +  { 0x0101,  0x61, 0x00, 0x00, 0x00 },  /* ā to a */
         1281  +  { 0x0102,  0x41, 0x00, 0x00, 0x00 },  /* Ă to A */
         1282  +  { 0x0103,  0x61, 0x00, 0x00, 0x00 },  /* ă to a */
         1283  +  { 0x0104,  0x41, 0x00, 0x00, 0x00 },  /* Ą to A */
         1284  +  { 0x0105,  0x61, 0x00, 0x00, 0x00 },  /* ą to a */
         1285  +  { 0x0106,  0x43, 0x00, 0x00, 0x00 },  /* Ć to C */
         1286  +  { 0x0107,  0x63, 0x00, 0x00, 0x00 },  /* ć to c */
         1287  +  { 0x0108,  0x43, 0x68, 0x00, 0x00 },  /* Ĉ to Ch */
         1288  +  { 0x0109,  0x63, 0x68, 0x00, 0x00 },  /* ĉ to ch */
         1289  +  { 0x010A,  0x43, 0x00, 0x00, 0x00 },  /* Ċ to C */
         1290  +  { 0x010B,  0x63, 0x00, 0x00, 0x00 },  /* ċ to c */
         1291  +  { 0x010C,  0x43, 0x00, 0x00, 0x00 },  /* Č to C */
         1292  +  { 0x010D,  0x63, 0x00, 0x00, 0x00 },  /* č to c */
         1293  +  { 0x010E,  0x44, 0x00, 0x00, 0x00 },  /* Ď to D */
         1294  +  { 0x010F,  0x64, 0x00, 0x00, 0x00 },  /* ď to d */
         1295  +  { 0x0110,  0x44, 0x00, 0x00, 0x00 },  /* Đ to D */
         1296  +  { 0x0111,  0x64, 0x00, 0x00, 0x00 },  /* đ to d */
         1297  +  { 0x0112,  0x45, 0x00, 0x00, 0x00 },  /* Ē to E */
         1298  +  { 0x0113,  0x65, 0x00, 0x00, 0x00 },  /* ē to e */
         1299  +  { 0x0114,  0x45, 0x00, 0x00, 0x00 },  /* Ĕ to E */
         1300  +  { 0x0115,  0x65, 0x00, 0x00, 0x00 },  /* ĕ to e */
         1301  +  { 0x0116,  0x45, 0x00, 0x00, 0x00 },  /* Ė to E */
         1302  +  { 0x0117,  0x65, 0x00, 0x00, 0x00 },  /* ė to e */
         1303  +  { 0x0118,  0x45, 0x00, 0x00, 0x00 },  /* Ę to E */
         1304  +  { 0x0119,  0x65, 0x00, 0x00, 0x00 },  /* ę to e */
         1305  +  { 0x011A,  0x45, 0x00, 0x00, 0x00 },  /* Ě to E */
         1306  +  { 0x011B,  0x65, 0x00, 0x00, 0x00 },  /* ě to e */
         1307  +  { 0x011C,  0x47, 0x68, 0x00, 0x00 },  /* Ĝ to Gh */
         1308  +  { 0x011D,  0x67, 0x68, 0x00, 0x00 },  /* ĝ to gh */
         1309  +  { 0x011E,  0x47, 0x00, 0x00, 0x00 },  /* Ğ to G */
         1310  +  { 0x011F,  0x67, 0x00, 0x00, 0x00 },  /* ğ to g */
         1311  +  { 0x0120,  0x47, 0x00, 0x00, 0x00 },  /* Ġ to G */
         1312  +  { 0x0121,  0x67, 0x00, 0x00, 0x00 },  /* ġ to g */
         1313  +  { 0x0122,  0x47, 0x00, 0x00, 0x00 },  /* Ģ to G */
         1314  +  { 0x0123,  0x67, 0x00, 0x00, 0x00 },  /* ģ to g */
         1315  +  { 0x0124,  0x48, 0x68, 0x00, 0x00 },  /* Ĥ to Hh */
         1316  +  { 0x0125,  0x68, 0x68, 0x00, 0x00 },  /* ĥ to hh */
         1317  +  { 0x0126,  0x48, 0x00, 0x00, 0x00 },  /* Ħ to H */
         1318  +  { 0x0127,  0x68, 0x00, 0x00, 0x00 },  /* ħ to h */
         1319  +  { 0x0128,  0x49, 0x00, 0x00, 0x00 },  /* Ĩ to I */
         1320  +  { 0x0129,  0x69, 0x00, 0x00, 0x00 },  /* ĩ to i */
         1321  +  { 0x012A,  0x49, 0x00, 0x00, 0x00 },  /* Ī to I */
         1322  +  { 0x012B,  0x69, 0x00, 0x00, 0x00 },  /* ī to i */
         1323  +  { 0x012C,  0x49, 0x00, 0x00, 0x00 },  /* Ĭ to I */
         1324  +  { 0x012D,  0x69, 0x00, 0x00, 0x00 },  /* ĭ to i */
         1325  +  { 0x012E,  0x49, 0x00, 0x00, 0x00 },  /* Į to I */
         1326  +  { 0x012F,  0x69, 0x00, 0x00, 0x00 },  /* į to i */
         1327  +  { 0x0130,  0x49, 0x00, 0x00, 0x00 },  /* İ to I */
         1328  +  { 0x0131,  0x69, 0x00, 0x00, 0x00 },  /* ı to i */
         1329  +  { 0x0132,  0x49, 0x4A, 0x00, 0x00 },  /* IJ to IJ */
         1330  +  { 0x0133,  0x69, 0x6A, 0x00, 0x00 },  /* ij to ij */
         1331  +  { 0x0134,  0x4A, 0x68, 0x00, 0x00 },  /* Ĵ to Jh */
         1332  +  { 0x0135,  0x6A, 0x68, 0x00, 0x00 },  /* ĵ to jh */
         1333  +  { 0x0136,  0x4B, 0x00, 0x00, 0x00 },  /* Ķ to K */
         1334  +  { 0x0137,  0x6B, 0x00, 0x00, 0x00 },  /* ķ to k */
         1335  +  { 0x0138,  0x6B, 0x00, 0x00, 0x00 },  /* ĸ to k */
         1336  +  { 0x0139,  0x4C, 0x00, 0x00, 0x00 },  /* Ĺ to L */
         1337  +  { 0x013A,  0x6C, 0x00, 0x00, 0x00 },  /* ĺ to l */
         1338  +  { 0x013B,  0x4C, 0x00, 0x00, 0x00 },  /* Ļ to L */
         1339  +  { 0x013C,  0x6C, 0x00, 0x00, 0x00 },  /* ļ to l */
         1340  +  { 0x013D,  0x4C, 0x00, 0x00, 0x00 },  /* Ľ to L */
         1341  +  { 0x013E,  0x6C, 0x00, 0x00, 0x00 },  /* ľ to l */
         1342  +  { 0x013F,  0x4C, 0x2E, 0x00, 0x00 },  /* Ŀ to L. */
         1343  +  { 0x0140,  0x6C, 0x2E, 0x00, 0x00 },  /* ŀ to l. */
         1344  +  { 0x0141,  0x4C, 0x00, 0x00, 0x00 },  /* Ł to L */
         1345  +  { 0x0142,  0x6C, 0x00, 0x00, 0x00 },  /* ł to l */
         1346  +  { 0x0143,  0x4E, 0x00, 0x00, 0x00 },  /* Ń to N */
         1347  +  { 0x0144,  0x6E, 0x00, 0x00, 0x00 },  /* ń to n */
         1348  +  { 0x0145,  0x4E, 0x00, 0x00, 0x00 },  /* Ņ to N */
         1349  +  { 0x0146,  0x6E, 0x00, 0x00, 0x00 },  /* ņ to n */
         1350  +  { 0x0147,  0x4E, 0x00, 0x00, 0x00 },  /* Ň to N */
         1351  +  { 0x0148,  0x6E, 0x00, 0x00, 0x00 },  /* ň to n */
         1352  +  { 0x0149,  0x27, 0x6E, 0x00, 0x00 },  /* ʼn to 'n */
         1353  +  { 0x014A,  0x4E, 0x47, 0x00, 0x00 },  /* Ŋ to NG */
         1354  +  { 0x014B,  0x6E, 0x67, 0x00, 0x00 },  /* ŋ to ng */
         1355  +  { 0x014C,  0x4F, 0x00, 0x00, 0x00 },  /* Ō to O */
         1356  +  { 0x014D,  0x6F, 0x00, 0x00, 0x00 },  /* ō to o */
         1357  +  { 0x014E,  0x4F, 0x00, 0x00, 0x00 },  /* Ŏ to O */
         1358  +  { 0x014F,  0x6F, 0x00, 0x00, 0x00 },  /* ŏ to o */
         1359  +  { 0x0150,  0x4F, 0x00, 0x00, 0x00 },  /* Ő to O */
         1360  +  { 0x0151,  0x6F, 0x00, 0x00, 0x00 },  /* ő to o */
         1361  +  { 0x0152,  0x4F, 0x45, 0x00, 0x00 },  /* Πto OE */
         1362  +  { 0x0153,  0x6F, 0x65, 0x00, 0x00 },  /* œ to oe */
         1363  +  { 0x0154,  0x52, 0x00, 0x00, 0x00 },  /* Ŕ to R */
         1364  +  { 0x0155,  0x72, 0x00, 0x00, 0x00 },  /* ŕ to r */
         1365  +  { 0x0156,  0x52, 0x00, 0x00, 0x00 },  /* Ŗ to R */
         1366  +  { 0x0157,  0x72, 0x00, 0x00, 0x00 },  /* ŗ to r */
         1367  +  { 0x0158,  0x52, 0x00, 0x00, 0x00 },  /* Ř to R */
         1368  +  { 0x0159,  0x72, 0x00, 0x00, 0x00 },  /* ř to r */
         1369  +  { 0x015A,  0x53, 0x00, 0x00, 0x00 },  /* Ś to S */
         1370  +  { 0x015B,  0x73, 0x00, 0x00, 0x00 },  /* ś to s */
         1371  +  { 0x015C,  0x53, 0x68, 0x00, 0x00 },  /* Ŝ to Sh */
         1372  +  { 0x015D,  0x73, 0x68, 0x00, 0x00 },  /* ŝ to sh */
         1373  +  { 0x015E,  0x53, 0x00, 0x00, 0x00 },  /* Ş to S */
         1374  +  { 0x015F,  0x73, 0x00, 0x00, 0x00 },  /* ş to s */
         1375  +  { 0x0160,  0x53, 0x00, 0x00, 0x00 },  /* Š to S */
         1376  +  { 0x0161,  0x73, 0x00, 0x00, 0x00 },  /* š to s */
         1377  +  { 0x0162,  0x54, 0x00, 0x00, 0x00 },  /* Ţ to T */
         1378  +  { 0x0163,  0x74, 0x00, 0x00, 0x00 },  /* ţ to t */
         1379  +  { 0x0164,  0x54, 0x00, 0x00, 0x00 },  /* Ť to T */
         1380  +  { 0x0165,  0x74, 0x00, 0x00, 0x00 },  /* ť to t */
         1381  +  { 0x0166,  0x54, 0x00, 0x00, 0x00 },  /* Ŧ to T */
         1382  +  { 0x0167,  0x74, 0x00, 0x00, 0x00 },  /* ŧ to t */
         1383  +  { 0x0168,  0x55, 0x00, 0x00, 0x00 },  /* Ũ to U */
         1384  +  { 0x0169,  0x75, 0x00, 0x00, 0x00 },  /* ũ to u */
         1385  +  { 0x016A,  0x55, 0x00, 0x00, 0x00 },  /* Ū to U */
         1386  +  { 0x016B,  0x75, 0x00, 0x00, 0x00 },  /* ū to u */
         1387  +  { 0x016C,  0x55, 0x00, 0x00, 0x00 },  /* Ŭ to U */
         1388  +  { 0x016D,  0x75, 0x00, 0x00, 0x00 },  /* ŭ to u */
         1389  +  { 0x016E,  0x55, 0x00, 0x00, 0x00 },  /* Ů to U */
         1390  +  { 0x016F,  0x75, 0x00, 0x00, 0x00 },  /* ů to u */
         1391  +  { 0x0170,  0x55, 0x00, 0x00, 0x00 },  /* Ű to U */
         1392  +  { 0x0171,  0x75, 0x00, 0x00, 0x00 },  /* ű to u */
         1393  +  { 0x0172,  0x55, 0x00, 0x00, 0x00 },  /* Ų to U */
         1394  +  { 0x0173,  0x75, 0x00, 0x00, 0x00 },  /* ų to u */
         1395  +  { 0x0174,  0x57, 0x00, 0x00, 0x00 },  /* Ŵ to W */
         1396  +  { 0x0175,  0x77, 0x00, 0x00, 0x00 },  /* ŵ to w */
         1397  +  { 0x0176,  0x59, 0x00, 0x00, 0x00 },  /* Ŷ to Y */
         1398  +  { 0x0177,  0x79, 0x00, 0x00, 0x00 },  /* ŷ to y */
         1399  +  { 0x0178,  0x59, 0x00, 0x00, 0x00 },  /* Ÿ to Y */
         1400  +  { 0x0179,  0x5A, 0x00, 0x00, 0x00 },  /* Ź to Z */
         1401  +  { 0x017A,  0x7A, 0x00, 0x00, 0x00 },  /* ź to z */
         1402  +  { 0x017B,  0x5A, 0x00, 0x00, 0x00 },  /* Ż to Z */
         1403  +  { 0x017C,  0x7A, 0x00, 0x00, 0x00 },  /* ż to z */
         1404  +  { 0x017D,  0x5A, 0x00, 0x00, 0x00 },  /* Ž to Z */
         1405  +  { 0x017E,  0x7A, 0x00, 0x00, 0x00 },  /* ž to z */
         1406  +  { 0x017F,  0x73, 0x00, 0x00, 0x00 },  /* ſ to s */
         1407  +  { 0x0192,  0x66, 0x00, 0x00, 0x00 },  /* ƒ to f */
         1408  +  { 0x0218,  0x53, 0x00, 0x00, 0x00 },  /* Ș to S */
         1409  +  { 0x0219,  0x73, 0x00, 0x00, 0x00 },  /* ș to s */
         1410  +  { 0x021A,  0x54, 0x00, 0x00, 0x00 },  /* Ț to T */
         1411  +  { 0x021B,  0x74, 0x00, 0x00, 0x00 },  /* ț to t */
         1412  +  { 0x0386,  0x41, 0x00, 0x00, 0x00 },  /* Ά to A */
         1413  +  { 0x0388,  0x45, 0x00, 0x00, 0x00 },  /* Έ to E */
         1414  +  { 0x0389,  0x49, 0x00, 0x00, 0x00 },  /* Ή to I */
         1415  +  { 0x038A,  0x49, 0x00, 0x00, 0x00 },  /* Ί to I */
         1416  +  { 0x038C,  0x4f, 0x00, 0x00, 0x00 },  /* Ό to O */
         1417  +  { 0x038E,  0x59, 0x00, 0x00, 0x00 },  /* Ύ to Y */
         1418  +  { 0x038F,  0x4f, 0x00, 0x00, 0x00 },  /* Ώ to O */
         1419  +  { 0x0390,  0x69, 0x00, 0x00, 0x00 },  /* ΐ to i */
         1420  +  { 0x0391,  0x41, 0x00, 0x00, 0x00 },  /* Α to A */
         1421  +  { 0x0392,  0x42, 0x00, 0x00, 0x00 },  /* Β to B */
         1422  +  { 0x0393,  0x47, 0x00, 0x00, 0x00 },  /* Γ to G */
         1423  +  { 0x0394,  0x44, 0x00, 0x00, 0x00 },  /* Δ to D */
         1424  +  { 0x0395,  0x45, 0x00, 0x00, 0x00 },  /* Ε to E */
         1425  +  { 0x0396,  0x5a, 0x00, 0x00, 0x00 },  /* Ζ to Z */
         1426  +  { 0x0397,  0x49, 0x00, 0x00, 0x00 },  /* Η to I */
         1427  +  { 0x0398,  0x54, 0x68, 0x00, 0x00 },  /* Θ to Th */
         1428  +  { 0x0399,  0x49, 0x00, 0x00, 0x00 },  /* Ι to I */
         1429  +  { 0x039A,  0x4b, 0x00, 0x00, 0x00 },  /* Κ to K */
         1430  +  { 0x039B,  0x4c, 0x00, 0x00, 0x00 },  /* Λ to L */
         1431  +  { 0x039C,  0x4d, 0x00, 0x00, 0x00 },  /* Μ to M */
         1432  +  { 0x039D,  0x4e, 0x00, 0x00, 0x00 },  /* Ν to N */
         1433  +  { 0x039E,  0x58, 0x00, 0x00, 0x00 },  /* Ξ to X */
         1434  +  { 0x039F,  0x4f, 0x00, 0x00, 0x00 },  /* Ο to O */
         1435  +  { 0x03A0,  0x50, 0x00, 0x00, 0x00 },  /* Π to P */
         1436  +  { 0x03A1,  0x52, 0x00, 0x00, 0x00 },  /* Ρ to R */
         1437  +  { 0x03A3,  0x53, 0x00, 0x00, 0x00 },  /* Σ to S */
         1438  +  { 0x03A4,  0x54, 0x00, 0x00, 0x00 },  /* Τ to T */
         1439  +  { 0x03A5,  0x59, 0x00, 0x00, 0x00 },  /* Υ to Y */
         1440  +  { 0x03A6,  0x46, 0x00, 0x00, 0x00 },  /* Φ to F */
         1441  +  { 0x03A7,  0x43, 0x68, 0x00, 0x00 },  /* Χ to Ch */
         1442  +  { 0x03A8,  0x50, 0x73, 0x00, 0x00 },  /* Ψ to Ps */
         1443  +  { 0x03A9,  0x4f, 0x00, 0x00, 0x00 },  /* Ω to O */
         1444  +  { 0x03AA,  0x49, 0x00, 0x00, 0x00 },  /* Ϊ to I */
         1445  +  { 0x03AB,  0x59, 0x00, 0x00, 0x00 },  /* Ϋ to Y */
         1446  +  { 0x03AC,  0x61, 0x00, 0x00, 0x00 },  /* ά to a */
         1447  +  { 0x03AD,  0x65, 0x00, 0x00, 0x00 },  /* έ to e */
         1448  +  { 0x03AE,  0x69, 0x00, 0x00, 0x00 },  /* ή to i */
         1449  +  { 0x03AF,  0x69, 0x00, 0x00, 0x00 },  /* ί to i */
         1450  +  { 0x03B1,  0x61, 0x00, 0x00, 0x00 },  /* α to a */
         1451  +  { 0x03B2,  0x62, 0x00, 0x00, 0x00 },  /* β to b */
         1452  +  { 0x03B3,  0x67, 0x00, 0x00, 0x00 },  /* γ to g */
         1453  +  { 0x03B4,  0x64, 0x00, 0x00, 0x00 },  /* δ to d */
         1454  +  { 0x03B5,  0x65, 0x00, 0x00, 0x00 },  /* ε to e */
         1455  +  { 0x03B6,  0x7a, 0x00, 0x00, 0x00 },  /* ζ to z */
         1456  +  { 0x03B7,  0x69, 0x00, 0x00, 0x00 },  /* η to i */
         1457  +  { 0x03B8,  0x74, 0x68, 0x00, 0x00 },  /* θ to th */
         1458  +  { 0x03B9,  0x69, 0x00, 0x00, 0x00 },  /* ι to i */
         1459  +  { 0x03BA,  0x6b, 0x00, 0x00, 0x00 },  /* κ to k */
         1460  +  { 0x03BB,  0x6c, 0x00, 0x00, 0x00 },  /* λ to l */
         1461  +  { 0x03BC,  0x6d, 0x00, 0x00, 0x00 },  /* μ to m */
         1462  +  { 0x03BD,  0x6e, 0x00, 0x00, 0x00 },  /* ν to n */
         1463  +  { 0x03BE,  0x78, 0x00, 0x00, 0x00 },  /* ξ to x */
         1464  +  { 0x03BF,  0x6f, 0x00, 0x00, 0x00 },  /* ο to o */
         1465  +  { 0x03C0,  0x70, 0x00, 0x00, 0x00 },  /* π to p */
         1466  +  { 0x03C1,  0x72, 0x00, 0x00, 0x00 },  /* ρ to r */
         1467  +  { 0x03C3,  0x73, 0x00, 0x00, 0x00 },  /* σ to s */
         1468  +  { 0x03C4,  0x74, 0x00, 0x00, 0x00 },  /* τ to t */
         1469  +  { 0x03C5,  0x79, 0x00, 0x00, 0x00 },  /* υ to y */
         1470  +  { 0x03C6,  0x66, 0x00, 0x00, 0x00 },  /* φ to f */
         1471  +  { 0x03C7,  0x63, 0x68, 0x00, 0x00 },  /* χ to ch */
         1472  +  { 0x03C8,  0x70, 0x73, 0x00, 0x00 },  /* ψ to ps */
         1473  +  { 0x03C9,  0x6f, 0x00, 0x00, 0x00 },  /* ω to o */
         1474  +  { 0x03CA,  0x69, 0x00, 0x00, 0x00 },  /* ϊ to i */
         1475  +  { 0x03CB,  0x79, 0x00, 0x00, 0x00 },  /* ϋ to y */
         1476  +  { 0x03CC,  0x6f, 0x00, 0x00, 0x00 },  /* ό to o */
         1477  +  { 0x03CD,  0x79, 0x00, 0x00, 0x00 },  /* ύ to y */
         1478  +  { 0x03CE,  0x69, 0x00, 0x00, 0x00 },  /* ώ to i */
         1479  +  { 0x0400,  0x45, 0x00, 0x00, 0x00 },  /* Ѐ to E */
         1480  +  { 0x0401,  0x45, 0x00, 0x00, 0x00 },  /* Ё to E */
         1481  +  { 0x0402,  0x44, 0x00, 0x00, 0x00 },  /* Ђ to D */
         1482  +  { 0x0403,  0x47, 0x00, 0x00, 0x00 },  /* Ѓ to G */
         1483  +  { 0x0404,  0x45, 0x00, 0x00, 0x00 },  /* Є to E */
         1484  +  { 0x0405,  0x5a, 0x00, 0x00, 0x00 },  /* Ѕ to Z */
         1485  +  { 0x0406,  0x49, 0x00, 0x00, 0x00 },  /* І to I */
         1486  +  { 0x0407,  0x49, 0x00, 0x00, 0x00 },  /* Ї to I */
         1487  +  { 0x0408,  0x4a, 0x00, 0x00, 0x00 },  /* Ј to J */
         1488  +  { 0x0409,  0x49, 0x00, 0x00, 0x00 },  /* Љ to I */
         1489  +  { 0x040A,  0x4e, 0x00, 0x00, 0x00 },  /* Њ to N */
         1490  +  { 0x040B,  0x44, 0x00, 0x00, 0x00 },  /* Ћ to D */
         1491  +  { 0x040C,  0x4b, 0x00, 0x00, 0x00 },  /* Ќ to K */
         1492  +  { 0x040D,  0x49, 0x00, 0x00, 0x00 },  /* Ѝ to I */
         1493  +  { 0x040E,  0x55, 0x00, 0x00, 0x00 },  /* Ў to U */
         1494  +  { 0x040F,  0x44, 0x00, 0x00, 0x00 },  /* Џ to D */
         1495  +  { 0x0410,  0x41, 0x00, 0x00, 0x00 },  /* А to A */
         1496  +  { 0x0411,  0x42, 0x00, 0x00, 0x00 },  /* Б to B */
         1497  +  { 0x0412,  0x56, 0x00, 0x00, 0x00 },  /* В to V */
         1498  +  { 0x0413,  0x47, 0x00, 0x00, 0x00 },  /* Г to G */
         1499  +  { 0x0414,  0x44, 0x00, 0x00, 0x00 },  /* Д to D */
         1500  +  { 0x0415,  0x45, 0x00, 0x00, 0x00 },  /* Е to E */
         1501  +  { 0x0416,  0x5a, 0x68, 0x00, 0x00 },  /* Ж to Zh */
         1502  +  { 0x0417,  0x5a, 0x00, 0x00, 0x00 },  /* З to Z */
         1503  +  { 0x0418,  0x49, 0x00, 0x00, 0x00 },  /* И to I */
         1504  +  { 0x0419,  0x49, 0x00, 0x00, 0x00 },  /* Й to I */
         1505  +  { 0x041A,  0x4b, 0x00, 0x00, 0x00 },  /* К to K */
         1506  +  { 0x041B,  0x4c, 0x00, 0x00, 0x00 },  /* Л to L */
         1507  +  { 0x041C,  0x4d, 0x00, 0x00, 0x00 },  /* М to M */
         1508  +  { 0x041D,  0x4e, 0x00, 0x00, 0x00 },  /* Н to N */
         1509  +  { 0x041E,  0x4f, 0x00, 0x00, 0x00 },  /* О to O */
         1510  +  { 0x041F,  0x50, 0x00, 0x00, 0x00 },  /* П to P */
         1511  +  { 0x0420,  0x52, 0x00, 0x00, 0x00 },  /* Р to R */
         1512  +  { 0x0421,  0x53, 0x00, 0x00, 0x00 },  /* С to S */
         1513  +  { 0x0422,  0x54, 0x00, 0x00, 0x00 },  /* Т to T */
         1514  +  { 0x0423,  0x55, 0x00, 0x00, 0x00 },  /* У to U */
         1515  +  { 0x0424,  0x46, 0x00, 0x00, 0x00 },  /* Ф to F */
         1516  +  { 0x0425,  0x4b, 0x68, 0x00, 0x00 },  /* Х to Kh */
         1517  +  { 0x0426,  0x54, 0x63, 0x00, 0x00 },  /* Ц to Tc */
         1518  +  { 0x0427,  0x43, 0x68, 0x00, 0x00 },  /* Ч to Ch */
         1519  +  { 0x0428,  0x53, 0x68, 0x00, 0x00 },  /* Ш to Sh */
         1520  +  { 0x0429,  0x53, 0x68, 0x63, 0x68 },  /* Щ to Shch */
         1521  +  { 0x042A,  0x61, 0x00, 0x00, 0x00 },  /*  to A */
         1522  +  { 0x042B,  0x59, 0x00, 0x00, 0x00 },  /* Ы to Y */
         1523  +  { 0x042C,  0x59, 0x00, 0x00, 0x00 },  /*  to Y */
         1524  +  { 0x042D,  0x45, 0x00, 0x00, 0x00 },  /* Э to E */
         1525  +  { 0x042E,  0x49, 0x75, 0x00, 0x00 },  /* Ю to Iu */
         1526  +  { 0x042F,  0x49, 0x61, 0x00, 0x00 },  /* Я to Ia */
         1527  +  { 0x0430,  0x61, 0x00, 0x00, 0x00 },  /* а to a */
         1528  +  { 0x0431,  0x62, 0x00, 0x00, 0x00 },  /* б to b */
         1529  +  { 0x0432,  0x76, 0x00, 0x00, 0x00 },  /* в to v */
         1530  +  { 0x0433,  0x67, 0x00, 0x00, 0x00 },  /* г to g */
         1531  +  { 0x0434,  0x64, 0x00, 0x00, 0x00 },  /* д to d */
         1532  +  { 0x0435,  0x65, 0x00, 0x00, 0x00 },  /* е to e */
         1533  +  { 0x0436,  0x7a, 0x68, 0x00, 0x00 },  /* ж to zh */
         1534  +  { 0x0437,  0x7a, 0x00, 0x00, 0x00 },  /* з to z */
         1535  +  { 0x0438,  0x69, 0x00, 0x00, 0x00 },  /* и to i */
         1536  +  { 0x0439,  0x69, 0x00, 0x00, 0x00 },  /* й to i */
         1537  +  { 0x043A,  0x6b, 0x00, 0x00, 0x00 },  /* к to k */
         1538  +  { 0x043B,  0x6c, 0x00, 0x00, 0x00 },  /* л to l */
         1539  +  { 0x043C,  0x6d, 0x00, 0x00, 0x00 },  /* м to m */
         1540  +  { 0x043D,  0x6e, 0x00, 0x00, 0x00 },  /* н to n */
         1541  +  { 0x043E,  0x6f, 0x00, 0x00, 0x00 },  /* о to o */
         1542  +  { 0x043F,  0x70, 0x00, 0x00, 0x00 },  /* п to p */
         1543  +  { 0x0440,  0x72, 0x00, 0x00, 0x00 },  /* р to r */
         1544  +  { 0x0441,  0x73, 0x00, 0x00, 0x00 },  /* с to s */
         1545  +  { 0x0442,  0x74, 0x00, 0x00, 0x00 },  /* т to t */
         1546  +  { 0x0443,  0x75, 0x00, 0x00, 0x00 },  /* у to u */
         1547  +  { 0x0444,  0x66, 0x00, 0x00, 0x00 },  /* ф to f */
         1548  +  { 0x0445,  0x6b, 0x68, 0x00, 0x00 },  /* х to kh */
         1549  +  { 0x0446,  0x74, 0x63, 0x00, 0x00 },  /* ц to tc */
         1550  +  { 0x0447,  0x63, 0x68, 0x00, 0x00 },  /* ч to ch */
         1551  +  { 0x0448,  0x73, 0x68, 0x00, 0x00 },  /* ш to sh */
         1552  +  { 0x0449,  0x73, 0x68, 0x63, 0x68 },  /* щ to shch */
         1553  +  { 0x044A,  0x61, 0x00, 0x00, 0x00 },  /*  to a */
         1554  +  { 0x044B,  0x79, 0x00, 0x00, 0x00 },  /* ы to y */
         1555  +  { 0x044C,  0x79, 0x00, 0x00, 0x00 },  /*  to y */
         1556  +  { 0x044D,  0x65, 0x00, 0x00, 0x00 },  /* э to e */
         1557  +  { 0x044E,  0x69, 0x75, 0x00, 0x00 },  /* ю to iu */
         1558  +  { 0x044F,  0x69, 0x61, 0x00, 0x00 },  /* я to ia */
         1559  +  { 0x0450,  0x65, 0x00, 0x00, 0x00 },  /* ѐ to e */
         1560  +  { 0x0451,  0x65, 0x00, 0x00, 0x00 },  /* ё to e */
         1561  +  { 0x0452,  0x64, 0x00, 0x00, 0x00 },  /* ђ to d */
         1562  +  { 0x0453,  0x67, 0x00, 0x00, 0x00 },  /* ѓ to g */
         1563  +  { 0x0454,  0x65, 0x00, 0x00, 0x00 },  /* є to e */
         1564  +  { 0x0455,  0x7a, 0x00, 0x00, 0x00 },  /* ѕ to z */
         1565  +  { 0x0456,  0x69, 0x00, 0x00, 0x00 },  /* і to i */
         1566  +  { 0x0457,  0x69, 0x00, 0x00, 0x00 },  /* ї to i */
         1567  +  { 0x0458,  0x6a, 0x00, 0x00, 0x00 },  /* ј to j */
         1568  +  { 0x0459,  0x69, 0x00, 0x00, 0x00 },  /* љ to i */
         1569  +  { 0x045A,  0x6e, 0x00, 0x00, 0x00 },  /* њ to n */
         1570  +  { 0x045B,  0x64, 0x00, 0x00, 0x00 },  /* ћ to d */
         1571  +  { 0x045C,  0x6b, 0x00, 0x00, 0x00 },  /* ќ to k */
         1572  +  { 0x045D,  0x69, 0x00, 0x00, 0x00 },  /* ѝ to i */
         1573  +  { 0x045E,  0x75, 0x00, 0x00, 0x00 },  /* ў to u */
         1574  +  { 0x045F,  0x64, 0x00, 0x00, 0x00 },  /* џ to d */
         1575  +  { 0x1E02,  0x42, 0x00, 0x00, 0x00 },  /* Ḃ to B */
         1576  +  { 0x1E03,  0x62, 0x00, 0x00, 0x00 },  /* ḃ to b */
         1577  +  { 0x1E0A,  0x44, 0x00, 0x00, 0x00 },  /* Ḋ to D */
         1578  +  { 0x1E0B,  0x64, 0x00, 0x00, 0x00 },  /* ḋ to d */
         1579  +  { 0x1E1E,  0x46, 0x00, 0x00, 0x00 },  /* Ḟ to F */
         1580  +  { 0x1E1F,  0x66, 0x00, 0x00, 0x00 },  /* ḟ to f */
         1581  +  { 0x1E40,  0x4D, 0x00, 0x00, 0x00 },  /* Ṁ to M */
         1582  +  { 0x1E41,  0x6D, 0x00, 0x00, 0x00 },  /* ṁ to m */
         1583  +  { 0x1E56,  0x50, 0x00, 0x00, 0x00 },  /* Ṗ to P */
         1584  +  { 0x1E57,  0x70, 0x00, 0x00, 0x00 },  /* ṗ to p */
         1585  +  { 0x1E60,  0x53, 0x00, 0x00, 0x00 },  /* Ṡ to S */
         1586  +  { 0x1E61,  0x73, 0x00, 0x00, 0x00 },  /* ṡ to s */
         1587  +  { 0x1E6A,  0x54, 0x00, 0x00, 0x00 },  /* Ṫ to T */
         1588  +  { 0x1E6B,  0x74, 0x00, 0x00, 0x00 },  /* ṫ to t */
         1589  +  { 0x1E80,  0x57, 0x00, 0x00, 0x00 },  /* Ẁ to W */
         1590  +  { 0x1E81,  0x77, 0x00, 0x00, 0x00 },  /* ẁ to w */
         1591  +  { 0x1E82,  0x57, 0x00, 0x00, 0x00 },  /* Ẃ to W */
         1592  +  { 0x1E83,  0x77, 0x00, 0x00, 0x00 },  /* ẃ to w */
         1593  +  { 0x1E84,  0x57, 0x00, 0x00, 0x00 },  /* Ẅ to W */
         1594  +  { 0x1E85,  0x77, 0x00, 0x00, 0x00 },  /* ẅ to w */
         1595  +  { 0x1EF2,  0x59, 0x00, 0x00, 0x00 },  /* Ỳ to Y */
         1596  +  { 0x1EF3,  0x79, 0x00, 0x00, 0x00 },  /* ỳ to y */
         1597  +  { 0xFB00,  0x66, 0x66, 0x00, 0x00 },  /* ff to ff */
         1598  +  { 0xFB01,  0x66, 0x69, 0x00, 0x00 },  /* fi to fi */
         1599  +  { 0xFB02,  0x66, 0x6C, 0x00, 0x00 },  /* fl to fl */
         1600  +  { 0xFB05,  0x73, 0x74, 0x00, 0x00 },  /* ſt to st */
         1601  +  { 0xFB06,  0x73, 0x74, 0x00, 0x00 },  /* st to st */
  1599   1602   };
         1603  +
         1604  +static const Transliteration *spellfixFindTranslit(int c, int *pxTop){
         1605  +  *pxTop = (sizeof(translit)/sizeof(translit[0])) - 1;
         1606  +  return translit;
         1607  +}
  1600   1608   
  1601   1609   /*
  1602   1610   ** Convert the input string from UTF-8 into pure ASCII by converting
  1603   1611   ** all non-ASCII characters to some combination of characters in the
  1604   1612   ** ASCII subset.
  1605   1613   **
  1606   1614   ** The returned string might contain more characters than the input.
................................................................................
  1617   1625       c = utf8Read(zIn, nIn, &sz);
  1618   1626       zIn += sz;
  1619   1627       nIn -= sz;
  1620   1628       if( c<=127 ){
  1621   1629         zOut[nOut++] = (unsigned char)c;
  1622   1630       }else{
  1623   1631         int xTop, xBtm, x;
  1624         -      xTop = sizeof(translit)/sizeof(translit[0]) - 1;
         1632  +      const Transliteration *tbl = spellfixFindTranslit(c, &xTop);
  1625   1633         xBtm = 0;
  1626   1634         while( xTop>=xBtm ){
  1627   1635           x = (xTop + xBtm)/2;
  1628         -        if( translit[x].cFrom==c ){
  1629         -          zOut[nOut++] = translit[x].cTo0;
  1630         -          if( translit[x].cTo1 ){
  1631         -            zOut[nOut++] = translit[x].cTo1;
  1632         -            /* Add an extra "ch" after the "sh" for Щ and щ */
  1633         -            if( c==0x0429 || c== 0x0449 ){
  1634         -              zOut[nOut++] = 'c';
  1635         -              zOut[nOut++] = 'h';
         1636  +        if( tbl[x].cFrom==c ){
         1637  +          zOut[nOut++] = tbl[x].cTo0;
         1638  +          if( tbl[x].cTo1 ){
         1639  +            zOut[nOut++] = tbl[x].cTo1;
         1640  +            if( tbl[x].cTo2 ){
         1641  +              zOut[nOut++] = tbl[x].cTo2;
         1642  +              if( tbl[x].cTo3 ){
         1643  +                zOut[nOut++] = tbl[x].cTo3;
         1644  +              }
  1636   1645               }
  1637   1646             }
  1638   1647             c = 0;
  1639   1648             break;
  1640         -        }else if( translit[x].cFrom>c ){
         1649  +        }else if( tbl[x].cFrom>c ){
  1641   1650             xTop = x-1;
  1642   1651           }else{
  1643   1652             xBtm = x+1;
  1644   1653           }
  1645   1654         }
  1646   1655         if( c ) zOut[nOut++] = '?';
  1647   1656       }
................................................................................
  1664   1673     for(nChar=0; i<nIn && nOut<nTrans; nChar++){
  1665   1674       c = utf8Read((const unsigned char *)&zIn[i], nIn-i, &sz);
  1666   1675       i += sz;
  1667   1676   
  1668   1677       nOut++;
  1669   1678       if( c>=128 ){
  1670   1679         int xTop, xBtm, x;
  1671         -      xTop = sizeof(translit)/sizeof(translit[0]) - 1;
         1680  +      const Transliteration *tbl = spellfixFindTranslit(c, &xTop);
  1672   1681         xBtm = 0;
  1673   1682         while( xTop>=xBtm ){
  1674   1683           x = (xTop + xBtm)/2;
  1675         -        if( translit[x].cFrom==c ){
  1676         -          if( translit[x].cTo1 ) nOut++;
  1677         -          if( c==0x0429 || c== 0x0449 ) nOut += 2;
         1684  +        if( tbl[x].cFrom==c ){
         1685  +          if( tbl[x].cTo1 ){
         1686  +            nOut++;
         1687  +            if( tbl[x].cTo2 ){
         1688  +              nOut++;
         1689  +              if( tbl[x].cTo3 ){
         1690  +                nOut++;
         1691  +              }
         1692  +            }
         1693  +          }
  1678   1694             break;
  1679         -        }else if( translit[x].cFrom>c ){
         1695  +        }else if( tbl[x].cFrom>c ){
  1680   1696             xTop = x-1;
  1681   1697           }else{
  1682   1698             xBtm = x+1;
  1683   1699           }
  1684   1700         }
  1685   1701       }
  1686   1702     }