| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
 | | 'use strict'; |  |   |  | const NS = (exports.NAMESPACES = { |  |     HTML: 'http://www.w3.org/1999/xhtml', |  |     MATHML: 'http://www.w3.org/1998/Math/MathML', |  |     SVG: 'http://www.w3.org/2000/svg', |  |     XLINK: 'http://www.w3.org/1999/xlink', |  |     XML: 'http://www.w3.org/XML/1998/namespace', |  |     XMLNS: 'http://www.w3.org/2000/xmlns/' |  | }); |  |   |  | exports.ATTRS = { |  |     TYPE: 'type', |  |     ACTION: 'action', |  |     ENCODING: 'encoding', |  |     PROMPT: 'prompt', |  |     NAME: 'name', |  |     COLOR: 'color', |  |     FACE: 'face', |  |     SIZE: 'size' |  | }; |  |   |  | exports.DOCUMENT_MODE = { |  |     NO_QUIRKS: 'no-quirks', |  |     QUIRKS: 'quirks', |  |     LIMITED_QUIRKS: 'limited-quirks' |  | }; |  |   |  | const $ = (exports.TAG_NAMES = { |  |     A: 'a', |  |     ADDRESS: 'address', |  |     ANNOTATION_XML: 'annotation-xml', |  |     APPLET: 'applet', |  |     AREA: 'area', |  |     ARTICLE: 'article', |  |     ASIDE: 'aside', |  |   |  |     B: 'b', |  |     BASE: 'base', |  |     BASEFONT: 'basefont', |  |     BGSOUND: 'bgsound', |  |     BIG: 'big', |  |     BLOCKQUOTE: 'blockquote', |  |     BODY: 'body', |  |     BR: 'br', |  |     BUTTON: 'button', |  |   |  |     CAPTION: 'caption', |  |     CENTER: 'center', |  |     CODE: 'code', |  |     COL: 'col', |  |     COLGROUP: 'colgroup', |  |   |  |     DD: 'dd', |  |     DESC: 'desc', |  |     DETAILS: 'details', |  |     DIALOG: 'dialog', |  |     DIR: 'dir', |  |     DIV: 'div', |  |     DL: 'dl', |  |     DT: 'dt', |  |   |  |     EM: 'em', |  |     EMBED: 'embed', |  |   |  |     FIELDSET: 'fieldset', |  |     FIGCAPTION: 'figcaption', |  |     FIGURE: 'figure', |  |     FONT: 'font', |  |     FOOTER: 'footer', |  |     FOREIGN_OBJECT: 'foreignObject', |  |     FORM: 'form', |  |     FRAME: 'frame', |  |     FRAMESET: 'frameset', |  |   |  |     H1: 'h1', |  |     H2: 'h2', |  |     H3: 'h3', |  |     H4: 'h4', |  |     H5: 'h5', |  |     H6: 'h6', |  |     HEAD: 'head', |  |     HEADER: 'header', |  |     HGROUP: 'hgroup', |  |     HR: 'hr', |  |     HTML: 'html', |  |   |  |     I: 'i', |  |     IMG: 'img', |  |     IMAGE: 'image', |  |     INPUT: 'input', |  |     IFRAME: 'iframe', |  |   |  |     KEYGEN: 'keygen', |  |   |  |     LABEL: 'label', |  |     LI: 'li', |  |     LINK: 'link', |  |     LISTING: 'listing', |  |   |  |     MAIN: 'main', |  |     MALIGNMARK: 'malignmark', |  |     MARQUEE: 'marquee', |  |     MATH: 'math', |  |     MENU: 'menu', |  |     META: 'meta', |  |     MGLYPH: 'mglyph', |  |     MI: 'mi', |  |     MO: 'mo', |  |     MN: 'mn', |  |     MS: 'ms', |  |     MTEXT: 'mtext', |  |   |  |     NAV: 'nav', |  |     NOBR: 'nobr', |  |     NOFRAMES: 'noframes', |  |     NOEMBED: 'noembed', |  |     NOSCRIPT: 'noscript', |  |   |  |     OBJECT: 'object', |  |     OL: 'ol', |  |     OPTGROUP: 'optgroup', |  |     OPTION: 'option', |  |   |  |     P: 'p', |  |     PARAM: 'param', |  |     PLAINTEXT: 'plaintext', |  |     PRE: 'pre', |  |   |  |     RB: 'rb', |  |     RP: 'rp', |  |     RT: 'rt', |  |     RTC: 'rtc', |  |     RUBY: 'ruby', |  |   |  |     S: 's', |  |     SCRIPT: 'script', |  |     SECTION: 'section', |  |     SELECT: 'select', |  |     SOURCE: 'source', |  |     SMALL: 'small', |  |     SPAN: 'span', |  |     STRIKE: 'strike', |  |     STRONG: 'strong', |  |     STYLE: 'style', |  |     SUB: 'sub', |  |     SUMMARY: 'summary', |  |     SUP: 'sup', |  |   |  |     TABLE: 'table', |  |     TBODY: 'tbody', |  |     TEMPLATE: 'template', |  |     TEXTAREA: 'textarea', |  |     TFOOT: 'tfoot', |  |     TD: 'td', |  |     TH: 'th', |  |     THEAD: 'thead', |  |     TITLE: 'title', |  |     TR: 'tr', |  |     TRACK: 'track', |  |     TT: 'tt', |  |   |  |     U: 'u', |  |     UL: 'ul', |  |   |  |     SVG: 'svg', |  |   |  |     VAR: 'var', |  |   |  |     WBR: 'wbr', |  |   |  |     XMP: 'xmp' |  | }); |  |   |  | exports.SPECIAL_ELEMENTS = { |  |     [NS.HTML]: { |  |         [$.ADDRESS]: true, |  |         [$.APPLET]: true, |  |         [$.AREA]: true, |  |         [$.ARTICLE]: true, |  |         [$.ASIDE]: true, |  |         [$.BASE]: true, |  |         [$.BASEFONT]: true, |  |         [$.BGSOUND]: true, |  |         [$.BLOCKQUOTE]: true, |  |         [$.BODY]: true, |  |         [$.BR]: true, |  |         [$.BUTTON]: true, |  |         [$.CAPTION]: true, |  |         [$.CENTER]: true, |  |         [$.COL]: true, |  |         [$.COLGROUP]: true, |  |         [$.DD]: true, |  |         [$.DETAILS]: true, |  |         [$.DIR]: true, |  |         [$.DIV]: true, |  |         [$.DL]: true, |  |         [$.DT]: true, |  |         [$.EMBED]: true, |  |         [$.FIELDSET]: true, |  |         [$.FIGCAPTION]: true, |  |         [$.FIGURE]: true, |  |         [$.FOOTER]: true, |  |         [$.FORM]: true, |  |         [$.FRAME]: true, |  |         [$.FRAMESET]: true, |  |         [$.H1]: true, |  |         [$.H2]: true, |  |         [$.H3]: true, |  |         [$.H4]: true, |  |         [$.H5]: true, |  |         [$.H6]: true, |  |         [$.HEAD]: true, |  |         [$.HEADER]: true, |  |         [$.HGROUP]: true, |  |         [$.HR]: true, |  |         [$.HTML]: true, |  |         [$.IFRAME]: true, |  |         [$.IMG]: true, |  |         [$.INPUT]: true, |  |         [$.LI]: true, |  |         [$.LINK]: true, |  |         [$.LISTING]: true, |  |         [$.MAIN]: true, |  |         [$.MARQUEE]: true, |  |         [$.MENU]: true, |  |         [$.META]: true, |  |         [$.NAV]: true, |  |         [$.NOEMBED]: true, |  |         [$.NOFRAMES]: true, |  |         [$.NOSCRIPT]: true, |  |         [$.OBJECT]: true, |  |         [$.OL]: true, |  |         [$.P]: true, |  |         [$.PARAM]: true, |  |         [$.PLAINTEXT]: true, |  |         [$.PRE]: true, |  |         [$.SCRIPT]: true, |  |         [$.SECTION]: true, |  |         [$.SELECT]: true, |  |         [$.SOURCE]: true, |  |         [$.STYLE]: true, |  |         [$.SUMMARY]: true, |  |         [$.TABLE]: true, |  |         [$.TBODY]: true, |  |         [$.TD]: true, |  |         [$.TEMPLATE]: true, |  |         [$.TEXTAREA]: true, |  |         [$.TFOOT]: true, |  |         [$.TH]: true, |  |         [$.THEAD]: true, |  |         [$.TITLE]: true, |  |         [$.TR]: true, |  |         [$.TRACK]: true, |  |         [$.UL]: true, |  |         [$.WBR]: true, |  |         [$.XMP]: true |  |     }, |  |     [NS.MATHML]: { |  |         [$.MI]: true, |  |         [$.MO]: true, |  |         [$.MN]: true, |  |         [$.MS]: true, |  |         [$.MTEXT]: true, |  |         [$.ANNOTATION_XML]: true |  |     }, |  |     [NS.SVG]: { |  |         [$.TITLE]: true, |  |         [$.FOREIGN_OBJECT]: true, |  |         [$.DESC]: true |  |     } |  | }; | 
 |