--- ../screen-4.0.2/process.c	2003-09-18 08:53:54.000000000 -0400
+++ process.c	2004-01-20 11:45:10.000000000 -0500
@@ -215,179 +215,1334 @@
 #endif
 
 
-/* digraph table taken from old vim and rfc1345 */
-static const unsigned char digraphs[][3] = {
-    {' ', ' ', 160},	/*   */
-    {'N', 'S', 160},	/*   */
-    {'~', '!', 161},	/* ¡ */
-    {'!', '!', 161},	/* ¡ */
-    {'!', 'I', 161},	/* ¡ */
-    {'c', '|', 162},	/* ¢ */
-    {'c', 't', 162},	/* ¢ */
-    {'$', '$', 163},	/* £ */
-    {'P', 'd', 163},	/* £ */
-    {'o', 'x', 164},	/* ¤ */
-    {'C', 'u', 164},	/* ¤ */
-    {'C', 'u', 164},	/* ¤ */
-    {'E', 'u', 164},	/* ¤ */
-    {'Y', '-', 165},	/* ¥ */
-    {'Y', 'e', 165},	/* ¥ */
-    {'|', '|', 166},	/* ¦ */
-    {'B', 'B', 166},	/* ¦ */
-    {'p', 'a', 167},	/* § */
-    {'S', 'E', 167},	/* § */
-    {'"', '"', 168},	/* ¨ */
-    {'\'', ':', 168},	/* ¨ */
-    {'c', 'O', 169},	/* © */
-    {'C', 'o', 169},	/* © */
-    {'a', '-', 170},	/* ª */
-    {'<', '<', 171},	/* « */
-    {'-', ',', 172},	/* ¬ */
-    {'N', 'O', 172},	/* ¬ */
-    {'-', '-', 173},	/* ­ */
-    {'r', 'O', 174},	/* ® */
-    {'R', 'g', 174},	/* ® */
-    {'-', '=', 175},	/* ¯ */
-    {'\'', 'm', 175},	/* ¯ */
-    {'~', 'o', 176},	/* ° */
-    {'D', 'G', 176},	/* ° */
-    {'+', '-', 177},	/* ± */
-    {'2', '2', 178},	/* ² */
-    {'2', 'S', 178},	/* ² */
-    {'3', '3', 179},	/* ³ */
-    {'3', 'S', 179},	/* ³ */
-    {'\'', '\'', 180},	/* ´ */
-    {'j', 'u', 181},	/* µ */
-    {'M', 'y', 181},	/* µ */
-    {'p', 'p', 182},	/* ¶ */
-    {'P', 'I', 182},	/* ¶ */
-    {'~', '.', 183},	/* · */
-    {'.', 'M', 183},	/* · */
-    {',', ',', 184},	/* ¸ */
-    {'\'', ',', 184},	/* ¸ */
-    {'1', '1', 185},	/* ¹ */
-    {'1', 'S', 185},	/* ¹ */
-    {'o', '-', 186},	/* º */
-    {'>', '>', 187},	/* » */
-    {'1', '4', 188},	/* ¼ */
-    {'1', '2', 189},	/* ½ */
-    {'3', '4', 190},	/* ¾ */
-    {'~', '?', 191},	/* ¿ */
-    {'?', '?', 191},	/* ¿ */
-    {'?', 'I', 191},	/* ¿ */
-    {'A', '`', 192},	/* À */
-    {'A', '!', 192},	/* À */
-    {'A', '\'', 193},	/* Á */
-    {'A', '^', 194},	/* Â */
-    {'A', '>', 194},	/* Â */
-    {'A', '~', 195},	/* Ã */
-    {'A', '?', 195},	/* Ã */
-    {'A', '"', 196},	/* Ä */
-    {'A', ':', 196},	/* Ä */
-    {'A', '@', 197},	/* Å */
-    {'A', 'A', 197},	/* Å */
-    {'A', 'E', 198},	/* Æ */
-    {'C', ',', 199},	/* Ç */
-    {'E', '`', 200},	/* È */
-    {'E', '!', 200},	/* È */
-    {'E', '\'', 201},	/* É */
-    {'E', '^', 202},	/* Ê */
-    {'E', '>', 202},	/* Ê */
-    {'E', '"', 203},	/* Ë */
-    {'E', ':', 203},	/* Ë */
-    {'I', '`', 204},	/* Ì */
-    {'I', '!', 204},	/* Ì */
-    {'I', '\'', 205},	/* Í */
-    {'I', '^', 206},	/* Î */
-    {'I', '>', 206},	/* Î */
-    {'I', '"', 207},	/* Ï */
-    {'I', ':', 207},	/* Ï */
-    {'D', '-', 208},	/* Ð */
-    {'N', '~', 209},	/* Ñ */
-    {'N', '?', 209},	/* Ñ */
-    {'O', '`', 210},	/* Ò */
-    {'O', '!', 210},	/* Ò */
-    {'O', '\'', 211},	/* Ó */
-    {'O', '^', 212},	/* Ô */
-    {'O', '>', 212},	/* Ô */
-    {'O', '~', 213},	/* Õ */
-    {'O', '?', 213},	/* Õ */
-    {'O', '"', 214},	/* Ö */
-    {'O', ':', 214},	/* Ö */
-    {'/', '\\', 215},	/* × */
-    {'*', 'x', 215},	/* × */
-    {'O', '/', 216},	/* Ø */
-    {'U', '`', 217},	/* Ù */
-    {'U', '!', 217},	/* Ù */
-    {'U', '\'', 218},	/* Ú */
-    {'U', '^', 219},	/* Û */
-    {'U', '>', 219},	/* Û */
-    {'U', '"', 220},	/* Ü */
-    {'U', ':', 220},	/* Ü */
-    {'Y', '\'', 221},	/* Ý */
-    {'I', 'p', 222},	/* Þ */
-    {'T', 'H', 222},	/* Þ */
-    {'s', 's', 223},	/* ß */
-    {'s', '"', 223},	/* ß */
-    {'a', '`', 224},	/* à */
-    {'a', '!', 224},	/* à */
-    {'a', '\'', 225},	/* á */
-    {'a', '^', 226},	/* â */
-    {'a', '>', 226},	/* â */
-    {'a', '~', 227},	/* ã */
-    {'a', '?', 227},	/* ã */
-    {'a', '"', 228},	/* ä */
-    {'a', ':', 228},	/* ä */
-    {'a', 'a', 229},	/* å */
-    {'a', 'e', 230},	/* æ */
-    {'c', ',', 231},	/* ç */
-    {'e', '`', 232},	/* è */
-    {'e', '!', 232},	/* è */
-    {'e', '\'', 233},	/* é */
-    {'e', '^', 234},	/* ê */
-    {'e', '>', 234},	/* ê */
-    {'e', '"', 235},	/* ë */
-    {'e', ':', 235},	/* ë */
-    {'i', '`', 236},	/* ì */
-    {'i', '!', 236},	/* ì */
-    {'i', '\'', 237},	/* í */
-    {'i', '^', 238},	/* î */
-    {'i', '>', 238},	/* î */
-    {'i', '"', 239},	/* ï */
-    {'i', ':', 239},	/* ï */
-    {'d', '-', 240},	/* ð */
-    {'n', '~', 241},	/* ñ */
-    {'n', '?', 241},	/* ñ */
-    {'o', '`', 242},	/* ò */
-    {'o', '!', 242},	/* ò */
-    {'o', '\'', 243},	/* ó */
-    {'o', '^', 244},	/* ô */
-    {'o', '>', 244},	/* ô */
-    {'o', '~', 245},	/* õ */
-    {'o', '?', 245},	/* õ */
-    {'o', '"', 246},	/* ö */
-    {'o', ':', 246},	/* ö */
-    {':', '-', 247},	/* ÷ */
-    {'o', '/', 248},	/* ø */
-    {'u', '`', 249},	/* ù */
-    {'u', '!', 249},	/* ù */
-    {'u', '\'', 250},	/* ú */
-    {'u', '^', 251},	/* û */
-    {'u', '>', 251},	/* û */
-    {'u', '"', 252},	/* ü */
-    {'u', ':', 252},	/* ü */
-    {'y', '\'', 253},	/* ý */
-    {'i', 'p', 254},	/* þ */
-    {'t', 'h', 254},	/* þ */
-    {'y', '"', 255},	/* ÿ */
-    {'y', ':', 255},	/* ÿ */
-    {'"', '[', 196},	/* Ä */
-    {'"', '\\', 214},	/* Ö */
-    {'"', ']', 220},	/* Ü */
-    {'"', '{', 228},	/* ä */
-    {'"', '|', 246},	/* ö */
-    {'"', '}', 252},	/* ü */
-    {'"', '~', 223}	/* ß */
+/* digraph table taken from rfc1345 */
+static const unsigned int digraphs[][3] = {
+    {'N', 'S', 0x00a0},   /* NO-BREAK SPACE */
+    {'!', 'I', 0x00a1},   /* INVERTED EXCLAMATION MARK */
+    {'C', 't', 0x00a2},   /* CENT SIGN */
+    {'P', 'd', 0x00a3},   /* POUND SIGN */
+    {'C', 'u', 0x00a4},   /* CURRENCY SIGN */
+    {'Y', 'e', 0x00a5},   /* YEN SIGN */
+    {'B', 'B', 0x00a6},   /* BROKEN BAR */
+    {'S', 'E', 0x00a7},   /* SECTION SIGN */
+    {'\'', ':', 0x00a8},   /* DIAERESIS */
+    {'C', 'o', 0x00a9},   /* COPYRIGHT SIGN */
+    {'-', 'a', 0x00aa},   /* FEMININE ORDINAL INDICATOR */
+    {'<', '<', 0x00ab},   /* LEFT-POINTING DOUBLE ANGLE QUOTATION MARK */
+    {'N', 'O', 0x00ac},   /* NOT SIGN */
+    {'-', '-', 0x00ad},   /* SOFT HYPHEN */
+    {'R', 'g', 0x00ae},   /* REGISTERED SIGN */
+    {'\'', 'm', 0x00af},   /* MACRON */
+    {'D', 'G', 0x00b0},   /* DEGREE SIGN */
+    {'+', '-', 0x00b1},   /* PLUS-MINUS SIGN */
+    {'2', 'S', 0x00b2},   /* SUPERSCRIPT TWO */
+    {'3', 'S', 0x00b3},   /* SUPERSCRIPT THREE */
+    {'\'', '\'', 0x00b4},   /* ACUTE ACCENT */
+    {'M', 'y', 0x00b5},   /* MICRO SIGN */
+    {'P', 'I', 0x00b6},   /* PILCROW SIGN */
+    {'.', 'M', 0x00b7},   /* MIDDLE DOT */
+    {'\'', ',', 0x00b8},   /* CEDILLA */
+    {'1', 'S', 0x00b9},   /* SUPERSCRIPT ONE */
+    {'-', 'o', 0x00ba},   /* MASCULINE ORDINAL INDICATOR */
+    {'>', '>', 0x00bb},   /* RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK */
+    {'1', '4', 0x00bc},   /* VULGAR FRACTION ONE QUARTER */
+    {'1', '2', 0x00bd},   /* VULGAR FRACTION ONE HALF */
+    {'3', '4', 0x00be},   /* VULGAR FRACTION THREE QUARTERS */
+    {'?', 'I', 0x00bf},   /* INVERTED QUESTION MARK */
+    {'A', '!', 0x00c0},   /* LATIN CAPITAL LETTER A WITH GRAVE */
+    {'A', '\'', 0x00c1},   /* LATIN CAPITAL LETTER A WITH ACUTE */
+    {'A', '>', 0x00c2},   /* LATIN CAPITAL LETTER A WITH CIRCUMFLEX */
+    {'A', '?', 0x00c3},   /* LATIN CAPITAL LETTER A WITH TILDE */
+    {'A', ':', 0x00c4},   /* LATIN CAPITAL LETTER A WITH DIAERESIS */
+    {'A', 'A', 0x00c5},   /* LATIN CAPITAL LETTER A WITH RING ABOVE */
+    {'A', 'E', 0x00c6},   /* LATIN CAPITAL LETTER AE */
+    {'C', ',', 0x00c7},   /* LATIN CAPITAL LETTER C WITH CEDILLA */
+    {'E', '!', 0x00c8},   /* LATIN CAPITAL LETTER E WITH GRAVE */
+    {'E', '\'', 0x00c9},   /* LATIN CAPITAL LETTER E WITH ACUTE */
+    {'E', '>', 0x00ca},   /* LATIN CAPITAL LETTER E WITH CIRCUMFLEX */
+    {'E', ':', 0x00cb},   /* LATIN CAPITAL LETTER E WITH DIAERESIS */
+    {'I', '!', 0x00cc},   /* LATIN CAPITAL LETTER I WITH GRAVE */
+    {'I', '\'', 0x00cd},   /* LATIN CAPITAL LETTER I WITH ACUTE */
+    {'I', '>', 0x00ce},   /* LATIN CAPITAL LETTER I WITH CIRCUMFLEX */
+    {'I', ':', 0x00cf},   /* LATIN CAPITAL LETTER I WITH DIAERESIS */
+    {'D', '-', 0x00d0},   /* LATIN CAPITAL LETTER ETH (Icelandic) */
+    {'N', '?', 0x00d1},   /* LATIN CAPITAL LETTER N WITH TILDE */
+    {'O', '!', 0x00d2},   /* LATIN CAPITAL LETTER O WITH GRAVE */
+    {'O', '\'', 0x00d3},   /* LATIN CAPITAL LETTER O WITH ACUTE */
+    {'O', '>', 0x00d4},   /* LATIN CAPITAL LETTER O WITH CIRCUMFLEX */
+    {'O', '?', 0x00d5},   /* LATIN CAPITAL LETTER O WITH TILDE */
+    {'O', ':', 0x00d6},   /* LATIN CAPITAL LETTER O WITH DIAERESIS */
+    {'*', 'X', 0x00d7},   /* MULTIPLICATION SIGN */
+    {'O', '/', 0x00d8},   /* LATIN CAPITAL LETTER O WITH STROKE */
+    {'U', '!', 0x00d9},   /* LATIN CAPITAL LETTER U WITH GRAVE */
+    {'U', '\'', 0x00da},   /* LATIN CAPITAL LETTER U WITH ACUTE */
+    {'U', '>', 0x00db},   /* LATIN CAPITAL LETTER U WITH CIRCUMFLEX */
+    {'U', ':', 0x00dc},   /* LATIN CAPITAL LETTER U WITH DIAERESIS */
+    {'Y', '\'', 0x00dd},   /* LATIN CAPITAL LETTER Y WITH ACUTE */
+    {'T', 'H', 0x00de},   /* LATIN CAPITAL LETTER THORN (Icelandic) */
+    {'s', 's', 0x00df},   /* LATIN SMALL LETTER SHARP S (German) */
+    {'a', '!', 0x00e0},   /* LATIN SMALL LETTER A WITH GRAVE */
+    {'a', '\'', 0x00e1},   /* LATIN SMALL LETTER A WITH ACUTE */
+    {'a', '>', 0x00e2},   /* LATIN SMALL LETTER A WITH CIRCUMFLEX */
+    {'a', '?', 0x00e3},   /* LATIN SMALL LETTER A WITH TILDE */
+    {'a', ':', 0x00e4},   /* LATIN SMALL LETTER A WITH DIAERESIS */
+    {'a', 'a', 0x00e5},   /* LATIN SMALL LETTER A WITH RING ABOVE */
+    {'a', 'e', 0x00e6},   /* LATIN SMALL LETTER AE */
+    {'c', ',', 0x00e7},   /* LATIN SMALL LETTER C WITH CEDILLA */
+    {'e', '!', 0x00e8},   /* LATIN SMALL LETTER E WITH GRAVE */
+    {'e', '\'', 0x00e9},   /* LATIN SMALL LETTER E WITH ACUTE */
+    {'e', '>', 0x00ea},   /* LATIN SMALL LETTER E WITH CIRCUMFLEX */
+    {'e', ':', 0x00eb},   /* LATIN SMALL LETTER E WITH DIAERESIS */
+    {'i', '!', 0x00ec},   /* LATIN SMALL LETTER I WITH GRAVE */
+    {'i', '\'', 0x00ed},   /* LATIN SMALL LETTER I WITH ACUTE */
+    {'i', '>', 0x00ee},   /* LATIN SMALL LETTER I WITH CIRCUMFLEX */
+    {'i', ':', 0x00ef},   /* LATIN SMALL LETTER I WITH DIAERESIS */
+    {'d', '-', 0x00f0},   /* LATIN SMALL LETTER ETH (Icelandic) */
+    {'n', '?', 0x00f1},   /* LATIN SMALL LETTER N WITH TILDE */
+    {'o', '!', 0x00f2},   /* LATIN SMALL LETTER O WITH GRAVE */
+    {'o', '\'', 0x00f3},   /* LATIN SMALL LETTER O WITH ACUTE */
+    {'o', '>', 0x00f4},   /* LATIN SMALL LETTER O WITH CIRCUMFLEX */
+    {'o', '?', 0x00f5},   /* LATIN SMALL LETTER O WITH TILDE */
+    {'o', ':', 0x00f6},   /* LATIN SMALL LETTER O WITH DIAERESIS */
+    {'-', ':', 0x00f7},   /* DIVISION SIGN */
+    {'o', '/', 0x00f8},   /* LATIN SMALL LETTER O WITH STROKE */
+    {'u', '!', 0x00f9},   /* LATIN SMALL LETTER U WITH GRAVE */
+    {'u', '\'', 0x00fa},   /* LATIN SMALL LETTER U WITH ACUTE */
+    {'u', '>', 0x00fb},   /* LATIN SMALL LETTER U WITH CIRCUMFLEX */
+    {'u', ':', 0x00fc},   /* LATIN SMALL LETTER U WITH DIAERESIS */
+    {'y', '\'', 0x00fd},   /* LATIN SMALL LETTER Y WITH ACUTE */
+    {'t', 'h', 0x00fe},   /* LATIN SMALL LETTER THORN (Icelandic) */
+    {'y', ':', 0x00ff},   /* LATIN SMALL LETTER Y WITH DIAERESIS */
+    {'A', '-', 0x0100},   /* LATIN CAPITAL LETTER A WITH MACRON */
+    {'a', '-', 0x0101},   /* LATIN SMALL LETTER A WITH MACRON */
+    {'A', '(', 0x0102},   /* LATIN CAPITAL LETTER A WITH BREVE */
+    {'a', '(', 0x0103},   /* LATIN SMALL LETTER A WITH BREVE */
+    {'A', ';', 0x0104},   /* LATIN CAPITAL LETTER A WITH OGONEK */
+    {'a', ';', 0x0105},   /* LATIN SMALL LETTER A WITH OGONEK */
+    {'C', '\'', 0x0106},   /* LATIN CAPITAL LETTER C WITH ACUTE */
+    {'c', '\'', 0x0107},   /* LATIN SMALL LETTER C WITH ACUTE */
+    {'C', '>', 0x0108},   /* LATIN CAPITAL LETTER C WITH CIRCUMFLEX */
+    {'c', '>', 0x0109},   /* LATIN SMALL LETTER C WITH CIRCUMFLEX */
+    {'C', '.', 0x010a},   /* LATIN CAPITAL LETTER C WITH DOT ABOVE */
+    {'c', '.', 0x010b},   /* LATIN SMALL LETTER C WITH DOT ABOVE */
+    {'C', '<', 0x010c},   /* LATIN CAPITAL LETTER C WITH CARON */
+    {'c', '<', 0x010d},   /* LATIN SMALL LETTER C WITH CARON */
+    {'D', '<', 0x010e},   /* LATIN CAPITAL LETTER D WITH CARON */
+    {'d', '<', 0x010f},   /* LATIN SMALL LETTER D WITH CARON */
+    {'D', '/', 0x0110},   /* LATIN CAPITAL LETTER D WITH STROKE */
+    {'d', '/', 0x0111},   /* LATIN SMALL LETTER D WITH STROKE */
+    {'E', '-', 0x0112},   /* LATIN CAPITAL LETTER E WITH MACRON */
+    {'e', '-', 0x0113},   /* LATIN SMALL LETTER E WITH MACRON */
+    {'E', '(', 0x0114},   /* LATIN CAPITAL LETTER E WITH BREVE */
+    {'e', '(', 0x0115},   /* LATIN SMALL LETTER E WITH BREVE */
+    {'E', '.', 0x0116},   /* LATIN CAPITAL LETTER E WITH DOT ABOVE */
+    {'e', '.', 0x0117},   /* LATIN SMALL LETTER E WITH DOT ABOVE */
+    {'E', ';', 0x0118},   /* LATIN CAPITAL LETTER E WITH OGONEK */
+    {'e', ';', 0x0119},   /* LATIN SMALL LETTER E WITH OGONEK */
+    {'E', '<', 0x011a},   /* LATIN CAPITAL LETTER E WITH CARON */
+    {'e', '<', 0x011b},   /* LATIN SMALL LETTER E WITH CARON */
+    {'G', '>', 0x011c},   /* LATIN CAPITAL LETTER G WITH CIRCUMFLEX */
+    {'g', '>', 0x011d},   /* LATIN SMALL LETTER G WITH CIRCUMFLEX */
+    {'G', '(', 0x011e},   /* LATIN CAPITAL LETTER G WITH BREVE */
+    {'g', '(', 0x011f},   /* LATIN SMALL LETTER G WITH BREVE */
+    {'G', '.', 0x0120},   /* LATIN CAPITAL LETTER G WITH DOT ABOVE */
+    {'g', '.', 0x0121},   /* LATIN SMALL LETTER G WITH DOT ABOVE */
+    {'G', ',', 0x0122},   /* LATIN CAPITAL LETTER G WITH CEDILLA */
+    {'g', ',', 0x0123},   /* LATIN SMALL LETTER G WITH CEDILLA */
+    {'H', '>', 0x0124},   /* LATIN CAPITAL LETTER H WITH CIRCUMFLEX */
+    {'h', '>', 0x0125},   /* LATIN SMALL LETTER H WITH CIRCUMFLEX */
+    {'H', '/', 0x0126},   /* LATIN CAPITAL LETTER H WITH STROKE */
+    {'h', '/', 0x0127},   /* LATIN SMALL LETTER H WITH STROKE */
+    {'I', '?', 0x0128},   /* LATIN CAPITAL LETTER I WITH TILDE */
+    {'i', '?', 0x0129},   /* LATIN SMALL LETTER I WITH TILDE */
+    {'I', '-', 0x012a},   /* LATIN CAPITAL LETTER I WITH MACRON */
+    {'i', '-', 0x012b},   /* LATIN SMALL LETTER I WITH MACRON */
+    {'I', '(', 0x012c},   /* LATIN CAPITAL LETTER I WITH BREVE */
+    {'i', '(', 0x012d},   /* LATIN SMALL LETTER I WITH BREVE */
+    {'I', ';', 0x012e},   /* LATIN CAPITAL LETTER I WITH OGONEK */
+    {'i', ';', 0x012f},   /* LATIN SMALL LETTER I WITH OGONEK */
+    {'I', '.', 0x0130},   /* LATIN CAPITAL LETTER I WITH DOT ABOVE */
+    {'i', '.', 0x0131},   /* LATIN SMALL LETTER I DOTLESS */
+    {'I', 'J', 0x0132},   /* LATIN CAPITAL LIGATURE IJ */
+    {'i', 'j', 0x0133},   /* LATIN SMALL LIGATURE IJ */
+    {'J', '>', 0x0134},   /* LATIN CAPITAL LETTER J WITH CIRCUMFLEX */
+    {'j', '>', 0x0135},   /* LATIN SMALL LETTER J WITH CIRCUMFLEX */
+    {'K', ',', 0x0136},   /* LATIN CAPITAL LETTER K WITH CEDILLA */
+    {'k', ',', 0x0137},   /* LATIN SMALL LETTER K WITH CEDILLA */
+    {'k', 'k', 0x0138},   /* LATIN SMALL LETTER KRA (Greenlandic) */
+    {'L', '\'', 0x0139},   /* LATIN CAPITAL LETTER L WITH ACUTE */
+    {'l', '\'', 0x013a},   /* LATIN SMALL LETTER L WITH ACUTE */
+    {'L', ',', 0x013b},   /* LATIN CAPITAL LETTER L WITH CEDILLA */
+    {'l', ',', 0x013c},   /* LATIN SMALL LETTER L WITH CEDILLA */
+    {'L', '<', 0x013d},   /* LATIN CAPITAL LETTER L WITH CARON */
+    {'l', '<', 0x013e},   /* LATIN SMALL LETTER L WITH CARON */
+    {'L', '.', 0x013f},   /* LATIN CAPITAL LETTER L WITH MIDDLE DOT */
+    {'l', '.', 0x0140},   /* LATIN SMALL LETTER L WITH MIDDLE DOT */
+    {'L', '/', 0x0141},   /* LATIN CAPITAL LETTER L WITH STROKE */
+    {'l', '/', 0x0142},   /* LATIN SMALL LETTER L WITH STROKE */
+    {'N', '\'', 0x0143},   /* LATIN CAPITAL LETTER N WITH ACUTE */
+    {'n', '\'', 0x0144},   /* LATIN SMALL LETTER N WITH ACUTE */
+    {'N', ',', 0x0145},   /* LATIN CAPITAL LETTER N WITH CEDILLA */
+    {'n', ',', 0x0146},   /* LATIN SMALL LETTER N WITH CEDILLA */
+    {'N', '<', 0x0147},   /* LATIN CAPITAL LETTER N WITH CARON */
+    {'n', '<', 0x0148},   /* LATIN SMALL LETTER N WITH CARON */
+    {'\'', 'n', 0x0149},   /* LATIN SMALL LETTER N PRECEDED BY APOSTROPHE */
+    {'N', 'G', 0x014a},   /* LATIN CAPITAL LETTER ENG (Lappish) */
+    {'n', 'g', 0x014b},   /* LATIN SMALL LETTER ENG (Lappish) */
+    {'O', '-', 0x014c},   /* LATIN CAPITAL LETTER O WITH MACRON */
+    {'o', '-', 0x014d},   /* LATIN SMALL LETTER O WITH MACRON */
+    {'O', '(', 0x014e},   /* LATIN CAPITAL LETTER O WITH BREVE */
+    {'o', '(', 0x014f},   /* LATIN SMALL LETTER O WITH BREVE */
+    {'O', '"', 0x0150},   /* LATIN CAPITAL LETTER O WITH DOUBLE ACUTE */
+    {'o', '"', 0x0151},   /* LATIN SMALL LETTER O WITH DOUBLE ACUTE */
+    {'O', 'E', 0x0152},   /* LATIN CAPITAL LIGATURE OE */
+    {'o', 'e', 0x0153},   /* LATIN SMALL LIGATURE OE */
+    {'R', '\'', 0x0154},   /* LATIN CAPITAL LETTER R WITH ACUTE */
+    {'r', '\'', 0x0155},   /* LATIN SMALL LETTER R WITH ACUTE */
+    {'R', ',', 0x0156},   /* LATIN CAPITAL LETTER R WITH CEDILLA */
+    {'r', ',', 0x0157},   /* LATIN SMALL LETTER R WITH CEDILLA */
+    {'R', '<', 0x0158},   /* LATIN CAPITAL LETTER R WITH CARON */
+    {'r', '<', 0x0159},   /* LATIN SMALL LETTER R WITH CARON */
+    {'S', '\'', 0x015a},   /* LATIN CAPITAL LETTER S WITH ACUTE */
+    {'s', '\'', 0x015b},   /* LATIN SMALL LETTER S WITH ACUTE */
+    {'S', '>', 0x015c},   /* LATIN CAPITAL LETTER S WITH CIRCUMFLEX */
+    {'s', '>', 0x015d},   /* LATIN SMALL LETTER S WITH CIRCUMFLEX */
+    {'S', ',', 0x015e},   /* LATIN CAPITAL LETTER S WITH CEDILLA */
+    {'s', ',', 0x015f},   /* LATIN SMALL LETTER S WITH CEDILLA */
+    {'S', '<', 0x0160},   /* LATIN CAPITAL LETTER S WITH CARON */
+    {'s', '<', 0x0161},   /* LATIN SMALL LETTER S WITH CARON */
+    {'T', ',', 0x0162},   /* LATIN CAPITAL LETTER T WITH CEDILLA */
+    {'t', ',', 0x0163},   /* LATIN SMALL LETTER T WITH CEDILLA */
+    {'T', '<', 0x0164},   /* LATIN CAPITAL LETTER T WITH CARON */
+    {'t', '<', 0x0165},   /* LATIN SMALL LETTER T WITH CARON */
+    {'T', '/', 0x0166},   /* LATIN CAPITAL LETTER T WITH STROKE */
+    {'t', '/', 0x0167},   /* LATIN SMALL LETTER T WITH STROKE */
+    {'U', '?', 0x0168},   /* LATIN CAPITAL LETTER U WITH TILDE */
+    {'u', '?', 0x0169},   /* LATIN SMALL LETTER U WITH TILDE */
+    {'U', '-', 0x016a},   /* LATIN CAPITAL LETTER U WITH MACRON */
+    {'u', '-', 0x016b},   /* LATIN SMALL LETTER U WITH MACRON */
+    {'U', '(', 0x016c},   /* LATIN CAPITAL LETTER U WITH BREVE */
+    {'u', '(', 0x016d},   /* LATIN SMALL LETTER U WITH BREVE */
+    {'U', '0', 0x016e},   /* LATIN CAPITAL LETTER U WITH RING ABOVE */
+    {'u', '0', 0x016f},   /* LATIN SMALL LETTER U WITH RING ABOVE */
+    {'U', '"', 0x0170},   /* LATIN CAPITAL LETTER U WITH DOUBLE ACUTE */
+    {'u', '"', 0x0171},   /* LATIN SMALL LETTER U WITH DOUBLE ACUTE */
+    {'U', ';', 0x0172},   /* LATIN CAPITAL LETTER U WITH OGONEK */
+    {'u', ';', 0x0173},   /* LATIN SMALL LETTER U WITH OGONEK */
+    {'W', '>', 0x0174},   /* LATIN CAPITAL LETTER W WITH CIRCUMFLEX */
+    {'w', '>', 0x0175},   /* LATIN SMALL LETTER W WITH CIRCUMFLEX */
+    {'Y', '>', 0x0176},   /* LATIN CAPITAL LETTER Y WITH CIRCUMFLEX */
+    {'y', '>', 0x0177},   /* LATIN SMALL LETTER Y WITH CIRCUMFLEX */
+    {'Y', ':', 0x0178},   /* LATIN CAPITAL LETTER Y WITH DIAERESIS */
+    {'Z', '\'', 0x0179},   /* LATIN CAPITAL LETTER Z WITH ACUTE */
+    {'z', '\'', 0x017a},   /* LATIN SMALL LETTER Z WITH ACUTE */
+    {'Z', '.', 0x017b},   /* LATIN CAPITAL LETTER Z WITH DOT ABOVE */
+    {'z', '.', 0x017c},   /* LATIN SMALL LETTER Z WITH DOT ABOVE */
+    {'Z', '<', 0x017d},   /* LATIN CAPITAL LETTER Z WITH CARON */
+    {'z', '<', 0x017e},   /* LATIN SMALL LETTER Z WITH CARON */
+    {'O', '9', 0x01a0},   /* LATIN CAPITAL LETTER O WITH HORN */
+    {'o', '9', 0x01a1},   /* LATIN SMALL LETTER O WITH HORN */
+    {'O', 'I', 0x01a2},   /* LATIN CAPITAL LETTER OI */
+    {'o', 'i', 0x01a3},   /* LATIN SMALL LETTER OI */
+    {'y', 'r', 0x01a6},   /* LATIN LETTER YR */
+    {'U', '9', 0x01af},   /* LATIN CAPITAL LETTER U WITH HORN */
+    {'u', '9', 0x01b0},   /* LATIN SMALL LETTER U WITH HORN */
+    {'Z', '/', 0x01b5},   /* LATIN CAPITAL LETTER Z WITH STROKE */
+    {'z', '/', 0x01b6},   /* LATIN SMALL LETTER Z WITH STROKE */
+    {'E', 'D', 0x01b7},   /* LATIN CAPITAL LETTER EZH */
+    {'A', '<', 0x01cd},   /* LATIN CAPITAL LETTER A WITH CARON */
+    {'a', '<', 0x01ce},   /* LATIN SMALL LETTER A WITH CARON */
+    {'I', '<', 0x01cf},   /* LATIN CAPITAL LETTER I WITH CARON */
+    {'i', '<', 0x01d0},   /* LATIN SMALL LETTER I WITH CARON */
+    {'O', '<', 0x01d1},   /* LATIN CAPITAL LETTER O WITH CARON */
+    {'o', '<', 0x01d2},   /* LATIN SMALL LETTER O WITH CARON */
+    {'U', '<', 0x01d3},   /* LATIN CAPITAL LETTER U WITH CARON */
+    {'u', '<', 0x01d4},   /* LATIN SMALL LETTER U WITH CARON */
+    {'A', '1', 0x01de},   /* LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON */
+    {'a', '1', 0x01df},   /* LATIN SMALL LETTER A WITH DIAERESIS AND MACRON */
+    {'A', '7', 0x01e0},   /* LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON */
+    {'a', '7', 0x01e1},   /* LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON */
+    {'A', '3', 0x01e2},   /* LATIN CAPITAL LETTER AE WITH MACRON */
+    {'a', '3', 0x01e3},   /* LATIN SMALL LETTER AE WITH MACRON */
+    {'G', '/', 0x01e4},   /* LATIN CAPITAL LETTER G WITH STROKE */
+    {'g', '/', 0x01e5},   /* LATIN SMALL LETTER G WITH STROKE */
+    {'G', '<', 0x01e6},   /* LATIN CAPITAL LETTER G WITH CARON */
+    {'g', '<', 0x01e7},   /* LATIN SMALL LETTER G WITH CARON */
+    {'K', '<', 0x01e8},   /* LATIN CAPITAL LETTER K WITH CARON */
+    {'k', '<', 0x01e9},   /* LATIN SMALL LETTER K WITH CARON */
+    {'O', ';', 0x01ea},   /* LATIN CAPITAL LETTER O WITH OGONEK */
+    {'o', ';', 0x01eb},   /* LATIN SMALL LETTER O WITH OGONEK */
+    {'O', '1', 0x01ec},   /* LATIN CAPITAL LETTER O WITH OGONEK AND MACRON */
+    {'o', '1', 0x01ed},   /* LATIN SMALL LETTER O WITH OGONEK AND MACRON */
+    {'E', 'Z', 0x01ee},   /* LATIN CAPITAL LETTER EZH WITH CARON */
+    {'e', 'z', 0x01ef},   /* LATIN SMALL LETTER EZH WITH CARON */
+    {'j', '<', 0x01f0},   /* LATIN SMALL LETTER J WITH CARON */
+    {'G', '\'', 0x01f4},   /* LATIN CAPITAL LETTER G WITH ACUTE */
+    {'g', '\'', 0x01f5},   /* LATIN SMALL LETTER G WITH ACUTE */
+    {';', 'S', 0x02bf},   /* MODIFIER LETTER LEFT HALF RING */
+    {'\'', '<', 0x02c7},   /* CARON */
+    {'\'', '(', 0x02d8},   /* BREVE */
+    {'\'', '.', 0x02d9},   /* DOT ABOVE */
+    {'\'', '0', 0x02da},   /* RING ABOVE */
+    {'\'', ';', 0x02db},   /* OGONEK */
+    {'\'', '"', 0x02dd},   /* DOUBLE ACUTE ACCENT */
+    {'A', '%', 0x0386},   /* GREEK CAPITAL LETTER ALPHA WITH ACUTE */
+    {'E', '%', 0x0388},   /* GREEK CAPITAL LETTER EPSILON WITH ACUTE */
+    {'Y', '%', 0x0389},   /* GREEK CAPITAL LETTER ETA WITH ACUTE */
+    {'I', '%', 0x038a},   /* GREEK CAPITAL LETTER IOTA WITH ACUTE */
+    {'O', '%', 0x038c},   /* GREEK CAPITAL LETTER OMICRON WITH ACUTE */
+    {'U', '%', 0x038e},   /* GREEK CAPITAL LETTER UPSILON WITH ACUTE */
+    {'W', '%', 0x038f},   /* GREEK CAPITAL LETTER OMEGA WITH ACUTE */
+    {'i', '3', 0x0390},   /* GREEK SMALL LETTER IOTA WITH ACUTE AND DIAERESIS */
+    {'A', '*', 0x0391},   /* GREEK CAPITAL LETTER ALPHA */
+    {'B', '*', 0x0392},   /* GREEK CAPITAL LETTER BETA */
+    {'G', '*', 0x0393},   /* GREEK CAPITAL LETTER GAMMA */
+    {'D', '*', 0x0394},   /* GREEK CAPITAL LETTER DELTA */
+    {'E', '*', 0x0395},   /* GREEK CAPITAL LETTER EPSILON */
+    {'Z', '*', 0x0396},   /* GREEK CAPITAL LETTER ZETA */
+    {'Y', '*', 0x0397},   /* GREEK CAPITAL LETTER ETA */
+    {'H', '*', 0x0398},   /* GREEK CAPITAL LETTER THETA */
+    {'I', '*', 0x0399},   /* GREEK CAPITAL LETTER IOTA */
+    {'K', '*', 0x039a},   /* GREEK CAPITAL LETTER KAPPA */
+    {'L', '*', 0x039b},   /* GREEK CAPITAL LETTER LAMDA */
+    {'M', '*', 0x039c},   /* GREEK CAPITAL LETTER MU */
+    {'N', '*', 0x039d},   /* GREEK CAPITAL LETTER NU */
+    {'C', '*', 0x039e},   /* GREEK CAPITAL LETTER XI */
+    {'O', '*', 0x039f},   /* GREEK CAPITAL LETTER OMICRON */
+    {'P', '*', 0x03a0},   /* GREEK CAPITAL LETTER PI */
+    {'R', '*', 0x03a1},   /* GREEK CAPITAL LETTER RHO */
+    {'S', '*', 0x03a3},   /* GREEK CAPITAL LETTER SIGMA */
+    {'T', '*', 0x03a4},   /* GREEK CAPITAL LETTER TAU */
+    {'U', '*', 0x03a5},   /* GREEK CAPITAL LETTER UPSILON */
+    {'F', '*', 0x03a6},   /* GREEK CAPITAL LETTER PHI */
+    {'X', '*', 0x03a7},   /* GREEK CAPITAL LETTER CHI */
+    {'Q', '*', 0x03a8},   /* GREEK CAPITAL LETTER PSI */
+    {'W', '*', 0x03a9},   /* GREEK CAPITAL LETTER OMEGA */
+    {'J', '*', 0x03aa},   /* GREEK CAPITAL LETTER IOTA WITH DIAERESIS */
+    {'V', '*', 0x03ab},   /* GREEK CAPITAL LETTER UPSILON WITH DIAERESIS */
+    {'a', '%', 0x03ac},   /* GREEK SMALL LETTER ALPHA WITH ACUTE */
+    {'e', '%', 0x03ad},   /* GREEK SMALL LETTER EPSILON WITH ACUTE */
+    {'y', '%', 0x03ae},   /* GREEK SMALL LETTER ETA WITH ACUTE */
+    {'i', '%', 0x03af},   /* GREEK SMALL LETTER IOTA WITH ACUTE */
+    {'u', '3', 0x03b0},   /* GREEK SMALL LETTER UPSILON WITH ACUTE AND DIAERESIS */
+    {'a', '*', 0x03b1},   /* GREEK SMALL LETTER ALPHA */
+    {'b', '*', 0x03b2},   /* GREEK SMALL LETTER BETA */
+    {'g', '*', 0x03b3},   /* GREEK SMALL LETTER GAMMA */
+    {'d', '*', 0x03b4},   /* GREEK SMALL LETTER DELTA */
+    {'e', '*', 0x03b5},   /* GREEK SMALL LETTER EPSILON */
+    {'z', '*', 0x03b6},   /* GREEK SMALL LETTER ZETA */
+    {'y', '*', 0x03b7},   /* GREEK SMALL LETTER ETA */
+    {'h', '*', 0x03b8},   /* GREEK SMALL LETTER THETA */
+    {'i', '*', 0x03b9},   /* GREEK SMALL LETTER IOTA */
+    {'k', '*', 0x03ba},   /* GREEK SMALL LETTER KAPPA */
+    {'l', '*', 0x03bb},   /* GREEK SMALL LETTER LAMDA */
+    {'m', '*', 0x03bc},   /* GREEK SMALL LETTER MU */
+    {'n', '*', 0x03bd},   /* GREEK SMALL LETTER NU */
+    {'c', '*', 0x03be},   /* GREEK SMALL LETTER XI */
+    {'o', '*', 0x03bf},   /* GREEK SMALL LETTER OMICRON */
+    {'p', '*', 0x03c0},   /* GREEK SMALL LETTER PI */
+    {'r', '*', 0x03c1},   /* GREEK SMALL LETTER RHO */
+    {'*', 's', 0x03c2},   /* GREEK SMALL LETTER FINAL SIGMA */
+    {'s', '*', 0x03c3},   /* GREEK SMALL LETTER SIGMA */
+    {'t', '*', 0x03c4},   /* GREEK SMALL LETTER TAU */
+    {'u', '*', 0x03c5},   /* GREEK SMALL LETTER UPSILON */
+    {'f', '*', 0x03c6},   /* GREEK SMALL LETTER PHI */
+    {'x', '*', 0x03c7},   /* GREEK SMALL LETTER CHI */
+    {'q', '*', 0x03c8},   /* GREEK SMALL LETTER PSI */
+    {'w', '*', 0x03c9},   /* GREEK SMALL LETTER OMEGA */
+    {'j', '*', 0x03ca},   /* GREEK SMALL LETTER IOTA WITH DIAERESIS */
+    {'v', '*', 0x03cb},   /* GREEK SMALL LETTER UPSILON WITH DIAERESIS */
+    {'o', '%', 0x03cc},   /* GREEK SMALL LETTER OMICRON WITH ACUTE */
+    {'u', '%', 0x03cd},   /* GREEK SMALL LETTER UPSILON WITH ACUTE */
+    {'w', '%', 0x03ce},   /* GREEK SMALL LETTER OMEGA WITH ACUTE */
+    {'\'', 'G', 0x03d8},   /* GREEK NUMERAL SIGN */
+    {',', 'G', 0x03d9},   /* GREEK LOWER NUMERAL SIGN */
+    {'T', '3', 0x03da},   /* GREEK CAPITAL LETTER STIGMA */
+    {'t', '3', 0x03db},   /* GREEK SMALL LETTER STIGMA */
+    {'M', '3', 0x03dc},   /* GREEK CAPITAL LETTER DIGAMMA */
+    {'m', '3', 0x03dd},   /* GREEK SMALL LETTER DIGAMMA */
+    {'K', '3', 0x03de},   /* GREEK CAPITAL LETTER KOPPA */
+    {'k', '3', 0x03df},   /* GREEK SMALL LETTER KOPPA */
+    {'P', '3', 0x03e0},   /* GREEK CAPITAL LETTER SAMPI */
+    {'p', '3', 0x03e1},   /* GREEK SMALL LETTER SAMPI */
+    {'\'', '%', 0x03f4},   /* ACUTE ACCENT AND DIAERESIS (Tonos and Dialytika) */
+    {'j', '3', 0x03f5},   /* GREEK IOTA BELOW */
+    {'I', 'O', 0x0401},   /* CYRILLIC CAPITAL LETTER IO */
+    {'D', '%', 0x0402},   /* CYRILLIC CAPITAL LETTER DJE (Serbocroatian) */
+    {'G', '%', 0x0403},   /* CYRILLIC CAPITAL LETTER GJE (Macedonian) */
+    {'I', 'E', 0x0404},   /* CYRILLIC CAPITAL LETTER UKRAINIAN IE */
+    {'D', 'S', 0x0405},   /* CYRILLIC CAPITAL LETTER DZE (Macedonian) */
+    {'I', 'I', 0x0406},   /* CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I */
+    {'Y', 'I', 0x0407},   /* CYRILLIC CAPITAL LETTER YI (Ukrainian) */
+    {'J', '%', 0x0408},   /* CYRILLIC CAPITAL LETTER JE */
+    {'L', 'J', 0x0409},   /* CYRILLIC CAPITAL LETTER LJE */
+    {'N', 'J', 0x040a},   /* CYRILLIC CAPITAL LETTER NJE */
+    {'T', 's', 0x040b},   /* CYRILLIC CAPITAL LETTER TSHE (Serbocroatian) */
+    {'K', 'J', 0x040c},   /* CYRILLIC CAPITAL LETTER KJE (Macedonian) */
+    {'V', '%', 0x040e},   /* CYRILLIC CAPITAL LETTER SHORT U (Byelorussian) */
+    {'D', 'Z', 0x040f},   /* CYRILLIC CAPITAL LETTER DZHE */
+    {'A', '=', 0x0410},   /* CYRILLIC CAPITAL LETTER A */
+    {'B', '=', 0x0411},   /* CYRILLIC CAPITAL LETTER BE */
+    {'V', '=', 0x0412},   /* CYRILLIC CAPITAL LETTER VE */
+    {'G', '=', 0x0413},   /* CYRILLIC CAPITAL LETTER GHE */
+    {'D', '=', 0x0414},   /* CYRILLIC CAPITAL LETTER DE */
+    {'E', '=', 0x0415},   /* CYRILLIC CAPITAL LETTER IE */
+    {'Z', '%', 0x0416},   /* CYRILLIC CAPITAL LETTER ZHE */
+    {'Z', '=', 0x0417},   /* CYRILLIC CAPITAL LETTER ZE */
+    {'I', '=', 0x0418},   /* CYRILLIC CAPITAL LETTER I */
+    {'J', '=', 0x0419},   /* CYRILLIC CAPITAL LETTER SHORT I */
+    {'K', '=', 0x041a},   /* CYRILLIC CAPITAL LETTER KA */
+    {'L', '=', 0x041b},   /* CYRILLIC CAPITAL LETTER EL */
+    {'M', '=', 0x041c},   /* CYRILLIC CAPITAL LETTER EM */
+    {'N', '=', 0x041d},   /* CYRILLIC CAPITAL LETTER EN */
+    {'O', '=', 0x041e},   /* CYRILLIC CAPITAL LETTER O */
+    {'P', '=', 0x041f},   /* CYRILLIC CAPITAL LETTER PE */
+    {'R', '=', 0x0420},   /* CYRILLIC CAPITAL LETTER ER */
+    {'S', '=', 0x0421},   /* CYRILLIC CAPITAL LETTER ES */
+    {'T', '=', 0x0422},   /* CYRILLIC CAPITAL LETTER TE */
+    {'U', '=', 0x0423},   /* CYRILLIC CAPITAL LETTER U */
+    {'F', '=', 0x0424},   /* CYRILLIC CAPITAL LETTER EF */
+    {'H', '=', 0x0425},   /* CYRILLIC CAPITAL LETTER HA */
+    {'C', '=', 0x0426},   /* CYRILLIC CAPITAL LETTER TSE */
+    {'C', '%', 0x0427},   /* CYRILLIC CAPITAL LETTER CHE */
+    {'S', '%', 0x0428},   /* CYRILLIC CAPITAL LETTER SHA */
+    {'S', 'c', 0x0429},   /* CYRILLIC CAPITAL LETTER SHCHA */
+    {'=', '"', 0x042a},   /* CYRILLIC CAPITAL LETTER HARD SIGN */
+    {'Y', '=', 0x042b},   /* CYRILLIC CAPITAL LETTER YERU */
+    {'%', '"', 0x042c},   /* CYRILLIC CAPITAL LETTER SOFT SIGN */
+    {'J', 'E', 0x042d},   /* CYRILLIC CAPITAL LETTER E */
+    {'J', 'U', 0x042e},   /* CYRILLIC CAPITAL LETTER YU */
+    {'J', 'A', 0x042f},   /* CYRILLIC CAPITAL LETTER YA */
+    {'a', '=', 0x0430},   /* CYRILLIC SMALL LETTER A */
+    {'b', '=', 0x0431},   /* CYRILLIC SMALL LETTER BE */
+    {'v', '=', 0x0432},   /* CYRILLIC SMALL LETTER VE */
+    {'g', '=', 0x0433},   /* CYRILLIC SMALL LETTER GHE */
+    {'d', '=', 0x0434},   /* CYRILLIC SMALL LETTER DE */
+    {'e', '=', 0x0435},   /* CYRILLIC SMALL LETTER IE */
+    {'z', '%', 0x0436},   /* CYRILLIC SMALL LETTER ZHE */
+    {'z', '=', 0x0437},   /* CYRILLIC SMALL LETTER ZE */
+    {'i', '=', 0x0438},   /* CYRILLIC SMALL LETTER I */
+    {'j', '=', 0x0439},   /* CYRILLIC SMALL LETTER SHORT I */
+    {'k', '=', 0x043a},   /* CYRILLIC SMALL LETTER KA */
+    {'l', '=', 0x043b},   /* CYRILLIC SMALL LETTER EL */
+    {'m', '=', 0x043c},   /* CYRILLIC SMALL LETTER EM */
+    {'n', '=', 0x043d},   /* CYRILLIC SMALL LETTER EN */
+    {'o', '=', 0x043e},   /* CYRILLIC SMALL LETTER O */
+    {'p', '=', 0x043f},   /* CYRILLIC SMALL LETTER PE */
+    {'r', '=', 0x0440},   /* CYRILLIC SMALL LETTER ER */
+    {'s', '=', 0x0441},   /* CYRILLIC SMALL LETTER ES */
+    {'t', '=', 0x0442},   /* CYRILLIC SMALL LETTER TE */
+    {'u', '=', 0x0443},   /* CYRILLIC SMALL LETTER U */
+    {'f', '=', 0x0444},   /* CYRILLIC SMALL LETTER EF */
+    {'h', '=', 0x0445},   /* CYRILLIC SMALL LETTER HA */
+    {'c', '=', 0x0446},   /* CYRILLIC SMALL LETTER TSE */
+    {'c', '%', 0x0447},   /* CYRILLIC SMALL LETTER CHE */
+    {'s', '%', 0x0448},   /* CYRILLIC SMALL LETTER SHA */
+    {'s', 'c', 0x0449},   /* CYRILLIC SMALL LETTER SHCHA */
+    {'=', '\'', 0x044a},   /* CYRILLIC SMALL LETTER HARD SIGN */
+    {'y', '=', 0x044b},   /* CYRILLIC SMALL LETTER YERU */
+    {'%', '\'', 0x044c},   /* CYRILLIC SMALL LETTER SOFT SIGN */
+    {'j', 'e', 0x044d},   /* CYRILLIC SMALL LETTER E */
+    {'j', 'u', 0x044e},   /* CYRILLIC SMALL LETTER YU */
+    {'j', 'a', 0x044f},   /* CYRILLIC SMALL LETTER YA */
+    {'i', 'o', 0x0451},   /* CYRILLIC SMALL LETTER IO */
+    {'d', '%', 0x0452},   /* CYRILLIC SMALL LETTER DJE (Serbocroatian) */
+    {'g', '%', 0x0453},   /* CYRILLIC SMALL LETTER GJE (Macedonian) */
+    {'i', 'e', 0x0454},   /* CYRILLIC SMALL LETTER UKRAINIAN IE */
+    {'d', 's', 0x0455},   /* CYRILLIC SMALL LETTER DZE (Macedonian) */
+    {'i', 'i', 0x0456},   /* CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I */
+    {'y', 'i', 0x0457},   /* CYRILLIC SMALL LETTER YI (Ukrainian) */
+    {'j', '%', 0x0458},   /* CYRILLIC SMALL LETTER JE */
+    {'l', 'j', 0x0459},   /* CYRILLIC SMALL LETTER LJE */
+    {'n', 'j', 0x045a},   /* CYRILLIC SMALL LETTER NJE */
+    {'t', 's', 0x045b},   /* CYRILLIC SMALL LETTER TSHE (Serbocroatian) */
+    {'k', 'j', 0x045c},   /* CYRILLIC SMALL LETTER KJE (Macedonian) */
+    {'v', '%', 0x045e},   /* CYRILLIC SMALL LETTER SHORT U (Byelorussian) */
+    {'d', 'z', 0x045f},   /* CYRILLIC SMALL LETTER DZHE */
+    {'Y', '3', 0x0462},   /* CYRILLIC CAPITAL LETTER YAT */
+    {'y', '3', 0x0463},   /* CYRILLIC SMALL LETTER YAT */
+    {'O', '3', 0x046a},   /* CYRILLIC CAPITAL LETTER BIG YUS */
+    {'o', '3', 0x046b},   /* CYRILLIC SMALL LETTER BIG YUS */
+    {'F', '3', 0x0472},   /* CYRILLIC CAPITAL LETTER FITA */
+    {'f', '3', 0x0473},   /* CYRILLIC SMALL LETTER FITA */
+    {'V', '3', 0x0474},   /* CYRILLIC CAPITAL LETTER IZHITSA */
+    {'v', '3', 0x0475},   /* CYRILLIC SMALL LETTER IZHITSA */
+    {'C', '3', 0x0480},   /* CYRILLIC CAPITAL LETTER KOPPA */
+    {'c', '3', 0x0481},   /* CYRILLIC SMALL LETTER KOPPA */
+    {'G', '3', 0x0490},   /* CYRILLIC CAPITAL LETTER GHE WITH UPTURN */
+    {'g', '3', 0x0491},   /* CYRILLIC SMALL LETTER GHE WITH UPTURN */
+    {'A', '+', 0x05d0},   /* HEBREW LETTER ALEF */
+    {'B', '+', 0x05d1},   /* HEBREW LETTER BET */
+    {'G', '+', 0x05d2},   /* HEBREW LETTER GIMEL */
+    {'D', '+', 0x05d3},   /* HEBREW LETTER DALET */
+    {'H', '+', 0x05d4},   /* HEBREW LETTER HE */
+    {'W', '+', 0x05d5},   /* HEBREW LETTER VAV */
+    {'Z', '+', 0x05d6},   /* HEBREW LETTER ZAYIN */
+    {'X', '+', 0x05d7},   /* HEBREW LETTER HET */
+    {'T', 'j', 0x05d8},   /* HEBREW LETTER TET */
+    {'J', '+', 0x05d9},   /* HEBREW LETTER YOD */
+    {'K', '%', 0x05da},   /* HEBREW LETTER FINAL KAF */
+    {'K', '+', 0x05db},   /* HEBREW LETTER KAF */
+    {'L', '+', 0x05dc},   /* HEBREW LETTER LAMED */
+    {'M', '%', 0x05dd},   /* HEBREW LETTER FINAL MEM */
+    {'M', '+', 0x05de},   /* HEBREW LETTER MEM */
+    {'N', '%', 0x05df},   /* HEBREW LETTER FINAL NUN */
+    {'N', '+', 0x05e0},   /* HEBREW LETTER NUN */
+    {'S', '+', 0x05e1},   /* HEBREW LETTER SAMEKH */
+    {'E', '+', 0x05e2},   /* HEBREW LETTER AYIN */
+    {'P', '%', 0x05e3},   /* HEBREW LETTER FINAL PE */
+    {'P', '+', 0x05e4},   /* HEBREW LETTER PE */
+    {'Z', 'j', 0x05e5},   /* HEBREW LETTER FINAL TSADI */
+    {'Z', 'J', 0x05e6},   /* HEBREW LETTER TSADI */
+    {'Q', '+', 0x05e7},   /* HEBREW LETTER QOF */
+    {'R', '+', 0x05e8},   /* HEBREW LETTER RESH */
+    {'S', 'h', 0x05e9},   /* HEBREW LETTER SHIN */
+    {'T', '+', 0x05ea},   /* HEBREW LETTER TAV */
+    {',', '+', 0x060c},   /* ARABIC COMMA */
+    {';', '+', 0x061b},   /* ARABIC SEMICOLON */
+    {'?', '+', 0x061f},   /* ARABIC QUESTION MARK */
+    {'H', '\'', 0x0621},   /* ARABIC LETTER HAMZA */
+    {'a', 'M', 0x0622},   /* ARABIC LETTER ALEF WITH MADDA ABOVE */
+    {'a', 'H', 0x0623},   /* ARABIC LETTER ALEF WITH HAMZA ABOVE */
+    {'w', 'H', 0x0624},   /* ARABIC LETTER WAW WITH HAMZA ABOVE */
+    {'a', 'h', 0x0625},   /* ARABIC LETTER ALEF WITH HAMZA BELOW */
+    {'y', 'H', 0x0626},   /* ARABIC LETTER YEH WITH HAMZA ABOVE */
+    {'a', '+', 0x0627},   /* ARABIC LETTER ALEF */
+    {'b', '+', 0x0628},   /* ARABIC LETTER BEH */
+    {'t', 'm', 0x0629},   /* ARABIC LETTER TEH MARBUTA */
+    {'t', '+', 0x062a},   /* ARABIC LETTER TEH */
+    {'t', 'k', 0x062b},   /* ARABIC LETTER THEH */
+    {'g', '+', 0x062c},   /* ARABIC LETTER JEEM */
+    {'h', 'k', 0x062d},   /* ARABIC LETTER HAH */
+    {'x', '+', 0x062e},   /* ARABIC LETTER KHAH */
+    {'d', '+', 0x062f},   /* ARABIC LETTER DAL */
+    {'d', 'k', 0x0630},   /* ARABIC LETTER THAL */
+    {'r', '+', 0x0631},   /* ARABIC LETTER REH */
+    {'z', '+', 0x0632},   /* ARABIC LETTER ZAIN */
+    {'s', '+', 0x0633},   /* ARABIC LETTER SEEN */
+    {'s', 'n', 0x0634},   /* ARABIC LETTER SHEEN */
+    {'c', '+', 0x0635},   /* ARABIC LETTER SAD */
+    {'d', 'd', 0x0636},   /* ARABIC LETTER DAD */
+    {'t', 'j', 0x0637},   /* ARABIC LETTER TAH */
+    {'z', 'H', 0x0638},   /* ARABIC LETTER ZAH */
+    {'e', '+', 0x0639},   /* ARABIC LETTER AIN */
+    {'i', '+', 0x063a},   /* ARABIC LETTER GHAIN */
+    {'+', '+', 0x0640},   /* ARABIC TATWEEL */
+    {'f', '+', 0x0641},   /* ARABIC LETTER FEH */
+    {'q', '+', 0x0642},   /* ARABIC LETTER QAF */
+    {'k', '+', 0x0643},   /* ARABIC LETTER KAF */
+    {'l', '+', 0x0644},   /* ARABIC LETTER LAM */
+    {'m', '+', 0x0645},   /* ARABIC LETTER MEEM */
+    {'n', '+', 0x0646},   /* ARABIC LETTER NOON */
+    {'h', '+', 0x0647},   /* ARABIC LETTER HEH */
+    {'w', '+', 0x0648},   /* ARABIC LETTER WAW */
+    {'j', '+', 0x0649},   /* ARABIC LETTER ALEF MAKSURA */
+    {'y', '+', 0x064a},   /* ARABIC LETTER YEH */
+    {':', '+', 0x064b},   /* ARABIC FATHATAN */
+    {'"', '+', 0x064c},   /* ARABIC DAMMATAN */
+    {'=', '+', 0x064d},   /* ARABIC KASRATAN */
+    {'/', '+', 0x064e},   /* ARABIC FATHA */
+    {'\'', '+', 0x064f},   /* ARABIC DAMMA */
+    {'1', '+', 0x0650},   /* ARABIC KASRA */
+    {'3', '+', 0x0651},   /* ARABIC SHADDA */
+    {'0', '+', 0x0652},   /* ARABIC SUKUN */
+    {'a', 'S', 0x0670},   /* SUPERSCRIPT ARABIC LETTER ALEF */
+    {'p', '+', 0x067e},   /* ARABIC LETTER PEH */
+    {'v', '+', 0x06a4},   /* ARABIC LETTER VEH */
+    {'g', 'f', 0x06af},   /* ARABIC LETTER GAF */
+    {'0', 'a', 0x06f0},   /* EASTERN ARABIC-INDIC DIGIT ZERO */
+    {'1', 'a', 0x06f1},   /* EASTERN ARABIC-INDIC DIGIT ONE */
+    {'2', 'a', 0x06f2},   /* EASTERN ARABIC-INDIC DIGIT TWO */
+    {'3', 'a', 0x06f3},   /* EASTERN ARABIC-INDIC DIGIT THREE */
+    {'4', 'a', 0x06f4},   /* EASTERN ARABIC-INDIC DIGIT FOUR */
+    {'5', 'a', 0x06f5},   /* EASTERN ARABIC-INDIC DIGIT FIVE */
+    {'6', 'a', 0x06f6},   /* EASTERN ARABIC-INDIC DIGIT SIX */
+    {'7', 'a', 0x06f7},   /* EASTERN ARABIC-INDIC DIGIT SEVEN */
+    {'8', 'a', 0x06f8},   /* EASTERN ARABIC-INDIC DIGIT EIGHT */
+    {'9', 'a', 0x06f9},   /* EASTERN ARABIC-INDIC DIGIT NINE */
+    {'B', '.', 0x1e02},   /* LATIN CAPITAL LETTER B WITH DOT ABOVE */
+    {'b', '.', 0x1e03},   /* LATIN SMALL LETTER B WITH DOT ABOVE */
+    {'B', '_', 0x1e06},   /* LATIN CAPITAL LETTER B WITH LINE BELOW */
+    {'b', '_', 0x1e07},   /* LATIN SMALL LETTER B WITH LINE BELOW */
+    {'D', '.', 0x1e0a},   /* LATIN CAPITAL LETTER D WITH DOT ABOVE */
+    {'d', '.', 0x1e0b},   /* LATIN SMALL LETTER D WITH DOT ABOVE */
+    {'D', '_', 0x1e0e},   /* LATIN CAPITAL LETTER D WITH LINE BELOW */
+    {'d', '_', 0x1e0f},   /* LATIN SMALL LETTER D WITH LINE BELOW */
+    {'D', ',', 0x1e10},   /* LATIN CAPITAL LETTER D WITH CEDILLA */
+    {'d', ',', 0x1e11},   /* LATIN SMALL LETTER D WITH CEDILLA */
+    {'F', '.', 0x1e1e},   /* LATIN CAPITAL LETTER F WITH DOT ABOVE */
+    {'f', '.', 0x1e1f},   /* LATIN SMALL LETTER F WITH DOT ABOVE */
+    {'G', '-', 0x1e20},   /* LATIN CAPITAL LETTER G WITH MACRON */
+    {'g', '-', 0x1e21},   /* LATIN SMALL LETTER G WITH MACRON */
+    {'H', '.', 0x1e22},   /* LATIN CAPITAL LETTER H WITH DOT ABOVE */
+    {'h', '.', 0x1e23},   /* LATIN SMALL LETTER H WITH DOT ABOVE */
+    {'H', ':', 0x1e26},   /* LATIN CAPITAL LETTER H WITH DIAERESIS */
+    {'h', ':', 0x1e27},   /* LATIN SMALL LETTER H WITH DIAERESIS */
+    {'H', ',', 0x1e28},   /* LATIN CAPITAL LETTER H WITH CEDILLA */
+    {'h', ',', 0x1e29},   /* LATIN SMALL LETTER H WITH CEDILLA */
+    {'K', '\'', 0x1e30},   /* LATIN CAPITAL LETTER K WITH ACUTE */
+    {'k', '\'', 0x1e31},   /* LATIN SMALL LETTER K WITH ACUTE */
+    {'K', '_', 0x1e34},   /* LATIN CAPITAL LETTER K WITH LINE BELOW */
+    {'k', '_', 0x1e35},   /* LATIN SMALL LETTER K WITH LINE BELOW */
+    {'L', '_', 0x1e3a},   /* LATIN CAPITAL LETTER L WITH LINE BELOW */
+    {'l', '_', 0x1e3b},   /* LATIN SMALL LETTER L WITH LINE BELOW */
+    {'M', '\'', 0x1e3e},   /* LATIN CAPITAL LETTER M WITH ACUTE */
+    {'m', '\'', 0x1e3f},   /* LATIN SMALL LETTER M WITH ACUTE */
+    {'M', '.', 0x1e40},   /* LATIN CAPITAL LETTER M WITH DOT ABOVE */
+    {'m', '.', 0x1e41},   /* LATIN SMALL LETTER M WITH DOT ABOVE */
+    {'N', '.', 0x1e44},   /* LATIN CAPITAL LETTER N WITH DOT ABOVE */
+    {'n', '.', 0x1e45},   /* LATIN SMALL LETTER N WITH DOT ABOVE */
+    {'N', '_', 0x1e48},   /* LATIN CAPITAL LETTER N WITH LINE BELOW */
+    {'n', '_', 0x1e49},   /* LATIN SMALL LETTER N WITH LINE BELOW */
+    {'P', '\'', 0x1e54},   /* LATIN CAPITAL LETTER P WITH ACUTE */
+    {'p', '\'', 0x1e55},   /* LATIN SMALL LETTER P WITH ACUTE */
+    {'P', '.', 0x1e56},   /* LATIN CAPITAL LETTER P WITH DOT ABOVE */
+    {'p', '.', 0x1e57},   /* LATIN SMALL LETTER P WITH DOT ABOVE */
+    {'R', '.', 0x1e58},   /* LATIN CAPITAL LETTER R WITH DOT ABOVE */
+    {'r', '.', 0x1e59},   /* LATIN SMALL LETTER R WITH DOT ABOVE */
+    {'R', '_', 0x1e5e},   /* LATIN CAPITAL LETTER R WITH LINE BELOW */
+    {'r', '_', 0x1e5f},   /* LATIN SMALL LETTER R WITH LINE BELOW */
+    {'S', '.', 0x1e60},   /* LATIN CAPITAL LETTER S WITH DOT ABOVE */
+    {'s', '.', 0x1e61},   /* LATIN SMALL LETTER S WITH DOT ABOVE */
+    {'T', '.', 0x1e6a},   /* LATIN CAPITAL LETTER T WITH DOT ABOVE */
+    {'t', '.', 0x1e6b},   /* LATIN SMALL LETTER T WITH DOT ABOVE */
+    {'T', '_', 0x1e6e},   /* LATIN CAPITAL LETTER T WITH LINE BELOW */
+    {'t', '_', 0x1e6f},   /* LATIN SMALL LETTER T WITH LINE BELOW */
+    {'V', '?', 0x1e7c},   /* LATIN CAPITAL LETTER V WITH TILDE */
+    {'v', '?', 0x1e7d},   /* LATIN SMALL LETTER V WITH TILDE */
+    {'W', '!', 0x1e80},   /* LATIN CAPITAL LETTER W WITH GRAVE */
+    {'w', '!', 0x1e81},   /* LATIN SMALL LETTER W WITH GRAVE */
+    {'W', '\'', 0x1e82},   /* LATIN CAPITAL LETTER W WITH ACUTE */
+    {'w', '\'', 0x1e83},   /* LATIN SMALL LETTER W WITH ACUTE */
+    {'W', ':', 0x1e84},   /* LATIN CAPITAL LETTER W WITH DIAERESIS */
+    {'w', ':', 0x1e85},   /* LATIN SMALL LETTER W WITH DIAERESIS */
+    {'W', '.', 0x1e86},   /* LATIN CAPITAL LETTER W WITH DOT ABOVE */
+    {'w', '.', 0x1e87},   /* LATIN SMALL LETTER W WITH DOT ABOVE */
+    {'X', '.', 0x1e8a},   /* LATIN CAPITAL LETTER X WITH DOT ABOVE */
+    {'x', '.', 0x1e8b},   /* LATIN SMALL LETTER X WITH DOT ABOVE */
+    {'X', ':', 0x1e8c},   /* LATIN CAPITAL LETTER X WITH DIAERESIS */
+    {'x', ':', 0x1e8d},   /* LATIN SMALL LETTER X WITH DIAERESIS */
+    {'Y', '.', 0x1e8e},   /* LATIN CAPITAL LETTER Y WITH DOT ABOVE */
+    {'y', '.', 0x1e8f},   /* LATIN SMALL LETTER Y WITH DOT ABOVE */
+    {'Z', '>', 0x1e90},   /* LATIN CAPITAL LETTER Z WITH CIRCUMFLEX */
+    {'z', '>', 0x1e91},   /* LATIN SMALL LETTER Z WITH CIRCUMFLEX */
+    {'Z', '_', 0x1e94},   /* LATIN CAPITAL LETTER Z WITH LINE BELOW */
+    {'z', '_', 0x1e95},   /* LATIN SMALL LETTER Z WITH LINE BELOW */
+    {'h', '_', 0x1e96},   /* LATIN SMALL LETTER H WITH LINE BELOW */
+    {'t', ':', 0x1e97},   /* LATIN SMALL LETTER T WITH DIAERESIS */
+    {'w', '0', 0x1e98},   /* LATIN SMALL LETTER W WITH RING ABOVE */
+    {'y', '0', 0x1e99},   /* LATIN SMALL LETTER Y WITH RING ABOVE */
+    {'A', '2', 0x1ea2},   /* LATIN CAPITAL LETTER A WITH HOOK ABOVE */
+    {'a', '2', 0x1ea3},   /* LATIN SMALL LETTER A WITH HOOK ABOVE */
+    {'E', '2', 0x1eba},   /* LATIN CAPITAL LETTER E WITH HOOK ABOVE */
+    {'e', '2', 0x1ebb},   /* LATIN SMALL LETTER E WITH HOOK ABOVE */
+    {'E', '?', 0x1ebc},   /* LATIN CAPITAL LETTER E WITH TILDE */
+    {'e', '?', 0x1ebd},   /* LATIN SMALL LETTER E WITH TILDE */
+    {'I', '2', 0x1ec8},   /* LATIN CAPITAL LETTER I WITH HOOK ABOVE */
+    {'i', '2', 0x1ec9},   /* LATIN SMALL LETTER I WITH HOOK ABOVE */
+    {'O', '2', 0x1ece},   /* LATIN CAPITAL LETTER O WITH HOOK ABOVE */
+    {'o', '2', 0x1ecf},   /* LATIN SMALL LETTER O WITH HOOK ABOVE */
+    {'U', '2', 0x1ee6},   /* LATIN CAPITAL LETTER U WITH HOOK ABOVE */
+    {'u', '2', 0x1ee7},   /* LATIN SMALL LETTER U WITH HOOK ABOVE */
+    {'Y', '!', 0x1ef2},   /* LATIN CAPITAL LETTER Y WITH GRAVE */
+    {'y', '!', 0x1ef3},   /* LATIN SMALL LETTER Y WITH GRAVE */
+    {'Y', '2', 0x1ef6},   /* LATIN CAPITAL LETTER Y WITH HOOK ABOVE */
+    {'y', '2', 0x1ef7},   /* LATIN SMALL LETTER Y WITH HOOK ABOVE */
+    {'Y', '?', 0x1ef8},   /* LATIN CAPITAL LETTER Y WITH TILDE */
+    {'y', '?', 0x1ef9},   /* LATIN SMALL LETTER Y WITH TILDE */
+    {';', '\'', 0x1f00},   /* GREEK DASIA AND ACUTE ACCENT */
+    {',', '\'', 0x1f01},   /* GREEK PSILI AND ACUTE ACCENT */
+    {';', '!', 0x1f02},   /* GREEK DASIA AND VARIA */
+    {',', '!', 0x1f03},   /* GREEK PSILI AND VARIA */
+    {'?', ';', 0x1f04},   /* GREEK DASIA AND PERISPOMENI */
+    {'?', ',', 0x1f05},   /* GREEK PSILI AND PERISPOMENI */
+    {'!', ':', 0x1f06},   /* GREEK DIAERESIS AND VARIA */
+    {'?', ':', 0x1f07},   /* GREEK DIAERESIS AND PERISPOMENI */
+    {'1', 'N', 0x2002},   /* EN SPACE */
+    {'1', 'M', 0x2003},   /* EM SPACE */
+    {'3', 'M', 0x2004},   /* THREE-PER-EM SPACE */
+    {'4', 'M', 0x2005},   /* FOUR-PER-EM SPACE */
+    {'6', 'M', 0x2006},   /* SIX-PER-EM SPACE */
+    {'1', 'T', 0x2009},   /* THIN SPACE */
+    {'1', 'H', 0x200a},   /* HAIR SPACE */
+    {'-', '1', 0x2010},   /* HYPHEN */
+    {'-', 'N', 0x2013},   /* EN DASH */
+    {'-', 'M', 0x2014},   /* EM DASH */
+    {'-', '3', 0x2015},   /* HORIZONTAL BAR */
+    {'!', '2', 0x2016},   /* DOUBLE VERTICAL LINE */
+    {'=', '2', 0x2017},   /* DOUBLE LOW LINE */
+    {'\'', '6', 0x2018},   /* LEFT SINGLE QUOTATION MARK */
+    {'\'', '9', 0x2019},   /* RIGHT SINGLE QUOTATION MARK */
+    {'.', '9', 0x201a},   /* SINGLE LOW-9 QUOTATION MARK */
+    {'9', '\'', 0x201b},   /* SINGLE HIGH-REVERSED-9 QUOTATION MARK */
+    {'"', '6', 0x201c},   /* LEFT DOUBLE QUOTATION MARK */
+    {'"', '9', 0x201d},   /* RIGHT DOUBLE QUOTATION MARK */
+    {':', '9', 0x201e},   /* DOUBLE LOW-9 QUOTATION MARK */
+    {'9', '"', 0x201f},   /* DOUBLE HIGH-REVERSED-9 QUOTATION MARK */
+    {'/', '-', 0x2020},   /* DAGGER */
+    {'/', '=', 0x2021},   /* DOUBLE DAGGER */
+    {'.', '.', 0x2025},   /* TWO DOT LEADER */
+    {'%', '0', 0x2030},   /* PER MILLE SIGN */
+    {'1', '\'', 0x2032},   /* PRIME */
+    {'2', '\'', 0x2033},   /* DOUBLE PRIME */
+    {'3', '\'', 0x2034},   /* TRIPLE PRIME */
+    {'1', '"', 0x2035},   /* REVERSED PRIME */
+    {'2', '"', 0x2036},   /* REVERSED DOUBLE PRIME */
+    {'3', '"', 0x2037},   /* REVERSED TRIPLE PRIME */
+    {'C', 'a', 0x2038},   /* CARET */
+    {'<', '1', 0x2039},   /* SINGLE LEFT-POINTING ANGLE QUOTATION MARK */
+    {'>', '1', 0x203a},   /* SINGLE RIGHT-POINTING ANGLE QUOTATION MARK */
+    {':', 'X', 0x203b},   /* REFERENCE MARK */
+    {'\'', '-', 0x203e},   /* OVERLINE */
+    {'/', 'f', 0x2044},   /* FRACTION SLASH */
+    {'0', 'S', 0x2070},   /* SUPERSCRIPT DIGIT ZERO */
+    {'4', 'S', 0x2074},   /* SUPERSCRIPT DIGIT FOUR */
+    {'5', 'S', 0x2075},   /* SUPERSCRIPT DIGIT FIVE */
+    {'6', 'S', 0x2076},   /* SUPERSCRIPT DIGIT SIX */
+    {'7', 'S', 0x2077},   /* SUPERSCRIPT DIGIT SEVEN */
+    {'8', 'S', 0x2078},   /* SUPERSCRIPT DIGIT EIGHT */
+    {'9', 'S', 0x2079},   /* SUPERSCRIPT DIGIT NINE */
+    {'+', 'S', 0x207a},   /* SUPERSCRIPT PLUS SIGN */
+    {'-', 'S', 0x207b},   /* SUPERSCRIPT MINUS */
+    {'=', 'S', 0x207c},   /* SUPERSCRIPT EQUALS SIGN */
+    {'(', 'S', 0x207d},   /* SUPERSCRIPT LEFT PARENTHESIS */
+    {')', 'S', 0x207e},   /* SUPERSCRIPT RIGHT PARENTHESIS */
+    {'n', 'S', 0x207f},   /* SUPERSCRIPT LATIN SMALL LETTER N */
+    {'0', 's', 0x2080},   /* SUBSCRIPT DIGIT ZERO */
+    {'1', 's', 0x2081},   /* SUBSCRIPT DIGIT ONE */
+    {'2', 's', 0x2082},   /* SUBSCRIPT DIGIT TWO */
+    {'3', 's', 0x2083},   /* SUBSCRIPT DIGIT THREE */
+    {'4', 's', 0x2084},   /* SUBSCRIPT DIGIT FOUR */
+    {'5', 's', 0x2085},   /* SUBSCRIPT DIGIT FIVE */
+    {'6', 's', 0x2086},   /* SUBSCRIPT DIGIT SIX */
+    {'7', 's', 0x2087},   /* SUBSCRIPT DIGIT SEVEN */
+    {'8', 's', 0x2088},   /* SUBSCRIPT DIGIT EIGHT */
+    {'9', 's', 0x2089},   /* SUBSCRIPT DIGIT NINE */
+    {'+', 's', 0x208a},   /* SUBSCRIPT PLUS SIGN */
+    {'-', 's', 0x208b},   /* SUBSCRIPT MINUS */
+    {'=', 's', 0x208c},   /* SUBSCRIPT EQUALS SIGN */
+    {'(', 's', 0x208d},   /* SUBSCRIPT LEFT PARENTHESIS */
+    {')', 's', 0x208e},   /* SUBSCRIPT RIGHT PARENTHESIS */
+    {'L', 'i', 0x20a4},   /* LIRA SIGN */
+    {'P', 't', 0x20a7},   /* PESETA SIGN */
+    {'W', '=', 0x20a9},   /* WON SIGN */
+    {'o', 'C', 0x2103},   /* DEGREE CENTIGRADE */
+    {'c', 'o', 0x2105},   /* CARE OF */
+    {'o', 'F', 0x2109},   /* DEGREE FAHRENHEIT */
+    {'N', '0', 0x2116},   /* NUMERO SIGN */
+    {'P', 'O', 0x2117},   /* SOUND RECORDING COPYRIGHT */
+    {'R', 'x', 0x211e},   /* PRESCRIPTION TAKE */
+    {'S', 'M', 0x2120},   /* SERVICE MARK */
+    {'T', 'M', 0x2122},   /* TRADE MARK SIGN */
+    {'O', 'm', 0x2126},   /* OHM SIGN */
+    {'A', 'O', 0x212b},   /* ANGSTROEM SIGN */
+    {'1', '3', 0x2153},   /* VULGAR FRACTION ONE THIRD */
+    {'2', '3', 0x2154},   /* VULGAR FRACTION TWO THIRDS */
+    {'1', '5', 0x2155},   /* VULGAR FRACTION ONE FIFTH */
+    {'2', '5', 0x2156},   /* VULGAR FRACTION TWO FIFTHS */
+    {'3', '5', 0x2157},   /* VULGAR FRACTION THREE FIFTHS */
+    {'4', '5', 0x2158},   /* VULGAR FRACTION FOUR FIFTHS */
+    {'1', '6', 0x2159},   /* VULGAR FRACTION ONE SIXTH */
+    {'5', '6', 0x215a},   /* VULGAR FRACTION FIVE SIXTHS */
+    {'1', '8', 0x215b},   /* VULGAR FRACTION ONE EIGHTH */
+    {'3', '8', 0x215c},   /* VULGAR FRACTION THREE EIGHTHS */
+    {'5', '8', 0x215d},   /* VULGAR FRACTION FIVE EIGHTHS */
+    {'7', '8', 0x215e},   /* VULGAR FRACTION SEVEN EIGHTHS */
+    {'1', 'R', 0x2160},   /* ROMAN NUMERAL ONE */
+    {'2', 'R', 0x2161},   /* ROMAN NUMERAL TWO */
+    {'3', 'R', 0x2162},   /* ROMAN NUMERAL THREE */
+    {'4', 'R', 0x2163},   /* ROMAN NUMERAL FOUR */
+    {'5', 'R', 0x2164},   /* ROMAN NUMERAL FIVE */
+    {'6', 'R', 0x2165},   /* ROMAN NUMERAL SIX */
+    {'7', 'R', 0x2166},   /* ROMAN NUMERAL SEVEN */
+    {'8', 'R', 0x2167},   /* ROMAN NUMERAL EIGHT */
+    {'9', 'R', 0x2168},   /* ROMAN NUMERAL NINE */
+    {'a', 'R', 0x2169},   /* ROMAN NUMERAL TEN */
+    {'b', 'R', 0x216a},   /* ROMAN NUMERAL ELEVEN */
+    {'c', 'R', 0x216b},   /* ROMAN NUMERAL TWELVE */
+    {'1', 'r', 0x2170},   /* SMALL ROMAN NUMERAL ONE */
+    {'2', 'r', 0x2171},   /* SMALL ROMAN NUMERAL TWO */
+    {'3', 'r', 0x2172},   /* SMALL ROMAN NUMERAL THREE */
+    {'4', 'r', 0x2173},   /* SMALL ROMAN NUMERAL FOUR */
+    {'5', 'r', 0x2174},   /* SMALL ROMAN NUMERAL FIVE */
+    {'6', 'r', 0x2175},   /* SMALL ROMAN NUMERAL SIX */
+    {'7', 'r', 0x2176},   /* SMALL ROMAN NUMERAL SEVEN */
+    {'8', 'r', 0x2177},   /* SMALL ROMAN NUMERAL EIGHT */
+    {'9', 'r', 0x2178},   /* SMALL ROMAN NUMERAL NINE */
+    {'a', 'r', 0x2179},   /* SMALL ROMAN NUMERAL TEN */
+    {'b', 'r', 0x217a},   /* SMALL ROMAN NUMERAL ELEVEN */
+    {'c', 'r', 0x217b},   /* SMALL ROMAN NUMERAL TWELVE */
+    {'<', '-', 0x2190},   /* LEFTWARDS ARROW */
+    {'-', '!', 0x2191},   /* UPWARDS ARROW */
+    {'-', '>', 0x2192},   /* RIGHTWARDS ARROW */
+    {'-', 'v', 0x2193},   /* DOWNWARDS ARROW */
+    {'<', '>', 0x2194},   /* LEFT RIGHT ARROW */
+    {'U', 'D', 0x2195},   /* UP DOWN ARROW */
+    {'<', '=', 0x21d0},   /* LEFTWARDS DOUBLE ARROW */
+    {'=', '>', 0x21d2},   /* RIGHTWARDS DOUBLE ARROW */
+    {'=', '=', 0x21d4},   /* LEFT RIGHT DOUBLE ARROW */
+    {'F', 'A', 0x2200},   /* FOR ALL */
+    {'d', 'P', 0x2202},   /* PARTIAL DIFFERENTIAL */
+    {'T', 'E', 0x2203},   /* THERE EXISTS */
+    {'/', '0', 0x2205},   /* EMPTY SET */
+    {'D', 'E', 0x2206},   /* INCREMENT */
+    {'N', 'B', 0x2207},   /* NABLA */
+    {'(', '-', 0x2208},   /* ELEMENT OF */
+    {'-', ')', 0x220b},   /* CONTAINS AS MEMBER */
+    {'*', 'P', 0x220f},   /* N-ARY PRODUCT */
+    {'+', 'Z', 0x2211},   /* N-ARY SUMMATION */
+    {'-', '2', 0x2212},   /* MINUS SIGN */
+    {'-', '+', 0x2213},   /* MINUS-OR-PLUS SIGN */
+    {'*', '-', 0x2217},   /* ASTERISK OPERATOR */
+    {'O', 'b', 0x2218},   /* RING OPERATOR */
+    {'S', 'b', 0x2219},   /* BULLET OPERATOR */
+    {'R', 'T', 0x221a},   /* SQUARE ROOT */
+    {'0', '(', 0x221d},   /* PROPORTIONAL TO */
+    {'0', '0', 0x221e},   /* INFINITY */
+    {'-', 'L', 0x221f},   /* RIGHT ANGLE */
+    {'-', 'V', 0x2220},   /* ANGLE */
+    {'P', 'P', 0x2225},   /* PARALLEL TO */
+    {'A', 'N', 0x2227},   /* LOGICAL AND */
+    {'O', 'R', 0x2228},   /* LOGICAL OR */
+    {'(', 'U', 0x2229},   /* INTERSECTION */
+    {')', 'U', 0x222a},   /* UNION */
+    {'I', 'n', 0x222b},   /* INTEGRAL */
+    {'D', 'I', 0x222c},   /* DOUBLE INTEGRAL */
+    {'I', 'o', 0x222e},   /* CONTOUR INTEGRAL */
+    {'.', ':', 0x2234},   /* THEREFORE */
+    {':', '.', 0x2235},   /* BECAUSE */
+    {':', 'R', 0x2236},   /* RATIO */
+    {':', ':', 0x2237},   /* PROPORTION */
+    {'?', '1', 0x223c},   /* TILDE OPERATOR */
+    {'C', 'G', 0x223e},   /* INVERTED LAZY S */
+    {'?', '-', 0x2243},   /* ASYMPTOTICALLY EQUAL TO */
+    {'?', '=', 0x2245},   /* APPROXIMATELY EQUAL TO */
+    {'?', '2', 0x2248},   /* ALMOST EQUAL TO */
+    {'=', '?', 0x224c},   /* ALL EQUAL TO */
+    {'H', 'I', 0x2253},   /* IMAGE OF OR APPROXIMATELY EQUAL TO */
+    {'!', '=', 0x2260},   /* NOT EQUAL TO */
+    {'=', '3', 0x2261},   /* IDENTICAL TO */
+    {'=', '<', 0x2264},   /* LESS-THAN OR EQUAL TO */
+    {'>', '=', 0x2265},   /* GREATER-THAN OR EQUAL TO */
+    {'<', '*', 0x226a},   /* MUCH LESS-THAN */
+    {'*', '>', 0x226b},   /* MUCH GREATER-THAN */
+    {'!', '<', 0x226e},   /* NOT LESS-THAN */
+    {'!', '>', 0x226f},   /* NOT GREATER-THAN */
+    {'(', 'C', 0x2282},   /* SUBSET OF */
+    {')', 'C', 0x2283},   /* SUPERSET OF */
+    {'(', '_', 0x2286},   /* SUBSET OF OR EQUAL TO */
+    {')', '_', 0x2287},   /* SUPERSET OF OR EQUAL TO */
+    {'0', '.', 0x2299},   /* CIRCLED DOT OPERATOR */
+    {'0', '2', 0x229a},   /* CIRCLED RING OPERATOR */
+    {'-', 'T', 0x22a5},   /* UP TACK */
+    {'.', 'P', 0x22c5},   /* DOT OPERATOR */
+    {':', '3', 0x22ee},   /* VERTICAL ELLIPSIS */
+    {'.', '3', 0x22ef},   /* MIDLINE HORIZONTAL ELLIPSIS */
+    {'E', 'h', 0x2302},   /* HOUSE */
+    {'<', '7', 0x2308},   /* LEFT CEILING */
+    {'>', '7', 0x2309},   /* RIGHT CEILING */
+    {'7', '<', 0x230a},   /* LEFT FLOOR */
+    {'7', '>', 0x230b},   /* RIGHT FLOOR */
+    {'N', 'I', 0x2310},   /* REVERSED NOT SIGN */
+    {'(', 'A', 0x2312},   /* ARC */
+    {'T', 'R', 0x2315},   /* TELEPHONE RECORDER */
+    {'I', 'u', 0x2320},   /* TOP HALF INTEGRAL */
+    {'I', 'l', 0x2321},   /* BOTTOM HALF INTEGRAL */
+    {'<', '/', 0x2329},   /* LEFT-POINTING ANGLE BRACKET */
+    {'/', '>', 0x232a},   /* RIGHT-POINTING ANGLE BRACKET */
+    {'V', 's', 0x2423},   /* OPEN BOX */
+    {'1', 'h', 0x2440},   /* OCR HOOK */
+    {'3', 'h', 0x2441},   /* OCR CHAIR */
+    {'2', 'h', 0x2442},   /* OCR FORK */
+    {'4', 'h', 0x2443},   /* OCR INVERTED FORK */
+    {'1', 'j', 0x2446},   /* OCR BRANCH BANK IDENTIFICATION */
+    {'2', 'j', 0x2447},   /* OCR AMOUNT OF CHECK */
+    {'3', 'j', 0x2448},   /* OCR DASH */
+    {'4', 'j', 0x2449},   /* OCR CUSTOMER ACCOUNT NUMBER */
+    {'1', '.', 0x2488},   /* DIGIT ONE FULL STOP */
+    {'2', '.', 0x2489},   /* DIGIT TWO FULL STOP */
+    {'3', '.', 0x248a},   /* DIGIT THREE FULL STOP */
+    {'4', '.', 0x248b},   /* DIGIT FOUR FULL STOP */
+    {'5', '.', 0x248c},   /* DIGIT FIVE FULL STOP */
+    {'6', '.', 0x248d},   /* DIGIT SIX FULL STOP */
+    {'7', '.', 0x248e},   /* DIGIT SEVEN FULL STOP */
+    {'8', '.', 0x248f},   /* DIGIT EIGHT FULL STOP */
+    {'9', '.', 0x2490},   /* DIGIT NINE FULL STOP */
+    {'h', 'h', 0x2500},   /* BOX DRAWINGS LIGHT HORIZONTAL */
+    {'H', 'H', 0x2501},   /* BOX DRAWINGS HEAVY HORIZONTAL */
+    {'v', 'v', 0x2502},   /* BOX DRAWINGS LIGHT VERTICAL */
+    {'V', 'V', 0x2503},   /* BOX DRAWINGS HEAVY VERTICAL */
+    {'3', '-', 0x2504},   /* BOX DRAWINGS LIGHT TRIPLE DASH HORIZONTAL */
+    {'3', '_', 0x2505},   /* BOX DRAWINGS HEAVY TRIPLE DASH HORIZONTAL */
+    {'3', '!', 0x2506},   /* BOX DRAWINGS LIGHT TRIPLE DASH VERTICAL */
+    {'3', '/', 0x2507},   /* BOX DRAWINGS HEAVY TRIPLE DASH VERTICAL */
+    {'4', '-', 0x2508},   /* BOX DRAWINGS LIGHT QUADRUPLE DASH HORIZONTAL */
+    {'4', '_', 0x2509},   /* BOX DRAWINGS HEAVY QUADRUPLE DASH HORIZONTAL */
+    {'4', '!', 0x250a},   /* BOX DRAWINGS LIGHT QUADRUPLE DASH VERTICAL */
+    {'4', '/', 0x250b},   /* BOX DRAWINGS HEAVY QUADRUPLE DASH VERTICAL */
+    {'d', 'r', 0x250c},   /* BOX DRAWINGS LIGHT DOWN AND RIGHT */
+    {'d', 'R', 0x250d},   /* BOX DRAWINGS DOWN LIGHT AND RIGHT HEAVY */
+    {'D', 'r', 0x250e},   /* BOX DRAWINGS DOWN HEAVY AND RIGHT LIGHT */
+    {'D', 'R', 0x250f},   /* BOX DRAWINGS HEAVY DOWN AND RIGHT */
+    {'d', 'l', 0x2510},   /* BOX DRAWINGS LIGHT DOWN AND LEFT */
+    {'d', 'L', 0x2511},   /* BOX DRAWINGS DOWN LIGHT AND LEFT HEAVY */
+    {'D', 'l', 0x2512},   /* BOX DRAWINGS DOWN HEAVY AND LEFT LIGHT */
+    {'L', 'D', 0x2513},   /* BOX DRAWINGS HEAVY DOWN AND LEFT */
+    {'u', 'r', 0x2514},   /* BOX DRAWINGS LIGHT UP AND RIGHT */
+    {'u', 'R', 0x2515},   /* BOX DRAWINGS UP LIGHT AND RIGHT HEAVY */
+    {'U', 'r', 0x2516},   /* BOX DRAWINGS UP HEAVY AND RIGHT LIGHT */
+    {'U', 'R', 0x2517},   /* BOX DRAWINGS HEAVY UP AND RIGHT */
+    {'u', 'l', 0x2518},   /* BOX DRAWINGS LIGHT UP AND LEFT */
+    {'u', 'L', 0x2519},   /* BOX DRAWINGS UP LIGHT AND LEFT HEAVY */
+    {'U', 'l', 0x251a},   /* BOX DRAWINGS UP HEAVY AND LEFT LIGHT */
+    {'U', 'L', 0x251b},   /* BOX DRAWINGS HEAVY UP AND LEFT */
+    {'v', 'r', 0x251c},   /* BOX DRAWINGS LIGHT VERTICAL AND RIGHT */
+    {'v', 'R', 0x251d},   /* BOX DRAWINGS VERTICAL LIGHT AND RIGHT HEAVY */
+    {'V', 'r', 0x2520},   /* BOX DRAWINGS VERTICAL HEAVY AND RIGHT LIGHT */
+    {'V', 'R', 0x2523},   /* BOX DRAWINGS HEAVY VERTICAL AND RIGHT */
+    {'v', 'l', 0x2524},   /* BOX DRAWINGS LIGHT VERTICAL AND LEFT */
+    {'v', 'L', 0x2525},   /* BOX DRAWINGS VERTICAL LIGHT AND LEFT HEAVY */
+    {'V', 'l', 0x2528},   /* BOX DRAWINGS VERTICAL HEAVY AND LEFT LIGHT */
+    {'V', 'L', 0x252b},   /* BOX DRAWINGS HEAVY VERTICAL AND LEFT */
+    {'d', 'h', 0x252c},   /* BOX DRAWINGS LIGHT DOWN AND HORIZONTAL */
+    {'d', 'H', 0x252f},   /* BOX DRAWINGS DOWN LIGHT AND HORIZONTAL HEAVY */
+    {'D', 'h', 0x2530},   /* BOX DRAWINGS DOWN HEAVY AND HORIZONTAL LIGHT */
+    {'D', 'H', 0x2533},   /* BOX DRAWINGS HEAVY DOWN AND HORIZONTAL */
+    {'u', 'h', 0x2534},   /* BOX DRAWINGS LIGHT UP AND HORIZONTAL */
+    {'u', 'H', 0x2537},   /* BOX DRAWINGS UP LIGHT AND HORIZONTAL HEAVY */
+    {'U', 'h', 0x2538},   /* BOX DRAWINGS UP HEAVY AND HORIZONTAL LIGHT */
+    {'U', 'H', 0x253b},   /* BOX DRAWINGS HEAVY UP AND HORIZONTAL */
+    {'v', 'h', 0x253c},   /* BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL */
+    {'v', 'H', 0x253f},   /* BOX DRAWINGS VERTICAL LIGHT AND HORIZONTAL HEAVY */
+    {'V', 'h', 0x2542},   /* BOX DRAWINGS VERTICAL HEAVY AND HORIZONTAL LIGHT */
+    {'V', 'H', 0x254b},   /* BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL */
+    {'F', 'D', 0x2571},   /* BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT */
+    {'B', 'D', 0x2572},   /* BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT */
+    {'T', 'B', 0x2580},   /* UPPER HALF BLOCK */
+    {'L', 'B', 0x2584},   /* LOWER HALF BLOCK */
+    {'F', 'B', 0x2588},   /* FULL BLOCK */
+    {'l', 'B', 0x258c},   /* LEFT HALF BLOCK */
+    {'R', 'B', 0x2590},   /* RIGHT HALF BLOCK */
+    {'.', 'S', 0x2591},   /* LIGHT SHADE */
+    {':', 'S', 0x2592},   /* MEDIUM SHADE */
+    {'?', 'S', 0x2593},   /* DARK SHADE */
+    {'f', 'S', 0x25a0},   /* BLACK SQUARE */
+    {'O', 'S', 0x25a1},   /* WHITE SQUARE */
+    {'R', 'O', 0x25a2},   /* WHITE SQUARE WITH ROUNDED CORNERS */
+    {'R', 'r', 0x25a3},   /* WHITE SQUARE CONTAINING BLACK SMALL SQUARE */
+    {'R', 'F', 0x25a4},   /* SQUARE WITH HORIZONTAL FILL */
+    {'R', 'Y', 0x25a5},   /* SQUARE WITH VERTICAL FILL */
+    {'R', 'H', 0x25a6},   /* SQUARE WITH ORTHOGONAL CROSSHATCH FILL */
+    {'R', 'Z', 0x25a7},   /* SQUARE WITH UPPER LEFT TO LOWER RIGHT FILL */
+    {'R', 'K', 0x25a8},   /* SQUARE WITH UPPER RIGHT TO LOWER LEFT FILL */
+    {'R', 'X', 0x25a9},   /* SQUARE WITH DIAGONAL CROSSHATCH FILL */
+    {'s', 'B', 0x25aa},   /* BLACK SMALL SQUARE */
+    {'S', 'R', 0x25ac},   /* BLACK RECTANGLE */
+    {'O', 'r', 0x25ad},   /* WHITE RECTANGLE */
+    {'U', 'T', 0x25b2},   /* BLACK UP-POINTING TRIANGLE */
+    {'u', 'T', 0x25b3},   /* WHITE UP-POINTING TRIANGLE */
+    {'P', 'R', 0x25b6},   /* BLACK RIGHT-POINTING TRIANGLE */
+    {'T', 'r', 0x25b7},   /* WHITE RIGHT-POINTING TRIANGLE */
+    {'D', 't', 0x25bc},   /* BLACK DOWN-POINTING TRIANGLE */
+    {'d', 'T', 0x25bd},   /* WHITE DOWN-POINTING TRIANGLE */
+    {'P', 'L', 0x25c0},   /* BLACK LEFT-POINTING TRIANGLE */
+    {'T', 'l', 0x25c1},   /* WHITE LEFT-POINTING TRIANGLE */
+    {'D', 'b', 0x25c6},   /* BLACK DIAMOND */
+    {'D', 'w', 0x25c7},   /* WHITE DIAMOND */
+    {'L', 'Z', 0x25ca},   /* LOZENGE */
+    {'0', 'm', 0x25cb},   /* WHITE CIRCLE */
+    {'0', 'o', 0x25ce},   /* BULLSEYE */
+    {'0', 'M', 0x25cf},   /* BLACK CIRCLE */
+    {'0', 'L', 0x25d0},   /* CIRCLE WITH LEFT HALF BLACK */
+    {'0', 'R', 0x25d1},   /* CIRCLE WITH RIGHT HALF BLACK */
+    {'S', 'n', 0x25d8},   /* INVERSE BULLET */
+    {'I', 'c', 0x25d9},   /* INVERSE WHITE CIRCLE */
+    {'F', 'd', 0x25e2},   /* BLACK LOWER RIGHT TRIANGLE */
+    {'B', 'd', 0x25e3},   /* BLACK LOWER LEFT TRIANGLE */
+    {'*', '2', 0x2605},   /* BLACK STAR */
+    {'*', '1', 0x2606},   /* WHITE STAR */
+    {'<', 'H', 0x261c},   /* WHITE LEFT POINTING INDEX */
+    {'>', 'H', 0x261e},   /* WHITE RIGHT POINTING INDEX */
+    {'0', 'u', 0x263a},   /* WHITE SMILING FACE */
+    {'0', 'U', 0x263b},   /* BLACK SMILING FACE */
+    {'S', 'U', 0x263c},   /* WHITE SUN WITH RAYS */
+    {'F', 'm', 0x2640},   /* FEMALE SIGN */
+    {'M', 'l', 0x2642},   /* MALE SIGN */
+    {'c', 'S', 0x2660},   /* BLACK SPADE SUIT */
+    {'c', 'H', 0x2661},   /* WHITE HEART SUIT */
+    {'c', 'D', 0x2662},   /* WHITE DIAMOND SUIT */
+    {'c', 'C', 0x2663},   /* BLACK CLUB SUIT */
+    {'M', 'd', 0x2669},   /* QUARTER NOTE */
+    {'M', '8', 0x266a},   /* EIGHTH NOTE */
+    {'M', '2', 0x266b},   /* BARRED EIGHTH NOTES */
+    {'M', 'b', 0x266d},   /* MUSIC FLAT SIGN */
+    {'M', 'x', 0x266e},   /* MUSIC NATURAL SIGN */
+    {'M', 'X', 0x266f},   /* MUSIC SHARP SIGN */
+    {'O', 'K', 0x2713},   /* CHECK MARK */
+    {'X', 'X', 0x2717},   /* BALLOT X */
+    {'-', 'X', 0x2720},   /* MALTESE CROSS */
+    {'I', 'S', 0x3000},   /* IDEOGRAPHIC SPACE */
+    {',', '_', 0x3001},   /* IDEOGRAPHIC COMMA */
+    {'.', '_', 0x3002},   /* IDEOGRAPHIC PERIOD */
+    {'+', '"', 0x3003},   /* DITTO MARK */
+    {'+', '_', 0x3004},   /* IDEOGRAPHIC DITTO MARK */
+    {'*', '_', 0x3005},   /* IDEOGRAPHIC ITERATION MARK */
+    {';', '_', 0x3006},   /* IDEOGRAPHIC CLOSING MARK */
+    {'0', '_', 0x3007},   /* IDEOGRAPHIC NUMBER ZERO */
+    {'<', '+', 0x300a},   /* LEFT DOUBLE ANGLE BRACKET */
+    {'>', '+', 0x300b},   /* RIGHT DOUBLE ANGLE BRACKET */
+    {'<', '\'', 0x300c},   /* LEFT CORNER BRACKET */
+    {'>', '\'', 0x300d},   /* RIGHT CORNER BRACKET */
+    {'<', '"', 0x300e},   /* LEFT WHITE CORNER BRACKET */
+    {'>', '"', 0x300f},   /* RIGHT WHITE CORNER BRACKET */
+    {'(', '"', 0x3010},   /* LEFT BLACK LENTICULAR BRACKET */
+    {')', '"', 0x3011},   /* RIGHT BLACK LENTICULAR BRACKET */
+    {'=', 'T', 0x3012},   /* POSTAL MARK */
+    {'=', '_', 0x3013},   /* GETA MARK */
+    {'(', '\'', 0x3014},   /* LEFT TORTOISE SHELL BRACKET */
+    {')', '\'', 0x3015},   /* RIGHT TORTOISE SHELL BRACKET */
+    {'(', 'I', 0x3016},   /* LEFT WHITE LENTICULAR BRACKET */
+    {')', 'I', 0x3017},   /* RIGHT WHITE LENTICULAR BRACKET */
+    {'-', '?', 0x301c},   /* WAVE DASH */
+    {'A', '5', 0x3041},   /* HIRAGANA LETTER SMALL A */
+    {'a', '5', 0x3042},   /* HIRAGANA LETTER A */
+    {'I', '5', 0x3043},   /* HIRAGANA LETTER SMALL I */
+    {'i', '5', 0x3044},   /* HIRAGANA LETTER I */
+    {'U', '5', 0x3045},   /* HIRAGANA LETTER SMALL U */
+    {'u', '5', 0x3046},   /* HIRAGANA LETTER U */
+    {'E', '5', 0x3047},   /* HIRAGANA LETTER SMALL E */
+    {'e', '5', 0x3048},   /* HIRAGANA LETTER E */
+    {'O', '5', 0x3049},   /* HIRAGANA LETTER SMALL O */
+    {'o', '5', 0x304a},   /* HIRAGANA LETTER O */
+    {'k', 'a', 0x304b},   /* HIRAGANA LETTER KA */
+    {'g', 'a', 0x304c},   /* HIRAGANA LETTER GA */
+    {'k', 'i', 0x304d},   /* HIRAGANA LETTER KI */
+    {'g', 'i', 0x304e},   /* HIRAGANA LETTER GI */
+    {'k', 'u', 0x304f},   /* HIRAGANA LETTER KU */
+    {'g', 'u', 0x3050},   /* HIRAGANA LETTER GU */
+    {'k', 'e', 0x3051},   /* HIRAGANA LETTER KE */
+    {'g', 'e', 0x3052},   /* HIRAGANA LETTER GE */
+    {'k', 'o', 0x3053},   /* HIRAGANA LETTER KO */
+    {'g', 'o', 0x3054},   /* HIRAGANA LETTER GO */
+    {'s', 'a', 0x3055},   /* HIRAGANA LETTER SA */
+    {'z', 'a', 0x3056},   /* HIRAGANA LETTER ZA */
+    {'s', 'i', 0x3057},   /* HIRAGANA LETTER SI */
+    {'z', 'i', 0x3058},   /* HIRAGANA LETTER ZI */
+    {'s', 'u', 0x3059},   /* HIRAGANA LETTER SU */
+    {'z', 'u', 0x305a},   /* HIRAGANA LETTER ZU */
+    {'s', 'e', 0x305b},   /* HIRAGANA LETTER SE */
+    {'z', 'e', 0x305c},   /* HIRAGANA LETTER ZE */
+    {'s', 'o', 0x305d},   /* HIRAGANA LETTER SO */
+    {'z', 'o', 0x305e},   /* HIRAGANA LETTER ZO */
+    {'t', 'a', 0x305f},   /* HIRAGANA LETTER TA */
+    {'d', 'a', 0x3060},   /* HIRAGANA LETTER DA */
+    {'t', 'i', 0x3061},   /* HIRAGANA LETTER TI */
+    {'d', 'i', 0x3062},   /* HIRAGANA LETTER DI */
+    {'t', 'U', 0x3063},   /* HIRAGANA LETTER SMALL TU */
+    {'t', 'u', 0x3064},   /* HIRAGANA LETTER TU */
+    {'d', 'u', 0x3065},   /* HIRAGANA LETTER DU */
+    {'t', 'e', 0x3066},   /* HIRAGANA LETTER TE */
+    {'d', 'e', 0x3067},   /* HIRAGANA LETTER DE */
+    {'t', 'o', 0x3068},   /* HIRAGANA LETTER TO */
+    {'d', 'o', 0x3069},   /* HIRAGANA LETTER DO */
+    {'n', 'a', 0x306a},   /* HIRAGANA LETTER NA */
+    {'n', 'i', 0x306b},   /* HIRAGANA LETTER NI */
+    {'n', 'u', 0x306c},   /* HIRAGANA LETTER NU */
+    {'n', 'e', 0x306d},   /* HIRAGANA LETTER NE */
+    {'n', 'o', 0x306e},   /* HIRAGANA LETTER NO */
+    {'h', 'a', 0x306f},   /* HIRAGANA LETTER HA */
+    {'b', 'a', 0x3070},   /* HIRAGANA LETTER BA */
+    {'p', 'a', 0x3071},   /* HIRAGANA LETTER PA */
+    {'h', 'i', 0x3072},   /* HIRAGANA LETTER HI */
+    {'b', 'i', 0x3073},   /* HIRAGANA LETTER BI */
+    {'p', 'i', 0x3074},   /* HIRAGANA LETTER PI */
+    {'h', 'u', 0x3075},   /* HIRAGANA LETTER HU */
+    {'b', 'u', 0x3076},   /* HIRAGANA LETTER BU */
+    {'p', 'u', 0x3077},   /* HIRAGANA LETTER PU */
+    {'h', 'e', 0x3078},   /* HIRAGANA LETTER HE */
+    {'b', 'e', 0x3079},   /* HIRAGANA LETTER BE */
+    {'p', 'e', 0x307a},   /* HIRAGANA LETTER PE */
+    {'h', 'o', 0x307b},   /* HIRAGANA LETTER HO */
+    {'b', 'o', 0x307c},   /* HIRAGANA LETTER BO */
+    {'p', 'o', 0x307d},   /* HIRAGANA LETTER PO */
+    {'m', 'a', 0x307e},   /* HIRAGANA LETTER MA */
+    {'m', 'i', 0x307f},   /* HIRAGANA LETTER MI */
+    {'m', 'u', 0x3080},   /* HIRAGANA LETTER MU */
+    {'m', 'e', 0x3081},   /* HIRAGANA LETTER ME */
+    {'m', 'o', 0x3082},   /* HIRAGANA LETTER MO */
+    {'y', 'A', 0x3083},   /* HIRAGANA LETTER SMALL YA */
+    {'y', 'a', 0x3084},   /* HIRAGANA LETTER YA */
+    {'y', 'U', 0x3085},   /* HIRAGANA LETTER SMALL YU */
+    {'y', 'u', 0x3086},   /* HIRAGANA LETTER YU */
+    {'y', 'O', 0x3087},   /* HIRAGANA LETTER SMALL YO */
+    {'y', 'o', 0x3088},   /* HIRAGANA LETTER YO */
+    {'r', 'a', 0x3089},   /* HIRAGANA LETTER RA */
+    {'r', 'i', 0x308a},   /* HIRAGANA LETTER RI */
+    {'r', 'u', 0x308b},   /* HIRAGANA LETTER RU */
+    {'r', 'e', 0x308c},   /* HIRAGANA LETTER RE */
+    {'r', 'o', 0x308d},   /* HIRAGANA LETTER RO */
+    {'w', 'A', 0x308e},   /* HIRAGANA LETTER SMALL WA */
+    {'w', 'a', 0x308f},   /* HIRAGANA LETTER WA */
+    {'w', 'i', 0x3090},   /* HIRAGANA LETTER WI */
+    {'w', 'e', 0x3091},   /* HIRAGANA LETTER WE */
+    {'w', 'o', 0x3092},   /* HIRAGANA LETTER WO */
+    {'n', '5', 0x3093},   /* HIRAGANA LETTER N */
+    {'v', 'u', 0x3094},   /* HIRAGANA LETTER VU */
+    {'"', '5', 0x309b},   /* KATAKANA-HIRAGANA VOICED SOUND MARK */
+    {'0', '5', 0x309c},   /* KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK */
+    {'*', '5', 0x309d},   /* HIRAGANA ITERATION MARK */
+    {'+', '5', 0x309e},   /* HIRAGANA VOICED ITERATION MARK */
+    {'a', '6', 0x30a1},   /* KATAKANA LETTER SMALL A */
+    {'A', '6', 0x30a2},   /* KATAKANA LETTER A */
+    {'i', '6', 0x30a3},   /* KATAKANA LETTER SMALL I */
+    {'I', '6', 0x30a4},   /* KATAKANA LETTER I */
+    {'u', '6', 0x30a5},   /* KATAKANA LETTER SMALL U */
+    {'U', '6', 0x30a6},   /* KATAKANA LETTER U */
+    {'e', '6', 0x30a7},   /* KATAKANA LETTER SMALL E */
+    {'E', '6', 0x30a8},   /* KATAKANA LETTER E */
+    {'o', '6', 0x30a9},   /* KATAKANA LETTER SMALL O */
+    {'O', '6', 0x30aa},   /* KATAKANA LETTER O */
+    {'K', 'a', 0x30ab},   /* KATAKANA LETTER KA */
+    {'G', 'a', 0x30ac},   /* KATAKANA LETTER GA */
+    {'K', 'i', 0x30ad},   /* KATAKANA LETTER KI */
+    {'G', 'i', 0x30ae},   /* KATAKANA LETTER GI */
+    {'K', 'u', 0x30af},   /* KATAKANA LETTER KU */
+    {'G', 'u', 0x30b0},   /* KATAKANA LETTER GU */
+    {'K', 'e', 0x30b1},   /* KATAKANA LETTER KE */
+    {'G', 'e', 0x30b2},   /* KATAKANA LETTER GE */
+    {'K', 'o', 0x30b3},   /* KATAKANA LETTER KO */
+    {'G', 'o', 0x30b4},   /* KATAKANA LETTER GO */
+    {'S', 'a', 0x30b5},   /* KATAKANA LETTER SA */
+    {'Z', 'a', 0x30b6},   /* KATAKANA LETTER ZA */
+    {'S', 'i', 0x30b7},   /* KATAKANA LETTER SI */
+    {'Z', 'i', 0x30b8},   /* KATAKANA LETTER ZI */
+    {'S', 'u', 0x30b9},   /* KATAKANA LETTER SU */
+    {'Z', 'u', 0x30ba},   /* KATAKANA LETTER ZU */
+    {'S', 'e', 0x30bb},   /* KATAKANA LETTER SE */
+    {'Z', 'e', 0x30bc},   /* KATAKANA LETTER ZE */
+    {'S', 'o', 0x30bd},   /* KATAKANA LETTER SO */
+    {'Z', 'o', 0x30be},   /* KATAKANA LETTER ZO */
+    {'T', 'a', 0x30bf},   /* KATAKANA LETTER TA */
+    {'D', 'a', 0x30c0},   /* KATAKANA LETTER DA */
+    {'T', 'i', 0x30c1},   /* KATAKANA LETTER TI */
+    {'D', 'i', 0x30c2},   /* KATAKANA LETTER DI */
+    {'T', 'U', 0x30c3},   /* KATAKANA LETTER SMALL TU */
+    {'T', 'u', 0x30c4},   /* KATAKANA LETTER TU */
+    {'D', 'u', 0x30c5},   /* KATAKANA LETTER DU */
+    {'T', 'e', 0x30c6},   /* KATAKANA LETTER TE */
+    {'D', 'e', 0x30c7},   /* KATAKANA LETTER DE */
+    {'T', 'o', 0x30c8},   /* KATAKANA LETTER TO */
+    {'D', 'o', 0x30c9},   /* KATAKANA LETTER DO */
+    {'N', 'a', 0x30ca},   /* KATAKANA LETTER NA */
+    {'N', 'i', 0x30cb},   /* KATAKANA LETTER NI */
+    {'N', 'u', 0x30cc},   /* KATAKANA LETTER NU */
+    {'N', 'e', 0x30cd},   /* KATAKANA LETTER NE */
+    {'N', 'o', 0x30ce},   /* KATAKANA LETTER NO */
+    {'H', 'a', 0x30cf},   /* KATAKANA LETTER HA */
+    {'B', 'a', 0x30d0},   /* KATAKANA LETTER BA */
+    {'P', 'a', 0x30d1},   /* KATAKANA LETTER PA */
+    {'H', 'i', 0x30d2},   /* KATAKANA LETTER HI */
+    {'B', 'i', 0x30d3},   /* KATAKANA LETTER BI */
+    {'P', 'i', 0x30d4},   /* KATAKANA LETTER PI */
+    {'H', 'u', 0x30d5},   /* KATAKANA LETTER HU */
+    {'B', 'u', 0x30d6},   /* KATAKANA LETTER BU */
+    {'P', 'u', 0x30d7},   /* KATAKANA LETTER PU */
+    {'H', 'e', 0x30d8},   /* KATAKANA LETTER HE */
+    {'B', 'e', 0x30d9},   /* KATAKANA LETTER BE */
+    {'P', 'e', 0x30da},   /* KATAKANA LETTER PE */
+    {'H', 'o', 0x30db},   /* KATAKANA LETTER HO */
+    {'B', 'o', 0x30dc},   /* KATAKANA LETTER BO */
+    {'P', 'o', 0x30dd},   /* KATAKANA LETTER PO */
+    {'M', 'a', 0x30de},   /* KATAKANA LETTER MA */
+    {'M', 'i', 0x30df},   /* KATAKANA LETTER MI */
+    {'M', 'u', 0x30e0},   /* KATAKANA LETTER MU */
+    {'M', 'e', 0x30e1},   /* KATAKANA LETTER ME */
+    {'M', 'o', 0x30e2},   /* KATAKANA LETTER MO */
+    {'Y', 'A', 0x30e3},   /* KATAKANA LETTER SMALL YA */
+    {'Y', 'a', 0x30e4},   /* KATAKANA LETTER YA */
+    {'Y', 'U', 0x30e5},   /* KATAKANA LETTER SMALL YU */
+    {'Y', 'u', 0x30e6},   /* KATAKANA LETTER YU */
+    {'Y', 'O', 0x30e7},   /* KATAKANA LETTER SMALL YO */
+    {'Y', 'o', 0x30e8},   /* KATAKANA LETTER YO */
+    {'R', 'a', 0x30e9},   /* KATAKANA LETTER RA */
+    {'R', 'i', 0x30ea},   /* KATAKANA LETTER RI */
+    {'R', 'u', 0x30eb},   /* KATAKANA LETTER RU */
+    {'R', 'e', 0x30ec},   /* KATAKANA LETTER RE */
+    {'R', 'o', 0x30ed},   /* KATAKANA LETTER RO */
+    {'W', 'A', 0x30ee},   /* KATAKANA LETTER SMALL WA */
+    {'W', 'a', 0x30ef},   /* KATAKANA LETTER WA */
+    {'W', 'i', 0x30f0},   /* KATAKANA LETTER WI */
+    {'W', 'e', 0x30f1},   /* KATAKANA LETTER WE */
+    {'W', 'o', 0x30f2},   /* KATAKANA LETTER WO */
+    {'N', '6', 0x30f3},   /* KATAKANA LETTER N */
+    {'V', 'u', 0x30f4},   /* KATAKANA LETTER VU */
+    {'K', 'A', 0x30f5},   /* KATAKANA LETTER SMALL KA */
+    {'K', 'E', 0x30f6},   /* KATAKANA LETTER SMALL KE */
+    {'V', 'a', 0x30f7},   /* KATAKANA LETTER VA */
+    {'V', 'i', 0x30f8},   /* KATAKANA LETTER VI */
+    {'V', 'e', 0x30f9},   /* KATAKANA LETTER VE */
+    {'V', 'o', 0x30fa},   /* KATAKANA LETTER VO */
+    {'.', '6', 0x30fb},   /* KATAKANA MIDDLE DOT */
+    {'-', '6', 0x30fc},   /* KATAKANA-HIRAGANA PROLONGED SOUND MARK */
+    {'*', '6', 0x30fd},   /* KATAKANA ITERATION MARK */
+    {'+', '6', 0x30fe},   /* KATAKANA VOICED ITERATION MARK */
+    {'b', '4', 0x3105},   /* BOPOMOFO LETTER B */
+    {'p', '4', 0x3106},   /* BOPOMOFO LETTER P */
+    {'m', '4', 0x3107},   /* BOPOMOFO LETTER M */
+    {'f', '4', 0x3108},   /* BOPOMOFO LETTER F */
+    {'d', '4', 0x3109},   /* BOPOMOFO LETTER D */
+    {'t', '4', 0x310a},   /* BOPOMOFO LETTER T */
+    {'n', '4', 0x310b},   /* BOPOMOFO LETTER N */
+    {'l', '4', 0x310c},   /* BOPOMOFO LETTER L */
+    {'g', '4', 0x310d},   /* BOPOMOFO LETTER G */
+    {'k', '4', 0x310e},   /* BOPOMOFO LETTER K */
+    {'h', '4', 0x310f},   /* BOPOMOFO LETTER H */
+    {'j', '4', 0x3110},   /* BOPOMOFO LETTER J */
+    {'q', '4', 0x3111},   /* BOPOMOFO LETTER Q */
+    {'x', '4', 0x3112},   /* BOPOMOFO LETTER X */
+    {'z', 'h', 0x3113},   /* BOPOMOFO LETTER ZH */
+    {'c', 'h', 0x3114},   /* BOPOMOFO LETTER CH */
+    {'s', 'h', 0x3115},   /* BOPOMOFO LETTER SH */
+    {'r', '4', 0x3116},   /* BOPOMOFO LETTER R */
+    {'z', '4', 0x3117},   /* BOPOMOFO LETTER Z */
+    {'c', '4', 0x3118},   /* BOPOMOFO LETTER C */
+    {'s', '4', 0x3119},   /* BOPOMOFO LETTER S */
+    {'a', '4', 0x311a},   /* BOPOMOFO LETTER A */
+    {'o', '4', 0x311b},   /* BOPOMOFO LETTER O */
+    {'e', '4', 0x311c},   /* BOPOMOFO LETTER E */
+    {'a', 'i', 0x311e},   /* BOPOMOFO LETTER AI */
+    {'e', 'i', 0x311f},   /* BOPOMOFO LETTER EI */
+    {'a', 'u', 0x3120},   /* BOPOMOFO LETTER AU */
+    {'o', 'u', 0x3121},   /* BOPOMOFO LETTER OU */
+    {'a', 'n', 0x3122},   /* BOPOMOFO LETTER AN */
+    {'e', 'n', 0x3123},   /* BOPOMOFO LETTER EN */
+    {'a', 'N', 0x3124},   /* BOPOMOFO LETTER ANG */
+    {'e', 'N', 0x3125},   /* BOPOMOFO LETTER ENG */
+    {'e', 'r', 0x3126},   /* BOPOMOFO LETTER ER */
+    {'i', '4', 0x3127},   /* BOPOMOFO LETTER I */
+    {'u', '4', 0x3128},   /* BOPOMOFO LETTER U */
+    {'i', 'u', 0x3129},   /* BOPOMOFO LETTER IU */
+    {'v', '4', 0x312a},   /* BOPOMOFO LETTER V */
+    {'n', 'G', 0x312b},   /* BOPOMOFO LETTER NG */
+    {'g', 'n', 0x312c},   /* BOPOMOFO LETTER GN */
+    {'1', 'c', 0x3220},   /* PARENTHESIZED IDEOGRAPH ONE */
+    {'2', 'c', 0x3221},   /* PARENTHESIZED IDEOGRAPH TWO */
+    {'3', 'c', 0x3222},   /* PARENTHESIZED IDEOGRAPH THREE */
+    {'4', 'c', 0x3223},   /* PARENTHESIZED IDEOGRAPH FOUR */
+    {'5', 'c', 0x3224},   /* PARENTHESIZED IDEOGRAPH FIVE */
+    {'6', 'c', 0x3225},   /* PARENTHESIZED IDEOGRAPH SIX */
+    {'7', 'c', 0x3226},   /* PARENTHESIZED IDEOGRAPH SEVEN */
+    {'8', 'c', 0x3227},   /* PARENTHESIZED IDEOGRAPH EIGHT */
+    {'9', 'c', 0x3228},   /* PARENTHESIZED IDEOGRAPH NINE */
+    {'f', 'f', 0xfb00},   /* LATIN SMALL LIGATURE FF */
+    {'f', 'i', 0xfb01},   /* LATIN SMALL LIGATURE FI */
+    {'f', 'l', 0xfb02},   /* LATIN SMALL LIGATURE FL */
+    {'f', 't', 0xfb05},   /* LATIN SMALL LIGATURE FT */
+    {'s', 't', 0xfb06},   /* LATIN SMALL LIGATURE ST */
+    {'N', 'U', 0x0000},   /* NULL (NUL) */
+    {'S', 'H', 0x0001},   /* START OF HEADING (SOH) */
+    {'S', 'X', 0x0002},   /* START OF TEXT (STX) */
+    {'E', 'X', 0x0003},   /* END OF TEXT (ETX) */
+    {'E', 'T', 0x0004},   /* END OF TRANSMISSION (EOT) */
+    {'E', 'Q', 0x0005},   /* ENQUIRY (ENQ) */
+    {'A', 'K', 0x0006},   /* ACKNOWLEDGE (ACK) */
+    {'B', 'L', 0x0007},   /* BELL (BEL) */
+    {'B', 'S', 0x0008},   /* BACKSPACE (BS) */
+    {'H', 'T', 0x0009},   /* CHARACTER TABULATION (HT) */
+    {'L', 'F', 0x000a},   /* LINE FEED (LF) */
+    {'V', 'T', 0x000b},   /* LINE TABULATION (VT) */
+    {'F', 'F', 0x000c},   /* FORM FEED (FF) */
+    {'C', 'R', 0x000d},   /* CARRIAGE RETURN (CR) */
+    {'S', 'O', 0x000e},   /* SHIFT OUT (SO) */
+    {'S', 'I', 0x000f},   /* SHIFT IN (SI) */
+    {'D', 'L', 0x0010},   /* DATALINK ESCAPE (DLE) */
+    {'D', '1', 0x0011},   /* DEVICE CONTROL ONE (DC1) */
+    {'D', '2', 0x0012},   /* DEVICE CONTROL TWO (DC2) */
+    {'D', '3', 0x0013},   /* DEVICE CONTROL THREE (DC3) */
+    {'D', '4', 0x0014},   /* DEVICE CONTROL FOUR (DC4) */
+    {'N', 'K', 0x0015},   /* NEGATIVE ACKNOWLEDGE (NAK) */
+    {'S', 'Y', 0x0016},   /* SYNCRONOUS IDLE (SYN) */
+    {'E', 'B', 0x0017},   /* END OF TRANSMISSION BLOCK (ETB) */
+    {'C', 'N', 0x0018},   /* CANCEL (CAN) */
+    {'E', 'M', 0x0019},   /* END OF MEDIUM (EM) */
+    {'S', 'B', 0x001a},   /* SUBSTITUTE (SUB) */
+    {'E', 'C', 0x001b},   /* ESCAPE (ESC) */
+    {'F', 'S', 0x001c},   /* FILE SEPARATOR (IS4) */
+    {'G', 'S', 0x001d},   /* GROUP SEPARATOR (IS3) */
+    {'R', 'S', 0x001e},   /* RECORD SEPARATOR (IS2) */
+    {'U', 'S', 0x001f},   /* UNIT SEPARATOR (IS1) */
+    {'D', 'T', 0x007f},   /* DELETE (DEL) */
+    {'P', 'A', 0x0080},   /* PADDING CHARACTER (PAD) */
+    {'H', 'O', 0x0081},   /* HIGH OCTET PRESET (HOP) */
+    {'B', 'H', 0x0082},   /* BREAK PERMITTED HERE (BPH) */
+    {'N', 'H', 0x0083},   /* NO BREAK HERE (NBH) */
+    {'I', 'N', 0x0084},   /* INDEX (IND) */
+    {'N', 'L', 0x0085},   /* NEXT LINE (NEL) */
+    {'S', 'A', 0x0086},   /* START OF SELECTED AREA (SSA) */
+    {'E', 'S', 0x0087},   /* END OF SELECTED AREA (ESA) */
+    {'H', 'S', 0x0088},   /* CHARACTER TABULATION SET (HTS) */
+    {'H', 'J', 0x0089},   /* CHARACTER TABULATION WITH JUSTIFICATION (HTJ) */
+    {'V', 'S', 0x008a},   /* LINE TABULATION SET (VTS) */
+    {'P', 'D', 0x008b},   /* PARTIAL LINE FORWARD (PLD) */
+    {'P', 'U', 0x008c},   /* PARTIAL LINE BACKWARD (PLU) */
+    {'R', 'I', 0x008d},   /* REVERSE LINE FEED (RI) */
+    {'S', '2', 0x008e},   /* SINGLE-SHIFT TWO (SS2) */
+    {'S', '3', 0x008f},   /* SINGLE-SHIFT THREE (SS3) */
+    {'D', 'C', 0x0090},   /* DEVICE CONTROL STRING (DCS) */
+    {'P', '1', 0x0091},   /* PRIVATE USE ONE (PU1) */
+    {'P', '2', 0x0092},   /* PRIVATE USE TWO (PU2) */
+    {'T', 'S', 0x0093},   /* SET TRANSMIT STATE (STS) */
+    {'C', 'C', 0x0094},   /* CANCEL CHARACTER (CCH) */
+    {'M', 'W', 0x0095},   /* MESSAGE WAITING (MW) */
+    {'S', 'G', 0x0096},   /* START OF GUARDED AREA (SPA) */
+    {'E', 'G', 0x0097},   /* END OF GUARDED AREA (EPA) */
+    {'S', 'S', 0x0098},   /* START OF STRING (SOS) */
+    {'G', 'C', 0x0099},   /* SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI) */
+    {'S', 'C', 0x009a},   /* SINGLE CHARACTER INTRODUCER (SCI) */
+    {'C', 'I', 0x009b},   /* CONTROL SEQUENCE INTRODUCER (CSI) */
+    {'S', 'T', 0x009c},   /* STRING TERMINATOR (ST) */
+    {'O', 'C', 0x009d},   /* OPERATING SYSTEM COMMAND (OSC) */
+    {'P', 'M', 0x009e},   /* PRIVACY MESSAGE (PM) */
+    {'A', 'C', 0x009f},   /* APPLICATION PROGRAM COMMAND (APC) */
+    {' ', ' ', 0xe000},   /* indicates unfinished (Mnemonic) */
+    {'/', 'c', 0xe001},   /* JOIN THIS LINE WITH NEXT LINE (Mnemonic) */
+    {'U', 'A', 0xe002},   /* Unit space A (ISO-IR-8-1 064) */
+    {'U', 'B', 0xe003},   /* Unit space B (ISO-IR-8-1 096) */
+    {'"', '3', 0xe004},   /* NON-SPACING UMLAUT (ISO-IR-38 201) (character part) */
+    {'"', '1', 0xe005},   /* NON-SPACING DIAERESIS WITH ACCENT (ISO-IR-70 192) (character part) */
+    {'"', '!', 0xe006},   /* NON-SPACING GRAVE ACCENT (ISO-IR-103 193) (character part) */
+    {'"', '\'', 0xe007},   /* NON-SPACING ACUTE ACCENT (ISO-IR-103 194) (character part) */
+    {'"', '>', 0xe008},   /* NON-SPACING CIRCUMFLEX ACCENT (ISO-IR-103 195) (character part) */
+    {'"', '?', 0xe009},   /* NON-SPACING TILDE (ISO-IR-103 196) (character part) */
+    {'"', '-', 0xe00a},   /* NON-SPACING MACRON (ISO-IR-103 197) (character part) */
+    {'"', '(', 0xe00b},   /* NON-SPACING BREVE (ISO-IR-103 198) (character part) */
+    {'"', '.', 0xe00c},   /* NON-SPACING DOT ABOVE (ISO-IR-103 199) (character part) */
+    {'"', ':', 0xe00d},   /* NON-SPACING DIAERESIS (ISO-IR-103 200) (character part) */
+    {'"', '0', 0xe00e},   /* NON-SPACING RING ABOVE (ISO-IR-103 202) (character part) */
+    {'"', '"', 0xe00f},   /* NON-SPACING DOUBLE ACCUTE (ISO-IR-103 204) (character part) */
+    {'"', '<', 0xe010},   /* NON-SPACING CARON (ISO-IR-103 206) (character part) */
+    {'"', ',', 0xe011},   /* NON-SPACING CEDILLA (ISO-IR-103 203) (character part) */
+    {'"', ';', 0xe012},   /* NON-SPACING OGONEK (ISO-IR-103 206) (character part) */
+    {'"', '_', 0xe013},   /* NON-SPACING LOW LINE (ISO-IR-103 204) (character part) */
+    {'"', '=', 0xe014},   /* NON-SPACING DOUBLE LOW LINE (ISO-IR-38 217) (character part) */
+    {'"', '/', 0xe015},   /* NON-SPACING LONG SOLIDUS (ISO-IR-128 201) (character part) */
+    {'"', 'i', 0xe016},   /* GREEK NON-SPACING IOTA BELOW (ISO-IR-55 39) (character part) */
+    {'"', 'd', 0xe017},   /* GREEK NON-SPACING DASIA PNEUMATA (ISO-IR-55 38) (character part) */
+    {'"', 'p', 0xe018},   /* GREEK NON-SPACING PSILI PNEUMATA (ISO-IR-55 37) (character part) */
+    {';', ';', 0xe019},   /* GREEK DASIA PNEUMATA (ISO-IR-18 92) */
+    {',', ',', 0xe01a},   /* GREEK PSILI PNEUMATA (ISO-IR-18 124) */
+    {'b', '3', 0xe01b},   /* GREEK SMALL LETTER MIDDLE BETA (ISO-IR-18 99) */
+    {'C', 'i', 0xe01c},   /* CIRCLE (ISO-IR-83 0294) */
+    {'f', '(', 0xe01d},   /* FUNCTION SIGN (ISO-IR-143 221) */
+    {'e', 'd', 0xe01e},   /* LATIN SMALL LETTER EZH (ISO-IR-158 142) */
+    {'a', 'm', 0xe01f},   /* ANTE MERIDIAM SIGN (ISO-IR-149 0267) */
+    {'p', 'm', 0xe020},   /* POST MERIDIAM SIGN (ISO-IR-149 0268) */
+    {'F', 'l', 0xe023},   /* DUTCH GUILDER SIGN (IBM437 159) */
+    {'G', 'F', 0xe024},   /* GAMMA FUNCTION SIGN (ISO-10646-1DIS 032/032/037/122) */
+    {'>', 'V', 0xe025},   /* RIGHTWARDS VECTOR ABOVE (ISO-10646-1DIS 032/032/038/046) */
+    {'!', '*', 0xe026},   /* GREEK VARIA (ISO-10646-1DIS 032/032/042/164) */
+    {'?', '*', 0xe027},   /* GREEK PERISPOMENI (ISO-10646-1DIS 032/032/042/165) */
+    {'J', '<', 0xe028}    /* LATIN CAPITAL LETTER J WITH CARON (lowercase: 000/000/001/240) */
 };
 
 
@@ -5685,8 +6840,7 @@
   else
     {
       for (i = 0; i < (int)(sizeof(digraphs)/sizeof(*digraphs)); i++)
-	if ((digraphs[i][0] == (unsigned char)buf[0] && digraphs[i][1] == (unsigned char)buf[1]) ||
-	    (digraphs[i][0] == (unsigned char)buf[1] && digraphs[i][1] == (unsigned char)buf[0]))
+	if ((digraphs[i][0] == (unsigned char)buf[0] && digraphs[i][1] == (unsigned char)buf[1]))
 	  break;
       if (i == (int)(sizeof(digraphs)/sizeof(*digraphs)))
 	{
