summaryrefslogtreecommitdiff
path: root/vendor/github.com/tdewolff/minify/v2/html/hash.go
blob: 5eefcebb03351ece570e80c42d4ba17be80d05ba (plain)
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
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
package html

// generated by hasher -type=Hash -file=hash.go; DO NOT EDIT, except for adding more constants to the list and rerun go generate

// uses github.com/tdewolff/hasher
//go:generate hasher -type=Hash -file=hash.go

// Hash defines perfect hashes for a predefined list of strings
type Hash uint32

// Unique hash definitions to be used instead of strings
const (
	A                        Hash = 0x1     // a
	Abbr                     Hash = 0x40004 // abbr
	About                    Hash = 0x5     // about
	Accept                   Hash = 0xc06   // accept
	Accept_Charset           Hash = 0xc0e   // accept-charset
	Accesskey                Hash = 0x2c09  // accesskey
	Acronym                  Hash = 0x3507  // acronym
	Action                   Hash = 0x26006 // action
	Address                  Hash = 0x6d07  // address
	Allow                    Hash = 0x31f05 // allow
	Allowfullscreen          Hash = 0x31f0f // allowfullscreen
	Amp_Boilerplate          Hash = 0x5e0f  // amp-boilerplate
	Applet                   Hash = 0xee06  // applet
	Area                     Hash = 0x2c304 // area
	Article                  Hash = 0x22507 // article
	As                       Hash = 0x2102  // as
	Aside                    Hash = 0x9205  // aside
	Async                    Hash = 0x8a05  // async
	Audio                    Hash = 0x9d05  // audio
	Autocapitalize           Hash = 0xc30e  // autocapitalize
	Autocomplete             Hash = 0xd10c  // autocomplete
	Autofocus                Hash = 0xe309  // autofocus
	Autoplay                 Hash = 0xfc08  // autoplay
	B                        Hash = 0x101   // b
	Base                     Hash = 0x2004  // base
	Basefont                 Hash = 0x2008  // basefont
	Bb                       Hash = 0x40102 // bb
	Bdi                      Hash = 0x8303  // bdi
	Bdo                      Hash = 0x3dc03 // bdo
	Big                      Hash = 0x12f03 // big
	Blocking                 Hash = 0x13208 // blocking
	Blockquote               Hash = 0x13a0a // blockquote
	Body                     Hash = 0x804   // body
	Br                       Hash = 0x14b02 // br
	Button                   Hash = 0x14406 // button
	Canvas                   Hash = 0x8e06  // canvas
	Caption                  Hash = 0x23707 // caption
	Capture                  Hash = 0x10d07 // capture
	Center                   Hash = 0x24f06 // center
	Charset                  Hash = 0x1307  // charset
	Checked                  Hash = 0x37707 // checked
	Cite                     Hash = 0x14d04 // cite
	Class                    Hash = 0x15a05 // class
	Code                     Hash = 0x17604 // code
	Col                      Hash = 0x17f03 // col
	Colgroup                 Hash = 0x17f08 // colgroup
	Color                    Hash = 0x19e05 // color
	Cols                     Hash = 0x1a304 // cols
	Colspan                  Hash = 0x1a307 // colspan
	Content                  Hash = 0x1b107 // content
	Contenteditable          Hash = 0x1b10f // contenteditable
	Controls                 Hash = 0x1cc08 // controls
	Coords                   Hash = 0x1e306 // coords
	Crossorigin              Hash = 0x2160b // crossorigin
	Data                     Hash = 0xad04  // data
	Datalist                 Hash = 0xad08  // datalist
	Datatype                 Hash = 0x11908 // datatype
	Datetime                 Hash = 0x28508 // datetime
	Dd                       Hash = 0x6e02  // dd
	Decoding                 Hash = 0x9508  // decoding
	Default                  Hash = 0x17807 // default
	Defer                    Hash = 0x4405  // defer
	Del                      Hash = 0x1f203 // del
	Details                  Hash = 0x20b07 // details
	Dfn                      Hash = 0x16a03 // dfn
	Dialog                   Hash = 0x28d06 // dialog
	Dir                      Hash = 0x8403  // dir
	Disabled                 Hash = 0x19208 // disabled
	Div                      Hash = 0x19903 // div
	Dl                       Hash = 0x1c302 // dl
	Draggable                Hash = 0x1da09 // draggable
	Dt                       Hash = 0x40902 // dt
	Em                       Hash = 0xdc02  // em
	Embed                    Hash = 0x16605 // embed
	Enctype                  Hash = 0x26a07 // enctype
	Enterkeyhint             Hash = 0x2500c // enterkeyhint
	Fetchpriority            Hash = 0x1220d // fetchpriority
	Fieldset                 Hash = 0x22c08 // fieldset
	Figcaption               Hash = 0x2340a // figcaption
	Figure                   Hash = 0x24506 // figure
	Font                     Hash = 0x2404  // font
	Footer                   Hash = 0x1a06  // footer
	For                      Hash = 0x25c03 // for
	Form                     Hash = 0x25c04 // form
	Formaction               Hash = 0x25c0a // formaction
	Formenctype              Hash = 0x2660b // formenctype
	Formmethod               Hash = 0x2710a // formmethod
	Formnovalidate           Hash = 0x27b0e // formnovalidate
	Formtarget               Hash = 0x2930a // formtarget
	Frame                    Hash = 0x16e05 // frame
	Frameset                 Hash = 0x16e08 // frameset
	H1                       Hash = 0x2d502 // h1
	H2                       Hash = 0x38602 // h2
	H3                       Hash = 0x39502 // h3
	H4                       Hash = 0x40b02 // h4
	H5                       Hash = 0x29d02 // h5
	H6                       Hash = 0x29f02 // h6
	Head                     Hash = 0x36c04 // head
	Header                   Hash = 0x36c06 // header
	Headers                  Hash = 0x36c07 // headers
	Height                   Hash = 0x2a106 // height
	Hgroup                   Hash = 0x2b506 // hgroup
	Hidden                   Hash = 0x2cc06 // hidden
	High                     Hash = 0x2d204 // high
	Hr                       Hash = 0x2d702 // hr
	Href                     Hash = 0x2d704 // href
	Hreflang                 Hash = 0x2d708 // hreflang
	Html                     Hash = 0x2a504 // html
	Http_Equiv               Hash = 0x2df0a // http-equiv
	I                        Hash = 0x2801  // i
	Id                       Hash = 0x9402  // id
	Iframe                   Hash = 0x2f206 // iframe
	Image                    Hash = 0x30005 // image
	Imagesizes               Hash = 0x3000a // imagesizes
	Imagesrcset              Hash = 0x30d0b // imagesrcset
	Img                      Hash = 0x31803 // img
	Inert                    Hash = 0x10805 // inert
	Inlist                   Hash = 0x21f06 // inlist
	Input                    Hash = 0x3d05  // input
	Inputmode                Hash = 0x3d09  // inputmode
	Ins                      Hash = 0x31b03 // ins
	Is                       Hash = 0xb202  // is
	Ismap                    Hash = 0x32e05 // ismap
	Itemid                   Hash = 0x2fa06 // itemid
	Itemprop                 Hash = 0x14e08 // itemprop
	Itemref                  Hash = 0x34507 // itemref
	Itemscope                Hash = 0x35709 // itemscope
	Itemtype                 Hash = 0x36108 // itemtype
	Kbd                      Hash = 0x8203  // kbd
	Kind                     Hash = 0xaa04  // kind
	Label                    Hash = 0x1c405 // label
	Lang                     Hash = 0x2db04 // lang
	Legend                   Hash = 0x1be06 // legend
	Li                       Hash = 0xb102  // li
	Link                     Hash = 0x1c804 // link
	List                     Hash = 0xb104  // list
	Loading                  Hash = 0x3ad07 // loading
	Loop                     Hash = 0x2a804 // loop
	Low                      Hash = 0x32103 // low
	Main                     Hash = 0x3b04  // main
	Map                      Hash = 0xed03  // map
	Mark                     Hash = 0x7f04  // mark
	Marquee                  Hash = 0x3e407 // marquee
	Math                     Hash = 0x36904 // math
	Max                      Hash = 0x37e03 // max
	Maxlength                Hash = 0x37e09 // maxlength
	Media                    Hash = 0x28b05 // media
	Menu                     Hash = 0x2f604 // menu
	Menuitem                 Hash = 0x2f608 // menuitem
	Meta                     Hash = 0x5004  // meta
	Meter                    Hash = 0x38805 // meter
	Method                   Hash = 0x27506 // method
	Min                      Hash = 0x38d03 // min
	Minlength                Hash = 0x38d09 // minlength
	Multiple                 Hash = 0x39708 // multiple
	Muted                    Hash = 0x39f05 // muted
	Name                     Hash = 0x4e04  // name
	Nav                      Hash = 0xbc03  // nav
	Nobr                     Hash = 0x14904 // nobr
	Noembed                  Hash = 0x16407 // noembed
	Noframes                 Hash = 0x16c08 // noframes
	Nomodule                 Hash = 0x1a908 // nomodule
	Noscript                 Hash = 0x23d08 // noscript
	Novalidate               Hash = 0x27f0a // novalidate
	Object                   Hash = 0xa106  // object
	Ol                       Hash = 0x18002 // ol
	Open                     Hash = 0x35d04 // open
	Optgroup                 Hash = 0x2aa08 // optgroup
	Optimum                  Hash = 0x3de07 // optimum
	Option                   Hash = 0x2ec06 // option
	Output                   Hash = 0x206   // output
	P                        Hash = 0x501   // p
	Param                    Hash = 0x7b05  // param
	Pattern                  Hash = 0xb607  // pattern
	Picture                  Hash = 0x18607 // picture
	Ping                     Hash = 0x2b104 // ping
	Plaintext                Hash = 0x2ba09 // plaintext
	Playsinline              Hash = 0x1000b // playsinline
	Popover                  Hash = 0x33207 // popover
	Popovertarget            Hash = 0x3320d // popovertarget
	Popovertargetaction      Hash = 0x33213 // popovertargetaction
	Portal                   Hash = 0x3f406 // portal
	Poster                   Hash = 0x41006 // poster
	Pre                      Hash = 0x3a403 // pre
	Prefix                   Hash = 0x3a406 // prefix
	Preload                  Hash = 0x3aa07 // preload
	Profile                  Hash = 0x3b407 // profile
	Progress                 Hash = 0x3bb08 // progress
	Property                 Hash = 0x15208 // property
	Q                        Hash = 0x11401 // q
	Rb                       Hash = 0x1f02  // rb
	Readonly                 Hash = 0x2c408 // readonly
	Referrerpolicy           Hash = 0x3490e // referrerpolicy
	Rel                      Hash = 0x3ab03 // rel
	Required                 Hash = 0x11208 // required
	Resource                 Hash = 0x24908 // resource
	Rev                      Hash = 0x18b03 // rev
	Reversed                 Hash = 0x18b08 // reversed
	Rows                     Hash = 0x4804  // rows
	Rowspan                  Hash = 0x4807  // rowspan
	Rp                       Hash = 0x6702  // rp
	Rt                       Hash = 0x10b02 // rt
	Rtc                      Hash = 0x10b03 // rtc
	Ruby                     Hash = 0x8604  // ruby
	S                        Hash = 0x1701  // s
	Samp                     Hash = 0x5d04  // samp
	Sandbox                  Hash = 0x7307  // sandbox
	Scope                    Hash = 0x35b05 // scope
	Script                   Hash = 0x23f06 // script
	Section                  Hash = 0x15e07 // section
	Select                   Hash = 0x1d306 // select
	Selected                 Hash = 0x1d308 // selected
	Shadowrootdelegatesfocus Hash = 0x1e818 // shadowrootdelegatesfocus
	Shadowrootmode           Hash = 0x1ff0e // shadowrootmode
	Shape                    Hash = 0x21105 // shape
	Size                     Hash = 0x30504 // size
	Sizes                    Hash = 0x30505 // sizes
	Slot                     Hash = 0x30904 // slot
	Small                    Hash = 0x31d05 // small
	Source                   Hash = 0x24b06 // source
	Span                     Hash = 0x4b04  // span
	Spellcheck               Hash = 0x3720a // spellcheck
	Src                      Hash = 0x31203 // src
	Srclang                  Hash = 0x3c207 // srclang
	Srcset                   Hash = 0x31206 // srcset
	Start                    Hash = 0x22305 // start
	Step                     Hash = 0xb304  // step
	Strike                   Hash = 0x3c906 // strike
	Strong                   Hash = 0x3cf06 // strong
	Style                    Hash = 0x3d505 // style
	Sub                      Hash = 0x3da03 // sub
	Summary                  Hash = 0x3eb07 // summary
	Sup                      Hash = 0x3f203 // sup
	Svg                      Hash = 0x3fa03 // svg
	Tabindex                 Hash = 0x5208  // tabindex
	Table                    Hash = 0x1bb05 // table
	Target                   Hash = 0x29706 // target
	Tbody                    Hash = 0x705   // tbody
	Td                       Hash = 0x1f102 // td
	Template                 Hash = 0xdb08  // template
	Text                     Hash = 0x2bf04 // text
	Textarea                 Hash = 0x2bf08 // textarea
	Tfoot                    Hash = 0x1905  // tfoot
	Th                       Hash = 0x27702 // th
	Thead                    Hash = 0x36b05 // thead
	Time                     Hash = 0x28904 // time
	Title                    Hash = 0x2705  // title
	Tr                       Hash = 0xa602  // tr
	Track                    Hash = 0xa605  // track
	Translate                Hash = 0xf309  // translate
	Tt                       Hash = 0xb802  // tt
	Type                     Hash = 0x11d04 // type
	Typeof                   Hash = 0x11d06 // typeof
	U                        Hash = 0x301   // u
	Ul                       Hash = 0x17c02 // ul
	Usemap                   Hash = 0xea06  // usemap
	Value                    Hash = 0xbe05  // value
	Var                      Hash = 0x19b03 // var
	Video                    Hash = 0x2e805 // video
	Vocab                    Hash = 0x3fd05 // vocab
	Wbr                      Hash = 0x40403 // wbr
	Width                    Hash = 0x40705 // width
	Wrap                     Hash = 0x40d04 // wrap
	Xmlns                    Hash = 0x5905  // xmlns
	Xmp                      Hash = 0x7903  // xmp
)

