1#!/usr/local/bin/perl
2
3
4#########################################################################
5# uniquote - escape special characters using various quoting conventions
6#
7# Tom Christiansen <tchrist@perl.com>
8# Sun Feb 27 18:25:14 MST 2011
9#########################################################################
10
11use utf8;
12use 5.10.1;
13use strict;
14use warnings;
15
16use charnames qw[:full];
17
18#################################################################
19
20use Carp qw[ confess cluck ];
21use Getopt::Long qw[ GetOptions ];
22use Pod::Usage;
23
24use File::Basename;
25
26#################################################################
27
28sub main;
29sub atexit(&);
30sub convert_to_U_numbers(_);
31sub convert_to_backslashes(_);
32sub convert_to_bytes(_);
33sub convert_to_hex(_);
34sub convert_to_html4(_);
35sub convert_to_html5(_);
36sub convert_to_names(_);
37sub convert_to_octal(_);
38sub convert_to_xml(_);
39sub debug($);
40sub find_converters();
41sub load_options();
42sub num2name($);
43sub process_input;
44sub set_encoding(*$);
45sub set_traps();
46sub yuck($);
47
48#################################################################
49
50use constant  TOO_MANY_ERRORS => 24;
51
52our %Opt;
53our $VERSION = "1.1";
54our $Errors = 0;
55
56# either non-ASCII, or ASCII controls 'cept newline
57our $Ugly_RX = qr{
58    \P{ASCII} | (?= \p{ASCII} )
59                (?= [^\n]     )
60                \p{Control}
61}x;
62
63# $Ugly_RX = '\S';
64
65#################################################################
66
67main();
68exit($Errors > 0 ? 1 : 0);
69
70#################################################################
71
72sub main {
73    $0 = basename($0);
74
75    set_traps();
76    load_options();
77    prepare_output();
78    process_input();
79}
80
81#################################################################
82
83# utility functions
84
85sub debug($) {
86    return unless $Opt{debug};
87    my $trace_msg = $_[0];
88    print STDERR "$0: [DEBUG] $trace_msg\n";
89}
90
91sub yuck($) {
92    my $errmsg = $_[0];
93    $errmsg =~ s/(?<=[^\n])\z/\n/;
94    print STDERR "$0: $errmsg";
95    if ($Errors++ > TOO_MANY_ERRORS) {
96        panic("too many errors");
97    }
98}
99
100sub panic($) {
101    confess "$0: [INTERNAL ERROR] @_";
102}
103
104sub atexit(&) {
105    my $coderef = shift();
106    eval q{ END { &$coderef } };
107    die if $@;
108}
109
110
111sub set_traps() {
112
113    # give a full stack dump on any untrapped exceptions
114    $SIG{__DIE__} = sub {
115	confess "Uncaught exception: $@" unless $^S;
116    };
117
118    # now promote run-time warnings into stackdumped exceptions
119    #   *unless* we're in an try block, in which
120    #   case just generate a clucking stackdump instead
121    $SIG{__WARN__} = sub {
122	if ($^S) { cluck   "Trapped warning: @_" }
123	else     { confess "Deadly warning: @_"  }
124    };
125
126}
127
128#################################################################
129
130sub prepare_output {
131    atexit { close STDOUT };
132    $| = 1 if $Opt{unbuffer};
133}
134
135#################################################################
136
137sub process_input {
138
139    my $enc;
140
141    if (@ARGV == 0 && -t STDIN && -t STDERR) {
142	print STDERR "$0: reading from stdin, type ^D to end or ^C to kill.\n";
143    }
144
145    sub stringify(_);
146
147    given (%Opt) {
148	when (["octal"])    { *stringify = \&convert_to_octal	  }
149	when (["bytes"])    { *stringify = \&convert_to_bytes	  }
150	when (["hex"]) 	    { *stringify = \&convert_to_hex  	  }
151	when (["html4"])     { *stringify = \&convert_to_html4	  }
152	when (["html5"])     { *stringify = \&convert_to_html5	  }
153	when (["xml"])      { *stringify = \&convert_to_xml	  }
154	when (["names"])    { *stringify = \&convert_to_names	  }
155	default		    { *stringify = \&convert_to_U_numbers }
156    }
157
158
159    unshift(@ARGV, "-") if @ARGV == 0;
160
161FILE:
162
163    for my $quasi_filename (@ARGV) {
164        # don't let magic open make an output handle
165        my $file = $quasi_filename;
166        $file = "standard input" if $file eq q(-);
167
168        debug("opening $file");
169
170        $quasi_filename =~ s/^(?=\s*[>|])/< /;
171
172    # Down the rabbit hole: I'm using filehandle names that match
173    # the handles themselves to aid in debugging message. Silly
174    # perl thinks this is somehow symbolic dereferencing.
175
176        no strict "refs";
177        my $fh = $file;   # is *so* a lexical filehandle! ☺
178        unless (open($fh, $quasi_filename)) {
179            yuck("couldn't open $quasi_filename: $!");
180            next FILE;
181        }
182        set_encoding($fh, $file) || next FILE;
183
184LINE:
185        for(;;) {
186            my $line = eval {
187                use warnings "FATAL" => "all";
188                scalar <$fh>;
189            };
190            if ($@) {
191                $@ =~ s/ at \K.*? line \d+.*/$file line $./;
192                yuck("read failure: $@");
193                if ($. == 0) { last LINE }
194                else         { next LINE }
195            }
196
197            last LINE unless defined $line;
198            last LINE unless length $line;
199
200	    $line =~ s/\R/\n/g if $Opt{"fix-newlines"};
201            if ($Opt{endings}) {
202                $line =~ s/\n\K(?=[^n])/\$/g if $Opt{"fix-newlines"};
203                $line =~ s/$/\$/;
204            }
205
206	    $line = convert_to_backslashes($line) if $Opt{backslash};
207            print stringify($line);
208        } # foreach line
209
210        unless (close $fh) {
211            yuck("couldn't close $quasi_filename at line $.: $!");
212            next FILE;
213        }
214
215    } # foreach file
216
217}
218
219sub num2name($) {
220    my $num  =  shift();
221    my $name =  do {
222        local $SIG{__WARN__} = sub {};
223        charnames::viacode($num);
224    } || sprintf("U+%02X", $num);
225    return $name;
226}
227
228sub set_encoding(*$) {
229    my ($handle, $path) = @_;
230
231    my $enc_name;
232
233    if ( grep { exists $Opt{$_} } qw(bytes octal) ) {
234        $enc_name = "bytes";
235    }
236    elsif (my $enc = $Opt{encoding}) {
237        $enc =~ s/^://;
238        if ( grep { $enc eq $_ } qw(bytes crlf utf8) ) {
239            $enc_name = $enc;
240        } else {
241            $enc_name = "encoding($enc)";
242        }
243    }
244    elsif ($path && $path =~ m{ \. ([^\s.]+) \z }x) {
245        my $ext = $1;
246        require Encode;
247        if (my $enc_obj = Encode::find_encoding($ext)) {
248            my $name = $enc_obj->name;
249            $enc_name = "encoding($name)";
250        }
251    }
252    else {
253        $enc_name = "utf8";
254    }
255
256    debug("setting encoding on $handle to $enc_name") if $enc_name;
257
258    return 1 if eval {
259        use warnings FATAL => "all";
260        no strict "refs";
261        binmode($handle, ":$enc_name") if $enc_name;
262        1;
263    };
264
265    for ($@) {
266        s/ at .* line \d+\.//;
267        s/$/ for $path/;
268    }
269
270    yuck("set_encoding: $@");
271
272    return undef;
273}
274
275sub find_converters() {
276    state $aref = [
277        qw{
278            names hex octal backslash
279            bytes
280            html4
281            html5
282	    xml
283        }
284    ];
285
286    return wantarray() ? @$aref : $aref;
287}
288
289sub convert_to_names(_) {
290    my $string = shift();
291    no warnings "utf8";
292    $string =~ s/($Ugly_RX)/sprintf("\\N{%s}", num2name(ord $1))/ge;
293    return $string;
294}
295
296sub convert_to_backslashes(_) {
297
298    local $_ = shift();
299
300    s,\\,\\\\,g if $Opt{backslashes};
301    s,\0,\\0,g;
302    s,\a,\\a,g;
303    s,\t,\\t,g;
304    s,\r,\\r,g;
305  # s,\n,\\n,g;
306    s,\f,\\f,g;
307    s,\e,\\e,g;
308    s/(?!\n)([\0-\37\177])/sprintf("\\c%s", chr(ord($1) ^ 64))/ge;
309
310    return $_;
311}
312
313
314UNITCHECK {
315
316my %html4_2unicode = (
317
318# Number aliases: these are \p{Other_Number}
319      "sup1" => "SUPERSCRIPT ONE",                            # ¹ U+00B9
320      "sup2" => "SUPERSCRIPT TWO",                            # ² U+00B2
321      "sup3" => "SUPERSCRIPT THREE",                          # ³ U+00B3
322    "frac12" => "VULGAR FRACTION ONE HALF",                   # ½ U+00BD
323    "frac14" => "VULGAR FRACTION ONE QUARTER",                # ¼ U+00BC
324    "frac34" => "VULGAR FRACTION THREE QUARTERS",             # ¾ U+00BE
325
326# Currency sign aliases: \p{Currency_Symbol}
327
328    "curren" => "CURRENCY SIGN",                              # ¤ U+00A4
329      "cent" => "CENT SIGN",                                  # ¢ U+00A2
330     "pound" => "POUND SIGN",                                 # £ U+00A3
331       "yen" => "YEN SIGN",                                   # ¥ U+00A5
332      "euro" => "EURO SIGN",                                  # € U+20AC
333
334# Latin letter aliases in NFC and grouped by first letter
335#
336#   NOTE: some like BLACK LETTER blah and the trademark
337#         symbol are only Latin in NFKD form.
338
339      "ordf" => "FEMININE ORDINAL INDICATOR",                 # ª U+00AA
340    "Aacute" => "LATIN CAPITAL LETTER A WITH ACUTE",          # Á U+00C1
341    "aacute" => "LATIN SMALL LETTER A WITH ACUTE",            # á U+00E1
342    "Agrave" => "LATIN CAPITAL LETTER A WITH GRAVE",          # À U+00C0
343    "agrave" => "LATIN SMALL LETTER A WITH GRAVE",            # à U+00E0
344     "Acirc" => "LATIN CAPITAL LETTER A WITH CIRCUMFLEX",     # Â U+00C2
345     "acirc" => "LATIN SMALL LETTER A WITH CIRCUMFLEX",       # â U+00E2
346     "Aring" => "LATIN CAPITAL LETTER A WITH RING ABOVE",     # Å U+00C5
347     "aring" => "LATIN SMALL LETTER A WITH RING ABOVE",       # å U+00E5
348      "Auml" => "LATIN CAPITAL LETTER A WITH DIAERESIS",      # Ä U+00C4
349      "auml" => "LATIN SMALL LETTER A WITH DIAERESIS",        # ä U+00E4
350    "Atilde" => "LATIN CAPITAL LETTER A WITH TILDE",          # Ã U+00C3
351    "atilde" => "LATIN SMALL LETTER A WITH TILDE",            # ã U+00E3
352     "AElig" => "LATIN CAPITAL LETTER AE",                    # Æ U+00C6
353     "aelig" => "LATIN SMALL LETTER AE",                      # æ U+00E6
354
355    "Ccedil" => "LATIN CAPITAL LETTER C WITH CEDILLA",        # Ç U+00C7
356    "ccedil" => "LATIN SMALL LETTER C WITH CEDILLA",          # ç U+00E7
357
358       "ETH" => "LATIN CAPITAL LETTER ETH",                   # Ð U+00D0
359       "eth" => "LATIN SMALL LETTER ETH",                     # ð U+00F0
360
361    "Eacute" => "LATIN CAPITAL LETTER E WITH ACUTE",          # É U+00C9
362    "eacute" => "LATIN SMALL LETTER E WITH ACUTE",            # é U+00E9
363    "Egrave" => "LATIN CAPITAL LETTER E WITH GRAVE",          # È U+00C8
364    "egrave" => "LATIN SMALL LETTER E WITH GRAVE",            # è U+00E8
365     "Ecirc" => "LATIN CAPITAL LETTER E WITH CIRCUMFLEX",     # Ê U+00CA
366     "ecirc" => "LATIN SMALL LETTER E WITH CIRCUMFLEX",       # ê U+00EA
367      "Euml" => "LATIN CAPITAL LETTER E WITH DIAERESIS",      # Ë U+00CB
368      "euml" => "LATIN SMALL LETTER E WITH DIAERESIS",        # ë U+00EB
369
370      "fnof" => "LATIN SMALL LETTER F WITH HOOK",             # ƒ U+0192
371
372     "image" => "BLACK-LETTER CAPITAL I",                     # ℑ U+2111
373    "Iacute" => "LATIN CAPITAL LETTER I WITH ACUTE",          # Í U+00CD
374    "iacute" => "LATIN SMALL LETTER I WITH ACUTE",            # í U+00ED
375    "Igrave" => "LATIN CAPITAL LETTER I WITH GRAVE",          # Ì U+00CC
376    "igrave" => "LATIN SMALL LETTER I WITH GRAVE",            # ì U+00EC
377     "Icirc" => "LATIN CAPITAL LETTER I WITH CIRCUMFLEX",     # Î U+00CE
378     "icirc" => "LATIN SMALL LETTER I WITH CIRCUMFLEX",       # î U+00EE
379      "Iuml" => "LATIN CAPITAL LETTER I WITH DIAERESIS",      # Ï U+00CF
380      "iuml" => "LATIN SMALL LETTER I WITH DIAERESIS",        # ï U+00EF
381
382    "Ntilde" => "LATIN CAPITAL LETTER N WITH TILDE",          # Ñ U+00D1
383    "ntilde" => "LATIN SMALL LETTER N WITH TILDE",            # ñ U+00F1
384
385      "ordm" => "MASCULINE ORDINAL INDICATOR",                # º U+00BA
386    "Oacute" => "LATIN CAPITAL LETTER O WITH ACUTE",          # Ó U+00D3
387    "oacute" => "LATIN SMALL LETTER O WITH ACUTE",            # ó U+00F3
388    "Ograve" => "LATIN CAPITAL LETTER O WITH GRAVE",          # Ò U+00D2
389    "ograve" => "LATIN SMALL LETTER O WITH GRAVE",            # ò U+00F2
390     "Ocirc" => "LATIN CAPITAL LETTER O WITH CIRCUMFLEX",     # Ô U+00D4
391     "ocirc" => "LATIN SMALL LETTER O WITH CIRCUMFLEX",       # ô U+00F4
392      "Ouml" => "LATIN CAPITAL LETTER O WITH DIAERESIS",      # Ö U+00D6
393      "ouml" => "LATIN SMALL LETTER O WITH DIAERESIS",        # ö U+00F6
394    "Otilde" => "LATIN CAPITAL LETTER O WITH TILDE",          # Õ U+00D5
395    "otilde" => "LATIN SMALL LETTER O WITH TILDE",            # õ U+00F5
396    "Oslash" => "LATIN CAPITAL LETTER O WITH STROKE",         # Ø U+00D8
397    "oslash" => "LATIN SMALL LETTER O WITH STROKE",           # ø U+00F8
398     "OElig" => "LATIN CAPITAL LIGATURE OE",                  # ΠU+0152
399     "oelig" => "LATIN SMALL LIGATURE OE",                    # œ U+0153
400
401      "real" => "BLACK-LETTER CAPITAL R",                     # ℜ U+211C
402
403    "Scaron" => "LATIN CAPITAL LETTER S WITH CARON",          # Š U+0160
404    "scaron" => "LATIN SMALL LETTER S WITH CARON",            # š U+0161
405     "szlig" => "LATIN SMALL LETTER SHARP S",                 # ß U+00DF
406
407     "trade" => "TRADE MARK SIGN",                            # ™ U+2122
408
409    "Uacute" => "LATIN CAPITAL LETTER U WITH ACUTE",          # Ú U+00DA
410    "uacute" => "LATIN SMALL LETTER U WITH ACUTE",            # ú U+00FA
411    "Ugrave" => "LATIN CAPITAL LETTER U WITH GRAVE",          # Ù U+00D9
412    "ugrave" => "LATIN SMALL LETTER U WITH GRAVE",            # ù U+00F9
413     "Ucirc" => "LATIN CAPITAL LETTER U WITH CIRCUMFLEX",     # Û U+00DB
414     "ucirc" => "LATIN SMALL LETTER U WITH CIRCUMFLEX",       # û U+00FB
415      "Uuml" => "LATIN CAPITAL LETTER U WITH DIAERESIS",      # Ü U+00DC
416      "uuml" => "LATIN SMALL LETTER U WITH DIAERESIS",        # ü U+00FC
417
418    "Yacute" => "LATIN CAPITAL LETTER Y WITH ACUTE",          # Ý U+00DD
419    "yacute" => "LATIN SMALL LETTER Y WITH ACUTE",            # ý U+00FD
420      "Yuml" => "LATIN CAPITAL LETTER Y WITH DIAERESIS",      # Ÿ U+0178
421      "yuml" => "LATIN SMALL LETTER Y WITH DIAERESIS",        # ÿ U+00FF
422
423     "THORN" => "LATIN CAPITAL LETTER THORN",                 # Þ U+00DE
424     "thorn" => "LATIN SMALL LETTER THORN",                   # þ U+00FE
425
426# This is *not* the same as the HEBREW LETTER ALEF (aleph),
427# although it is a \p{Other_Letter} not a \p{Symbol}.
428   "alefsym" => "ALEF SYMBOL",                                # ℵ U+2135
429
430# Greek letter aliases, or things that sort with them
431
432     "Alpha" => "GREEK CAPITAL LETTER ALPHA",                 # Α U+0391
433     "alpha" => "GREEK SMALL LETTER ALPHA",                   # α U+03B1
434      "Beta" => "GREEK CAPITAL LETTER BETA",                  # Β U+0392
435      "beta" => "GREEK SMALL LETTER BETA",                    # β U+03B2
436     "Gamma" => "GREEK CAPITAL LETTER GAMMA",                 # Γ U+0393
437     "gamma" => "GREEK SMALL LETTER GAMMA",                   # γ U+03B3
438     "Delta" => "GREEK CAPITAL LETTER DELTA",                 # Δ U+0394
439     "delta" => "GREEK SMALL LETTER DELTA",                   # δ U+03B4
440   "Epsilon" => "GREEK CAPITAL LETTER EPSILON",               # Ε U+0395
441   "epsilon" => "GREEK SMALL LETTER EPSILON",                 # ε U+03B5
442      "Zeta" => "GREEK CAPITAL LETTER ZETA",                  # Ζ U+0396
443      "zeta" => "GREEK SMALL LETTER ZETA",                    # ζ U+03B6
444       "Eta" => "GREEK CAPITAL LETTER ETA",                   # Η U+0397
445       "eta" => "GREEK SMALL LETTER ETA",                     # η U+03B7
446     "Theta" => "GREEK CAPITAL LETTER THETA",                 # Θ U+0398
447  "thetasym" => "GREEK THETA SYMBOL",                         # ϑ U+03D1
448     "theta" => "GREEK SMALL LETTER THETA",                   # θ U+03B8
449      "Iota" => "GREEK CAPITAL LETTER IOTA",                  # Ι U+0399
450      "iota" => "GREEK SMALL LETTER IOTA",                    # ι U+03B9
451     "Kappa" => "GREEK CAPITAL LETTER KAPPA",                 # Κ U+039A
452     "kappa" => "GREEK SMALL LETTER KAPPA",                   # κ U+03BA
453    "Lambda" => "GREEK CAPITAL LETTER LAMDA",                 # Λ U+039B
454    "lambda" => "GREEK SMALL LETTER LAMDA",                   # λ U+03BB
455        "Mu" => "GREEK CAPITAL LETTER MU",                    # Μ U+039C
456     "micro" => "MICRO SIGN",                                 # µ U+00B5
457        "mu" => "GREEK SMALL LETTER MU",                      # μ U+03BC
458        "Nu" => "GREEK CAPITAL LETTER NU",                    # Ν U+039D
459        "nu" => "GREEK SMALL LETTER NU",                      # ν U+03BD
460        "Xi" => "GREEK CAPITAL LETTER XI",                    # Ξ U+039E
461        "xi" => "GREEK SMALL LETTER XI",                      # ξ U+03BE
462   "Omicron" => "GREEK CAPITAL LETTER OMICRON",               # Ο U+039F
463   "omicron" => "GREEK SMALL LETTER OMICRON",                 # ο U+03BF
464        "Pi" => "GREEK CAPITAL LETTER PI",                    # Π U+03A0
465       "piv" => "GREEK PI SYMBOL",                            # ϖ U+03D6
466        "pi" => "GREEK SMALL LETTER PI",                      # π U+03C0
467       "Rho" => "GREEK CAPITAL LETTER RHO",                   # Ρ U+03A1
468       "rho" => "GREEK SMALL LETTER RHO",                     # ρ U+03C1
469     "sigma" => "GREEK SMALL LETTER SIGMA",                   # σ U+03C3
470    "sigmaf" => "GREEK SMALL LETTER FINAL SIGMA",             # ς U+03C2
471       "Tau" => "GREEK CAPITAL LETTER TAU",                   # Τ U+03A4
472       "tau" => "GREEK SMALL LETTER TAU",                     # τ U+03C4
473     "upsih" => "GREEK UPSILON WITH HOOK SYMBOL",             # ϒ U+03D2
474   "Upsilon" => "GREEK CAPITAL LETTER UPSILON",               # Υ U+03A5
475   "upsilon" => "GREEK SMALL LETTER UPSILON",                 # υ U+03C5
476       "Phi" => "GREEK CAPITAL LETTER PHI",                   # Φ U+03A6
477       "phi" => "GREEK SMALL LETTER PHI",                     # φ U+03C6
478       "Chi" => "GREEK CAPITAL LETTER CHI",                   # Χ U+03A7
479       "chi" => "GREEK SMALL LETTER CHI",                     # χ U+03C7
480       "Psi" => "GREEK CAPITAL LETTER PSI",                   # Ψ U+03A8
481       "psi" => "GREEK SMALL LETTER PSI",                     # ψ U+03C8
482     "Omega" => "GREEK CAPITAL LETTER OMEGA",                 # Ω U+03A9
483     "omega" => "GREEK SMALL LETTER OMEGA",                   # ω U+03C9
484
485# \p{Format} characters
486
487       "zwj" => "ZERO WIDTH JOINER",                          # ‍ U+200D
488      "zwnj" => "ZERO WIDTH NON-JOINER",                      # ‌ U+200C
489       "rlm" => "RIGHT-TO-LEFT MARK",                         # ‏ U+200F
490       "lrm" => "LEFT-TO-RIGHT MARK",                         # ‎ U+200E
491
492# Various punctuation and symbols in UCA order.
493# None of these is a combining Mark.
494
495     "oline" => "OVERLINE",                                   # ‾ U+203E
496      "ensp" => "EN SPACE",                                   #   U+2002
497      "nbsp" => "NO-BREAK SPACE",                             #   U+00A0
498     "cedil" => "CEDILLA",                                    # ¸ U+00B8
499       "uml" => "DIAERESIS",                                  # ¨ U+00A8
500     "acute" => "ACUTE ACCENT",                               # ´ U+00B4
501     "tilde" => "SMALL TILDE",                                # ˜ U+02DC
502      "emsp" => "EM SPACE",                                   #   U+2003
503      "macr" => "MACRON",                                     # ¯ U+00AF
504    "thinsp" => "THIN SPACE",                                 #   U+2009
505       "shy" => "SOFT HYPHEN",                                # ­ U+00AD
506     "ndash" => "EN DASH",                                    # – U+2013
507     "mdash" => "EM DASH",                                    # — U+2014
508     "iexcl" => "INVERTED EXCLAMATION MARK",                  # ¡ U+00A1
509    "iquest" => "INVERTED QUESTION MARK",                     # ¿ U+00BF
510    "hellip" => "HORIZONTAL ELLIPSIS",                        # … U+2026
511    "middot" => "MIDDLE DOT",                                 # · U+00B7
512      "apos" => "APOSTROPHE",                                 # ' U+0027
513     "lsquo" => "LEFT SINGLE QUOTATION MARK",                 # ‘ U+2018
514     "rsquo" => "RIGHT SINGLE QUOTATION MARK",                # ’ U+2019
515     "sbquo" => "SINGLE LOW-9 QUOTATION MARK",                # ‚ U+201A
516    "lsaquo" => "SINGLE LEFT-POINTING ANGLE QUOTATION MARK",  # ‹ U+2039
517    "rsaquo" => "SINGLE RIGHT-POINTING ANGLE QUOTATION MARK", # › U+203A
518      "quot" => "QUOTATION MARK",                             # " U+0022
519     "ldquo" => "LEFT DOUBLE QUOTATION MARK",                 # “ U+201C
520     "rdquo" => "RIGHT DOUBLE QUOTATION MARK",                # ” U+201D
521     "bdquo" => "DOUBLE LOW-9 QUOTATION MARK",                # „ U+201E
522     "laquo" => "LEFT-POINTING DOUBLE ANGLE QUOTATION MARK",  # « U+00AB
523     "raquo" => "RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK", # » U+00BB
524      "lang" => "LEFT-POINTING ANGLE BRACKET",                # 〈 U+2329
525      "rang" => "RIGHT-POINTING ANGLE BRACKET",               # 〉 U+232A
526      "sect" => "SECTION SIGN",                               # § U+00A7
527      "para" => "PILCROW SIGN",                               # ¶ U+00B6
528      "copy" => "COPYRIGHT SIGN",                             # © U+00A9
529       "reg" => "REGISTERED SIGN",                            # ® U+00AE
530     "frasl" => "FRACTION SLASH",                             # ⁄ U+2044
531       "amp" => "AMPERSAND",                                  # & U+0026
532    "permil" => "PER MILLE SIGN",                             # ‰ U+2030
533    "dagger" => "DAGGER",                                     # † U+2020
534    "Dagger" => "DOUBLE DAGGER",                              # ‡ U+2021
535      "bull" => "BULLET",                                     # • U+2022
536     "prime" => "PRIME",                                      # ′ U+2032
537     "Prime" => "DOUBLE PRIME",                               # ″ U+2033
538      "circ" => "MODIFIER LETTER CIRCUMFLEX ACCENT",          # ˆ U+02C6
539       "deg" => "DEGREE SIGN",                                # ° U+00B0
540    "weierp" => "SCRIPT CAPITAL P",                           # ℘ U+2118
541      "larr" => "LEFTWARDS ARROW",                            # ← U+2190
542      "rarr" => "RIGHTWARDS ARROW",                           # → U+2192
543      "uarr" => "UPWARDS ARROW",                              # ↑ U+2191
544      "darr" => "DOWNWARDS ARROW",                            # ↓ U+2193
545      "harr" => "LEFT RIGHT ARROW",                           # ↔ U+2194
546     "crarr" => "DOWNWARDS ARROW WITH CORNER LEFTWARDS",      # ↵ U+21B5
547      "lArr" => "LEFTWARDS DOUBLE ARROW",                     # ⇐ U+21D0
548      "uArr" => "UPWARDS DOUBLE ARROW",                       # ⇑ U+21D1
549      "rArr" => "RIGHTWARDS DOUBLE ARROW",                    # ⇒ U+21D2
550      "dArr" => "DOWNWARDS DOUBLE ARROW",                     # ⇓ U+21D3
551      "hArr" => "LEFT RIGHT DOUBLE ARROW",                    # ⇔ U+21D4
552    "forall" => "FOR ALL",                                    # ∀ U+2200
553      "part" => "PARTIAL DIFFERENTIAL",                       # ∂ U+2202
554     "exist" => "THERE EXISTS",                               # ∃ U+2203
555     "empty" => "EMPTY SET",                                  # ∅ U+2205
556     "nabla" => "NABLA",                                      # ∇ U+2207
557      "isin" => "ELEMENT OF",                                 # ∈ U+2208
558     "notin" => "NOT AN ELEMENT OF",                          # ∉ U+2209
559        "ni" => "CONTAINS AS MEMBER",                         # ∋ U+220B
560      "prod" => "N-ARY PRODUCT",                              # ∏ U+220F
561       "sum" => "N-ARY SUMMATION",                            # ∑ U+2211
562    "plusmn" => "PLUS-MINUS SIGN",                            # ± U+00B1
563    "divide" => "DIVISION SIGN",                              # ÷ U+00F7
564     "times" => "MULTIPLICATION SIGN",                        # × U+00D7
565        "lt" => "LESS-THAN SIGN",                             # < U+003C
566        "ne" => "NOT EQUAL TO",                               # ≠ U+2260
567        "gt" => "GREATER-THAN SIGN",                          # > U+003E
568       "not" => "NOT SIGN",                                   # ¬ U+00AC
569    "brvbar" => "BROKEN BAR",                                 # ¦ U+00A6
570     "minus" => "MINUS SIGN",                                 # − U+2212
571    "lowast" => "ASTERISK OPERATOR",                          # ∗ U+2217
572     "radic" => "SQUARE ROOT",                                # √ U+221A
573      "prop" => "PROPORTIONAL TO",                            # ∝ U+221D
574     "infin" => "INFINITY",                                   # ∞ U+221E
575       "ang" => "ANGLE",                                      # ∠ U+2220
576       "and" => "LOGICAL AND",                                # ∧ U+2227
577        "or" => "LOGICAL OR",                                 # ∨ U+2228
578       "cap" => "INTERSECTION",                               # ∩ U+2229
579       "cup" => "UNION",                                      # ∪ U+222A
580       "int" => "INTEGRAL",                                   # ∫ U+222B
581    "there4" => "THEREFORE",                                  # ∴ U+2234
582       "sim" => "TILDE OPERATOR",                             # ∼ U+223C
583      "cong" => "APPROXIMATELY EQUAL TO",                     # ≅ U+2245
584     "asymp" => "ALMOST EQUAL TO",                            # ≈ U+2248
585     "equiv" => "IDENTICAL TO",                               # ≡ U+2261
586        "le" => "LESS-THAN OR EQUAL TO",                      # ≤ U+2264
587        "ge" => "GREATER-THAN OR EQUAL TO",                   # ≥ U+2265
588       "sub" => "SUBSET OF",                                  # ⊂ U+2282
589      "nsub" => "NOT A SUBSET OF",                            # ⊄ U+2284
590       "sup" => "SUPERSET OF",                                # ⊃ U+2283
591      "sube" => "SUBSET OF OR EQUAL TO",                      # ⊆ U+2286
592      "supe" => "SUPERSET OF OR EQUAL TO",                    # ⊇ U+2287
593     "oplus" => "CIRCLED PLUS",                               # ⊕ U+2295
594    "otimes" => "CIRCLED TIMES",                              # ⊗ U+2297
595      "perp" => "UP TACK",                                    # ⊥ U+22A5
596      "sdot" => "DOT OPERATOR",                               # ⋅ U+22C5
597     "lceil" => "LEFT CEILING",                               # ⌈ U+2308
598     "rceil" => "RIGHT CEILING",                              # ⌉ U+2309
599    "lfloor" => "LEFT FLOOR",                                 # ⌊ U+230A
600    "rfloor" => "RIGHT FLOOR",                                # ⌋ U+230B
601       "loz" => "LOZENGE",                                    # ◊ U+25CA
602    "spades" => "BLACK SPADE SUIT",                           # ♠ U+2660
603     "clubs" => "BLACK CLUB SUIT",                            # ♣ U+2663
604    "hearts" => "BLACK HEART SUIT",                           # ♥ U+2665
605     "diams" => "BLACK DIAMOND SUIT",                         # ♦ U+2666
606);
607
608my %html5_2unicode = (
609	   "curren" => "\N{CURRENCY SIGN}",	# ¤
610	     "cent" => "\N{CENT SIGN}",	# ¢
611	   "dollar" => q($),	# $
612	    "pound" => "\N{POUND SIGN}",	# £
613	      "yen" => "\N{YEN SIGN}",	# ¥
614	     "euro" => "\N{EURO SIGN}",	# €
615
616	     "sup1" => "\N{SUPERSCRIPT ONE}",	# ¹
617	     "sup2" => "\N{SUPERSCRIPT TWO}",	# ²
618	     "sup3" => "\N{SUPERSCRIPT THREE}",	# ³
619
620	   "frac12" => "\N{VULGAR FRACTION ONE HALF}",	# ½
621	     "half" => "\N{VULGAR FRACTION ONE HALF}",	# ½
622	   "frac13" => "\N{VULGAR FRACTION ONE THIRD}",	# ⅓
623	   "frac14" => "\N{VULGAR FRACTION ONE QUARTER}",	# ¼
624	   "frac15" => "\N{VULGAR FRACTION ONE FIFTH}",	# ⅕
625	   "frac16" => "\N{VULGAR FRACTION ONE SIXTH}",	# ⅙
626	   "frac18" => "\N{VULGAR FRACTION ONE EIGHTH}",	# ⅛
627	   "frac23" => "\N{VULGAR FRACTION TWO THIRDS}",	# ⅔
628	   "frac25" => "\N{VULGAR FRACTION TWO FIFTHS}",	# ⅖
629	   "frac34" => "\N{VULGAR FRACTION THREE QUARTERS}",	# ¾
630	   "frac35" => "\N{VULGAR FRACTION THREE FIFTHS}",	# ⅗
631	   "frac38" => "\N{VULGAR FRACTION THREE EIGHTHS}",	# ⅜
632	   "frac45" => "\N{VULGAR FRACTION FOUR FIFTHS}",	# ⅘
633	   "frac56" => "\N{VULGAR FRACTION FIVE SIXTHS}",	# ⅚
634	   "frac58" => "\N{VULGAR FRACTION FIVE EIGHTHS}",	# ⅝
635	   "frac78" => "\N{VULGAR FRACTION SEVEN EIGHTHS}",	# ⅞
636
637	     "Aopf" => "\N{MATHEMATICAL DOUBLE-STRUCK CAPITAL A}",	# ��
638	      "Afr" => "\N{MATHEMATICAL FRAKTUR CAPITAL A}",	# ��
639	     "Ascr" => "\N{MATHEMATICAL SCRIPT CAPITAL A}",	# ��
640	     "aopf" => "\N{MATHEMATICAL DOUBLE-STRUCK SMALL A}",	# ��
641	      "afr" => "\N{MATHEMATICAL FRAKTUR SMALL A}",	# ��
642	     "ascr" => "\N{MATHEMATICAL SCRIPT SMALL A}",	# ��
643	   "Atilde" => "\N{LATIN CAPITAL LETTER A WITH TILDE}",	# Ã
644	   "atilde" => "\N{LATIN SMALL LETTER A WITH TILDE}",	# ã
645	    "AElig" => "\N{LATIN CAPITAL LETTER AE}",	# Æ
646	    "aelig" => "\N{LATIN SMALL LETTER AE}",	# æ
647	   "Aacute" => "\N{LATIN CAPITAL LETTER A WITH ACUTE}",	# Á
648	   "aacute" => "\N{LATIN SMALL LETTER A WITH ACUTE}",	# á
649	   "Agrave" => "\N{LATIN CAPITAL LETTER A WITH GRAVE}",	# À
650	   "agrave" => "\N{LATIN SMALL LETTER A WITH GRAVE}",	# à
651	   "Abreve" => "\N{LATIN CAPITAL LETTER A WITH BREVE}",	# Ă
652	   "abreve" => "\N{LATIN SMALL LETTER A WITH BREVE}",	# ă
653	    "Aring" => "\N{LATIN CAPITAL LETTER A WITH RING ABOVE}",	# Å
654	    "angst" => "\N{LATIN CAPITAL LETTER A WITH RING ABOVE}",	# Å
655	    "aring" => "\N{LATIN SMALL LETTER A WITH RING ABOVE}",	# å
656	    "Aogon" => "\N{LATIN CAPITAL LETTER A WITH OGONEK}",	# Ą
657	    "aogon" => "\N{LATIN SMALL LETTER A WITH OGONEK}",	# ą
658	    "Amacr" => "\N{LATIN CAPITAL LETTER A WITH MACRON}",	# Ā
659	    "amacr" => "\N{LATIN SMALL LETTER A WITH MACRON}",	# ā
660	     "ordf" => "\N{FEMININE ORDINAL INDICATOR}",	# ª
661	     "Auml" => "\N{LATIN CAPITAL LETTER A WITH DIAERESIS}",	# Ä
662	     "auml" => "\N{LATIN SMALL LETTER A WITH DIAERESIS}",	# ä
663	    "iiota" => "\N{TURNED GREEK SMALL LETTER IOTA}",	# ℩
664	    "Acirc" => "\N{LATIN CAPITAL LETTER A WITH CIRCUMFLEX}",	# Â
665	    "acirc" => "\N{LATIN SMALL LETTER A WITH CIRCUMFLEX}",	# â
666
667	     "Bopf" => "\N{MATHEMATICAL DOUBLE-STRUCK CAPITAL B}",	# ��
668	      "Bfr" => "\N{MATHEMATICAL FRAKTUR CAPITAL B}",	# ��
669	     "Bscr" => "\N{SCRIPT CAPITAL B}",	# ℬ
670       "Bernoullis" => "\N{SCRIPT CAPITAL B}",	# ℬ
671	   "bernou" => "\N{SCRIPT CAPITAL B}",	# ℬ
672	     "bopf" => "\N{MATHEMATICAL DOUBLE-STRUCK SMALL B}",	# ��
673	      "bfr" => "\N{MATHEMATICAL FRAKTUR SMALL B}",	# ��
674	     "bscr" => "\N{MATHEMATICAL SCRIPT SMALL B}",	# ��
675
676	   "Ccedil" => "\N{LATIN CAPITAL LETTER C WITH CEDILLA}",	# Ç
677	   "ccedil" => "\N{LATIN SMALL LETTER C WITH CEDILLA}",	# ç
678	     "Copf" => "\N{DOUBLE-STRUCK CAPITAL C}",	# ℂ
679	"complexes" => "\N{DOUBLE-STRUCK CAPITAL C}",	# ℂ
680	      "Cfr" => "\N{BLACK-LETTER CAPITAL C}",	# ℭ
681	  "Cayleys" => "\N{BLACK-LETTER CAPITAL C}",	# ℭ
682	     "Cscr" => "\N{MATHEMATICAL SCRIPT CAPITAL C}",	# ��
683	     "copf" => "\N{MATHEMATICAL DOUBLE-STRUCK SMALL C}",	# ��
684	      "cfr" => "\N{MATHEMATICAL FRAKTUR SMALL C}",	# ��
685	     "cscr" => "\N{MATHEMATICAL SCRIPT SMALL C}",	# ��
686	   "Cacute" => "\N{LATIN CAPITAL LETTER C WITH ACUTE}",	# Ć
687	   "cacute" => "\N{LATIN SMALL LETTER C WITH ACUTE}",	# ć
688	     "Cdot" => "\N{LATIN CAPITAL LETTER C WITH DOT ABOVE}",	# Ċ
689	     "cdot" => "\N{LATIN SMALL LETTER C WITH DOT ABOVE}",	# ċ
690	   "homtht" => "\N{HOMOTHETIC}",	# ∻
691	   "Ccaron" => "\N{LATIN CAPITAL LETTER C WITH CARON}",	# Č
692	   "ccaron" => "\N{LATIN SMALL LETTER C WITH CARON}",	# č
693	   "incare" => "\N{CARE OF}",	# ℅
694	  "angrtvb" => "\N{RIGHT ANGLE WITH ARC}",	# ⊾
695	 "profline" => "\N{ARC}",	# ⌒
696	    "Ccirc" => "\N{LATIN CAPITAL LETTER C WITH CIRCUMFLEX}",	# Ĉ
697	    "ccirc" => "\N{LATIN SMALL LETTER C WITH CIRCUMFLEX}",	# ĉ
698
699	       "DD" => "\N{DOUBLE-STRUCK ITALIC CAPITAL D}",	# ⅅ
700    "CapitalDifferentialD" => "\N{DOUBLE-STRUCK ITALIC CAPITAL D}",	# ⅅ
701	     "Dopf" => "\N{MATHEMATICAL DOUBLE-STRUCK CAPITAL D}",	# ��
702	      "Dfr" => "\N{MATHEMATICAL FRAKTUR CAPITAL D}",	# ��
703	     "Dscr" => "\N{MATHEMATICAL SCRIPT CAPITAL D}",	# ��
704	       "dd" => "\N{DOUBLE-STRUCK ITALIC SMALL D}",	# ⅆ
705    "DifferentialD" => "\N{DOUBLE-STRUCK ITALIC SMALL D}",	# ⅆ
706	     "dopf" => "\N{MATHEMATICAL DOUBLE-STRUCK SMALL D}",	# ��
707	      "dfr" => "\N{MATHEMATICAL FRAKTUR SMALL D}",	# ��
708	     "dscr" => "\N{MATHEMATICAL SCRIPT SMALL D}",	# ��
709	   "Dstrok" => "\N{LATIN CAPITAL LETTER D WITH STROKE}",	# Đ
710	   "dstrok" => "\N{LATIN SMALL LETTER D WITH STROKE}",	# đ
711	      "ETH" => "\N{LATIN CAPITAL LETTER ETH}",	# Ð
712	      "eth" => "\N{LATIN SMALL LETTER ETH}",	# ð
713	   "Dcaron" => "\N{LATIN CAPITAL LETTER D WITH CARON}",	# Ď
714	   "dcaron" => "\N{LATIN SMALL LETTER D WITH CARON}",	# ď
715
716	     "Eopf" => "\N{MATHEMATICAL DOUBLE-STRUCK CAPITAL E}",	# ��
717	      "Efr" => "\N{MATHEMATICAL FRAKTUR CAPITAL E}",	# ��
718      "expectation" => "\N{SCRIPT CAPITAL E}",	# ℰ
719	     "Escr" => "\N{SCRIPT CAPITAL E}",	# ℰ
720	       "ee" => "\N{DOUBLE-STRUCK ITALIC SMALL E}",	# ⅇ
721     "exponentiale" => "\N{DOUBLE-STRUCK ITALIC SMALL E}",	# ⅇ
722     "ExponentialE" => "\N{DOUBLE-STRUCK ITALIC SMALL E}",	# ⅇ
723	     "eopf" => "\N{MATHEMATICAL DOUBLE-STRUCK SMALL E}",	# ��
724	      "efr" => "\N{MATHEMATICAL FRAKTUR SMALL E}",	# ��
725	     "escr" => "\N{SCRIPT SMALL E}",	# ℯ
726	   "Eacute" => "\N{LATIN CAPITAL LETTER E WITH ACUTE}",	# É
727	   "eacute" => "\N{LATIN SMALL LETTER E WITH ACUTE}",	# é
728	   "Egrave" => "\N{LATIN CAPITAL LETTER E WITH GRAVE}",	# È
729	   "egrave" => "\N{LATIN SMALL LETTER E WITH GRAVE}",	# è
730	     "Edot" => "\N{LATIN CAPITAL LETTER E WITH DOT ABOVE}",	# Ė
731	     "edot" => "\N{LATIN SMALL LETTER E WITH DOT ABOVE}",	# ė
732	    "Eogon" => "\N{LATIN CAPITAL LETTER E WITH OGONEK}",	# Ę
733	    "eogon" => "\N{LATIN SMALL LETTER E WITH OGONEK}",	# ę
734	     "Euml" => "\N{LATIN CAPITAL LETTER E WITH DIAERESIS}",	# Ë
735	     "euml" => "\N{LATIN SMALL LETTER E WITH DIAERESIS}",	# ë
736	    "Ecirc" => "\N{LATIN CAPITAL LETTER E WITH CIRCUMFLEX}",	# Ê
737	    "ecirc" => "\N{LATIN SMALL LETTER E WITH CIRCUMFLEX}",	# ê
738
739	    "fflig" => "\N{LATIN SMALL LIGATURE FF}",	# ff
740	   "ffilig" => "\N{LATIN SMALL LIGATURE FFI}",	# ffi
741	     "Fopf" => "\N{MATHEMATICAL DOUBLE-STRUCK CAPITAL F}",	# ��
742	      "Ffr" => "\N{MATHEMATICAL FRAKTUR CAPITAL F}",	# ��
743       "Fouriertrf" => "\N{SCRIPT CAPITAL F}",	# ℱ
744	     "Fscr" => "\N{SCRIPT CAPITAL F}",	# ℱ
745	     "fopf" => "\N{MATHEMATICAL DOUBLE-STRUCK SMALL F}",	# ��
746	      "ffr" => "\N{MATHEMATICAL FRAKTUR SMALL F}",	# ��
747	     "fscr" => "\N{MATHEMATICAL SCRIPT SMALL F}",	# ��
748	   "ffllig" => "\N{LATIN SMALL LIGATURE FFL}",	# ffl
749	    "filig" => "\N{LATIN SMALL LIGATURE FI}",	# fi
750	    "fllig" => "\N{LATIN SMALL LIGATURE FL}",	# fl
751	     "fnof" => "\N{LATIN SMALL LETTER F WITH HOOK}",	# ƒ
752	    "fjlig" => "fj",	# fj
753
754	   "Gcedil" => "\N{LATIN CAPITAL LETTER G WITH CEDILLA}",	# Ģ
755	   "gacute" => "\N{LATIN SMALL LETTER G WITH ACUTE}",	# ǵ
756	   "Gbreve" => "\N{LATIN CAPITAL LETTER G WITH BREVE}",	# Ğ
757	   "gbreve" => "\N{LATIN SMALL LETTER G WITH BREVE}",	# ğ
758	     "Gdot" => "\N{LATIN CAPITAL LETTER G WITH DOT ABOVE}",	# Ġ
759	     "gdot" => "\N{LATIN SMALL LETTER G WITH DOT ABOVE}",	# ġ
760	     "Gopf" => "\N{MATHEMATICAL DOUBLE-STRUCK CAPITAL G}",	# ��
761	      "Gfr" => "\N{MATHEMATICAL FRAKTUR CAPITAL G}",	# ��
762	     "Gscr" => "\N{MATHEMATICAL SCRIPT CAPITAL G}",	# ��
763	     "gopf" => "\N{MATHEMATICAL DOUBLE-STRUCK SMALL G}",	# ��
764	      "gfr" => "\N{MATHEMATICAL FRAKTUR SMALL G}",	# ��
765	     "gscr" => "\N{SCRIPT SMALL G}",	# ℊ
766	    "Gcirc" => "\N{LATIN CAPITAL LETTER G WITH CIRCUMFLEX}",	# Ĝ
767	    "gcirc" => "\N{LATIN SMALL LETTER G WITH CIRCUMFLEX}",	# ĝ
768
769	   "Hstrok" => "\N{LATIN CAPITAL LETTER H WITH STROKE}",	# Ħ
770	   "hstrok" => "\N{LATIN SMALL LETTER H WITH STROKE}",	# ħ
771	     "Hopf" => "\N{DOUBLE-STRUCK CAPITAL H}",	# ℍ
772      "quaternions" => "\N{DOUBLE-STRUCK CAPITAL H}",	# ℍ
773    "Poincareplane" => "\N{BLACK-LETTER CAPITAL H}",	# ℌ
774	      "Hfr" => "\N{BLACK-LETTER CAPITAL H}",	# ℌ
775     "HilbertSpace" => "\N{SCRIPT CAPITAL H}",	# ℋ
776	     "Hscr" => "\N{SCRIPT CAPITAL H}",	# ℋ
777	   "hamilt" => "\N{SCRIPT CAPITAL H}",	# ℋ
778	     "hopf" => "\N{MATHEMATICAL DOUBLE-STRUCK SMALL H}",	# ��
779	      "hfr" => "\N{MATHEMATICAL FRAKTUR SMALL H}",	# ��
780	     "hscr" => "\N{MATHEMATICAL SCRIPT SMALL H}",	# ��
781	   "hslash" => "\N{PLANCK CONSTANT OVER TWO PI}",	# ℏ
782	   "planck" => "\N{PLANCK CONSTANT OVER TWO PI}",	# ℏ
783	     "hbar" => "\N{PLANCK CONSTANT OVER TWO PI}",	# ℏ
784	   "plankv" => "\N{PLANCK CONSTANT OVER TWO PI}",	# ℏ
785	  "planckh" => "\N{PLANCK CONSTANT}",	# ℎ
786	    "Hcirc" => "\N{LATIN CAPITAL LETTER H WITH CIRCUMFLEX}",	# Ĥ
787	    "hcirc" => "\N{LATIN SMALL LETTER H WITH CIRCUMFLEX}",	# ĥ
788
789	   "Itilde" => "\N{LATIN CAPITAL LETTER I WITH TILDE}",	# Ĩ
790	   "itilde" => "\N{LATIN SMALL LETTER I WITH TILDE}",	# ĩ
791	   "Iacute" => "\N{LATIN CAPITAL LETTER I WITH ACUTE}",	# Í
792	   "iacute" => "\N{LATIN SMALL LETTER I WITH ACUTE}",	# í
793	   "Igrave" => "\N{LATIN CAPITAL LETTER I WITH GRAVE}",	# Ì
794	   "igrave" => "\N{LATIN SMALL LETTER I WITH GRAVE}",	# ì
795	     "Idot" => "\N{LATIN CAPITAL LETTER I WITH DOT ABOVE}",	# İ
796	     "Iopf" => "\N{MATHEMATICAL DOUBLE-STRUCK CAPITAL I}",	# ��
797	    "image" => "\N{BLACK-LETTER CAPITAL I}",	# ℑ
798	       "Im" => "\N{BLACK-LETTER CAPITAL I}",	# ℑ
799	      "Ifr" => "\N{BLACK-LETTER CAPITAL I}",	# ℑ
800	 "imagpart" => "\N{BLACK-LETTER CAPITAL I}",	# ℑ
801	 "imagline" => "\N{SCRIPT CAPITAL I}",	# ℐ
802	     "Iscr" => "\N{SCRIPT CAPITAL I}",	# ℐ
803	       "ii" => "\N{DOUBLE-STRUCK ITALIC SMALL I}",	# ⅈ
804       "ImaginaryI" => "\N{DOUBLE-STRUCK ITALIC SMALL I}",	# ⅈ
805	     "iopf" => "\N{MATHEMATICAL DOUBLE-STRUCK SMALL I}",	# ��
806	      "ifr" => "\N{MATHEMATICAL FRAKTUR SMALL I}",	# ��
807	     "iscr" => "\N{MATHEMATICAL SCRIPT SMALL I}",	# ��
808	    "IJlig" => "\N{LATIN CAPITAL LIGATURE IJ}",	# IJ
809	    "ijlig" => "\N{LATIN SMALL LIGATURE IJ}",	# ij
810	    "Iogon" => "\N{LATIN CAPITAL LETTER I WITH OGONEK}",	# Į
811	    "iogon" => "\N{LATIN SMALL LETTER I WITH OGONEK}",	# į
812	    "Imacr" => "\N{LATIN CAPITAL LETTER I WITH MACRON}",	# Ī
813	    "imacr" => "\N{LATIN SMALL LETTER I WITH MACRON}",	# ī
814	     "Iuml" => "\N{LATIN CAPITAL LETTER I WITH DIAERESIS}",	# Ï
815	     "iuml" => "\N{LATIN SMALL LETTER I WITH DIAERESIS}",	# ï
816	    "Icirc" => "\N{LATIN CAPITAL LETTER I WITH CIRCUMFLEX}",	# Î
817	    "icirc" => "\N{LATIN SMALL LETTER I WITH CIRCUMFLEX}",	# î
818	    "imath" => "\N{LATIN SMALL LETTER DOTLESS I}",	# ı
819	   "inodot" => "\N{LATIN SMALL LETTER DOTLESS I}",	# ı
820
821	     "Jopf" => "\N{MATHEMATICAL DOUBLE-STRUCK CAPITAL J}",	# ��
822	      "Jfr" => "\N{MATHEMATICAL FRAKTUR CAPITAL J}",	# ��
823	     "Jscr" => "\N{MATHEMATICAL SCRIPT CAPITAL J}",	# ��
824	     "jopf" => "\N{MATHEMATICAL DOUBLE-STRUCK SMALL J}",	# ��
825	      "jfr" => "\N{MATHEMATICAL FRAKTUR SMALL J}",	# ��
826	     "jscr" => "\N{MATHEMATICAL SCRIPT SMALL J}",	# ��
827	    "Jcirc" => "\N{LATIN CAPITAL LETTER J WITH CIRCUMFLEX}",	# Ĵ
828	    "jcirc" => "\N{LATIN SMALL LETTER J WITH CIRCUMFLEX}",	# ĵ
829	    "jmath" => "\N{LATIN SMALL LETTER DOTLESS J}",	# ȷ
830
831	   "Kcedil" => "\N{LATIN CAPITAL LETTER K WITH CEDILLA}",	# Ķ
832	   "kcedil" => "\N{LATIN SMALL LETTER K WITH CEDILLA}",	# ķ
833	     "Kopf" => "\N{MATHEMATICAL DOUBLE-STRUCK CAPITAL K}",	# ��
834	      "Kfr" => "\N{MATHEMATICAL FRAKTUR CAPITAL K}",	# ��
835	     "Kscr" => "\N{MATHEMATICAL SCRIPT CAPITAL K}",	# ��
836	     "kopf" => "\N{MATHEMATICAL DOUBLE-STRUCK SMALL K}",	# ��
837	      "kfr" => "\N{MATHEMATICAL FRAKTUR SMALL K}",	# ��
838	     "kscr" => "\N{MATHEMATICAL SCRIPT SMALL K}",	# ��
839
840	   "Lcedil" => "\N{LATIN CAPITAL LETTER L WITH CEDILLA}",	# Ļ
841	   "lcedil" => "\N{LATIN SMALL LETTER L WITH CEDILLA}",	# ļ
842	   "Lstrok" => "\N{LATIN CAPITAL LETTER L WITH STROKE}",	# Ł
843	   "lstrok" => "\N{LATIN SMALL LETTER L WITH STROKE}",	# ł
844	   "Lacute" => "\N{LATIN CAPITAL LETTER L WITH ACUTE}",	# Ĺ
845	   "lacute" => "\N{LATIN SMALL LETTER L WITH ACUTE}",	# ĺ
846	     "Lopf" => "\N{MATHEMATICAL DOUBLE-STRUCK CAPITAL L}",	# ��
847	      "Lfr" => "\N{MATHEMATICAL FRAKTUR CAPITAL L}",	# ��
848       "Laplacetrf" => "\N{SCRIPT CAPITAL L}",	# ℒ
849	   "lagran" => "\N{SCRIPT CAPITAL L}",	# ℒ
850	     "Lscr" => "\N{SCRIPT CAPITAL L}",	# ℒ
851	     "lopf" => "\N{MATHEMATICAL DOUBLE-STRUCK SMALL L}",	# ��
852	      "lfr" => "\N{MATHEMATICAL FRAKTUR SMALL L}",	# ��
853	     "lscr" => "\N{MATHEMATICAL SCRIPT SMALL L}",	# ��
854	      "ell" => "\N{SCRIPT SMALL L}",	# ℓ
855	   "Lcaron" => "\N{LATIN CAPITAL LETTER L WITH CARON}",	# Ľ
856	   "lcaron" => "\N{LATIN SMALL LETTER L WITH CARON}",	# ľ
857	   "Lmidot" => "\N{LATIN CAPITAL LETTER L WITH MIDDLE DOT}",	# Ŀ
858	   "lmidot" => "\N{LATIN SMALL LETTER L WITH MIDDLE DOT}",	# ŀ
859
860	    "Ocirc" => "\N{LATIN CAPITAL LETTER O WITH CIRCUMFLEX}",	# Ô
861	    "ocirc" => "\N{LATIN SMALL LETTER O WITH CIRCUMFLEX}",	# ô
862
863	    "Scirc" => "\N{LATIN CAPITAL LETTER S WITH CIRCUMFLEX}",	# Ŝ
864	    "scirc" => "\N{LATIN SMALL LETTER S WITH CIRCUMFLEX}",	# ŝ
865	       "ac" => "\N{INVERTED LAZY S}",	# ∾
866	   "mstpos" => "\N{INVERTED LAZY S}",	# ∾
867
868	   "Tcedil" => "\N{LATIN CAPITAL LETTER T WITH CEDILLA}",	# Ţ
869	   "tcedil" => "\N{LATIN SMALL LETTER T WITH CEDILLA}",	# ţ
870	     "Topf" => "\N{MATHEMATICAL DOUBLE-STRUCK CAPITAL T}",	# ��
871	      "Tfr" => "\N{MATHEMATICAL FRAKTUR CAPITAL T}",	# ��
872	     "Tscr" => "\N{MATHEMATICAL SCRIPT CAPITAL T}",	# ��
873	     "topf" => "\N{MATHEMATICAL DOUBLE-STRUCK SMALL T}",	# ��
874	      "tfr" => "\N{MATHEMATICAL FRAKTUR SMALL T}",	# ��
875	     "tscr" => "\N{MATHEMATICAL SCRIPT SMALL T}",	# ��
876	   "Tstrok" => "\N{LATIN CAPITAL LETTER T WITH STROKE}",	# Ŧ
877	   "tstrok" => "\N{LATIN SMALL LETTER T WITH STROKE}",	# ŧ
878
879	   "Utilde" => "\N{LATIN CAPITAL LETTER U WITH TILDE}",	# Ũ
880	   "utilde" => "\N{LATIN SMALL LETTER U WITH TILDE}",	# ũ
881	   "Udblac" => "\N{LATIN CAPITAL LETTER U WITH DOUBLE ACUTE}",	# Ű
882	   "udblac" => "\N{LATIN SMALL LETTER U WITH DOUBLE ACUTE}",	# ű
883	   "Uacute" => "\N{LATIN CAPITAL LETTER U WITH ACUTE}",	# Ú
884	   "uacute" => "\N{LATIN SMALL LETTER U WITH ACUTE}",	# ú
885	   "Ugrave" => "\N{LATIN CAPITAL LETTER U WITH GRAVE}",	# Ù
886	   "ugrave" => "\N{LATIN SMALL LETTER U WITH GRAVE}",	# ù
887	   "Ubreve" => "\N{LATIN CAPITAL LETTER U WITH BREVE}",	# Ŭ
888	   "ubreve" => "\N{LATIN SMALL LETTER U WITH BREVE}",	# ŭ
889	    "Uring" => "\N{LATIN CAPITAL LETTER U WITH RING ABOVE}",	# Ů
890	    "uring" => "\N{LATIN SMALL LETTER U WITH RING ABOVE}",	# ů
891	    "Uogon" => "\N{LATIN CAPITAL LETTER U WITH OGONEK}",	# Ų
892	    "uogon" => "\N{LATIN SMALL LETTER U WITH OGONEK}",	# ų
893	    "Umacr" => "\N{LATIN CAPITAL LETTER U WITH MACRON}",	# Ū
894	    "umacr" => "\N{LATIN SMALL LETTER U WITH MACRON}",	# ū
895	     "Uuml" => "\N{LATIN CAPITAL LETTER U WITH DIAERESIS}",	# Ü
896	     "uuml" => "\N{LATIN SMALL LETTER U WITH DIAERESIS}",	# ü
897	     "Uopf" => "\N{MATHEMATICAL DOUBLE-STRUCK CAPITAL U}",	# ��
898	      "Ufr" => "\N{MATHEMATICAL FRAKTUR CAPITAL U}",	# ��
899	     "Uscr" => "\N{MATHEMATICAL SCRIPT CAPITAL U}",	# ��
900	     "uopf" => "\N{MATHEMATICAL DOUBLE-STRUCK SMALL U}",	# ��
901	      "ufr" => "\N{MATHEMATICAL FRAKTUR SMALL U}",	# ��
902	     "uscr" => "\N{MATHEMATICAL SCRIPT SMALL U}",	# ��
903	    "Ucirc" => "\N{LATIN CAPITAL LETTER U WITH CIRCUMFLEX}",	# Û
904	    "ucirc" => "\N{LATIN SMALL LETTER U WITH CIRCUMFLEX}",	# û
905
906	     "Vopf" => "\N{MATHEMATICAL DOUBLE-STRUCK CAPITAL V}",	# ��
907	      "Vfr" => "\N{MATHEMATICAL FRAKTUR CAPITAL V}",	# ��
908	     "Vscr" => "\N{MATHEMATICAL SCRIPT CAPITAL V}",	# ��
909	     "vopf" => "\N{MATHEMATICAL DOUBLE-STRUCK SMALL V}",	# ��
910	      "vfr" => "\N{MATHEMATICAL FRAKTUR SMALL V}",	# ��
911	     "vscr" => "\N{MATHEMATICAL SCRIPT SMALL V}",	# ��
912
913	     "Wopf" => "\N{MATHEMATICAL DOUBLE-STRUCK CAPITAL W}",	# ��
914	      "Wfr" => "\N{MATHEMATICAL FRAKTUR CAPITAL W}",	# ��
915	     "Wscr" => "\N{MATHEMATICAL SCRIPT CAPITAL W}",	# ��
916	     "wopf" => "\N{MATHEMATICAL DOUBLE-STRUCK SMALL W}",	# ��
917	      "wfr" => "\N{MATHEMATICAL FRAKTUR SMALL W}",	# ��
918	     "wscr" => "\N{MATHEMATICAL SCRIPT SMALL W}",	# ��
919	    "Wcirc" => "\N{LATIN CAPITAL LETTER W WITH CIRCUMFLEX}",	# Ŵ
920	    "wcirc" => "\N{LATIN SMALL LETTER W WITH CIRCUMFLEX}",	# ŵ
921
922	   "Yacute" => "\N{LATIN CAPITAL LETTER Y WITH ACUTE}",	# Ý
923	   "yacute" => "\N{LATIN SMALL LETTER Y WITH ACUTE}",	# ý
924	     "Yuml" => "\N{LATIN CAPITAL LETTER Y WITH DIAERESIS}",	# Ÿ
925	     "yuml" => "\N{LATIN SMALL LETTER Y WITH DIAERESIS}",	# ÿ
926
927	   "Zacute" => "\N{LATIN CAPITAL LETTER Z WITH ACUTE}",	# Ź
928	   "zacute" => "\N{LATIN SMALL LETTER Z WITH ACUTE}",	# ź
929	     "Zdot" => "\N{LATIN CAPITAL LETTER Z WITH DOT ABOVE}",	# Ż
930	     "zdot" => "\N{LATIN SMALL LETTER Z WITH DOT ABOVE}",	# ż
931	   "Zcaron" => "\N{LATIN CAPITAL LETTER Z WITH CARON}",	# Ž
932	   "zcaron" => "\N{LATIN SMALL LETTER Z WITH CARON}",	# ž
933	     "Zopf" => "\N{DOUBLE-STRUCK CAPITAL Z}",	# ℤ
934	 "integers" => "\N{DOUBLE-STRUCK CAPITAL Z}",	# ℤ
935	   "zeetrf" => "\N{BLACK-LETTER CAPITAL Z}",	# ℨ
936	      "Zfr" => "\N{BLACK-LETTER CAPITAL Z}",	# ℨ
937	     "Zscr" => "\N{MATHEMATICAL SCRIPT CAPITAL Z}",	# ��
938	     "zopf" => "\N{MATHEMATICAL DOUBLE-STRUCK SMALL Z}",	# ��
939	      "zfr" => "\N{MATHEMATICAL FRAKTUR SMALL Z}",	# ��
940	     "zscr" => "\N{MATHEMATICAL SCRIPT SMALL Z}",	# ��
941	    "imped" => "\N{LATIN CAPITAL LETTER Z WITH STROKE}",	# Ƶ
942
943	    "THORN" => "\N{LATIN CAPITAL LETTER THORN}",	# Þ
944	    "thorn" => "\N{LATIN SMALL LETTER THORN}",	# þ
945
946	    "napos" => "\N{LATIN SMALL LETTER N PRECEDED BY APOSTROPHE}",	# ʼn
947
948	    "bepsi" => "\N{GREEK REVERSED LUNATE EPSILON SYMBOL}",	# ϶
949      "backepsilon" => "\N{GREEK REVERSED LUNATE EPSILON SYMBOL}",	# ϶
950	    "Alpha" => "\N{GREEK CAPITAL LETTER ALPHA}",	# Α
951	    "alpha" => "\N{GREEK SMALL LETTER ALPHA}",	# α
952	     "Beta" => "\N{GREEK CAPITAL LETTER BETA}",	# Β
953	     "beta" => "\N{GREEK SMALL LETTER BETA}",	# β
954	    "Gamma" => "\N{GREEK CAPITAL LETTER GAMMA}",	# Γ
955	    "gamma" => "\N{GREEK SMALL LETTER GAMMA}",	# γ
956	    "Delta" => "\N{GREEK CAPITAL LETTER DELTA}",	# Δ
957	    "delta" => "\N{GREEK SMALL LETTER DELTA}",	# δ
958       "varepsilon" => "\N{GREEK LUNATE EPSILON SYMBOL}",	# ϵ
959    "straightepsilon" => "\N{GREEK LUNATE EPSILON SYMBOL}",	# ϵ
960	    "epsiv" => "\N{GREEK LUNATE EPSILON SYMBOL}",	# ϵ
961	  "Epsilon" => "\N{GREEK CAPITAL LETTER EPSILON}",	# Ε
962	     "epsi" => "\N{GREEK SMALL LETTER EPSILON}",	# ε
963	  "epsilon" => "\N{GREEK SMALL LETTER EPSILON}",	# ε
964	   "Gammad" => "\N{GREEK LETTER DIGAMMA}",	# Ϝ
965	  "digamma" => "\N{GREEK SMALL LETTER DIGAMMA}",	# ϝ
966	   "gammad" => "\N{GREEK SMALL LETTER DIGAMMA}",	# ϝ
967	     "Zeta" => "\N{GREEK CAPITAL LETTER ZETA}",	# Ζ
968	     "zeta" => "\N{GREEK SMALL LETTER ZETA}",	# ζ
969	      "Eta" => "\N{GREEK CAPITAL LETTER ETA}",	# Η
970	      "eta" => "\N{GREEK SMALL LETTER ETA}",	# η
971	    "Theta" => "\N{GREEK CAPITAL LETTER THETA}",	# Θ
972	    "theta" => "\N{GREEK SMALL LETTER THETA}",	# θ
973	 "vartheta" => "\N{GREEK THETA SYMBOL}",	# ϑ
974	 "thetasym" => "\N{GREEK THETA SYMBOL}",	# ϑ
975	   "thetav" => "\N{GREEK THETA SYMBOL}",	# ϑ
976	     "Iota" => "\N{GREEK CAPITAL LETTER IOTA}",	# Ι
977	     "iota" => "\N{GREEK SMALL LETTER IOTA}",	# ι
978	    "Kappa" => "\N{GREEK CAPITAL LETTER KAPPA}",	# Κ
979	    "kappa" => "\N{GREEK SMALL LETTER KAPPA}",	# κ
980	 "varkappa" => "\N{GREEK KAPPA SYMBOL}",	# ϰ
981	   "kappav" => "\N{GREEK KAPPA SYMBOL}",	# ϰ
982	   "Lambda" => "\N{GREEK CAPITAL LETTER LAMDA}",	# Λ
983	   "lambda" => "\N{GREEK SMALL LETTER LAMDA}",	# λ
984	    "micro" => "\N{MICRO SIGN}",	# µ
985	       "Mu" => "\N{GREEK CAPITAL LETTER MU}",	# Μ
986	       "mu" => "\N{GREEK SMALL LETTER MU}",	# μ
987	       "Nu" => "\N{GREEK CAPITAL LETTER NU}",	# Ν
988	       "nu" => "\N{GREEK SMALL LETTER NU}",	# ν
989	       "Xi" => "\N{GREEK CAPITAL LETTER XI}",	# Ξ
990	       "xi" => "\N{GREEK SMALL LETTER XI}",	# ξ
991	  "Omicron" => "\N{GREEK CAPITAL LETTER OMICRON}",	# Ο
992	  "omicron" => "\N{GREEK SMALL LETTER OMICRON}",	# ο
993	       "Pi" => "\N{GREEK CAPITAL LETTER PI}",	# Π
994	       "pi" => "\N{GREEK SMALL LETTER PI}",	# π
995	    "varpi" => "\N{GREEK PI SYMBOL}",	# ϖ
996	      "piv" => "\N{GREEK PI SYMBOL}",	# ϖ
997	   "varrho" => "\N{GREEK RHO SYMBOL}",	# ϱ
998	     "rhov" => "\N{GREEK RHO SYMBOL}",	# ϱ
999	      "Rho" => "\N{GREEK CAPITAL LETTER RHO}",	# Ρ
1000	      "rho" => "\N{GREEK SMALL LETTER RHO}",	# ρ
1001	 "varsigma" => "\N{GREEK SMALL LETTER FINAL SIGMA}",	# ς
1002	   "sigmaf" => "\N{GREEK SMALL LETTER FINAL SIGMA}",	# ς
1003	   "sigmav" => "\N{GREEK SMALL LETTER FINAL SIGMA}",	# ς
1004	    "Sigma" => "\N{GREEK CAPITAL LETTER SIGMA}",	# Σ
1005	    "sigma" => "\N{GREEK SMALL LETTER SIGMA}",	# σ
1006	      "Tau" => "\N{GREEK CAPITAL LETTER TAU}",	# Τ
1007	      "tau" => "\N{GREEK SMALL LETTER TAU}",	# τ
1008	    "upsih" => "\N{GREEK UPSILON WITH HOOK SYMBOL}",	# ϒ
1009	     "Upsi" => "\N{GREEK UPSILON WITH HOOK SYMBOL}",	# ϒ
1010	  "Upsilon" => "\N{GREEK CAPITAL LETTER UPSILON}",	# Υ
1011	     "upsi" => "\N{GREEK SMALL LETTER UPSILON}",	# υ
1012	  "upsilon" => "\N{GREEK SMALL LETTER UPSILON}",	# υ
1013	      "Phi" => "\N{GREEK CAPITAL LETTER PHI}",	# Φ
1014	      "phi" => "\N{GREEK SMALL LETTER PHI}",	# φ
1015	   "varphi" => "\N{GREEK PHI SYMBOL}",	# ϕ
1016      "straightphi" => "\N{GREEK PHI SYMBOL}",	# ϕ
1017	     "phiv" => "\N{GREEK PHI SYMBOL}",	# ϕ
1018	      "Chi" => "\N{GREEK CAPITAL LETTER CHI}",	# Χ
1019	      "chi" => "\N{GREEK SMALL LETTER CHI}",	# χ
1020	      "Psi" => "\N{GREEK CAPITAL LETTER PSI}",	# Ψ
1021	      "psi" => "\N{GREEK SMALL LETTER PSI}",	# ψ
1022	    "Omega" => "\N{GREEK CAPITAL LETTER OMEGA}",	# Ω
1023	      "ohm" => "\N{GREEK CAPITAL LETTER OMEGA}",	# Ω
1024	    "omega" => "\N{GREEK SMALL LETTER OMEGA}",	# ω
1025
1026	      "Acy" => "\N{CYRILLIC CAPITAL LETTER A}",	# А
1027	      "acy" => "\N{CYRILLIC SMALL LETTER A}",	# а
1028	      "Bcy" => "\N{CYRILLIC CAPITAL LETTER BE}",	# Б
1029	      "bcy" => "\N{CYRILLIC SMALL LETTER BE}",	# б
1030	      "Vcy" => "\N{CYRILLIC CAPITAL LETTER VE}",	# В
1031	      "vcy" => "\N{CYRILLIC SMALL LETTER VE}",	# в
1032	      "Gcy" => "\N{CYRILLIC CAPITAL LETTER GHE}",	# Г
1033	      "gcy" => "\N{CYRILLIC SMALL LETTER GHE}",	# г
1034	      "Dcy" => "\N{CYRILLIC CAPITAL LETTER DE}",	# Д
1035	      "dcy" => "\N{CYRILLIC SMALL LETTER DE}",	# д
1036	     "DJcy" => "\N{CYRILLIC CAPITAL LETTER DJE}",	# Ђ
1037	     "djcy" => "\N{CYRILLIC SMALL LETTER DJE}",	# ђ
1038	     "GJcy" => "\N{CYRILLIC CAPITAL LETTER GJE}",	# Ѓ
1039	     "gjcy" => "\N{CYRILLIC SMALL LETTER GJE}",	# ѓ
1040	     "IEcy" => "\N{CYRILLIC CAPITAL LETTER IE}",	# Е
1041	     "iecy" => "\N{CYRILLIC SMALL LETTER IE}",	# е
1042	     "IOcy" => "\N{CYRILLIC CAPITAL LETTER IO}",	# Ё
1043	     "iocy" => "\N{CYRILLIC SMALL LETTER IO}",	# ё
1044	    "Jukcy" => "\N{CYRILLIC CAPITAL LETTER UKRAINIAN IE}",	# Є
1045	    "jukcy" => "\N{CYRILLIC SMALL LETTER UKRAINIAN IE}",	# є
1046	     "ZHcy" => "\N{CYRILLIC CAPITAL LETTER ZHE}",	# Ж
1047	     "zhcy" => "\N{CYRILLIC SMALL LETTER ZHE}",	# ж
1048	      "Zcy" => "\N{CYRILLIC CAPITAL LETTER ZE}",	# З
1049	      "zcy" => "\N{CYRILLIC SMALL LETTER ZE}",	# з
1050	     "DScy" => "\N{CYRILLIC CAPITAL LETTER DZE}",	# Ѕ
1051	     "dscy" => "\N{CYRILLIC SMALL LETTER DZE}",	# ѕ
1052	      "Icy" => "\N{CYRILLIC CAPITAL LETTER I}",	# И
1053	      "icy" => "\N{CYRILLIC SMALL LETTER I}",	# и
1054	    "Iukcy" => "\N{CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I}",	# І
1055	    "iukcy" => "\N{CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I}",	# і
1056	     "YIcy" => "\N{CYRILLIC CAPITAL LETTER YI}",	# Ї
1057	     "yicy" => "\N{CYRILLIC SMALL LETTER YI}",	# ї
1058	      "Jcy" => "\N{CYRILLIC CAPITAL LETTER SHORT I}",	# Й
1059	      "jcy" => "\N{CYRILLIC SMALL LETTER SHORT I}",	# й
1060	   "Jsercy" => "\N{CYRILLIC CAPITAL LETTER JE}",	# Ј
1061	   "jsercy" => "\N{CYRILLIC SMALL LETTER JE}",	# ј
1062	      "Kcy" => "\N{CYRILLIC CAPITAL LETTER KA}",	# К
1063	      "kcy" => "\N{CYRILLIC SMALL LETTER KA}",	# к
1064	      "Lcy" => "\N{CYRILLIC CAPITAL LETTER EL}",	# Л
1065	      "lcy" => "\N{CYRILLIC SMALL LETTER EL}",	# л
1066	     "LJcy" => "\N{CYRILLIC CAPITAL LETTER LJE}",	# Љ
1067	     "ljcy" => "\N{CYRILLIC SMALL LETTER LJE}",	# љ
1068	      "Mcy" => "\N{CYRILLIC CAPITAL LETTER EM}",	# М
1069	      "mcy" => "\N{CYRILLIC SMALL LETTER EM}",	# м
1070	      "Ncy" => "\N{CYRILLIC CAPITAL LETTER EN}",	# Н
1071	      "ncy" => "\N{CYRILLIC SMALL LETTER EN}",	# н
1072	     "NJcy" => "\N{CYRILLIC CAPITAL LETTER NJE}",	# Њ
1073	     "njcy" => "\N{CYRILLIC SMALL LETTER NJE}",	# њ
1074	      "Ocy" => "\N{CYRILLIC CAPITAL LETTER O}",	# О
1075	      "ocy" => "\N{CYRILLIC SMALL LETTER O}",	# о
1076	      "Pcy" => "\N{CYRILLIC CAPITAL LETTER PE}",	# П
1077	      "pcy" => "\N{CYRILLIC SMALL LETTER PE}",	# п
1078	      "Rcy" => "\N{CYRILLIC CAPITAL LETTER ER}",	# Р
1079	      "rcy" => "\N{CYRILLIC SMALL LETTER ER}",	# р
1080	      "Scy" => "\N{CYRILLIC CAPITAL LETTER ES}",	# С
1081	      "scy" => "\N{CYRILLIC SMALL LETTER ES}",	# с
1082	      "Tcy" => "\N{CYRILLIC CAPITAL LETTER TE}",	# Т
1083	      "tcy" => "\N{CYRILLIC SMALL LETTER TE}",	# т
1084	    "TSHcy" => "\N{CYRILLIC CAPITAL LETTER TSHE}",	# Ћ
1085	    "tshcy" => "\N{CYRILLIC SMALL LETTER TSHE}",	# ћ
1086	     "KJcy" => "\N{CYRILLIC CAPITAL LETTER KJE}",	# Ќ
1087	     "kjcy" => "\N{CYRILLIC SMALL LETTER KJE}",	# ќ
1088	      "Ucy" => "\N{CYRILLIC CAPITAL LETTER U}",	# У
1089	      "ucy" => "\N{CYRILLIC SMALL LETTER U}",	# у
1090	    "Ubrcy" => "\N{CYRILLIC CAPITAL LETTER SHORT U}",	# Ў
1091	    "ubrcy" => "\N{CYRILLIC SMALL LETTER SHORT U}",	# ў
1092	      "Fcy" => "\N{CYRILLIC CAPITAL LETTER EF}",	# Ф
1093	      "fcy" => "\N{CYRILLIC SMALL LETTER EF}",	# ф
1094	     "KHcy" => "\N{CYRILLIC CAPITAL LETTER HA}",	# Х
1095	     "khcy" => "\N{CYRILLIC SMALL LETTER HA}",	# х
1096	     "TScy" => "\N{CYRILLIC CAPITAL LETTER TSE}",	# Ц
1097	     "tscy" => "\N{CYRILLIC SMALL LETTER TSE}",	# ц
1098	     "CHcy" => "\N{CYRILLIC CAPITAL LETTER CHE}",	# Ч
1099	     "chcy" => "\N{CYRILLIC SMALL LETTER CHE}",	# ч
1100	     "DZcy" => "\N{CYRILLIC CAPITAL LETTER DZHE}",	# Џ
1101	     "dzcy" => "\N{CYRILLIC SMALL LETTER DZHE}",	# џ
1102	     "SHcy" => "\N{CYRILLIC CAPITAL LETTER SHA}",	# Ш
1103	     "shcy" => "\N{CYRILLIC SMALL LETTER SHA}",	# ш
1104	   "SHCHcy" => "\N{CYRILLIC CAPITAL LETTER SHCHA}",	# Щ
1105	   "shchcy" => "\N{CYRILLIC SMALL LETTER SHCHA}",	# щ
1106	   "HARDcy" => "\N{CYRILLIC CAPITAL LETTER HARD SIGN}",	# Ъ
1107	   "hardcy" => "\N{CYRILLIC SMALL LETTER HARD SIGN}",	# ъ
1108	      "Ycy" => "\N{CYRILLIC CAPITAL LETTER YERU}",	# Ы
1109	      "ycy" => "\N{CYRILLIC SMALL LETTER YERU}",	# ы
1110	   "SOFTcy" => "\N{CYRILLIC CAPITAL LETTER SOFT SIGN}",	# Ь
1111	   "softcy" => "\N{CYRILLIC SMALL LETTER SOFT SIGN}",	# ь
1112	      "Ecy" => "\N{CYRILLIC CAPITAL LETTER E}",	# Э
1113	      "ecy" => "\N{CYRILLIC SMALL LETTER E}",	# э
1114	     "YUcy" => "\N{CYRILLIC CAPITAL LETTER YU}",	# Ю
1115	     "yucy" => "\N{CYRILLIC SMALL LETTER YU}",	# ю
1116	     "YAcy" => "\N{CYRILLIC CAPITAL LETTER YA}",	# Я
1117	     "yacy" => "\N{CYRILLIC SMALL LETTER YA}",	# я
1118
1119	    "aleph" => "\N{ALEF SYMBOL}",	# ℵ
1120	  "alefsym" => "\N{ALEF SYMBOL}",	# ℵ
1121	     "beth" => "\N{BET SYMBOL}",	# ℶ
1122	    "gimel" => "\N{GIMEL SYMBOL}",	# ℷ
1123	   "daleth" => "\N{DALET SYMBOL}",	# ℸ
1124
1125	     "lesg" => "\N{LESS-THAN EQUAL TO OR GREATER-THAN}\N{VARIATION SELECTOR-1}",	# ⋚︀
1126	     "gesl" => "\N{GREATER-THAN EQUAL TO OR LESS-THAN}\N{VARIATION SELECTOR-1}",	# ⋛︀
1127	     "cups" => "\N{UNION}\N{VARIATION SELECTOR-1}",	# ∪︀
1128	     "caps" => "\N{INTERSECTION}\N{VARIATION SELECTOR-1}",	# ∩︀
1129	    "lates" => "\N{LARGER THAN OR EQUAL TO}\N{VARIATION SELECTOR-1}",	# ⪭︀
1130	    "smtes" => "\N{SMALLER THAN OR EQUAL TO}\N{VARIATION SELECTOR-1}",	# ⪬︀
1131	   "vsubnE" => "\N{SUBSET OF ABOVE NOT EQUAL TO}\N{VARIATION SELECTOR-1}",	# ⫋︀
1132    "varsubsetneqq" => "\N{SUBSET OF ABOVE NOT EQUAL TO}\N{VARIATION SELECTOR-1}",	# ⫋︀
1133	   "vsupnE" => "\N{SUPERSET OF ABOVE NOT EQUAL TO}\N{VARIATION SELECTOR-1}",	# ⫌︀
1134    "varsupsetneqq" => "\N{SUPERSET OF ABOVE NOT EQUAL TO}\N{VARIATION SELECTOR-1}",	# ⫌︀
1135	   "vsubne" => "\N{SUBSET OF WITH NOT EQUAL TO}\N{VARIATION SELECTOR-1}",	# ⊊︀
1136     "varsubsetneq" => "\N{SUBSET OF WITH NOT EQUAL TO}\N{VARIATION SELECTOR-1}",	# ⊊︀
1137	   "vsupne" => "\N{SUPERSET OF WITH NOT EQUAL TO}\N{VARIATION SELECTOR-1}",	# ⊋︀
1138     "varsupsetneq" => "\N{SUPERSET OF WITH NOT EQUAL TO}\N{VARIATION SELECTOR-1}",	# ⊋︀
1139	     "gvnE" => "\N{GREATER-THAN BUT NOT EQUAL TO}\N{VARIATION SELECTOR-1}",	# ≩︀
1140	"gvertneqq" => "\N{GREATER-THAN BUT NOT EQUAL TO}\N{VARIATION SELECTOR-1}",	# ≩︀
1141	     "lvnE" => "\N{LESS-THAN BUT NOT EQUAL TO}\N{VARIATION SELECTOR-1}",	# ≨︀
1142	"lvertneqq" => "\N{LESS-THAN BUT NOT EQUAL TO}\N{VARIATION SELECTOR-1}",	# ≨︀
1143	   "sqcaps" => "\N{SQUARE CAP}\N{VARIATION SELECTOR-1}",	# ⊓︀
1144	   "sqcups" => "\N{SQUARE CUP}\N{VARIATION SELECTOR-1}",	# ⊔︀
1145	    "nabla" => "\N{NABLA}",	# ∇
1146	      "Del" => "\N{NABLA}",	# ∇
1147	  "Cedilla" => "\N{CEDILLA}",	# ¸
1148	    "cedil" => "\N{CEDILLA}",	# ¸
1149     "RoundImplies" => "\N{RIGHT DOUBLE ARROW WITH ROUNDED HEAD}",	# ⥰
1150	    "nsucc" => "\N{DOES NOT SUCCEED}",	# ⊁
1151	      "nsc" => "\N{DOES NOT SUCCEED}",	# ⊁
1152      "NotSucceeds" => "\N{DOES NOT SUCCEED}",	# ⊁
1153      "RuleDelayed" => "\N{RULE-DELAYED}",	# ⧴
1154	 "andslope" => "\N{SLOPING LARGE AND}",	# ⩘
1155	      "And" => "\N{DOUBLE LOGICAL AND}",	# ⩓
1156	   "andand" => "\N{TWO INTERSECTING LOGICAL AND}",	# ⩕
1157	   "capand" => "\N{INTERSECTION WITH LOGICAL AND}",	# ⩄
1158	      "and" => "\N{LOGICAL AND}",	# ∧
1159	    "wedge" => "\N{LOGICAL AND}",	# ∧
1160	    "cuwed" => "\N{CURLY LOGICAL AND}",	# ⋏
1161       "curlywedge" => "\N{CURLY LOGICAL AND}",	# ⋏
1162	    "Wedge" => "\N{N-ARY LOGICAL AND}",	# ⋀
1163	 "bigwedge" => "\N{N-ARY LOGICAL AND}",	# ⋀
1164	   "xwedge" => "\N{N-ARY LOGICAL AND}",	# ⋀
1165	  "larrbfs" => "\N{LEFTWARDS ARROW FROM BAR TO BLACK DIAMOND}",	# ⤟
1166	  "rarrbfs" => "\N{RIGHTWARDS ARROW FROM BAR TO BLACK DIAMOND}",	# ⤠
1167	   "larrfs" => "\N{LEFTWARDS ARROW TO BLACK DIAMOND}",	# ⤝
1168	   "rarrfs" => "\N{RIGHTWARDS ARROW TO BLACK DIAMOND}",	# ⤞
1169	    "numsp" => "\N{FIGURE SPACE}",	#  
1170    "ZeroWidthSpace" => "\N{ZERO WIDTH SPACE}",	# ​
1171    "NegativeThickSpace" => "\N{ZERO WIDTH SPACE}",	# ​
1172    "NegativeMediumSpace" => "\N{ZERO WIDTH SPACE}",	# ​
1173    "NegativeThinSpace" => "\N{ZERO WIDTH SPACE}",	# ​
1174    "NegativeVeryThinSpace" => "\N{ZERO WIDTH SPACE}",	# ​
1175    "NonBreakingSpace" => "\N{NO-BREAK SPACE}",	#  
1176	     "nbsp" => "\N{NO-BREAK SPACE}",	#  
1177      "MediumSpace" => "\N{MEDIUM MATHEMATICAL SPACE}",	#  
1178	     "emsp" => "\N{EM SPACE}",	#  
1179	   "emsp13" => "\N{THREE-PER-EM SPACE}",	#  
1180	   "emsp14" => "\N{FOUR-PER-EM SPACE}",	#  
1181	     "ensp" => "\N{EN SPACE}",	#  
1182	"ThinSpace" => "\N{THIN SPACE}",	#  
1183	   "thinsp" => "\N{THIN SPACE}",	#  
1184	   "puncsp" => "\N{PUNCTUATION SPACE}",	#  
1185       "ThickSpace" => "\N{MEDIUM MATHEMATICAL SPACE}\N{HAIR SPACE}",	#   
1186    "VeryThinSpace" => "\N{HAIR SPACE}",	#  
1187	   "hairsp" => "\N{HAIR SPACE}",	#  
1188	   "lbrace" => "{",	# { # {
1189	   "rbrace" => "}",	# } # }
1190	   "nVdash" => "\N{DOES NOT FORCE}",	# ⊮
1191	    "blk34" => "\N{DARK SHADE}",	# ▓
1192	    "blk12" => "\N{MEDIUM SHADE}",	# ▒
1193	    "blk14" => "\N{LIGHT SHADE}",	# ░
1194	    "nprec" => "\N{DOES NOT PRECEDE}",	# ⊀
1195	      "npr" => "\N{DOES NOT PRECEDE}",	# ⊀
1196      "NotPrecedes" => "\N{DOES NOT PRECEDE}",	# ⊀
1197	    "gtcir" => "\N{GREATER-THAN WITH CIRCLE INSIDE}",	# ⩺
1198	    "ltcir" => "\N{LESS-THAN WITH CIRCLE INSIDE}",	# ⩹
1199	   "egsdot" => "\N{SLANTED EQUAL TO OR GREATER-THAN WITH DOT INSIDE}",	# ⪘
1200	   "elsdot" => "\N{SLANTED EQUAL TO OR LESS-THAN WITH DOT INSIDE}",	# ⪗
1201	   "gesdot" => "\N{GREATER-THAN OR SLANTED EQUAL TO WITH DOT INSIDE}",	# ⪀
1202	   "lesdot" => "\N{LESS-THAN OR SLANTED EQUAL TO WITH DOT INSIDE}",	# ⩿
1203	     "nmid" => "\N{DOES NOT DIVIDE}",	# ∤
1204	    "nsmid" => "\N{DOES NOT DIVIDE}",	# ∤
1205	"nshortmid" => "\N{DOES NOT DIVIDE}",	# ∤
1206    "NotVerticalBar" => "\N{DOES NOT DIVIDE}",	# ∤
1207	     "bsim" => "\N{REVERSED TILDE}",	# ∽
1208	  "backsim" => "\N{REVERSED TILDE}",	# ∽
1209	     "apid" => "\N{TRIPLE TILDE}",	# ≋
1210	    "tilde" => "\N{SMALL TILDE}",	# ˜
1211    "DiacriticalTilde" => "\N{SMALL TILDE}",	# ˜
1212       "EqualTilde" => "\N{MINUS TILDE}",	# ≂
1213	     "esim" => "\N{MINUS TILDE}",	# ≂
1214	    "eqsim" => "\N{MINUS TILDE}",	# ≂
1215	 "NotTilde" => "\N{NOT TILDE}",	# ≁
1216	     "nsim" => "\N{NOT TILDE}",	# ≁
1217     "blacklozenge" => "\N{BLACK LOZENGE}",	# ⧫
1218	     "lozf" => "\N{BLACK LOZENGE}",	# ⧫
1219	  "lozenge" => "\N{LOZENGE}",	# ◊
1220	      "loz" => "\N{LOZENGE}",	# ◊
1221	   "bowtie" => "\N{BOWTIE}",	# ⋈
1222	       "rx" => "\N{PRESCRIPTION TAKE}",	# ℞
1223	    "nlArr" => "\N{LEFTWARDS DOUBLE ARROW WITH STROKE}",	# ⇍
1224       "nLeftarrow" => "\N{LEFTWARDS DOUBLE ARROW WITH STROKE}",	# ⇍
1225	    "nrArr" => "\N{RIGHTWARDS DOUBLE ARROW WITH STROKE}",	# ⇏
1226      "nRightarrow" => "\N{RIGHTWARDS DOUBLE ARROW WITH STROKE}",	# ⇏
1227	    "nhArr" => "\N{LEFT RIGHT DOUBLE ARROW WITH STROKE}",	# ⇎
1228    "nLeftrightarrow" => "\N{LEFT RIGHT DOUBLE ARROW WITH STROKE}",	# ⇎
1229	    "nlarr" => "\N{LEFTWARDS ARROW WITH STROKE}",	# ↚
1230       "nleftarrow" => "\N{LEFTWARDS ARROW WITH STROKE}",	# ↚
1231	    "nrarr" => "\N{RIGHTWARDS ARROW WITH STROKE}",	# ↛
1232      "nrightarrow" => "\N{RIGHTWARDS ARROW WITH STROKE}",	# ↛
1233	    "nharr" => "\N{LEFT RIGHT ARROW WITH STROKE}",	# ↮
1234    "nleftrightarrow" => "\N{LEFT RIGHT ARROW WITH STROKE}",	# ↮
1235	   "nvlArr" => "\N{LEFTWARDS DOUBLE ARROW WITH VERTICAL STROKE}",	# ⤂
1236	   "nvrArr" => "\N{RIGHTWARDS DOUBLE ARROW WITH VERTICAL STROKE}",	# ⤃
1237	   "nvHarr" => "\N{LEFT RIGHT DOUBLE ARROW WITH VERTICAL STROKE}",	# ⤄
1238	    "isins" => "\N{SMALL ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE}",	# ⋴
1239	   "isinsv" => "\N{ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE}",	# ⋳
1240	      "nis" => "\N{SMALL CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE}",	# ⋼
1241	     "xnis" => "\N{CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE}",	# ⋻
1242	    "disin" => "\N{ELEMENT OF WITH LONG HORIZONTAL STROKE}",	# ⋲
1243	     "nisd" => "\N{CONTAINS WITH LONG HORIZONTAL STROKE}",	# ⋺
1244	    "nhpar" => "\N{PARALLEL WITH HORIZONTAL STROKE}",	# ⫲
1245	    "boxvH" => "\N{BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE}",	# ╪
1246	    "boxHd" => "\N{BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE}",	# ╤
1247	    "boxHu" => "\N{BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE}",	# ╧
1248	    "boxvL" => "\N{BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE}",	# ╡
1249	    "boxdL" => "\N{BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE}",	# ╕
1250	    "boxuL" => "\N{BOX DRAWINGS UP SINGLE AND LEFT DOUBLE}",	# ╛
1251	    "boxvR" => "\N{BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE}",	# ╞
1252	    "boxdR" => "\N{BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE}",	# ╒
1253	    "boxuR" => "\N{BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE}",	# ╘
1254	  "bigcirc" => "\N{LARGE CIRCLE}",	# ◯
1255	    "xcirc" => "\N{LARGE CIRCLE}",	# ◯
1256	   "Otimes" => "\N{MULTIPLICATION SIGN IN DOUBLE CIRCLE}",	# ⨷
1257	      "cir" => "\N{WHITE CIRCLE}",	# ○
1258	  "lotimes" => "\N{MULTIPLICATION SIGN IN LEFT HALF CIRCLE}",	# ⨴
1259	   "loplus" => "\N{PLUS SIGN IN LEFT HALF CIRCLE}",	# ⨭
1260	  "rotimes" => "\N{MULTIPLICATION SIGN IN RIGHT HALF CIRCLE}",	# ⨵
1261	   "roplus" => "\N{PLUS SIGN IN RIGHT HALF CIRCLE}",	# ⨮
1262	  "harrcir" => "\N{LEFT RIGHT ARROW THROUGH SMALL CIRCLE}",	# ⥈
1263	 "Uarrocir" => "\N{UPWARDS TWO-HEADED ARROW FROM SMALL CIRCLE}",	# ⥉
1264	   "angmsd" => "\N{MEASURED ANGLE}",	# ∡
1265    "measuredangle" => "\N{MEASURED ANGLE}",	# ∡
1266	    "xdtri" => "\N{WHITE DOWN-POINTING TRIANGLE}",	# ▽
1267    "bigtriangledown" => "\N{WHITE DOWN-POINTING TRIANGLE}",	# ▽
1268	    "xutri" => "\N{WHITE UP-POINTING TRIANGLE}",	# △
1269    "bigtriangleup" => "\N{WHITE UP-POINTING TRIANGLE}",	# △
1270	     "dtri" => "\N{WHITE DOWN-POINTING SMALL TRIANGLE}",	# ▿
1271     "triangledown" => "\N{WHITE DOWN-POINTING SMALL TRIANGLE}",	# ▿
1272	    "dtrif" => "\N{BLACK DOWN-POINTING SMALL TRIANGLE}",	# ▾
1273    "blacktriangledown" => "\N{BLACK DOWN-POINTING SMALL TRIANGLE}",	# ▾
1274	 "triangle" => "\N{WHITE UP-POINTING SMALL TRIANGLE}",	# ▵
1275	     "utri" => "\N{WHITE UP-POINTING SMALL TRIANGLE}",	# ▵
1276    "blacktriangle" => "\N{BLACK UP-POINTING SMALL TRIANGLE}",	# ▴
1277	    "utrif" => "\N{BLACK UP-POINTING SMALL TRIANGLE}",	# ▴
1278	     "ltri" => "\N{WHITE LEFT-POINTING SMALL TRIANGLE}",	# ◃
1279     "triangleleft" => "\N{WHITE LEFT-POINTING SMALL TRIANGLE}",	# ◃
1280	    "ltrif" => "\N{BLACK LEFT-POINTING SMALL TRIANGLE}",	# ◂
1281    "blacktriangleleft" => "\N{BLACK LEFT-POINTING SMALL TRIANGLE}",	# ◂
1282	     "rtri" => "\N{WHITE RIGHT-POINTING SMALL TRIANGLE}",	# ▹
1283    "triangleright" => "\N{WHITE RIGHT-POINTING SMALL TRIANGLE}",	# ▹
1284	    "rtrif" => "\N{BLACK RIGHT-POINTING SMALL TRIANGLE}",	# ▸
1285    "blacktriangleright" => "\N{BLACK RIGHT-POINTING SMALL TRIANGLE}",	# ▸
1286	  "tritime" => "\N{MULTIPLICATION SIGN IN TRIANGLE}",	# ⨻
1287	  "triplus" => "\N{PLUS SIGN IN TRIANGLE}",	# ⨹
1288	 "triminus" => "\N{MINUS SIGN IN TRIANGLE}",	# ⨺
1289	 "rtriltri" => "\N{RIGHT TRIANGLE ABOVE LEFT TRIANGLE}",	# ⧎
1290	    "ultri" => "\N{UPPER LEFT TRIANGLE}",	# ◸
1291	    "lltri" => "\N{LOWER LEFT TRIANGLE}",	# ◺
1292    "RightTriangleBar" => "\N{VERTICAL BAR BESIDE RIGHT TRIANGLE}",	# ⧐
1293	    "lrtri" => "\N{RIGHT TRIANGLE}",	# ⊿
1294	    "urtri" => "\N{UPPER RIGHT TRIANGLE}",	# ◹
1295	   "angsph" => "\N{SPHERICAL ANGLE}",	# ∢
1296	    "angle" => "\N{ANGLE}",	# ∠
1297	      "ang" => "\N{ANGLE}",	# ∠
1298	     "rect" => "\N{WHITE RECTANGLE}",	# ▭
1299	   "marker" => "\N{BLACK VERTICAL RECTANGLE}",	# ▮
1300	    "angrt" => "\N{RIGHT ANGLE}",	# ∟
1301	    "boxVh" => "\N{BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE}",	# ╫
1302	    "boxhD" => "\N{BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE}",	# ╥
1303	    "boxhU" => "\N{BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE}",	# ╨
1304	    "boxVl" => "\N{BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE}",	# ╢
1305	    "boxDl" => "\N{BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE}",	# ╖
1306	    "boxUl" => "\N{BOX DRAWINGS UP DOUBLE AND LEFT SINGLE}",	# ╜
1307	    "boxVr" => "\N{BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE}",	# ╟
1308	    "boxDr" => "\N{BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE}",	# ╓
1309	    "boxUr" => "\N{BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE}",	# ╙
1310	 "profalar" => "\N{ALL AROUND-PROFILE}",	# ⌮
1311	    "smile" => "\N{SMILE}",	# ⌣
1312	   "ssmile" => "\N{SMILE}",	# ⌣
1313	    "ovbar" => "\N{APL FUNCTIONAL SYMBOL CIRCLE STILE}",	# ⌽
1314    "DoubleLeftTee" => "\N{VERTICAL BAR DOUBLE LEFT TURNSTILE}",	# ⫤
1315	    "Dashv" => "\N{VERTICAL BAR DOUBLE LEFT TURNSTILE}",	# ⫤
1316	   "nVDash" => "\N{NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE}",	# ⊯
1317	    "VDash" => "\N{DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE}",	# ⊫
1318	   "Vvdash" => "\N{TRIPLE VERTICAL BAR RIGHT TURNSTILE}",	# ⊪
1319	 "scpolint" => "\N{LINE INTEGRATION WITH SEMICIRCULAR PATH AROUND POLE}",	# ⨓
1320	 "rppolint" => "\N{LINE INTEGRATION WITH RECTANGULAR PATH AROUND POLE}",	# ⨒
1321	  "npolint" => "\N{LINE INTEGRATION NOT INCLUDING THE POLE}",	# ⨔
1322	   "bprime" => "\N{REVERSED PRIME}",	# ‵
1323	"backprime" => "\N{REVERSED PRIME}",	# ‵
1324	    "Prime" => "\N{DOUBLE PRIME}",	# ″
1325	   "tprime" => "\N{TRIPLE PRIME}",	# ‴
1326	   "qprime" => "\N{QUADRUPLE PRIME}",	# ⁗
1327	    "prime" => "\N{PRIME}",	# ′
1328	  "vzigzag" => "\N{VERTICAL ZIGZAG LINE}",	# ⦚
1329     "VerticalLine" => "|",	# |
1330	   "Verbar" => "\N{DOUBLE VERTICAL LINE}",	# ‖
1331	     "Vert" => "\N{DOUBLE VERTICAL LINE}",	# ‖
1332	    "oline" => "\N{OVERLINE}",	# ‾
1333	  "OverBar" => "\N{OVERLINE}",	# ‾
1334	      "acE" => "\N{INVERTED LAZY S}\N{COMBINING DOUBLE LOW LINE}",	# ∾̳
1335	    "phone" => "\N{BLACK TELEPHONE}",	# ☎
1336	   "Ecaron" => "\N{LATIN CAPITAL LETTER E WITH CARON}",	# Ě
1337	   "ecaron" => "\N{LATIN SMALL LETTER E WITH CARON}",	# ě
1338	    "Emacr" => "\N{LATIN CAPITAL LETTER E WITH MACRON}",	# Ē
1339	    "emacr" => "\N{LATIN SMALL LETTER E WITH MACRON}",	# ē
1340	   "square" => "\N{WHITE SQUARE}",	# □
1341	   "Square" => "\N{WHITE SQUARE}",	# □
1342	      "squ" => "\N{WHITE SQUARE}",	# □
1343	   "vangrt" => "\N{RIGHT ANGLE VARIANT WITH SQUARE}",	# ⦜
1344    "EmptyVerySmallSquare" => "\N{WHITE SMALL SQUARE}",	# ▫
1345      "blacksquare" => "\N{BLACK SMALL SQUARE}",	# ▪
1346    "FilledVerySmallSquare" => "\N{BLACK SMALL SQUARE}",	# ▪
1347	   "squarf" => "\N{BLACK SMALL SQUARE}",	# ▪
1348	     "squf" => "\N{BLACK SMALL SQUARE}",	# ▪
1349    "EmptySmallSquare" => "\N{WHITE MEDIUM SQUARE}",	# ◻
1350    "FilledSmallSquare" => "\N{BLACK MEDIUM SQUARE}",	# ◼
1351	   "there4" => "\N{THEREFORE}",	# ∴
1352	"therefore" => "\N{THEREFORE}",	# ∴
1353	"Therefore" => "\N{THEREFORE}",	# ∴
1354	  "because" => "\N{BECAUSE}",	# ∵
1355	  "Because" => "\N{BECAUSE}",	# ∵
1356	   "becaus" => "\N{BECAUSE}",	# ∵
1357	 "intercal" => "\N{INTERCALATE}",	# ⊺
1358	   "intcal" => "\N{INTERCALATE}",	# ⊺
1359	      "gap" => "\N{GREATER-THAN OR APPROXIMATE}",	# ⪆
1360	"gtrapprox" => "\N{GREATER-THAN OR APPROXIMATE}",	# ⪆
1361	      "lap" => "\N{LESS-THAN OR APPROXIMATE}",	# ⪅
1362       "lessapprox" => "\N{LESS-THAN OR APPROXIMATE}",	# ⪅
1363	     "gnap" => "\N{GREATER-THAN AND NOT APPROXIMATE}",	# ⪊
1364	 "gnapprox" => "\N{GREATER-THAN AND NOT APPROXIMATE}",	# ⪊
1365	     "lnap" => "\N{LESS-THAN AND NOT APPROXIMATE}",	# ⪉
1366	 "lnapprox" => "\N{LESS-THAN AND NOT APPROXIMATE}",	# ⪉
1367	     "sung" => "\N{EIGHTH NOTE}",	# ♪
1368    "DoubleRightTee" => "\N{TRUE}",	# ⊨
1369	    "vDash" => "\N{TRUE}",	# ⊨
1370	   "nvDash" => "\N{NOT TRUE}",	# ⊭
1371	    "grave" => "`",	# `
1372    "DiacriticalGrave" => "`",	# `
1373	      "acd" => "\N{SINE WAVE}",	# ∿
1374	"DownBreve" => "\N{COMBINING INVERTED BREVE}",	# ̑
1375	    "breve" => "\N{BREVE}",	# ˘
1376	    "Breve" => "\N{BREVE}",	# ˘
1377	   "barwed" => "\N{PROJECTIVE}",	# ⌅
1378	 "barwedge" => "\N{PROJECTIVE}",	# ⌅
1379	   "Barwed" => "\N{PERSPECTIVE}",	# ⌆
1380    "doublebarwedge" => "\N{PERSPECTIVE}",	# ⌆
1381	   "mcomma" => "\N{MINUS SIGN WITH COMMA ABOVE}",	# ⨩
1382	 "smeparsl" => "\N{EQUALS SIGN AND SLANTED PARALLEL WITH TILDE ABOVE}",	# ⧤
1383	  "simplus" => "\N{PLUS SIGN WITH TILDE ABOVE}",	# ⨤
1384	   "cirmid" => "\N{VERTICAL LINE WITH CIRCLE ABOVE}",	# ⫯
1385	  "pluscir" => "\N{PLUS SIGN WITH SMALL CIRCLE ABOVE}",	# ⨢
1386	  "cemptyv" => "\N{EMPTY SET WITH SMALL CIRCLE ABOVE}",	# ⦲
1387	     "ring" => "\N{RING ABOVE}",	# ˚
1388	  "gtquest" => "\N{GREATER-THAN WITH QUESTION MARK ABOVE}",	# ⩼
1389	  "ltquest" => "\N{LESS-THAN WITH QUESTION MARK ABOVE}",	# ⩻
1390	"TripleDot" => "\N{COMBINING THREE DOTS ABOVE}",	# ⃛
1391	     "tdot" => "\N{COMBINING THREE DOTS ABOVE}",	# ⃛
1392	   "DotDot" => "\N{COMBINING FOUR DOTS ABOVE}",	# ⃜
1393	  "equivDD" => "\N{EQUIVALENT WITH FOUR DOTS ABOVE}",	# ⩸
1394	 "plusacir" => "\N{PLUS SIGN WITH CIRCUMFLEX ACCENT ABOVE}",	# ⨣
1395	  "isindot" => "\N{ELEMENT OF WITH DOT ABOVE}",	# ⋵
1396	   "timesd" => "\N{MULTIPLICATION SIGN WITH DOT ABOVE}",	# ⨰
1397	  "gesdoto" => "\N{GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE}",	# ⪂
1398	  "lesdoto" => "\N{LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE}",	# ⪁
1399	  "subedot" => "\N{SUBSET OF OR EQUAL TO WITH DOT ABOVE}",	# ⫃
1400	  "supedot" => "\N{SUPERSET OF OR EQUAL TO WITH DOT ABOVE}",	# ⫄
1401	   "simdot" => "\N{TILDE OPERATOR WITH DOT ABOVE}",	# ⩪
1402	  "congdot" => "\N{CONGRUENT WITH DOT ABOVE}",	# ⩭
1403	      "dot" => "\N{DOT ABOVE}",	# ˙
1404    "DiacriticalDot" => "\N{DOT ABOVE}",	# ˙
1405	 "laemptyv" => "\N{EMPTY SET WITH LEFT ARROW ABOVE}",	# ⦴
1406	 "raemptyv" => "\N{EMPTY SET WITH RIGHT ARROW ABOVE}",	# ⦳
1407	    "bumpE" => "\N{EQUALS SIGN WITH BUMPY ABOVE}",	# ⪮
1408	   "nvdash" => "\N{DOES NOT PROVE}",	# ⊬
1409	     "gtcc" => "\N{GREATER-THAN CLOSED BY CURVE}",	# ⪧
1410	     "ltcc" => "\N{LESS-THAN CLOSED BY CURVE}",	# ⪦
1411    "fallingdotseq" => "\N{APPROXIMATELY EQUAL TO OR THE IMAGE OF}",	# ≒
1412	    "efDot" => "\N{APPROXIMATELY EQUAL TO OR THE IMAGE OF}",	# ≒
1413	    "sqsub" => "\N{SQUARE IMAGE OF}",	# ⊏
1414     "SquareSubset" => "\N{SQUARE IMAGE OF}",	# ⊏
1415	 "sqsubset" => "\N{SQUARE IMAGE OF}",	# ⊏
1416	     "imof" => "\N{IMAGE OF}",	# ⊷
1417	    "sqsup" => "\N{SQUARE ORIGINAL OF}",	# ⊐
1418	 "sqsupset" => "\N{SQUARE ORIGINAL OF}",	# ⊐
1419    "SquareSuperset" => "\N{SQUARE ORIGINAL OF}",	# ⊐
1420	   "origof" => "\N{ORIGINAL OF}",	# ⊶
1421     "LeftTriangle" => "\N{NORMAL SUBGROUP OF}",	# ⊲
1422	    "vltri" => "\N{NORMAL SUBGROUP OF}",	# ⊲
1423    "vartriangleleft" => "\N{NORMAL SUBGROUP OF}",	# ⊲
1424    "NotLeftTriangle" => "\N{NOT NORMAL SUBGROUP OF}",	# ⋪
1425	    "nltri" => "\N{NOT NORMAL SUBGROUP OF}",	# ⋪
1426    "ntriangleleft" => "\N{NOT NORMAL SUBGROUP OF}",	# ⋪
1427	     "nsub" => "\N{NOT A SUBSET OF}",	# ⊄
1428	      "sub" => "\N{SUBSET OF}",	# ⊂
1429	   "subset" => "\N{SUBSET OF}",	# ⊂
1430	     "nsup" => "\N{NOT A SUPERSET OF}",	# ⊅
1431	      "sup" => "\N{SUPERSET OF}",	# ⊃
1432	   "supset" => "\N{SUPERSET OF}",	# ⊃
1433	 "Superset" => "\N{SUPERSET OF}",	# ⊃
1434	  "notinva" => "\N{NOT AN ELEMENT OF}",	# ∉
1435	    "notin" => "\N{NOT AN ELEMENT OF}",	# ∉
1436       "NotElement" => "\N{NOT AN ELEMENT OF}",	# ∉
1437	       "in" => "\N{ELEMENT OF}",	# ∈
1438	     "isin" => "\N{ELEMENT OF}",	# ∈
1439	  "Element" => "\N{ELEMENT OF}",	# ∈
1440	    "isinv" => "\N{ELEMENT OF}",	# ∈
1441      "LeftCeiling" => "\N{LEFT CEILING}",	# ⌈
1442	    "lceil" => "\N{LEFT CEILING}",	# ⌈
1443     "RightCeiling" => "\N{RIGHT CEILING}",	# ⌉
1444	    "rceil" => "\N{RIGHT CEILING}",	# ⌉
1445      "circleddash" => "\N{CIRCLED DASH}",	# ⊝
1446	    "odash" => "\N{CIRCLED DASH}",	# ⊝
1447	   "lharul" => "\N{LEFTWARDS HARPOON WITH BARB UP ABOVE LONG DASH}",	# ⥪
1448	   "rharul" => "\N{RIGHTWARDS HARPOON WITH BARB UP ABOVE LONG DASH}",	# ⥬
1449	   "llhard" => "\N{LEFTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH}",	# ⥫
1450	   "lrhard" => "\N{RIGHTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH}",	# ⥭
1451	     "andd" => "\N{LOGICAL AND WITH HORIZONTAL DASH}",	# ⩜
1452	      "ord" => "\N{LOGICAL OR WITH HORIZONTAL DASH}",	# ⩝
1453	    "mdash" => "\N{EM DASH}",	# —
1454	    "ndash" => "\N{EN DASH}",	# –
1455	    "bsolb" => "\N{SQUARED FALLING DIAGONAL SLASH}",	# ⧅
1456	     "solb" => "\N{SQUARED RISING DIAGONAL SLASH}",	# ⧄
1457	     "osol" => "\N{CIRCLED DIVISION SLASH}",	# ⊘
1458	    "rnmid" => "\N{DOES NOT DIVIDE WITH REVERSED NEGATION SLASH}",	# ⫮
1459	    "frasl" => "\N{FRACTION SLASH}",	# ⁄
1460	     "semi" => ";",	# ;
1461	   "lbrack" => "[",	# [
1462	   "rbrack" => "]",	# ]
1463	  "DownTee" => "\N{DOWN TACK}",	# ⊤
1464	      "top" => "\N{DOWN TACK}",	# ⊤
1465	    "vBarv" => "\N{SHORT UP TACK ABOVE SHORT DOWN TACK}",	# ⫩
1466	     "Vbar" => "\N{DOUBLE UP TACK}",	# ⫫
1467	    "UpTee" => "\N{UP TACK}",	# ⊥
1468	   "bottom" => "\N{UP TACK}",	# ⊥
1469	     "perp" => "\N{UP TACK}",	# ⊥
1470	      "bot" => "\N{UP TACK}",	# ⊥
1471	  "LeftTee" => "\N{LEFT TACK}",	# ⊣
1472	    "dashv" => "\N{LEFT TACK}",	# ⊣
1473	 "RightTee" => "\N{RIGHT TACK}",	# ⊢
1474	    "vdash" => "\N{RIGHT TACK}",	# ⊢
1475	    "uhblk" => "\N{UPPER HALF BLOCK}",	# ▀
1476	    "lhblk" => "\N{LOWER HALF BLOCK}",	# ▄
1477	    "block" => "\N{FULL BLOCK}",	# █
1478	     "ogon" => "\N{OGONEK}",	# ˛
1479	 "intlarhk" => "\N{INTEGRAL WITH LEFTWARDS ARROW WITH HOOK}",	# ⨗
1480	   "larrhk" => "\N{LEFTWARDS ARROW WITH HOOK}",	# ↩
1481    "hookleftarrow" => "\N{LEFTWARDS ARROW WITH HOOK}",	# ↩
1482	   "rarrhk" => "\N{RIGHTWARDS ARROW WITH HOOK}",	# ↪
1483    "hookrightarrow" => "\N{RIGHTWARDS ARROW WITH HOOK}",	# ↪
1484	   "nearhk" => "\N{NORTH EAST ARROW WITH HOOK}",	# ⤤
1485	   "searhk" => "\N{SOUTH EAST ARROW WITH HOOK}",	# ⤥
1486	 "hksearow" => "\N{SOUTH EAST ARROW WITH HOOK}",	# ⤥
1487	   "nwarhk" => "\N{NORTH WEST ARROW WITH HOOK}",	# ⤣
1488	   "swarhk" => "\N{SOUTH WEST ARROW WITH HOOK}",	# ⤦
1489	 "hkswarow" => "\N{SOUTH WEST ARROW WITH HOOK}",	# ⤦
1490	    "check" => "\N{CHECK MARK}",	# ✓
1491	"checkmark" => "\N{CHECK MARK}",	# ✓
1492	    "iexcl" => "\N{INVERTED EXCLAMATION MARK}",	# ¡
1493	    "bdquo" => "\N{DOUBLE LOW-9 QUOTATION MARK}",	# „
1494	   "ldquor" => "\N{DOUBLE LOW-9 QUOTATION MARK}",	# „
1495	    "sbquo" => "\N{SINGLE LOW-9 QUOTATION MARK}",	# ‚
1496	   "lsquor" => "\N{SINGLE LOW-9 QUOTATION MARK}",	# ‚
1497    "OpenCurlyDoubleQuote" => "\N{LEFT DOUBLE QUOTATION MARK}",	# “
1498	    "ldquo" => "\N{LEFT DOUBLE QUOTATION MARK}",	# “
1499    "CloseCurlyDoubleQuote" => "\N{RIGHT DOUBLE QUOTATION MARK}",	# ”
1500	    "rdquo" => "\N{RIGHT DOUBLE QUOTATION MARK}",	# ”
1501	   "rdquor" => "\N{RIGHT DOUBLE QUOTATION MARK}",	# ”
1502	    "laquo" => "\N{LEFT-POINTING DOUBLE ANGLE QUOTATION MARK}",	# «
1503	    "raquo" => "\N{RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK}",	# »
1504	   "lsaquo" => "\N{SINGLE LEFT-POINTING ANGLE QUOTATION MARK}",	# ‹
1505	   "rsaquo" => "\N{SINGLE RIGHT-POINTING ANGLE QUOTATION MARK}",	# ›
1506    "OpenCurlyQuote" => "\N{LEFT SINGLE QUOTATION MARK}",	# ‘
1507	    "lsquo" => "\N{LEFT SINGLE QUOTATION MARK}",	# ‘
1508    "CloseCurlyQuote" => "\N{RIGHT SINGLE QUOTATION MARK}",	# ’
1509	    "rsquo" => "\N{RIGHT SINGLE QUOTATION MARK}",	# ’
1510	   "rsquor" => "\N{RIGHT SINGLE QUOTATION MARK}",	# ’
1511	   "iquest" => "\N{INVERTED QUESTION MARK}",	# ¿
1512	      "rlm" => "\N{RIGHT-TO-LEFT MARK}",	# ‏
1513	      "lrm" => "\N{LEFT-TO-RIGHT MARK}",	# ‎
1514	     "fork" => "\N{PITCHFORK}",	# ⋔
1515	"pitchfork" => "\N{PITCHFORK}",	# ⋔
1516	   "easter" => "\N{EQUALS WITH ASTERISK}",	# ⩮
1517	   "Vdashl" => "\N{LONG DASH FROM LEFT MEMBER OF DOUBLE VERTICAL}",	# ⫦
1518	     "boxV" => "\N{BOX DRAWINGS DOUBLE VERTICAL}",	# ║
1519	     "boxv" => "\N{BOX DRAWINGS LIGHT VERTICAL}",	# │
1520	 "PartialD" => "\N{PARTIAL DIFFERENTIAL}",	# ∂
1521	     "part" => "\N{PARTIAL DIFFERENTIAL}",	# ∂
1522    "DoubleContourIntegral" => "\N{SURFACE INTEGRAL}",	# ∯
1523	   "Conint" => "\N{SURFACE INTEGRAL}",	# ∯
1524	      "Int" => "\N{DOUBLE INTEGRAL}",	# ∬
1525	    "iiint" => "\N{TRIPLE INTEGRAL}",	# ∭
1526	     "tint" => "\N{TRIPLE INTEGRAL}",	# ∭
1527	  "Cconint" => "\N{VOLUME INTEGRAL}",	# ∰
1528	    "cwint" => "\N{CLOCKWISE INTEGRAL}",	# ∱
1529	 "Integral" => "\N{INTEGRAL}",	# ∫
1530	      "int" => "\N{INTEGRAL}",	# ∫
1531    "CounterClockwiseContourIntegral" => "\N{ANTICLOCKWISE CONTOUR INTEGRAL}",	# ∳
1532	 "awconint" => "\N{ANTICLOCKWISE CONTOUR INTEGRAL}",	# ∳
1533    "ClockwiseContourIntegral" => "\N{CLOCKWISE CONTOUR INTEGRAL}",	# ∲
1534	 "cwconint" => "\N{CLOCKWISE CONTOUR INTEGRAL}",	# ∲
1535    "ContourIntegral" => "\N{CONTOUR INTEGRAL}",	# ∮
1536	   "conint" => "\N{CONTOUR INTEGRAL}",	# ∮
1537	     "oint" => "\N{CONTOUR INTEGRAL}",	# ∮
1538	 "fpartint" => "\N{FINITE PART INTEGRAL}",	# ⨍
1539	    "boxVH" => "\N{BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL}",	# ╬
1540	    "boxvh" => "\N{BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL}",	# ┼
1541	    "boxHD" => "\N{BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL}",	# ╦
1542	    "boxhd" => "\N{BOX DRAWINGS LIGHT DOWN AND HORIZONTAL}",	# ┬
1543	    "boxHU" => "\N{BOX DRAWINGS DOUBLE UP AND HORIZONTAL}",	# ╩
1544	    "boxhu" => "\N{BOX DRAWINGS LIGHT UP AND HORIZONTAL}",	# ┴
1545	     "boxH" => "\N{BOX DRAWINGS DOUBLE HORIZONTAL}",	# ═
1546    "HorizontalLine" => "\N{BOX DRAWINGS LIGHT HORIZONTAL}",	# ─
1547	     "boxh" => "\N{BOX DRAWINGS LIGHT HORIZONTAL}",	# ─
1548	    "gescc" => "\N{GREATER-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL}",	# ⪩
1549	    "lescc" => "\N{LESS-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL}",	# ⪨
1550	   "lesges" => "\N{LESS-THAN ABOVE SLANTED EQUAL ABOVE GREATER-THAN ABOVE SLANTED EQUAL}",	# ⪓
1551	   "gesles" => "\N{GREATER-THAN ABOVE SLANTED EQUAL ABOVE LESS-THAN ABOVE SLANTED EQUAL}",	# ⪔
1552	      "lgE" => "\N{LESS-THAN ABOVE GREATER-THAN ABOVE DOUBLE-LINE EQUAL}",	# ⪑
1553	      "glE" => "\N{GREATER-THAN ABOVE LESS-THAN ABOVE DOUBLE-LINE EQUAL}",	# ⪒
1554	   "Colone" => "\N{DOUBLE COLON EQUAL}",	# ⩴
1555	   "nsccue" => "\N{DOES NOT SUCCEED OR EQUAL}",	# ⋡
1556    "NotSucceedsSlantEqual" => "\N{DOES NOT SUCCEED OR EQUAL}",	# ⋡
1557	   "nprcue" => "\N{DOES NOT PRECEDE OR EQUAL}",	# ⋠
1558    "NotPrecedesSlantEqual" => "\N{DOES NOT PRECEDE OR EQUAL}",	# ⋠
1559	   "nrtrie" => "\N{DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL}",	# ⋭
1560    "NotRightTriangleEqual" => "\N{DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL}",	# ⋭
1561    "ntrianglerighteq" => "\N{DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL}",	# ⋭
1562	    "gsime" => "\N{GREATER-THAN ABOVE SIMILAR OR EQUAL}",	# ⪎
1563	    "lsime" => "\N{LESS-THAN ABOVE SIMILAR OR EQUAL}",	# ⪍
1564	     "excl" => "!",	# !
1565	     "opar" => "\N{CIRCLED PARALLEL}",	# ⦷
1566	   "eparsl" => "\N{EQUALS SIGN AND SLANTED PARALLEL}",	# ⧣
1567	 "eqvparsl" => "\N{IDENTICAL TO AND SLANTED PARALLEL}",	# ⧥
1568	   "dfisht" => "\N{DOWN FISH TAIL}",	# ⥿
1569	   "ufisht" => "\N{UP FISH TAIL}",	# ⥾
1570	   "lfisht" => "\N{LEFT FISH TAIL}",	# ⥼
1571	   "rfisht" => "\N{RIGHT FISH TAIL}",	# ⥽
1572	   "Rarrtl" => "\N{RIGHTWARDS TWO-HEADED ARROW WITH TAIL}",	# ⤖
1573    "leftarrowtail" => "\N{LEFTWARDS ARROW WITH TAIL}",	# ↢
1574	   "larrtl" => "\N{LEFTWARDS ARROW WITH TAIL}",	# ↢
1575    "rightarrowtail" => "\N{RIGHTWARDS ARROW WITH TAIL}",	# ↣
1576	   "rarrtl" => "\N{RIGHTWARDS ARROW WITH TAIL}",	# ↣
1577	   "lAtail" => "\N{LEFTWARDS DOUBLE ARROW-TAIL}",	# ⤛
1578	   "rAtail" => "\N{RIGHTWARDS DOUBLE ARROW-TAIL}",	# ⤜
1579	   "latail" => "\N{LEFTWARDS ARROW-TAIL}",	# ⤙
1580	   "ratail" => "\N{RIGHTWARDS ARROW-TAIL}",	# ⤚
1581	   "forall" => "\N{FOR ALL}",	# ∀
1582	   "ForAll" => "\N{FOR ALL}",	# ∀
1583	      "sol" => "/",	# /
1584	     "bsol" => "\\",	# \
1585	   "topbot" => "\N{APL FUNCTIONAL SYMBOL I-BEAM}",	# ⌶
1586	    "fltns" => "\N{WHITE PARALLELOGRAM}",	# ▱
1587	 "DDotrahd" => "\N{RIGHTWARDS ARROW WITH DOTTED STEM}",	# ⤑
1588	     "andv" => "\N{LOGICAL AND WITH MIDDLE STEM}",	# ⩚
1589	      "orv" => "\N{LOGICAL OR WITH MIDDLE STEM}",	# ⩛
1590	     "Mopf" => "\N{MATHEMATICAL DOUBLE-STRUCK CAPITAL M}",	# ��
1591	      "Mfr" => "\N{MATHEMATICAL FRAKTUR CAPITAL M}",	# ��
1592	"Mellintrf" => "\N{SCRIPT CAPITAL M}",	# ℳ
1593	     "Mscr" => "\N{SCRIPT CAPITAL M}",	# ℳ
1594	   "phmmat" => "\N{SCRIPT CAPITAL M}",	# ℳ
1595	     "mopf" => "\N{MATHEMATICAL DOUBLE-STRUCK SMALL M}",	# ��
1596	      "mfr" => "\N{MATHEMATICAL FRAKTUR SMALL M}",	# ��
1597	     "mscr" => "\N{MATHEMATICAL SCRIPT SMALL M}",	# ��
1598	    "trisb" => "\N{TRIANGLE WITH SERIFS AT BOTTOM}",	# ⧍
1599	 "trpezium" => "\N{WHITE TRAPEZIUM}",	# ⏢
1600	      "num" => "#",	# #
1601	      "lat" => "\N{LARGER THAN}",	# ⪫
1602	      "smt" => "\N{SMALLER THAN}",	# ⪪
1603	      "ogt" => "\N{CIRCLED GREATER-THAN}",	# ⧁
1604    "GreaterGreater" => "\N{DOUBLE NESTED GREATER-THAN}",	# ⪢
1605	      "lEg" => "\N{LESS-THAN ABOVE DOUBLE-LINE EQUAL ABOVE GREATER-THAN}",	# ⪋
1606       "lesseqqgtr" => "\N{LESS-THAN ABOVE DOUBLE-LINE EQUAL ABOVE GREATER-THAN}",	# ⪋
1607	    "lsimg" => "\N{LESS-THAN ABOVE SIMILAR ABOVE GREATER-THAN}",	# ⪏
1608	       "gg" => "\N{MUCH GREATER-THAN}",	# ≫
1609    "NestedGreaterGreater" => "\N{MUCH GREATER-THAN}",	# ≫
1610	       "Gt" => "\N{MUCH GREATER-THAN}",	# ≫
1611	       "Gg" => "\N{VERY MUCH GREATER-THAN}",	# ⋙
1612	      "ggg" => "\N{VERY MUCH GREATER-THAN}",	# ⋙
1613	       "lg" => "\N{LESS-THAN OR GREATER-THAN}",	# ≶
1614      "LessGreater" => "\N{LESS-THAN OR GREATER-THAN}",	# ≶
1615	  "lessgtr" => "\N{LESS-THAN OR GREATER-THAN}",	# ≶
1616	     "ntlg" => "\N{NEITHER LESS-THAN NOR GREATER-THAN}",	# ≸
1617    "NotLessGreater" => "\N{NEITHER LESS-THAN NOR GREATER-THAN}",	# ≸
1618       "eqslantgtr" => "\N{SLANTED EQUAL TO OR GREATER-THAN}",	# ⪖
1619	      "egs" => "\N{SLANTED EQUAL TO OR GREATER-THAN}",	# ⪖
1620	       "eg" => "\N{DOUBLE-LINE EQUAL TO OR GREATER-THAN}",	# ⪚
1621	      "leg" => "\N{LESS-THAN EQUAL TO OR GREATER-THAN}",	# ⋚
1622    "LessEqualGreater" => "\N{LESS-THAN EQUAL TO OR GREATER-THAN}",	# ⋚
1623	"lesseqgtr" => "\N{LESS-THAN EQUAL TO OR GREATER-THAN}",	# ⋚
1624	     "simg" => "\N{SIMILAR OR GREATER-THAN}",	# ⪞
1625       "NotGreater" => "\N{NOT GREATER-THAN}",	# ≯
1626	     "ngtr" => "\N{NOT GREATER-THAN}",	# ≯
1627	      "ngt" => "\N{NOT GREATER-THAN}",	# ≯
1628	      "olt" => "\N{CIRCLED LESS-THAN}",	# ⧀
1629	 "LessLess" => "\N{DOUBLE NESTED LESS-THAN}",	# ⪡
1630	      "gla" => "\N{GREATER-THAN BESIDE LESS-THAN}",	# ⪥
1631	      "gEl" => "\N{GREATER-THAN ABOVE DOUBLE-LINE EQUAL ABOVE LESS-THAN}",	# ⪌
1632       "gtreqqless" => "\N{GREATER-THAN ABOVE DOUBLE-LINE EQUAL ABOVE LESS-THAN}",	# ⪌
1633	    "gsiml" => "\N{GREATER-THAN ABOVE SIMILAR ABOVE LESS-THAN}",	# ⪐
1634	      "glj" => "\N{GREATER-THAN OVERLAPPING LESS-THAN}",	# ⪤
1635	       "ll" => "\N{MUCH LESS-THAN}",	# ≪
1636    "NestedLessLess" => "\N{MUCH LESS-THAN}",	# ≪
1637	       "Lt" => "\N{MUCH LESS-THAN}",	# ≪
1638	       "Ll" => "\N{VERY MUCH LESS-THAN}",	# ⋘
1639	       "gl" => "\N{GREATER-THAN OR LESS-THAN}",	# ≷
1640      "GreaterLess" => "\N{GREATER-THAN OR LESS-THAN}",	# ≷
1641	  "gtrless" => "\N{GREATER-THAN OR LESS-THAN}",	# ≷
1642	     "ntgl" => "\N{NEITHER GREATER-THAN NOR LESS-THAN}",	# ≹
1643    "NotGreaterLess" => "\N{NEITHER GREATER-THAN NOR LESS-THAN}",	# ≹
1644	      "els" => "\N{SLANTED EQUAL TO OR LESS-THAN}",	# ⪕
1645      "eqslantless" => "\N{SLANTED EQUAL TO OR LESS-THAN}",	# ⪕
1646	       "el" => "\N{DOUBLE-LINE EQUAL TO OR LESS-THAN}",	# ⪙
1647	      "gel" => "\N{GREATER-THAN EQUAL TO OR LESS-THAN}",	# ⋛
1648    "GreaterEqualLess" => "\N{GREATER-THAN EQUAL TO OR LESS-THAN}",	# ⋛
1649	"gtreqless" => "\N{GREATER-THAN EQUAL TO OR LESS-THAN}",	# ⋛
1650	     "siml" => "\N{SIMILAR OR LESS-THAN}",	# ⪝
1651	    "nless" => "\N{NOT LESS-THAN}",	# ≮
1652	  "NotLess" => "\N{NOT LESS-THAN}",	# ≮
1653	      "nlt" => "\N{NOT LESS-THAN}",	# ≮
1654	   "Ncedil" => "\N{LATIN CAPITAL LETTER N WITH CEDILLA}",	# Ņ
1655	   "ncedil" => "\N{LATIN SMALL LETTER N WITH CEDILLA}",	# ņ
1656	   "Ntilde" => "\N{LATIN CAPITAL LETTER N WITH TILDE}",	# Ñ
1657	   "ntilde" => "\N{LATIN SMALL LETTER N WITH TILDE}",	# ñ
1658	    "bumpe" => "\N{DIFFERENCE BETWEEN}",	# ≏
1659	"HumpEqual" => "\N{DIFFERENCE BETWEEN}",	# ≏
1660	   "bumpeq" => "\N{DIFFERENCE BETWEEN}",	# ≏
1661	  "between" => "\N{BETWEEN}",	# ≬
1662	    "twixt" => "\N{BETWEEN}",	# ≬
1663	     "dash" => "\N{HYPHEN}",	# ‐
1664	   "hyphen" => "\N{HYPHEN}",	# ‐
1665	      "shy" => "\N{SOFT HYPHEN}",	# ­
1666	  "NewLine" => "\n",	#
1667	   "Nacute" => "\N{LATIN CAPITAL LETTER N WITH ACUTE}",	# Ń
1668	   "nacute" => "\N{LATIN SMALL LETTER N WITH ACUTE}",	# ń
1669	      "reg" => "\N{REGISTERED SIGN}",	# ®
1670	      "REG" => "\N{REGISTERED SIGN}",	# ®
1671	 "circledR" => "\N{REGISTERED SIGN}",	# ®
1672	  "pertenk" => "\N{PER TEN THOUSAND SIGN}",	# ‱
1673	      "deg" => "\N{DEGREE SIGN}",	# °
1674	   "female" => "\N{FEMALE SIGN}",	# ♀
1675	     "male" => "\N{MALE SIGN}",	# ♂
1676	   "permil" => "\N{PER MILLE SIGN}",	# ‰
1677	  "natural" => "\N{MUSIC NATURAL SIGN}",	# ♮
1678	    "natur" => "\N{MUSIC NATURAL SIGN}",	# ♮
1679	      "mho" => "\N{INVERTED OHM SIGN}",	# ℧
1680	     "odiv" => "\N{CIRCLED DIVISION SIGN}",	# ⨸
1681	   "odsold" => "\N{CIRCLED ANTICLOCKWISE-ROTATED DIVISION SIGN}",	# ⦼
1682	   "divide" => "\N{DIVISION SIGN}",	# ÷
1683	      "div" => "\N{DIVISION SIGN}",	# ÷
1684	    "times" => "\N{MULTIPLICATION SIGN}",	# ×
1685	     "sect" => "\N{SECTION SIGN}",	# §
1686	    "sharp" => "\N{MUSIC SHARP SIGN}",	# ♯
1687	      "sce" => "\N{SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN}",	# ⪰
1688    "SucceedsEqual" => "\N{SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN}",	# ⪰
1689	   "succeq" => "\N{SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN}",	# ⪰
1690	      "pre" => "\N{PRECEDES ABOVE SINGLE-LINE EQUALS SIGN}",	# ⪯
1691    "PrecedesEqual" => "\N{PRECEDES ABOVE SINGLE-LINE EQUALS SIGN}",	# ⪯
1692	   "preceq" => "\N{PRECEDES ABOVE SINGLE-LINE EQUALS SIGN}",	# ⪯
1693	     "subE" => "\N{SUBSET OF ABOVE EQUALS SIGN}",	# ⫅
1694	"subseteqq" => "\N{SUBSET OF ABOVE EQUALS SIGN}",	# ⫅
1695	     "supE" => "\N{SUPERSET OF ABOVE EQUALS SIGN}",	# ⫆
1696	"supseteqq" => "\N{SUPERSET OF ABOVE EQUALS SIGN}",	# ⫆
1697	    "simgE" => "\N{SIMILAR ABOVE GREATER-THAN ABOVE EQUALS SIGN}",	# ⪠
1698	    "simlE" => "\N{SIMILAR ABOVE LESS-THAN ABOVE EQUALS SIGN}",	# ⪟
1699	    "pluse" => "\N{PLUS SIGN ABOVE EQUALS SIGN}",	# ⩲
1700	      "scE" => "\N{SUCCEEDS ABOVE EQUALS SIGN}",	# ⪴
1701	      "prE" => "\N{PRECEDES ABOVE EQUALS SIGN}",	# ⪳
1702	    "eplus" => "\N{EQUALS SIGN ABOVE PLUS SIGN}",	# ⩱
1703	       "mp" => "\N{MINUS-OR-PLUS SIGN}",	# ∓
1704	   "mnplus" => "\N{MINUS-OR-PLUS SIGN}",	# ∓
1705	"MinusPlus" => "\N{MINUS-OR-PLUS SIGN}",	# ∓
1706	    "minus" => "\N{MINUS SIGN}",	# −
1707	       "pm" => "\N{PLUS-MINUS SIGN}",	# ±
1708	   "plusmn" => "\N{PLUS-MINUS SIGN}",	# ±
1709	"PlusMinus" => "\N{PLUS-MINUS SIGN}",	# ±
1710	     "flat" => "\N{MUSIC FLAT SIGN}",	# ♭
1711	     "copy" => "\N{COPYRIGHT SIGN}",	# ©
1712	     "COPY" => "\N{COPYRIGHT SIGN}",	# ©
1713	     "bnot" => "\N{REVERSED NOT SIGN}",	# ⌐
1714	     "bNot" => "\N{REVERSED DOUBLE STROKE NOT SIGN}",	# ⫭
1715	      "Not" => "\N{DOUBLE STROKE NOT SIGN}",	# ⫬
1716	      "not" => "\N{NOT SIGN}",	# ¬
1717	     "para" => "\N{PILCROW SIGN}",	# ¶
1718	     "Nopf" => "\N{DOUBLE-STRUCK CAPITAL N}",	# ℕ
1719	 "naturals" => "\N{DOUBLE-STRUCK CAPITAL N}",	# ℕ
1720	      "Nfr" => "\N{MATHEMATICAL FRAKTUR CAPITAL N}",	# ��
1721	     "Nscr" => "\N{MATHEMATICAL SCRIPT CAPITAL N}",	# ��
1722	     "nopf" => "\N{MATHEMATICAL DOUBLE-STRUCK SMALL N}",	# ��
1723	      "nfr" => "\N{MATHEMATICAL FRAKTUR SMALL N}",	# ��
1724	     "nscr" => "\N{MATHEMATICAL SCRIPT SMALL N}",	# ��
1725	   "Ncaron" => "\N{LATIN CAPITAL LETTER N WITH CARON}",	# Ň
1726	   "ncaron" => "\N{LATIN SMALL LETTER N WITH CARON}",	# ň
1727	      "Cup" => "\N{DOUBLE UNION}",	# ⋓
1728	   "capcup" => "\N{INTERSECTION ABOVE UNION}",	# ⩇
1729	 "capbrcup" => "\N{INTERSECTION ABOVE BAR ABOVE UNION}",	# ⩉
1730	   "cupcup" => "\N{UNION BESIDE AND JOINED WITH UNION}",	# ⩊
1731	      "cup" => "\N{UNION}",	# ∪
1732	"UnionPlus" => "\N{MULTISET UNION}",	# ⊎
1733	    "uplus" => "\N{MULTISET UNION}",	# ⊎
1734	    "Union" => "\N{N-ARY UNION}",	# ⋃
1735	   "bigcup" => "\N{N-ARY UNION}",	# ⋃
1736	     "xcup" => "\N{N-ARY UNION}",	# ⋃
1737	   "cupdot" => "\N{MULTISET MULTIPLICATION}",	# ⊍
1738	       "af" => "\N{FUNCTION APPLICATION}",	# ⁡
1739    "ApplyFunction" => "\N{FUNCTION APPLICATION}",	# ⁡
1740	   "prurel" => "\N{PRECEDES UNDER RELATION}",	# ⊰
1741	      "Tab" => "\N{CHARACTER TABULATION}",	#
1742	      "sum" => "\N{N-ARY SUMMATION}",	# ∑
1743	      "Sum" => "\N{N-ARY SUMMATION}",	# ∑
1744	    "awint" => "\N{ANTICLOCKWISE INTEGRATION}",	# ⨑
1745	      "Cap" => "\N{DOUBLE INTERSECTION}",	# ⋒
1746	   "cupcap" => "\N{UNION ABOVE INTERSECTION}",	# ⩆
1747	 "cupbrcap" => "\N{UNION ABOVE BAR ABOVE INTERSECTION}",	# ⩈
1748	   "capcap" => "\N{INTERSECTION BESIDE AND JOINED WITH INTERSECTION}",	# ⩋
1749	 "elinters" => "\N{ELECTRICAL INTERSECTION}",	# ⏧
1750	     "mlcp" => "\N{TRANSVERSAL INTERSECTION}",	# ⫛
1751	      "cap" => "\N{INTERSECTION}",	# ∩
1752     "Intersection" => "\N{N-ARY INTERSECTION}",	# ⋂
1753	   "bigcap" => "\N{N-ARY INTERSECTION}",	# ⋂
1754	     "xcap" => "\N{N-ARY INTERSECTION}",	# ⋂
1755       "rmoustache" => "\N{UPPER RIGHT OR LOWER LEFT CURLY BRACKET SECTION}",	# ⎱
1756	   "rmoust" => "\N{UPPER RIGHT OR LOWER LEFT CURLY BRACKET SECTION}",	# ⎱
1757       "lmoustache" => "\N{UPPER LEFT OR LOWER RIGHT CURLY BRACKET SECTION}",	# ⎰
1758	   "lmoust" => "\N{UPPER LEFT OR LOWER RIGHT CURLY BRACKET SECTION}",	# ⎰
1759	 "cirfnint" => "\N{CIRCULATION FUNCTION}",	# ⨐
1760	    "mDDot" => "\N{GEOMETRIC PROPORTION}",	# ∺
1761       "Proportion" => "\N{PROPORTION}",	# ∷
1762	    "Colon" => "\N{PROPORTION}",	# ∷
1763	    "colon" => ":",	# :
1764	    "bsemi" => "\N{REVERSED SEMICOLON}",	# ⁏
1765	   "ecolon" => "\N{EQUALS COLON}",	# ≕
1766	  "eqcolon" => "\N{EQUALS COLON}",	# ≕
1767	   "numero" => "\N{NUMERO SIGN}",	# №
1768    "DownLeftRightVector" => "\N{LEFT BARB DOWN RIGHT BARB DOWN HARPOON}",	# ⥐
1769	 "lurdshar" => "\N{LEFT BARB UP RIGHT BARB DOWN HARPOON}",	# ⥊
1770	 "ldrushar" => "\N{LEFT BARB DOWN RIGHT BARB UP HARPOON}",	# ⥋
1771    "LeftRightVector" => "\N{LEFT BARB UP RIGHT BARB UP HARPOON}",	# ⥎
1772      "Equilibrium" => "\N{RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON}",	# ⇌
1773	    "rlhar" => "\N{RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON}",	# ⇌
1774    "rightleftharpoons" => "\N{RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON}",	# ⇌
1775    "ReverseEquilibrium" => "\N{LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON}",	# ⇋
1776	    "lrhar" => "\N{LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON}",	# ⇋
1777    "leftrightharpoons" => "\N{LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON}",	# ⇋
1778    "LeftUpDownVector" => "\N{UP BARB LEFT DOWN BARB LEFT HARPOON}",	# ⥑
1779    "RightUpDownVector" => "\N{UP BARB RIGHT DOWN BARB RIGHT HARPOON}",	# ⥏
1780	    "Hacek" => "\N{CARON}",	# ˇ
1781	    "caron" => "\N{CARON}",	# ˇ
1782	     "macr" => "\N{MACRON}",	# ¯
1783	    "strns" => "\N{MACRON}",	# ¯
1784	  "rdldhar" => "\N{RIGHTWARDS HARPOON WITH BARB DOWN ABOVE LEFTWARDS HARPOON WITH BARB DOWN}",	# ⥩
1785	     "lHar" => "\N{LEFTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB DOWN}",	# ⥢
1786	  "ldrdhar" => "\N{LEFTWARDS HARPOON WITH BARB DOWN ABOVE RIGHTWARDS HARPOON WITH BARB DOWN}",	# ⥧
1787	     "rHar" => "\N{RIGHTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB DOWN}",	# ⥤
1788	 "angmsdah" => "\N{MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND DOWN}",	# ⦯
1789	 "angmsdag" => "\N{MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND DOWN}",	# ⦮
1790	  "uwangle" => "\N{OBLIQUE ANGLE OPENING DOWN}",	# ⦧
1791	    "frown" => "\N{FROWN}",	# ⌢
1792	   "sfrown" => "\N{FROWN}",	# ⌢
1793	      "ENG" => "\N{LATIN CAPITAL LETTER ENG}",	# Ŋ
1794	      "eng" => "\N{LATIN SMALL LETTER ENG}",	# ŋ
1795	   "Otilde" => "\N{LATIN CAPITAL LETTER O WITH TILDE}",	# Õ
1796	   "otilde" => "\N{LATIN SMALL LETTER O WITH TILDE}",	# õ
1797	    "OElig" => "\N{LATIN CAPITAL LIGATURE OE}",	# Œ
1798	    "oelig" => "\N{LATIN SMALL LIGATURE OE}",	# œ
1799	   "Oslash" => "\N{LATIN CAPITAL LETTER O WITH STROKE}",	# Ø
1800	   "oslash" => "\N{LATIN SMALL LETTER O WITH STROKE}",	# ø
1801	   "Odblac" => "\N{LATIN CAPITAL LETTER O WITH DOUBLE ACUTE}",	# Ő
1802	   "odblac" => "\N{LATIN SMALL LETTER O WITH DOUBLE ACUTE}",	# ő
1803	   "Oacute" => "\N{LATIN CAPITAL LETTER O WITH ACUTE}",	# Ó
1804	   "oacute" => "\N{LATIN SMALL LETTER O WITH ACUTE}",	# ó
1805	   "Ograve" => "\N{LATIN CAPITAL LETTER O WITH GRAVE}",	# Ò
1806	   "ograve" => "\N{LATIN SMALL LETTER O WITH GRAVE}",	# ò
1807	    "ratio" => "\N{RATIO}",	# ∶
1808	    "Omacr" => "\N{LATIN CAPITAL LETTER O WITH MACRON}",	# Ō
1809	    "omacr" => "\N{LATIN SMALL LETTER O WITH MACRON}",	# ō
1810	     "Oopf" => "\N{MATHEMATICAL DOUBLE-STRUCK CAPITAL O}",	# ��
1811	      "Ofr" => "\N{MATHEMATICAL FRAKTUR CAPITAL O}",	# ��
1812	     "Oscr" => "\N{MATHEMATICAL SCRIPT CAPITAL O}",	# ��
1813	     "oopf" => "\N{MATHEMATICAL DOUBLE-STRUCK SMALL O}",	# ��
1814	      "ofr" => "\N{MATHEMATICAL FRAKTUR SMALL O}",	# ��
1815	  "orderof" => "\N{SCRIPT SMALL O}",	# ℴ
1816	     "oscr" => "\N{SCRIPT SMALL O}",	# ℴ
1817	    "order" => "\N{SCRIPT SMALL O}",	# ℴ
1818	     "ordm" => "\N{MASCULINE ORDINAL INDICATOR}",	# º
1819	     "Ouml" => "\N{LATIN CAPITAL LETTER O WITH DIAERESIS}",	# Ö
1820	     "ouml" => "\N{LATIN SMALL LETTER O WITH DIAERESIS}",	# ö
1821	"Congruent" => "\N{IDENTICAL TO}",	# ≡
1822	    "equiv" => "\N{IDENTICAL TO}",	# ≡
1823     "NotCongruent" => "\N{NOT IDENTICAL TO}",	# ≢
1824	   "nequiv" => "\N{NOT IDENTICAL TO}",	# ≢
1825     "Proportional" => "\N{PROPORTIONAL TO}",	# ∝
1826	   "propto" => "\N{PROPORTIONAL TO}",	# ∝
1827	"varpropto" => "\N{PROPORTIONAL TO}",	# ∝
1828	     "prop" => "\N{PROPORTIONAL TO}",	# ∝
1829	    "vprop" => "\N{PROPORTIONAL TO}",	# ∝
1830	     "trie" => "\N{DELTA EQUAL TO}",	# ≜
1831	"triangleq" => "\N{DELTA EQUAL TO}",	# ≜
1832	  "questeq" => "\N{QUESTIONED EQUAL TO}",	# ≟
1833	   "equest" => "\N{QUESTIONED EQUAL TO}",	# ≟
1834    "GreaterSlantEqual" => "\N{GREATER-THAN OR SLANTED EQUAL TO}",	# ⩾
1835	      "ges" => "\N{GREATER-THAN OR SLANTED EQUAL TO}",	# ⩾
1836	 "geqslant" => "\N{GREATER-THAN OR SLANTED EQUAL TO}",	# ⩾
1837    "LessSlantEqual" => "\N{LESS-THAN OR SLANTED EQUAL TO}",	# ⩽
1838	      "les" => "\N{LESS-THAN OR SLANTED EQUAL TO}",	# ⩽
1839	 "leqslant" => "\N{LESS-THAN OR SLANTED EQUAL TO}",	# ⩽
1840	     "cire" => "\N{RING EQUAL TO}",	# ≗
1841	   "circeq" => "\N{RING EQUAL TO}",	# ≗
1842	    "bcong" => "\N{ALL EQUAL TO}",	# ≌
1843	 "backcong" => "\N{ALL EQUAL TO}",	# ≌
1844	   "eqcirc" => "\N{RING IN EQUAL TO}",	# ≖
1845	     "ecir" => "\N{RING IN EQUAL TO}",	# ≖
1846	       "gE" => "\N{GREATER-THAN OVER EQUAL TO}",	# ≧
1847    "GreaterFullEqual" => "\N{GREATER-THAN OVER EQUAL TO}",	# ≧
1848	     "geqq" => "\N{GREATER-THAN OVER EQUAL TO}",	# ≧
1849	       "lE" => "\N{LESS-THAN OVER EQUAL TO}",	# ≦
1850    "LessFullEqual" => "\N{LESS-THAN OVER EQUAL TO}",	# ≦
1851	     "leqq" => "\N{LESS-THAN OVER EQUAL TO}",	# ≦
1852	   "sqsube" => "\N{SQUARE IMAGE OF OR EQUAL TO}",	# ⊑
1853    "SquareSubsetEqual" => "\N{SQUARE IMAGE OF OR EQUAL TO}",	# ⊑
1854       "sqsubseteq" => "\N{SQUARE IMAGE OF OR EQUAL TO}",	# ⊑
1855	  "nsqsube" => "\N{NOT SQUARE IMAGE OF OR EQUAL TO}",	# ⋢
1856    "NotSquareSubsetEqual" => "\N{NOT SQUARE IMAGE OF OR EQUAL TO}",	# ⋢
1857	   "sqsupe" => "\N{SQUARE ORIGINAL OF OR EQUAL TO}",	# ⊒
1858    "SquareSupersetEqual" => "\N{SQUARE ORIGINAL OF OR EQUAL TO}",	# ⊒
1859       "sqsupseteq" => "\N{SQUARE ORIGINAL OF OR EQUAL TO}",	# ⊒
1860	  "nsqsupe" => "\N{NOT SQUARE ORIGINAL OF OR EQUAL TO}",	# ⋣
1861    "NotSquareSupersetEqual" => "\N{NOT SQUARE ORIGINAL OF OR EQUAL TO}",	# ⋣
1862	    "ltrie" => "\N{NORMAL SUBGROUP OF OR EQUAL TO}",	# ⊴
1863    "LeftTriangleEqual" => "\N{NORMAL SUBGROUP OF OR EQUAL TO}",	# ⊴
1864    "trianglelefteq" => "\N{NORMAL SUBGROUP OF OR EQUAL TO}",	# ⊴
1865	   "nltrie" => "\N{NOT NORMAL SUBGROUP OF OR EQUAL TO}",	# ⋬
1866    "NotLeftTriangleEqual" => "\N{NOT NORMAL SUBGROUP OF OR EQUAL TO}",	# ⋬
1867    "ntrianglelefteq" => "\N{NOT NORMAL SUBGROUP OF OR EQUAL TO}",	# ⋬
1868	     "sube" => "\N{SUBSET OF OR EQUAL TO}",	# ⊆
1869      "SubsetEqual" => "\N{SUBSET OF OR EQUAL TO}",	# ⊆
1870	 "subseteq" => "\N{SUBSET OF OR EQUAL TO}",	# ⊆
1871	     "supe" => "\N{SUPERSET OF OR EQUAL TO}",	# ⊇
1872    "SupersetEqual" => "\N{SUPERSET OF OR EQUAL TO}",	# ⊇
1873	 "supseteq" => "\N{SUPERSET OF OR EQUAL TO}",	# ⊇
1874	      "ape" => "\N{ALMOST EQUAL OR EQUAL TO}",	# ≊
1875	 "approxeq" => "\N{ALMOST EQUAL OR EQUAL TO}",	# ≊
1876	      "apE" => "\N{APPROXIMATELY EQUAL OR EQUAL TO}",	# ⩰
1877	     "late" => "\N{LARGER THAN OR EQUAL TO}",	# ⪭
1878	     "smte" => "\N{SMALLER THAN OR EQUAL TO}",	# ⪬
1879	       "ge" => "\N{GREATER-THAN OR EQUAL TO}",	# ≥
1880     "GreaterEqual" => "\N{GREATER-THAN OR EQUAL TO}",	# ≥
1881	      "geq" => "\N{GREATER-THAN OR EQUAL TO}",	# ≥
1882	       "le" => "\N{LESS-THAN OR EQUAL TO}",	# ≤
1883	      "leq" => "\N{LESS-THAN OR EQUAL TO}",	# ≤
1884	    "nsube" => "\N{NEITHER A SUBSET OF NOR EQUAL TO}",	# ⊈
1885    "NotSubsetEqual" => "\N{NEITHER A SUBSET OF NOR EQUAL TO}",	# ⊈
1886	"nsubseteq" => "\N{NEITHER A SUBSET OF NOR EQUAL TO}",	# ⊈
1887	    "nsupe" => "\N{NEITHER A SUPERSET OF NOR EQUAL TO}",	# ⊉
1888    "NotSupersetEqual" => "\N{NEITHER A SUPERSET OF NOR EQUAL TO}",	# ⊉
1889	"nsupseteq" => "\N{NEITHER A SUPERSET OF NOR EQUAL TO}",	# ⊉
1890	      "nge" => "\N{NEITHER GREATER-THAN NOR EQUAL TO}",	# ≱
1891    "NotGreaterEqual" => "\N{NEITHER GREATER-THAN NOR EQUAL TO}",	# ≱
1892	     "ngeq" => "\N{NEITHER GREATER-THAN NOR EQUAL TO}",	# ≱
1893	      "nle" => "\N{NEITHER LESS-THAN NOR EQUAL TO}",	# ≰
1894     "NotLessEqual" => "\N{NEITHER LESS-THAN NOR EQUAL TO}",	# ≰
1895	     "nleq" => "\N{NEITHER LESS-THAN NOR EQUAL TO}",	# ≰
1896	    "rtrie" => "\N{CONTAINS AS NORMAL SUBGROUP OR EQUAL TO}",	# ⊵
1897    "RightTriangleEqual" => "\N{CONTAINS AS NORMAL SUBGROUP OR EQUAL TO}",	# ⊵
1898    "trianglerighteq" => "\N{CONTAINS AS NORMAL SUBGROUP OR EQUAL TO}",	# ⊵
1899	    "sccue" => "\N{SUCCEEDS OR EQUAL TO}",	# ≽
1900    "SucceedsSlantEqual" => "\N{SUCCEEDS OR EQUAL TO}",	# ≽
1901      "succcurlyeq" => "\N{SUCCEEDS OR EQUAL TO}",	# ≽
1902	    "prcue" => "\N{PRECEDES OR EQUAL TO}",	# ≼
1903    "PrecedesSlantEqual" => "\N{PRECEDES OR EQUAL TO}",	# ≼
1904      "preccurlyeq" => "\N{PRECEDES OR EQUAL TO}",	# ≼
1905	    "csube" => "\N{CLOSED SUBSET OR EQUAL TO}",	# ⫑
1906	    "csupe" => "\N{CLOSED SUPERSET OR EQUAL TO}",	# ⫒
1907	      "gne" => "\N{GREATER-THAN AND SINGLE-LINE NOT EQUAL TO}",	# ⪈
1908	     "gneq" => "\N{GREATER-THAN AND SINGLE-LINE NOT EQUAL TO}",	# ⪈
1909	      "lne" => "\N{LESS-THAN AND SINGLE-LINE NOT EQUAL TO}",	# ⪇
1910	     "lneq" => "\N{LESS-THAN AND SINGLE-LINE NOT EQUAL TO}",	# ⪇
1911	    "subnE" => "\N{SUBSET OF ABOVE NOT EQUAL TO}",	# ⫋
1912       "subsetneqq" => "\N{SUBSET OF ABOVE NOT EQUAL TO}",	# ⫋
1913	    "supnE" => "\N{SUPERSET OF ABOVE NOT EQUAL TO}",	# ⫌
1914       "supsetneqq" => "\N{SUPERSET OF ABOVE NOT EQUAL TO}",	# ⫌
1915	     "scnE" => "\N{SUCCEEDS ABOVE NOT EQUAL TO}",	# ⪶
1916	 "succneqq" => "\N{SUCCEEDS ABOVE NOT EQUAL TO}",	# ⪶
1917	     "prnE" => "\N{PRECEDES ABOVE NOT EQUAL TO}",	# ⪵
1918	 "precneqq" => "\N{PRECEDES ABOVE NOT EQUAL TO}",	# ⪵
1919	    "subne" => "\N{SUBSET OF WITH NOT EQUAL TO}",	# ⊊
1920	"subsetneq" => "\N{SUBSET OF WITH NOT EQUAL TO}",	# ⊊
1921	    "supne" => "\N{SUPERSET OF WITH NOT EQUAL TO}",	# ⊋
1922	"supsetneq" => "\N{SUPERSET OF WITH NOT EQUAL TO}",	# ⊋
1923	       "ne" => "\N{NOT EQUAL TO}",	# ≠
1924	 "NotEqual" => "\N{NOT EQUAL TO}",	# ≠
1925	      "gnE" => "\N{GREATER-THAN BUT NOT EQUAL TO}",	# ≩
1926	    "gneqq" => "\N{GREATER-THAN BUT NOT EQUAL TO}",	# ≩
1927	      "lnE" => "\N{LESS-THAN BUT NOT EQUAL TO}",	# ≨
1928	    "lneqq" => "\N{LESS-THAN BUT NOT EQUAL TO}",	# ≨
1929	     "scap" => "\N{SUCCEEDS ABOVE ALMOST EQUAL TO}",	# ⪸
1930       "succapprox" => "\N{SUCCEEDS ABOVE ALMOST EQUAL TO}",	# ⪸
1931	     "prap" => "\N{PRECEDES ABOVE ALMOST EQUAL TO}",	# ⪷
1932       "precapprox" => "\N{PRECEDES ABOVE ALMOST EQUAL TO}",	# ⪷
1933	   "rarrap" => "\N{RIGHTWARDS ARROW ABOVE ALMOST EQUAL TO}",	# ⥵
1934       "TildeTilde" => "\N{ALMOST EQUAL TO}",	# ≈
1935	       "ap" => "\N{ALMOST EQUAL TO}",	# ≈
1936	    "thkap" => "\N{ALMOST EQUAL TO}",	# ≈
1937	    "asymp" => "\N{ALMOST EQUAL TO}",	# ≈
1938	   "approx" => "\N{ALMOST EQUAL TO}",	# ≈
1939      "thickapprox" => "\N{ALMOST EQUAL TO}",	# ≈
1940	    "scnap" => "\N{SUCCEEDS ABOVE NOT ALMOST EQUAL TO}",	# ⪺
1941      "succnapprox" => "\N{SUCCEEDS ABOVE NOT ALMOST EQUAL TO}",	# ⪺
1942	    "prnap" => "\N{PRECEDES ABOVE NOT ALMOST EQUAL TO}",	# ⪹
1943      "precnapprox" => "\N{PRECEDES ABOVE NOT ALMOST EQUAL TO}",	# ⪹
1944    "NotTildeTilde" => "\N{NOT ALMOST EQUAL TO}",	# ≉
1945	      "nap" => "\N{NOT ALMOST EQUAL TO}",	# ≉
1946	  "napprox" => "\N{NOT ALMOST EQUAL TO}",	# ≉
1947	     "cong" => "\N{APPROXIMATELY EQUAL TO}",	# ≅
1948    "TildeFullEqual" => "\N{APPROXIMATELY EQUAL TO}",	# ≅
1949     "risingdotseq" => "\N{IMAGE OF OR APPROXIMATELY EQUAL TO}",	# ≓
1950	    "erDot" => "\N{IMAGE OF OR APPROXIMATELY EQUAL TO}",	# ≓
1951	     "eDot" => "\N{GEOMETRICALLY EQUAL TO}",	# ≑
1952	 "doteqdot" => "\N{GEOMETRICALLY EQUAL TO}",	# ≑
1953	     "sime" => "\N{ASYMPTOTICALLY EQUAL TO}",	# ≃
1954       "TildeEqual" => "\N{ASYMPTOTICALLY EQUAL TO}",	# ≃
1955	    "simeq" => "\N{ASYMPTOTICALLY EQUAL TO}",	# ≃
1956	    "nsime" => "\N{NOT ASYMPTOTICALLY EQUAL TO}",	# ≄
1957    "NotTildeEqual" => "\N{NOT ASYMPTOTICALLY EQUAL TO}",	# ≄
1958	   "nsimeq" => "\N{NOT ASYMPTOTICALLY EQUAL TO}",	# ≄
1959	    "ncong" => "\N{NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO}",	# ≇
1960    "NotTildeFullEqual" => "\N{NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO}",	# ≇
1961	    "simne" => "\N{APPROXIMATELY BUT NOT ACTUALLY EQUAL TO}",	# ≆
1962	     "epar" => "\N{EQUAL AND PARALLEL TO}",	# ⋕
1963	 "parallel" => "\N{PARALLEL TO}",	# ∥
1964    "shortparallel" => "\N{PARALLEL TO}",	# ∥
1965    "DoubleVerticalBar" => "\N{PARALLEL TO}",	# ∥
1966	      "par" => "\N{PARALLEL TO}",	# ∥
1967	     "spar" => "\N{PARALLEL TO}",	# ∥
1968	"nparallel" => "\N{NOT PARALLEL TO}",	# ∦
1969    "nshortparallel" => "\N{NOT PARALLEL TO}",	# ∦
1970    "NotDoubleVerticalBar" => "\N{NOT PARALLEL TO}",	# ∦
1971	     "npar" => "\N{NOT PARALLEL TO}",	# ∦
1972	    "nspar" => "\N{NOT PARALLEL TO}",	# ∦
1973	    "veeeq" => "\N{EQUIANGULAR TO}",	# ≚
1974	   "CupCap" => "\N{EQUIVALENT TO}",	# ≍
1975	  "asympeq" => "\N{EQUIVALENT TO}",	# ≍
1976     "GreaterTilde" => "\N{GREATER-THAN OR EQUIVALENT TO}",	# ≳
1977	     "gsim" => "\N{GREATER-THAN OR EQUIVALENT TO}",	# ≳
1978	   "gtrsim" => "\N{GREATER-THAN OR EQUIVALENT TO}",	# ≳
1979	"LessTilde" => "\N{LESS-THAN OR EQUIVALENT TO}",	# ≲
1980	     "lsim" => "\N{LESS-THAN OR EQUIVALENT TO}",	# ≲
1981	  "lesssim" => "\N{LESS-THAN OR EQUIVALENT TO}",	# ≲
1982    "NotGreaterTilde" => "\N{NEITHER GREATER-THAN NOR EQUIVALENT TO}",	# ≵
1983	    "ngsim" => "\N{NEITHER GREATER-THAN NOR EQUIVALENT TO}",	# ≵
1984     "NotLessTilde" => "\N{NEITHER LESS-THAN NOR EQUIVALENT TO}",	# ≴
1985	    "nlsim" => "\N{NEITHER LESS-THAN NOR EQUIVALENT TO}",	# ≴
1986    "SucceedsTilde" => "\N{SUCCEEDS OR EQUIVALENT TO}",	# ≿
1987	  "succsim" => "\N{SUCCEEDS OR EQUIVALENT TO}",	# ≿
1988	    "scsim" => "\N{SUCCEEDS OR EQUIVALENT TO}",	# ≿
1989    "PrecedesTilde" => "\N{PRECEDES OR EQUIVALENT TO}",	# ≾
1990	  "precsim" => "\N{PRECEDES OR EQUIVALENT TO}",	# ≾
1991	    "prsim" => "\N{PRECEDES OR EQUIVALENT TO}",	# ≾
1992	"NotCupCap" => "\N{NOT EQUIVALENT TO}",	# ≭
1993	    "gnsim" => "\N{GREATER-THAN BUT NOT EQUIVALENT TO}",	# ⋧
1994	    "lnsim" => "\N{LESS-THAN BUT NOT EQUIVALENT TO}",	# ⋦
1995	 "succnsim" => "\N{SUCCEEDS BUT NOT EQUIVALENT TO}",	# ⋩
1996	   "scnsim" => "\N{SUCCEEDS BUT NOT EQUIVALENT TO}",	# ⋩
1997	 "precnsim" => "\N{PRECEDES BUT NOT EQUIVALENT TO}",	# ⋨
1998	   "prnsim" => "\N{PRECEDES BUT NOT EQUIVALENT TO}",	# ⋨
1999	     "bump" => "\N{GEOMETRICALLY EQUIVALENT TO}",	# ≎
2000     "HumpDownHump" => "\N{GEOMETRICALLY EQUIVALENT TO}",	# ≎
2001	   "Bumpeq" => "\N{GEOMETRICALLY EQUIVALENT TO}",	# ≎
2002	  "plustwo" => "\N{PLUS SIGN WITH SUBSCRIPT TWO}",	# ⨧
2003    "SquareIntersection" => "\N{SQUARE CAP}",	# ⊓
2004	    "sqcap" => "\N{SQUARE CAP}",	# ⊓
2005	 "multimap" => "\N{MULTIMAP}",	# ⊸
2006	    "mumap" => "\N{MULTIMAP}",	# ⊸
2007	   "weierp" => "\N{SCRIPT CAPITAL P}",	# ℘
2008	       "wp" => "\N{SCRIPT CAPITAL P}",	# ℘
2009	      ## "amp" => "&",	# &
2010	      ## "AMP" => "&",	# &
2011	   "larrlp" => "\N{LEFTWARDS ARROW WITH LOOP}",	# ↫
2012    "looparrowleft" => "\N{LEFTWARDS ARROW WITH LOOP}",	# ↫
2013	   "rarrlp" => "\N{RIGHTWARDS ARROW WITH LOOP}",	# ↬
2014    "looparrowright" => "\N{RIGHTWARDS ARROW WITH LOOP}",	# ↬
2015	   "dlcrop" => "\N{BOTTOM LEFT CROP}",	# ⌍
2016	   "ulcrop" => "\N{TOP LEFT CROP}",	# ⌏
2017	   "drcrop" => "\N{BOTTOM RIGHT CROP}",	# ⌌
2018	   "urcrop" => "\N{TOP RIGHT CROP}",	# ⌎
2019	  "topfork" => "\N{PITCHFORK WITH TEE TOP}",	# ⫚
2020	     "Popf" => "\N{DOUBLE-STRUCK CAPITAL P}",	# ℙ
2021	   "primes" => "\N{DOUBLE-STRUCK CAPITAL P}",	# ℙ
2022	      "Pfr" => "\N{MATHEMATICAL FRAKTUR CAPITAL P}",	# ��
2023	     "Pscr" => "\N{MATHEMATICAL SCRIPT CAPITAL P}",	# ��
2024	     "popf" => "\N{MATHEMATICAL DOUBLE-STRUCK SMALL P}",	# ��
2025	      "pfr" => "\N{MATHEMATICAL FRAKTUR SMALL P}",	# ��
2026	     "pscr" => "\N{MATHEMATICAL SCRIPT SMALL P}",	# ��
2027	  "ruluhar" => "\N{RIGHTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB UP}",	# ⥨
2028	  "luruhar" => "\N{LEFTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB UP}",	# ⥦
2029      "SquareUnion" => "\N{SQUARE CUP}",	# ⊔
2030	    "sqcup" => "\N{SQUARE CUP}",	# ⊔
2031	 "angmsdaf" => "\N{MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND UP}",	# ⦭
2032	 "angmsdae" => "\N{MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND UP}",	# ⦬
2033	  "dwangle" => "\N{OBLIQUE ANGLE OPENING UP}",	# ⦦
2034    "NotRightTriangle" => "\N{DOES NOT CONTAIN AS NORMAL SUBGROUP}",	# ⋫
2035	    "nrtri" => "\N{DOES NOT CONTAIN AS NORMAL SUBGROUP}",	# ⋫
2036    "ntriangleright" => "\N{DOES NOT CONTAIN AS NORMAL SUBGROUP}",	# ⋫
2037    "RightTriangle" => "\N{CONTAINS AS NORMAL SUBGROUP}",	# ⊳
2038	    "vrtri" => "\N{CONTAINS AS NORMAL SUBGROUP}",	# ⊳
2039    "vartriangleright" => "\N{CONTAINS AS NORMAL SUBGROUP}",	# ⊳
2040	    "comma" => q(,),	# ,
2041	     "lsqb" => q([),	# [
2042	     "rsqb" => q(]),	# ]
2043	     "lcub" => q({),	# {
2044	     "rcub" => q(}),	# }
2045	   "period" => q(.),	# .
2046	     "Qopf" => "\N{DOUBLE-STRUCK CAPITAL Q}",	# ℚ
2047	"rationals" => "\N{DOUBLE-STRUCK CAPITAL Q}",	# ℚ
2048	      "Qfr" => "\N{MATHEMATICAL FRAKTUR CAPITAL Q}",	# ��
2049	     "Qscr" => "\N{MATHEMATICAL SCRIPT CAPITAL Q}",	# ��
2050	     "qopf" => "\N{MATHEMATICAL DOUBLE-STRUCK SMALL Q}",	# ��
2051	      "qfr" => "\N{MATHEMATICAL FRAKTUR SMALL Q}",	# ��
2052	     "qscr" => "\N{MATHEMATICAL SCRIPT SMALL Q}",	# ��
2053	     "quot" => q("),	# "
2054	     "QUOT" => q("),	# "
2055	   "kgreen" => "\N{LATIN SMALL LETTER KRA}",	# ĸ
2056	   "solbar" => "\N{APL FUNCTIONAL SYMBOL SLASH BAR}",	# ⌿
2057	     "omid" => "\N{CIRCLED VERTICAL BAR}",	# ⦶
2058    "LeftTriangleBar" => "\N{LEFT TRIANGLE BESIDE VERTICAL BAR}",	# ⧏
2059	  "nvinfin" => "\N{INFINITY NEGATED WITH VERTICAL BAR}",	# ⧞
2060    "VerticalSeparator" => "\N{LIGHT VERTICAL BAR}",	# ❘
2061	    "ohbar" => "\N{CIRCLE WITH HORIZONTAL BAR}",	# ⦵
2062	   "horbar" => "\N{HORIZONTAL BAR}",	# ―
2063    "DownLeftTeeVector" => "\N{LEFTWARDS HARPOON WITH BARB DOWN FROM BAR}",	# ⥞
2064    "DownRightTeeVector" => "\N{RIGHTWARDS HARPOON WITH BARB DOWN FROM BAR}",	# ⥟
2065    "LeftTeeVector" => "\N{LEFTWARDS HARPOON WITH BARB UP FROM BAR}",	# ⥚
2066    "RightTeeVector" => "\N{RIGHTWARDS HARPOON WITH BARB UP FROM BAR}",	# ⥛
2067    "LeftDownTeeVector" => "\N{DOWNWARDS HARPOON WITH BARB LEFT FROM BAR}",	# ⥡
2068    "LeftUpTeeVector" => "\N{UPWARDS HARPOON WITH BARB LEFT FROM BAR}",	# ⥠
2069    "RightDownTeeVector" => "\N{DOWNWARDS HARPOON WITH BARB RIGHT FROM BAR}",	# ⥝
2070    "RightUpTeeVector" => "\N{UPWARDS HARPOON WITH BARB RIGHT FROM BAR}",	# ⥜
2071	      "Map" => "\N{RIGHTWARDS TWO-HEADED ARROW FROM BAR}",	# ⤅
2072       "mapstodown" => "\N{DOWNWARDS ARROW FROM BAR}",	# ↧
2073     "DownTeeArrow" => "\N{DOWNWARDS ARROW FROM BAR}",	# ↧
2074	 "mapstoup" => "\N{UPWARDS ARROW FROM BAR}",	# ↥
2075       "UpTeeArrow" => "\N{UPWARDS ARROW FROM BAR}",	# ↥
2076       "mapstoleft" => "\N{LEFTWARDS ARROW FROM BAR}",	# ↤
2077     "LeftTeeArrow" => "\N{LEFTWARDS ARROW FROM BAR}",	# ↤
2078       "longmapsto" => "\N{LONG RIGHTWARDS ARROW FROM BAR}",	# ⟼
2079	     "xmap" => "\N{LONG RIGHTWARDS ARROW FROM BAR}",	# ⟼
2080	   "mapsto" => "\N{RIGHTWARDS ARROW FROM BAR}",	# ↦
2081	      "map" => "\N{RIGHTWARDS ARROW FROM BAR}",	# ↦
2082    "RightTeeArrow" => "\N{RIGHTWARDS ARROW FROM BAR}",	# ↦
2083	   "brvbar" => "\N{BROKEN BAR}",	# ¦
2084    "DownLeftVectorBar" => "\N{LEFTWARDS HARPOON WITH BARB DOWN TO BAR}",	# ⥖
2085    "DownRightVectorBar" => "\N{RIGHTWARDS HARPOON WITH BARB DOWN TO BAR}",	# ⥗
2086    "LeftVectorBar" => "\N{LEFTWARDS HARPOON WITH BARB UP TO BAR}",	# ⥒
2087    "RightVectorBar" => "\N{RIGHTWARDS HARPOON WITH BARB UP TO BAR}",	# ⥓
2088    "LeftDownVectorBar" => "\N{DOWNWARDS HARPOON WITH BARB LEFT TO BAR}",	# ⥙
2089    "LeftUpVectorBar" => "\N{UPWARDS HARPOON WITH BARB LEFT TO BAR}",	# ⥘
2090    "RightDownVectorBar" => "\N{DOWNWARDS HARPOON WITH BARB RIGHT TO BAR}",	# ⥕
2091    "RightUpVectorBar" => "\N{UPWARDS HARPOON WITH BARB RIGHT TO BAR}",	# ⥔
2092     "DownArrowBar" => "\N{DOWNWARDS ARROW TO BAR}",	# ⤓
2093       "UpArrowBar" => "\N{UPWARDS ARROW TO BAR}",	# ⤒
2094	    "larrb" => "\N{LEFTWARDS ARROW TO BAR}",	# ⇤
2095     "LeftArrowBar" => "\N{LEFTWARDS ARROW TO BAR}",	# ⇤
2096	    "rarrb" => "\N{RIGHTWARDS ARROW TO BAR}",	# ⇥
2097    "RightArrowBar" => "\N{RIGHTWARDS ARROW TO BAR}",	# ⇥
2098	 "UnderBar" => "_",	# _
2099	   "wedbar" => "\N{LOGICAL AND WITH UNDERBAR}",	# ⩟
2100	    "range" => "\N{REVERSED ANGLE WITH UNDERBAR}",	# ⦥
2101	     "ange" => "\N{ANGLE WITH UNDERBAR}",	# ⦤
2102	     "vBar" => "\N{SHORT UP TACK WITH UNDERBAR}",	# ⫨
2103	 "timesbar" => "\N{MULTIPLICATION SIGN WITH UNDERBAR}",	# ⨱
2104	    "lbrke" => "\N{LEFT SQUARE BRACKET WITH UNDERBAR}",	# ⦋
2105	    "rbrke" => "\N{RIGHT SQUARE BRACKET WITH UNDERBAR}",	# ⦌
2106	   "verbar" => "|",	# |
2107	  "notinvb" => "\N{SMALL ELEMENT OF WITH OVERBAR}",	# ⋷
2108	  "notinvc" => "\N{ELEMENT OF WITH OVERBAR}",	# ⋶
2109	     "Barv" => "\N{SHORT DOWN TACK WITH OVERBAR}",	# ⫧
2110	     "ncup" => "\N{UNION WITH OVERBAR}",	# ⩂
2111	     "ncap" => "\N{INTERSECTION WITH OVERBAR}",	# ⩃
2112	  "notnivb" => "\N{SMALL CONTAINS WITH OVERBAR}",	# ⋾
2113	  "notnivc" => "\N{CONTAINS WITH OVERBAR}",	# ⋽
2114	     "dsol" => "\N{SOLIDUS WITH OVERBAR}",	# ⧶
2115	  "demptyv" => "\N{EMPTY SET WITH OVERBAR}",	# ⦱
2116	   "lowbar" => "_",	# _
2117	   "Rcedil" => "\N{LATIN CAPITAL LETTER R WITH CEDILLA}",	# Ŗ
2118	   "rcedil" => "\N{LATIN SMALL LETTER R WITH CEDILLA}",	# ŗ
2119	    "operp" => "\N{CIRCLED PERPENDICULAR}",	# ⦹
2120	     "lpar" => "(",	# (
2121	     "rpar" => ")",	# )
2122	     "star" => "\N{WHITE STAR}",	# ☆
2123	     "sext" => "\N{SIX POINTED BLACK STAR}",	# ✶
2124	    "starf" => "\N{BLACK STAR}",	# ★
2125	  "bigstar" => "\N{BLACK STAR}",	# ★
2126	  "notniva" => "\N{DOES NOT CONTAIN AS MEMBER}",	# ∌
2127	    "notni" => "\N{DOES NOT CONTAIN AS MEMBER}",	# ∌
2128    "NotReverseElement" => "\N{DOES NOT CONTAIN AS MEMBER}",	# ∌
2129	       "ni" => "\N{CONTAINS AS MEMBER}",	# ∋
2130	 "SuchThat" => "\N{CONTAINS AS MEMBER}",	# ∋
2131    "ReverseElement" => "\N{CONTAINS AS MEMBER}",	# ∋
2132	      "niv" => "\N{CONTAINS AS MEMBER}",	# ∋
2133	     "nldr" => "\N{TWO DOT LEADER}",	# ‥
2134	   "telrec" => "\N{TELEPHONE RECORDER}",	# ⌕
2135	   "Dagger" => "\N{DOUBLE DAGGER}",	# ‡
2136	  "ddagger" => "\N{DOUBLE DAGGER}",	# ‡
2137	   "dagger" => "\N{DAGGER}",	# †
2138	  "NoBreak" => "\N{WORD JOINER}",	# ⁠
2139	      "zwj" => "\N{ZERO WIDTH JOINER}",	# ‍
2140	     "zwnj" => "\N{ZERO WIDTH NON-JOINER}",	# ‌
2141	  "lbrksld" => "\N{LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER}",	# ⦏
2142	  "rbrksld" => "\N{RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER}",	# ⦎
2143	  "lbrkslu" => "\N{LEFT SQUARE BRACKET WITH TICK IN TOP CORNER}",	# ⦍
2144	  "rbrkslu" => "\N{RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER}",	# ⦐
2145	   "dlcorn" => "\N{BOTTOM LEFT CORNER}",	# ⌞
2146	 "llcorner" => "\N{BOTTOM LEFT CORNER}",	# ⌞
2147	   "ulcorn" => "\N{TOP LEFT CORNER}",	# ⌜
2148	 "ulcorner" => "\N{TOP LEFT CORNER}",	# ⌜
2149	   "drcorn" => "\N{BOTTOM RIGHT CORNER}",	# ⌟
2150	 "lrcorner" => "\N{BOTTOM RIGHT CORNER}",	# ⌟
2151	   "urcorn" => "\N{TOP RIGHT CORNER}",	# ⌝
2152	 "urcorner" => "\N{TOP RIGHT CORNER}",	# ⌝
2153	   "Racute" => "\N{LATIN CAPITAL LETTER R WITH ACUTE}",	# Ŕ
2154	   "racute" => "\N{LATIN SMALL LETTER R WITH ACUTE}",	# ŕ
2155	   "Rcaron" => "\N{LATIN CAPITAL LETTER R WITH CARON}",	# Ř
2156	   "rcaron" => "\N{LATIN SMALL LETTER R WITH CARON}",	# ř
2157	  "orslope" => "\N{SLOPING LARGE OR}",	# ⩗
2158	       "Or" => "\N{DOUBLE LOGICAL OR}",	# ⩔
2159	     "oror" => "\N{TWO INTERSECTING LOGICAL OR}",	# ⩖
2160	    "cupor" => "\N{UNION WITH LOGICAL OR}",	# ⩅
2161	      "vee" => "\N{LOGICAL OR}",	# ∨
2162	       "or" => "\N{LOGICAL OR}",	# ∨
2163	    "cuvee" => "\N{CURLY LOGICAL OR}",	# ⋎
2164	 "curlyvee" => "\N{CURLY LOGICAL OR}",	# ⋎
2165	      "Vee" => "\N{N-ARY LOGICAL OR}",	# ⋁
2166	   "bigvee" => "\N{N-ARY LOGICAL OR}",	# ⋁
2167	     "xvee" => "\N{N-ARY LOGICAL OR}",	# ⋁
2168	   "barvee" => "\N{NOR}",	# ⊽
2169	   "lfloor" => "\N{LEFT FLOOR}",	# ⌊
2170	"LeftFloor" => "\N{LEFT FLOOR}",	# ⌊
2171	   "rfloor" => "\N{RIGHT FLOOR}",	# ⌋
2172       "RightFloor" => "\N{RIGHT FLOOR}",	# ⌋
2173	   "target" => "\N{POSITION INDICATOR}",	# ⌖
2174    "InvisibleComma" => "\N{INVISIBLE SEPARATOR}",	# ⁣
2175	       "ic" => "\N{INVISIBLE SEPARATOR}",	# ⁣
2176	  "diamond" => "\N{DIAMOND OPERATOR}",	# ⋄
2177	  "Diamond" => "\N{DIAMOND OPERATOR}",	# ⋄
2178	     "diam" => "\N{DIAMOND OPERATOR}",	# ⋄
2179	   "subsim" => "\N{SUBSET OF ABOVE TILDE OPERATOR}",	# ⫇
2180	   "supsim" => "\N{SUPERSET OF ABOVE TILDE OPERATOR}",	# ⫈
2181	     "Esim" => "\N{EQUALS SIGN ABOVE TILDE OPERATOR}",	# ⩳
2182	  "larrsim" => "\N{LEFTWARDS ARROW ABOVE TILDE OPERATOR}",	# ⥳
2183	  "rarrsim" => "\N{RIGHTWARDS ARROW ABOVE TILDE OPERATOR}",	# ⥴
2184	   "parsim" => "\N{PARALLEL WITH TILDE OPERATOR}",	# ⫳
2185	    "Tilde" => "\N{TILDE OPERATOR}",	# ∼
2186	      "sim" => "\N{TILDE OPERATOR}",	# ∼
2187	 "thicksim" => "\N{TILDE OPERATOR}",	# ∼
2188	   "thksim" => "\N{TILDE OPERATOR}",	# ∼
2189      "circledcirc" => "\N{CIRCLED RING OPERATOR}",	# ⊚
2190	     "ocir" => "\N{CIRCLED RING OPERATOR}",	# ⊚
2191      "SmallCircle" => "\N{RING OPERATOR}",	# ∘
2192	   "compfn" => "\N{RING OPERATOR}",	# ∘
2193       "circledast" => "\N{CIRCLED ASTERISK OPERATOR}",	# ⊛
2194	     "oast" => "\N{CIRCLED ASTERISK OPERATOR}",	# ⊛
2195	   "lowast" => "\N{ASTERISK OPERATOR}",	# ∗
2196	   "iiiint" => "\N{QUADRUPLE INTEGRAL OPERATOR}",	# ⨌
2197	     "qint" => "\N{QUADRUPLE INTEGRAL OPERATOR}",	# ⨌
2198	  "quatint" => "\N{QUATERNION INTEGRAL OPERATOR}",	# ⨖
2199	 "bigsqcup" => "\N{N-ARY SQUARE UNION OPERATOR}",	# ⨆
2200	   "xsqcup" => "\N{N-ARY SQUARE UNION OPERATOR}",	# ⨆
2201	   "sstarf" => "\N{STAR OPERATOR}",	# ⋆
2202	     "Star" => "\N{STAR OPERATOR}",	# ⋆
2203	   "xotime" => "\N{N-ARY CIRCLED TIMES OPERATOR}",	# ⨂
2204	"bigotimes" => "\N{N-ARY CIRCLED TIMES OPERATOR}",	# ⨂
2205	    "parsl" => "\N{DOUBLE SOLIDUS OPERATOR}",	# ⫽
2206	 "bigoplus" => "\N{N-ARY CIRCLED PLUS OPERATOR}",	# ⨁
2207	   "xoplus" => "\N{N-ARY CIRCLED PLUS OPERATOR}",	# ⨁
2208	 "pointint" => "\N{INTEGRAL AROUND A POINT OPERATOR}",	# ⨕
2209	"CircleDot" => "\N{CIRCLED DOT OPERATOR}",	# ⊙
2210	     "odot" => "\N{CIRCLED DOT OPERATOR}",	# ⊙
2211	  "bigodot" => "\N{N-ARY CIRCLED DOT OPERATOR}",	# ⨀
2212	    "xodot" => "\N{N-ARY CIRCLED DOT OPERATOR}",	# ⨀
2213	    "sdotb" => "\N{SQUARED DOT OPERATOR}",	# ⊡
2214	"dotsquare" => "\N{SQUARED DOT OPERATOR}",	# ⊡
2215	     "sdot" => "\N{DOT OPERATOR}",	# ⋅
2216	   "veebar" => "\N{XOR}",	# ⊻
2217	     "Ropf" => "\N{DOUBLE-STRUCK CAPITAL R}",	# ℝ
2218	    "reals" => "\N{DOUBLE-STRUCK CAPITAL R}",	# ℝ
2219	       "Re" => "\N{BLACK-LETTER CAPITAL R}",	# ℜ
2220	     "real" => "\N{BLACK-LETTER CAPITAL R}",	# ℜ
2221	      "Rfr" => "\N{BLACK-LETTER CAPITAL R}",	# ℜ
2222	 "realpart" => "\N{BLACK-LETTER CAPITAL R}",	# ℜ
2223	  "realine" => "\N{SCRIPT CAPITAL R}",	# ℛ
2224	     "Rscr" => "\N{SCRIPT CAPITAL R}",	# ℛ
2225	     "ropf" => "\N{MATHEMATICAL DOUBLE-STRUCK SMALL R}",	# ��
2226	      "rfr" => "\N{MATHEMATICAL FRAKTUR SMALL R}",	# ��
2227	     "rscr" => "\N{MATHEMATICAL SCRIPT SMALL R}",	# ��
2228	   "Scedil" => "\N{LATIN CAPITAL LETTER S WITH CEDILLA}",	# Ş
2229	   "scedil" => "\N{LATIN SMALL LETTER S WITH CEDILLA}",	# ş
2230	       "Sc" => "\N{DOUBLE SUCCEEDS}",	# ⪼
2231	     "succ" => "\N{SUCCEEDS}",	# ≻
2232	       "sc" => "\N{SUCCEEDS}",	# ≻
2233	 "Succeeds" => "\N{SUCCEEDS}",	# ≻
2234      "curlyeqsucc" => "\N{EQUAL TO OR SUCCEEDS}",	# ⋟
2235	    "cuesc" => "\N{EQUAL TO OR SUCCEEDS}",	# ⋟
2236	    "lhard" => "\N{LEFTWARDS HARPOON WITH BARB DOWNWARDS}",	# ↽
2237    "leftharpoondown" => "\N{LEFTWARDS HARPOON WITH BARB DOWNWARDS}",	# ↽
2238    "DownLeftVector" => "\N{LEFTWARDS HARPOON WITH BARB DOWNWARDS}",	# ↽
2239	    "rhard" => "\N{RIGHTWARDS HARPOON WITH BARB DOWNWARDS}",	# ⇁
2240    "rightharpoondown" => "\N{RIGHTWARDS HARPOON WITH BARB DOWNWARDS}",	# ⇁
2241    "DownRightVector" => "\N{RIGHTWARDS HARPOON WITH BARB DOWNWARDS}",	# ⇁
2242	    "forkv" => "\N{ELEMENT OF OPENING DOWNWARDS}",	# ⫙
2243	  "cudarrr" => "\N{ARROW POINTING RIGHTWARDS THEN CURVING DOWNWARDS}",	# ⤵
2244    "leftharpoonup" => "\N{LEFTWARDS HARPOON WITH BARB UPWARDS}",	# ↼
2245       "LeftVector" => "\N{LEFTWARDS HARPOON WITH BARB UPWARDS}",	# ↼
2246	    "lharu" => "\N{LEFTWARDS HARPOON WITH BARB UPWARDS}",	# ↼
2247    "rightharpoonup" => "\N{RIGHTWARDS HARPOON WITH BARB UPWARDS}",	# ⇀
2248      "RightVector" => "\N{RIGHTWARDS HARPOON WITH BARB UPWARDS}",	# ⇀
2249	    "rharu" => "\N{RIGHTWARDS HARPOON WITH BARB UPWARDS}",	# ⇀
2250	    "dharl" => "\N{DOWNWARDS HARPOON WITH BARB LEFTWARDS}",	# ⇃
2251    "LeftDownVector" => "\N{DOWNWARDS HARPOON WITH BARB LEFTWARDS}",	# ⇃
2252    "downharpoonleft" => "\N{DOWNWARDS HARPOON WITH BARB LEFTWARDS}",	# ⇃
2253	    "uharl" => "\N{UPWARDS HARPOON WITH BARB LEFTWARDS}",	# ↿
2254     "LeftUpVector" => "\N{UPWARDS HARPOON WITH BARB LEFTWARDS}",	# ↿
2255    "upharpoonleft" => "\N{UPWARDS HARPOON WITH BARB LEFTWARDS}",	# ↿
2256	     "ldca" => "\N{ARROW POINTING DOWNWARDS THEN CURVING LEFTWARDS}",	# ⤶
2257	     "ldsh" => "\N{DOWNWARDS ARROW WITH TIP LEFTWARDS}",	# ↲
2258	      "lsh" => "\N{UPWARDS ARROW WITH TIP LEFTWARDS}",	# ↰
2259	      "Lsh" => "\N{UPWARDS ARROW WITH TIP LEFTWARDS}",	# ↰
2260	    "crarr" => "\N{DOWNWARDS ARROW WITH CORNER LEFTWARDS}",	# ↵
2261    "RightDownVector" => "\N{DOWNWARDS HARPOON WITH BARB RIGHTWARDS}",	# ⇂
2262	    "dharr" => "\N{DOWNWARDS HARPOON WITH BARB RIGHTWARDS}",	# ⇂
2263    "downharpoonright" => "\N{DOWNWARDS HARPOON WITH BARB RIGHTWARDS}",	# ⇂
2264    "RightUpVector" => "\N{UPWARDS HARPOON WITH BARB RIGHTWARDS}",	# ↾
2265	    "uharr" => "\N{UPWARDS HARPOON WITH BARB RIGHTWARDS}",	# ↾
2266    "upharpoonright" => "\N{UPWARDS HARPOON WITH BARB RIGHTWARDS}",	# ↾
2267	     "rdca" => "\N{ARROW POINTING DOWNWARDS THEN CURVING RIGHTWARDS}",	# ⤷
2268	     "rdsh" => "\N{DOWNWARDS ARROW WITH TIP RIGHTWARDS}",	# ↳
2269	      "rsh" => "\N{UPWARDS ARROW WITH TIP RIGHTWARDS}",	# ↱
2270	      "Rsh" => "\N{UPWARDS ARROW WITH TIP RIGHTWARDS}",	# ↱
2271	    "Vdash" => "\N{FORCES}",	# ⊩
2272	       "Pr" => "\N{DOUBLE PRECEDES}",	# ⪻
2273	     "prec" => "\N{PRECEDES}",	# ≺
2274	       "pr" => "\N{PRECEDES}",	# ≺
2275	 "Precedes" => "\N{PRECEDES}",	# ≺
2276      "curlyeqprec" => "\N{EQUAL TO OR PRECEDES}",	# ⋞
2277	    "cuepr" => "\N{EQUAL TO OR PRECEDES}",	# ⋞
2278	      "mid" => "\N{DIVIDES}",	# ∣
2279	     "smid" => "\N{DIVIDES}",	# ∣
2280	 "shortmid" => "\N{DIVIDES}",	# ∣
2281      "VerticalBar" => "\N{DIVIDES}",	# ∣
2282	    "isinE" => "\N{ELEMENT OF WITH TWO HORIZONTAL STROKES}",	# ⋹
2283      "CircleTimes" => "\N{CIRCLED TIMES}",	# ⊗
2284	   "otimes" => "\N{CIRCLED TIMES}",	# ⊗
2285	   "timesb" => "\N{SQUARED TIMES}",	# ⊠
2286	 "boxtimes" => "\N{SQUARED TIMES}",	# ⊠
2287    "InvisibleTimes" => "\N{INVISIBLE TIMES}",	# ⁢
2288	       "it" => "\N{INVISIBLE TIMES}",	# ⁢
2289    "divideontimes" => "\N{DIVISION TIMES}",	# ⋇
2290	   "divonx" => "\N{DIVISION TIMES}",	# ⋇
2291	   "boxbox" => "\N{TWO JOINED SQUARES}",	# ⧉
2292	   "wedgeq" => "\N{ESTIMATES}",	# ≙
2293	   "Sacute" => "\N{LATIN CAPITAL LETTER S WITH ACUTE}",	# Ś
2294	   "sacute" => "\N{LATIN SMALL LETTER S WITH ACUTE}",	# ś
2295	    "ccups" => "\N{CLOSED UNION WITH SERIFS}",	# ⩌
2296	    "ccaps" => "\N{CLOSED INTERSECTION WITH SERIFS}",	# ⩍
2297	    "lopar" => "\N{LEFT WHITE PARENTHESIS}",	# ⦅
2298	    "ropar" => "\N{RIGHT WHITE PARENTHESIS}",	# ⦆
2299    "UnderParenthesis" => "\N{BOTTOM PARENTHESIS}",	# ⏝
2300    "OverParenthesis" => "\N{TOP PARENTHESIS}",	# ⏜
2301	      "die" => "\N{DIAERESIS}",	# ¨
2302	      "uml" => "\N{DIAERESIS}",	# ¨
2303	      "Dot" => "\N{DIAERESIS}",	# ¨
2304	"DoubleDot" => "\N{DIAERESIS}",	# ¨
2305	   "vellip" => "\N{VERTICAL ELLIPSIS}",	# ⋮
2306	    "dtdot" => "\N{DOWN RIGHT DIAGONAL ELLIPSIS}",	# ⋱
2307	    "utdot" => "\N{UP RIGHT DIAGONAL ELLIPSIS}",	# ⋰
2308	    "ctdot" => "\N{MIDLINE HORIZONTAL ELLIPSIS}",	# ⋯
2309	   "hellip" => "\N{HORIZONTAL ELLIPSIS}",	# …
2310	     "mldr" => "\N{HORIZONTAL ELLIPSIS}",	# …
2311	   "equals" => "=",	# =
2312	    "bsime" => "\N{REVERSED TILDE EQUALS}",	# ⋍
2313	"backsimeq" => "\N{REVERSED TILDE EQUALS}",	# ⋍
2314	   "colone" => "\N{COLON EQUALS}",	# ≔
2315	   "Assign" => "\N{COLON EQUALS}",	# ≔
2316	  "coloneq" => "\N{COLON EQUALS}",	# ≔
2317	   "models" => "\N{MODELS}",	# ⊧
2318	    "Equal" => "\N{TWO CONSECUTIVE EQUALS SIGNS}",	# ⩵
2319	   "Scaron" => "\N{LATIN CAPITAL LETTER S WITH CARON}",	# Š
2320	   "scaron" => "\N{LATIN SMALL LETTER S WITH CARON}",	# š
2321	     "apos" => "'",	# '
2322	     "Sopf" => "\N{MATHEMATICAL DOUBLE-STRUCK CAPITAL S}",	# ��
2323	      "Sfr" => "\N{MATHEMATICAL FRAKTUR CAPITAL S}",	# ��
2324	     "Sscr" => "\N{MATHEMATICAL SCRIPT CAPITAL S}",	# ��
2325	     "sopf" => "\N{MATHEMATICAL DOUBLE-STRUCK SMALL S}",	# ��
2326	      "sfr" => "\N{MATHEMATICAL FRAKTUR SMALL S}",	# ��
2327	     "sscr" => "\N{MATHEMATICAL SCRIPT SMALL S}",	# ��
2328	  "maltese" => "\N{MALTESE CROSS}",	# ✠
2329	     "malt" => "\N{MALTESE CROSS}",	# ✠
2330	 "circledS" => "\N{CIRCLED LATIN CAPITAL LETTER S}",	# Ⓢ
2331	       "oS" => "\N{CIRCLED LATIN CAPITAL LETTER S}",	# Ⓢ
2332	    "szlig" => "\N{LATIN SMALL LETTER SHARP S}",	# ß
2333	   "Exists" => "\N{THERE EXISTS}",	# ∃
2334	    "exist" => "\N{THERE EXISTS}",	# ∃
2335	  "suphsol" => "\N{SUPERSET PRECEDING SOLIDUS}",	# ⟉
2336	     "plus" => "+",	# +
2337       "CirclePlus" => "\N{CIRCLED PLUS}",	# ⊕
2338	    "oplus" => "\N{CIRCLED PLUS}",	# ⊕
2339	    "plusb" => "\N{SQUARED PLUS}",	# ⊞
2340	  "boxplus" => "\N{SQUARED PLUS}",	# ⊞
2341	 "biguplus" => "\N{N-ARY UNION OPERATOR WITH PLUS}",	# ⨄
2342	   "xuplus" => "\N{N-ARY UNION OPERATOR WITH PLUS}",	# ⨄
2343	  "cularrp" => "\N{TOP ARC ANTICLOCKWISE ARROW WITH PLUS}",	# ⤽
2344	   "plusdo" => "\N{DOT PLUS}",	# ∔
2345	  "dotplus" => "\N{DOT PLUS}",	# ∔
2346      "CircleMinus" => "\N{CIRCLED MINUS}",	# ⊖
2347	   "ominus" => "\N{CIRCLED MINUS}",	# ⊖
2348	   "minusb" => "\N{SQUARED MINUS}",	# ⊟
2349	 "boxminus" => "\N{SQUARED MINUS}",	# ⊟
2350	  "curarrm" => "\N{TOP ARC CLOCKWISE ARROW WITH MINUS}",	# ⤼
2351	"Backslash" => "\N{SET MINUS}",	# ∖
2352	    "setmn" => "\N{SET MINUS}",	# ∖
2353	   "ssetmn" => "\N{SET MINUS}",	# ∖
2354	 "setminus" => "\N{SET MINUS}",	# ∖
2355    "smallsetminus" => "\N{SET MINUS}",	# ∖
2356	   "minusd" => "\N{DOT MINUS}",	# ∸
2357	 "dotminus" => "\N{DOT MINUS}",	# ∸
2358	    "ddarr" => "\N{DOWNWARDS PAIRED ARROWS}",	# ⇊
2359    "downdownarrows" => "\N{DOWNWARDS PAIRED ARROWS}",	# ⇊
2360	    "uuarr" => "\N{UPWARDS PAIRED ARROWS}",	# ⇈
2361       "upuparrows" => "\N{UPWARDS PAIRED ARROWS}",	# ⇈
2362	    "llarr" => "\N{LEFTWARDS PAIRED ARROWS}",	# ⇇
2363    "leftleftarrows" => "\N{LEFTWARDS PAIRED ARROWS}",	# ⇇
2364	    "rrarr" => "\N{RIGHTWARDS PAIRED ARROWS}",	# ⇉
2365    "rightrightarrows" => "\N{RIGHTWARDS PAIRED ARROWS}",	# ⇉
2366	      "Hat" => "^",	# ^
2367	   "commat" => "@",	# @
2368	  "ccupssm" => "\N{CLOSED UNION WITH SERIFS AND SMASH PRODUCT}",	# ⩐
2369	   "smashp" => "\N{SMASH PRODUCT}",	# ⨳
2370    "VerticalTilde" => "\N{WREATH PRODUCT}",	# ≀
2371	   "wreath" => "\N{WREATH PRODUCT}",	# ≀
2372	       "wr" => "\N{WREATH PRODUCT}",	# ≀
2373	    "amalg" => "\N{AMALGAMATION OR COPRODUCT}",	# ⨿
2374	   "coprod" => "\N{N-ARY COPRODUCT}",	# ∐
2375	"Coproduct" => "\N{N-ARY COPRODUCT}",	# ∐
2376	    "iprod" => "\N{INTERIOR PRODUCT}",	# ⨼
2377	  "intprod" => "\N{INTERIOR PRODUCT}",	# ⨼
2378	    "Cross" => "\N{VECTOR OR CROSS PRODUCT}",	# ⨯
2379	   "ltimes" => "\N{LEFT NORMAL FACTOR SEMIDIRECT PRODUCT}",	# ⋉
2380	   "rtimes" => "\N{RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT}",	# ⋊
2381	   "lthree" => "\N{LEFT SEMIDIRECT PRODUCT}",	# ⋋
2382    "leftthreetimes" => "\N{LEFT SEMIDIRECT PRODUCT}",	# ⋋
2383	   "rthree" => "\N{RIGHT SEMIDIRECT PRODUCT}",	# ⋌
2384    "rightthreetimes" => "\N{RIGHT SEMIDIRECT PRODUCT}",	# ⋌
2385	     "prod" => "\N{N-ARY PRODUCT}",	# ∏
2386	  "Product" => "\N{N-ARY PRODUCT}",	# ∏
2387	     "Lang" => "\N{MATHEMATICAL LEFT DOUBLE ANGLE BRACKET}",	# ⟪
2388	     "Rang" => "\N{MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET}",	# ⟫
2389	   "langle" => "\N{MATHEMATICAL LEFT ANGLE BRACKET}",	# ⟨
2390	     "lang" => "\N{MATHEMATICAL LEFT ANGLE BRACKET}",	# ⟨
2391    "LeftAngleBracket" => "\N{MATHEMATICAL LEFT ANGLE BRACKET}",	# ⟨
2392	   "rangle" => "\N{MATHEMATICAL RIGHT ANGLE BRACKET}",	# ⟩
2393	     "rang" => "\N{MATHEMATICAL RIGHT ANGLE BRACKET}",	# ⟩
2394    "RightAngleBracket" => "\N{MATHEMATICAL RIGHT ANGLE BRACKET}",	# ⟩
2395	    "lobrk" => "\N{MATHEMATICAL LEFT WHITE SQUARE BRACKET}",	# ⟦
2396    "LeftDoubleBracket" => "\N{MATHEMATICAL LEFT WHITE SQUARE BRACKET}",	# ⟦
2397	    "robrk" => "\N{MATHEMATICAL RIGHT WHITE SQUARE BRACKET}",	# ⟧
2398    "RightDoubleBracket" => "\N{MATHEMATICAL RIGHT WHITE SQUARE BRACKET}",	# ⟧
2399	     "bbrk" => "\N{BOTTOM SQUARE BRACKET}",	# ⎵
2400     "UnderBracket" => "\N{BOTTOM SQUARE BRACKET}",	# ⎵
2401	     "tbrk" => "\N{TOP SQUARE BRACKET}",	# ⎴
2402      "OverBracket" => "\N{TOP SQUARE BRACKET}",	# ⎴
2403	 "bbrktbrk" => "\N{BOTTOM SQUARE BRACKET OVER TOP SQUARE BRACKET}",	# ⎶
2404	    "loang" => "\N{MATHEMATICAL LEFT WHITE TORTOISE SHELL BRACKET}",	# ⟬
2405	    "roang" => "\N{MATHEMATICAL RIGHT WHITE TORTOISE SHELL BRACKET}",	# ⟭
2406	   "gtlPar" => "\N{DOUBLE LEFT ARC GREATER-THAN BRACKET}",	# ⦕
2407	   "rpargt" => "\N{RIGHT ARC GREATER-THAN BRACKET}",	# ⦔
2408	   "lparlt" => "\N{LEFT ARC LESS-THAN BRACKET}",	# ⦓
2409	   "ltrPar" => "\N{DOUBLE RIGHT ARC LESS-THAN BRACKET}",	# ⦖
2410       "UnderBrace" => "\N{BOTTOM CURLY BRACKET}",	# ⏟
2411	"OverBrace" => "\N{TOP CURLY BRACKET}",	# ⏞
2412	    "ofcir" => "\N{CIRCLED BULLET}",	# ⦿
2413	    "olcir" => "\N{CIRCLED WHITE BULLET}",	# ⦾
2414	   "hybull" => "\N{HYPHEN BULLET}",	# ⁃
2415	     "bull" => "\N{BULLET}",	# •
2416	   "bullet" => "\N{BULLET}",	# •
2417	     "csub" => "\N{CLOSED SUBSET}",	# ⫏
2418	  "suphsub" => "\N{SUPERSET BESIDE SUBSET}",	# ⫗
2419	      "Sub" => "\N{DOUBLE SUBSET}",	# ⋐
2420	   "Subset" => "\N{DOUBLE SUBSET}",	# ⋐
2421	   "subsub" => "\N{SUBSET ABOVE SUBSET}",	# ⫕
2422	   "supsub" => "\N{SUPERSET ABOVE SUBSET}",	# ⫔
2423	 "bsolhsub" => "\N{REVERSE SOLIDUS PRECEDING SUBSET}",	# ⟈
2424	  "supdsub" => "\N{SUPERSET BESIDE AND JOINED BY DASH WITH SUBSET}",	# ⫘
2425	     "csup" => "\N{CLOSED SUPERSET}",	# ⫐
2426	      "Sup" => "\N{DOUBLE SUPERSET}",	# ⋑
2427	   "Supset" => "\N{DOUBLE SUPERSET}",	# ⋑
2428	   "subsup" => "\N{SUBSET ABOVE SUPERSET}",	# ⫓
2429	   "supsup" => "\N{SUPERSET ABOVE SUPERSET}",	# ⫖
2430	  "bemptyv" => "\N{REVERSED EMPTY SET}",	# ⦰
2431       "varnothing" => "\N{EMPTY SET}",	# ∅
2432	 "emptyset" => "\N{EMPTY SET}",	# ∅
2433	   "emptyv" => "\N{EMPTY SET}",	# ∅
2434	    "empty" => "\N{EMPTY SET}",	# ∅
2435	    "boxVL" => "\N{BOX DRAWINGS DOUBLE VERTICAL AND LEFT}",	# ╣
2436	    "boxvl" => "\N{BOX DRAWINGS LIGHT VERTICAL AND LEFT}",	# ┤
2437	    "boxDL" => "\N{BOX DRAWINGS DOUBLE DOWN AND LEFT}",	# ╗
2438	 "angmsdad" => "\N{MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND LEFT}",	# ⦫
2439	    "boxdl" => "\N{BOX DRAWINGS LIGHT DOWN AND LEFT}",	# ┐
2440	    "boxUL" => "\N{BOX DRAWINGS DOUBLE UP AND LEFT}",	# ╝
2441	 "angmsdab" => "\N{MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND LEFT}",	# ⦩
2442	    "boxul" => "\N{BOX DRAWINGS LIGHT UP AND LEFT}",	# ┘
2443	 "gesdotol" => "\N{GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE LEFT}",	# ⪄
2444	       "gt" => ">",	# >
2445	       "GT" => ">",	# >
2446	     "dHar" => "\N{DOWNWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT}",	# ⥥
2447    "UpEquilibrium" => "\N{UPWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT}",	# ⥮
2448	    "udhar" => "\N{UPWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT}",	# ⥮
2449    "ReverseUpEquilibrium" => "\N{DOWNWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT}",	# ⥯
2450	    "duhar" => "\N{DOWNWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT}",	# ⥯
2451	     "uHar" => "\N{UPWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT}",	# ⥣
2452	    "boxVR" => "\N{BOX DRAWINGS DOUBLE VERTICAL AND RIGHT}",	# ╠
2453	    "boxvr" => "\N{BOX DRAWINGS LIGHT VERTICAL AND RIGHT}",	# ├
2454	    "boxDR" => "\N{BOX DRAWINGS DOUBLE DOWN AND RIGHT}",	# ╔
2455	 "angmsdac" => "\N{MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND RIGHT}",	# ⦪
2456	    "boxdr" => "\N{BOX DRAWINGS LIGHT DOWN AND RIGHT}",	# ┌
2457	    "boxUR" => "\N{BOX DRAWINGS DOUBLE UP AND RIGHT}",	# ╚
2458	 "angmsdaa" => "\N{MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND RIGHT}",	# ⦨
2459	    "boxur" => "\N{BOX DRAWINGS LIGHT UP AND RIGHT}",	# └
2460	  "cirscir" => "\N{CIRCLE WITH SMALL CIRCLE TO THE RIGHT}",	# ⧂
2461	     "cirE" => "\N{CIRCLE WITH TWO HORIZONTAL STROKES TO THE RIGHT}",	# ⧃
2462	 "lesdotor" => "\N{LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE RIGHT}",	# ⪃
2463	    "rarrc" => "\N{WAVE ARROW POINTING DIRECTLY RIGHT}",	# ⤳
2464	   "copysr" => "\N{SOUND RECORDING COPYRIGHT}",	# ℗
2465	 "DotEqual" => "\N{APPROACHES THE LIMIT}",	# ≐
2466	    "doteq" => "\N{APPROACHES THE LIMIT}",	# ≐
2467	    "esdot" => "\N{APPROACHES THE LIMIT}",	# ≐
2468	    "clubs" => "\N{BLACK CLUB SUIT}",	# ♣
2469	 "clubsuit" => "\N{BLACK CLUB SUIT}",	# ♣
2470	    "diams" => "\N{BLACK DIAMOND SUIT}",	# ♦
2471      "diamondsuit" => "\N{BLACK DIAMOND SUIT}",	# ♦
2472	   "spades" => "\N{BLACK SPADE SUIT}",	# ♠
2473	"spadesuit" => "\N{BLACK SPADE SUIT}",	# ♠
2474	   "hearts" => "\N{BLACK HEART SUIT}",	# ♥
2475	"heartsuit" => "\N{BLACK HEART SUIT}",	# ♥
2476	       "lt" => "<",	# <
2477	       "LT" => "<",	# <
2478	    "trade" => "\N{TRADE MARK SIGN}",	# ™
2479	    "TRADE" => "\N{TRADE MARK SIGN}",	# ™
2480	   "percnt" => "%",	# %
2481	    "dblac" => "\N{DOUBLE ACUTE ACCENT}",	# ˝
2482    "DiacriticalDoubleAcute" => "\N{DOUBLE ACUTE ACCENT}",	# ˝
2483	    "acute" => "\N{ACUTE ACCENT}",	# ´
2484    "DiacriticalAcute" => "\N{ACUTE ACCENT}",	# ´
2485	 "otimesas" => "\N{CIRCLED MULTIPLICATION SIGN WITH CIRCUMFLEX ACCENT}",	# ⨶
2486	   "apacir" => "\N{ALMOST EQUAL TO WITH CIRCUMFLEX ACCENT}",	# ⩯
2487	     "circ" => "\N{MODIFIER LETTER CIRCUMFLEX ACCENT}",	# ˆ
2488	    "lbbrk" => "\N{LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT}",	# ❲
2489	    "rbbrk" => "\N{LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT}",	# ❳
2490	     "comp" => "\N{COMPLEMENT}",	# ∁
2491       "complement" => "\N{COMPLEMENT}",	# ∁
2492	 "profsurf" => "\N{SEGMENT}",	# ⌓
2493	    "caret" => "\N{CARET INSERTION POINT}",	# ⁁
2494	   "Tcaron" => "\N{LATIN CAPITAL LETTER T WITH CARON}",	# Ť
2495	   "tcaron" => "\N{LATIN SMALL LETTER T WITH CARON}",	# ť
2496	   "middot" => "\N{MIDDLE DOT}",	# ·
2497	"centerdot" => "\N{MIDDLE DOT}",	# ·
2498	"CenterDot" => "\N{MIDDLE DOT}",	# ·
2499	   "tridot" => "\N{WHITE UP-POINTING TRIANGLE WITH DOT}",	# ◬
2500	 "angrtvbd" => "\N{MEASURED RIGHT ANGLE WITH DOT}",	# ⦝
2501	   "gtrdot" => "\N{GREATER-THAN WITH DOT}",	# ⋗
2502	    "gtdot" => "\N{GREATER-THAN WITH DOT}",	# ⋗
2503	  "lessdot" => "\N{LESS-THAN WITH DOT}",	# ⋖
2504	    "ltdot" => "\N{LESS-THAN WITH DOT}",	# ⋖
2505	   "capdot" => "\N{INTERSECTION WITH DOT}",	# ⩀
2506	    "langd" => "\N{LEFT ANGLE BRACKET WITH DOT}",	# ⦑
2507	    "rangd" => "\N{RIGHT ANGLE BRACKET WITH DOT}",	# ⦒
2508	   "subdot" => "\N{SUBSET WITH DOT}",	# ⪽
2509	   "supdot" => "\N{SUPERSET WITH DOT}",	# ⪾
2510	    "radic" => "\N{SQUARE ROOT}",	# √
2511	     "Sqrt" => "\N{SQUARE ROOT}",	# √
2512	     "vert" => "|",	# |
2513	      "ast" => "*",	# *
2514	   "midast" => "*",	# *
2515	    "quest" => "?",	# ?
2516	  "nexists" => "\N{THERE DOES NOT EXIST}",	# ∄
2517	"NotExists" => "\N{THERE DOES NOT EXIST}",	# ∄
2518	   "nexist" => "\N{THERE DOES NOT EXIST}",	# ∄
2519	  "plussim" => "\N{PLUS SIGN WITH TILDE BELOW}",	# ⨦
2520	   "midcir" => "\N{VERTICAL LINE WITH CIRCLE BELOW}",	# ⫰
2521	   "topcir" => "\N{DOWN TACK WITH CIRCLE BELOW}",	# ⫱
2522	  "submult" => "\N{SUBSET WITH MULTIPLICATION SIGN BELOW}",	# ⫁
2523	  "supmult" => "\N{SUPERSET WITH MULTIPLICATION SIGN BELOW}",	# ⫂
2524	  "subplus" => "\N{SUBSET WITH PLUS SIGN BELOW}",	# ⪿
2525	  "supplus" => "\N{SUPERSET WITH PLUS SIGN BELOW}",	# ⫀
2526	     "race" => "\N{REVERSED TILDE}\N{COMBINING MACRON BELOW}",	# ∽̱
2527	  "ddotseq" => "\N{EQUALS SIGN WITH TWO DOTS ABOVE AND TWO DOTS BELOW}",	# ⩷
2528	    "eDDot" => "\N{EQUALS SIGN WITH TWO DOTS ABOVE AND TWO DOTS BELOW}",	# ⩷
2529	   "rarrpl" => "\N{RIGHTWARDS ARROW WITH PLUS BELOW}",	# ⥅
2530	    "sdote" => "\N{EQUALS SIGN WITH DOT BELOW}",	# ⩦
2531	   "plusdu" => "\N{PLUS SIGN WITH DOT BELOW}",	# ⨥
2532	  "minusdu" => "\N{MINUS SIGN WITH DOT BELOW}",	# ⨪
2533	    "loarr" => "\N{LEFTWARDS OPEN-HEADED ARROW}",	# ⇽
2534	    "roarr" => "\N{RIGHTWARDS OPEN-HEADED ARROW}",	# ⇾
2535	    "hoarr" => "\N{LEFT RIGHT OPEN-HEADED ARROW}",	# ⇿
2536	     "Darr" => "\N{DOWNWARDS TWO HEADED ARROW}",	# ↡
2537	     "Uarr" => "\N{UPWARDS TWO HEADED ARROW}",	# ↟
2538	     "Larr" => "\N{LEFTWARDS TWO HEADED ARROW}",	# ↞
2539    "twoheadleftarrow" => "\N{LEFTWARDS TWO HEADED ARROW}",	# ↞
2540	     "Rarr" => "\N{RIGHTWARDS TWO HEADED ARROW}",	# ↠
2541    "twoheadrightarrow" => "\N{RIGHTWARDS TWO HEADED ARROW}",	# ↠
2542	     "vArr" => "\N{UP DOWN DOUBLE ARROW}",	# ⇕
2543      "Updownarrow" => "\N{UP DOWN DOUBLE ARROW}",	# ⇕
2544    "DoubleUpDownArrow" => "\N{UP DOWN DOUBLE ARROW}",	# ⇕
2545	     "dArr" => "\N{DOWNWARDS DOUBLE ARROW}",	# ⇓
2546	"Downarrow" => "\N{DOWNWARDS DOUBLE ARROW}",	# ⇓
2547    "DoubleDownArrow" => "\N{DOWNWARDS DOUBLE ARROW}",	# ⇓
2548	     "uArr" => "\N{UPWARDS DOUBLE ARROW}",	# ⇑
2549	  "Uparrow" => "\N{UPWARDS DOUBLE ARROW}",	# ⇑
2550    "DoubleUpArrow" => "\N{UPWARDS DOUBLE ARROW}",	# ⇑
2551	    "xlArr" => "\N{LONG LEFTWARDS DOUBLE ARROW}",	# ⟸
2552    "Longleftarrow" => "\N{LONG LEFTWARDS DOUBLE ARROW}",	# ⟸
2553    "DoubleLongLeftArrow" => "\N{LONG LEFTWARDS DOUBLE ARROW}",	# ⟸
2554	     "lArr" => "\N{LEFTWARDS DOUBLE ARROW}",	# ⇐
2555	"Leftarrow" => "\N{LEFTWARDS DOUBLE ARROW}",	# ⇐
2556    "DoubleLeftArrow" => "\N{LEFTWARDS DOUBLE ARROW}",	# ⇐
2557	    "xrArr" => "\N{LONG RIGHTWARDS DOUBLE ARROW}",	# ⟹
2558    "Longrightarrow" => "\N{LONG RIGHTWARDS DOUBLE ARROW}",	# ⟹
2559    "DoubleLongRightArrow" => "\N{LONG RIGHTWARDS DOUBLE ARROW}",	# ⟹
2560	     "rArr" => "\N{RIGHTWARDS DOUBLE ARROW}",	# ⇒
2561	  "Implies" => "\N{RIGHTWARDS DOUBLE ARROW}",	# ⇒
2562       "Rightarrow" => "\N{RIGHTWARDS DOUBLE ARROW}",	# ⇒
2563    "DoubleRightArrow" => "\N{RIGHTWARDS DOUBLE ARROW}",	# ⇒
2564	    "xhArr" => "\N{LONG LEFT RIGHT DOUBLE ARROW}",	# ⟺
2565    "Longleftrightarrow" => "\N{LONG LEFT RIGHT DOUBLE ARROW}",	# ⟺
2566    "DoubleLongLeftRightArrow" => "\N{LONG LEFT RIGHT DOUBLE ARROW}",	# ⟺
2567	      "iff" => "\N{LEFT RIGHT DOUBLE ARROW}",	# ⇔
2568	     "hArr" => "\N{LEFT RIGHT DOUBLE ARROW}",	# ⇔
2569    "Leftrightarrow" => "\N{LEFT RIGHT DOUBLE ARROW}",	# ⇔
2570    "DoubleLeftRightArrow" => "\N{LEFT RIGHT DOUBLE ARROW}",	# ⇔
2571	    "neArr" => "\N{NORTH EAST DOUBLE ARROW}",	# ⇗
2572	    "seArr" => "\N{SOUTH EAST DOUBLE ARROW}",	# ⇘
2573	    "nwArr" => "\N{NORTH WEST DOUBLE ARROW}",	# ⇖
2574	    "swArr" => "\N{SOUTH WEST DOUBLE ARROW}",	# ⇙
2575	   "cularr" => "\N{ANTICLOCKWISE TOP SEMICIRCLE ARROW}",	# ↶
2576    "curvearrowleft" => "\N{ANTICLOCKWISE TOP SEMICIRCLE ARROW}",	# ↶
2577	   "curarr" => "\N{CLOCKWISE TOP SEMICIRCLE ARROW}",	# ↷
2578    "curvearrowright" => "\N{CLOCKWISE TOP SEMICIRCLE ARROW}",	# ↷
2579	    "olarr" => "\N{ANTICLOCKWISE OPEN CIRCLE ARROW}",	# ↺
2580    "circlearrowleft" => "\N{ANTICLOCKWISE OPEN CIRCLE ARROW}",	# ↺
2581	    "orarr" => "\N{CLOCKWISE OPEN CIRCLE ARROW}",	# ↻
2582    "circlearrowright" => "\N{CLOCKWISE OPEN CIRCLE ARROW}",	# ↻
2583	 "dzigrarr" => "\N{LONG RIGHTWARDS SQUIGGLE ARROW}",	# ⟿
2584	  "zigrarr" => "\N{RIGHTWARDS SQUIGGLE ARROW}",	# ⇝
2585	    "lAarr" => "\N{LEFTWARDS TRIPLE ARROW}",	# ⇚
2586       "Lleftarrow" => "\N{LEFTWARDS TRIPLE ARROW}",	# ⇚
2587	    "rAarr" => "\N{RIGHTWARDS TRIPLE ARROW}",	# ⇛
2588      "Rrightarrow" => "\N{RIGHTWARDS TRIPLE ARROW}",	# ⇛
2589	  "cudarrl" => "\N{RIGHT-SIDE ARC CLOCKWISE ARROW}",	# ⤸
2590	   "larrpl" => "\N{LEFT-SIDE ARC ANTICLOCKWISE ARROW}",	# ⤹
2591    "rightsquigarrow" => "\N{RIGHTWARDS WAVE ARROW}",	# ↝
2592	    "rarrw" => "\N{RIGHTWARDS WAVE ARROW}",	# ↝
2593    "leftrightsquigarrow" => "\N{LEFT RIGHT WAVE ARROW}",	# ↭
2594	    "harrw" => "\N{LEFT RIGHT WAVE ARROW}",	# ↭
2595	  "angzarr" => "\N{RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW}",	# ⍼
2596	    "lbarr" => "\N{LEFTWARDS DOUBLE DASH ARROW}",	# ⤌
2597	    "rbarr" => "\N{RIGHTWARDS DOUBLE DASH ARROW}",	# ⤍
2598	   "bkarow" => "\N{RIGHTWARDS DOUBLE DASH ARROW}",	# ⤍
2599	    "RBarr" => "\N{RIGHTWARDS TWO-HEADED TRIPLE DASH ARROW}",	# ⤐
2600	 "drbkarow" => "\N{RIGHTWARDS TWO-HEADED TRIPLE DASH ARROW}",	# ⤐
2601	    "lBarr" => "\N{LEFTWARDS TRIPLE DASH ARROW}",	# ⤎
2602	    "rBarr" => "\N{RIGHTWARDS TRIPLE DASH ARROW}",	# ⤏
2603	  "dbkarow" => "\N{RIGHTWARDS TRIPLE DASH ARROW}",	# ⤏
2604	     "varr" => "\N{UP DOWN ARROW}",	# ↕
2605      "updownarrow" => "\N{UP DOWN ARROW}",	# ↕
2606      "UpDownArrow" => "\N{UP DOWN ARROW}",	# ↕
2607	    "udarr" => "\N{UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW}",	# ⇅
2608    "UpArrowDownArrow" => "\N{UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW}",	# ⇅
2609	     "darr" => "\N{DOWNWARDS ARROW}",	# ↓
2610	"downarrow" => "\N{DOWNWARDS ARROW}",	# ↓
2611	"DownArrow" => "\N{DOWNWARDS ARROW}",	# ↓
2612    "ShortDownArrow" => "\N{DOWNWARDS ARROW}",	# ↓
2613	    "duarr" => "\N{DOWNWARDS ARROW LEFTWARDS OF UPWARDS ARROW}",	# ⇵
2614    "DownArrowUpArrow" => "\N{DOWNWARDS ARROW LEFTWARDS OF UPWARDS ARROW}",	# ⇵
2615	     "uarr" => "\N{UPWARDS ARROW}",	# ↑
2616	  "uparrow" => "\N{UPWARDS ARROW}",	# ↑
2617	  "UpArrow" => "\N{UPWARDS ARROW}",	# ↑
2618     "ShortUpArrow" => "\N{UPWARDS ARROW}",	# ↑
2619	   "ltlarr" => "\N{LESS-THAN ABOVE LEFTWARDS ARROW}",	# ⥶
2620	  "suplarr" => "\N{SUPERSET ABOVE LEFTWARDS ARROW}",	# ⥻
2621	    "xlarr" => "\N{LONG LEFTWARDS ARROW}",	# ⟵
2622    "longleftarrow" => "\N{LONG LEFTWARDS ARROW}",	# ⟵
2623    "LongLeftArrow" => "\N{LONG LEFTWARDS ARROW}",	# ⟵
2624	     "larr" => "\N{LEFTWARDS ARROW}",	# ←
2625	    "slarr" => "\N{LEFTWARDS ARROW}",	# ←
2626	"leftarrow" => "\N{LEFTWARDS ARROW}",	# ←
2627	"LeftArrow" => "\N{LEFTWARDS ARROW}",	# ←
2628    "ShortLeftArrow" => "\N{LEFTWARDS ARROW}",	# ←
2629	    "rlarr" => "\N{RIGHTWARDS ARROW OVER LEFTWARDS ARROW}",	# ⇄
2630    "rightleftarrows" => "\N{RIGHTWARDS ARROW OVER LEFTWARDS ARROW}",	# ⇄
2631    "RightArrowLeftArrow" => "\N{RIGHTWARDS ARROW OVER LEFTWARDS ARROW}",	# ⇄
2632	   "gtrarr" => "\N{GREATER-THAN ABOVE RIGHTWARDS ARROW}",	# ⥸
2633	    "erarr" => "\N{EQUALS SIGN ABOVE RIGHTWARDS ARROW}",	# ⥱
2634	  "simrarr" => "\N{TILDE OPERATOR ABOVE RIGHTWARDS ARROW}",	# ⥲
2635	  "subrarr" => "\N{SUBSET ABOVE RIGHTWARDS ARROW}",	# ⥹
2636	    "xrarr" => "\N{LONG RIGHTWARDS ARROW}",	# ⟶
2637    "longrightarrow" => "\N{LONG RIGHTWARDS ARROW}",	# ⟶
2638    "LongRightArrow" => "\N{LONG RIGHTWARDS ARROW}",	# ⟶
2639	     "rarr" => "\N{RIGHTWARDS ARROW}",	# →
2640	    "srarr" => "\N{RIGHTWARDS ARROW}",	# →
2641       "rightarrow" => "\N{RIGHTWARDS ARROW}",	# →
2642       "RightArrow" => "\N{RIGHTWARDS ARROW}",	# →
2643    "ShortRightArrow" => "\N{RIGHTWARDS ARROW}",	# →
2644	    "lrarr" => "\N{LEFTWARDS ARROW OVER RIGHTWARDS ARROW}",	# ⇆
2645    "leftrightarrows" => "\N{LEFTWARDS ARROW OVER RIGHTWARDS ARROW}",	# ⇆
2646    "LeftArrowRightArrow" => "\N{LEFTWARDS ARROW OVER RIGHTWARDS ARROW}",	# ⇆
2647	    "xharr" => "\N{LONG LEFT RIGHT ARROW}",	# ⟷
2648    "longleftrightarrow" => "\N{LONG LEFT RIGHT ARROW}",	# ⟷
2649    "LongLeftRightArrow" => "\N{LONG LEFT RIGHT ARROW}",	# ⟷
2650	     "harr" => "\N{LEFT RIGHT ARROW}",	# ↔
2651    "leftrightarrow" => "\N{LEFT RIGHT ARROW}",	# ↔
2652    "LeftRightArrow" => "\N{LEFT RIGHT ARROW}",	# ↔
2653	   "nwnear" => "\N{NORTH WEST ARROW AND NORTH EAST ARROW}",	# ⤧
2654	    "nearr" => "\N{NORTH EAST ARROW}",	# ↗
2655	  "nearrow" => "\N{NORTH EAST ARROW}",	# ↗
2656    "UpperRightArrow" => "\N{NORTH EAST ARROW}",	# ↗
2657	     "toea" => "\N{NORTH EAST ARROW AND SOUTH EAST ARROW}",	# ⤨
2658	   "nesear" => "\N{NORTH EAST ARROW AND SOUTH EAST ARROW}",	# ⤨
2659	    "searr" => "\N{SOUTH EAST ARROW}",	# ↘
2660	  "searrow" => "\N{SOUTH EAST ARROW}",	# ↘
2661    "LowerRightArrow" => "\N{SOUTH EAST ARROW}",	# ↘
2662	   "swnwar" => "\N{SOUTH WEST ARROW AND NORTH WEST ARROW}",	# ⤪
2663	    "nwarr" => "\N{NORTH WEST ARROW}",	# ↖
2664    "UpperLeftArrow" => "\N{NORTH WEST ARROW}",	# ↖
2665	  "nwarrow" => "\N{NORTH WEST ARROW}",	# ↖
2666	     "tosa" => "\N{SOUTH EAST ARROW AND SOUTH WEST ARROW}",	# ⤩
2667	   "seswar" => "\N{SOUTH EAST ARROW AND SOUTH WEST ARROW}",	# ⤩
2668	    "swarr" => "\N{SOUTH WEST ARROW}",	# ↙
2669    "LowerLeftArrow" => "\N{SOUTH WEST ARROW}",	# ↙
2670	  "swarrow" => "\N{SOUTH WEST ARROW}",	# ↙
2671	  "olcross" => "\N{CIRCLE WITH SUPERIMPOSED X}",	# ⦻
2672	   "hercon" => "\N{HERMITIAN CONJUGATE MATRIX}",	# ⊹
2673	    "blank" => "\N{OPEN BOX}",	# ␣
2674	    "cross" => "\N{BALLOT X}",	# ✗
2675	     "Xopf" => "\N{MATHEMATICAL DOUBLE-STRUCK CAPITAL X}",	# ��
2676	      "Xfr" => "\N{MATHEMATICAL FRAKTUR CAPITAL X}",	# ��
2677	     "Xscr" => "\N{MATHEMATICAL SCRIPT CAPITAL X}",	# ��
2678	     "xopf" => "\N{MATHEMATICAL DOUBLE-STRUCK SMALL X}",	# ��
2679	      "xfr" => "\N{MATHEMATICAL FRAKTUR SMALL X}",	# ��
2680	     "xscr" => "\N{MATHEMATICAL SCRIPT SMALL X}",	# ��
2681	     "nang" => "\N{ANGLE}\N{COMBINING LONG VERTICAL LINE OVERLAY}",	# ∠⃒
2682	    "vnsub" => "\N{SUBSET OF}\N{COMBINING LONG VERTICAL LINE OVERLAY}",	# ⊂⃒
2683	  "nsubset" => "\N{SUBSET OF}\N{COMBINING LONG VERTICAL LINE OVERLAY}",	# ⊂⃒
2684	"NotSubset" => "\N{SUBSET OF}\N{COMBINING LONG VERTICAL LINE OVERLAY}",	# ⊂⃒
2685	    "vnsup" => "\N{SUPERSET OF}\N{COMBINING LONG VERTICAL LINE OVERLAY}",	# ⊃⃒
2686	  "nsupset" => "\N{SUPERSET OF}\N{COMBINING LONG VERTICAL LINE OVERLAY}",	# ⊃⃒
2687      "NotSuperset" => "\N{SUPERSET OF}\N{COMBINING LONG VERTICAL LINE OVERLAY}",	# ⊃⃒
2688	      "nGt" => "\N{MUCH GREATER-THAN}\N{COMBINING LONG VERTICAL LINE OVERLAY}",	# ≫⃒
2689	      "nLt" => "\N{MUCH LESS-THAN}\N{COMBINING LONG VERTICAL LINE OVERLAY}",	# ≪⃒
2690	  "nvltrie" => "\N{NORMAL SUBGROUP OF OR EQUAL TO}\N{COMBINING LONG VERTICAL LINE OVERLAY}",	# ⊴⃒
2691	     "nvge" => "\N{GREATER-THAN OR EQUAL TO}\N{COMBINING LONG VERTICAL LINE OVERLAY}",	# ≥⃒
2692	     "nvle" => "\N{LESS-THAN OR EQUAL TO}\N{COMBINING LONG VERTICAL LINE OVERLAY}",	# ≤⃒
2693	  "nvrtrie" => "\N{CONTAINS AS NORMAL SUBGROUP OR EQUAL TO}\N{COMBINING LONG VERTICAL LINE OVERLAY}",	# ⊵⃒
2694	     "nvap" => "\N{EQUIVALENT TO}\N{COMBINING LONG VERTICAL LINE OVERLAY}",	# ≍⃒
2695	    "nvsim" => "\N{TILDE OPERATOR}\N{COMBINING LONG VERTICAL LINE OVERLAY}",	# ∼⃒
2696	     "nvgt" => ">\N{COMBINING LONG VERTICAL LINE OVERLAY}",	# >⃒
2697	     "nvlt" => "<\N{COMBINING LONG VERTICAL LINE OVERLAY}",	# <⃒
2698	      "bne" => "=\N{COMBINING REVERSE SOLIDUS OVERLAY}",	# =⃥
2699	  "bnequiv" => "\N{IDENTICAL TO}\N{COMBINING REVERSE SOLIDUS OVERLAY}",	# ≡⃥
2700	   "nparsl" => "\N{DOUBLE SOLIDUS OPERATOR}\N{COMBINING REVERSE SOLIDUS OVERLAY}",	# ⫽⃥
2701	    "napid" => "\N{TRIPLE TILDE}\N{COMBINING LONG SOLIDUS OVERLAY}",	# ≋̸
2702    "NotEqualTilde" => "\N{MINUS TILDE}\N{COMBINING LONG SOLIDUS OVERLAY}",	# ≂̸
2703	    "nesim" => "\N{MINUS TILDE}\N{COMBINING LONG SOLIDUS OVERLAY}",	# ≂̸
2704    "NotRightTriangleBar" => "\N{VERTICAL BAR BESIDE RIGHT TRIANGLE}\N{COMBINING LONG SOLIDUS OVERLAY}",	# ⧐̸
2705	 "notindot" => "\N{ELEMENT OF WITH DOT ABOVE}\N{COMBINING LONG SOLIDUS OVERLAY}",	# ⋵̸
2706	 "ncongdot" => "\N{CONGRUENT WITH DOT ABOVE}\N{COMBINING LONG SOLIDUS OVERLAY}",	# ⩭̸
2707    "NotSquareSubset" => "\N{SQUARE IMAGE OF}\N{COMBINING LONG SOLIDUS OVERLAY}",	# ⊏̸
2708    "NotSquareSuperset" => "\N{SQUARE ORIGINAL OF}\N{COMBINING LONG SOLIDUS OVERLAY}",	# ⊐̸
2709	    "npart" => "\N{PARTIAL DIFFERENTIAL}\N{COMBINING LONG SOLIDUS OVERLAY}",	# ∂̸
2710    "NotNestedGreaterGreater" => "\N{DOUBLE NESTED GREATER-THAN}\N{COMBINING LONG SOLIDUS OVERLAY}",	# ⪢̸
2711    "NotGreaterGreater" => "\N{MUCH GREATER-THAN}\N{COMBINING LONG SOLIDUS OVERLAY}",	# ≫̸
2712	     "nGtv" => "\N{MUCH GREATER-THAN}\N{COMBINING LONG SOLIDUS OVERLAY}",	# ≫̸
2713	      "nGg" => "\N{VERY MUCH GREATER-THAN}\N{COMBINING LONG SOLIDUS OVERLAY}",	# ⋙̸
2714    "NotNestedLessLess" => "\N{DOUBLE NESTED LESS-THAN}\N{COMBINING LONG SOLIDUS OVERLAY}",	# ⪡̸
2715      "NotLessLess" => "\N{MUCH LESS-THAN}\N{COMBINING LONG SOLIDUS OVERLAY}",	# ≪̸
2716	     "nLtv" => "\N{MUCH LESS-THAN}\N{COMBINING LONG SOLIDUS OVERLAY}",	# ≪̸
2717	      "nLl" => "\N{VERY MUCH LESS-THAN}\N{COMBINING LONG SOLIDUS OVERLAY}",	# ⋘̸
2718	   "nbumpe" => "\N{DIFFERENCE BETWEEN}\N{COMBINING LONG SOLIDUS OVERLAY}",	# ≏̸
2719     "NotHumpEqual" => "\N{DIFFERENCE BETWEEN}\N{COMBINING LONG SOLIDUS OVERLAY}",	# ≏̸
2720	     "nsce" => "\N{SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN}\N{COMBINING LONG SOLIDUS OVERLAY}",	# ⪰̸
2721    "NotSucceedsEqual" => "\N{SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN}\N{COMBINING LONG SOLIDUS OVERLAY}",	# ⪰̸
2722	  "nsucceq" => "\N{SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN}\N{COMBINING LONG SOLIDUS OVERLAY}",	# ⪰̸
2723	     "npre" => "\N{PRECEDES ABOVE SINGLE-LINE EQUALS SIGN}\N{COMBINING LONG SOLIDUS OVERLAY}",	# ⪯̸
2724    "NotPrecedesEqual" => "\N{PRECEDES ABOVE SINGLE-LINE EQUALS SIGN}\N{COMBINING LONG SOLIDUS OVERLAY}",	# ⪯̸
2725	  "npreceq" => "\N{PRECEDES ABOVE SINGLE-LINE EQUALS SIGN}\N{COMBINING LONG SOLIDUS OVERLAY}",	# ⪯̸
2726	    "nsubE" => "\N{SUBSET OF ABOVE EQUALS SIGN}\N{COMBINING LONG SOLIDUS OVERLAY}",	# ⫅̸
2727       "nsubseteqq" => "\N{SUBSET OF ABOVE EQUALS SIGN}\N{COMBINING LONG SOLIDUS OVERLAY}",	# ⫅̸
2728	    "nsupE" => "\N{SUPERSET OF ABOVE EQUALS SIGN}\N{COMBINING LONG SOLIDUS OVERLAY}",	# ⫆̸
2729       "nsupseteqq" => "\N{SUPERSET OF ABOVE EQUALS SIGN}\N{COMBINING LONG SOLIDUS OVERLAY}",	# ⫆̸
2730    "NotGreaterSlantEqual" => "\N{GREATER-THAN OR SLANTED EQUAL TO}\N{COMBINING LONG SOLIDUS OVERLAY}",	# ⩾̸
2731	     "nges" => "\N{GREATER-THAN OR SLANTED EQUAL TO}\N{COMBINING LONG SOLIDUS OVERLAY}",	# ⩾̸
2732	"ngeqslant" => "\N{GREATER-THAN OR SLANTED EQUAL TO}\N{COMBINING LONG SOLIDUS OVERLAY}",	# ⩾̸
2733    "NotLessSlantEqual" => "\N{LESS-THAN OR SLANTED EQUAL TO}\N{COMBINING LONG SOLIDUS OVERLAY}",	# ⩽̸
2734	     "nles" => "\N{LESS-THAN OR SLANTED EQUAL TO}\N{COMBINING LONG SOLIDUS OVERLAY}",	# ⩽̸
2735	"nleqslant" => "\N{LESS-THAN OR SLANTED EQUAL TO}\N{COMBINING LONG SOLIDUS OVERLAY}",	# ⩽̸
2736	      "ngE" => "\N{GREATER-THAN OVER EQUAL TO}\N{COMBINING LONG SOLIDUS OVERLAY}",	# ≧̸
2737    "NotGreaterFullEqual" => "\N{GREATER-THAN OVER EQUAL TO}\N{COMBINING LONG SOLIDUS OVERLAY}",	# ≧̸
2738	    "ngeqq" => "\N{GREATER-THAN OVER EQUAL TO}\N{COMBINING LONG SOLIDUS OVERLAY}",	# ≧̸
2739	      "nlE" => "\N{LESS-THAN OVER EQUAL TO}\N{COMBINING LONG SOLIDUS OVERLAY}",	# ≦̸
2740	    "nleqq" => "\N{LESS-THAN OVER EQUAL TO}\N{COMBINING LONG SOLIDUS OVERLAY}",	# ≦̸
2741	     "napE" => "\N{APPROXIMATELY EQUAL OR EQUAL TO}\N{COMBINING LONG SOLIDUS OVERLAY}",	# ⩰̸
2742    "NotSucceedsTilde" => "\N{SUCCEEDS OR EQUIVALENT TO}\N{COMBINING LONG SOLIDUS OVERLAY}",	# ≿̸
2743	    "nbump" => "\N{GEOMETRICALLY EQUIVALENT TO}\N{COMBINING LONG SOLIDUS OVERLAY}",	# ≎̸
2744    "NotHumpDownHump" => "\N{GEOMETRICALLY EQUIVALENT TO}\N{COMBINING LONG SOLIDUS OVERLAY}",	# ≎̸
2745    "NotLeftTriangleBar" => "\N{LEFT TRIANGLE BESIDE VERTICAL BAR}\N{COMBINING LONG SOLIDUS OVERLAY}",	# ⧏̸
2746	   "notinE" => "\N{ELEMENT OF WITH TWO HORIZONTAL STROKES}\N{COMBINING LONG SOLIDUS OVERLAY}",	# ⋹̸
2747	   "nrarrc" => "\N{WAVE ARROW POINTING DIRECTLY RIGHT}\N{COMBINING LONG SOLIDUS OVERLAY}",	# ⤳̸
2748	    "nedot" => "\N{APPROACHES THE LIMIT}\N{COMBINING LONG SOLIDUS OVERLAY}",	# ≐̸
2749	   "nrarrw" => "\N{RIGHTWARDS WAVE ARROW}\N{COMBINING LONG SOLIDUS OVERLAY}",	# ↝̸
2750	   "cylcty" => "\N{CYLINDRICITY}",	# ⌭
2751	   "iinfin" => "\N{INCOMPLETE INFINITY}",	# ⧜
2752	    "infin" => "\N{INFINITY}",	# ∞
2753	 "infintie" => "\N{TIE OVER INFINITY}",	# ⧝
2754	    "Ycirc" => "\N{LATIN CAPITAL LETTER Y WITH CIRCUMFLEX}",	# Ŷ
2755	    "ycirc" => "\N{LATIN SMALL LETTER Y WITH CIRCUMFLEX}",	# ŷ
2756	     "Yopf" => "\N{MATHEMATICAL DOUBLE-STRUCK CAPITAL Y}",	# ��
2757	      "Yfr" => "\N{MATHEMATICAL FRAKTUR CAPITAL Y}",	# ��
2758	     "Yscr" => "\N{MATHEMATICAL SCRIPT CAPITAL Y}",	# ��
2759	     "yopf" => "\N{MATHEMATICAL DOUBLE-STRUCK SMALL Y}",	# ��
2760	      "yfr" => "\N{MATHEMATICAL FRAKTUR SMALL Y}",	# ��
2761	     "yscr" => "\N{MATHEMATICAL SCRIPT SMALL Y}",	# ��
2762
2763);
2764
2765sub convert_to_html4(_) {
2766    state $entity;
2767    if (!$entity && $Opt{names}) {
2768        $entity = {};
2769        while (my($hsym, $usym) = each %html4_2unicode) {
2770            my $codepoint = charnames::vianame($usym) || panic("huh?");
2771            $entity->{ chr $codepoint } = "&$hsym;";
2772        }
2773        debug("entity count: " . keys %$entity);
2774    }
2775    no warnings "utf8";
2776    local $_ = $_[0];
2777    ##s/&/&amp;/g;
2778    ##s/</&lt;/g;
2779    ##s/>/&gt;/g;
2780    ##s/"/&quot;/g;
2781    # &apos; is only in XHTML, not HTML4.  Be conservative
2782    ###s/'/&apos;/g;
2783    s {
2784        ( $Ugly_RX )
2785    }{
2786        $entity->{$1} || sprintf("&#%d;", ord $1)
2787    }gxe;
2788    return $_;
2789}
2790
2791sub convert_to_html5(_) {
2792    state $entity;
2793
2794    if (!$entity && $Opt{names}) {
2795        $entity = {};
2796        while (my($hsym, $ustr) = each %html5_2unicode) {
2797            $entity->{ $ustr } = "&$hsym;";
2798        }
2799        debug("entity count: " . keys %$entity);
2800    }
2801    no warnings "utf8";
2802    local $_ = $_[0];
2803
2804    s/&/&amp;/g;
2805    s/</&lt;/g;
2806    s/>/&gt;/g;
2807    s/"/&quot;/g;
2808    s/'/&apos;/g;
2809
2810    s {
2811        ( $Ugly_RX )
2812    }{
2813        $entity->{$1} || sprintf("&#%d;", ord $1)
2814    }gxe;
2815    return $_;
2816}
2817
2818} # end UNITCHECK private scope for hash
2819
2820sub convert_to_xml(_) {
2821    local $_ = shift();
2822    no warnings "utf8";
2823
2824    s/&/&amp;/g;
2825    s/</&lt;/g;
2826    s/>/&gt;/g;
2827    s/"/&quot;/g;
2828    s/'/&apos;/g;
2829
2830    s/($Ugly_RX+)/sprintf("&#x%x;", ord $1)/ge;
2831    return $_;
2832}
2833
2834sub convert_to_U_numbers(_) {
2835    my $string = shift();
2836    no warnings "utf8";
2837    $string =~ s/($Ugly_RX)/sprintf("\\N{U+%v02X}", $1)/ge;
2838    return $string;;
2839}
2840
2841sub convert_to_hex(_) {
2842    my $string = shift();
2843    my $minwidth = $Opt{bytes} ? 2 : 4;
2844    $string =~ s/($Ugly_RX)/sprintf("\\x{%02X}", ord $1)/ge;
2845    return $string;;
2846}
2847
2848sub convert_to_octal(_) {
2849    my $string = shift();
2850    no warnings "utf8";
2851    $string =~ s/($Ugly_RX)/sprintf("\\%o", ord $1)/ge;
2852    return $string;;
2853}
2854
2855sub convert_to_bytes(_) {
2856    require Encode;
2857    my $string = shift();
2858    $string =~ s/($Ugly_RX)/sprintf("\\x%02X", ord $1)/ge;
2859    return $string;
2860}
2861
2862sub commaʼd_list {
2863    my($argc, @arg) = (scalar @_, @_);
2864    my $sepchar = grep(/,/ => @arg) ? ";" : ",";
2865    given ($argc)  {
2866        when (0)  { return q() }
2867        when (1)  { return $arg[0] }
2868        when (2)  {
2869            panic("list @arg already has an and in it") if grep /\band\b/, @arg;
2870            return "$arg[0] and $arg[1]";
2871        }
2872        default   {
2873            panic("list @arg already has an and in it") if grep /\band\b/, @arg;
2874            return join "$sepchar " => (
2875                @arg[ 0 .. ($#arg-1) ],
2876                "and $arg[-1]",
2877            );
2878        }
2879    }
2880}
2881
2882sub usage($) {
2883    local $_ = $_[0];
2884    s/^(\p{Ll})/\u$1/;
2885    s/$/./ if /^\pL/ && !/\.$/;
2886    pod2usage("$0: [USAGE] $_");
2887}
2888
2889sub load_options() {
2890
2891    Getopt::Long::Configure qw[ bundling auto_version ];
2892
2893    my @options = (
2894
2895        # standard options
2896        qw[
2897            help|h|?
2898            man
2899            debug
2900        ],
2901
2902	# other options
2903	qw[
2904            encoding|E=s
2905
2906	    names|verbose|v|n
2907	    hex|x
2908
2909	    bytes|binary|b
2910	    octal|o|0
2911
2912            html4|html|4|H
2913            html5|5
2914            xml|X
2915
2916	    backslash|t
2917	    fix-newlines|l
2918	    unbuffer|u
2919	    endings|e
2920	],
2921
2922    );
2923
2924    GetOptions(\%Opt => @options) || pod2usage(2);
2925
2926    pod2usage(0)                                 if $Opt{help};
2927    pod2usage(-exitstatus => 0, -verbose => 2)   if $Opt{man};
2928
2929    return;
2930
2931    my @valid = find_converters();
2932    if (grep ($Opt{$_}, @valid) > 1) {
2933        usage("specify no more than one of " .  commaʼd_list(@valid));
2934    }
2935
2936
2937}
2938
2939
2940#################################################################
2941#################################################################
2942#################################################################
2943
2944__END__
2945
2946=encoding utf8
2947
2948=head1 NAME
2949
2950uniquote - escape special characters using various quoting conventions
2951
2952=head1 SYNOPSIS
2953
2954uniquote [I<options>] [ I<textfile> ... ]
2955
2956 Standard options:
2957
2958    --version       print version information and exit
2959    --help          this message
2960    --man           full manpage
2961    --debug         add some debugging output
2962
2963 Character mode options:
2964
2965            Without a specified encoding, utf8 is assumed
2966            unless file has encoding extension.
2967
2968    --verbose   -v  show full character names like \N{EN DASH}
2969
2970    --hex       -x  use singleton \x{...} esapes instead of \N{U+XXX}
2971
2972    --encoding  -E  specify encoding for all input files
2973
2974    --html      -H  show HTML entities (add --verbose for names)
2975    --xml       -X  show XML entities
2976
2977  Binary mode options:
2978
2979    --bytes     -b  binary file in hex
2980    --octal     -0  binary file in octal
2981
2982  Other options:
2983
2984    --endings       -n   place $ at EOL so trailing spaces visible
2985    --backslash     -t   use backslash escapes for unprintable ASCII
2986    --fix-newlines  -l   consider any Unicode linebreak sequence as EOL
2987    --unbuffer      -u   flush each output line
2988
2989=head1 DESCRIPTION
2990
2991The I<uniquote> program it means as a Unicode-aware replacement
2992for programs like ol(1) and C<cat -v>.  It converts ASCII control code
2993and all non-ASCII code points into a quoted form such as one might use
2994in a Perl literal.
2995
2996Use B<--endings> or C<-e> to cat like C<cat -e> and add a dollar at the end
2997of each line so trailing spaces become apparent.
2998
2999Use B<--backslash> or C<-t> to show tabs and other ASCII control codes
3000as backslash escapes.
3001
3002By default, I<uniquote> converts each such code points into the form
3003C<< \N{U+I<hex>} >>, making code point 962 appear as C<< \N{U+3C2} >>.
3004The B<--hex> option instead shows eligible points in backslash-X notation,
3005so code point 962 would be displayed as C<< \x{3C2} >>.
3006
3007The B<--verbose> option instead displays eligible code points by name.
3008Code point 962 would then be shown as C<< \N{GREEK SMALL LETTER FINAL SIGMA} >>.
3009
3010The B<--xml> and B<--html> options show code point using numeric entities.
3011Adding B<--verbose> to B<--html> will use named HTML entities where
3012available.
3013
3014=head2 Character Modes vs Binary Mode
3015
3016To treat the file as a sequence a bytes, use B<--binary>.  This displays
3017all bytes escaped in the form C<< \xXX >>.  The other way to specify binary
3018input uses the <--octal> option.
3019
3020If you have not specified binary mode, then you are in character mode.  The
3021default encoding in character mode us not ASCII but UTF-8.  If you have not
3022specified an optional encoding with B<--encoding>, but the filename ends
3023with the name of an encoding that Perl recognizes, that encoding will be
3024assumed.
3025
3026Note that no matter the actual input character encoding, code points
3027reflect the Unicode number of that code point.  You can use this property
3028to normalize input, or to check that you actually know a file's encoding.
3029For example, you can test the same file with various 8-bit encodings like
3030Latin1, MacRoman, and CP1252.
3031
3032The default input encoding is actually C<utf8>; that is, Perl's permissive
3033version of UTF-8.  If you want strict UTF-8, override it.
3034
3035=head1 EXAMPLES
3036
3037  $ perl -E 'say "ascii:\tnayeeve fassodd"' 							> /tmp/nf.ascii
3038  $ perl -E 'binmode(STDOUT, "encoding(macroman)")||die; say "macroman:\tna\xEFve fa\xE7ade"' 	> /tmp/nf.macroman
3039  $ perl -E 'binmode(STDOUT, "encoding(utf8)")||die;     say "utf8:\tna\xEFve fa\xE7ade"' 	> /tmp/nf.utf8
3040  $ perl -E 'binmode(STDOUT, "encoding(utf16)")||die;    say "utf16:\tna\xEFve fa\xE7ade"' 	> /tmp/nf.utf16
3041  $ perl -E 'binmode(STDOUT, "encoding(utf32)")||die;    say "utf32:\tna\xEFve fa\xE7ade"' 	> /tmp/nf.utf32
3042  $ perl -E 'binmode(STDOUT, "encoding(latin1)")||die;   say "latin1:\tna\xEFve fa\xE7ade"' 	> /tmp/nf.latin1
3043  $ perl -E 'binmode(STDOUT, "encoding(cp1252)")||die;   say "cp1252:\tna\xEFve fa\xE7ade"' 	> /tmp/nf.cp1252
3044
3045
3046  $ wc -c /tmp/nf*
3047      23 /tmp/nf.ascii
3048      21 /tmp/nf.cp1252
3049      21 /tmp/nf.latin1
3050      23 /tmp/nf.macroman
3051      42 /tmp/nf.utf16
3052      84 /tmp/nf.utf32
3053      21 /tmp/nf.utf8
3054     235 total
3055
3056  $ uniquote /tmp/nf.*
3057ascii:\N{U+09}nayeeve fassodd
3058cp1252:\N{U+09}na\N{U+EF}ve fa\N{U+E7}ade
3059latin1:\N{U+09}na\N{U+EF}ve fa\N{U+E7}ade
3060macroman:\N{U+09}na\N{U+EF}ve fa\N{U+E7}ade
3061utf16:\N{U+09}na\N{U+EF}ve fa\N{U+E7}ade
3062utf32:\N{U+09}na\N{U+EF}ve fa\N{U+E7}ade
3063utf8:\N{U+09}na\N{U+EF}ve fa\N{U+E7}ade
3064
3065  $ uniquote --backslash --endings /tmp/nf.*
3066ascii:\tnayeeve fassodd$
3067cp1252:\tna\N{U+EF}ve fa\N{U+E7}ade$
3068latin1:\tna\N{U+EF}ve fa\N{U+E7}ade$
3069macroman:\tna\N{U+EF}ve fa\N{U+E7}ade$
3070utf16:\tna\N{U+EF}ve fa\N{U+E7}ade$
3071utf32:\tna\N{U+EF}ve fa\N{U+E7}ade$
3072utf8:\tna\N{U+EF}ve fa\N{U+E7}ade$
3073
3074  $ uniquote --verbose /tmp/nf.*
3075ascii:\N{CHARACTER TABULATION}nayeeve fassodd
3076cp1252:\N{CHARACTER TABULATION}na\N{LATIN SMALL LETTER I WITH DIAERESIS}ve fa\N{LATIN SMALL LETTER C WITH CEDILLA}ade
3077latin1:\N{CHARACTER TABULATION}na\N{LATIN SMALL LETTER I WITH DIAERESIS}ve fa\N{LATIN SMALL LETTER C WITH CEDILLA}ade
3078macroman:\N{CHARACTER TABULATION}na\N{LATIN SMALL LETTER I WITH DIAERESIS}ve fa\N{LATIN SMALL LETTER C WITH CEDILLA}ade
3079utf16:\N{CHARACTER TABULATION}na\N{LATIN SMALL LETTER I WITH DIAERESIS}ve fa\N{LATIN SMALL LETTER C WITH CEDILLA}ade
3080utf32:\N{CHARACTER TABULATION}na\N{LATIN SMALL LETTER I WITH DIAERESIS}ve fa\N{LATIN SMALL LETTER C WITH CEDILLA}ade
3081utf8:\N{CHARACTER TABULATION}na\N{LATIN SMALL LETTER I WITH DIAERESIS}ve fa\N{LATIN SMALL LETTER C WITH CEDILLA}ade
3082
3083  $ uniquote --binary /tmp/nf.*
3084ascii:\x09nayeeve fassodd
3085cp1252:\x09na\xEFve fa\xE7ade
3086latin1:\x09na\xEFve fa\xE7ade
3087macroman:\x09na\x95ve fa\x8Dade
3088\xFE\xFF\x00u\x00t\x00f\x001\x006\x00:\x00\x09\x00n\x00a\x00\xEF\x00v\x00e\x00 \x00f\x00a\x00\xE7\x00a\x00d\x00e\x00
3089\x00\x00\xFE\xFF\x00\x00\x00u\x00\x00\x00t\x00\x00\x00f\x00\x00\x003\x00\x00\x002\x00\x00\x00:\x00\x00\x00\x09\x00\x00\x00n\x00\x00\x00a\x00\x00\x00\xEF\x00\x00\x00v\x00\x00\x00e\x00\x00\x00 \x00\x00\x00f\x00\x00\x00a\x00\x00\x00\xE7\x00\x00\x00a\x00\x00\x00d\x00\x00\x00e\x00\x00\x00
3090utf8:\x09na\xC3\xAFve fa\xC3\xA7ade
3091
3092  $ uniquote --xml /tmp/nf.*
3093ascii:&#x9;nayeeve fassodd
3094cp1252:&#x9;na&#xef;ve fa&#xe7;ade
3095latin1:&#x9;na&#xef;ve fa&#xe7;ade
3096macroman:&#x9;na&#xef;ve fa&#xe7;ade
3097utf16:&#x9;na&#xef;ve fa&#xe7;ade
3098utf32:&#x9;na&#xef;ve fa&#xe7;ade
3099utf8:&#x9;na&#xef;ve fa&#xe7;ade
3100
3101  $ uniquote --html /tmp/nf.*
3102ascii:&#9;nayeeve fassodd
3103cp1252:&#9;na&#239;ve fa&#231;ade
3104latin1:&#9;na&#239;ve fa&#231;ade
3105macroman:&#9;na&#239;ve fa&#231;ade
3106utf16:&#9;na&#239;ve fa&#231;ade
3107utf32:&#9;na&#239;ve fa&#231;ade
3108utf8:&#9;na&#239;ve fa&#231;ade
3109
3110  $ uniquote --html --verbose /tmp/nf.*
3111ascii:&#9;nayeeve fassodd
3112cp1252:&#9;na&iuml;ve fa&ccedil;ade
3113latin1:&#9;na&iuml;ve fa&ccedil;ade
3114macroman:&#9;na&iuml;ve fa&ccedil;ade
3115utf16:&#9;na&iuml;ve fa&ccedil;ade
3116utf32:&#9;na&iuml;ve fa&ccedil;ade
3117utf8:&#9;na&iuml;ve fa&ccedil;ade
3118
3119  $ uniquote --backslash --encoding latin1   --verbose /tmp/nf.*
3120ascii:\tnayeeve fassodd
3121cp1252:\tna\N{LATIN SMALL LETTER I WITH DIAERESIS}ve fa\N{LATIN SMALL LETTER C WITH CEDILLA}ade
3122latin1:\tna\N{LATIN SMALL LETTER I WITH DIAERESIS}ve fa\N{LATIN SMALL LETTER C WITH CEDILLA}ade
3123macroman:\tna\N{MESSAGE WAITING}ve fa\N{REVERSE LINE FEED}ade
3124\N{LATIN SMALL LETTER THORN}\N{LATIN SMALL LETTER Y WITH DIAERESIS}\0u\0t\0f\01\06\0:\0\t\0n\0a\0\N{LATIN SMALL LETTER I WITH DIAERESIS}\0v\0e\0 \0f\0a\0\N{LATIN SMALL LETTER C WITH CEDILLA}\0a\0d\0e\0
3125\0\0\N{LATIN SMALL LETTER THORN}\N{LATIN SMALL LETTER Y WITH DIAERESIS}\0\0\0u\0\0\0t\0\0\0f\0\0\03\0\0\02\0\0\0:\0\0\0\t\0\0\0n\0\0\0a\0\0\0\N{LATIN SMALL LETTER I WITH DIAERESIS}\0\0\0v\0\0\0e\0\0\0 \0\0\0f\0\0\0a\0\0\0\N{LATIN SMALL LETTER C WITH CEDILLA}\0\0\0a\0\0\0d\0\0\0e\0\0\0
3126utf8:\tna\N{LATIN CAPITAL LETTER A WITH TILDE}\N{MACRON}ve fa\N{LATIN CAPITAL LETTER A WITH TILDE}\N{SECTION SIGN}ade
3127
3128  $ uniquote --backslash --encoding cp1252   --verbose /tmp/nf.*
3129ascii:\tnayeeve fassodd
3130uniquote: cp1252 "\x8D" does not map to Unicode at /tmp/nf.macroman line 0
3131cp1252:\tna\N{LATIN SMALL LETTER I WITH DIAERESIS}ve fa\N{LATIN SMALL LETTER C WITH CEDILLA}ade
3132latin1:\tna\N{LATIN SMALL LETTER I WITH DIAERESIS}ve fa\N{LATIN SMALL LETTER C WITH CEDILLA}ade
3133\N{LATIN SMALL LETTER THORN}\N{LATIN SMALL LETTER Y WITH DIAERESIS}\0u\0t\0f\01\06\0:\0\t\0n\0a\0\N{LATIN SMALL LETTER I WITH DIAERESIS}\0v\0e\0 \0f\0a\0\N{LATIN SMALL LETTER C WITH CEDILLA}\0a\0d\0e\0
3134\0\0\N{LATIN SMALL LETTER THORN}\N{LATIN SMALL LETTER Y WITH DIAERESIS}\0\0\0u\0\0\0t\0\0\0f\0\0\03\0\0\02\0\0\0:\0\0\0\t\0\0\0n\0\0\0a\0\0\0\N{LATIN SMALL LETTER I WITH DIAERESIS}\0\0\0v\0\0\0e\0\0\0 \0\0\0f\0\0\0a\0\0\0\N{LATIN SMALL LETTER C WITH CEDILLA}\0\0\0a\0\0\0d\0\0\0e\0\0\0
3135utf8:\tna\N{LATIN CAPITAL LETTER A WITH TILDE}\N{MACRON}ve fa\N{LATIN CAPITAL LETTER A WITH TILDE}\N{SECTION SIGN}ade
3136
3137  $ uniquote --backslash --encoding macroman --verbose /tmp/nf.*
3138ascii:\tnayeeve fassodd
3139cp1252:\tna\N{LATIN CAPITAL LETTER O WITH CIRCUMFLEX}ve fa\N{LATIN CAPITAL LETTER A WITH ACUTE}ade
3140latin1:\tna\N{LATIN CAPITAL LETTER O WITH CIRCUMFLEX}ve fa\N{LATIN CAPITAL LETTER A WITH ACUTE}ade
3141macroman:\tna\N{LATIN SMALL LETTER I WITH DIAERESIS}ve fa\N{LATIN SMALL LETTER C WITH CEDILLA}ade
3142\N{OGONEK}\N{CARON}\0u\0t\0f\01\06\0:\0\t\0n\0a\0\N{LATIN CAPITAL LETTER O WITH CIRCUMFLEX}\0v\0e\0 \0f\0a\0\N{LATIN CAPITAL LETTER A WITH ACUTE}\0a\0d\0e\0
3143\0\0\N{OGONEK}\N{CARON}\0\0\0u\0\0\0t\0\0\0f\0\0\03\0\0\02\0\0\0:\0\0\0\t\0\0\0n\0\0\0a\0\0\0\N{LATIN CAPITAL LETTER O WITH CIRCUMFLEX}\0\0\0v\0\0\0e\0\0\0 \0\0\0f\0\0\0a\0\0\0\N{LATIN CAPITAL LETTER A WITH ACUTE}\0\0\0a\0\0\0d\0\0\0e\0\0\0
3144utf8:\tna\N{SQUARE ROOT}\N{LATIN CAPITAL LETTER O WITH STROKE}ve fa\N{SQUARE ROOT}\N{LATIN SMALL LETTER SHARP S}ade
3145
3146=head1 ERRORS
3147
3148Exits 0 if all is well, 1 otherwise.
3149
3150Errors include inaccessible files, bogus encodings,
3151and contents that do not match a specified encoding.
3152
3153=head1 BUGS
3154
3155Good question.
3156
3157=head1 SEE ALSO
3158
3159od(1), cat(1), Encode(3)
3160
3161=head1 HISTORY
3162
3163First public release February 27, 2011.
3164
3165=head1 AUTHOR
3166
3167Tom Christiansen C<< <tchrist@perl.com> >>
3168
3169=head1 COPYRIGHT AND LICENCE
3170
3171Copyright 2010 Tom Christiansen.
3172
3173This program is free software; you may redistribute it and/or modify it
3174under the same terms as Perl itself.
3175