Passed
Push — master ( 0c68df...e3ee72 )
by Dongxin
01:27
created

_replace_charref()   F

Complexity

Conditions 12

Size

Total Lines 28

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 12
c 1
b 0
f 0
dl 0
loc 28
rs 2.7855

How to fix   Complexity   

Complexity

Complex classes like _replace_charref() often do a lot of different things. To break such a class down, we need to identify a cohesive component within that class. A common approach to find such a component is to look for fields/methods that share the same prefixes, or suffixes.

Once you have determined the fields that belong together, you can apply the Extract Class refactoring. If the component makes sense as a sub-class, Extract Subclass is also a candidate, and is often faster.

1
"""
2
Python 3.4 HTML5 entity unescaping for all!
3
4
Based on
5
https://hg.python.org/cpython/file/500d3d6f22ff/Lib/html/__init__.py
6
"""
7
from __future__ import unicode_literals
8
import sys
9
import re as _re
10
11
__all__ = ['_unescape']
12
13
_html5 = {
14
    'Aacute': '\xc1',
15
    'aacute': '\xe1',
16
    'Aacute;': '\xc1',
17
    'aacute;': '\xe1',
18
    'Abreve;': '\u0102',
19
    'abreve;': '\u0103',
20
    'ac;': '\u223e',
21
    'acd;': '\u223f',
22
    'acE;': '\u223e\u0333',
23
    'Acirc': '\xc2',
24
    'acirc': '\xe2',
25
    'Acirc;': '\xc2',
26
    'acirc;': '\xe2',
27
    'acute': '\xb4',
28
    'acute;': '\xb4',
29
    'Acy;': '\u0410',
30
    'acy;': '\u0430',
31
    'AElig': '\xc6',
32
    'aelig': '\xe6',
33
    'AElig;': '\xc6',
34
    'aelig;': '\xe6',
35
    'af;': '\u2061',
36
    'Afr;': '\U0001d504',
37
    'afr;': '\U0001d51e',
38
    'Agrave': '\xc0',
39
    'agrave': '\xe0',
40
    'Agrave;': '\xc0',
41
    'agrave;': '\xe0',
42
    'alefsym;': '\u2135',
43
    'aleph;': '\u2135',
44
    'Alpha;': '\u0391',
45
    'alpha;': '\u03b1',
46
    'Amacr;': '\u0100',
47
    'amacr;': '\u0101',
48
    'amalg;': '\u2a3f',
49
    'AMP': '&',
50
    'amp': '&',
51
    'AMP;': '&',
52
    'amp;': '&',
53
    'And;': '\u2a53',
54
    'and;': '\u2227',
55
    'andand;': '\u2a55',
56
    'andd;': '\u2a5c',
57
    'andslope;': '\u2a58',
58
    'andv;': '\u2a5a',
59
    'ang;': '\u2220',
60
    'ange;': '\u29a4',
61
    'angle;': '\u2220',
62
    'angmsd;': '\u2221',
63
    'angmsdaa;': '\u29a8',
64
    'angmsdab;': '\u29a9',
65
    'angmsdac;': '\u29aa',
66
    'angmsdad;': '\u29ab',
67
    'angmsdae;': '\u29ac',
68
    'angmsdaf;': '\u29ad',
69
    'angmsdag;': '\u29ae',
70
    'angmsdah;': '\u29af',
71
    'angrt;': '\u221f',
72
    'angrtvb;': '\u22be',
73
    'angrtvbd;': '\u299d',
74
    'angsph;': '\u2222',
75
    'angst;': '\xc5',
76
    'angzarr;': '\u237c',
77
    'Aogon;': '\u0104',
78
    'aogon;': '\u0105',
79
    'Aopf;': '\U0001d538',
80
    'aopf;': '\U0001d552',
81
    'ap;': '\u2248',
82
    'apacir;': '\u2a6f',
83
    'apE;': '\u2a70',
84
    'ape;': '\u224a',
85
    'apid;': '\u224b',
86
    'apos;': "'",
87
    'ApplyFunction;': '\u2061',
88
    'approx;': '\u2248',
89
    'approxeq;': '\u224a',
90
    'Aring': '\xc5',
91
    'aring': '\xe5',
92
    'Aring;': '\xc5',
93
    'aring;': '\xe5',
94
    'Ascr;': '\U0001d49c',
95
    'ascr;': '\U0001d4b6',
96
    'Assign;': '\u2254',
97
    'ast;': '*',
98
    'asymp;': '\u2248',
99
    'asympeq;': '\u224d',
100
    'Atilde': '\xc3',
101
    'atilde': '\xe3',
102
    'Atilde;': '\xc3',
103
    'atilde;': '\xe3',
104
    'Auml': '\xc4',
105
    'auml': '\xe4',
106
    'Auml;': '\xc4',
107
    'auml;': '\xe4',
108
    'awconint;': '\u2233',
109
    'awint;': '\u2a11',
110
    'backcong;': '\u224c',
111
    'backepsilon;': '\u03f6',
112
    'backprime;': '\u2035',
113
    'backsim;': '\u223d',
114
    'backsimeq;': '\u22cd',
115
    'Backslash;': '\u2216',
116
    'Barv;': '\u2ae7',
117
    'barvee;': '\u22bd',
118
    'Barwed;': '\u2306',
119
    'barwed;': '\u2305',
120
    'barwedge;': '\u2305',
121
    'bbrk;': '\u23b5',
122
    'bbrktbrk;': '\u23b6',
123
    'bcong;': '\u224c',
124
    'Bcy;': '\u0411',
125
    'bcy;': '\u0431',
126
    'bdquo;': '\u201e',
127
    'becaus;': '\u2235',
128
    'Because;': '\u2235',
129
    'because;': '\u2235',
130
    'bemptyv;': '\u29b0',
131
    'bepsi;': '\u03f6',
132
    'bernou;': '\u212c',
133
    'Bernoullis;': '\u212c',
134
    'Beta;': '\u0392',
135
    'beta;': '\u03b2',
136
    'beth;': '\u2136',
137
    'between;': '\u226c',
138
    'Bfr;': '\U0001d505',
139
    'bfr;': '\U0001d51f',
140
    'bigcap;': '\u22c2',
141
    'bigcirc;': '\u25ef',
142
    'bigcup;': '\u22c3',
143
    'bigodot;': '\u2a00',
144
    'bigoplus;': '\u2a01',
145
    'bigotimes;': '\u2a02',
146
    'bigsqcup;': '\u2a06',
147
    'bigstar;': '\u2605',
148
    'bigtriangledown;': '\u25bd',
149
    'bigtriangleup;': '\u25b3',
150
    'biguplus;': '\u2a04',
151
    'bigvee;': '\u22c1',
152
    'bigwedge;': '\u22c0',
153
    'bkarow;': '\u290d',
154
    'blacklozenge;': '\u29eb',
155
    'blacksquare;': '\u25aa',
156
    'blacktriangle;': '\u25b4',
157
    'blacktriangledown;': '\u25be',
158
    'blacktriangleleft;': '\u25c2',
159
    'blacktriangleright;': '\u25b8',
160
    'blank;': '\u2423',
161
    'blk12;': '\u2592',
162
    'blk14;': '\u2591',
163
    'blk34;': '\u2593',
164
    'block;': '\u2588',
165
    'bne;': '=\u20e5',
166
    'bnequiv;': '\u2261\u20e5',
167
    'bNot;': '\u2aed',
168
    'bnot;': '\u2310',
169
    'Bopf;': '\U0001d539',
170
    'bopf;': '\U0001d553',
171
    'bot;': '\u22a5',
172
    'bottom;': '\u22a5',
173
    'bowtie;': '\u22c8',
174
    'boxbox;': '\u29c9',
175
    'boxDL;': '\u2557',
176
    'boxDl;': '\u2556',
177
    'boxdL;': '\u2555',
178
    'boxdl;': '\u2510',
179
    'boxDR;': '\u2554',
180
    'boxDr;': '\u2553',
181
    'boxdR;': '\u2552',
182
    'boxdr;': '\u250c',
183
    'boxH;': '\u2550',
184
    'boxh;': '\u2500',
185
    'boxHD;': '\u2566',
186
    'boxHd;': '\u2564',
187
    'boxhD;': '\u2565',
188
    'boxhd;': '\u252c',
189
    'boxHU;': '\u2569',
190
    'boxHu;': '\u2567',
191
    'boxhU;': '\u2568',
192
    'boxhu;': '\u2534',
193
    'boxminus;': '\u229f',
194
    'boxplus;': '\u229e',
195
    'boxtimes;': '\u22a0',
196
    'boxUL;': '\u255d',
197
    'boxUl;': '\u255c',
198
    'boxuL;': '\u255b',
199
    'boxul;': '\u2518',
200
    'boxUR;': '\u255a',
201
    'boxUr;': '\u2559',
202
    'boxuR;': '\u2558',
203
    'boxur;': '\u2514',
204
    'boxV;': '\u2551',
205
    'boxv;': '\u2502',
206
    'boxVH;': '\u256c',
207
    'boxVh;': '\u256b',
208
    'boxvH;': '\u256a',
209
    'boxvh;': '\u253c',
210
    'boxVL;': '\u2563',
211
    'boxVl;': '\u2562',
212
    'boxvL;': '\u2561',
213
    'boxvl;': '\u2524',
214
    'boxVR;': '\u2560',
215
    'boxVr;': '\u255f',
216
    'boxvR;': '\u255e',
217
    'boxvr;': '\u251c',
218
    'bprime;': '\u2035',
219
    'Breve;': '\u02d8',
220
    'breve;': '\u02d8',
221
    'brvbar': '\xa6',
222
    'brvbar;': '\xa6',
223
    'Bscr;': '\u212c',
224
    'bscr;': '\U0001d4b7',
225
    'bsemi;': '\u204f',
226
    'bsim;': '\u223d',
227
    'bsime;': '\u22cd',
228
    'bsol;': '\\',
229
    'bsolb;': '\u29c5',
230
    'bsolhsub;': '\u27c8',
231
    'bull;': '\u2022',
232
    'bullet;': '\u2022',
233
    'bump;': '\u224e',
234
    'bumpE;': '\u2aae',
235
    'bumpe;': '\u224f',
236
    'Bumpeq;': '\u224e',
237
    'bumpeq;': '\u224f',
238
    'Cacute;': '\u0106',
239
    'cacute;': '\u0107',
240
    'Cap;': '\u22d2',
241
    'cap;': '\u2229',
242
    'capand;': '\u2a44',
243
    'capbrcup;': '\u2a49',
244
    'capcap;': '\u2a4b',
245
    'capcup;': '\u2a47',
246
    'capdot;': '\u2a40',
247
    'CapitalDifferentialD;': '\u2145',
248
    'caps;': '\u2229\ufe00',
249
    'caret;': '\u2041',
250
    'caron;': '\u02c7',
251
    'Cayleys;': '\u212d',
252
    'ccaps;': '\u2a4d',
253
    'Ccaron;': '\u010c',
254
    'ccaron;': '\u010d',
255
    'Ccedil': '\xc7',
256
    'ccedil': '\xe7',
257
    'Ccedil;': '\xc7',
258
    'ccedil;': '\xe7',
259
    'Ccirc;': '\u0108',
260
    'ccirc;': '\u0109',
261
    'Cconint;': '\u2230',
262
    'ccups;': '\u2a4c',
263
    'ccupssm;': '\u2a50',
264
    'Cdot;': '\u010a',
265
    'cdot;': '\u010b',
266
    'cedil': '\xb8',
267
    'cedil;': '\xb8',
268
    'Cedilla;': '\xb8',
269
    'cemptyv;': '\u29b2',
270
    'cent': '\xa2',
271
    'cent;': '\xa2',
272
    'CenterDot;': '\xb7',
273
    'centerdot;': '\xb7',
274
    'Cfr;': '\u212d',
275
    'cfr;': '\U0001d520',
276
    'CHcy;': '\u0427',
277
    'chcy;': '\u0447',
278
    'check;': '\u2713',
279
    'checkmark;': '\u2713',
280
    'Chi;': '\u03a7',
281
    'chi;': '\u03c7',
282
    'cir;': '\u25cb',
283
    'circ;': '\u02c6',
284
    'circeq;': '\u2257',
285
    'circlearrowleft;': '\u21ba',
286
    'circlearrowright;': '\u21bb',
287
    'circledast;': '\u229b',
288
    'circledcirc;': '\u229a',
289
    'circleddash;': '\u229d',
290
    'CircleDot;': '\u2299',
291
    'circledR;': '\xae',
292
    'circledS;': '\u24c8',
293
    'CircleMinus;': '\u2296',
294
    'CirclePlus;': '\u2295',
295
    'CircleTimes;': '\u2297',
296
    'cirE;': '\u29c3',
297
    'cire;': '\u2257',
298
    'cirfnint;': '\u2a10',
299
    'cirmid;': '\u2aef',
300
    'cirscir;': '\u29c2',
301
    'ClockwiseContourIntegral;': '\u2232',
302
    'CloseCurlyDoubleQuote;': '\u201d',
303
    'CloseCurlyQuote;': '\u2019',
304
    'clubs;': '\u2663',
305
    'clubsuit;': '\u2663',
306
    'Colon;': '\u2237',
307
    'colon;': ':',
308
    'Colone;': '\u2a74',
309
    'colone;': '\u2254',
310
    'coloneq;': '\u2254',
311
    'comma;': ',',
312
    'commat;': '@',
313
    'comp;': '\u2201',
314
    'compfn;': '\u2218',
315
    'complement;': '\u2201',
316
    'complexes;': '\u2102',
317
    'cong;': '\u2245',
318
    'congdot;': '\u2a6d',
319
    'Congruent;': '\u2261',
320
    'Conint;': '\u222f',
321
    'conint;': '\u222e',
322
    'ContourIntegral;': '\u222e',
323
    'Copf;': '\u2102',
324
    'copf;': '\U0001d554',
325
    'coprod;': '\u2210',
326
    'Coproduct;': '\u2210',
327
    'COPY': '\xa9',
328
    'copy': '\xa9',
329
    'COPY;': '\xa9',
330
    'copy;': '\xa9',
331
    'copysr;': '\u2117',
332
    'CounterClockwiseContourIntegral;': '\u2233',
333
    'crarr;': '\u21b5',
334
    'Cross;': '\u2a2f',
335
    'cross;': '\u2717',
336
    'Cscr;': '\U0001d49e',
337
    'cscr;': '\U0001d4b8',
338
    'csub;': '\u2acf',
339
    'csube;': '\u2ad1',
340
    'csup;': '\u2ad0',
341
    'csupe;': '\u2ad2',
342
    'ctdot;': '\u22ef',
343
    'cudarrl;': '\u2938',
344
    'cudarrr;': '\u2935',
345
    'cuepr;': '\u22de',
346
    'cuesc;': '\u22df',
347
    'cularr;': '\u21b6',
348
    'cularrp;': '\u293d',
349
    'Cup;': '\u22d3',
350
    'cup;': '\u222a',
351
    'cupbrcap;': '\u2a48',
352
    'CupCap;': '\u224d',
353
    'cupcap;': '\u2a46',
354
    'cupcup;': '\u2a4a',
355
    'cupdot;': '\u228d',
356
    'cupor;': '\u2a45',
357
    'cups;': '\u222a\ufe00',
358
    'curarr;': '\u21b7',
359
    'curarrm;': '\u293c',
360
    'curlyeqprec;': '\u22de',
361
    'curlyeqsucc;': '\u22df',
362
    'curlyvee;': '\u22ce',
363
    'curlywedge;': '\u22cf',
364
    'curren': '\xa4',
365
    'curren;': '\xa4',
366
    'curvearrowleft;': '\u21b6',
367
    'curvearrowright;': '\u21b7',
368
    'cuvee;': '\u22ce',
369
    'cuwed;': '\u22cf',
370
    'cwconint;': '\u2232',
371
    'cwint;': '\u2231',
372
    'cylcty;': '\u232d',
373
    'Dagger;': '\u2021',
374
    'dagger;': '\u2020',
375
    'daleth;': '\u2138',
376
    'Darr;': '\u21a1',
377
    'dArr;': '\u21d3',
378
    'darr;': '\u2193',
379
    'dash;': '\u2010',
380
    'Dashv;': '\u2ae4',
381
    'dashv;': '\u22a3',
382
    'dbkarow;': '\u290f',
383
    'dblac;': '\u02dd',
384
    'Dcaron;': '\u010e',
385
    'dcaron;': '\u010f',
386
    'Dcy;': '\u0414',
387
    'dcy;': '\u0434',
388
    'DD;': '\u2145',
389
    'dd;': '\u2146',
390
    'ddagger;': '\u2021',
391
    'ddarr;': '\u21ca',
392
    'DDotrahd;': '\u2911',
393
    'ddotseq;': '\u2a77',
394
    'deg': '\xb0',
395
    'deg;': '\xb0',
396
    'Del;': '\u2207',
397
    'Delta;': '\u0394',
398
    'delta;': '\u03b4',
399
    'demptyv;': '\u29b1',
400
    'dfisht;': '\u297f',
401
    'Dfr;': '\U0001d507',
402
    'dfr;': '\U0001d521',
403
    'dHar;': '\u2965',
404
    'dharl;': '\u21c3',
405
    'dharr;': '\u21c2',
406
    'DiacriticalAcute;': '\xb4',
407
    'DiacriticalDot;': '\u02d9',
408
    'DiacriticalDoubleAcute;': '\u02dd',
409
    'DiacriticalGrave;': '`',
410
    'DiacriticalTilde;': '\u02dc',
411
    'diam;': '\u22c4',
412
    'Diamond;': '\u22c4',
413
    'diamond;': '\u22c4',
414
    'diamondsuit;': '\u2666',
415
    'diams;': '\u2666',
416
    'die;': '\xa8',
417
    'DifferentialD;': '\u2146',
418
    'digamma;': '\u03dd',
419
    'disin;': '\u22f2',
420
    'div;': '\xf7',
421
    'divide': '\xf7',
422
    'divide;': '\xf7',
423
    'divideontimes;': '\u22c7',
424
    'divonx;': '\u22c7',
425
    'DJcy;': '\u0402',
426
    'djcy;': '\u0452',
427
    'dlcorn;': '\u231e',
428
    'dlcrop;': '\u230d',
429
    'dollar;': '$',
430
    'Dopf;': '\U0001d53b',
431
    'dopf;': '\U0001d555',
432
    'Dot;': '\xa8',
433
    'dot;': '\u02d9',
434
    'DotDot;': '\u20dc',
435
    'doteq;': '\u2250',
436
    'doteqdot;': '\u2251',
437
    'DotEqual;': '\u2250',
438
    'dotminus;': '\u2238',
439
    'dotplus;': '\u2214',
440
    'dotsquare;': '\u22a1',
441
    'doublebarwedge;': '\u2306',
442
    'DoubleContourIntegral;': '\u222f',
443
    'DoubleDot;': '\xa8',
444
    'DoubleDownArrow;': '\u21d3',
445
    'DoubleLeftArrow;': '\u21d0',
446
    'DoubleLeftRightArrow;': '\u21d4',
447
    'DoubleLeftTee;': '\u2ae4',
448
    'DoubleLongLeftArrow;': '\u27f8',
449
    'DoubleLongLeftRightArrow;': '\u27fa',
450
    'DoubleLongRightArrow;': '\u27f9',
451
    'DoubleRightArrow;': '\u21d2',
452
    'DoubleRightTee;': '\u22a8',
453
    'DoubleUpArrow;': '\u21d1',
454
    'DoubleUpDownArrow;': '\u21d5',
455
    'DoubleVerticalBar;': '\u2225',
456
    'DownArrow;': '\u2193',
457
    'Downarrow;': '\u21d3',
458
    'downarrow;': '\u2193',
459
    'DownArrowBar;': '\u2913',
460
    'DownArrowUpArrow;': '\u21f5',
461
    'DownBreve;': '\u0311',
462
    'downdownarrows;': '\u21ca',
463
    'downharpoonleft;': '\u21c3',
464
    'downharpoonright;': '\u21c2',
465
    'DownLeftRightVector;': '\u2950',
466
    'DownLeftTeeVector;': '\u295e',
467
    'DownLeftVector;': '\u21bd',
468
    'DownLeftVectorBar;': '\u2956',
469
    'DownRightTeeVector;': '\u295f',
470
    'DownRightVector;': '\u21c1',
471
    'DownRightVectorBar;': '\u2957',
472
    'DownTee;': '\u22a4',
473
    'DownTeeArrow;': '\u21a7',
474
    'drbkarow;': '\u2910',
475
    'drcorn;': '\u231f',
476
    'drcrop;': '\u230c',
477
    'Dscr;': '\U0001d49f',
478
    'dscr;': '\U0001d4b9',
479
    'DScy;': '\u0405',
480
    'dscy;': '\u0455',
481
    'dsol;': '\u29f6',
482
    'Dstrok;': '\u0110',
483
    'dstrok;': '\u0111',
484
    'dtdot;': '\u22f1',
485
    'dtri;': '\u25bf',
486
    'dtrif;': '\u25be',
487
    'duarr;': '\u21f5',
488
    'duhar;': '\u296f',
489
    'dwangle;': '\u29a6',
490
    'DZcy;': '\u040f',
491
    'dzcy;': '\u045f',
492
    'dzigrarr;': '\u27ff',
493
    'Eacute': '\xc9',
494
    'eacute': '\xe9',
495
    'Eacute;': '\xc9',
496
    'eacute;': '\xe9',
497
    'easter;': '\u2a6e',
498
    'Ecaron;': '\u011a',
499
    'ecaron;': '\u011b',
500
    'ecir;': '\u2256',
501
    'Ecirc': '\xca',
502
    'ecirc': '\xea',
503
    'Ecirc;': '\xca',
504
    'ecirc;': '\xea',
505
    'ecolon;': '\u2255',
506
    'Ecy;': '\u042d',
507
    'ecy;': '\u044d',
508
    'eDDot;': '\u2a77',
509
    'Edot;': '\u0116',
510
    'eDot;': '\u2251',
511
    'edot;': '\u0117',
512
    'ee;': '\u2147',
513
    'efDot;': '\u2252',
514
    'Efr;': '\U0001d508',
515
    'efr;': '\U0001d522',
516
    'eg;': '\u2a9a',
517
    'Egrave': '\xc8',
518
    'egrave': '\xe8',
519
    'Egrave;': '\xc8',
520
    'egrave;': '\xe8',
521
    'egs;': '\u2a96',
522
    'egsdot;': '\u2a98',
523
    'el;': '\u2a99',
524
    'Element;': '\u2208',
525
    'elinters;': '\u23e7',
526
    'ell;': '\u2113',
527
    'els;': '\u2a95',
528
    'elsdot;': '\u2a97',
529
    'Emacr;': '\u0112',
530
    'emacr;': '\u0113',
531
    'empty;': '\u2205',
532
    'emptyset;': '\u2205',
533
    'EmptySmallSquare;': '\u25fb',
534
    'emptyv;': '\u2205',
535
    'EmptyVerySmallSquare;': '\u25ab',
536
    'emsp13;': '\u2004',
537
    'emsp14;': '\u2005',
538
    'emsp;': '\u2003',
539
    'ENG;': '\u014a',
540
    'eng;': '\u014b',
541
    'ensp;': '\u2002',
542
    'Eogon;': '\u0118',
543
    'eogon;': '\u0119',
544
    'Eopf;': '\U0001d53c',
545
    'eopf;': '\U0001d556',
546
    'epar;': '\u22d5',
547
    'eparsl;': '\u29e3',
548
    'eplus;': '\u2a71',
549
    'epsi;': '\u03b5',
550
    'Epsilon;': '\u0395',
551
    'epsilon;': '\u03b5',
552
    'epsiv;': '\u03f5',
553
    'eqcirc;': '\u2256',
554
    'eqcolon;': '\u2255',
555
    'eqsim;': '\u2242',
556
    'eqslantgtr;': '\u2a96',
557
    'eqslantless;': '\u2a95',
558
    'Equal;': '\u2a75',
559
    'equals;': '=',
560
    'EqualTilde;': '\u2242',
561
    'equest;': '\u225f',
562
    'Equilibrium;': '\u21cc',
563
    'equiv;': '\u2261',
564
    'equivDD;': '\u2a78',
565
    'eqvparsl;': '\u29e5',
566
    'erarr;': '\u2971',
567
    'erDot;': '\u2253',
568
    'Escr;': '\u2130',
569
    'escr;': '\u212f',
570
    'esdot;': '\u2250',
571
    'Esim;': '\u2a73',
572
    'esim;': '\u2242',
573
    'Eta;': '\u0397',
574
    'eta;': '\u03b7',
575
    'ETH': '\xd0',
576
    'eth': '\xf0',
577
    'ETH;': '\xd0',
578
    'eth;': '\xf0',
579
    'Euml': '\xcb',
580
    'euml': '\xeb',
581
    'Euml;': '\xcb',
582
    'euml;': '\xeb',
583
    'euro;': '\u20ac',
584
    'excl;': '!',
585
    'exist;': '\u2203',
586
    'Exists;': '\u2203',
587
    'expectation;': '\u2130',
588
    'ExponentialE;': '\u2147',
589
    'exponentiale;': '\u2147',
590
    'fallingdotseq;': '\u2252',
591
    'Fcy;': '\u0424',
592
    'fcy;': '\u0444',
593
    'female;': '\u2640',
594
    'ffilig;': '\ufb03',
595
    'fflig;': '\ufb00',
596
    'ffllig;': '\ufb04',
597
    'Ffr;': '\U0001d509',
598
    'ffr;': '\U0001d523',
599
    'filig;': '\ufb01',
600
    'FilledSmallSquare;': '\u25fc',
601
    'FilledVerySmallSquare;': '\u25aa',
602
    'fjlig;': 'fj',
603
    'flat;': '\u266d',
604
    'fllig;': '\ufb02',
605
    'fltns;': '\u25b1',
606
    'fnof;': '\u0192',
607
    'Fopf;': '\U0001d53d',
608
    'fopf;': '\U0001d557',
609
    'ForAll;': '\u2200',
610
    'forall;': '\u2200',
611
    'fork;': '\u22d4',
612
    'forkv;': '\u2ad9',
613
    'Fouriertrf;': '\u2131',
614
    'fpartint;': '\u2a0d',
615
    'frac12': '\xbd',
616
    'frac12;': '\xbd',
617
    'frac13;': '\u2153',
618
    'frac14': '\xbc',
619
    'frac14;': '\xbc',
620
    'frac15;': '\u2155',
621
    'frac16;': '\u2159',
622
    'frac18;': '\u215b',
623
    'frac23;': '\u2154',
624
    'frac25;': '\u2156',
625
    'frac34': '\xbe',
626
    'frac34;': '\xbe',
627
    'frac35;': '\u2157',
628
    'frac38;': '\u215c',
629
    'frac45;': '\u2158',
630
    'frac56;': '\u215a',
631
    'frac58;': '\u215d',
632
    'frac78;': '\u215e',
633
    'frasl;': '\u2044',
634
    'frown;': '\u2322',
635
    'Fscr;': '\u2131',
636
    'fscr;': '\U0001d4bb',
637
    'gacute;': '\u01f5',
638
    'Gamma;': '\u0393',
639
    'gamma;': '\u03b3',
640
    'Gammad;': '\u03dc',
641
    'gammad;': '\u03dd',
642
    'gap;': '\u2a86',
643
    'Gbreve;': '\u011e',
644
    'gbreve;': '\u011f',
645
    'Gcedil;': '\u0122',
646
    'Gcirc;': '\u011c',
647
    'gcirc;': '\u011d',
648
    'Gcy;': '\u0413',
649
    'gcy;': '\u0433',
650
    'Gdot;': '\u0120',
651
    'gdot;': '\u0121',
652
    'gE;': '\u2267',
653
    'ge;': '\u2265',
654
    'gEl;': '\u2a8c',
655
    'gel;': '\u22db',
656
    'geq;': '\u2265',
657
    'geqq;': '\u2267',
658
    'geqslant;': '\u2a7e',
659
    'ges;': '\u2a7e',
660
    'gescc;': '\u2aa9',
661
    'gesdot;': '\u2a80',
662
    'gesdoto;': '\u2a82',
663
    'gesdotol;': '\u2a84',
664
    'gesl;': '\u22db\ufe00',
665
    'gesles;': '\u2a94',
666
    'Gfr;': '\U0001d50a',
667
    'gfr;': '\U0001d524',
668
    'Gg;': '\u22d9',
669
    'gg;': '\u226b',
670
    'ggg;': '\u22d9',
671
    'gimel;': '\u2137',
672
    'GJcy;': '\u0403',
673
    'gjcy;': '\u0453',
674
    'gl;': '\u2277',
675
    'gla;': '\u2aa5',
676
    'glE;': '\u2a92',
677
    'glj;': '\u2aa4',
678
    'gnap;': '\u2a8a',
679
    'gnapprox;': '\u2a8a',
680
    'gnE;': '\u2269',
681
    'gne;': '\u2a88',
682
    'gneq;': '\u2a88',
683
    'gneqq;': '\u2269',
684
    'gnsim;': '\u22e7',
685
    'Gopf;': '\U0001d53e',
686
    'gopf;': '\U0001d558',
687
    'grave;': '`',
688
    'GreaterEqual;': '\u2265',
689
    'GreaterEqualLess;': '\u22db',
690
    'GreaterFullEqual;': '\u2267',
691
    'GreaterGreater;': '\u2aa2',
692
    'GreaterLess;': '\u2277',
693
    'GreaterSlantEqual;': '\u2a7e',
694
    'GreaterTilde;': '\u2273',
695
    'Gscr;': '\U0001d4a2',
696
    'gscr;': '\u210a',
697
    'gsim;': '\u2273',
698
    'gsime;': '\u2a8e',
699
    'gsiml;': '\u2a90',
700
    'GT': '>',
701
    'gt': '>',
702
    'GT;': '>',
703
    'Gt;': '\u226b',
704
    'gt;': '>',
705
    'gtcc;': '\u2aa7',
706
    'gtcir;': '\u2a7a',
707
    'gtdot;': '\u22d7',
708
    'gtlPar;': '\u2995',
709
    'gtquest;': '\u2a7c',
710
    'gtrapprox;': '\u2a86',
711
    'gtrarr;': '\u2978',
712
    'gtrdot;': '\u22d7',
713
    'gtreqless;': '\u22db',
714
    'gtreqqless;': '\u2a8c',
715
    'gtrless;': '\u2277',
716
    'gtrsim;': '\u2273',
717
    'gvertneqq;': '\u2269\ufe00',
718
    'gvnE;': '\u2269\ufe00',
719
    'Hacek;': '\u02c7',
720
    'hairsp;': '\u200a',
721
    'half;': '\xbd',
722
    'hamilt;': '\u210b',
723
    'HARDcy;': '\u042a',
724
    'hardcy;': '\u044a',
725
    'hArr;': '\u21d4',
726
    'harr;': '\u2194',
727
    'harrcir;': '\u2948',
728
    'harrw;': '\u21ad',
729
    'Hat;': '^',
730
    'hbar;': '\u210f',
731
    'Hcirc;': '\u0124',
732
    'hcirc;': '\u0125',
733
    'hearts;': '\u2665',
734
    'heartsuit;': '\u2665',
735
    'hellip;': '\u2026',
736
    'hercon;': '\u22b9',
737
    'Hfr;': '\u210c',
738
    'hfr;': '\U0001d525',
739
    'HilbertSpace;': '\u210b',
740
    'hksearow;': '\u2925',
741
    'hkswarow;': '\u2926',
742
    'hoarr;': '\u21ff',
743
    'homtht;': '\u223b',
744
    'hookleftarrow;': '\u21a9',
745
    'hookrightarrow;': '\u21aa',
746
    'Hopf;': '\u210d',
747
    'hopf;': '\U0001d559',
748
    'horbar;': '\u2015',
749
    'HorizontalLine;': '\u2500',
750
    'Hscr;': '\u210b',
751
    'hscr;': '\U0001d4bd',
752
    'hslash;': '\u210f',
753
    'Hstrok;': '\u0126',
754
    'hstrok;': '\u0127',
755
    'HumpDownHump;': '\u224e',
756
    'HumpEqual;': '\u224f',
757
    'hybull;': '\u2043',
758
    'hyphen;': '\u2010',
759
    'Iacute': '\xcd',
760
    'iacute': '\xed',
761
    'Iacute;': '\xcd',
762
    'iacute;': '\xed',
763
    'ic;': '\u2063',
764
    'Icirc': '\xce',
765
    'icirc': '\xee',
766
    'Icirc;': '\xce',
767
    'icirc;': '\xee',
768
    'Icy;': '\u0418',
769
    'icy;': '\u0438',
770
    'Idot;': '\u0130',
771
    'IEcy;': '\u0415',
772
    'iecy;': '\u0435',
773
    'iexcl': '\xa1',
774
    'iexcl;': '\xa1',
775
    'iff;': '\u21d4',
776
    'Ifr;': '\u2111',
777
    'ifr;': '\U0001d526',
778
    'Igrave': '\xcc',
779
    'igrave': '\xec',
780
    'Igrave;': '\xcc',
781
    'igrave;': '\xec',
782
    'ii;': '\u2148',
783
    'iiiint;': '\u2a0c',
784
    'iiint;': '\u222d',
785
    'iinfin;': '\u29dc',
786
    'iiota;': '\u2129',
787
    'IJlig;': '\u0132',
788
    'ijlig;': '\u0133',
789
    'Im;': '\u2111',
790
    'Imacr;': '\u012a',
791
    'imacr;': '\u012b',
792
    'image;': '\u2111',
793
    'ImaginaryI;': '\u2148',
794
    'imagline;': '\u2110',
795
    'imagpart;': '\u2111',
796
    'imath;': '\u0131',
797
    'imof;': '\u22b7',
798
    'imped;': '\u01b5',
799
    'Implies;': '\u21d2',
800
    'in;': '\u2208',
801
    'incare;': '\u2105',
802
    'infin;': '\u221e',
803
    'infintie;': '\u29dd',
804
    'inodot;': '\u0131',
805
    'Int;': '\u222c',
806
    'int;': '\u222b',
807
    'intcal;': '\u22ba',
808
    'integers;': '\u2124',
809
    'Integral;': '\u222b',
810
    'intercal;': '\u22ba',
811
    'Intersection;': '\u22c2',
812
    'intlarhk;': '\u2a17',
813
    'intprod;': '\u2a3c',
814
    'InvisibleComma;': '\u2063',
815
    'InvisibleTimes;': '\u2062',
816
    'IOcy;': '\u0401',
817
    'iocy;': '\u0451',
818
    'Iogon;': '\u012e',
819
    'iogon;': '\u012f',
820
    'Iopf;': '\U0001d540',
821
    'iopf;': '\U0001d55a',
822
    'Iota;': '\u0399',
823
    'iota;': '\u03b9',
824
    'iprod;': '\u2a3c',
825
    'iquest': '\xbf',
826
    'iquest;': '\xbf',
827
    'Iscr;': '\u2110',
828
    'iscr;': '\U0001d4be',
829
    'isin;': '\u2208',
830
    'isindot;': '\u22f5',
831
    'isinE;': '\u22f9',
832
    'isins;': '\u22f4',
833
    'isinsv;': '\u22f3',
834
    'isinv;': '\u2208',
835
    'it;': '\u2062',
836
    'Itilde;': '\u0128',
837
    'itilde;': '\u0129',
838
    'Iukcy;': '\u0406',
839
    'iukcy;': '\u0456',
840
    'Iuml': '\xcf',
841
    'iuml': '\xef',
842
    'Iuml;': '\xcf',
843
    'iuml;': '\xef',
844
    'Jcirc;': '\u0134',
845
    'jcirc;': '\u0135',
846
    'Jcy;': '\u0419',
847
    'jcy;': '\u0439',
848
    'Jfr;': '\U0001d50d',
849
    'jfr;': '\U0001d527',
850
    'jmath;': '\u0237',
851
    'Jopf;': '\U0001d541',
852
    'jopf;': '\U0001d55b',
853
    'Jscr;': '\U0001d4a5',
854
    'jscr;': '\U0001d4bf',
855
    'Jsercy;': '\u0408',
856
    'jsercy;': '\u0458',
857
    'Jukcy;': '\u0404',
858
    'jukcy;': '\u0454',
859
    'Kappa;': '\u039a',
860
    'kappa;': '\u03ba',
861
    'kappav;': '\u03f0',
862
    'Kcedil;': '\u0136',
863
    'kcedil;': '\u0137',
864
    'Kcy;': '\u041a',
865
    'kcy;': '\u043a',
866
    'Kfr;': '\U0001d50e',
867
    'kfr;': '\U0001d528',
868
    'kgreen;': '\u0138',
869
    'KHcy;': '\u0425',
870
    'khcy;': '\u0445',
871
    'KJcy;': '\u040c',
872
    'kjcy;': '\u045c',
873
    'Kopf;': '\U0001d542',
874
    'kopf;': '\U0001d55c',
875
    'Kscr;': '\U0001d4a6',
876
    'kscr;': '\U0001d4c0',
877
    'lAarr;': '\u21da',
878
    'Lacute;': '\u0139',
879
    'lacute;': '\u013a',
880
    'laemptyv;': '\u29b4',
881
    'lagran;': '\u2112',
882
    'Lambda;': '\u039b',
883
    'lambda;': '\u03bb',
884
    'Lang;': '\u27ea',
885
    'lang;': '\u27e8',
886
    'langd;': '\u2991',
887
    'langle;': '\u27e8',
888
    'lap;': '\u2a85',
889
    'Laplacetrf;': '\u2112',
890
    'laquo': '\xab',
891
    'laquo;': '\xab',
892
    'Larr;': '\u219e',
893
    'lArr;': '\u21d0',
894
    'larr;': '\u2190',
895
    'larrb;': '\u21e4',
896
    'larrbfs;': '\u291f',
897
    'larrfs;': '\u291d',
898
    'larrhk;': '\u21a9',
899
    'larrlp;': '\u21ab',
900
    'larrpl;': '\u2939',
901
    'larrsim;': '\u2973',
902
    'larrtl;': '\u21a2',
903
    'lat;': '\u2aab',
904
    'lAtail;': '\u291b',
905
    'latail;': '\u2919',
906
    'late;': '\u2aad',
907
    'lates;': '\u2aad\ufe00',
908
    'lBarr;': '\u290e',
909
    'lbarr;': '\u290c',
910
    'lbbrk;': '\u2772',
911
    'lbrace;': '{',
912
    'lbrack;': '[',
913
    'lbrke;': '\u298b',
914
    'lbrksld;': '\u298f',
915
    'lbrkslu;': '\u298d',
916
    'Lcaron;': '\u013d',
917
    'lcaron;': '\u013e',
918
    'Lcedil;': '\u013b',
919
    'lcedil;': '\u013c',
920
    'lceil;': '\u2308',
921
    'lcub;': '{',
922
    'Lcy;': '\u041b',
923
    'lcy;': '\u043b',
924
    'ldca;': '\u2936',
925
    'ldquo;': '\u201c',
926
    'ldquor;': '\u201e',
927
    'ldrdhar;': '\u2967',
928
    'ldrushar;': '\u294b',
929
    'ldsh;': '\u21b2',
930
    'lE;': '\u2266',
931
    'le;': '\u2264',
932
    'LeftAngleBracket;': '\u27e8',
933
    'LeftArrow;': '\u2190',
934
    'Leftarrow;': '\u21d0',
935
    'leftarrow;': '\u2190',
936
    'LeftArrowBar;': '\u21e4',
937
    'LeftArrowRightArrow;': '\u21c6',
938
    'leftarrowtail;': '\u21a2',
939
    'LeftCeiling;': '\u2308',
940
    'LeftDoubleBracket;': '\u27e6',
941
    'LeftDownTeeVector;': '\u2961',
942
    'LeftDownVector;': '\u21c3',
943
    'LeftDownVectorBar;': '\u2959',
944
    'LeftFloor;': '\u230a',
945
    'leftharpoondown;': '\u21bd',
946
    'leftharpoonup;': '\u21bc',
947
    'leftleftarrows;': '\u21c7',
948
    'LeftRightArrow;': '\u2194',
949
    'Leftrightarrow;': '\u21d4',
950
    'leftrightarrow;': '\u2194',
951
    'leftrightarrows;': '\u21c6',
952
    'leftrightharpoons;': '\u21cb',
953
    'leftrightsquigarrow;': '\u21ad',
954
    'LeftRightVector;': '\u294e',
955
    'LeftTee;': '\u22a3',
956
    'LeftTeeArrow;': '\u21a4',
957
    'LeftTeeVector;': '\u295a',
958
    'leftthreetimes;': '\u22cb',
959
    'LeftTriangle;': '\u22b2',
960
    'LeftTriangleBar;': '\u29cf',
961
    'LeftTriangleEqual;': '\u22b4',
962
    'LeftUpDownVector;': '\u2951',
963
    'LeftUpTeeVector;': '\u2960',
964
    'LeftUpVector;': '\u21bf',
965
    'LeftUpVectorBar;': '\u2958',
966
    'LeftVector;': '\u21bc',
967
    'LeftVectorBar;': '\u2952',
968
    'lEg;': '\u2a8b',
969
    'leg;': '\u22da',
970
    'leq;': '\u2264',
971
    'leqq;': '\u2266',
972
    'leqslant;': '\u2a7d',
973
    'les;': '\u2a7d',
974
    'lescc;': '\u2aa8',
975
    'lesdot;': '\u2a7f',
976
    'lesdoto;': '\u2a81',
977
    'lesdotor;': '\u2a83',
978
    'lesg;': '\u22da\ufe00',
979
    'lesges;': '\u2a93',
980
    'lessapprox;': '\u2a85',
981
    'lessdot;': '\u22d6',
982
    'lesseqgtr;': '\u22da',
983
    'lesseqqgtr;': '\u2a8b',
984
    'LessEqualGreater;': '\u22da',
985
    'LessFullEqual;': '\u2266',
986
    'LessGreater;': '\u2276',
987
    'lessgtr;': '\u2276',
988
    'LessLess;': '\u2aa1',
989
    'lesssim;': '\u2272',
990
    'LessSlantEqual;': '\u2a7d',
991
    'LessTilde;': '\u2272',
992
    'lfisht;': '\u297c',
993
    'lfloor;': '\u230a',
994
    'Lfr;': '\U0001d50f',
995
    'lfr;': '\U0001d529',
996
    'lg;': '\u2276',
997
    'lgE;': '\u2a91',
998
    'lHar;': '\u2962',
999
    'lhard;': '\u21bd',
1000
    'lharu;': '\u21bc',
1001
    'lharul;': '\u296a',
1002
    'lhblk;': '\u2584',
1003
    'LJcy;': '\u0409',
1004
    'ljcy;': '\u0459',
1005
    'Ll;': '\u22d8',
1006
    'll;': '\u226a',
1007
    'llarr;': '\u21c7',
1008
    'llcorner;': '\u231e',
1009
    'Lleftarrow;': '\u21da',
1010
    'llhard;': '\u296b',
1011
    'lltri;': '\u25fa',
1012
    'Lmidot;': '\u013f',
1013
    'lmidot;': '\u0140',
1014
    'lmoust;': '\u23b0',
1015
    'lmoustache;': '\u23b0',
1016
    'lnap;': '\u2a89',
1017
    'lnapprox;': '\u2a89',
1018
    'lnE;': '\u2268',
1019
    'lne;': '\u2a87',
1020
    'lneq;': '\u2a87',
1021
    'lneqq;': '\u2268',
1022
    'lnsim;': '\u22e6',
1023
    'loang;': '\u27ec',
1024
    'loarr;': '\u21fd',
1025
    'lobrk;': '\u27e6',
1026
    'LongLeftArrow;': '\u27f5',
1027
    'Longleftarrow;': '\u27f8',
1028
    'longleftarrow;': '\u27f5',
1029
    'LongLeftRightArrow;': '\u27f7',
1030
    'Longleftrightarrow;': '\u27fa',
1031
    'longleftrightarrow;': '\u27f7',
1032
    'longmapsto;': '\u27fc',
1033
    'LongRightArrow;': '\u27f6',
1034
    'Longrightarrow;': '\u27f9',
1035
    'longrightarrow;': '\u27f6',
1036
    'looparrowleft;': '\u21ab',
1037
    'looparrowright;': '\u21ac',
1038
    'lopar;': '\u2985',
1039
    'Lopf;': '\U0001d543',
1040
    'lopf;': '\U0001d55d',
1041
    'loplus;': '\u2a2d',
1042
    'lotimes;': '\u2a34',
1043
    'lowast;': '\u2217',
1044
    'lowbar;': '_',
1045
    'LowerLeftArrow;': '\u2199',
1046
    'LowerRightArrow;': '\u2198',
1047
    'loz;': '\u25ca',
1048
    'lozenge;': '\u25ca',
1049
    'lozf;': '\u29eb',
1050
    'lpar;': '(',
1051
    'lparlt;': '\u2993',
1052
    'lrarr;': '\u21c6',
1053
    'lrcorner;': '\u231f',
1054
    'lrhar;': '\u21cb',
1055
    'lrhard;': '\u296d',
1056
    'lrm;': '\u200e',
1057
    'lrtri;': '\u22bf',
1058
    'lsaquo;': '\u2039',
1059
    'Lscr;': '\u2112',
1060
    'lscr;': '\U0001d4c1',
1061
    'Lsh;': '\u21b0',
1062
    'lsh;': '\u21b0',
1063
    'lsim;': '\u2272',
1064
    'lsime;': '\u2a8d',
1065
    'lsimg;': '\u2a8f',
1066
    'lsqb;': '[',
1067
    'lsquo;': '\u2018',
1068
    'lsquor;': '\u201a',
1069
    'Lstrok;': '\u0141',
1070
    'lstrok;': '\u0142',
1071
    'LT': '<',
1072
    'lt': '<',
1073
    'LT;': '<',
1074
    'Lt;': '\u226a',
1075
    'lt;': '<',
1076
    'ltcc;': '\u2aa6',
1077
    'ltcir;': '\u2a79',
1078
    'ltdot;': '\u22d6',
1079
    'lthree;': '\u22cb',
1080
    'ltimes;': '\u22c9',
1081
    'ltlarr;': '\u2976',
1082
    'ltquest;': '\u2a7b',
1083
    'ltri;': '\u25c3',
1084
    'ltrie;': '\u22b4',
1085
    'ltrif;': '\u25c2',
1086
    'ltrPar;': '\u2996',
1087
    'lurdshar;': '\u294a',
1088
    'luruhar;': '\u2966',
1089
    'lvertneqq;': '\u2268\ufe00',
1090
    'lvnE;': '\u2268\ufe00',
1091
    'macr': '\xaf',
1092
    'macr;': '\xaf',
1093
    'male;': '\u2642',
1094
    'malt;': '\u2720',
1095
    'maltese;': '\u2720',
1096
    'Map;': '\u2905',
1097
    'map;': '\u21a6',
1098
    'mapsto;': '\u21a6',
1099
    'mapstodown;': '\u21a7',
1100
    'mapstoleft;': '\u21a4',
1101
    'mapstoup;': '\u21a5',
1102
    'marker;': '\u25ae',
1103
    'mcomma;': '\u2a29',
1104
    'Mcy;': '\u041c',
1105
    'mcy;': '\u043c',
1106
    'mdash;': '\u2014',
1107
    'mDDot;': '\u223a',
1108
    'measuredangle;': '\u2221',
1109
    'MediumSpace;': '\u205f',
1110
    'Mellintrf;': '\u2133',
1111
    'Mfr;': '\U0001d510',
1112
    'mfr;': '\U0001d52a',
1113
    'mho;': '\u2127',
1114
    'micro': '\xb5',
1115
    'micro;': '\xb5',
1116
    'mid;': '\u2223',
1117
    'midast;': '*',
1118
    'midcir;': '\u2af0',
1119
    'middot': '\xb7',
1120
    'middot;': '\xb7',
1121
    'minus;': '\u2212',
1122
    'minusb;': '\u229f',
1123
    'minusd;': '\u2238',
1124
    'minusdu;': '\u2a2a',
1125
    'MinusPlus;': '\u2213',
1126
    'mlcp;': '\u2adb',
1127
    'mldr;': '\u2026',
1128
    'mnplus;': '\u2213',
1129
    'models;': '\u22a7',
1130
    'Mopf;': '\U0001d544',
1131
    'mopf;': '\U0001d55e',
1132
    'mp;': '\u2213',
1133
    'Mscr;': '\u2133',
1134
    'mscr;': '\U0001d4c2',
1135
    'mstpos;': '\u223e',
1136
    'Mu;': '\u039c',
1137
    'mu;': '\u03bc',
1138
    'multimap;': '\u22b8',
1139
    'mumap;': '\u22b8',
1140
    'nabla;': '\u2207',
1141
    'Nacute;': '\u0143',
1142
    'nacute;': '\u0144',
1143
    'nang;': '\u2220\u20d2',
1144
    'nap;': '\u2249',
1145
    'napE;': '\u2a70\u0338',
1146
    'napid;': '\u224b\u0338',
1147
    'napos;': '\u0149',
1148
    'napprox;': '\u2249',
1149
    'natur;': '\u266e',
1150
    'natural;': '\u266e',
1151
    'naturals;': '\u2115',
1152
    # 'nbsp': '\xa0',
1153
    'nbsp;': '\xa0',
1154
    'nbump;': '\u224e\u0338',
1155
    'nbumpe;': '\u224f\u0338',
1156
    'ncap;': '\u2a43',
1157
    'Ncaron;': '\u0147',
1158
    'ncaron;': '\u0148',
1159
    'Ncedil;': '\u0145',
1160
    'ncedil;': '\u0146',
1161
    'ncong;': '\u2247',
1162
    'ncongdot;': '\u2a6d\u0338',
1163
    'ncup;': '\u2a42',
1164
    'Ncy;': '\u041d',
1165
    'ncy;': '\u043d',
1166
    'ndash;': '\u2013',
1167
    'ne;': '\u2260',
1168
    'nearhk;': '\u2924',
1169
    'neArr;': '\u21d7',
1170
    'nearr;': '\u2197',
1171
    'nearrow;': '\u2197',
1172
    'nedot;': '\u2250\u0338',
1173
    'NegativeMediumSpace;': '\u200b',
1174
    'NegativeThickSpace;': '\u200b',
1175
    'NegativeThinSpace;': '\u200b',
1176
    'NegativeVeryThinSpace;': '\u200b',
1177
    'nequiv;': '\u2262',
1178
    'nesear;': '\u2928',
1179
    'nesim;': '\u2242\u0338',
1180
    'NestedGreaterGreater;': '\u226b',
1181
    'NestedLessLess;': '\u226a',
1182
    'NewLine;': '\n',
1183
    'nexist;': '\u2204',
1184
    'nexists;': '\u2204',
1185
    'Nfr;': '\U0001d511',
1186
    'nfr;': '\U0001d52b',
1187
    'ngE;': '\u2267\u0338',
1188
    'nge;': '\u2271',
1189
    'ngeq;': '\u2271',
1190
    'ngeqq;': '\u2267\u0338',
1191
    'ngeqslant;': '\u2a7e\u0338',
1192
    'nges;': '\u2a7e\u0338',
1193
    'nGg;': '\u22d9\u0338',
1194
    'ngsim;': '\u2275',
1195
    'nGt;': '\u226b\u20d2',
1196
    'ngt;': '\u226f',
1197
    'ngtr;': '\u226f',
1198
    'nGtv;': '\u226b\u0338',
1199
    'nhArr;': '\u21ce',
1200
    'nharr;': '\u21ae',
1201
    'nhpar;': '\u2af2',
1202
    'ni;': '\u220b',
1203
    'nis;': '\u22fc',
1204
    'nisd;': '\u22fa',
1205
    'niv;': '\u220b',
1206
    'NJcy;': '\u040a',
1207
    'njcy;': '\u045a',
1208
    'nlArr;': '\u21cd',
1209
    'nlarr;': '\u219a',
1210
    'nldr;': '\u2025',
1211
    'nlE;': '\u2266\u0338',
1212
    'nle;': '\u2270',
1213
    'nLeftarrow;': '\u21cd',
1214
    'nleftarrow;': '\u219a',
1215
    'nLeftrightarrow;': '\u21ce',
1216
    'nleftrightarrow;': '\u21ae',
1217
    'nleq;': '\u2270',
1218
    'nleqq;': '\u2266\u0338',
1219
    'nleqslant;': '\u2a7d\u0338',
1220
    'nles;': '\u2a7d\u0338',
1221
    'nless;': '\u226e',
1222
    'nLl;': '\u22d8\u0338',
1223
    'nlsim;': '\u2274',
1224
    'nLt;': '\u226a\u20d2',
1225
    'nlt;': '\u226e',
1226
    'nltri;': '\u22ea',
1227
    'nltrie;': '\u22ec',
1228
    'nLtv;': '\u226a\u0338',
1229
    'nmid;': '\u2224',
1230
    'NoBreak;': '\u2060',
1231
    'NonBreakingSpace;': '\xa0',
1232
    'Nopf;': '\u2115',
1233
    'nopf;': '\U0001d55f',
1234
    'not': '\xac',
1235
    'Not;': '\u2aec',
1236
    'not;': '\xac',
1237
    'NotCongruent;': '\u2262',
1238
    'NotCupCap;': '\u226d',
1239
    'NotDoubleVerticalBar;': '\u2226',
1240
    'NotElement;': '\u2209',
1241
    'NotEqual;': '\u2260',
1242
    'NotEqualTilde;': '\u2242\u0338',
1243
    'NotExists;': '\u2204',
1244
    'NotGreater;': '\u226f',
1245
    'NotGreaterEqual;': '\u2271',
1246
    'NotGreaterFullEqual;': '\u2267\u0338',
1247
    'NotGreaterGreater;': '\u226b\u0338',
1248
    'NotGreaterLess;': '\u2279',
1249
    'NotGreaterSlantEqual;': '\u2a7e\u0338',
1250
    'NotGreaterTilde;': '\u2275',
1251
    'NotHumpDownHump;': '\u224e\u0338',
1252
    'NotHumpEqual;': '\u224f\u0338',
1253
    'notin;': '\u2209',
1254
    'notindot;': '\u22f5\u0338',
1255
    'notinE;': '\u22f9\u0338',
1256
    'notinva;': '\u2209',
1257
    'notinvb;': '\u22f7',
1258
    'notinvc;': '\u22f6',
1259
    'NotLeftTriangle;': '\u22ea',
1260
    'NotLeftTriangleBar;': '\u29cf\u0338',
1261
    'NotLeftTriangleEqual;': '\u22ec',
1262
    'NotLess;': '\u226e',
1263
    'NotLessEqual;': '\u2270',
1264
    'NotLessGreater;': '\u2278',
1265
    'NotLessLess;': '\u226a\u0338',
1266
    'NotLessSlantEqual;': '\u2a7d\u0338',
1267
    'NotLessTilde;': '\u2274',
1268
    'NotNestedGreaterGreater;': '\u2aa2\u0338',
1269
    'NotNestedLessLess;': '\u2aa1\u0338',
1270
    'notni;': '\u220c',
1271
    'notniva;': '\u220c',
1272
    'notnivb;': '\u22fe',
1273
    'notnivc;': '\u22fd',
1274
    'NotPrecedes;': '\u2280',
1275
    'NotPrecedesEqual;': '\u2aaf\u0338',
1276
    'NotPrecedesSlantEqual;': '\u22e0',
1277
    'NotReverseElement;': '\u220c',
1278
    'NotRightTriangle;': '\u22eb',
1279
    'NotRightTriangleBar;': '\u29d0\u0338',
1280
    'NotRightTriangleEqual;': '\u22ed',
1281
    'NotSquareSubset;': '\u228f\u0338',
1282
    'NotSquareSubsetEqual;': '\u22e2',
1283
    'NotSquareSuperset;': '\u2290\u0338',
1284
    'NotSquareSupersetEqual;': '\u22e3',
1285
    'NotSubset;': '\u2282\u20d2',
1286
    'NotSubsetEqual;': '\u2288',
1287
    'NotSucceeds;': '\u2281',
1288
    'NotSucceedsEqual;': '\u2ab0\u0338',
1289
    'NotSucceedsSlantEqual;': '\u22e1',
1290
    'NotSucceedsTilde;': '\u227f\u0338',
1291
    'NotSuperset;': '\u2283\u20d2',
1292
    'NotSupersetEqual;': '\u2289',
1293
    'NotTilde;': '\u2241',
1294
    'NotTildeEqual;': '\u2244',
1295
    'NotTildeFullEqual;': '\u2247',
1296
    'NotTildeTilde;': '\u2249',
1297
    'NotVerticalBar;': '\u2224',
1298
    'npar;': '\u2226',
1299
    'nparallel;': '\u2226',
1300
    'nparsl;': '\u2afd\u20e5',
1301
    'npart;': '\u2202\u0338',
1302
    'npolint;': '\u2a14',
1303
    'npr;': '\u2280',
1304
    'nprcue;': '\u22e0',
1305
    'npre;': '\u2aaf\u0338',
1306
    'nprec;': '\u2280',
1307
    'npreceq;': '\u2aaf\u0338',
1308
    'nrArr;': '\u21cf',
1309
    'nrarr;': '\u219b',
1310
    'nrarrc;': '\u2933\u0338',
1311
    'nrarrw;': '\u219d\u0338',
1312
    'nRightarrow;': '\u21cf',
1313
    'nrightarrow;': '\u219b',
1314
    'nrtri;': '\u22eb',
1315
    'nrtrie;': '\u22ed',
1316
    'nsc;': '\u2281',
1317
    'nsccue;': '\u22e1',
1318
    'nsce;': '\u2ab0\u0338',
1319
    'Nscr;': '\U0001d4a9',
1320
    'nscr;': '\U0001d4c3',
1321
    'nshortmid;': '\u2224',
1322
    'nshortparallel;': '\u2226',
1323
    'nsim;': '\u2241',
1324
    'nsime;': '\u2244',
1325
    'nsimeq;': '\u2244',
1326
    'nsmid;': '\u2224',
1327
    'nspar;': '\u2226',
1328
    'nsqsube;': '\u22e2',
1329
    'nsqsupe;': '\u22e3',
1330
    'nsub;': '\u2284',
1331
    'nsubE;': '\u2ac5\u0338',
1332
    'nsube;': '\u2288',
1333
    'nsubset;': '\u2282\u20d2',
1334
    'nsubseteq;': '\u2288',
1335
    'nsubseteqq;': '\u2ac5\u0338',
1336
    'nsucc;': '\u2281',
1337
    'nsucceq;': '\u2ab0\u0338',
1338
    'nsup;': '\u2285',
1339
    'nsupE;': '\u2ac6\u0338',
1340
    'nsupe;': '\u2289',
1341
    'nsupset;': '\u2283\u20d2',
1342
    'nsupseteq;': '\u2289',
1343
    'nsupseteqq;': '\u2ac6\u0338',
1344
    'ntgl;': '\u2279',
1345
    'Ntilde': '\xd1',
1346
    'ntilde': '\xf1',
1347
    'Ntilde;': '\xd1',
1348
    'ntilde;': '\xf1',
1349
    'ntlg;': '\u2278',
1350
    'ntriangleleft;': '\u22ea',
1351
    'ntrianglelefteq;': '\u22ec',
1352
    'ntriangleright;': '\u22eb',
1353
    'ntrianglerighteq;': '\u22ed',
1354
    'Nu;': '\u039d',
1355
    'nu;': '\u03bd',
1356
    'num;': '#',
1357
    'numero;': '\u2116',
1358
    'numsp;': '\u2007',
1359
    'nvap;': '\u224d\u20d2',
1360
    'nVDash;': '\u22af',
1361
    'nVdash;': '\u22ae',
1362
    'nvDash;': '\u22ad',
1363
    'nvdash;': '\u22ac',
1364
    'nvge;': '\u2265\u20d2',
1365
    'nvgt;': '>\u20d2',
1366
    'nvHarr;': '\u2904',
1367
    'nvinfin;': '\u29de',
1368
    'nvlArr;': '\u2902',
1369
    'nvle;': '\u2264\u20d2',
1370
    'nvlt;': '<\u20d2',
1371
    'nvltrie;': '\u22b4\u20d2',
1372
    'nvrArr;': '\u2903',
1373
    'nvrtrie;': '\u22b5\u20d2',
1374
    'nvsim;': '\u223c\u20d2',
1375
    'nwarhk;': '\u2923',
1376
    'nwArr;': '\u21d6',
1377
    'nwarr;': '\u2196',
1378
    'nwarrow;': '\u2196',
1379
    'nwnear;': '\u2927',
1380
    'Oacute': '\xd3',
1381
    'oacute': '\xf3',
1382
    'Oacute;': '\xd3',
1383
    'oacute;': '\xf3',
1384
    'oast;': '\u229b',
1385
    'ocir;': '\u229a',
1386
    'Ocirc': '\xd4',
1387
    'ocirc': '\xf4',
1388
    'Ocirc;': '\xd4',
1389
    'ocirc;': '\xf4',
1390
    'Ocy;': '\u041e',
1391
    'ocy;': '\u043e',
1392
    'odash;': '\u229d',
1393
    'Odblac;': '\u0150',
1394
    'odblac;': '\u0151',
1395
    'odiv;': '\u2a38',
1396
    'odot;': '\u2299',
1397
    'odsold;': '\u29bc',
1398
    'OElig;': '\u0152',
1399
    'oelig;': '\u0153',
1400
    'ofcir;': '\u29bf',
1401
    'Ofr;': '\U0001d512',
1402
    'ofr;': '\U0001d52c',
1403
    'ogon;': '\u02db',
1404
    'Ograve': '\xd2',
1405
    'ograve': '\xf2',
1406
    'Ograve;': '\xd2',
1407
    'ograve;': '\xf2',
1408
    'ogt;': '\u29c1',
1409
    'ohbar;': '\u29b5',
1410
    'ohm;': '\u03a9',
1411
    'oint;': '\u222e',
1412
    'olarr;': '\u21ba',
1413
    'olcir;': '\u29be',
1414
    'olcross;': '\u29bb',
1415
    'oline;': '\u203e',
1416
    'olt;': '\u29c0',
1417
    'Omacr;': '\u014c',
1418
    'omacr;': '\u014d',
1419
    'Omega;': '\u03a9',
1420
    'omega;': '\u03c9',
1421
    'Omicron;': '\u039f',
1422
    'omicron;': '\u03bf',
1423
    'omid;': '\u29b6',
1424
    'ominus;': '\u2296',
1425
    'Oopf;': '\U0001d546',
1426
    'oopf;': '\U0001d560',
1427
    'opar;': '\u29b7',
1428
    'OpenCurlyDoubleQuote;': '\u201c',
1429
    'OpenCurlyQuote;': '\u2018',
1430
    'operp;': '\u29b9',
1431
    'oplus;': '\u2295',
1432
    'Or;': '\u2a54',
1433
    'or;': '\u2228',
1434
    'orarr;': '\u21bb',
1435
    'ord;': '\u2a5d',
1436
    'order;': '\u2134',
1437
    'orderof;': '\u2134',
1438
    'ordf': '\xaa',
1439
    'ordf;': '\xaa',
1440
    'ordm': '\xba',
1441
    'ordm;': '\xba',
1442
    'origof;': '\u22b6',
1443
    'oror;': '\u2a56',
1444
    'orslope;': '\u2a57',
1445
    'orv;': '\u2a5b',
1446
    'oS;': '\u24c8',
1447
    'Oscr;': '\U0001d4aa',
1448
    'oscr;': '\u2134',
1449
    'Oslash': '\xd8',
1450
    'oslash': '\xf8',
1451
    'Oslash;': '\xd8',
1452
    'oslash;': '\xf8',
1453
    'osol;': '\u2298',
1454
    'Otilde': '\xd5',
1455
    'otilde': '\xf5',
1456
    'Otilde;': '\xd5',
1457
    'otilde;': '\xf5',
1458
    'Otimes;': '\u2a37',
1459
    'otimes;': '\u2297',
1460
    'otimesas;': '\u2a36',
1461
    'Ouml': '\xd6',
1462
    'ouml': '\xf6',
1463
    'Ouml;': '\xd6',
1464
    'ouml;': '\xf6',
1465
    'ovbar;': '\u233d',
1466
    'OverBar;': '\u203e',
1467
    'OverBrace;': '\u23de',
1468
    'OverBracket;': '\u23b4',
1469
    'OverParenthesis;': '\u23dc',
1470
    'par;': '\u2225',
1471
    'para': '\xb6',
1472
    'para;': '\xb6',
1473
    'parallel;': '\u2225',
1474
    'parsim;': '\u2af3',
1475
    'parsl;': '\u2afd',
1476
    'part;': '\u2202',
1477
    'PartialD;': '\u2202',
1478
    'Pcy;': '\u041f',
1479
    'pcy;': '\u043f',
1480
    'percnt;': '%',
1481
    'period;': '.',
1482
    'permil;': '\u2030',
1483
    'perp;': '\u22a5',
1484
    'pertenk;': '\u2031',
1485
    'Pfr;': '\U0001d513',
1486
    'pfr;': '\U0001d52d',
1487
    'Phi;': '\u03a6',
1488
    'phi;': '\u03c6',
1489
    'phiv;': '\u03d5',
1490
    'phmmat;': '\u2133',
1491
    'phone;': '\u260e',
1492
    'Pi;': '\u03a0',
1493
    'pi;': '\u03c0',
1494
    'pitchfork;': '\u22d4',
1495
    'piv;': '\u03d6',
1496
    'planck;': '\u210f',
1497
    'planckh;': '\u210e',
1498
    'plankv;': '\u210f',
1499
    'plus;': '+',
1500
    'plusacir;': '\u2a23',
1501
    'plusb;': '\u229e',
1502
    'pluscir;': '\u2a22',
1503
    'plusdo;': '\u2214',
1504
    'plusdu;': '\u2a25',
1505
    'pluse;': '\u2a72',
1506
    'PlusMinus;': '\xb1',
1507
    'plusmn': '\xb1',
1508
    'plusmn;': '\xb1',
1509
    'plussim;': '\u2a26',
1510
    'plustwo;': '\u2a27',
1511
    'pm;': '\xb1',
1512
    'Poincareplane;': '\u210c',
1513
    'pointint;': '\u2a15',
1514
    'Popf;': '\u2119',
1515
    'popf;': '\U0001d561',
1516
    'pound': '\xa3',
1517
    'pound;': '\xa3',
1518
    'Pr;': '\u2abb',
1519
    'pr;': '\u227a',
1520
    'prap;': '\u2ab7',
1521
    'prcue;': '\u227c',
1522
    'prE;': '\u2ab3',
1523
    'pre;': '\u2aaf',
1524
    'prec;': '\u227a',
1525
    'precapprox;': '\u2ab7',
1526
    'preccurlyeq;': '\u227c',
1527
    'Precedes;': '\u227a',
1528
    'PrecedesEqual;': '\u2aaf',
1529
    'PrecedesSlantEqual;': '\u227c',
1530
    'PrecedesTilde;': '\u227e',
1531
    'preceq;': '\u2aaf',
1532
    'precnapprox;': '\u2ab9',
1533
    'precneqq;': '\u2ab5',
1534
    'precnsim;': '\u22e8',
1535
    'precsim;': '\u227e',
1536
    'Prime;': '\u2033',
1537
    'prime;': '\u2032',
1538
    'primes;': '\u2119',
1539
    'prnap;': '\u2ab9',
1540
    'prnE;': '\u2ab5',
1541
    'prnsim;': '\u22e8',
1542
    'prod;': '\u220f',
1543
    'Product;': '\u220f',
1544
    'profalar;': '\u232e',
1545
    'profline;': '\u2312',
1546
    'profsurf;': '\u2313',
1547
    'prop;': '\u221d',
1548
    'Proportion;': '\u2237',
1549
    'Proportional;': '\u221d',
1550
    'propto;': '\u221d',
1551
    'prsim;': '\u227e',
1552
    'prurel;': '\u22b0',
1553
    'Pscr;': '\U0001d4ab',
1554
    'pscr;': '\U0001d4c5',
1555
    'Psi;': '\u03a8',
1556
    'psi;': '\u03c8',
1557
    'puncsp;': '\u2008',
1558
    'Qfr;': '\U0001d514',
1559
    'qfr;': '\U0001d52e',
1560
    'qint;': '\u2a0c',
1561
    'Qopf;': '\u211a',
1562
    'qopf;': '\U0001d562',
1563
    'qprime;': '\u2057',
1564
    'Qscr;': '\U0001d4ac',
1565
    'qscr;': '\U0001d4c6',
1566
    'quaternions;': '\u210d',
1567
    'quatint;': '\u2a16',
1568
    'quest;': '?',
1569
    'questeq;': '\u225f',
1570
    'QUOT': '"',
1571
    'quot': '"',
1572
    'QUOT;': '"',
1573
    'quot;': '"',
1574
    'rAarr;': '\u21db',
1575
    'race;': '\u223d\u0331',
1576
    'Racute;': '\u0154',
1577
    'racute;': '\u0155',
1578
    'radic;': '\u221a',
1579
    'raemptyv;': '\u29b3',
1580
    'Rang;': '\u27eb',
1581
    'rang;': '\u27e9',
1582
    'rangd;': '\u2992',
1583
    'range;': '\u29a5',
1584
    'rangle;': '\u27e9',
1585
    'raquo': '\xbb',
1586
    'raquo;': '\xbb',
1587
    'Rarr;': '\u21a0',
1588
    'rArr;': '\u21d2',
1589
    'rarr;': '\u2192',
1590
    'rarrap;': '\u2975',
1591
    'rarrb;': '\u21e5',
1592
    'rarrbfs;': '\u2920',
1593
    'rarrc;': '\u2933',
1594
    'rarrfs;': '\u291e',
1595
    'rarrhk;': '\u21aa',
1596
    'rarrlp;': '\u21ac',
1597
    'rarrpl;': '\u2945',
1598
    'rarrsim;': '\u2974',
1599
    'Rarrtl;': '\u2916',
1600
    'rarrtl;': '\u21a3',
1601
    'rarrw;': '\u219d',
1602
    'rAtail;': '\u291c',
1603
    'ratail;': '\u291a',
1604
    'ratio;': '\u2236',
1605
    'rationals;': '\u211a',
1606
    'RBarr;': '\u2910',
1607
    'rBarr;': '\u290f',
1608
    'rbarr;': '\u290d',
1609
    'rbbrk;': '\u2773',
1610
    'rbrace;': '}',
1611
    'rbrack;': ']',
1612
    'rbrke;': '\u298c',
1613
    'rbrksld;': '\u298e',
1614
    'rbrkslu;': '\u2990',
1615
    'Rcaron;': '\u0158',
1616
    'rcaron;': '\u0159',
1617
    'Rcedil;': '\u0156',
1618
    'rcedil;': '\u0157',
1619
    'rceil;': '\u2309',
1620
    'rcub;': '}',
1621
    'Rcy;': '\u0420',
1622
    'rcy;': '\u0440',
1623
    'rdca;': '\u2937',
1624
    'rdldhar;': '\u2969',
1625
    'rdquo;': '\u201d',
1626
    'rdquor;': '\u201d',
1627
    'rdsh;': '\u21b3',
1628
    'Re;': '\u211c',
1629
    'real;': '\u211c',
1630
    'realine;': '\u211b',
1631
    'realpart;': '\u211c',
1632
    'reals;': '\u211d',
1633
    'rect;': '\u25ad',
1634
    'REG': '\xae',
1635
    'reg': '\xae',
1636
    'REG;': '\xae',
1637
    'reg;': '\xae',
1638
    'ReverseElement;': '\u220b',
1639
    'ReverseEquilibrium;': '\u21cb',
1640
    'ReverseUpEquilibrium;': '\u296f',
1641
    'rfisht;': '\u297d',
1642
    'rfloor;': '\u230b',
1643
    'Rfr;': '\u211c',
1644
    'rfr;': '\U0001d52f',
1645
    'rHar;': '\u2964',
1646
    'rhard;': '\u21c1',
1647
    'rharu;': '\u21c0',
1648
    'rharul;': '\u296c',
1649
    'Rho;': '\u03a1',
1650
    'rho;': '\u03c1',
1651
    'rhov;': '\u03f1',
1652
    'RightAngleBracket;': '\u27e9',
1653
    'RightArrow;': '\u2192',
1654
    'Rightarrow;': '\u21d2',
1655
    'rightarrow;': '\u2192',
1656
    'RightArrowBar;': '\u21e5',
1657
    'RightArrowLeftArrow;': '\u21c4',
1658
    'rightarrowtail;': '\u21a3',
1659
    'RightCeiling;': '\u2309',
1660
    'RightDoubleBracket;': '\u27e7',
1661
    'RightDownTeeVector;': '\u295d',
1662
    'RightDownVector;': '\u21c2',
1663
    'RightDownVectorBar;': '\u2955',
1664
    'RightFloor;': '\u230b',
1665
    'rightharpoondown;': '\u21c1',
1666
    'rightharpoonup;': '\u21c0',
1667
    'rightleftarrows;': '\u21c4',
1668
    'rightleftharpoons;': '\u21cc',
1669
    'rightrightarrows;': '\u21c9',
1670
    'rightsquigarrow;': '\u219d',
1671
    'RightTee;': '\u22a2',
1672
    'RightTeeArrow;': '\u21a6',
1673
    'RightTeeVector;': '\u295b',
1674
    'rightthreetimes;': '\u22cc',
1675
    'RightTriangle;': '\u22b3',
1676
    'RightTriangleBar;': '\u29d0',
1677
    'RightTriangleEqual;': '\u22b5',
1678
    'RightUpDownVector;': '\u294f',
1679
    'RightUpTeeVector;': '\u295c',
1680
    'RightUpVector;': '\u21be',
1681
    'RightUpVectorBar;': '\u2954',
1682
    'RightVector;': '\u21c0',
1683
    'RightVectorBar;': '\u2953',
1684
    'ring;': '\u02da',
1685
    'risingdotseq;': '\u2253',
1686
    'rlarr;': '\u21c4',
1687
    'rlhar;': '\u21cc',
1688
    'rlm;': '\u200f',
1689
    'rmoust;': '\u23b1',
1690
    'rmoustache;': '\u23b1',
1691
    'rnmid;': '\u2aee',
1692
    'roang;': '\u27ed',
1693
    'roarr;': '\u21fe',
1694
    'robrk;': '\u27e7',
1695
    'ropar;': '\u2986',
1696
    'Ropf;': '\u211d',
1697
    'ropf;': '\U0001d563',
1698
    'roplus;': '\u2a2e',
1699
    'rotimes;': '\u2a35',
1700
    'RoundImplies;': '\u2970',
1701
    'rpar;': ')',
1702
    'rpargt;': '\u2994',
1703
    'rppolint;': '\u2a12',
1704
    'rrarr;': '\u21c9',
1705
    'Rrightarrow;': '\u21db',
1706
    'rsaquo;': '\u203a',
1707
    'Rscr;': '\u211b',
1708
    'rscr;': '\U0001d4c7',
1709
    'Rsh;': '\u21b1',
1710
    'rsh;': '\u21b1',
1711
    'rsqb;': ']',
1712
    'rsquo;': '\u2019',
1713
    'rsquor;': '\u2019',
1714
    'rthree;': '\u22cc',
1715
    'rtimes;': '\u22ca',
1716
    'rtri;': '\u25b9',
1717
    'rtrie;': '\u22b5',
1718
    'rtrif;': '\u25b8',
1719
    'rtriltri;': '\u29ce',
1720
    'RuleDelayed;': '\u29f4',
1721
    'ruluhar;': '\u2968',
1722
    'rx;': '\u211e',
1723
    'Sacute;': '\u015a',
1724
    'sacute;': '\u015b',
1725
    'sbquo;': '\u201a',
1726
    'Sc;': '\u2abc',
1727
    'sc;': '\u227b',
1728
    'scap;': '\u2ab8',
1729
    'Scaron;': '\u0160',
1730
    'scaron;': '\u0161',
1731
    'sccue;': '\u227d',
1732
    'scE;': '\u2ab4',
1733
    'sce;': '\u2ab0',
1734
    'Scedil;': '\u015e',
1735
    'scedil;': '\u015f',
1736
    'Scirc;': '\u015c',
1737
    'scirc;': '\u015d',
1738
    'scnap;': '\u2aba',
1739
    'scnE;': '\u2ab6',
1740
    'scnsim;': '\u22e9',
1741
    'scpolint;': '\u2a13',
1742
    'scsim;': '\u227f',
1743
    'Scy;': '\u0421',
1744
    'scy;': '\u0441',
1745
    'sdot;': '\u22c5',
1746
    'sdotb;': '\u22a1',
1747
    'sdote;': '\u2a66',
1748
    'searhk;': '\u2925',
1749
    'seArr;': '\u21d8',
1750
    'searr;': '\u2198',
1751
    'searrow;': '\u2198',
1752
    'sect': '\xa7',
1753
    'sect;': '\xa7',
1754
    'semi;': ';',
1755
    'seswar;': '\u2929',
1756
    'setminus;': '\u2216',
1757
    'setmn;': '\u2216',
1758
    'sext;': '\u2736',
1759
    'Sfr;': '\U0001d516',
1760
    'sfr;': '\U0001d530',
1761
    'sfrown;': '\u2322',
1762
    'sharp;': '\u266f',
1763
    'SHCHcy;': '\u0429',
1764
    'shchcy;': '\u0449',
1765
    'SHcy;': '\u0428',
1766
    'shcy;': '\u0448',
1767
    'ShortDownArrow;': '\u2193',
1768
    'ShortLeftArrow;': '\u2190',
1769
    'shortmid;': '\u2223',
1770
    'shortparallel;': '\u2225',
1771
    'ShortRightArrow;': '\u2192',
1772
    'ShortUpArrow;': '\u2191',
1773
    'shy': '\xad',
1774
    'shy;': '\xad',
1775
    'Sigma;': '\u03a3',
1776
    'sigma;': '\u03c3',
1777
    'sigmaf;': '\u03c2',
1778
    'sigmav;': '\u03c2',
1779
    'sim;': '\u223c',
1780
    'simdot;': '\u2a6a',
1781
    'sime;': '\u2243',
1782
    'simeq;': '\u2243',
1783
    'simg;': '\u2a9e',
1784
    'simgE;': '\u2aa0',
1785
    'siml;': '\u2a9d',
1786
    'simlE;': '\u2a9f',
1787
    'simne;': '\u2246',
1788
    'simplus;': '\u2a24',
1789
    'simrarr;': '\u2972',
1790
    'slarr;': '\u2190',
1791
    'SmallCircle;': '\u2218',
1792
    'smallsetminus;': '\u2216',
1793
    'smashp;': '\u2a33',
1794
    'smeparsl;': '\u29e4',
1795
    'smid;': '\u2223',
1796
    'smile;': '\u2323',
1797
    'smt;': '\u2aaa',
1798
    'smte;': '\u2aac',
1799
    'smtes;': '\u2aac\ufe00',
1800
    'SOFTcy;': '\u042c',
1801
    'softcy;': '\u044c',
1802
    'sol;': '/',
1803
    'solb;': '\u29c4',
1804
    'solbar;': '\u233f',
1805
    'Sopf;': '\U0001d54a',
1806
    'sopf;': '\U0001d564',
1807
    'spades;': '\u2660',
1808
    'spadesuit;': '\u2660',
1809
    'spar;': '\u2225',
1810
    'sqcap;': '\u2293',
1811
    'sqcaps;': '\u2293\ufe00',
1812
    'sqcup;': '\u2294',
1813
    'sqcups;': '\u2294\ufe00',
1814
    'Sqrt;': '\u221a',
1815
    'sqsub;': '\u228f',
1816
    'sqsube;': '\u2291',
1817
    'sqsubset;': '\u228f',
1818
    'sqsubseteq;': '\u2291',
1819
    'sqsup;': '\u2290',
1820
    'sqsupe;': '\u2292',
1821
    'sqsupset;': '\u2290',
1822
    'sqsupseteq;': '\u2292',
1823
    'squ;': '\u25a1',
1824
    'Square;': '\u25a1',
1825
    'square;': '\u25a1',
1826
    'SquareIntersection;': '\u2293',
1827
    'SquareSubset;': '\u228f',
1828
    'SquareSubsetEqual;': '\u2291',
1829
    'SquareSuperset;': '\u2290',
1830
    'SquareSupersetEqual;': '\u2292',
1831
    'SquareUnion;': '\u2294',
1832
    'squarf;': '\u25aa',
1833
    'squf;': '\u25aa',
1834
    'srarr;': '\u2192',
1835
    'Sscr;': '\U0001d4ae',
1836
    'sscr;': '\U0001d4c8',
1837
    'ssetmn;': '\u2216',
1838
    'ssmile;': '\u2323',
1839
    'sstarf;': '\u22c6',
1840
    'Star;': '\u22c6',
1841
    'star;': '\u2606',
1842
    'starf;': '\u2605',
1843
    'straightepsilon;': '\u03f5',
1844
    'straightphi;': '\u03d5',
1845
    'strns;': '\xaf',
1846
    'Sub;': '\u22d0',
1847
    'sub;': '\u2282',
1848
    'subdot;': '\u2abd',
1849
    'subE;': '\u2ac5',
1850
    'sube;': '\u2286',
1851
    'subedot;': '\u2ac3',
1852
    'submult;': '\u2ac1',
1853
    'subnE;': '\u2acb',
1854
    'subne;': '\u228a',
1855
    'subplus;': '\u2abf',
1856
    'subrarr;': '\u2979',
1857
    'Subset;': '\u22d0',
1858
    'subset;': '\u2282',
1859
    'subseteq;': '\u2286',
1860
    'subseteqq;': '\u2ac5',
1861
    'SubsetEqual;': '\u2286',
1862
    'subsetneq;': '\u228a',
1863
    'subsetneqq;': '\u2acb',
1864
    'subsim;': '\u2ac7',
1865
    'subsub;': '\u2ad5',
1866
    'subsup;': '\u2ad3',
1867
    'succ;': '\u227b',
1868
    'succapprox;': '\u2ab8',
1869
    'succcurlyeq;': '\u227d',
1870
    'Succeeds;': '\u227b',
1871
    'SucceedsEqual;': '\u2ab0',
1872
    'SucceedsSlantEqual;': '\u227d',
1873
    'SucceedsTilde;': '\u227f',
1874
    'succeq;': '\u2ab0',
1875
    'succnapprox;': '\u2aba',
1876
    'succneqq;': '\u2ab6',
1877
    'succnsim;': '\u22e9',
1878
    'succsim;': '\u227f',
1879
    'SuchThat;': '\u220b',
1880
    'Sum;': '\u2211',
1881
    'sum;': '\u2211',
1882
    'sung;': '\u266a',
1883
    'sup1': '\xb9',
1884
    'sup1;': '\xb9',
1885
    'sup2': '\xb2',
1886
    'sup2;': '\xb2',
1887
    'sup3': '\xb3',
1888
    'sup3;': '\xb3',
1889
    'Sup;': '\u22d1',
1890
    'sup;': '\u2283',
1891
    'supdot;': '\u2abe',
1892
    'supdsub;': '\u2ad8',
1893
    'supE;': '\u2ac6',
1894
    'supe;': '\u2287',
1895
    'supedot;': '\u2ac4',
1896
    'Superset;': '\u2283',
1897
    'SupersetEqual;': '\u2287',
1898
    'suphsol;': '\u27c9',
1899
    'suphsub;': '\u2ad7',
1900
    'suplarr;': '\u297b',
1901
    'supmult;': '\u2ac2',
1902
    'supnE;': '\u2acc',
1903
    'supne;': '\u228b',
1904
    'supplus;': '\u2ac0',
1905
    'Supset;': '\u22d1',
1906
    'supset;': '\u2283',
1907
    'supseteq;': '\u2287',
1908
    'supseteqq;': '\u2ac6',
1909
    'supsetneq;': '\u228b',
1910
    'supsetneqq;': '\u2acc',
1911
    'supsim;': '\u2ac8',
1912
    'supsub;': '\u2ad4',
1913
    'supsup;': '\u2ad6',
1914
    'swarhk;': '\u2926',
1915
    'swArr;': '\u21d9',
1916
    'swarr;': '\u2199',
1917
    'swarrow;': '\u2199',
1918
    'swnwar;': '\u292a',
1919
    'szlig': '\xdf',
1920
    'szlig;': '\xdf',
1921
    'Tab;': '\t',
1922
    'target;': '\u2316',
1923
    'Tau;': '\u03a4',
1924
    'tau;': '\u03c4',
1925
    'tbrk;': '\u23b4',
1926
    'Tcaron;': '\u0164',
1927
    'tcaron;': '\u0165',
1928
    'Tcedil;': '\u0162',
1929
    'tcedil;': '\u0163',
1930
    'Tcy;': '\u0422',
1931
    'tcy;': '\u0442',
1932
    'tdot;': '\u20db',
1933
    'telrec;': '\u2315',
1934
    'Tfr;': '\U0001d517',
1935
    'tfr;': '\U0001d531',
1936
    'there4;': '\u2234',
1937
    'Therefore;': '\u2234',
1938
    'therefore;': '\u2234',
1939
    'Theta;': '\u0398',
1940
    'theta;': '\u03b8',
1941
    'thetasym;': '\u03d1',
1942
    'thetav;': '\u03d1',
1943
    'thickapprox;': '\u2248',
1944
    'thicksim;': '\u223c',
1945
    'ThickSpace;': '\u205f\u200a',
1946
    'thinsp;': '\u2009',
1947
    'ThinSpace;': '\u2009',
1948
    'thkap;': '\u2248',
1949
    'thksim;': '\u223c',
1950
    'THORN': '\xde',
1951
    'thorn': '\xfe',
1952
    'THORN;': '\xde',
1953
    'thorn;': '\xfe',
1954
    'Tilde;': '\u223c',
1955
    'tilde;': '\u02dc',
1956
    'TildeEqual;': '\u2243',
1957
    'TildeFullEqual;': '\u2245',
1958
    'TildeTilde;': '\u2248',
1959
    'times': '\xd7',
1960
    'times;': '\xd7',
1961
    'timesb;': '\u22a0',
1962
    'timesbar;': '\u2a31',
1963
    'timesd;': '\u2a30',
1964
    'tint;': '\u222d',
1965
    'toea;': '\u2928',
1966
    'top;': '\u22a4',
1967
    'topbot;': '\u2336',
1968
    'topcir;': '\u2af1',
1969
    'Topf;': '\U0001d54b',
1970
    'topf;': '\U0001d565',
1971
    'topfork;': '\u2ada',
1972
    'tosa;': '\u2929',
1973
    'tprime;': '\u2034',
1974
    'TRADE;': '\u2122',
1975
    'trade;': '\u2122',
1976
    'triangle;': '\u25b5',
1977
    'triangledown;': '\u25bf',
1978
    'triangleleft;': '\u25c3',
1979
    'trianglelefteq;': '\u22b4',
1980
    'triangleq;': '\u225c',
1981
    'triangleright;': '\u25b9',
1982
    'trianglerighteq;': '\u22b5',
1983
    'tridot;': '\u25ec',
1984
    'trie;': '\u225c',
1985
    'triminus;': '\u2a3a',
1986
    'TripleDot;': '\u20db',
1987
    'triplus;': '\u2a39',
1988
    'trisb;': '\u29cd',
1989
    'tritime;': '\u2a3b',
1990
    'trpezium;': '\u23e2',
1991
    'Tscr;': '\U0001d4af',
1992
    'tscr;': '\U0001d4c9',
1993
    'TScy;': '\u0426',
1994
    'tscy;': '\u0446',
1995
    'TSHcy;': '\u040b',
1996
    'tshcy;': '\u045b',
1997
    'Tstrok;': '\u0166',
1998
    'tstrok;': '\u0167',
1999
    'twixt;': '\u226c',
2000
    'twoheadleftarrow;': '\u219e',
2001
    'twoheadrightarrow;': '\u21a0',
2002
    'Uacute': '\xda',
2003
    'uacute': '\xfa',
2004
    'Uacute;': '\xda',
2005
    'uacute;': '\xfa',
2006
    'Uarr;': '\u219f',
2007
    'uArr;': '\u21d1',
2008
    'uarr;': '\u2191',
2009
    'Uarrocir;': '\u2949',
2010
    'Ubrcy;': '\u040e',
2011
    'ubrcy;': '\u045e',
2012
    'Ubreve;': '\u016c',
2013
    'ubreve;': '\u016d',
2014
    'Ucirc': '\xdb',
2015
    'ucirc': '\xfb',
2016
    'Ucirc;': '\xdb',
2017
    'ucirc;': '\xfb',
2018
    'Ucy;': '\u0423',
2019
    'ucy;': '\u0443',
2020
    'udarr;': '\u21c5',
2021
    'Udblac;': '\u0170',
2022
    'udblac;': '\u0171',
2023
    'udhar;': '\u296e',
2024
    'ufisht;': '\u297e',
2025
    'Ufr;': '\U0001d518',
2026
    'ufr;': '\U0001d532',
2027
    'Ugrave': '\xd9',
2028
    'ugrave': '\xf9',
2029
    'Ugrave;': '\xd9',
2030
    'ugrave;': '\xf9',
2031
    'uHar;': '\u2963',
2032
    'uharl;': '\u21bf',
2033
    'uharr;': '\u21be',
2034
    'uhblk;': '\u2580',
2035
    'ulcorn;': '\u231c',
2036
    'ulcorner;': '\u231c',
2037
    'ulcrop;': '\u230f',
2038
    'ultri;': '\u25f8',
2039
    'Umacr;': '\u016a',
2040
    'umacr;': '\u016b',
2041
    'uml': '\xa8',
2042
    'uml;': '\xa8',
2043
    'UnderBar;': '_',
2044
    'UnderBrace;': '\u23df',
2045
    'UnderBracket;': '\u23b5',
2046
    'UnderParenthesis;': '\u23dd',
2047
    'Union;': '\u22c3',
2048
    'UnionPlus;': '\u228e',
2049
    'Uogon;': '\u0172',
2050
    'uogon;': '\u0173',
2051
    'Uopf;': '\U0001d54c',
2052
    'uopf;': '\U0001d566',
2053
    'UpArrow;': '\u2191',
2054
    'Uparrow;': '\u21d1',
2055
    'uparrow;': '\u2191',
2056
    'UpArrowBar;': '\u2912',
2057
    'UpArrowDownArrow;': '\u21c5',
2058
    'UpDownArrow;': '\u2195',
2059
    'Updownarrow;': '\u21d5',
2060
    'updownarrow;': '\u2195',
2061
    'UpEquilibrium;': '\u296e',
2062
    'upharpoonleft;': '\u21bf',
2063
    'upharpoonright;': '\u21be',
2064
    'uplus;': '\u228e',
2065
    'UpperLeftArrow;': '\u2196',
2066
    'UpperRightArrow;': '\u2197',
2067
    'Upsi;': '\u03d2',
2068
    'upsi;': '\u03c5',
2069
    'upsih;': '\u03d2',
2070
    'Upsilon;': '\u03a5',
2071
    'upsilon;': '\u03c5',
2072
    'UpTee;': '\u22a5',
2073
    'UpTeeArrow;': '\u21a5',
2074
    'upuparrows;': '\u21c8',
2075
    'urcorn;': '\u231d',
2076
    'urcorner;': '\u231d',
2077
    'urcrop;': '\u230e',
2078
    'Uring;': '\u016e',
2079
    'uring;': '\u016f',
2080
    'urtri;': '\u25f9',
2081
    'Uscr;': '\U0001d4b0',
2082
    'uscr;': '\U0001d4ca',
2083
    'utdot;': '\u22f0',
2084
    'Utilde;': '\u0168',
2085
    'utilde;': '\u0169',
2086
    'utri;': '\u25b5',
2087
    'utrif;': '\u25b4',
2088
    'uuarr;': '\u21c8',
2089
    'Uuml': '\xdc',
2090
    'uuml': '\xfc',
2091
    'Uuml;': '\xdc',
2092
    'uuml;': '\xfc',
2093
    'uwangle;': '\u29a7',
2094
    'vangrt;': '\u299c',
2095
    'varepsilon;': '\u03f5',
2096
    'varkappa;': '\u03f0',
2097
    'varnothing;': '\u2205',
2098
    'varphi;': '\u03d5',
2099
    'varpi;': '\u03d6',
2100
    'varpropto;': '\u221d',
2101
    'vArr;': '\u21d5',
2102
    'varr;': '\u2195',
2103
    'varrho;': '\u03f1',
2104
    'varsigma;': '\u03c2',
2105
    'varsubsetneq;': '\u228a\ufe00',
2106
    'varsubsetneqq;': '\u2acb\ufe00',
2107
    'varsupsetneq;': '\u228b\ufe00',
2108
    'varsupsetneqq;': '\u2acc\ufe00',
2109
    'vartheta;': '\u03d1',
2110
    'vartriangleleft;': '\u22b2',
2111
    'vartriangleright;': '\u22b3',
2112
    'Vbar;': '\u2aeb',
2113
    'vBar;': '\u2ae8',
2114
    'vBarv;': '\u2ae9',
2115
    'Vcy;': '\u0412',
2116
    'vcy;': '\u0432',
2117
    'VDash;': '\u22ab',
2118
    'Vdash;': '\u22a9',
2119
    'vDash;': '\u22a8',
2120
    'vdash;': '\u22a2',
2121
    'Vdashl;': '\u2ae6',
2122
    'Vee;': '\u22c1',
2123
    'vee;': '\u2228',
2124
    'veebar;': '\u22bb',
2125
    'veeeq;': '\u225a',
2126
    'vellip;': '\u22ee',
2127
    'Verbar;': '\u2016',
2128
    'verbar;': '|',
2129
    'Vert;': '\u2016',
2130
    'vert;': '|',
2131
    'VerticalBar;': '\u2223',
2132
    'VerticalLine;': '|',
2133
    'VerticalSeparator;': '\u2758',
2134
    'VerticalTilde;': '\u2240',
2135
    'VeryThinSpace;': '\u200a',
2136
    'Vfr;': '\U0001d519',
2137
    'vfr;': '\U0001d533',
2138
    'vltri;': '\u22b2',
2139
    'vnsub;': '\u2282\u20d2',
2140
    'vnsup;': '\u2283\u20d2',
2141
    'Vopf;': '\U0001d54d',
2142
    'vopf;': '\U0001d567',
2143
    'vprop;': '\u221d',
2144
    'vrtri;': '\u22b3',
2145
    'Vscr;': '\U0001d4b1',
2146
    'vscr;': '\U0001d4cb',
2147
    'vsubnE;': '\u2acb\ufe00',
2148
    'vsubne;': '\u228a\ufe00',
2149
    'vsupnE;': '\u2acc\ufe00',
2150
    'vsupne;': '\u228b\ufe00',
2151
    'Vvdash;': '\u22aa',
2152
    'vzigzag;': '\u299a',
2153
    'Wcirc;': '\u0174',
2154
    'wcirc;': '\u0175',
2155
    'wedbar;': '\u2a5f',
2156
    'Wedge;': '\u22c0',
2157
    'wedge;': '\u2227',
2158
    'wedgeq;': '\u2259',
2159
    'weierp;': '\u2118',
2160
    'Wfr;': '\U0001d51a',
2161
    'wfr;': '\U0001d534',
2162
    'Wopf;': '\U0001d54e',
2163
    'wopf;': '\U0001d568',
2164
    'wp;': '\u2118',
2165
    'wr;': '\u2240',
2166
    'wreath;': '\u2240',
2167
    'Wscr;': '\U0001d4b2',
2168
    'wscr;': '\U0001d4cc',
2169
    'xcap;': '\u22c2',
2170
    'xcirc;': '\u25ef',
2171
    'xcup;': '\u22c3',
2172
    'xdtri;': '\u25bd',
2173
    'Xfr;': '\U0001d51b',
2174
    'xfr;': '\U0001d535',
2175
    'xhArr;': '\u27fa',
2176
    'xharr;': '\u27f7',
2177
    'Xi;': '\u039e',
2178
    'xi;': '\u03be',
2179
    'xlArr;': '\u27f8',
2180
    'xlarr;': '\u27f5',
2181
    'xmap;': '\u27fc',
2182
    'xnis;': '\u22fb',
2183
    'xodot;': '\u2a00',
2184
    'Xopf;': '\U0001d54f',
2185
    'xopf;': '\U0001d569',
2186
    'xoplus;': '\u2a01',
2187
    'xotime;': '\u2a02',
2188
    'xrArr;': '\u27f9',
2189
    'xrarr;': '\u27f6',
2190
    'Xscr;': '\U0001d4b3',
2191
    'xscr;': '\U0001d4cd',
2192
    'xsqcup;': '\u2a06',
2193
    'xuplus;': '\u2a04',
2194
    'xutri;': '\u25b3',
2195
    'xvee;': '\u22c1',
2196
    'xwedge;': '\u22c0',
2197
    'Yacute': '\xdd',
2198
    'yacute': '\xfd',
2199
    'Yacute;': '\xdd',
2200
    'yacute;': '\xfd',
2201
    'YAcy;': '\u042f',
2202
    'yacy;': '\u044f',
2203
    'Ycirc;': '\u0176',
2204
    'ycirc;': '\u0177',
2205
    'Ycy;': '\u042b',
2206
    'ycy;': '\u044b',
2207
    'yen': '\xa5',
2208
    'yen;': '\xa5',
2209
    'Yfr;': '\U0001d51c',
2210
    'yfr;': '\U0001d536',
2211
    'YIcy;': '\u0407',
2212
    'yicy;': '\u0457',
2213
    'Yopf;': '\U0001d550',
2214
    'yopf;': '\U0001d56a',
2215
    'Yscr;': '\U0001d4b4',
2216
    'yscr;': '\U0001d4ce',
2217
    'YUcy;': '\u042e',
2218
    'yucy;': '\u044e',
2219
    'yuml': '\xff',
2220
    'Yuml;': '\u0178',
2221
    'yuml;': '\xff',
2222
    'Zacute;': '\u0179',
2223
    'zacute;': '\u017a',
2224
    'Zcaron;': '\u017d',
2225
    'zcaron;': '\u017e',
2226
    'Zcy;': '\u0417',
2227
    'zcy;': '\u0437',
2228
    'Zdot;': '\u017b',
2229
    'zdot;': '\u017c',
2230
    'zeetrf;': '\u2128',
2231
    'ZeroWidthSpace;': '\u200b',
2232
    'Zeta;': '\u0396',
2233
    'zeta;': '\u03b6',
2234
    'Zfr;': '\u2128',
2235
    'zfr;': '\U0001d537',
2236
    'ZHcy;': '\u0416',
2237
    'zhcy;': '\u0436',
2238
    'zigrarr;': '\u21dd',
2239
    'Zopf;': '\u2124',
2240
    'zopf;': '\U0001d56b',
2241
    'Zscr;': '\U0001d4b5',
2242
    'zscr;': '\U0001d4cf',
2243
    'zwj;': '\u200d',
2244
    'zwnj;': '\u200c',
2245
}
2246
2247
_invalid_charrefs = {
2248
    0x00: '\ufffd',  # REPLACEMENT CHARACTER
2249
    0x0d: '\r',      # CARRIAGE RETURN
2250
    0x80: '\u20ac',  # EURO SIGN
2251
    0x81: '\x81',    # <control>
2252
    0x82: '\u201a',  # SINGLE LOW-9 QUOTATION MARK
2253
    0x83: '\u0192',  # LATIN SMALL LETTER F WITH HOOK
2254
    0x84: '\u201e',  # DOUBLE LOW-9 QUOTATION MARK
2255
    0x85: '\u2026',  # HORIZONTAL ELLIPSIS
2256
    0x86: '\u2020',  # DAGGER
2257
    0x87: '\u2021',  # DOUBLE DAGGER
2258
    0x88: '\u02c6',  # MODIFIER LETTER CIRCUMFLEX ACCENT
2259
    0x89: '\u2030',  # PER MILLE SIGN
2260
    0x8a: '\u0160',  # LATIN CAPITAL LETTER S WITH CARON
2261
    0x8b: '\u2039',  # SINGLE LEFT-POINTING ANGLE QUOTATION MARK
2262
    0x8c: '\u0152',  # LATIN CAPITAL LIGATURE OE
2263
    0x8d: '\x8d',    # <control>
2264
    0x8e: '\u017d',  # LATIN CAPITAL LETTER Z WITH CARON
2265
    0x8f: '\x8f',    # <control>
2266
    0x90: '\x90',    # <control>
2267
    0x91: '\u2018',  # LEFT SINGLE QUOTATION MARK
2268
    0x92: '\u2019',  # RIGHT SINGLE QUOTATION MARK
2269
    0x93: '\u201c',  # LEFT DOUBLE QUOTATION MARK
2270
    0x94: '\u201d',  # RIGHT DOUBLE QUOTATION MARK
2271
    0x95: '\u2022',  # BULLET
2272
    0x96: '\u2013',  # EN DASH
2273
    0x97: '\u2014',  # EM DASH
2274
    0x98: '\u02dc',  # SMALL TILDE
2275
    0x99: '\u2122',  # TRADE MARK SIGN
2276
    0x9a: '\u0161',  # LATIN SMALL LETTER S WITH CARON
2277
    0x9b: '\u203a',  # SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
2278
    0x9c: '\u0153',  # LATIN SMALL LIGATURE OE
2279
    0x9d: '\x9d',    # <control>
2280
    0x9e: '\u017e',  # LATIN SMALL LETTER Z WITH CARON
2281
    0x9f: '\u0178',  # LATIN CAPITAL LETTER Y WITH DIAERESIS
2282
}
2283
2284
_invalid_codepoints = set([
2285
    # 0x0001 to 0x0008
2286
    0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8,
2287
    # 0x000E to 0x001F
2288
    0xe, 0xf, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19,
2289
    0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
2290
    # 0x007F to 0x009F
2291
    0x7f, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a,
2292
    0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96,
2293
    0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
2294
    # 0xFDD0 to 0xFDEF
2295
    0xfdd0, 0xfdd1, 0xfdd2, 0xfdd3, 0xfdd4, 0xfdd5, 0xfdd6, 0xfdd7, 0xfdd8,
2296
    0xfdd9, 0xfdda, 0xfddb, 0xfddc, 0xfddd, 0xfdde, 0xfddf, 0xfde0, 0xfde1,
2297
    0xfde2, 0xfde3, 0xfde4, 0xfde5, 0xfde6, 0xfde7, 0xfde8, 0xfde9, 0xfdea,
2298
    0xfdeb, 0xfdec, 0xfded, 0xfdee, 0xfdef,
2299
    # others
2300
    0xb, 0xfffe, 0xffff, 0x1fffe, 0x1ffff, 0x2fffe, 0x2ffff, 0x3fffe, 0x3ffff,
2301
    0x4fffe, 0x4ffff, 0x5fffe, 0x5ffff, 0x6fffe, 0x6ffff, 0x7fffe, 0x7ffff,
2302
    0x8fffe, 0x8ffff, 0x9fffe, 0x9ffff, 0xafffe, 0xaffff, 0xbfffe, 0xbffff,
2303
    0xcfffe, 0xcffff, 0xdfffe, 0xdffff, 0xefffe, 0xeffff, 0xffffe, 0xfffff,
2304
    0x10fffe, 0x10ffff
2305
])
2306
2307
2308
def _replace_charref(s):
2309
    s = s.group(1)