// String returns the hash' name.
func (i Hash) String() string {
	start := uint32(i >> 8)
	n := uint32(i & 0xff)
	if start+n > uint32(len(_Hash_text)) {
		return ""
	}
	return _Hash_text[start : start+n]
}

// ToHash returns the hash whose name is s. It returns zero if there is no
// such hash. It is case sensitive.
func ToHash(s []byte) Hash {
	if len(s) == 0 || len(s) > _Hash_maxLen {
		return 0
	}
	h := uint32(_Hash_hash0)
	for i := 0; i < len(s); i++ {
		h ^= uint32(s[i])
		h *= 16777619
	}
	if i := _Hash_table[h&uint32(len(_Hash_table)-1)]; int(i&0xff) == len(s) {
		t := _Hash_text[i>>8 : i>>8+i&0xff]
		for i := 0; i < len(s); i++ {
			if t[i] != s[i] {
				goto NEXT
			}
		}
		return i
	}
NEXT:
	if i := _Hash_table[(h>>16)&uint32(len(_Hash_table)-1)]; int(i&0xff) == len(s) {
		t := _Hash_text[i>>8 : i>>8+i&0xff]
		for i := 0; i < len(s); i++ {
			if t[i] != s[i] {
				return 0
			}
		}
		return i
	}
	return 0
}

