-
-
Notifications
You must be signed in to change notification settings - Fork 208
/
hash.go
610 lines (602 loc) · 22.6 KB
/
hash.go
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
}