1"""
2Python 3.4 HTML5 entity unescaping for all!
3
4Based on
5https://hg.python.org/cpython/file/500d3d6f22ff/Lib/html/__init__.py
6"""
7from __future__ import unicode_literals
8import sys
9import 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
2308def _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
2343def _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