const _Hash_hash0 = 0x51243bbc
const _Hash_maxLen = 24
const _Hash_text = "aboutputbodyaccept-charsetfooterbasefontitleaccesskeyacronym" +
	"ainputmodeferowspanametabindexmlnsamp-boilerplateaddressandb" +
	"oxmparamarkbdirubyasyncanvasidecodingaudiobjectrackindatalis" +
	"tepatternavalueautocapitalizeautocompletemplateautofocusemap" +
	"pletranslateautoplaysinlinertcapturequiredatatypeofetchprior" +
	"itybigblockingblockquotebuttonobrcitempropertyclassectionoem" +
	"bedfnoframesetcodefaultcolgroupictureversedisabledivarcolorc" +
	"olspanomodulecontenteditablegendlabelinkcontrolselectedragga" +
	"blecoordshadowrootdelegatesfocushadowrootmodetailshapecrosso" +
	"riginlistarticlefieldsetfigcaptionoscriptfiguresourcenterkey" +
	"hintformactionformenctypeformmethodformnovalidatetimedialogf" +
	"ormtargeth5h6heightmlooptgroupinghgrouplaintextareadonlyhidd" +
	"enhigh1hreflanghttp-equivideoptioniframenuitemidimagesizeslo" +
	"timagesrcsetimginsmallowfullscreenismapopovertargetactionite" +
	"mreferrerpolicyitemscopenitemtypematheaderspellcheckedmaxlen" +
	"gth2meterminlength3multiplemutedprefixpreloadingprofileprogr" +
	"essrclangstrikestrongstylesubdoptimumarqueesummarysuportalsv" +
	"gvocabbrwbrwidth4wraposter"