2310
    if s[0] == '#':
2311
        # numeric charref
2312
        if s[1] in 'xX':
2313
            num = int(s[2:].rstrip(';'), 16)
2314
        else:
2315
            num = int(s[1:].rstrip(';'))
2316
        if num in _invalid_charrefs:
2317
            return _invalid_charrefs[num]
2318
        if 0xD800 <= num <= 0xDFFF or num > 0x10FFFF:
2319
            return '\uFFFD'
2320
        if num in _invalid_codepoints:
2321
            return ''
2322
        if sys.version_info >= (3, 0):
2323
            return chr(num)
2324
        else:
2325
            return unichr(num)  # noqa
2326
    else:
2327
        # named charref
2328
        if s in _html5:
2329
            return _html5[s]
2330
        # find the longest matching name (as defined by the standard)
2331
        for x in range(len(s)-1, 1, -1):
2332
            if s[:x] in _html5:
2333
                return _html5[s[:x]] + s[x:]
2334
        else:
2335
            return '&' + s
2336
2337
2338
_charref = _re.compile(r'&(#[0-9]+;?'
2339
                       r'|#[xX][0-9a-fA-F]+;?'
2340
                       r'|[^\t\n\f <&#;]{1,32};?)')
2341
2342
2343
def _unescape(s):
2344
    """
2345
    Convert all named and numeric character references (e.g. &gt;, &#62;,
2346
    &x3e;) in the string s to the corresponding unicode characters.
2347
    This function uses the rules defined by the HTML 5 standard
2348
    for both valid and invalid character references, and the list of
2349
    HTML 5 named character references defined in html.entities.html5.
2350
    """
2351
    if '&' not in s:
2352
        return s
2353
    return _charref.sub(_replace_charref, s)
2354