File Coverage

blib/lib/HTML/HTML5/Entities.pm
Criterion Covered Total %
statement 59 63 93.6
branch 27 36 75.0
condition 1 3 33.3
subroutine 12 12 100.0
pod 4 4 100.0
total 103 118 87.2


line stmt bran cond sub pod time code
1             package HTML::HTML5::Entities;
2              
3 3     3   78486 use 5.008001;
  3         12  
  3         210  
4 3     3   17 use base qw[Exporter];
  3         5  
  3         378  
5 3     3   15 use strict;
  3         10  
  3         92  
6 3     3   3594 use utf8;
  3         30  
  3         16  
7              
8             BEGIN {
9 3     3   164 $HTML::HTML5::Entities::AUTHORITY = 'cpan:TOBYINK';
10 3         60700 $HTML::HTML5::Entities::VERSION = '0.003';
11             }
12              
13             our (%entity2char, %char2entity, $hex, $default_unsafe_characters, @EXPORT, @EXPORT_OK);
14              
15             BEGIN
16             {
17 3     3   13 $hex = 1;
18 3         16 @EXPORT = qw(encode_entities decode_entities _decode_entities);
19 3         10 @EXPORT_OK = qw(%entity2char %char2entity encode_entities_numeric num_entity);
20            
21 3         20 $default_unsafe_characters = qr/[^\w\n\r\t !\#\$%\(-;=?-~]/x;
22              
23 3         10591 %entity2char = (
24             "AElig" => "\306",
25             "AElig;" => "\306",
26             "AMP" => "&",
27             "AMP;" => "&",
28             "Aacute" => "\301",
29             "Aacute;" => "\301",
30             "Abreve;" => "\x{102}",
31             "Acirc" => "\302",
32             "Acirc;" => "\302",
33             "Acy;" => "\x{410}",
34             "Afr;" => "\x{1d504}",
35             "Agrave" => "\300",
36             "Agrave;" => "\300",
37             "Alpha;" => "\x{391}",
38             "Amacr;" => "\x{100}",
39             "And;" => "\x{2a53}",
40             "Aogon;" => "\x{104}",
41             "Aopf;" => "\x{1d538}",
42             "ApplyFunction;" => "\x{2061}",
43             "Aring" => "\305",
44             "Aring;" => "\305",
45             "Ascr;" => "\x{1d49c}",
46             "Assign;" => "\x{2254}",
47             "Atilde" => "\303",
48             "Atilde;" => "\303",
49             "Auml" => "\304",
50             "Auml;" => "\304",
51             "Backslash;" => "\x{2216}",
52             "Barv;" => "\x{2ae7}",
53             "Barwed;" => "\x{2306}",
54             "Bcy;" => "\x{411}",
55             "Because;" => "\x{2235}",
56             "Bernoullis;" => "\x{212c}",
57             "Beta;" => "\x{392}",
58             "Bfr;" => "\x{1d505}",
59             "Bopf;" => "\x{1d539}",
60             "Breve;" => "\x{2d8}",
61             "Bscr;" => "\x{212c}",
62             "Bumpeq;" => "\x{224e}",
63             "CHcy;" => "\x{427}",
64             "COPY" => "\251",
65             "COPY;" => "\251",
66             "Cacute;" => "\x{106}",
67             "Cap;" => "\x{22d2}",
68             "CapitalDifferentialD;" => "\x{2145}",
69             "Cayleys;" => "\x{212d}",
70             "Ccaron;" => "\x{10c}",
71             "Ccedil" => "\307",
72             "Ccedil;" => "\307",
73             "Ccirc;" => "\x{108}",
74             "Cconint;" => "\x{2230}",
75             "Cdot;" => "\x{10a}",
76             "Cedilla;" => "\270",
77             "CenterDot;" => "\267",
78             "Cfr;" => "\x{212d}",
79             "Chi;" => "\x{3a7}",
80             "CircleDot;" => "\x{2299}",
81             "CircleMinus;" => "\x{2296}",
82             "CirclePlus;" => "\x{2295}",
83             "CircleTimes;" => "\x{2297}",
84             "ClockwiseContourIntegral;" => "\x{2232}",
85             "CloseCurlyDoubleQuote;" => "\x{201d}",
86             "CloseCurlyQuote;" => "\x{2019}",
87             "Colon;" => "\x{2237}",
88             "Colone;" => "\x{2a74}",
89             "Congruent;" => "\x{2261}",
90             "Conint;" => "\x{222f}",
91             "ContourIntegral;" => "\x{222e}",
92             "Copf;" => "\x{2102}",
93             "Coproduct;" => "\x{2210}",
94             "CounterClockwiseContourIntegral;" => "\x{2233}",
95             "Cross;" => "\x{2a2f}",
96             "Cscr;" => "\x{1d49e}",
97             "Cup;" => "\x{22d3}",
98             "CupCap;" => "\x{224d}",
99             "DD;" => "\x{2145}",
100             "DDotrahd;" => "\x{2911}",
101             "DJcy;" => "\x{402}",
102             "DScy;" => "\x{405}",
103             "DZcy;" => "\x{40f}",
104             "Dagger;" => "\x{2021}",
105             "Darr;" => "\x{21a1}",
106             "Dashv;" => "\x{2ae4}",
107             "Dcaron;" => "\x{10e}",
108             "Dcy;" => "\x{414}",
109             "Del;" => "\x{2207}",
110             "Delta;" => "\x{394}",
111             "Dfr;" => "\x{1d507}",
112             "DiacriticalAcute;" => "\264",
113             "DiacriticalDot;" => "\x{2d9}",
114             "DiacriticalDoubleAcute;" => "\x{2dd}",
115             "DiacriticalGrave;" => "`",
116             "DiacriticalTilde;" => "\x{2dc}",
117             "Diamond;" => "\x{22c4}",
118             "DifferentialD;" => "\x{2146}",
119             "Dopf;" => "\x{1d53b}",
120             "Dot;" => "\250",
121             "DotDot;" => "\x{20dc}",
122             "DotEqual;" => "\x{2250}",
123             "DoubleContourIntegral;" => "\x{222f}",
124             "DoubleDot;" => "\250",
125             "DoubleDownArrow;" => "\x{21d3}",
126             "DoubleLeftArrow;" => "\x{21d0}",
127             "DoubleLeftRightArrow;" => "\x{21d4}",
128             "DoubleLeftTee;" => "\x{2ae4}",
129             "DoubleLongLeftArrow;" => "\x{27f8}",
130             "DoubleLongLeftRightArrow;" => "\x{27fa}",
131             "DoubleLongRightArrow;" => "\x{27f9}",
132             "DoubleRightArrow;" => "\x{21d2}",
133             "DoubleRightTee;" => "\x{22a8}",
134             "DoubleUpArrow;" => "\x{21d1}",
135             "DoubleUpDownArrow;" => "\x{21d5}",
136             "DoubleVerticalBar;" => "\x{2225}",
137             "DownArrow;" => "\x{2193}",
138             "DownArrowBar;" => "\x{2913}",
139             "DownArrowUpArrow;" => "\x{21f5}",
140             "DownBreve;" => "\x{311}",
141             "DownLeftRightVector;" => "\x{2950}",
142             "DownLeftTeeVector;" => "\x{295e}",
143             "DownLeftVector;" => "\x{21bd}",
144             "DownLeftVectorBar;" => "\x{2956}",
145             "DownRightTeeVector;" => "\x{295f}",
146             "DownRightVector;" => "\x{21c1}",
147             "DownRightVectorBar;" => "\x{2957}",
148             "DownTee;" => "\x{22a4}",
149             "DownTeeArrow;" => "\x{21a7}",
150             "Downarrow;" => "\x{21d3}",
151             "Dscr;" => "\x{1d49f}",
152             "Dstrok;" => "\x{110}",
153             "ENG;" => "\x{14a}",
154             "ETH" => "\320",
155             "ETH;" => "\320",
156             "Eacute" => "\311",
157             "Eacute;" => "\311",
158             "Ecaron;" => "\x{11a}",
159             "Ecirc" => "\312",
160             "Ecirc;" => "\312",
161             "Ecy;" => "\x{42d}",
162             "Edot;" => "\x{116}",
163             "Efr;" => "\x{1d508}",
164             "Egrave" => "\310",
165             "Egrave;" => "\310",
166             "Element;" => "\x{2208}",
167             "Emacr;" => "\x{112}",
168             "EmptySmallSquare;" => "\x{25fb}",
169             "EmptyVerySmallSquare;" => "\x{25ab}",
170             "Eogon;" => "\x{118}",
171             "Eopf;" => "\x{1d53c}",
172             "Epsilon;" => "\x{395}",
173             "Equal;" => "\x{2a75}",
174             "EqualTilde;" => "\x{2242}",
175             "Equilibrium;" => "\x{21cc}",
176             "Escr;" => "\x{2130}",
177             "Esim;" => "\x{2a73}",
178             "Eta;" => "\x{397}",
179             "Euml" => "\313",
180             "Euml;" => "\313",
181             "Exists;" => "\x{2203}",
182             "ExponentialE;" => "\x{2147}",
183             "Fcy;" => "\x{424}",
184             "Ffr;" => "\x{1d509}",
185             "FilledSmallSquare;" => "\x{25fc}",
186             "FilledVerySmallSquare;" => "\x{25aa}",
187             "Fopf;" => "\x{1d53d}",
188             "ForAll;" => "\x{2200}",
189             "Fouriertrf;" => "\x{2131}",
190             "Fscr;" => "\x{2131}",
191             "GJcy;" => "\x{403}",
192             "GT" => ">",
193             "GT;" => ">",
194             "Gamma;" => "\x{393}",
195             "Gammad;" => "\x{3dc}",
196             "Gbreve;" => "\x{11e}",
197             "Gcedil;" => "\x{122}",
198             "Gcirc;" => "\x{11c}",
199             "Gcy;" => "\x{413}",
200             "Gdot;" => "\x{120}",
201             "Gfr;" => "\x{1d50a}",
202             "Gg;" => "\x{22d9}",
203             "Gopf;" => "\x{1d53e}",
204             "GreaterEqual;" => "\x{2265}",
205             "GreaterEqualLess;" => "\x{22db}",
206             "GreaterFullEqual;" => "\x{2267}",
207             "GreaterGreater;" => "\x{2aa2}",
208             "GreaterLess;" => "\x{2277}",
209             "GreaterSlantEqual;" => "\x{2a7e}",
210             "GreaterTilde;" => "\x{2273}",
211             "Gscr;" => "\x{1d4a2}",
212             "Gt;" => "\x{226b}",
213             "HARDcy;" => "\x{42a}",
214             "Hacek;" => "\x{2c7}",
215             "Hat;" => "^",
216             "Hcirc;" => "\x{124}",
217             "Hfr;" => "\x{210c}",
218             "HilbertSpace;" => "\x{210b}",
219             "Hopf;" => "\x{210d}",
220             "HorizontalLine;" => "\x{2500}",
221             "Hscr;" => "\x{210b}",
222             "Hstrok;" => "\x{126}",
223             "HumpDownHump;" => "\x{224e}",
224             "HumpEqual;" => "\x{224f}",
225             "IEcy;" => "\x{415}",
226             "IJlig;" => "\x{132}",
227             "IOcy;" => "\x{401}",
228             "Iacute" => "\315",
229             "Iacute;" => "\315",
230             "Icirc" => "\316",
231             "Icirc;" => "\316",
232             "Icy;" => "\x{418}",
233             "Idot;" => "\x{130}",
234             "Ifr;" => "\x{2111}",
235             "Igrave" => "\314",
236             "Igrave;" => "\314",
237             "Im;" => "\x{2111}",
238             "Imacr;" => "\x{12a}",
239             "ImaginaryI;" => "\x{2148}",
240             "Implies;" => "\x{21d2}",
241             "Int;" => "\x{222c}",
242             "Integral;" => "\x{222b}",
243             "Intersection;" => "\x{22c2}",
244             "InvisibleComma;" => "\x{2063}",
245             "InvisibleTimes;" => "\x{2062}",
246             "Iogon;" => "\x{12e}",
247             "Iopf;" => "\x{1d540}",
248             "Iota;" => "\x{399}",
249             "Iscr;" => "\x{2110}",
250             "Itilde;" => "\x{128}",
251             "Iukcy;" => "\x{406}",
252             "Iuml" => "\317",
253             "Iuml;" => "\317",
254             "Jcirc;" => "\x{134}",
255             "Jcy;" => "\x{419}",
256             "Jfr;" => "\x{1d50d}",
257             "Jopf;" => "\x{1d541}",
258             "Jscr;" => "\x{1d4a5}",
259             "Jsercy;" => "\x{408}",
260             "Jukcy;" => "\x{404}",
261             "KHcy;" => "\x{425}",
262             "KJcy;" => "\x{40c}",
263             "Kappa;" => "\x{39a}",
264             "Kcedil;" => "\x{136}",
265             "Kcy;" => "\x{41a}",
266             "Kfr;" => "\x{1d50e}",
267             "Kopf;" => "\x{1d542}",
268             "Kscr;" => "\x{1d4a6}",
269             "LJcy;" => "\x{409}",
270             "LT" => "<",
271             "LT;" => "<",
272             "Lacute;" => "\x{139}",
273             "Lambda;" => "\x{39b}",
274             "Lang;" => "\x{27ea}",
275             "Laplacetrf;" => "\x{2112}",
276             "Larr;" => "\x{219e}",
277             "Lcaron;" => "\x{13d}",
278             "Lcedil;" => "\x{13b}",
279             "Lcy;" => "\x{41b}",
280             "LeftAngleBracket;" => "\x{27e8}",
281             "LeftArrow;" => "\x{2190}",
282             "LeftArrowBar;" => "\x{21e4}",
283             "LeftArrowRightArrow;" => "\x{21c6}",
284             "LeftCeiling;" => "\x{2308}",
285             "LeftDoubleBracket;" => "\x{27e6}",
286             "LeftDownTeeVector;" => "\x{2961}",
287             "LeftDownVector;" => "\x{21c3}",
288             "LeftDownVectorBar;" => "\x{2959}",
289             "LeftFloor;" => "\x{230a}",
290             "LeftRightArrow;" => "\x{2194}",
291             "LeftRightVector;" => "\x{294e}",
292             "LeftTee;" => "\x{22a3}",
293             "LeftTeeArrow;" => "\x{21a4}",
294             "LeftTeeVector;" => "\x{295a}",
295             "LeftTriangle;" => "\x{22b2}",
296             "LeftTriangleBar;" => "\x{29cf}",
297             "LeftTriangleEqual;" => "\x{22b4}",
298             "LeftUpDownVector;" => "\x{2951}",
299             "LeftUpTeeVector;" => "\x{2960}",
300             "LeftUpVector;" => "\x{21bf}",
301             "LeftUpVectorBar;" => "\x{2958}",
302             "LeftVector;" => "\x{21bc}",
303             "LeftVectorBar;" => "\x{2952}",
304             "Leftarrow;" => "\x{21d0}",
305             "Leftrightarrow;" => "\x{21d4}",
306             "LessEqualGreater;" => "\x{22da}",
307             "LessFullEqual;" => "\x{2266}",
308             "LessGreater;" => "\x{2276}",
309             "LessLess;" => "\x{2aa1}",
310             "LessSlantEqual;" => "\x{2a7d}",
311             "LessTilde;" => "\x{2272}",
312             "Lfr;" => "\x{1d50f}",
313             "Ll;" => "\x{22d8}",
314             "Lleftarrow;" => "\x{21da}",
315             "Lmidot;" => "\x{13f}",
316             "LongLeftArrow;" => "\x{27f5}",
317             "LongLeftRightArrow;" => "\x{27f7}",
318             "LongRightArrow;" => "\x{27f6}",
319             "Longleftarrow;" => "\x{27f8}",
320             "Longleftrightarrow;" => "\x{27fa}",
321             "Longrightarrow;" => "\x{27f9}",
322             "Lopf;" => "\x{1d543}",
323             "LowerLeftArrow;" => "\x{2199}",
324             "LowerRightArrow;" => "\x{2198}",
325             "Lscr;" => "\x{2112}",
326             "Lsh;" => "\x{21b0}",
327             "Lstrok;" => "\x{141}",
328             "Lt;" => "\x{226a}",
329             "Map;" => "\x{2905}",
330             "Mcy;" => "\x{41c}",
331             "MediumSpace;" => "\x{205f}",
332             "Mellintrf;" => "\x{2133}",
333             "Mfr;" => "\x{1d510}",
334             "MinusPlus;" => "\x{2213}",
335             "Mopf;" => "\x{1d544}",
336             "Mscr;" => "\x{2133}",
337             "Mu;" => "\x{39c}",
338             "NJcy;" => "\x{40a}",
339             "Nacute;" => "\x{143}",
340             "Ncaron;" => "\x{147}",
341             "Ncedil;" => "\x{145}",
342             "Ncy;" => "\x{41d}",
343             "NegativeMediumSpace;" => "\x{200b}",
344             "NegativeThickSpace;" => "\x{200b}",
345             "NegativeThinSpace;" => "\x{200b}",
346             "NegativeVeryThinSpace;" => "\x{200b}",
347             "NestedGreaterGreater;" => "\x{226b}",
348             "NestedLessLess;" => "\x{226a}",
349             "NewLine;" => "\n",
350             "Nfr;" => "\x{1d511}",
351             "NoBreak;" => "\x{2060}",
352             "NonBreakingSpace;" => "\240",
353             "Nopf;" => "\x{2115}",
354             "Not;" => "\x{2aec}",
355             "NotCongruent;" => "\x{2262}",
356             "NotCupCap;" => "\x{226d}",
357             "NotDoubleVerticalBar;" => "\x{2226}",
358             "NotElement;" => "\x{2209}",
359             "NotEqual;" => "\x{2260}",
360             "NotEqualTilde;" => "\x{2242}\x{338}",
361             "NotExists;" => "\x{2204}",
362             "NotGreater;" => "\x{226f}",
363             "NotGreaterEqual;" => "\x{2271}",
364             "NotGreaterFullEqual;" => "\x{2267}\x{338}",
365             "NotGreaterGreater;" => "\x{226b}\x{338}",
366             "NotGreaterLess;" => "\x{2279}",
367             "NotGreaterSlantEqual;" => "\x{2a7e}\x{338}",
368             "NotGreaterTilde;" => "\x{2275}",
369             "NotHumpDownHump;" => "\x{224e}\x{338}",
370             "NotHumpEqual;" => "\x{224f}\x{338}",
371             "NotLeftTriangle;" => "\x{22ea}",
372             "NotLeftTriangleBar;" => "\x{29cf}\x{338}",
373             "NotLeftTriangleEqual;" => "\x{22ec}",
374             "NotLess;" => "\x{226e}",
375             "NotLessEqual;" => "\x{2270}",
376             "NotLessGreater;" => "\x{2278}",
377             "NotLessLess;" => "\x{226a}\x{338}",
378             "NotLessSlantEqual;" => "\x{2a7d}\x{338}",
379             "NotLessTilde;" => "\x{2274}",
380             "NotNestedGreaterGreater;" => "\x{2aa2}\x{338}",
381             "NotNestedLessLess;" => "\x{2aa1}\x{338}",
382             "NotPrecedes;" => "\x{2280}",
383             "NotPrecedesEqual;" => "\x{2aaf}\x{338}",
384             "NotPrecedesSlantEqual;" => "\x{22e0}",
385             "NotReverseElement;" => "\x{220c}",
386             "NotRightTriangle;" => "\x{22eb}",
387             "NotRightTriangleBar;" => "\x{29d0}\x{338}",
388             "NotRightTriangleEqual;" => "\x{22ed}",
389             "NotSquareSubset;" => "\x{228f}\x{338}",
390             "NotSquareSubsetEqual;" => "\x{22e2}",
391             "NotSquareSuperset;" => "\x{2290}\x{338}",
392             "NotSquareSupersetEqual;" => "\x{22e3}",
393             "NotSubset;" => "\x{2282}\x{20d2}",
394             "NotSubsetEqual;" => "\x{2288}",
395             "NotSucceeds;" => "\x{2281}",
396             "NotSucceedsEqual;" => "\x{2ab0}\x{338}",
397             "NotSucceedsSlantEqual;" => "\x{22e1}",
398             "NotSucceedsTilde;" => "\x{227f}\x{338}",
399             "NotSuperset;" => "\x{2283}\x{20d2}",
400             "NotSupersetEqual;" => "\x{2289}",
401             "NotTilde;" => "\x{2241}",
402             "NotTildeEqual;" => "\x{2244}",
403             "NotTildeFullEqual;" => "\x{2247}",
404             "NotTildeTilde;" => "\x{2249}",
405             "NotVerticalBar;" => "\x{2224}",
406             "Nscr;" => "\x{1d4a9}",
407             "Ntilde" => "\321",
408             "Ntilde;" => "\321",
409             "Nu;" => "\x{39d}",
410             "OElig;" => "\x{152}",
411             "Oacute" => "\323",
412             "Oacute;" => "\323",
413             "Ocirc" => "\324",
414             "Ocirc;" => "\324",
415             "Ocy;" => "\x{41e}",
416             "Odblac;" => "\x{150}",
417             "Ofr;" => "\x{1d512}",
418             "Ograve" => "\322",
419             "Ograve;" => "\322",
420             "Omacr;" => "\x{14c}",
421             "Omega;" => "\x{3a9}",
422             "Omicron;" => "\x{39f}",
423             "Oopf;" => "\x{1d546}",
424             "OpenCurlyDoubleQuote;" => "\x{201c}",
425             "OpenCurlyQuote;" => "\x{2018}",
426             "Or;" => "\x{2a54}",
427             "Oscr;" => "\x{1d4aa}",
428             "Oslash" => "\330",
429             "Oslash;" => "\330",
430             "Otilde" => "\325",
431             "Otilde;" => "\325",
432             "Otimes;" => "\x{2a37}",
433             "Ouml" => "\326",
434             "Ouml;" => "\326",
435             "OverBar;" => "\x{203e}",
436             "OverBrace;" => "\x{23de}",
437             "OverBracket;" => "\x{23b4}",
438             "OverParenthesis;" => "\x{23dc}",
439             "PartialD;" => "\x{2202}",
440             "Pcy;" => "\x{41f}",
441             "Pfr;" => "\x{1d513}",
442             "Phi;" => "\x{3a6}",
443             "Pi;" => "\x{3a0}",
444             "PlusMinus;" => "\261",
445             "Poincareplane;" => "\x{210c}",
446             "Popf;" => "\x{2119}",
447             "Pr;" => "\x{2abb}",
448             "Precedes;" => "\x{227a}",
449             "PrecedesEqual;" => "\x{2aaf}",
450             "PrecedesSlantEqual;" => "\x{227c}",
451             "PrecedesTilde;" => "\x{227e}",
452             "Prime;" => "\x{2033}",
453             "Product;" => "\x{220f}",
454             "Proportion;" => "\x{2237}",
455             "Proportional;" => "\x{221d}",
456             "Pscr;" => "\x{1d4ab}",
457             "Psi;" => "\x{3a8}",
458             "QUOT" => "\"",
459             "QUOT;" => "\"",
460             "Qfr;" => "\x{1d514}",
461             "Qopf;" => "\x{211a}",
462             "Qscr;" => "\x{1d4ac}",
463             "RBarr;" => "\x{2910}",
464             "REG" => "\256",
465             "REG;" => "\256",
466             "Racute;" => "\x{154}",
467             "Rang;" => "\x{27eb}",
468             "Rarr;" => "\x{21a0}",
469             "Rarrtl;" => "\x{2916}",
470             "Rcaron;" => "\x{158}",
471             "Rcedil;" => "\x{156}",
472             "Rcy;" => "\x{420}",
473             "Re;" => "\x{211c}",
474             "ReverseElement;" => "\x{220b}",
475             "ReverseEquilibrium;" => "\x{21cb}",
476             "ReverseUpEquilibrium;" => "\x{296f}",
477             "Rfr;" => "\x{211c}",
478             "Rho;" => "\x{3a1}",
479             "RightAngleBracket;" => "\x{27e9}",
480             "RightArrow;" => "\x{2192}",
481             "RightArrowBar;" => "\x{21e5}",
482             "RightArrowLeftArrow;" => "\x{21c4}",
483             "RightCeiling;" => "\x{2309}",
484             "RightDoubleBracket;" => "\x{27e7}",
485             "RightDownTeeVector;" => "\x{295d}",
486             "RightDownVector;" => "\x{21c2}",
487             "RightDownVectorBar;" => "\x{2955}",
488             "RightFloor;" => "\x{230b}",
489             "RightTee;" => "\x{22a2}",
490             "RightTeeArrow;" => "\x{21a6}",
491             "RightTeeVector;" => "\x{295b}",
492             "RightTriangle;" => "\x{22b3}",
493             "RightTriangleBar;" => "\x{29d0}",
494             "RightTriangleEqual;" => "\x{22b5}",
495             "RightUpDownVector;" => "\x{294f}",
496             "RightUpTeeVector;" => "\x{295c}",
497             "RightUpVector;" => "\x{21be}",
498             "RightUpVectorBar;" => "\x{2954}",
499             "RightVector;" => "\x{21c0}",
500             "RightVectorBar;" => "\x{2953}",
501             "Rightarrow;" => "\x{21d2}",
502             "Ropf;" => "\x{211d}",
503             "RoundImplies;" => "\x{2970}",
504             "Rrightarrow;" => "\x{21db}",
505             "Rscr;" => "\x{211b}",
506             "Rsh;" => "\x{21b1}",
507             "RuleDelayed;" => "\x{29f4}",
508             "SHCHcy;" => "\x{429}",
509             "SHcy;" => "\x{428}",
510             "SOFTcy;" => "\x{42c}",
511             "Sacute;" => "\x{15a}",
512             "Sc;" => "\x{2abc}",
513             "Scaron;" => "\x{160}",
514             "Scedil;" => "\x{15e}",
515             "Scirc;" => "\x{15c}",
516             "Scy;" => "\x{421}",
517             "Sfr;" => "\x{1d516}",
518             "ShortDownArrow;" => "\x{2193}",
519             "ShortLeftArrow;" => "\x{2190}",
520             "ShortRightArrow;" => "\x{2192}",
521             "ShortUpArrow;" => "\x{2191}",
522             "Sigma;" => "\x{3a3}",
523             "SmallCircle;" => "\x{2218}",
524             "Sopf;" => "\x{1d54a}",
525             "Sqrt;" => "\x{221a}",
526             "Square;" => "\x{25a1}",
527             "SquareIntersection;" => "\x{2293}",
528             "SquareSubset;" => "\x{228f}",
529             "SquareSubsetEqual;" => "\x{2291}",
530             "SquareSuperset;" => "\x{2290}",
531             "SquareSupersetEqual;" => "\x{2292}",
532             "SquareUnion;" => "\x{2294}",
533             "Sscr;" => "\x{1d4ae}",
534             "Star;" => "\x{22c6}",
535             "Sub;" => "\x{22d0}",
536             "Subset;" => "\x{22d0}",
537             "SubsetEqual;" => "\x{2286}",
538             "Succeeds;" => "\x{227b}",
539             "SucceedsEqual;" => "\x{2ab0}",
540             "SucceedsSlantEqual;" => "\x{227d}",
541             "SucceedsTilde;" => "\x{227f}",
542             "SuchThat;" => "\x{220b}",
543             "Sum;" => "\x{2211}",
544             "Sup;" => "\x{22d1}",
545             "Superset;" => "\x{2283}",
546             "SupersetEqual;" => "\x{2287}",
547             "Supset;" => "\x{22d1}",
548             "THORN" => "\336",
549             "THORN;" => "\336",
550             "TRADE;" => "\x{2122}",
551             "TSHcy;" => "\x{40b}",
552             "TScy;" => "\x{426}",
553             "Tab;" => "\t",
554             "Tau;" => "\x{3a4}",
555             "Tcaron;" => "\x{164}",
556             "Tcedil;" => "\x{162}",
557             "Tcy;" => "\x{422}",
558             "Tfr;" => "\x{1d517}",
559             "Therefore;" => "\x{2234}",
560             "Theta;" => "\x{398}",
561             "ThickSpace;" => "\x{205f}\x{200a}",
562             "ThinSpace;" => "\x{2009}",
563             "Tilde;" => "\x{223c}",
564             "TildeEqual;" => "\x{2243}",
565             "TildeFullEqual;" => "\x{2245}",
566             "TildeTilde;" => "\x{2248}",
567             "Topf;" => "\x{1d54b}",
568             "TripleDot;" => "\x{20db}",
569             "Tscr;" => "\x{1d4af}",
570             "Tstrok;" => "\x{166}",
571             "Uacute" => "\332",
572             "Uacute;" => "\332",
573             "Uarr;" => "\x{219f}",
574             "Uarrocir;" => "\x{2949}",
575             "Ubrcy;" => "\x{40e}",
576             "Ubreve;" => "\x{16c}",
577             "Ucirc" => "\333",
578             "Ucirc;" => "\333",
579             "Ucy;" => "\x{423}",
580             "Udblac;" => "\x{170}",
581             "Ufr;" => "\x{1d518}",
582             "Ugrave" => "\331",
583             "Ugrave;" => "\331",
584             "Umacr;" => "\x{16a}",
585             "UnderBar;" => "_",
586             "UnderBrace;" => "\x{23df}",
587             "UnderBracket;" => "\x{23b5}",
588             "UnderParenthesis;" => "\x{23dd}",
589             "Union;" => "\x{22c3}",
590             "UnionPlus;" => "\x{228e}",
591             "Uogon;" => "\x{172}",
592             "Uopf;" => "\x{1d54c}",
593             "UpArrow;" => "\x{2191}",
594             "UpArrowBar;" => "\x{2912}",
595             "UpArrowDownArrow;" => "\x{21c5}",
596             "UpDownArrow;" => "\x{2195}",
597             "UpEquilibrium;" => "\x{296e}",
598             "UpTee;" => "\x{22a5}",
599             "UpTeeArrow;" => "\x{21a5}",
600             "Uparrow;" => "\x{21d1}",
601             "Updownarrow;" => "\x{21d5}",
602             "UpperLeftArrow;" => "\x{2196}",
603             "UpperRightArrow;" => "\x{2197}",
604             "Upsi;" => "\x{3d2}",
605             "Upsilon;" => "\x{3a5}",
606             "Uring;" => "\x{16e}",
607             "Uscr;" => "\x{1d4b0}",
608             "Utilde;" => "\x{168}",
609             "Uuml" => "\334",
610             "Uuml;" => "\334",
611             "VDash;" => "\x{22ab}",
612             "Vbar;" => "\x{2aeb}",
613             "Vcy;" => "\x{412}",
614             "Vdash;" => "\x{22a9}",
615             "Vdashl;" => "\x{2ae6}",
616             "Vee;" => "\x{22c1}",
617             "Verbar;" => "\x{2016}",
618             "Vert;" => "\x{2016}",
619             "VerticalBar;" => "\x{2223}",
620             "VerticalLine;" => "|",
621             "VerticalSeparator;" => "\x{2758}",
622             "VerticalTilde;" => "\x{2240}",
623             "VeryThinSpace;" => "\x{200a}",
624             "Vfr;" => "\x{1d519}",
625             "Vopf;" => "\x{1d54d}",
626             "Vscr;" => "\x{1d4b1}",
627             "Vvdash;" => "\x{22aa}",
628             "Wcirc;" => "\x{174}",
629             "Wedge;" => "\x{22c0}",
630             "Wfr;" => "\x{1d51a}",
631             "Wopf;" => "\x{1d54e}",
632             "Wscr;" => "\x{1d4b2}",
633             "Xfr;" => "\x{1d51b}",
634             "Xi;" => "\x{39e}",
635             "Xopf;" => "\x{1d54f}",
636             "Xscr;" => "\x{1d4b3}",
637             "YAcy;" => "\x{42f}",
638             "YIcy;" => "\x{407}",
639             "YUcy;" => "\x{42e}",
640             "Yacute" => "\335",
641             "Yacute;" => "\335",
642             "Ycirc;" => "\x{176}",
643             "Ycy;" => "\x{42b}",
644             "Yfr;" => "\x{1d51c}",
645             "Yopf;" => "\x{1d550}",
646             "Yscr;" => "\x{1d4b4}",
647             "Yuml;" => "\x{178}",
648             "ZHcy;" => "\x{416}",
649             "Zacute;" => "\x{179}",
650             "Zcaron;" => "\x{17d}",
651             "Zcy;" => "\x{417}",
652             "Zdot;" => "\x{17b}",
653             "ZeroWidthSpace;" => "\x{200b}",
654             "Zeta;" => "\x{396}",
655             "Zfr;" => "\x{2128}",
656             "Zopf;" => "\x{2124}",
657             "Zscr;" => "\x{1d4b5}",
658             "aacute" => "\341",
659             "aacute;" => "\341",
660             "abreve;" => "\x{103}",
661             "ac;" => "\x{223e}",
662             "acE;" => "\x{223e}\x{333}",
663             "acd;" => "\x{223f}",
664             "acirc" => "\342",
665             "acirc;" => "\342",
666             "acute" => "\264",
667             "acute;" => "\264",
668             "acy;" => "\x{430}",
669             "aelig" => "\346",
670             "aelig;" => "\346",
671             "af;" => "\x{2061}",
672             "afr;" => "\x{1d51e}",
673             "agrave" => "\340",
674             "agrave;" => "\340",
675             "alefsym;" => "\x{2135}",
676             "aleph;" => "\x{2135}",
677             "alpha;" => "\x{3b1}",
678             "amacr;" => "\x{101}",
679             "amalg;" => "\x{2a3f}",
680             "amp" => "&",
681             "amp;" => "&",
682             "and;" => "\x{2227}",
683             "andand;" => "\x{2a55}",
684             "andd;" => "\x{2a5c}",
685             "andslope;" => "\x{2a58}",
686             "andv;" => "\x{2a5a}",
687             "ang;" => "\x{2220}",
688             "ange;" => "\x{29a4}",
689             "angle;" => "\x{2220}",
690             "angmsd;" => "\x{2221}",
691             "angmsdaa;" => "\x{29a8}",
692             "angmsdab;" => "\x{29a9}",
693             "angmsdac;" => "\x{29aa}",
694             "angmsdad;" => "\x{29ab}",
695             "angmsdae;" => "\x{29ac}",
696             "angmsdaf;" => "\x{29ad}",
697             "angmsdag;" => "\x{29ae}",
698             "angmsdah;" => "\x{29af}",
699             "angrt;" => "\x{221f}",
700             "angrtvb;" => "\x{22be}",
701             "angrtvbd;" => "\x{299d}",
702             "angsph;" => "\x{2222}",
703             "angst;" => "\305",
704             "angzarr;" => "\x{237c}",
705             "aogon;" => "\x{105}",
706             "aopf;" => "\x{1d552}",
707             "ap;" => "\x{2248}",
708             "apE;" => "\x{2a70}",
709             "apacir;" => "\x{2a6f}",
710             "ape;" => "\x{224a}",
711             "apid;" => "\x{224b}",
712             "apos;" => "'",
713             "approx;" => "\x{2248}",
714             "approxeq;" => "\x{224a}",
715             "aring" => "\345",
716             "aring;" => "\345",
717             "ascr;" => "\x{1d4b6}",
718             "ast;" => "*",
719             "asymp;" => "\x{2248}",
720             "asympeq;" => "\x{224d}",
721             "atilde" => "\343",
722             "atilde;" => "\343",
723             "auml" => "\344",
724             "auml;" => "\344",
725             "awconint;" => "\x{2233}",
726             "awint;" => "\x{2a11}",
727             "bNot;" => "\x{2aed}",
728             "backcong;" => "\x{224c}",
729             "backepsilon;" => "\x{3f6}",
730             "backprime;" => "\x{2035}",
731             "backsim;" => "\x{223d}",
732             "backsimeq;" => "\x{22cd}",
733             "barvee;" => "\x{22bd}",
734             "barwed;" => "\x{2305}",
735             "barwedge;" => "\x{2305}",
736             "bbrk;" => "\x{23b5}",
737             "bbrktbrk;" => "\x{23b6}",
738             "bcong;" => "\x{224c}",
739             "bcy;" => "\x{431}",
740             "bdquo;" => "\x{201e}",
741             "becaus;" => "\x{2235}",
742             "because;" => "\x{2235}",
743             "bemptyv;" => "\x{29b0}",
744             "bepsi;" => "\x{3f6}",
745             "bernou;" => "\x{212c}",
746             "beta;" => "\x{3b2}",
747             "beth;" => "\x{2136}",
748             "between;" => "\x{226c}",
749             "bfr;" => "\x{1d51f}",
750             "bigcap;" => "\x{22c2}",
751             "bigcirc;" => "\x{25ef}",
752             "bigcup;" => "\x{22c3}",
753             "bigodot;" => "\x{2a00}",
754             "bigoplus;" => "\x{2a01}",
755             "bigotimes;" => "\x{2a02}",
756             "bigsqcup;" => "\x{2a06}",
757             "bigstar;" => "\x{2605}",
758             "bigtriangledown;" => "\x{25bd}",
759             "bigtriangleup;" => "\x{25b3}",
760             "biguplus;" => "\x{2a04}",
761             "bigvee;" => "\x{22c1}",
762             "bigwedge;" => "\x{22c0}",
763             "bkarow;" => "\x{290d}",
764             "blacklozenge;" => "\x{29eb}",
765             "blacksquare;" => "\x{25aa}",
766             "blacktriangle;" => "\x{25b4}",
767             "blacktriangledown;" => "\x{25be}",
768             "blacktriangleleft;" => "\x{25c2}",
769             "blacktriangleright;" => "\x{25b8}",
770             "blank;" => "\x{2423}",
771             "blk12;" => "\x{2592}",
772             "blk14;" => "\x{2591}",
773             "blk34;" => "\x{2593}",
774             "block;" => "\x{2588}",
775             "bne;" => "=\x{20e5}",
776             "bnequiv;" => "\x{2261}\x{20e5}",
777             "bnot;" => "\x{2310}",
778             "bopf;" => "\x{1d553}",
779             "bot;" => "\x{22a5}",
780             "bottom;" => "\x{22a5}",
781             "bowtie;" => "\x{22c8}",
782             "boxDL;" => "\x{2557}",
783             "boxDR;" => "\x{2554}",
784             "boxDl;" => "\x{2556}",
785             "boxDr;" => "\x{2553}",
786             "boxH;" => "\x{2550}",
787             "boxHD;" => "\x{2566}",
788             "boxHU;" => "\x{2569}",
789             "boxHd;" => "\x{2564}",
790             "boxHu;" => "\x{2567}",
791             "boxUL;" => "\x{255d}",
792             "boxUR;" => "\x{255a}",
793             "boxUl;" => "\x{255c}",
794             "boxUr;" => "\x{2559}",
795             "boxV;" => "\x{2551}",
796             "boxVH;" => "\x{256c}",
797             "boxVL;" => "\x{2563}",
798             "boxVR;" => "\x{2560}",
799             "boxVh;" => "\x{256b}",
800             "boxVl;" => "\x{2562}",
801             "boxVr;" => "\x{255f}",
802             "boxbox;" => "\x{29c9}",
803             "boxdL;" => "\x{2555}",
804             "boxdR;" => "\x{2552}",
805             "boxdl;" => "\x{2510}",
806             "boxdr;" => "\x{250c}",
807             "boxh;" => "\x{2500}",
808             "boxhD;" => "\x{2565}",
809             "boxhU;" => "\x{2568}",
810             "boxhd;" => "\x{252c}",
811             "boxhu;" => "\x{2534}",
812             "boxminus;" => "\x{229f}",
813             "boxplus;" => "\x{229e}",
814             "boxtimes;" => "\x{22a0}",
815             "boxuL;" => "\x{255b}",
816             "boxuR;" => "\x{2558}",
817             "boxul;" => "\x{2518}",
818             "boxur;" => "\x{2514}",
819             "boxv;" => "\x{2502}",
820             "boxvH;" => "\x{256a}",
821             "boxvL;" => "\x{2561}",
822             "boxvR;" => "\x{255e}",
823             "boxvh;" => "\x{253c}",
824             "boxvl;" => "\x{2524}",
825             "boxvr;" => "\x{251c}",
826             "bprime;" => "\x{2035}",
827             "breve;" => "\x{2d8}",
828             "brvbar" => "\246",
829             "brvbar;" => "\246",
830             "bscr;" => "\x{1d4b7}",
831             "bsemi;" => "\x{204f}",
832             "bsim;" => "\x{223d}",
833             "bsime;" => "\x{22cd}",
834             "bsol;" => "\\",
835             "bsolb;" => "\x{29c5}",
836             "bsolhsub;" => "\x{27c8}",
837             "bull;" => "\x{2022}",
838             "bullet;" => "\x{2022}",
839             "bump;" => "\x{224e}",
840             "bumpE;" => "\x{2aae}",
841             "bumpe;" => "\x{224f}",
842             "bumpeq;" => "\x{224f}",
843             "cacute;" => "\x{107}",
844             "cap;" => "\x{2229}",
845             "capand;" => "\x{2a44}",
846             "capbrcup;" => "\x{2a49}",
847             "capcap;" => "\x{2a4b}",
848             "capcup;" => "\x{2a47}",
849             "capdot;" => "\x{2a40}",
850             "caps;" => "\x{2229}\x{fe00}",
851             "caret;" => "\x{2041}",
852             "caron;" => "\x{2c7}",
853             "ccaps;" => "\x{2a4d}",
854             "ccaron;" => "\x{10d}",
855             "ccedil" => "\347",
856             "ccedil;" => "\347",
857             "ccirc;" => "\x{109}",
858             "ccups;" => "\x{2a4c}",
859             "ccupssm;" => "\x{2a50}",
860             "cdot;" => "\x{10b}",
861             "cedil" => "\270",
862             "cedil;" => "\270",
863             "cemptyv;" => "\x{29b2}",
864             "cent" => "\242",
865             "cent;" => "\242",
866             "centerdot;" => "\267",
867             "cfr;" => "\x{1d520}",
868             "chcy;" => "\x{447}",
869             "check;" => "\x{2713}",
870             "checkmark;" => "\x{2713}",
871             "chi;" => "\x{3c7}",
872             "cir;" => "\x{25cb}",
873             "cirE;" => "\x{29c3}",
874             "circ;" => "\x{2c6}",
875             "circeq;" => "\x{2257}",
876             "circlearrowleft;" => "\x{21ba}",
877             "circlearrowright;" => "\x{21bb}",
878             "circledR;" => "\256",
879             "circledS;" => "\x{24c8}",
880             "circledast;" => "\x{229b}",
881             "circledcirc;" => "\x{229a}",
882             "circleddash;" => "\x{229d}",
883             "cire;" => "\x{2257}",
884             "cirfnint;" => "\x{2a10}",
885             "cirmid;" => "\x{2aef}",
886             "cirscir;" => "\x{29c2}",
887             "clubs;" => "\x{2663}",
888             "clubsuit;" => "\x{2663}",
889             "colon;" => ":",
890             "colone;" => "\x{2254}",
891             "coloneq;" => "\x{2254}",
892             "comma;" => ",",
893             "commat;" => "\@",
894             "comp;" => "\x{2201}",
895             "compfn;" => "\x{2218}",
896             "complement;" => "\x{2201}",
897             "complexes;" => "\x{2102}",
898             "cong;" => "\x{2245}",
899             "congdot;" => "\x{2a6d}",
900             "conint;" => "\x{222e}",
901             "copf;" => "\x{1d554}",
902             "coprod;" => "\x{2210}",
903             "copy" => "\251",
904             "copy;" => "\251",
905             "copysr;" => "\x{2117}",
906             "crarr;" => "\x{21b5}",
907             "cross;" => "\x{2717}",
908             "cscr;" => "\x{1d4b8}",
909             "csub;" => "\x{2acf}",
910             "csube;" => "\x{2ad1}",
911             "csup;" => "\x{2ad0}",
912             "csupe;" => "\x{2ad2}",
913             "ctdot;" => "\x{22ef}",
914             "cudarrl;" => "\x{2938}",
915             "cudarrr;" => "\x{2935}",
916             "cuepr;" => "\x{22de}",
917             "cuesc;" => "\x{22df}",
918             "cularr;" => "\x{21b6}",
919             "cularrp;" => "\x{293d}",
920             "cup;" => "\x{222a}",
921             "cupbrcap;" => "\x{2a48}",
922             "cupcap;" => "\x{2a46}",
923             "cupcup;" => "\x{2a4a}",
924             "cupdot;" => "\x{228d}",
925             "cupor;" => "\x{2a45}",
926             "cups;" => "\x{222a}\x{fe00}",
927             "curarr;" => "\x{21b7}",
928             "curarrm;" => "\x{293c}",
929             "curlyeqprec;" => "\x{22de}",
930             "curlyeqsucc;" => "\x{22df}",
931             "curlyvee;" => "\x{22ce}",
932             "curlywedge;" => "\x{22cf}",
933             "curren" => "\244",
934             "curren;" => "\244",
935             "curvearrowleft;" => "\x{21b6}",
936             "curvearrowright;" => "\x{21b7}",
937             "cuvee;" => "\x{22ce}",
938             "cuwed;" => "\x{22cf}",
939             "cwconint;" => "\x{2232}",
940             "cwint;" => "\x{2231}",
941             "cylcty;" => "\x{232d}",
942             "dArr;" => "\x{21d3}",
943             "dHar;" => "\x{2965}",
944             "dagger;" => "\x{2020}",
945             "daleth;" => "\x{2138}",
946             "darr;" => "\x{2193}",
947             "dash;" => "\x{2010}",
948             "dashv;" => "\x{22a3}",
949             "dbkarow;" => "\x{290f}",
950             "dblac;" => "\x{2dd}",
951             "dcaron;" => "\x{10f}",
952             "dcy;" => "\x{434}",
953             "dd;" => "\x{2146}",
954             "ddagger;" => "\x{2021}",
955             "ddarr;" => "\x{21ca}",
956             "ddotseq;" => "\x{2a77}",
957             "deg" => "\260",
958             "deg;" => "\260",
959             "delta;" => "\x{3b4}",
960             "demptyv;" => "\x{29b1}",
961             "dfisht;" => "\x{297f}",
962             "dfr;" => "\x{1d521}",
963             "dharl;" => "\x{21c3}",
964             "dharr;" => "\x{21c2}",
965             "diam;" => "\x{22c4}",
966             "diamond;" => "\x{22c4}",
967             "diamondsuit;" => "\x{2666}",
968             "diams;" => "\x{2666}",
969             "die;" => "\250",
970             "digamma;" => "\x{3dd}",
971             "disin;" => "\x{22f2}",
972             "div;" => "\367",
973             "divide" => "\367",
974             "divide;" => "\367",
975             "divideontimes;" => "\x{22c7}",
976             "divonx;" => "\x{22c7}",
977             "djcy;" => "\x{452}",
978             "dlcorn;" => "\x{231e}",
979             "dlcrop;" => "\x{230d}",
980             "dollar;" => "\$",
981             "dopf;" => "\x{1d555}",
982             "dot;" => "\x{2d9}",
983             "doteq;" => "\x{2250}",
984             "doteqdot;" => "\x{2251}",
985             "dotminus;" => "\x{2238}",
986             "dotplus;" => "\x{2214}",
987             "dotsquare;" => "\x{22a1}",
988             "doublebarwedge;" => "\x{2306}",
989             "downarrow;" => "\x{2193}",
990             "downdownarrows;" => "\x{21ca}",
991             "downharpoonleft;" => "\x{21c3}",
992             "downharpoonright;" => "\x{21c2}",
993             "drbkarow;" => "\x{2910}",
994             "drcorn;" => "\x{231f}",
995             "drcrop;" => "\x{230c}",
996             "dscr;" => "\x{1d4b9}",
997             "dscy;" => "\x{455}",
998             "dsol;" => "\x{29f6}",
999             "dstrok;" => "\x{111}",
1000             "dtdot;" => "\x{22f1}",
1001             "dtri;" => "\x{25bf}",
1002             "dtrif;" => "\x{25be}",
1003             "duarr;" => "\x{21f5}",
1004             "duhar;" => "\x{296f}",
1005             "dwangle;" => "\x{29a6}",
1006             "dzcy;" => "\x{45f}",
1007             "dzigrarr;" => "\x{27ff}",
1008             "eDDot;" => "\x{2a77}",
1009             "eDot;" => "\x{2251}",
1010             "eacute" => "\351",
1011             "eacute;" => "\351",
1012             "easter;" => "\x{2a6e}",
1013             "ecaron;" => "\x{11b}",
1014             "ecir;" => "\x{2256}",
1015             "ecirc" => "\352",
1016             "ecirc;" => "\352",
1017             "ecolon;" => "\x{2255}",
1018             "ecy;" => "\x{44d}",
1019             "edot;" => "\x{117}",
1020             "ee;" => "\x{2147}",
1021             "efDot;" => "\x{2252}",
1022             "efr;" => "\x{1d522}",
1023             "eg;" => "\x{2a9a}",
1024             "egrave" => "\350",
1025             "egrave;" => "\350",
1026             "egs;" => "\x{2a96}",
1027             "egsdot;" => "\x{2a98}",
1028             "el;" => "\x{2a99}",
1029             "elinters;" => "\x{23e7}",
1030             "ell;" => "\x{2113}",
1031             "els;" => "\x{2a95}",
1032             "elsdot;" => "\x{2a97}",
1033             "emacr;" => "\x{113}",
1034             "empty;" => "\x{2205}",
1035             "emptyset;" => "\x{2205}",
1036             "emptyv;" => "\x{2205}",
1037             "emsp13;" => "\x{2004}",
1038             "emsp14;" => "\x{2005}",
1039             "emsp;" => "\x{2003}",
1040             "eng;" => "\x{14b}",
1041             "ensp;" => "\x{2002}",
1042             "eogon;" => "\x{119}",
1043             "eopf;" => "\x{1d556}",
1044             "epar;" => "\x{22d5}",
1045             "eparsl;" => "\x{29e3}",
1046             "eplus;" => "\x{2a71}",
1047             "epsi;" => "\x{3b5}",
1048             "epsilon;" => "\x{3b5}",
1049             "epsiv;" => "\x{3f5}",
1050             "eqcirc;" => "\x{2256}",
1051             "eqcolon;" => "\x{2255}",
1052             "eqsim;" => "\x{2242}",
1053             "eqslantgtr;" => "\x{2a96}",
1054             "eqslantless;" => "\x{2a95}",
1055             "equals;" => "=",
1056             "equest;" => "\x{225f}",
1057             "equiv;" => "\x{2261}",
1058             "equivDD;" => "\x{2a78}",
1059             "eqvparsl;" => "\x{29e5}",
1060             "erDot;" => "\x{2253}",
1061             "erarr;" => "\x{2971}",
1062             "escr;" => "\x{212f}",
1063             "esdot;" => "\x{2250}",
1064             "esim;" => "\x{2242}",
1065             "eta;" => "\x{3b7}",
1066             "eth" => "\360",
1067             "eth;" => "\360",
1068             "euml" => "\353",
1069             "euml;" => "\353",
1070             "euro;" => "\x{20ac}",
1071             "excl;" => "!",
1072             "exist;" => "\x{2203}",
1073             "expectation;" => "\x{2130}",
1074             "exponentiale;" => "\x{2147}",
1075             "fallingdotseq;" => "\x{2252}",
1076             "fcy;" => "\x{444}",
1077             "female;" => "\x{2640}",
1078             "ffilig;" => "\x{fb03}",
1079             "fflig;" => "\x{fb00}",
1080             "ffllig;" => "\x{fb04}",
1081             "ffr;" => "\x{1d523}",
1082             "filig;" => "\x{fb01}",
1083             "fjlig;" => "fj",
1084             "flat;" => "\x{266d}",
1085             "fllig;" => "\x{fb02}",
1086             "fltns;" => "\x{25b1}",
1087             "fnof;" => "\x{192}",
1088             "fopf;" => "\x{1d557}",
1089             "forall;" => "\x{2200}",
1090             "fork;" => "\x{22d4}",
1091             "forkv;" => "\x{2ad9}",
1092             "fpartint;" => "\x{2a0d}",
1093             "frac12" => "\275",
1094             "frac12;" => "\275",
1095             "frac13;" => "\x{2153}",
1096             "frac14" => "\274",
1097             "frac14;" => "\274",
1098             "frac15;" => "\x{2155}",
1099             "frac16;" => "\x{2159}",
1100             "frac18;" => "\x{215b}",
1101             "frac23;" => "\x{2154}",
1102             "frac25;" => "\x{2156}",
1103             "frac34" => "\276",
1104             "frac34;" => "\276",
1105             "frac35;" => "\x{2157}",
1106             "frac38;" => "\x{215c}",
1107             "frac45;" => "\x{2158}",
1108             "frac56;" => "\x{215a}",
1109             "frac58;" => "\x{215d}",
1110             "frac78;" => "\x{215e}",
1111             "frasl;" => "\x{2044}",
1112             "frown;" => "\x{2322}",
1113             "fscr;" => "\x{1d4bb}",
1114             "gE;" => "\x{2267}",
1115             "gEl;" => "\x{2a8c}",
1116             "gacute;" => "\x{1f5}",
1117             "gamma;" => "\x{3b3}",
1118             "gammad;" => "\x{3dd}",
1119             "gap;" => "\x{2a86}",
1120             "gbreve;" => "\x{11f}",
1121             "gcirc;" => "\x{11d}",
1122             "gcy;" => "\x{433}",
1123             "gdot;" => "\x{121}",
1124             "ge;" => "\x{2265}",
1125             "gel;" => "\x{22db}",
1126             "geq;" => "\x{2265}",
1127             "geqq;" => "\x{2267}",
1128             "geqslant;" => "\x{2a7e}",
1129             "ges;" => "\x{2a7e}",
1130             "gescc;" => "\x{2aa9}",
1131             "gesdot;" => "\x{2a80}",
1132             "gesdoto;" => "\x{2a82}",
1133             "gesdotol;" => "\x{2a84}",
1134             "gesl;" => "\x{22db}\x{fe00}",
1135             "gesles;" => "\x{2a94}",
1136             "gfr;" => "\x{1d524}",
1137             "gg;" => "\x{226b}",
1138             "ggg;" => "\x{22d9}",
1139             "gimel;" => "\x{2137}",
1140             "gjcy;" => "\x{453}",
1141             "gl;" => "\x{2277}",
1142             "glE;" => "\x{2a92}",
1143             "gla;" => "\x{2aa5}",
1144             "glj;" => "\x{2aa4}",
1145             "gnE;" => "\x{2269}",
1146             "gnap;" => "\x{2a8a}",
1147             "gnapprox;" => "\x{2a8a}",
1148             "gne;" => "\x{2a88}",
1149             "gneq;" => "\x{2a88}",
1150             "gneqq;" => "\x{2269}",
1151             "gnsim;" => "\x{22e7}",
1152             "gopf;" => "\x{1d558}",
1153             "grave;" => "`",
1154             "gscr;" => "\x{210a}",
1155             "gsim;" => "\x{2273}",
1156             "gsime;" => "\x{2a8e}",
1157             "gsiml;" => "\x{2a90}",
1158             "gt" => ">",
1159             "gt;" => ">",
1160             "gtcc;" => "\x{2aa7}",
1161             "gtcir;" => "\x{2a7a}",
1162             "gtdot;" => "\x{22d7}",
1163             "gtlPar;" => "\x{2995}",
1164             "gtquest;" => "\x{2a7c}",
1165             "gtrapprox;" => "\x{2a86}",
1166             "gtrarr;" => "\x{2978}",
1167             "gtrdot;" => "\x{22d7}",
1168             "gtreqless;" => "\x{22db}",
1169             "gtreqqless;" => "\x{2a8c}",
1170             "gtrless;" => "\x{2277}",
1171             "gtrsim;" => "\x{2273}",
1172             "gvertneqq;" => "\x{2269}\x{fe00}",
1173             "gvnE;" => "\x{2269}\x{fe00}",
1174             "hArr;" => "\x{21d4}",
1175             "hairsp;" => "\x{200a}",
1176             "half;" => "\275",
1177             "hamilt;" => "\x{210b}",
1178             "hardcy;" => "\x{44a}",
1179             "harr;" => "\x{2194}",
1180             "harrcir;" => "\x{2948}",
1181             "harrw;" => "\x{21ad}",
1182             "hbar;" => "\x{210f}",
1183             "hcirc;" => "\x{125}",
1184             "hearts;" => "\x{2665}",
1185             "heartsuit;" => "\x{2665}",
1186             "hellip;" => "\x{2026}",
1187             "hercon;" => "\x{22b9}",
1188             "hfr;" => "\x{1d525}",
1189             "hksearow;" => "\x{2925}",
1190             "hkswarow;" => "\x{2926}",
1191             "hoarr;" => "\x{21ff}",
1192             "homtht;" => "\x{223b}",
1193             "hookleftarrow;" => "\x{21a9}",
1194             "hookrightarrow;" => "\x{21aa}",
1195             "hopf;" => "\x{1d559}",
1196             "horbar;" => "\x{2015}",
1197             "hscr;" => "\x{1d4bd}",
1198             "hslash;" => "\x{210f}",
1199             "hstrok;" => "\x{127}",
1200             "hybull;" => "\x{2043}",
1201             "hyphen;" => "\x{2010}",
1202             "iacute" => "\355",
1203             "iacute;" => "\355",
1204             "ic;" => "\x{2063}",
1205             "icirc" => "\356",
1206             "icirc;" => "\356",
1207             "icy;" => "\x{438}",
1208             "iecy;" => "\x{435}",
1209             "iexcl" => "\241",
1210             "iexcl;" => "\241",
1211             "iff;" => "\x{21d4}",
1212             "ifr;" => "\x{1d526}",
1213             "igrave" => "\354",
1214             "igrave;" => "\354",
1215             "ii;" => "\x{2148}",
1216             "iiiint;" => "\x{2a0c}",
1217             "iiint;" => "\x{222d}",
1218             "iinfin;" => "\x{29dc}",
1219             "iiota;" => "\x{2129}",
1220             "ijlig;" => "\x{133}",
1221             "imacr;" => "\x{12b}",
1222             "image;" => "\x{2111}",
1223             "imagline;" => "\x{2110}",
1224             "imagpart;" => "\x{2111}",
1225             "imath;" => "\x{131}",
1226             "imof;" => "\x{22b7}",
1227             "imped;" => "\x{1b5}",
1228             "in;" => "\x{2208}",
1229             "incare;" => "\x{2105}",
1230             "infin;" => "\x{221e}",
1231             "infintie;" => "\x{29dd}",
1232             "inodot;" => "\x{131}",
1233             "int;" => "\x{222b}",
1234             "intcal;" => "\x{22ba}",
1235             "integers;" => "\x{2124}",
1236             "intercal;" => "\x{22ba}",
1237             "intlarhk;" => "\x{2a17}",
1238             "intprod;" => "\x{2a3c}",
1239             "iocy;" => "\x{451}",
1240             "iogon;" => "\x{12f}",
1241             "iopf;" => "\x{1d55a}",
1242             "iota;" => "\x{3b9}",
1243             "iprod;" => "\x{2a3c}",
1244             "iquest" => "\277",
1245             "iquest;" => "\277",
1246             "iscr;" => "\x{1d4be}",
1247             "isin;" => "\x{2208}",
1248             "isinE;" => "\x{22f9}",
1249             "isindot;" => "\x{22f5}",
1250             "isins;" => "\x{22f4}",
1251             "isinsv;" => "\x{22f3}",
1252             "isinv;" => "\x{2208}",
1253             "it;" => "\x{2062}",
1254             "itilde;" => "\x{129}",
1255             "iukcy;" => "\x{456}",
1256             "iuml" => "\357",
1257             "iuml;" => "\357",
1258             "jcirc;" => "\x{135}",
1259             "jcy;" => "\x{439}",
1260             "jfr;" => "\x{1d527}",
1261             "jmath;" => "\x{237}",
1262             "jopf;" => "\x{1d55b}",
1263             "jscr;" => "\x{1d4bf}",
1264             "jsercy;" => "\x{458}",
1265             "jukcy;" => "\x{454}",
1266             "kappa;" => "\x{3ba}",
1267             "kappav;" => "\x{3f0}",
1268             "kcedil;" => "\x{137}",
1269             "kcy;" => "\x{43a}",
1270             "kfr;" => "\x{1d528}",
1271             "kgreen;" => "\x{138}",
1272             "khcy;" => "\x{445}",
1273             "kjcy;" => "\x{45c}",
1274             "kopf;" => "\x{1d55c}",
1275             "kscr;" => "\x{1d4c0}",
1276             "lAarr;" => "\x{21da}",
1277             "lArr;" => "\x{21d0}",
1278             "lAtail;" => "\x{291b}",
1279             "lBarr;" => "\x{290e}",
1280             "lE;" => "\x{2266}",
1281             "lEg;" => "\x{2a8b}",
1282             "lHar;" => "\x{2962}",
1283             "lacute;" => "\x{13a}",
1284             "laemptyv;" => "\x{29b4}",
1285             "lagran;" => "\x{2112}",
1286             "lambda;" => "\x{3bb}",
1287             "lang;" => "\x{27e8}",
1288             "langd;" => "\x{2991}",
1289             "langle;" => "\x{27e8}",
1290             "lap;" => "\x{2a85}",
1291             "laquo" => "\253",
1292             "laquo;" => "\253",
1293             "larr;" => "\x{2190}",
1294             "larrb;" => "\x{21e4}",
1295             "larrbfs;" => "\x{291f}",
1296             "larrfs;" => "\x{291d}",
1297             "larrhk;" => "\x{21a9}",
1298             "larrlp;" => "\x{21ab}",
1299             "larrpl;" => "\x{2939}",
1300             "larrsim;" => "\x{2973}",
1301             "larrtl;" => "\x{21a2}",
1302             "lat;" => "\x{2aab}",
1303             "latail;" => "\x{2919}",
1304             "late;" => "\x{2aad}",
1305             "lates;" => "\x{2aad}\x{fe00}",
1306             "lbarr;" => "\x{290c}",
1307             "lbbrk;" => "\x{2772}",
1308             "lbrace;" => "{",
1309             "lbrack;" => "[",
1310             "lbrke;" => "\x{298b}",
1311             "lbrksld;" => "\x{298f}",
1312             "lbrkslu;" => "\x{298d}",
1313             "lcaron;" => "\x{13e}",
1314             "lcedil;" => "\x{13c}",
1315             "lceil;" => "\x{2308}",
1316             "lcub;" => "{",
1317             "lcy;" => "\x{43b}",
1318             "ldca;" => "\x{2936}",
1319             "ldquo;" => "\x{201c}",
1320             "ldquor;" => "\x{201e}",
1321             "ldrdhar;" => "\x{2967}",
1322             "ldrushar;" => "\x{294b}",
1323             "ldsh;" => "\x{21b2}",
1324             "le;" => "\x{2264}",
1325             "leftarrow;" => "\x{2190}",
1326             "leftarrowtail;" => "\x{21a2}",
1327             "leftharpoondown;" => "\x{21bd}",
1328             "leftharpoonup;" => "\x{21bc}",
1329             "leftleftarrows;" => "\x{21c7}",
1330             "leftrightarrow;" => "\x{2194}",
1331             "leftrightarrows;" => "\x{21c6}",
1332             "leftrightharpoons;" => "\x{21cb}",
1333             "leftrightsquigarrow;" => "\x{21ad}",
1334             "leftthreetimes;" => "\x{22cb}",
1335             "leg;" => "\x{22da}",
1336             "leq;" => "\x{2264}",
1337             "leqq;" => "\x{2266}",
1338             "leqslant;" => "\x{2a7d}",
1339             "les;" => "\x{2a7d}",
1340             "lescc;" => "\x{2aa8}",
1341             "lesdot;" => "\x{2a7f}",
1342             "lesdoto;" => "\x{2a81}",
1343             "lesdotor;" => "\x{2a83}",
1344             "lesg;" => "\x{22da}\x{fe00}",
1345             "lesges;" => "\x{2a93}",
1346             "lessapprox;" => "\x{2a85}",
1347             "lessdot;" => "\x{22d6}",
1348             "lesseqgtr;" => "\x{22da}",
1349             "lesseqqgtr;" => "\x{2a8b}",
1350             "lessgtr;" => "\x{2276}",
1351             "lesssim;" => "\x{2272}",
1352             "lfisht;" => "\x{297c}",
1353             "lfloor;" => "\x{230a}",
1354             "lfr;" => "\x{1d529}",
1355             "lg;" => "\x{2276}",
1356             "lgE;" => "\x{2a91}",
1357             "lhard;" => "\x{21bd}",
1358             "lharu;" => "\x{21bc}",
1359             "lharul;" => "\x{296a}",
1360             "lhblk;" => "\x{2584}",
1361             "ljcy;" => "\x{459}",
1362             "ll;" => "\x{226a}",
1363             "llarr;" => "\x{21c7}",
1364             "llcorner;" => "\x{231e}",
1365             "llhard;" => "\x{296b}",
1366             "lltri;" => "\x{25fa}",
1367             "lmidot;" => "\x{140}",
1368             "lmoust;" => "\x{23b0}",
1369             "lmoustache;" => "\x{23b0}",
1370             "lnE;" => "\x{2268}",
1371             "lnap;" => "\x{2a89}",
1372             "lnapprox;" => "\x{2a89}",
1373             "lne;" => "\x{2a87}",
1374             "lneq;" => "\x{2a87}",
1375             "lneqq;" => "\x{2268}",
1376             "lnsim;" => "\x{22e6}",
1377             "loang;" => "\x{27ec}",
1378             "loarr;" => "\x{21fd}",
1379             "lobrk;" => "\x{27e6}",
1380             "longleftarrow;" => "\x{27f5}",
1381             "longleftrightarrow;" => "\x{27f7}",
1382             "longmapsto;" => "\x{27fc}",
1383             "longrightarrow;" => "\x{27f6}",
1384             "looparrowleft;" => "\x{21ab}",
1385             "looparrowright;" => "\x{21ac}",
1386             "lopar;" => "\x{2985}",
1387             "lopf;" => "\x{1d55d}",
1388             "loplus;" => "\x{2a2d}",
1389             "lotimes;" => "\x{2a34}",
1390             "lowast;" => "\x{2217}",
1391             "lowbar;" => "_",
1392             "loz;" => "\x{25ca}",
1393             "lozenge;" => "\x{25ca}",
1394             "lozf;" => "\x{29eb}",
1395             "lpar;" => "(",
1396             "lparlt;" => "\x{2993}",
1397             "lrarr;" => "\x{21c6}",
1398             "lrcorner;" => "\x{231f}",
1399             "lrhar;" => "\x{21cb}",
1400             "lrhard;" => "\x{296d}",
1401             "lrm;" => "\x{200e}",
1402             "lrtri;" => "\x{22bf}",
1403             "lsaquo;" => "\x{2039}",
1404             "lscr;" => "\x{1d4c1}",
1405             "lsh;" => "\x{21b0}",
1406             "lsim;" => "\x{2272}",
1407             "lsime;" => "\x{2a8d}",
1408             "lsimg;" => "\x{2a8f}",
1409             "lsqb;" => "[",
1410             "lsquo;" => "\x{2018}",
1411             "lsquor;" => "\x{201a}",
1412             "lstrok;" => "\x{142}",
1413             "lt" => "<",
1414             "lt;" => "<",
1415             "ltcc;" => "\x{2aa6}",
1416             "ltcir;" => "\x{2a79}",
1417             "ltdot;" => "\x{22d6}",
1418             "lthree;" => "\x{22cb}",
1419             "ltimes;" => "\x{22c9}",
1420             "ltlarr;" => "\x{2976}",
1421             "ltquest;" => "\x{2a7b}",
1422             "ltrPar;" => "\x{2996}",
1423             "ltri;" => "\x{25c3}",
1424             "ltrie;" => "\x{22b4}",
1425             "ltrif;" => "\x{25c2}",
1426             "lurdshar;" => "\x{294a}",
1427             "luruhar;" => "\x{2966}",
1428             "lvertneqq;" => "\x{2268}\x{fe00}",
1429             "lvnE;" => "\x{2268}\x{fe00}",
1430             "mDDot;" => "\x{223a}",
1431             "macr" => "\257",
1432             "macr;" => "\257",
1433             "male;" => "\x{2642}",
1434             "malt;" => "\x{2720}",
1435             "maltese;" => "\x{2720}",
1436             "map;" => "\x{21a6}",
1437             "mapsto;" => "\x{21a6}",
1438             "mapstodown;" => "\x{21a7}",
1439             "mapstoleft;" => "\x{21a4}",
1440             "mapstoup;" => "\x{21a5}",
1441             "marker;" => "\x{25ae}",
1442             "mcomma;" => "\x{2a29}",
1443             "mcy;" => "\x{43c}",
1444             "mdash;" => "\x{2014}",
1445             "measuredangle;" => "\x{2221}",
1446             "mfr;" => "\x{1d52a}",
1447             "mho;" => "\x{2127}",
1448             "micro" => "\265",
1449             "micro;" => "\265",
1450             "mid;" => "\x{2223}",
1451             "midast;" => "*",
1452             "midcir;" => "\x{2af0}",
1453             "middot" => "\267",
1454             "middot;" => "\267",
1455             "minus;" => "\x{2212}",
1456             "minusb;" => "\x{229f}",
1457             "minusd;" => "\x{2238}",
1458             "minusdu;" => "\x{2a2a}",
1459             "mlcp;" => "\x{2adb}",
1460             "mldr;" => "\x{2026}",
1461             "mnplus;" => "\x{2213}",
1462             "models;" => "\x{22a7}",
1463             "mopf;" => "\x{1d55e}",
1464             "mp;" => "\x{2213}",
1465             "mscr;" => "\x{1d4c2}",
1466             "mstpos;" => "\x{223e}",
1467             "mu;" => "\x{3bc}",
1468             "multimap;" => "\x{22b8}",
1469             "mumap;" => "\x{22b8}",
1470             "nGg;" => "\x{22d9}\x{338}",
1471             "nGt;" => "\x{226b}\x{20d2}",
1472             "nGtv;" => "\x{226b}\x{338}",
1473             "nLeftarrow;" => "\x{21cd}",
1474             "nLeftrightarrow;" => "\x{21ce}",
1475             "nLl;" => "\x{22d8}\x{338}",
1476             "nLt;" => "\x{226a}\x{20d2}",
1477             "nLtv;" => "\x{226a}\x{338}",
1478             "nRightarrow;" => "\x{21cf}",
1479             "nVDash;" => "\x{22af}",
1480             "nVdash;" => "\x{22ae}",
1481             "nabla;" => "\x{2207}",
1482             "nacute;" => "\x{144}",
1483             "nang;" => "\x{2220}\x{20d2}",
1484             "nap;" => "\x{2249}",
1485             "napE;" => "\x{2a70}\x{338}",
1486             "napid;" => "\x{224b}\x{338}",
1487             "napos;" => "\x{149}",
1488             "napprox;" => "\x{2249}",
1489             "natur;" => "\x{266e}",
1490             "natural;" => "\x{266e}",
1491             "naturals;" => "\x{2115}",
1492             "nbsp" => "\240",
1493             "nbsp;" => "\240",
1494             "nbump;" => "\x{224e}\x{338}",
1495             "nbumpe;" => "\x{224f}\x{338}",
1496             "ncap;" => "\x{2a43}",
1497             "ncaron;" => "\x{148}",
1498             "ncedil;" => "\x{146}",
1499             "ncong;" => "\x{2247}",
1500             "ncongdot;" => "\x{2a6d}\x{338}",
1501             "ncup;" => "\x{2a42}",
1502             "ncy;" => "\x{43d}",
1503             "ndash;" => "\x{2013}",
1504             "ne;" => "\x{2260}",
1505             "neArr;" => "\x{21d7}",
1506             "nearhk;" => "\x{2924}",
1507             "nearr;" => "\x{2197}",
1508             "nearrow;" => "\x{2197}",
1509             "nedot;" => "\x{2250}\x{338}",
1510             "nequiv;" => "\x{2262}",
1511             "nesear;" => "\x{2928}",
1512             "nesim;" => "\x{2242}\x{338}",
1513             "nexist;" => "\x{2204}",
1514             "nexists;" => "\x{2204}",
1515             "nfr;" => "\x{1d52b}",
1516             "ngE;" => "\x{2267}\x{338}",
1517             "nge;" => "\x{2271}",
1518             "ngeq;" => "\x{2271}",
1519             "ngeqq;" => "\x{2267}\x{338}",
1520             "ngeqslant;" => "\x{2a7e}\x{338}",
1521             "nges;" => "\x{2a7e}\x{338}",
1522             "ngsim;" => "\x{2275}",
1523             "ngt;" => "\x{226f}",
1524             "ngtr;" => "\x{226f}",
1525             "nhArr;" => "\x{21ce}",
1526             "nharr;" => "\x{21ae}",
1527             "nhpar;" => "\x{2af2}",
1528             "ni;" => "\x{220b}",
1529             "nis;" => "\x{22fc}",
1530             "nisd;" => "\x{22fa}",
1531             "niv;" => "\x{220b}",
1532             "njcy;" => "\x{45a}",
1533             "nlArr;" => "\x{21cd}",
1534             "nlE;" => "\x{2266}\x{338}",
1535             "nlarr;" => "\x{219a}",
1536             "nldr;" => "\x{2025}",
1537             "nle;" => "\x{2270}",
1538             "nleftarrow;" => "\x{219a}",
1539             "nleftrightarrow;" => "\x{21ae}",
1540             "nleq;" => "\x{2270}",
1541             "nleqq;" => "\x{2266}\x{338}",
1542             "nleqslant;" => "\x{2a7d}\x{338}",
1543             "nles;" => "\x{2a7d}\x{338}",
1544             "nless;" => "\x{226e}",
1545             "nlsim;" => "\x{2274}",
1546             "nlt;" => "\x{226e}",
1547             "nltri;" => "\x{22ea}",
1548             "nltrie;" => "\x{22ec}",
1549             "nmid;" => "\x{2224}",
1550             "nopf;" => "\x{1d55f}",
1551             "not" => "\254",
1552             "not;" => "\254",
1553             "notin;" => "\x{2209}",
1554             "notinE;" => "\x{22f9}\x{338}",
1555             "notindot;" => "\x{22f5}\x{338}",
1556             "notinva;" => "\x{2209}",
1557             "notinvb;" => "\x{22f7}",
1558             "notinvc;" => "\x{22f6}",
1559             "notni;" => "\x{220c}",
1560             "notniva;" => "\x{220c}",
1561             "notnivb;" => "\x{22fe}",
1562             "notnivc;" => "\x{22fd}",
1563             "npar;" => "\x{2226}",
1564             "nparallel;" => "\x{2226}",
1565             "nparsl;" => "\x{2afd}\x{20e5}",
1566             "npart;" => "\x{2202}\x{338}",
1567             "npolint;" => "\x{2a14}",
1568             "npr;" => "\x{2280}",
1569             "nprcue;" => "\x{22e0}",
1570             "npre;" => "\x{2aaf}\x{338}",
1571             "nprec;" => "\x{2280}",
1572             "npreceq;" => "\x{2aaf}\x{338}",
1573             "nrArr;" => "\x{21cf}",
1574             "nrarr;" => "\x{219b}",
1575             "nrarrc;" => "\x{2933}\x{338}",
1576             "nrarrw;" => "\x{219d}\x{338}",
1577             "nrightarrow;" => "\x{219b}",
1578             "nrtri;" => "\x{22eb}",
1579             "nrtrie;" => "\x{22ed}",
1580             "nsc;" => "\x{2281}",
1581             "nsccue;" => "\x{22e1}",
1582             "nsce;" => "\x{2ab0}\x{338}",
1583             "nscr;" => "\x{1d4c3}",
1584             "nshortmid;" => "\x{2224}",
1585             "nshortparallel;" => "\x{2226}",
1586             "nsim;" => "\x{2241}",
1587             "nsime;" => "\x{2244}",
1588             "nsimeq;" => "\x{2244}",
1589             "nsmid;" => "\x{2224}",
1590             "nspar;" => "\x{2226}",
1591             "nsqsube;" => "\x{22e2}",
1592             "nsqsupe;" => "\x{22e3}",
1593             "nsub;" => "\x{2284}",
1594             "nsubE;" => "\x{2ac5}\x{338}",
1595             "nsube;" => "\x{2288}",
1596             "nsubset;" => "\x{2282}\x{20d2}",
1597             "nsubseteq;" => "\x{2288}",
1598             "nsubseteqq;" => "\x{2ac5}\x{338}",
1599             "nsucc;" => "\x{2281}",
1600             "nsucceq;" => "\x{2ab0}\x{338}",
1601             "nsup;" => "\x{2285}",
1602             "nsupE;" => "\x{2ac6}\x{338}",
1603             "nsupe;" => "\x{2289}",
1604             "nsupset;" => "\x{2283}\x{20d2}",
1605             "nsupseteq;" => "\x{2289}",
1606             "nsupseteqq;" => "\x{2ac6}\x{338}",
1607             "ntgl;" => "\x{2279}",
1608             "ntilde" => "\361",
1609             "ntilde;" => "\361",
1610             "ntlg;" => "\x{2278}",
1611             "ntriangleleft;" => "\x{22ea}",
1612             "ntrianglelefteq;" => "\x{22ec}",
1613             "ntriangleright;" => "\x{22eb}",
1614             "ntrianglerighteq;" => "\x{22ed}",
1615             "nu;" => "\x{3bd}",
1616             "num;" => "#",
1617             "numero;" => "\x{2116}",
1618             "numsp;" => "\x{2007}",
1619             "nvDash;" => "\x{22ad}",
1620             "nvHarr;" => "\x{2904}",
1621             "nvap;" => "\x{224d}\x{20d2}",
1622             "nvdash;" => "\x{22ac}",
1623             "nvge;" => "\x{2265}\x{20d2}",
1624             "nvgt;" => ">\x{20d2}",
1625             "nvinfin;" => "\x{29de}",
1626             "nvlArr;" => "\x{2902}",
1627             "nvle;" => "\x{2264}\x{20d2}",
1628             "nvlt;" => "<\x{20d2}",
1629             "nvltrie;" => "\x{22b4}\x{20d2}",
1630             "nvrArr;" => "\x{2903}",
1631             "nvrtrie;" => "\x{22b5}\x{20d2}",
1632             "nvsim;" => "\x{223c}\x{20d2}",
1633             "nwArr;" => "\x{21d6}",
1634             "nwarhk;" => "\x{2923}",
1635             "nwarr;" => "\x{2196}",
1636             "nwarrow;" => "\x{2196}",
1637             "nwnear;" => "\x{2927}",
1638             "oS;" => "\x{24c8}",
1639             "oacute" => "\363",
1640             "oacute;" => "\363",
1641             "oast;" => "\x{229b}",
1642             "ocir;" => "\x{229a}",
1643             "ocirc" => "\364",
1644             "ocirc;" => "\364",
1645             "ocy;" => "\x{43e}",
1646             "odash;" => "\x{229d}",
1647             "odblac;" => "\x{151}",
1648             "odiv;" => "\x{2a38}",
1649             "odot;" => "\x{2299}",
1650             "odsold;" => "\x{29bc}",
1651             "oelig;" => "\x{153}",
1652             "ofcir;" => "\x{29bf}",
1653             "ofr;" => "\x{1d52c}",
1654             "ogon;" => "\x{2db}",
1655             "ograve" => "\362",
1656             "ograve;" => "\362",
1657             "ogt;" => "\x{29c1}",
1658             "ohbar;" => "\x{29b5}",
1659             "ohm;" => "\x{3a9}",
1660             "oint;" => "\x{222e}",
1661             "olarr;" => "\x{21ba}",
1662             "olcir;" => "\x{29be}",
1663             "olcross;" => "\x{29bb}",
1664             "oline;" => "\x{203e}",
1665             "olt;" => "\x{29c0}",
1666             "omacr;" => "\x{14d}",
1667             "omega;" => "\x{3c9}",
1668             "omicron;" => "\x{3bf}",
1669             "omid;" => "\x{29b6}",
1670             "ominus;" => "\x{2296}",
1671             "oopf;" => "\x{1d560}",
1672             "opar;" => "\x{29b7}",
1673             "operp;" => "\x{29b9}",
1674             "oplus;" => "\x{2295}",
1675             "or;" => "\x{2228}",
1676             "orarr;" => "\x{21bb}",
1677             "ord;" => "\x{2a5d}",
1678             "order;" => "\x{2134}",
1679             "orderof;" => "\x{2134}",
1680             "ordf" => "\252",
1681             "ordf;" => "\252",
1682             "ordm" => "\272",
1683             "ordm;" => "\272",
1684             "origof;" => "\x{22b6}",
1685             "oror;" => "\x{2a56}",
1686             "orslope;" => "\x{2a57}",
1687             "orv;" => "\x{2a5b}",
1688             "oscr;" => "\x{2134}",
1689             "oslash" => "\370",
1690             "oslash;" => "\370",
1691             "osol;" => "\x{2298}",
1692             "otilde" => "\365",
1693             "otilde;" => "\365",
1694             "otimes;" => "\x{2297}",
1695             "otimesas;" => "\x{2a36}",
1696             "ouml" => "\366",
1697             "ouml;" => "\366",
1698             "ovbar;" => "\x{233d}",
1699             "par;" => "\x{2225}",
1700             "para" => "\266",
1701             "para;" => "\266",
1702             "parallel;" => "\x{2225}",
1703             "parsim;" => "\x{2af3}",
1704             "parsl;" => "\x{2afd}",
1705             "part;" => "\x{2202}",
1706             "pcy;" => "\x{43f}",
1707             "percnt;" => "%",
1708             "period;" => ".",
1709             "permil;" => "\x{2030}",
1710             "perp;" => "\x{22a5}",
1711             "pertenk;" => "\x{2031}",
1712             "pfr;" => "\x{1d52d}",
1713             "phi;" => "\x{3c6}",
1714             "phiv;" => "\x{3c5}",
1715             "phmmat;" => "\x{2133}",
1716             "phone;" => "\x{260e}",
1717             "pi;" => "\x{3c0}",
1718             "pitchfork;" => "\x{22d4}",
1719             "piv;" => "\x{3d6}",
1720             "planck;" => "\x{210f}",
1721             "planckh;" => "\x{210e}",
1722             "plankv;" => "\x{210f}",
1723             "plus;" => "+",
1724             "plusacir;" => "\x{2a23}",
1725             "plusb;" => "\x{229e}",
1726             "pluscir;" => "\x{2a22}",
1727             "plusdo;" => "\x{2214}",
1728             "plusdu;" => "\x{2a25}",
1729             "pluse;" => "\x{2a72}",
1730             "plusmn" => "\261",
1731             "plusmn;" => "\261",
1732             "plussim;" => "\x{2a26}",
1733             "plustwo;" => "\x{2a27}",
1734             "pm;" => "\261",
1735             "pointint;" => "\x{2a15}",
1736             "popf;" => "\x{1d561}",
1737             "pound" => "\243",
1738             "pound;" => "\243",
1739             "pr;" => "\x{227a}",
1740             "prE;" => "\x{2ab3}",
1741             "prap;" => "\x{2ab7}",
1742             "prcue;" => "\x{227c}",
1743             "pre;" => "\x{2aaf}",
1744             "prec;" => "\x{227a}",
1745             "precapprox;" => "\x{2ab7}",
1746             "preccurlyeq;" => "\x{227c}",
1747             "preceq;" => "\x{2aaf}",
1748             "precnapprox;" => "\x{2ab9}",
1749             "precneqq;" => "\x{2ab5}",
1750             "precnsim;" => "\x{22e8}",
1751             "precsim;" => "\x{227e}",
1752             "prime;" => "\x{2032}",
1753             "primes;" => "\x{2119}",
1754             "prnE;" => "\x{2ab5}",
1755             "prnap;" => "\x{2ab9}",
1756             "prnsim;" => "\x{22e8}",
1757             "prod;" => "\x{220f}",
1758             "profalar;" => "\x{232e}",
1759             "profline;" => "\x{2312}",
1760             "profsurf;" => "\x{2313}",
1761             "prop;" => "\x{221d}",
1762             "propto;" => "\x{221d}",
1763             "prsim;" => "\x{227e}",
1764             "prurel;" => "\x{22b0}",
1765             "pscr;" => "\x{1d4c5}",
1766             "psi;" => "\x{3c8}",
1767             "puncsp;" => "\x{2008}",
1768             "qfr;" => "\x{1d52e}",
1769             "qint;" => "\x{2a0c}",
1770             "qopf;" => "\x{1d562}",
1771             "qprime;" => "\x{2057}",
1772             "qscr;" => "\x{1d4c6}",
1773             "quaternions;" => "\x{210d}",
1774             "quatint;" => "\x{2a16}",
1775             "quest;" => "?",
1776             "questeq;" => "\x{225f}",
1777             "quot" => "\"",
1778             "quot;" => "\"",
1779             "rAarr;" => "\x{21db}",
1780             "rArr;" => "\x{21d2}",
1781             "rAtail;" => "\x{291c}",
1782             "rBarr;" => "\x{290f}",
1783             "rHar;" => "\x{2964}",
1784             "race;" => "\x{223d}\x{331}",
1785             "racute;" => "\x{155}",
1786             "radic;" => "\x{221a}",
1787             "raemptyv;" => "\x{29b3}",
1788             "rang;" => "\x{27e9}",
1789             "rangd;" => "\x{2992}",
1790             "range;" => "\x{29a5}",
1791             "rangle;" => "\x{27e9}",
1792             "raquo" => "\273",
1793             "raquo;" => "\273",
1794             "rarr;" => "\x{2192}",
1795             "rarrap;" => "\x{2975}",
1796             "rarrb;" => "\x{21e5}",
1797             "rarrbfs;" => "\x{2920}",
1798             "rarrc;" => "\x{2933}",
1799             "rarrfs;" => "\x{291e}",
1800             "rarrhk;" => "\x{21aa}",
1801             "rarrlp;" => "\x{21ac}",
1802             "rarrpl;" => "\x{2945}",
1803             "rarrsim;" => "\x{2974}",
1804             "rarrtl;" => "\x{21a3}",
1805             "rarrw;" => "\x{219d}",
1806             "ratail;" => "\x{291a}",
1807             "ratio;" => "\x{2236}",
1808             "rationals;" => "\x{211a}",
1809             "rbarr;" => "\x{290d}",
1810             "rbbrk;" => "\x{2773}",
1811             "rbrace;" => "}",
1812             "rbrack;" => "]",
1813             "rbrke;" => "\x{298c}",
1814             "rbrksld;" => "\x{298e}",
1815             "rbrkslu;" => "\x{2990}",
1816             "rcaron;" => "\x{159}",
1817             "rcedil;" => "\x{157}",
1818             "rceil;" => "\x{2309}",
1819             "rcub;" => "}",
1820             "rcy;" => "\x{440}",
1821             "rdca;" => "\x{2937}",
1822             "rdldhar;" => "\x{2969}",
1823             "rdquo;" => "\x{201d}",
1824             "rdquor;" => "\x{201d}",
1825             "rdsh;" => "\x{21b3}",
1826             "real;" => "\x{211c}",
1827             "realine;" => "\x{211b}",
1828             "realpart;" => "\x{211c}",
1829             "reals;" => "\x{211d}",
1830             "rect;" => "\x{25ad}",
1831             "reg" => "\256",
1832             "reg;" => "\256",
1833             "rfisht;" => "\x{297d}",
1834             "rfloor;" => "\x{230b}",
1835             "rfr;" => "\x{1d52f}",
1836             "rhard;" => "\x{21c1}",
1837             "rharu;" => "\x{21c0}",
1838             "rharul;" => "\x{296c}",
1839             "rho;" => "\x{3c1}",
1840             "rhov;" => "\x{3f1}",
1841             "rightarrow;" => "\x{2192}",
1842             "rightarrowtail;" => "\x{21a3}",
1843             "rightharpoondown;" => "\x{21c1}",
1844             "rightharpoonup;" => "\x{21c0}",
1845             "rightleftarrows;" => "\x{21c4}",
1846             "rightleftharpoons;" => "\x{21cc}",
1847             "rightrightarrows;" => "\x{21c9}",
1848             "rightsquigarrow;" => "\x{219d}",
1849             "rightthreetimes;" => "\x{22cc}",
1850             "ring;" => "\x{2da}",
1851             "risingdotseq;" => "\x{2253}",
1852             "rlarr;" => "\x{21c4}",
1853             "rlhar;" => "\x{21cc}",
1854             "rlm;" => "\x{200f}",
1855             "rmoust;" => "\x{23b1}",
1856             "rmoustache;" => "\x{23b1}",
1857             "rnmid;" => "\x{2aee}",
1858             "roang;" => "\x{27ed}",
1859             "roarr;" => "\x{21fe}",
1860             "robrk;" => "\x{27e7}",
1861             "ropar;" => "\x{2986}",
1862             "ropf;" => "\x{1d563}",
1863             "roplus;" => "\x{2a2e}",
1864             "rotimes;" => "\x{2a35}",
1865             "rpar;" => ")",
1866             "rpargt;" => "\x{2994}",
1867             "rppolint;" => "\x{2a12}",
1868             "rrarr;" => "\x{21c9}",
1869             "rsaquo;" => "\x{203a}",
1870             "rscr;" => "\x{1d4c7}",
1871             "rsh;" => "\x{21b1}",
1872             "rsqb;" => "]",
1873             "rsquo;" => "\x{2019}",
1874             "rsquor;" => "\x{2019}",
1875             "rthree;" => "\x{22cc}",
1876             "rtimes;" => "\x{22ca}",
1877             "rtri;" => "\x{25b9}",
1878             "rtrie;" => "\x{22b5}",
1879             "rtrif;" => "\x{25b8}",
1880             "rtriltri;" => "\x{29ce}",
1881             "ruluhar;" => "\x{2968}",
1882             "rx;" => "\x{211e}",
1883             "sacute;" => "\x{15b}",
1884             "sbquo;" => "\x{201a}",
1885             "sc;" => "\x{227b}",
1886             "scE;" => "\x{2ab4}",
1887             "scap;" => "\x{2ab8}",
1888             "scaron;" => "\x{161}",
1889             "sccue;" => "\x{227d}",
1890             "sce;" => "\x{2ab0}",
1891             "scedil;" => "\x{15f}",
1892             "scirc;" => "\x{15d}",
1893             "scnE;" => "\x{2ab6}",
1894             "scnap;" => "\x{2aba}",
1895             "scnsim;" => "\x{22e9}",
1896             "scpolint;" => "\x{2a13}",
1897             "scsim;" => "\x{227f}",
1898             "scy;" => "\x{441}",
1899             "sdot;" => "\x{22c5}",
1900             "sdotb;" => "\x{22a1}",
1901             "sdote;" => "\x{2a66}",
1902             "seArr;" => "\x{21d8}",
1903             "searhk;" => "\x{2925}",
1904             "searr;" => "\x{2198}",
1905             "searrow;" => "\x{2198}",
1906             "sect" => "\247",
1907             "sect;" => "\247",
1908             "semi;" => ";",
1909             "seswar;" => "\x{2929}",
1910             "setminus;" => "\x{2216}",
1911             "setmn;" => "\x{2216}",
1912             "sext;" => "\x{2736}",
1913             "sfr;" => "\x{1d530}",
1914             "sfrown;" => "\x{2322}",
1915             "sharp;" => "\x{266f}",
1916             "shchcy;" => "\x{449}",
1917             "shcy;" => "\x{448}",
1918             "shortmid;" => "\x{2223}",
1919             "shortparallel;" => "\x{2225}",
1920             "shy" => "\255",
1921             "shy;" => "\255",
1922             "sigma;" => "\x{3c3}",
1923             "sigmaf;" => "\x{3c2}",
1924             "sigmav;" => "\x{3c2}",
1925             "sim;" => "\x{223c}",
1926             "simdot;" => "\x{2a6a}",
1927             "sime;" => "\x{2243}",
1928             "simeq;" => "\x{2243}",
1929             "simg;" => "\x{2a9e}",
1930             "simgE;" => "\x{2aa0}",
1931             "siml;" => "\x{2a9d}",
1932             "simlE;" => "\x{2a9f}",
1933             "simne;" => "\x{2246}",
1934             "simplus;" => "\x{2a24}",
1935             "simrarr;" => "\x{2972}",
1936             "slarr;" => "\x{2190}",
1937             "smallsetminus;" => "\x{2216}",
1938             "smashp;" => "\x{2a33}",
1939             "smeparsl;" => "\x{29e4}",
1940             "smid;" => "\x{2223}",
1941             "smile;" => "\x{2323}",
1942             "smt;" => "\x{2aaa}",
1943             "smte;" => "\x{2aac}",
1944             "smtes;" => "\x{2aac}\x{fe00}",
1945             "softcy;" => "\x{44c}",
1946             "sol;" => "/",
1947             "solb;" => "\x{29c4}",
1948             "solbar;" => "\x{233f}",
1949             "sopf;" => "\x{1d564}",
1950             "spades;" => "\x{2660}",
1951             "spadesuit;" => "\x{2660}",
1952             "spar;" => "\x{2225}",
1953             "sqcap;" => "\x{2293}",
1954             "sqcaps;" => "\x{2293}\x{fe00}",
1955             "sqcup;" => "\x{2294}",
1956             "sqcups;" => "\x{2294}\x{fe00}",
1957             "sqsub;" => "\x{228f}",
1958             "sqsube;" => "\x{2291}",
1959             "sqsubset;" => "\x{228f}",
1960             "sqsubseteq;" => "\x{2291}",
1961             "sqsup;" => "\x{2290}",
1962             "sqsupe;" => "\x{2292}",
1963             "sqsupset;" => "\x{2290}",
1964             "sqsupseteq;" => "\x{2292}",
1965             "squ;" => "\x{25a1}",
1966             "square;" => "\x{25a1}",
1967             "squarf;" => "\x{25aa}",
1968             "squf;" => "\x{25aa}",
1969             "srarr;" => "\x{2192}",
1970             "sscr;" => "\x{1d4c8}",
1971             "ssetmn;" => "\x{2216}",
1972             "ssmile;" => "\x{2323}",
1973             "sstarf;" => "\x{22c6}",
1974             "star;" => "\x{2606}",
1975             "starf;" => "\x{2605}",
1976             "straightepsilon;" => "\x{3f5}",
1977             "straightphi;" => "\x{3d5}",
1978             "strns;" => "\257",
1979             "sub;" => "\x{2282}",
1980             "subE;" => "\x{2ac5}",
1981             "subdot;" => "\x{2abd}",
1982             "sube;" => "\x{2286}",
1983             "subedot;" => "\x{2ac3}",
1984             "submult;" => "\x{2ac1}",
1985             "subnE;" => "\x{2acb}",
1986             "subne;" => "\x{228a}",
1987             "subplus;" => "\x{2abf}",
1988             "subrarr;" => "\x{2979}",
1989             "subset;" => "\x{2282}",
1990             "subseteq;" => "\x{2286}",
1991             "subseteqq;" => "\x{2ac5}",
1992             "subsetneq;" => "\x{228a}",
1993             "subsetneqq;" => "\x{2acb}",
1994             "subsim;" => "\x{2ac7}",
1995             "subsub;" => "\x{2ad5}",
1996             "subsup;" => "\x{2ad3}",
1997             "succ;" => "\x{227b}",
1998             "succapprox;" => "\x{2ab8}",
1999             "succcurlyeq;" => "\x{227d}",
2000             "succeq;" => "\x{2ab0}",
2001             "succnapprox;" => "\x{2aba}",
2002             "succneqq;" => "\x{2ab6}",
2003             "succnsim;" => "\x{22e9}",
2004             "succsim;" => "\x{227f}",
2005             "sum;" => "\x{2211}",
2006             "sung;" => "\x{266a}",
2007             "sup1" => "\271",
2008             "sup1;" => "\271",
2009             "sup2" => "\262",
2010             "sup2;" => "\262",
2011             "sup3" => "\263",
2012             "sup3;" => "\263",
2013             "sup;" => "\x{2283}",
2014             "supE;" => "\x{2ac6}",
2015             "supdot;" => "\x{2abe}",
2016             "supdsub;" => "\x{2ad8}",
2017             "supe;" => "\x{2287}",
2018             "supedot;" => "\x{2ac4}",
2019             "suphsol;" => "\x{27c9}",
2020             "suphsub;" => "\x{2ad7}",
2021             "suplarr;" => "\x{297b}",
2022             "supmult;" => "\x{2ac2}",
2023             "supnE;" => "\x{2acc}",
2024             "supne;" => "\x{228b}",
2025             "supplus;" => "\x{2ac0}",
2026             "supset;" => "\x{2283}",
2027             "supseteq;" => "\x{2287}",
2028             "supseteqq;" => "\x{2ac6}",
2029             "supsetneq;" => "\x{228b}",
2030             "supsetneqq;" => "\x{2acc}",
2031             "supsim;" => "\x{2ac8}",
2032             "supsub;" => "\x{2ad4}",
2033             "supsup;" => "\x{2ad6}",
2034             "swArr;" => "\x{21d9}",
2035             "swarhk;" => "\x{2926}",
2036             "swarr;" => "\x{2199}",
2037             "swarrow;" => "\x{2199}",
2038             "swnwar;" => "\x{292a}",
2039             "szlig" => "\337",
2040             "szlig;" => "\337",
2041             "target;" => "\x{2316}",
2042             "tau;" => "\x{3c4}",
2043             "tbrk;" => "\x{23b4}",
2044             "tcaron;" => "\x{165}",
2045             "tcedil;" => "\x{163}",
2046             "tcy;" => "\x{442}",
2047             "tdot;" => "\x{20db}",
2048             "telrec;" => "\x{2315}",
2049             "tfr;" => "\x{1d531}",
2050             "there4;" => "\x{2234}",
2051             "therefore;" => "\x{2234}",
2052             "theta;" => "\x{3b8}",
2053             "thetasym;" => "\x{3d1}",
2054             "thetav;" => "\x{3d1}",
2055             "thickapprox;" => "\x{2248}",
2056             "thicksim;" => "\x{223c}",
2057             "thinsp;" => "\x{2009}",
2058             "thkap;" => "\x{2248}",
2059             "thksim;" => "\x{223c}",
2060             "thorn" => "\376",
2061             "thorn;" => "\376",
2062             "tilde;" => "\x{2dc}",
2063             "times" => "\327",
2064             "times;" => "\327",
2065             "timesb;" => "\x{22a0}",
2066             "timesbar;" => "\x{2a31}",
2067             "timesd;" => "\x{2a30}",
2068             "tint;" => "\x{222d}",
2069             "toea;" => "\x{2928}",
2070             "top;" => "\x{22a4}",
2071             "topbot;" => "\x{2336}",
2072             "topcir;" => "\x{2af1}",
2073             "topf;" => "\x{1d565}",
2074             "topfork;" => "\x{2ada}",
2075             "tosa;" => "\x{2929}",
2076             "tprime;" => "\x{2034}",
2077             "trade;" => "\x{2122}",
2078             "triangle;" => "\x{25b5}",
2079             "triangledown;" => "\x{25bf}",
2080             "triangleleft;" => "\x{25c3}",
2081             "trianglelefteq;" => "\x{22b4}",
2082             "triangleq;" => "\x{225c}",
2083             "triangleright;" => "\x{25b9}",
2084             "trianglerighteq;" => "\x{22b5}",
2085             "tridot;" => "\x{25ec}",
2086             "trie;" => "\x{225c}",
2087             "triminus;" => "\x{2a3a}",
2088             "triplus;" => "\x{2a39}",
2089             "trisb;" => "\x{29cd}",
2090             "tritime;" => "\x{2a3b}",
2091             "trpezium;" => "\x{23e2}",
2092             "tscr;" => "\x{1d4c9}",
2093             "tscy;" => "\x{446}",
2094             "tshcy;" => "\x{45b}",
2095             "tstrok;" => "\x{167}",
2096             "twixt;" => "\x{226c}",
2097             "twoheadleftarrow;" => "\x{219e}",
2098             "twoheadrightarrow;" => "\x{21a0}",
2099             "uArr;" => "\x{21d1}",
2100             "uHar;" => "\x{2963}",
2101             "uacute" => "\372",
2102             "uacute;" => "\372",
2103             "uarr;" => "\x{2191}",
2104             "ubrcy;" => "\x{45e}",
2105             "ubreve;" => "\x{16d}",
2106             "ucirc" => "\373",
2107             "ucirc;" => "\373",
2108             "ucy;" => "\x{443}",
2109             "udarr;" => "\x{21c5}",
2110             "udblac;" => "\x{171}",
2111             "udhar;" => "\x{296e}",
2112             "ufisht;" => "\x{297e}",
2113             "ufr;" => "\x{1d532}",
2114             "ugrave" => "\371",
2115             "ugrave;" => "\371",
2116             "uharl;" => "\x{21bf}",
2117             "uharr;" => "\x{21be}",
2118             "uhblk;" => "\x{2580}",
2119             "ulcorn;" => "\x{231c}",
2120             "ulcorner;" => "\x{231c}",
2121             "ulcrop;" => "\x{230f}",
2122             "ultri;" => "\x{25f8}",
2123             "umacr;" => "\x{16b}",
2124             "uml" => "\250",
2125             "uml;" => "\250",
2126             "uogon;" => "\x{173}",
2127             "uopf;" => "\x{1d566}",
2128             "uparrow;" => "\x{2191}",
2129             "updownarrow;" => "\x{2195}",
2130             "upharpoonleft;" => "\x{21bf}",
2131             "upharpoonright;" => "\x{21be}",
2132             "uplus;" => "\x{228e}",
2133             "upsi;" => "\x{3c5}",
2134             "upsih;" => "\x{3d2}",
2135             "upsilon;" => "\x{3c5}",
2136             "upuparrows;" => "\x{21c8}",
2137             "urcorn;" => "\x{231d}",
2138             "urcorner;" => "\x{231d}",
2139             "urcrop;" => "\x{230e}",
2140             "uring;" => "\x{16f}",
2141             "urtri;" => "\x{25f9}",
2142             "uscr;" => "\x{1d4ca}",
2143             "utdot;" => "\x{22f0}",
2144             "utilde;" => "\x{169}",
2145             "utri;" => "\x{25b5}",
2146             "utrif;" => "\x{25b4}",
2147             "uuarr;" => "\x{21c8}",
2148             "uuml" => "\374",
2149             "uuml;" => "\374",
2150             "uwangle;" => "\x{29a7}",
2151             "vArr;" => "\x{21d5}",
2152             "vBar;" => "\x{2ae8}",
2153             "vBarv;" => "\x{2ae9}",
2154             "vDash;" => "\x{22a8}",
2155             "vangrt;" => "\x{299c}",
2156             "varepsilon;" => "\x{3f5}",
2157             "varkappa;" => "\x{3f0}",
2158             "varnothing;" => "\x{2205}",
2159             "varphi;" => "\x{3d5}",
2160             "varpi;" => "\x{3d6}",
2161             "varpropto;" => "\x{221d}",
2162             "varr;" => "\x{2195}",
2163             "varrho;" => "\x{3f1}",
2164             "varsigma;" => "\x{3c2}",
2165             "varsubsetneq;" => "\x{228a}\x{fe00}",
2166             "varsubsetneqq;" => "\x{2acb}\x{fe00}",
2167             "varsupsetneq;" => "\x{228b}\x{fe00}",
2168             "varsupsetneqq;" => "\x{2acc}\x{fe00}",
2169             "vartheta;" => "\x{3d1}",
2170             "vartriangleleft;" => "\x{22b2}",
2171             "vartriangleright;" => "\x{22b3}",
2172             "vcy;" => "\x{432}",
2173             "vdash;" => "\x{22a2}",
2174             "vee;" => "\x{2228}",
2175             "veebar;" => "\x{22bb}",
2176             "veeeq;" => "\x{225a}",
2177             "vellip;" => "\x{22ee}",
2178             "verbar;" => "|",
2179             "vert;" => "|",
2180             "vfr;" => "\x{1d533}",
2181             "vltri;" => "\x{22b2}",
2182             "vnsub;" => "\x{2282}\x{20d2}",
2183             "vnsup;" => "\x{2283}\x{20d2}",
2184             "vopf;" => "\x{1d567}",
2185             "vprop;" => "\x{221d}",
2186             "vrtri;" => "\x{22b3}",
2187             "vscr;" => "\x{1d4cb}",
2188             "vsubnE;" => "\x{2acb}\x{fe00}",
2189             "vsubne;" => "\x{228a}\x{fe00}",
2190             "vsupnE;" => "\x{2acc}\x{fe00}",
2191             "vsupne;" => "\x{228b}\x{fe00}",
2192             "vzigzag;" => "\x{299a}",
2193             "wcirc;" => "\x{175}",
2194             "wedbar;" => "\x{2a5f}",
2195             "wedge;" => "\x{2227}",
2196             "wedgeq;" => "\x{2259}",
2197             "weierp;" => "\x{2118}",
2198             "wfr;" => "\x{1d534}",
2199             "wopf;" => "\x{1d568}",
2200             "wp;" => "\x{2118}",
2201             "wr;" => "\x{2240}",
2202             "wreath;" => "\x{2240}",
2203             "wscr;" => "\x{1d4cc}",
2204             "xcap;" => "\x{22c2}",
2205             "xcirc;" => "\x{25ef}",
2206             "xcup;" => "\x{22c3}",
2207             "xdtri;" => "\x{25bd}",
2208             "xfr;" => "\x{1d535}",
2209             "xhArr;" => "\x{27fa}",
2210             "xharr;" => "\x{27f7}",
2211             "xi;" => "\x{3be}",
2212             "xlArr;" => "\x{27f8}",
2213             "xlarr;" => "\x{27f5}",
2214             "xmap;" => "\x{27fc}",
2215             "xnis;" => "\x{22fb}",
2216             "xodot;" => "\x{2a00}",
2217             "xopf;" => "\x{1d569}",
2218             "xoplus;" => "\x{2a01}",
2219             "xotime;" => "\x{2a02}",
2220             "xrArr;" => "\x{27f9}",
2221             "xrarr;" => "\x{27f6}",
2222             "xscr;" => "\x{1d4cd}",
2223             "xsqcup;" => "\x{2a06}",
2224             "xuplus;" => "\x{2a04}",
2225             "xutri;" => "\x{25b3}",
2226             "xvee;" => "\x{22c1}",
2227             "xwedge;" => "\x{22c0}",
2228             "yacute" => "\375",
2229             "yacute;" => "\375",
2230             "yacy;" => "\x{44f}",
2231             "ycirc;" => "\x{177}",
2232             "ycy;" => "\x{44b}",
2233             "yen" => "\245",
2234             "yen;" => "\245",
2235             "yfr;" => "\x{1d536}",
2236             "yicy;" => "\x{457}",
2237             "yopf;" => "\x{1d56a}",
2238             "yscr;" => "\x{1d4ce}",
2239             "yucy;" => "\x{44e}",
2240             "yuml" => "\377",
2241             "yuml;" => "\377",
2242             "zacute;" => "\x{17a}",
2243             "zcaron;" => "\x{17e}",
2244             "zcy;" => "\x{437}",
2245             "zdot;" => "\x{17c}",
2246             "zeetrf;" => "\x{2128}",
2247             "zeta;" => "\x{3b6}",
2248             "zfr;" => "\x{1d537}",
2249             "zhcy;" => "\x{436}",
2250             "zigrarr;" => "\x{21dd}",
2251             "zopf;" => "\x{1d56b}",
2252             "zscr;" => "\x{1d4cf}",
2253             "zwj;" => "\x{200d}",
2254             "zwnj;" => "\x{200c}",
2255             );
2256              
2257 3         3934 %char2entity = (
2258             "\x{00a0}" => '&nbsp;',
2259             "\x{00a1}" => '&iexcl;',
2260             "\x{00a2}" => '&cent;',
2261             "\x{00a3}" => '&pound;',
2262             "\x{00a4}" => '&curren;',
2263             "\x{00a5}" => '&yen;',
2264             "\x{00a6}" => '&brvbar;',
2265             "\x{00a7}" => '&sect;',
2266             "\x{00a8}" => '&uml;',
2267             "\x{00a9}" => '&copy;',
2268             "\x{00aa}" => '&ordf;',
2269             "\x{00ab}" => '&laquo;',
2270             "\x{00ac}" => '&not;',
2271             "\x{00ad}" => '&shy;',
2272             "\x{00ae}" => '&reg;',
2273             "\x{00af}" => '&macr;',
2274             "\x{00b0}" => '&deg;',
2275             "\x{00b1}" => '&plusmn;',
2276             "\x{00b2}" => '&sup2;',
2277             "\x{00b3}" => '&sup3;',
2278             "\x{00b4}" => '&acute;',
2279             "\x{00b5}" => '&micro;',
2280             "\x{00b6}" => '&para;',
2281             "\x{00b7}" => '&middot;',
2282             "\x{00b8}" => '&cedil;',
2283             "\x{00b9}" => '&sup1;',
2284             "\x{00ba}" => '&ordm;',
2285             "\x{00bb}" => '&raquo;',
2286             "\x{00bc}" => '&frac14;',
2287             "\x{00bd}" => '&frac12;',
2288             "\x{00be}" => '&frac34;',
2289             "\x{00bf}" => '&iquest;',
2290             "\x{00c0}" => '&Agrave;',
2291             "\x{00c1}" => '&Aacute;',
2292             "\x{00c2}" => '&Acirc;',
2293             "\x{00c3}" => '&Atilde;',
2294             "\x{00c4}" => '&Auml;',
2295             "\x{00c5}" => '&Aring;',
2296             "\x{00c6}" => '&AElig;',
2297             "\x{00c7}" => '&Ccedil;',
2298             "\x{00c8}" => '&Egrave;',
2299             "\x{00c9}" => '&Eacute;',
2300             "\x{00ca}" => '&Ecirc;',
2301             "\x{00cb}" => '&Euml;',
2302             "\x{00cc}" => '&Igrave;',
2303             "\x{00cd}" => '&Iacute;',
2304             "\x{00ce}" => '&Icirc;',
2305             "\x{00cf}" => '&Iuml;',
2306             "\x{00d0}" => '&ETH;',
2307             "\x{00d1}" => '&Ntilde;',
2308             "\x{00d2}" => '&Ograve;',
2309             "\x{00d3}" => '&Oacute;',
2310             "\x{00d4}" => '&Ocirc;',
2311             "\x{00d5}" => '&Otilde;',
2312             "\x{00d6}" => '&Ouml;',
2313             "\x{00d7}" => '&times;',
2314             "\x{00d8}" => '&Oslash;',
2315             "\x{00d9}" => '&Ugrave;',
2316             "\x{00da}" => '&Uacute;',
2317             "\x{00db}" => '&Ucirc;',
2318             "\x{00dc}" => '&Uuml;',
2319             "\x{00dd}" => '&Yacute;',
2320             "\x{00de}" => '&THORN;',
2321             "\x{00df}" => '&szlig;',
2322             "\x{00e0}" => '&agrave;',
2323             "\x{00e1}" => '&aacute;',
2324             "\x{00e2}" => '&acirc;',
2325             "\x{00e3}" => '&atilde;',
2326             "\x{00e4}" => '&auml;',
2327             "\x{00e5}" => '&aring;',
2328             "\x{00e6}" => '&aelig;',
2329             "\x{00e7}" => '&ccedil;',
2330             "\x{00e8}" => '&egrave;',
2331             "\x{00e9}" => '&eacute;',
2332             "\x{00ea}" => '&ecirc;',
2333             "\x{00eb}" => '&euml;',
2334             "\x{00ec}" => '&igrave;',
2335             "\x{00ed}" => '&iacute;',
2336             "\x{00ee}" => '&icirc;',
2337             "\x{00ef}" => '&iuml;',
2338             "\x{00f0}" => '&eth;',
2339             "\x{00f1}" => '&ntilde;',
2340             "\x{00f2}" => '&ograve;',
2341             "\x{00f3}" => '&oacute;',
2342             "\x{00f4}" => '&ocirc;',
2343             "\x{00f5}" => '&otilde;',
2344             "\x{00f6}" => '&ouml;',
2345             "\x{00f7}" => '&divide;',
2346             "\x{00f8}" => '&oslash;',
2347             "\x{00f9}" => '&ugrave;',
2348             "\x{00fa}" => '&uacute;',
2349             "\x{00fb}" => '&ucirc;',
2350             "\x{00fc}" => '&uuml;',
2351             "\x{00fd}" => '&yacute;',
2352             "\x{00fe}" => '&thorn;',
2353             "\x{00ff}" => '&yuml;',
2354             "\x{0026}" => '&amp;',
2355             "\x{0022}" => '&quot;',
2356             "\x{003c}" => '&lt;',
2357             "\x{003e}" => '&gt;',
2358             "\x{0152}" => '&OElig;',
2359             "\x{0153}" => '&oelig;',
2360             "\x{0160}" => '&Scaron;',
2361             "\x{0161}" => '&scaron;',
2362             "\x{0178}" => '&Yuml;',
2363             "\x{02c6}" => '&circ;',
2364             "\x{02dc}" => '&tilde;',
2365             "\x{2002}" => '&ensp;',
2366             "\x{2003}" => '&emsp;',
2367             "\x{2009}" => '&thinsp;',
2368             "\x{200c}" => '&zwnj;',
2369             "\x{200d}" => '&zwj;',
2370             "\x{200e}" => '&lrm;',
2371             "\x{200f}" => '&rlm;',
2372             "\x{2013}" => '&ndash;',
2373             "\x{2014}" => '&mdash;',
2374             "\x{2018}" => '&lsquo;',
2375             "\x{2019}" => '&rsquo;',
2376             "\x{201a}" => '&sbquo;',
2377             "\x{201c}" => '&ldquo;',
2378             "\x{201d}" => '&rdquo;',
2379             "\x{201e}" => '&bdquo;',
2380             "\x{2020}" => '&dagger;',
2381             "\x{2021}" => '&Dagger;',
2382             "\x{2030}" => '&permil;',
2383             "\x{2039}" => '&lsaquo;',
2384             "\x{203a}" => '&rsaquo;',
2385             "\x{20ac}" => '&euro;',
2386             "\x{0192}" => '&fnof;',
2387             "\x{0391}" => '&Alpha;',
2388             "\x{0392}" => '&Beta;',
2389             "\x{0393}" => '&Gamma;',
2390             "\x{0394}" => '&Delta;',
2391             "\x{0395}" => '&Epsilon;',
2392             "\x{0396}" => '&Zeta;',
2393             "\x{0397}" => '&Eta;',
2394             "\x{0398}" => '&Theta;',
2395             "\x{0399}" => '&Iota;',
2396             "\x{039a}" => '&Kappa;',
2397             "\x{039b}" => '&Lambda;',
2398             "\x{039c}" => '&Mu;',
2399             "\x{039d}" => '&Nu;',
2400             "\x{039e}" => '&Xi;',
2401             "\x{039f}" => '&Omicron;',
2402             "\x{03a0}" => '&Pi;',
2403             "\x{03a1}" => '&Rho;',
2404             "\x{03a3}" => '&Sigma;',
2405             "\x{03a4}" => '&Tau;',
2406             "\x{03a5}" => '&Upsilon;',
2407             "\x{03a6}" => '&Phi;',
2408             "\x{03a7}" => '&Chi;',
2409             "\x{03a8}" => '&Psi;',
2410             "\x{03a9}" => '&Omega;',
2411             "\x{03b1}" => '&alpha;',
2412             "\x{03b2}" => '&beta;',
2413             "\x{03b3}" => '&gamma;',
2414             "\x{03b4}" => '&delta;',
2415             "\x{03b5}" => '&epsilon;',
2416             "\x{03b6}" => '&zeta;',
2417             "\x{03b7}" => '&eta;',
2418             "\x{03b8}" => '&theta;',
2419             "\x{03b9}" => '&iota;',
2420             "\x{03ba}" => '&kappa;',
2421             "\x{03bb}" => '&lambda;',
2422             "\x{03bc}" => '&mu;',
2423             "\x{03bd}" => '&nu;',
2424             "\x{03be}" => '&xi;',
2425             "\x{03bf}" => '&omicron;',
2426             "\x{03c0}" => '&pi;',
2427             "\x{03c1}" => '&rho;',
2428             "\x{03c2}" => '&sigmaf;',
2429             "\x{03c3}" => '&sigma;',
2430             "\x{03c4}" => '&tau;',
2431             "\x{03c5}" => '&upsilon;',
2432             "\x{03c6}" => '&phi;',
2433             "\x{03c7}" => '&chi;',
2434             "\x{03c8}" => '&psi;',
2435             "\x{03c9}" => '&omega;',
2436             "\x{03d1}" => '&thetasym;',
2437             "\x{03d2}" => '&upsih;',
2438             "\x{03d6}" => '&piv;',
2439             "\x{2022}" => '&bull;',
2440             "\x{2026}" => '&hellip;',
2441             "\x{2032}" => '&prime;',
2442             "\x{2033}" => '&Prime;',
2443             "\x{203e}" => '&oline;',
2444             "\x{2044}" => '&frasl;',
2445             "\x{2118}" => '&weierp;',
2446             "\x{2111}" => '&image;',
2447             "\x{211c}" => '&real;',
2448             "\x{2122}" => '&trade;',
2449             "\x{2135}" => '&alefsym;',
2450             "\x{2190}" => '&larr;',
2451             "\x{2191}" => '&uarr;',
2452             "\x{2192}" => '&rarr;',
2453             "\x{2193}" => '&darr;',
2454             "\x{2194}" => '&harr;',
2455             "\x{21b5}" => '&crarr;',
2456             "\x{21d0}" => '&lArr;',
2457             "\x{21d1}" => '&uArr;',
2458             "\x{21d2}" => '&rArr;',
2459             "\x{21d3}" => '&dArr;',
2460             "\x{21d4}" => '&hArr;',
2461             "\x{2200}" => '&forall;',
2462             "\x{2202}" => '&part;',
2463             "\x{2203}" => '&exist;',
2464             "\x{2205}" => '&empty;',
2465             "\x{2207}" => '&nabla;',
2466             "\x{2208}" => '&isin;',
2467             "\x{2209}" => '&notin;',
2468             "\x{220b}" => '&ni;',
2469             "\x{220f}" => '&prod;',
2470             "\x{2211}" => '&sum;',
2471             "\x{2212}" => '&minus;',
2472             "\x{2217}" => '&lowast;',
2473             "\x{221a}" => '&radic;',
2474             "\x{221d}" => '&prop;',
2475             "\x{221e}" => '&infin;',
2476             "\x{2220}" => '&ang;',
2477             "\x{2227}" => '&and;',
2478             "\x{2228}" => '&or;',
2479             "\x{2229}" => '&cap;',
2480             "\x{222a}" => '&cup;',
2481             "\x{222b}" => '&int;',
2482             "\x{2234}" => '&there4;',
2483             "\x{223c}" => '&sim;',
2484             "\x{2245}" => '&cong;',
2485             "\x{2248}" => '&asymp;',
2486             "\x{2260}" => '&ne;',
2487             "\x{2261}" => '&equiv;',
2488             "\x{2264}" => '&le;',
2489             "\x{2265}" => '&ge;',
2490             "\x{2282}" => '&sub;',
2491             "\x{2283}" => '&sup;',
2492             "\x{2284}" => '&nsub;',
2493             "\x{2286}" => '&sube;',
2494             "\x{2287}" => '&supe;',
2495             "\x{2295}" => '&oplus;',
2496             "\x{2297}" => '&otimes;',
2497             "\x{22a5}" => '&perp;',
2498             "\x{22c5}" => '&sdot;',
2499             "\x{2308}" => '&lceil;',
2500             "\x{2309}" => '&rceil;',
2501             "\x{230a}" => '&lfloor;',
2502             "\x{230b}" => '&rfloor;',
2503             "\x{2329}" => '&lang;',
2504             "\x{232a}" => '&rang;',
2505             "\x{25ca}" => '&loz;',
2506             "\x{2660}" => '&spades;',
2507             "\x{2663}" => '&clubs;',
2508             "\x{2665}" => '&hearts;',
2509             "\x{2666}" => '&diams;',
2510             );
2511             }
2512              
2513             sub decode_entities ($@)
2514             {
2515 5     5 1 12 my $array;
2516 5 100       14 if (defined wantarray)
2517             {
2518 4         11 $array = [@_]; # copy
2519             }
2520             else
2521             {
2522 1         2 $array = \@_; # modify in-place
2523             }
2524              
2525 5         8 my $c;
2526 5         10 for (@$array)
2527             {
2528 5         30 s/
2529             (&
2530             (?:
2531             \#(\d+) | \#[xX]([0-9a-fA-F]+) | (\w+)
2532             )
2533             ;?
2534             )
2535             /
2536 8 100       27 if (defined $2)
    50          
2537 3         15 { chr($2); }
2538             elsif (defined $3)
2539 0         0 { chr(hex $3); }
2540             else
2541 5 50       35 { $entity2char{$4} || $1; }
2542             /xeg;
2543             }
2544              
2545 5 50       32 wantarray ? @$array : $array->[0];
2546             }
2547              
2548             sub _decode_entities ($$;$)
2549             {
2550 2     2   5 my $ref = \$_[0];
2551 2 50       3 my %map = %{ $_[1] || {} };
  2         3608  
2552              
2553 2         217 $$ref =~ s/
2554             (&
2555             (?:
2556             \#(\d+) | \#[xX]([0-9a-fA-F]+) | (\w+)
2557             )
2558             ;?
2559             )
2560             /
2561 2 50 33     26 if (defined $2)
    50          
    100          
2562 0         0 { chr($2); }
2563             elsif (defined $3)
2564 0         0 { chr(hex $3); }
2565             elsif (defined $_[2] and $_[2])
2566 1 50       21 { $map{$4} || _search_entity($4, \%map); }
2567             else
2568 1 50       9 { $map{$4} || $1; }
2569             /xeg;
2570              
2571 2         416 return $$ref;
2572             }
2573              
2574             sub _search_entity
2575             {
2576 1     1   3 my ($ent, $map) = @_;
2577 1         3 my $remainder = '';
2578            
2579 1         5 while (length $ent)
2580             {
2581 3 100       16 return $map->{$ent} . $remainder
2582             if defined $map->{$ent};
2583            
2584 2         6 $remainder = substr($ent, -1) . $remainder;
2585 2         7 $ent = substr($ent, 0, -1);
2586             }
2587            
2588 0         0 $remainder;
2589             }
2590              
2591             sub encode_entities ($;$)
2592             {
2593 7 50   7 1 1217 return undef unless defined $_[0];
2594            
2595 7         8 my $ref;
2596 7 100       19 if (defined wantarray)
2597             {
2598 6         8 my $x = $_[0];
2599 6         12 $ref = \$x; # copy
2600             }
2601             else
2602             {
2603 1         3 $ref = \$_[0]; # modify in-place
2604             }
2605              
2606 7 100       49 my $unsafe_characters = defined $_[1] ? $_[1] : $default_unsafe_characters;
2607 7 100       21 my $regexp = ref $unsafe_characters eq 'Regexp'
2608             ? $unsafe_characters
2609             : "[".quotemeta($unsafe_characters)."]";
2610            
2611 7 100       427 $$ref =~ s[ ($regexp) ][ $char2entity{$1}||num_entity($1) ]gex;
  10         61  
2612              
2613 7         42 return $$ref;
2614             }
2615              
2616             sub encode_entities_numeric
2617             {
2618 2     2 1 8 local %char2entity;
2619 2         7 return &encode_entities;
2620             }
2621              
2622             sub num_entity
2623             {
2624 5 100   5 1 211 sprintf $hex ? '&#x%x;' : '&#%d;', ord($_[0]);
2625             }
2626              
2627             *decode = \&decode_entities;
2628             *encode = \&encode_entities;
2629             *encode_numeric = \&encode_entities_numeric;
2630             *encode_numerically = \&encode_entities_numeric;
2631              
2632             1;
2633              
2634             __END__
2635              
2636             =head1 NAME
2637              
2638             HTML::HTML5::Entities - drop-in replacement for HTML::Entities
2639              
2640             =head1 SYNOPSIS
2641              
2642             use HTML::Entities;
2643            
2644             my $enc = encode_entities('fish & chips');
2645             print "$enc\n"; # fish &amp; chips
2646            
2647             my $dec = decode_entities($enc);
2648             print "$dec\n"; # fish & chips
2649              
2650             =head1 DESCRIPTION
2651              
2652             This is a drop-in replacement for L<HTML::Entities>, providing the character
2653             entities defined in HTML5. Some caveats:
2654              
2655             =over
2656              
2657             =item * The implementation is pure perl, hence in some cases slower, especially decoding.
2658              
2659             =item * It will not work in Perl < 5.8.1.
2660              
2661             =back
2662              
2663             =head2 Functions
2664              
2665             =over
2666              
2667             =item C<< decode_entities($string, ...) >>
2668              
2669             This routine replaces HTML entities found in the C<< $string >> with the
2670             corresponding Unicode character. If multiple strings are provided as
2671             arguments they are each decoded separately and the same number of strings
2672             are returned.
2673              
2674             If called in void context the arguments are decoded in-place.
2675              
2676             This routine is exported by default.
2677              
2678             =item C<< _decode_entities($string, \%entity2char) >>
2679              
2680             =item C<< _decode_entities($string, \%entity2char, $expand_prefix) >>
2681              
2682             This will in-place replace HTML entities in C<< $string >>. The
2683             C<< %entity2char >> hash must be provided. Named entities not found in
2684             the C<< %entity2char >> hash are left alone. Numeric entities are always
2685             expanded.
2686              
2687             If C<< $expand_prefix >> is TRUE then entities without trailing ";" in
2688             C<< %entity2char >> will even be expanded as a prefix of a longer
2689             unrecognized name.
2690              
2691             $string = "foo&nbspbar";
2692             _decode_entities($string, { nb => "@", nbsp => "\xA0" }, 1);
2693             print $string; # will print "foo bar"
2694              
2695             This routine is exported by default.
2696              
2697             =item C<< encode_entities($string) >>
2698              
2699             =item C<< encode_entities($string, $unsafe_chars) >>
2700              
2701             This routine replaces unsafe characters in C<< $string >> with their
2702             entity representation. A second argument can be given to specify which
2703             characters to consider unsafe (i.e., which to escape). This may be a
2704             regular expression.
2705              
2706             If called in void context the string is encoded in-place.
2707              
2708             This routine is exported by default.
2709              
2710             =item C<< encode_entities_numeric($string) >>
2711              
2712             This routine works just like encode_entities, except that the
2713             replacement entities are always numeric.
2714              
2715             This routine is not exported by default.
2716              
2717             =item C<< num_entity($string) >>
2718              
2719             Given a single character string, encodes it as a numeric entity.
2720              
2721             This routine is not exported by default.
2722              
2723             =back
2724              
2725             The following functions cannot be exported. They behave the same as the
2726             exportable functions.
2727              
2728             =over
2729              
2730             =item C<< HTML::Entities::decode($string, ...) >>
2731              
2732             =item C<< HTML::Entities::encode($string) >>
2733              
2734             =item C<< HTML::Entities::encode($string, $unsafe_characters) >>
2735              
2736             =item C<< HTML::Entities::encode_numeric($string) >>
2737              
2738             =item C<< HTML::Entities::encode_numeric($string, $unsafe_characters) >>
2739              
2740             =item C<< HTML::Entities::encode_numerically($string) >>
2741              
2742             =item C<< HTML::Entities::encode_numerically($string, $unsafe_characters) >>
2743              
2744             =back
2745              
2746             =head2 Variables
2747              
2748             =over
2749              
2750             =item C<< $HTML::HTML5::Entities::hex >>
2751              
2752             This variable controls whether numeric entities will use hexadecimal or
2753             decimal notation. It is TRUE (hexadecimal) by default, but can be set to
2754             FALSE.
2755              
2756             It only affects the encoding functions. Decoding always understands both
2757             notations.
2758              
2759             =item C<< %HTML::HTML5::Entities::char2entity >>
2760              
2761             =item C<< %HTML::HTML5::Entities::entity2char >>
2762              
2763             There contain the mapping from all characters to the corresponding entities
2764             (and vice versa, respectively). These variables may be exported.
2765              
2766             Note that C<< %char2entity >> is a more conservative set of mappings, intended to
2767             be safe for serialising strings to HTML4, HTML5 and XHTML 1.x. And for
2768             hysterical raisins, C<< %entity2char >> does not include the leading ampersands,
2769             while C<< %char2entity >> does.
2770              
2771             =back
2772              
2773             =head1 BUGS
2774              
2775             Please report any bugs to
2776             L<http://rt.cpan.org/Dist/Display.html?Queue=HTML-HTML5-Entities>.
2777              
2778             =head1 SEE ALSO
2779              
2780             L<HTML::Entities>, L<HTML::HTML5::Parser>, L<HTML::HTML5::Writer>.
2781              
2782             =head1 AUTHOR
2783              
2784             Toby Inkster E<lt>tobyink@cpan.orgE<gt>.
2785              
2786             =head1 COPYRIGHT AND LICENCE
2787              
2788             =head2 Encoding and Decoding Functions
2789              
2790             Copyright (c) 1995-2006 by Gisle Aas.
2791              
2792             Copyright (c) 2012 by Toby Inkster.
2793              
2794             This is free software; you can redistribute it and/or modify it under
2795             the same terms as the Perl 5 programming language system itself.
2796              
2797             =head2 Entity Tables
2798              
2799             Copyright (c) 2004-2007 by Apple Computer Inc, Mozilla Foundation,
2800             and Opera Software ASA.
2801              
2802             Copyright (c) 2007-2011 by Wakaba <w@suika.fam.cx>.
2803              
2804             Copyright (c) 2009-2012 by Toby Inkster <tobyink@cpan.org>.
2805              
2806             =head1 DISCLAIMER OF WARRANTIES
2807              
2808             THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED
2809             WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
2810             MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
2811