var _Hash_table = [1 << 9]Hash{
	0x0:   0x4405,  // defer
	0x5:   0x18002, // ol
	0x6:   0x3720a, // spellcheck
	0x7:   0x40b02, // h4
	0x8:   0x40705, // width
	0x9:   0x9402,  // id
	0xb:   0x14904, // nobr
	0xc:   0x31d05, // small
	0xf:   0x2b506, // hgroup
	0x10:  0x27702, // th
	0x15:  0x24f06, // center
	0x18:  0xd10c,  // autocomplete
	0x1b:  0x2c304, // area
	0x1e:  0x17f03, // col
	0x1f:  0x2a106, // height
	0x21:  0x4b04,  // span
	0x22:  0x37e03, // max
	0x23:  0x3cf06, // strong
	0x24:  0x501,   // p
	0x29:  0x24b06, // source
	0x2c:  0x8e06,  // canvas
	0x2d:  0x2c09,  // accesskey
	0x2e:  0x18607, // picture
	0x30:  0x3a403, // pre
	0x31:  0x5d04,  // samp
	0x34:  0x40902, // dt
	0x36:  0x30505, // sizes
	0x37:  0x1a908, // nomodule
	0x39:  0x2a504, // html
	0x3a:  0x31203, // src
	0x3c:  0x28d06, // dialog
	0x3e:  0x3ab03, // rel
	0x40:  0x1a06,  // footer
	0x43:  0x30d0b, // imagesrcset
	0x46:  0x3c906, // strike
	0x47:  0x2e805, // video
	0x4a:  0x2d702, // hr
	0x4b:  0x36108, // itemtype
	0x4c:  0x1c804, // link
	0x4e:  0x6702,  // rp
	0x4f:  0x2801,  // i
	0x50:  0xee06,  // applet
	0x51:  0x17f08, // colgroup
	0x53:  0x1905,  // tfoot
	0x54:  0xc06,   // accept
	0x57:  0x14d04, // cite
	0x58:  0x1307,  // charset
	0x59:  0x17604, // code
	0x5a:  0x4e04,  // name
	0x5b:  0x2bf04, // text
	0x5d:  0x31f05, // allow
	0x5e:  0x36c04, // head
	0x61:  0x16605, // embed
	0x62:  0x3fa03, // svg
	0x63:  0x3fd05, // vocab
	0x64:  0x5e0f,  // amp-boilerplate
	0x65:  0x38805, // meter
	0x67:  0x3320d, // popovertarget
	0x69:  0x3b04,  // main
	0x6a:  0x41006, // poster
	0x6c:  0x1c302, // dl
	0x6e:  0x26006, // action
	0x71:  0x17807, // default
	0x72:  0x3d05,  // input
	0x74:  0xb202,  // is
	0x75:  0x27506, // method
	0x79:  0x7903,  // xmp
	0x7a:  0x101,   // b
	0x7b:  0x21f06, // inlist
	0x7c:  0x25c0a, // formaction
	0x7e:  0x39708, // multiple
	0x80:  0x1f203, // del
	0x81:  0x26a07, // enctype
	0x83:  0x27b0e, // formnovalidate
	0x84:  0x2404,  // font
	0x85:  0x11d06, // typeof
	0x86:  0x2d704, // href
	0x87:  0x13a0a, // blockquote
	0x88:  0x4807,  // rowspan
	0x89:  0x3aa07, // preload
	0x8a:  0x12f03, // big
	0x8c:  0x38d09, // minlength
	0x90:  0x1bb05, // table
	0x91:  0x39f05, // muted
	0x92:  0x3e407, // marquee
	0x94:  0x3507,  // acronym
	0x96:  0x40d04, // wrap
	0x98:  0x14b02, // br
	0x9a:  0x10b02, // rt
	0x9e:  0xa602,  // tr
	0x9f:  0x35709, // itemscope
	0xa4:  0xad04,  // data
	0xa5:  0x29706, // target
	0xac:  0x11908, // datatype
	0xae:  0xb304,  // step
	0xb3:  0x1cc08, // controls
	0xb5:  0xbe05,  // value
	0xb6:  0x2ba09, // plaintext
	0xb7:  0x1da09, // draggable
	0xc0:  0x8a05,  // async
	0xc2:  0x2a804, // loop
	0xc3:  0x28904, // time
	0xc6:  0x2004,  // base
	0xc7:  0x23f06, // script
	0xce:  0x32103, // low
	0xcf:  0x3dc03, // bdo
	0xd1:  0x18b03, // rev
	0xd2:  0x1e306, // coords
	0xd3:  0x8403,  // dir
	0xd4:  0x2f608, // menuitem
	0xd6:  0x22507, // article
	0xd8:  0x11d04, // type
	0xda:  0x18b08, // reversed
	0xdb:  0x23707, // caption
	0xdc:  0x35d04, // open
	0xdd:  0x1701,  // s
	0xe0:  0x2705,  // title
	0xe1:  0x9508,  // decoding
	0xe3:  0xc0e,   // accept-charset
	0xe4:  0x15a05, // class
	0xe5:  0x3f203, // sup
	0xe6:  0xdb08,  // template
	0xe7:  0x16c08, // noframes
	0xe8:  0x3ad07, // loading
	0xeb:  0xa106,  // object
	0xee:  0x3da03, // sub
	0xef:  0x2fa06, // itemid
	0xf0:  0x30904, // slot
	0xf1:  0x8604,  // ruby
	0xf4:  0x1f102, // td
	0xf5:  0x11208, // required
	0xf9:  0x16e05, // frame
	0xfc:  0x2102,  // as
	0xfd:  0x37e09, // maxlength
	0xff:  0x31f0f, // allowfullscreen
	0x101: 0x2160b, // crossorigin
	0x102: 0xed03,  // map
	0x104: 0x6e02,  // dd
	0x105: 0x705,   // tbody
	0x107: 0x2d502, // h1
	0x109: 0x5004,  // meta
	0x10a: 0x1,     // a
	0x10c: 0x16a03, // dfn
	0x10e: 0x34507, // itemref
	0x110: 0x38d03, // min
	0x111: 0x28508, // datetime
	0x114: 0xdc02,  // em
	0x115: 0x7f04,  // mark
	0x119: 0x2d708, // hreflang
	0x11a: 0x3de07, // optimum
	0x11c: 0x1220d, // fetchpriority
	0x11d: 0x39502, // h3
	0x11e: 0x5905,  // xmlns
	0x11f: 0x19903, // div
	0x121: 0x40403, // wbr
	0x128: 0x2bf08, // textarea
	0x129: 0x3d505, // style
	0x12a: 0x3f406, // portal
	0x12b: 0x1b107, // content
	0x12d: 0x19b03, // var
	0x12f: 0x40004, // abbr
	0x133: 0x31803, // img
	0x138: 0x35b05, // scope
	0x13b: 0x30504, // size
	0x13e: 0x29f02, // h6
	0x141: 0xfc08,  // autoplay
	0x142: 0x2c408, // readonly
	0x143: 0x3d09,  // inputmode
	0x144: 0x19208, // disabled
	0x145: 0x4804,  // rows
	0x149: 0x3490e, // referrerpolicy
	0x14a: 0x1c405, // label
	0x14b: 0x36c06, // header
	0x14c: 0xad08,  // datalist
	0x14d: 0xe309,  // autofocus
	0x14e: 0xb607,  // pattern
	0x150: 0x2cc06, // hidden
	0x151: 0x5,     // about
	0x152: 0x14406, // button
	0x154: 0x2f206, // iframe
	0x155: 0x1d308, // selected
	0x156: 0x3c207, // srclang
	0x15b: 0xb102,  // li
	0x15c: 0x22305, // start
	0x15d: 0x7307,  // sandbox
	0x15e: 0x31b03, // ins
	0x162: 0x1a307, // colspan
	0x163: 0x1ff0e, // shadowrootmode
	0x164: 0xb104,  // list
	0x166: 0x5208,  // tabindex
	0x169: 0x3b407, // profile
	0x16b: 0x301,   // u
	0x16c: 0x23d08, // noscript
	0x16e: 0x2660b, // formenctype
	0x16f: 0x16e08, // frameset
	0x170: 0x28b05, // media
	0x174: 0x2008,  // basefont
	0x176: 0x2b104, // ping
	0x177: 0x3bb08, // progress
	0x178: 0x206,   // output
	0x17a: 0x36904, // math
	0x17b: 0x2930a, // formtarget
	0x17d: 0x7b05,  // param
	0x180: 0x13208, // blocking
	0x185: 0x37707, // checked
	0x188: 0x32e05, // ismap
	0x18a: 0x38602, // h2
	0x18c: 0x2df0a, // http-equiv
	0x18e: 0x10d07, // capture
	0x190: 0x2db04, // lang
	0x195: 0x27f0a, // novalidate
	0x197: 0x1a304, // cols
	0x198: 0x804,   // body
	0x199: 0xbc03,  // nav
	0x19a: 0x1b10f, // contenteditable
	0x19b: 0x15e07, // section
	0x19e: 0x14e08, // itemprop
	0x19f: 0x15208, // property
	0x1a1: 0xc30e,  // autocapitalize
	0x1a4: 0x3eb07, // summary
	0x1a6: 0x1000b, // playsinline
	0x1a9: 0x8303,  // bdi
	0x1ab: 0x29d02, // h5
	0x1ac: 0x6d07,  // address
	0x1b0: 0x2d204, // high
	0x1b1: 0x33207, // popover
	0x1b3: 0xa605,  // track
	0x1b6: 0x8203,  // kbd
	0x1b7: 0x11401, // q
	0x1b8: 0x2340a, // figcaption
	0x1b9: 0x30005, // image
	0x1ba: 0x25c04, // form
	0x1c1: 0x3000a, // imagesizes
	0x1c4: 0x1e818, // shadowrootdelegatesfocus
	0x1c5: 0x2ec06, // option
	0x1c6: 0x9d05,  // audio
	0x1c8: 0x40102, // bb
	0x1c9: 0x16407, // noembed
	0x1cc: 0x10805, // inert
	0x1cf: 0x1d306, // select
	0x1d1: 0x22c08, // fieldset
	0x1d2: 0x31206, // srcset
	0x1d3: 0x2f604, // menu
	0x1d5: 0x36c07, // headers
	0x1dd: 0x1be06, // legend
	0x1de: 0xaa04,  // kind
	0x1e0: 0x24908, // resource
	0x1e2: 0xf309,  // translate
	0x1e4: 0x2aa08, // optgroup
	0x1e6: 0x33213, // popovertargetaction
	0x1e7: 0x2710a, // formmethod
	0x1e9: 0xb802,  // tt
	0x1ea: 0x36b05, // thead
	0x1eb: 0x17c02, // ul
	0x1ee: 0x3a406, // prefix
	0x1ef: 0x19e05, // color
	0x1f1: 0x21105, // shape
	0x1f3: 0x25c03, // for
	0x1f4: 0x2500c, // enterkeyhint
	0x1f7: 0xea06,  // usemap
	0x1f8: 0x1f02,  // rb
	0x1fa: 0x20b07, // details
	0x1fb: 0x10b03, // rtc
	0x1fc: 0x9205,  // aside
	0x1fe: 0x24506, // figure
}