summaryrefslogtreecommitdiff
path: root/vendor/github.com/tdewolff/minify/v2/html
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/tdewolff/minify/v2/html')
-rw-r--r--vendor/github.com/tdewolff/minify/v2/html/buffer.go137
-rw-r--r--vendor/github.com/tdewolff/minify/v2/html/hash.go543
-rw-r--r--vendor/github.com/tdewolff/minify/v2/html/html.go511
-rw-r--r--vendor/github.com/tdewolff/minify/v2/html/table.go1346
4 files changed, 0 insertions, 2537 deletions
diff --git a/vendor/github.com/tdewolff/minify/v2/html/buffer.go b/vendor/github.com/tdewolff/minify/v2/html/buffer.go
deleted file mode 100644
index f58367b44..000000000
--- a/vendor/github.com/tdewolff/minify/v2/html/buffer.go
+++ /dev/null
@@ -1,137 +0,0 @@
-package html
-
-import (
- "github.com/tdewolff/parse/v2"
- "github.com/tdewolff/parse/v2/html"
-)
-
-// Token is a single token unit with an attribute value (if given) and hash of the data.
-type Token struct {
- html.TokenType
- Hash Hash
- Data []byte
- Text []byte
- AttrVal []byte
- Traits traits
- Offset int
-}
-
-// TokenBuffer is a buffer that allows for token look-ahead.
-type TokenBuffer struct {
- r *parse.Input
- l *html.Lexer
-
- buf []Token
- pos int
-
- attrBuffer []*Token
-}
-
-// NewTokenBuffer returns a new TokenBuffer.
-func NewTokenBuffer(r *parse.Input, l *html.Lexer) *TokenBuffer {
- return &TokenBuffer{
- r: r,
- l: l,
- buf: make([]Token, 0, 8),
- }
-}
-
-func (z *TokenBuffer) read(t *Token) {
- t.Offset = z.r.Offset()
- t.TokenType, t.Data = z.l.Next()
- t.Text = z.l.Text()
- if t.TokenType == html.AttributeToken {
- t.Offset += 1 + len(t.Text) + 1
- t.AttrVal = z.l.AttrVal()
- if len(t.AttrVal) > 1 && (t.AttrVal[0] == '"' || t.AttrVal[0] == '\'') {
- t.Offset++
- t.AttrVal = t.AttrVal[1 : len(t.AttrVal)-1] // quotes will be readded in attribute loop if necessary
- }
- t.Hash = ToHash(t.Text)
- t.Traits = attrMap[t.Hash]
- } else if t.TokenType == html.StartTagToken || t.TokenType == html.EndTagToken {
- t.AttrVal = nil
- t.Hash = ToHash(t.Text)
- t.Traits = tagMap[t.Hash] // zero if not exist
- } else {
- t.AttrVal = nil
- t.Hash = 0
- t.Traits = 0
- }
-}
-
-// Peek returns the ith element and possibly does an allocation.
-// Peeking past an error will panic.
-func (z *TokenBuffer) Peek(pos int) *Token {
- pos += z.pos
- if pos >= len(z.buf) {
- if len(z.buf) > 0 && z.buf[len(z.buf)-1].TokenType == html.ErrorToken {
- return &z.buf[len(z.buf)-1]
- }
-
- c := cap(z.buf)
- d := len(z.buf) - z.pos
- p := pos - z.pos + 1 // required peek length
- var buf []Token
- if 2*p > c {
- buf = make([]Token, 0, 2*c+p)
- } else {
- buf = z.buf
- }
- copy(buf[:d], z.buf[z.pos:])
-
- buf = buf[:p]
- pos -= z.pos
- for i := d; i < p; i++ {
- z.read(&buf[i])
- if buf[i].TokenType == html.ErrorToken {
- buf = buf[:i+1]
- pos = i
- break
- }
- }
- z.pos, z.buf = 0, buf
- }
- return &z.buf[pos]
-}
-
-// Shift returns the first element and advances position.
-func (z *TokenBuffer) Shift() *Token {
- if z.pos >= len(z.buf) {
- t := &z.buf[:1][0]
- z.read(t)
- return t
- }
- t := &z.buf[z.pos]
- z.pos++
- return t
-}
-
-// Attributes extracts the gives attribute hashes from a tag.
-// It returns in the same order pointers to the requested token data or nil.
-func (z *TokenBuffer) Attributes(hashes ...Hash) []*Token {
- n := 0
- for {
- if t := z.Peek(n); t.TokenType != html.AttributeToken {
- break
- }
- n++
- }
- if len(hashes) > cap(z.attrBuffer) {
- z.attrBuffer = make([]*Token, len(hashes))
- } else {
- z.attrBuffer = z.attrBuffer[:len(hashes)]
- for i := range z.attrBuffer {
- z.attrBuffer[i] = nil
- }
- }
- for i := z.pos; i < z.pos+n; i++ {
- attr := &z.buf[i]
- for j, hash := range hashes {
- if hash == attr.Hash {
- z.attrBuffer[j] = attr
- }
- }
- }
- return z.attrBuffer
-}
diff --git a/vendor/github.com/tdewolff/minify/v2/html/hash.go b/vendor/github.com/tdewolff/minify/v2/html/hash.go
deleted file mode 100644
index 3b91cbbd5..000000000
--- a/vendor/github.com/tdewolff/minify/v2/html/hash.go
+++ /dev/null
@@ -1,543 +0,0 @@
-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 = 0x37a04 // abbr
- About Hash = 0x5 // about
- Accept Hash = 0x1106 // accept
- Accept_Charset Hash = 0x110e // accept-charset
- Action Hash = 0x23f06 // action
- Address Hash = 0x5a07 // address
- Align Hash = 0x32705 // align
- Alink Hash = 0x7005 // alink
- Allowfullscreen Hash = 0x2ad0f // allowfullscreen
- Amp_Boilerplate Hash = 0x610f // amp-boilerplate
- Area Hash = 0x1e304 // area
- Article Hash = 0x2707 // article
- Aside Hash = 0xb405 // aside
- Async Hash = 0xac05 // async
- Audio Hash = 0xd105 // audio
- Autofocus Hash = 0xe409 // autofocus
- Autoplay Hash = 0x10808 // autoplay
- Axis Hash = 0x11004 // axis
- B Hash = 0x101 // b
- Background Hash = 0x300a // background
- Base Hash = 0x19604 // base
- Bb Hash = 0x37b02 // bb
- Bdi Hash = 0x7503 // bdi
- Bdo Hash = 0x31f03 // bdo
- Bgcolor Hash = 0x12607 // bgcolor
- Blockquote Hash = 0x13e0a // blockquote
- Body Hash = 0xd04 // body
- Br Hash = 0x37c02 // br
- Button Hash = 0x14806 // button
- Canvas Hash = 0xb006 // canvas
- Caption Hash = 0x21f07 // caption
- Charset Hash = 0x1807 // charset
- Checked Hash = 0x1b307 // checked
- Cite Hash = 0xfb04 // cite
- Class Hash = 0x15905 // class
- Classid Hash = 0x15907 // classid
- Clear Hash = 0x2b05 // clear
- Code Hash = 0x19204 // code
- Codebase Hash = 0x19208 // codebase
- Codetype Hash = 0x1a408 // codetype
- Col Hash = 0x12803 // col
- Colgroup Hash = 0x1bb08 // colgroup
- Color Hash = 0x12805 // color
- Cols Hash = 0x1cf04 // cols
- Colspan Hash = 0x1cf07 // colspan
- Compact Hash = 0x1ec07 // compact
- Content Hash = 0x28407 // content
- Controls Hash = 0x20108 // controls
- Data Hash = 0x1f04 // data
- Datalist Hash = 0x1f08 // datalist
- Datatype Hash = 0x4d08 // datatype
- Dd Hash = 0x5b02 // dd
- Declare Hash = 0xb707 // declare
- Default Hash = 0x7f07 // default
- DefaultChecked Hash = 0x1730e // defaultChecked
- DefaultMuted Hash = 0x7f0c // defaultMuted
- DefaultSelected Hash = 0x8a0f // defaultSelected
- Defer Hash = 0x9805 // defer
- Del Hash = 0x10503 // del
- Details Hash = 0x15f07 // details
- Dfn Hash = 0x16c03 // dfn
- Dialog Hash = 0xa606 // dialog
- Dir Hash = 0x7603 // dir
- Disabled Hash = 0x18008 // disabled
- Div Hash = 0x18703 // div
- Dl Hash = 0x1b902 // dl
- Dt Hash = 0x23102 // dt
- Em Hash = 0x4302 // em
- Embed Hash = 0x4905 // embed
- Enabled Hash = 0x26c07 // enabled
- Enctype Hash = 0x1fa07 // enctype
- Face Hash = 0x5604 // face
- Fieldset Hash = 0x21408 // fieldset
- Figcaption Hash = 0x21c0a // figcaption
- Figure Hash = 0x22606 // figure
- Footer Hash = 0xdb06 // footer
- For Hash = 0x23b03 // for
- Form Hash = 0x23b04 // form
- Formaction Hash = 0x23b0a // formaction
- Formnovalidate Hash = 0x2450e // formnovalidate
- Frame Hash = 0x28c05 // frame
- Frameborder Hash = 0x28c0b // frameborder
- H1 Hash = 0x2e002 // h1
- H2 Hash = 0x25302 // h2
- H3 Hash = 0x25502 // h3
- H4 Hash = 0x25702 // h4
- H5 Hash = 0x25902 // h5
- H6 Hash = 0x25b02 // h6
- Head Hash = 0x2d204 // head
- Header Hash = 0x2d206 // header
- Hgroup Hash = 0x25d06 // hgroup
- Hidden Hash = 0x26806 // hidden
- Hr Hash = 0x32d02 // hr
- Href Hash = 0x32d04 // href
- Hreflang Hash = 0x32d08 // hreflang
- Html Hash = 0x27304 // html
- Http_Equiv Hash = 0x2770a // http-equiv
- I Hash = 0x2401 // i
- Icon Hash = 0x28304 // icon
- Id Hash = 0xb602 // id
- Iframe Hash = 0x28b06 // iframe
- Img Hash = 0x29703 // img
- Inert Hash = 0xf605 // inert
- Inlist Hash = 0x29a06 // inlist
- Input Hash = 0x2a405 // input
- Ins Hash = 0x2a903 // ins
- Ismap Hash = 0x11205 // ismap
- Itemscope Hash = 0xfc09 // itemscope
- Kbd Hash = 0x7403 // kbd
- Keygen Hash = 0x1f606 // keygen
- Label Hash = 0xbe05 // label
- Lang Hash = 0x33104 // lang
- Language Hash = 0x33108 // language
- Legend Hash = 0x2c506 // legend
- Li Hash = 0x2302 // li
- Link Hash = 0x7104 // link
- Longdesc Hash = 0xc208 // longdesc
- Main Hash = 0xf404 // main
- Manifest Hash = 0x2bc08 // manifest
- Map Hash = 0xee03 // map
- Mark Hash = 0x2cb04 // mark
- Math Hash = 0x2cf04 // math
- Max Hash = 0x2d803 // max
- Maxlength Hash = 0x2d809 // maxlength
- Media Hash = 0xa405 // media
- Menu Hash = 0x12204 // menu
- Meta Hash = 0x2e204 // meta
- Meter Hash = 0x2f705 // meter
- Method Hash = 0x2fc06 // method
- Multiple Hash = 0x30208 // multiple
- Muted Hash = 0x30a05 // muted
- Name Hash = 0xa204 // name
- Nav Hash = 0x32403 // nav
- Nohref Hash = 0x32b06 // nohref
- Noresize Hash = 0x13608 // noresize
- Noscript Hash = 0x14d08 // noscript
- Noshade Hash = 0x16e07 // noshade
- Novalidate Hash = 0x2490a // novalidate
- Nowrap Hash = 0x1d506 // nowrap
- Object Hash = 0xd506 // object
- Ol Hash = 0xcb02 // ol
- Open Hash = 0x32104 // open
- Optgroup Hash = 0x35608 // optgroup
- Option Hash = 0x30f06 // option
- Output Hash = 0x206 // output
- P Hash = 0x501 // p
- Param Hash = 0xf005 // param
- Pauseonexit Hash = 0x1160b // pauseonexit
- Picture Hash = 0x1c207 // picture
- Plaintext Hash = 0x1da09 // plaintext
- Poster Hash = 0x26206 // poster
- Pre Hash = 0x35d03 // pre
- Prefix Hash = 0x35d06 // prefix
- Profile Hash = 0x36407 // profile
- Progress Hash = 0x34208 // progress
- Property Hash = 0x31508 // property
- Q Hash = 0x14301 // q
- Rb Hash = 0x2f02 // rb
- Readonly Hash = 0x1e408 // readonly
- Rel Hash = 0xbc03 // rel
- Required Hash = 0x22a08 // required
- Resource Hash = 0x1c708 // resource
- Rev Hash = 0x7803 // rev
- Reversed Hash = 0x7808 // reversed
- Rows Hash = 0x9c04 // rows
- Rowspan Hash = 0x9c07 // rowspan
- Rp Hash = 0x6a02 // rp
- Rt Hash = 0x2802 // rt
- Rtc Hash = 0xf903 // rtc
- Ruby Hash = 0xe004 // ruby
- Rules Hash = 0x12c05 // rules
- S Hash = 0x1c01 // s
- Samp Hash = 0x6004 // samp
- Scope Hash = 0x10005 // scope
- Scoped Hash = 0x10006 // scoped
- Script Hash = 0x14f06 // script
- Scrolling Hash = 0xc809 // scrolling
- Seamless Hash = 0x19808 // seamless
- Section Hash = 0x13007 // section
- Select Hash = 0x16506 // select
- Selected Hash = 0x16508 // selected
- Shape Hash = 0x19f05 // shape
- Size Hash = 0x13a04 // size
- Slot Hash = 0x20804 // slot
- Small Hash = 0x2ab05 // small
- Sortable Hash = 0x2ef08 // sortable
- Source Hash = 0x1c906 // source
- Span Hash = 0x9f04 // span
- Src Hash = 0x34903 // src
- Srcset Hash = 0x34906 // srcset
- Start Hash = 0x2505 // start
- Strong Hash = 0x29e06 // strong
- Style Hash = 0x2c205 // style
- Sub Hash = 0x31d03 // sub
- Summary Hash = 0x33907 // summary
- Sup Hash = 0x34003 // sup
- Svg Hash = 0x34f03 // svg
- Tabindex Hash = 0x2e408 // tabindex
- Table Hash = 0x2f205 // table
- Target Hash = 0x706 // target
- Tbody Hash = 0xc05 // tbody
- Td Hash = 0x1e02 // td
- Template Hash = 0x4208 // template
- Text Hash = 0x1df04 // text
- Textarea Hash = 0x1df08 // textarea
- Tfoot Hash = 0xda05 // tfoot
- Th Hash = 0x2d102 // th
- Thead Hash = 0x2d105 // thead
- Time Hash = 0x12004 // time
- Title Hash = 0x15405 // title
- Tr Hash = 0x1f202 // tr
- Track Hash = 0x1f205 // track
- Translate Hash = 0x20b09 // translate
- Truespeed Hash = 0x23209 // truespeed
- Type Hash = 0x5104 // type
- Typemustmatch Hash = 0x1a80d // typemustmatch
- Typeof Hash = 0x5106 // typeof
- U Hash = 0x301 // u
- Ul Hash = 0x8302 // ul
- Undeterminate Hash = 0x370d // undeterminate
- Usemap Hash = 0xeb06 // usemap
- Valign Hash = 0x32606 // valign
- Value Hash = 0x18905 // value
- Valuetype Hash = 0x18909 // valuetype
- Var Hash = 0x28003 // var
- Video Hash = 0x35205 // video
- Visible Hash = 0x36b07 // visible
- Vlink Hash = 0x37205 // vlink
- Vocab Hash = 0x37705 // vocab
- Wbr Hash = 0x37e03 // wbr
- Xmlns Hash = 0x2eb05 // xmlns
- Xmp Hash = 0x36203 // 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 = 0x9acb0442
-const _Hash_maxLen = 15
-const _Hash_text = "aboutputargetbodyaccept-charsetdatalistarticlearbackgroundet" +
- "erminatemplatembedatatypeofaceaddressamp-boilerplatealinkbdi" +
- "reversedefaultMutedefaultSelectedeferowspanamedialogasyncanv" +
- "asideclarelabelongdescrollingaudiobjectfooterubyautofocusema" +
- "paramainertcitemscopedelautoplayaxismapauseonexitimenubgcolo" +
- "rulesectionoresizeblockquotebuttonoscriptitleclassidetailsel" +
- "ectedfnoshadefaultCheckedisabledivaluetypecodebaseamlesshape" +
- "codetypemustmatcheckedlcolgroupicturesourcecolspanowraplaint" +
- "extareadonlycompactrackeygenctypecontrolslotranslatefieldset" +
- "figcaptionfigurequiredtruespeedformactionformnovalidateh2h3h" +
- "4h5h6hgrouposterhiddenabledhtmlhttp-equivaricontentiframebor" +
- "derimginlistronginputinsmallowfullscreenmanifestylegendmarkm" +
- "atheadermaxlength1metabindexmlnsortablemetermethodmultiplemu" +
- "tedoptionpropertysubdopenavalignohreflanguagesummarysuprogre" +
- "ssrcsetsvgvideoptgrouprefixmprofilevisiblevlinkvocabbrwbr"
-
-var _Hash_table = [1 << 9]Hash{
- 0x0: 0x1df08, // textarea
- 0x4: 0x32d02, // hr
- 0x8: 0x1c207, // picture
- 0xb: 0x18905, // value
- 0xf: 0x2e408, // tabindex
- 0x12: 0x15905, // class
- 0x15: 0x37e03, // wbr
- 0x18: 0x1a80d, // typemustmatch
- 0x1a: 0x1b902, // dl
- 0x1d: 0xf903, // rtc
- 0x1e: 0x25702, // h4
- 0x22: 0x2ef08, // sortable
- 0x24: 0x4208, // template
- 0x25: 0x28c0b, // frameborder
- 0x28: 0x37a04, // abbr
- 0x29: 0x28b06, // iframe
- 0x2a: 0x610f, // amp-boilerplate
- 0x2c: 0x1e408, // readonly
- 0x30: 0x23f06, // action
- 0x33: 0x28c05, // frame
- 0x35: 0x12c05, // rules
- 0x36: 0x30208, // multiple
- 0x38: 0x31f03, // bdo
- 0x39: 0x1d506, // nowrap
- 0x3e: 0x21408, // fieldset
- 0x3f: 0x7503, // bdi
- 0x46: 0x7f0c, // defaultMuted
- 0x49: 0x35205, // video
- 0x4c: 0x19808, // seamless
- 0x4d: 0x13608, // noresize
- 0x4f: 0xb602, // id
- 0x51: 0x25d06, // hgroup
- 0x52: 0x23102, // dt
- 0x55: 0x12805, // color
- 0x56: 0x34003, // sup
- 0x59: 0x370d, // undeterminate
- 0x5a: 0x35608, // optgroup
- 0x5b: 0x2d206, // header
- 0x5c: 0xb405, // aside
- 0x5f: 0x10005, // scope
- 0x60: 0x101, // b
- 0x61: 0xcb02, // ol
- 0x64: 0x32b06, // nohref
- 0x65: 0x1da09, // plaintext
- 0x66: 0x20804, // slot
- 0x67: 0x11004, // axis
- 0x68: 0x12803, // col
- 0x69: 0x32606, // valign
- 0x6c: 0x2d105, // thead
- 0x70: 0x34906, // srcset
- 0x71: 0x26806, // hidden
- 0x76: 0x1bb08, // colgroup
- 0x78: 0x34f03, // svg
- 0x7b: 0x2cb04, // mark
- 0x7e: 0x33104, // lang
- 0x81: 0x1cf04, // cols
- 0x86: 0x5a07, // address
- 0x8b: 0xf404, // main
- 0x8c: 0x4302, // em
- 0x8f: 0x32d08, // hreflang
- 0x93: 0x1b307, // checked
- 0x94: 0x25902, // h5
- 0x95: 0x301, // u
- 0x96: 0x32705, // align
- 0x97: 0x14301, // q
- 0x99: 0xd506, // object
- 0x9b: 0x28407, // content
- 0x9d: 0xc809, // scrolling
- 0x9f: 0x36407, // profile
- 0xa0: 0x34903, // src
- 0xa1: 0xda05, // tfoot
- 0xa3: 0x2f705, // meter
- 0xa4: 0x37705, // vocab
- 0xa6: 0xd04, // body
- 0xa8: 0x19204, // code
- 0xac: 0x20108, // controls
- 0xb0: 0x2ab05, // small
- 0xb1: 0x18008, // disabled
- 0xb5: 0x5604, // face
- 0xb6: 0x501, // p
- 0xb9: 0x2302, // li
- 0xbb: 0xe409, // autofocus
- 0xbf: 0x27304, // html
- 0xc2: 0x4d08, // datatype
- 0xc6: 0x35d06, // prefix
- 0xcb: 0x35d03, // pre
- 0xcc: 0x1106, // accept
- 0xd1: 0x23b03, // for
- 0xd5: 0x29e06, // strong
- 0xd6: 0x9c07, // rowspan
- 0xd7: 0x25502, // h3
- 0xd8: 0x2cf04, // math
- 0xde: 0x16e07, // noshade
- 0xdf: 0x19f05, // shape
- 0xe1: 0x10006, // scoped
- 0xe3: 0x706, // target
- 0xe6: 0x21c0a, // figcaption
- 0xe9: 0x1df04, // text
- 0xea: 0x1c708, // resource
- 0xec: 0xee03, // map
- 0xf0: 0x29a06, // inlist
- 0xf1: 0x16506, // select
- 0xf2: 0x1f606, // keygen
- 0xf3: 0x5106, // typeof
- 0xf6: 0xb006, // canvas
- 0xf7: 0x30f06, // option
- 0xf8: 0xbe05, // label
- 0xf9: 0xbc03, // rel
- 0xfb: 0x1f04, // data
- 0xfd: 0x6004, // samp
- 0x100: 0x110e, // accept-charset
- 0x101: 0xeb06, // usemap
- 0x103: 0x2bc08, // manifest
- 0x109: 0xa204, // name
- 0x10a: 0x14806, // button
- 0x10b: 0x2b05, // clear
- 0x10e: 0x33907, // summary
- 0x10f: 0x2e204, // meta
- 0x110: 0x33108, // language
- 0x112: 0x300a, // background
- 0x113: 0x2707, // article
- 0x116: 0x23b0a, // formaction
- 0x119: 0x1, // a
- 0x11b: 0x5, // about
- 0x11c: 0xfc09, // itemscope
- 0x11e: 0x14d08, // noscript
- 0x11f: 0x15907, // classid
- 0x120: 0x36203, // xmp
- 0x121: 0x19604, // base
- 0x123: 0x1c01, // s
- 0x124: 0x36b07, // visible
- 0x126: 0x37b02, // bb
- 0x127: 0x9c04, // rows
- 0x12d: 0x2450e, // formnovalidate
- 0x131: 0x1f205, // track
- 0x135: 0x18703, // div
- 0x136: 0xac05, // async
- 0x137: 0x31508, // property
- 0x13a: 0x16c03, // dfn
- 0x13e: 0xf605, // inert
- 0x142: 0x10503, // del
- 0x144: 0x25302, // h2
- 0x147: 0x2c205, // style
- 0x149: 0x29703, // img
- 0x14a: 0xc05, // tbody
- 0x14b: 0x7603, // dir
- 0x14c: 0x2eb05, // xmlns
- 0x14e: 0x1f08, // datalist
- 0x14f: 0x32d04, // href
- 0x150: 0x1f202, // tr
- 0x151: 0x13e0a, // blockquote
- 0x152: 0x18909, // valuetype
- 0x155: 0xdb06, // footer
- 0x157: 0x14f06, // script
- 0x158: 0x1cf07, // colspan
- 0x15d: 0x1730e, // defaultChecked
- 0x15f: 0x2490a, // novalidate
- 0x164: 0x1a408, // codetype
- 0x165: 0x2c506, // legend
- 0x16b: 0x1160b, // pauseonexit
- 0x16c: 0x21f07, // caption
- 0x16f: 0x26c07, // enabled
- 0x173: 0x26206, // poster
- 0x175: 0x30a05, // muted
- 0x176: 0x11205, // ismap
- 0x178: 0x2a903, // ins
- 0x17a: 0xe004, // ruby
- 0x17b: 0x37c02, // br
- 0x17c: 0x8a0f, // defaultSelected
- 0x17d: 0x7403, // kbd
- 0x17f: 0x1c906, // source
- 0x182: 0x9f04, // span
- 0x184: 0x2d803, // max
- 0x18a: 0x5b02, // dd
- 0x18b: 0x13a04, // size
- 0x18c: 0xa405, // media
- 0x18d: 0x19208, // codebase
- 0x18f: 0x4905, // embed
- 0x192: 0x5104, // type
- 0x193: 0xf005, // param
- 0x194: 0x25b02, // h6
- 0x197: 0x28304, // icon
- 0x198: 0x12607, // bgcolor
- 0x199: 0x2ad0f, // allowfullscreen
- 0x19a: 0x12004, // time
- 0x19b: 0x7803, // rev
- 0x19d: 0x34208, // progress
- 0x19e: 0x22606, // figure
- 0x1a0: 0x6a02, // rp
- 0x1a2: 0xa606, // dialog
- 0x1a4: 0x2802, // rt
- 0x1a7: 0x1e304, // area
- 0x1a8: 0x7808, // reversed
- 0x1aa: 0x32104, // open
- 0x1ac: 0x2d204, // head
- 0x1ad: 0x7005, // alink
- 0x1af: 0x28003, // var
- 0x1b0: 0x15f07, // details
- 0x1b1: 0x2401, // i
- 0x1b3: 0x1e02, // td
- 0x1b4: 0xb707, // declare
- 0x1b5: 0x8302, // ul
- 0x1ba: 0x2fc06, // method
- 0x1bd: 0x13007, // section
- 0x1be: 0x22a08, // required
- 0x1c2: 0x9805, // defer
- 0x1c3: 0x37205, // vlink
- 0x1c4: 0x15405, // title
- 0x1c5: 0x2770a, // http-equiv
- 0x1c6: 0x1fa07, // enctype
- 0x1c7: 0x1ec07, // compact
- 0x1c8: 0x2d809, // maxlength
- 0x1c9: 0x16508, // selected
- 0x1cc: 0xd105, // audio
- 0x1cd: 0xc208, // longdesc
- 0x1d1: 0xfb04, // cite
- 0x1da: 0x2505, // start
- 0x1de: 0x2d102, // th
- 0x1df: 0x10808, // autoplay
- 0x1e2: 0x7104, // link
- 0x1e3: 0x206, // output
- 0x1e5: 0x12204, // menu
- 0x1e6: 0x2a405, // input
- 0x1eb: 0x32403, // nav
- 0x1ec: 0x31d03, // sub
- 0x1ee: 0x1807, // charset
- 0x1ef: 0x7f07, // default
- 0x1f3: 0x2f205, // table
- 0x1f4: 0x23b04, // form
- 0x1f5: 0x23209, // truespeed
- 0x1f6: 0x2f02, // rb
- 0x1fb: 0x20b09, // translate
- 0x1fd: 0x2e002, // h1
-}
diff --git a/vendor/github.com/tdewolff/minify/v2/html/html.go b/vendor/github.com/tdewolff/minify/v2/html/html.go
deleted file mode 100644
index 6868c9b79..000000000
--- a/vendor/github.com/tdewolff/minify/v2/html/html.go
+++ /dev/null
@@ -1,511 +0,0 @@
-// Package html minifies HTML5 following the specifications at http://www.w3.org/TR/html5/syntax.html.
-package html
-
-import (
- "bytes"
- "io"
-
- "github.com/tdewolff/minify/v2"
- "github.com/tdewolff/parse/v2"
- "github.com/tdewolff/parse/v2/buffer"
- "github.com/tdewolff/parse/v2/html"
-)
-
-var (
- gtBytes = []byte(">")
- isBytes = []byte("=")
- spaceBytes = []byte(" ")
- doctypeBytes = []byte("<!doctype html>")
- jsMimeBytes = []byte("application/javascript")
- cssMimeBytes = []byte("text/css")
- htmlMimeBytes = []byte("text/html")
- svgMimeBytes = []byte("image/svg+xml")
- formMimeBytes = []byte("application/x-www-form-urlencoded")
- mathMimeBytes = []byte("application/mathml+xml")
- dataSchemeBytes = []byte("data:")
- jsSchemeBytes = []byte("javascript:")
- httpBytes = []byte("http")
- radioBytes = []byte("radio")
- onBytes = []byte("on")
- textBytes = []byte("text")
- noneBytes = []byte("none")
- submitBytes = []byte("submit")
- allBytes = []byte("all")
- rectBytes = []byte("rect")
- dataBytes = []byte("data")
- getBytes = []byte("get")
- autoBytes = []byte("auto")
- oneBytes = []byte("one")
- inlineParams = map[string]string{"inline": "1"}
-)
-
-////////////////////////////////////////////////////////////////
-
-// DefaultMinifier is the default minifier.
-var DefaultMinifier = &Minifier{}
-
-// Minifier is an HTML minifier.
-type Minifier struct {
- KeepComments bool
- KeepConditionalComments bool
- KeepDefaultAttrVals bool
- KeepDocumentTags bool
- KeepEndTags bool
- KeepQuotes bool
- KeepWhitespace bool
-}
-
-// Minify minifies HTML data, it reads from r and writes to w.
-func Minify(m *minify.M, w io.Writer, r io.Reader, params map[string]string) error {
- return DefaultMinifier.Minify(m, w, r, params)
-}
-
-// Minify minifies HTML data, it reads from r and writes to w.
-func (o *Minifier) Minify(m *minify.M, w io.Writer, r io.Reader, _ map[string]string) error {
- var rawTagHash Hash
- var rawTagMediatype []byte
-
- omitSpace := true // if true the next leading space is omitted
- inPre := false
-
- attrMinifyBuffer := buffer.NewWriter(make([]byte, 0, 64))
- attrByteBuffer := make([]byte, 0, 64)
-
- z := parse.NewInput(r)
- defer z.Restore()
-
- l := html.NewLexer(z)
- tb := NewTokenBuffer(z, l)
- for {
- t := *tb.Shift()
- switch t.TokenType {
- case html.ErrorToken:
- if _, err := w.Write(nil); err != nil {
- return err
- }
- if l.Err() == io.EOF {
- return nil
- }
- return l.Err()
- case html.DoctypeToken:
- w.Write(doctypeBytes)
- case html.CommentToken:
- if o.KeepComments {
- w.Write(t.Data)
- } else if o.KeepConditionalComments && 6 < len(t.Text) && (bytes.HasPrefix(t.Text, []byte("[if ")) || bytes.HasSuffix(t.Text, []byte("[endif]")) || bytes.HasSuffix(t.Text, []byte("[endif]--"))) {
- // [if ...] is always 7 or more characters, [endif] is only encountered for downlevel-revealed
- // see https://msdn.microsoft.com/en-us/library/ms537512(v=vs.85).aspx#syntax
- if bytes.HasPrefix(t.Data, []byte("<!--[if ")) && bytes.HasSuffix(t.Data, []byte("<![endif]-->")) { // downlevel-hidden
- begin := bytes.IndexByte(t.Data, '>') + 1
- end := len(t.Data) - len("<![endif]-->")
- w.Write(t.Data[:begin])
- if err := o.Minify(m, w, buffer.NewReader(t.Data[begin:end]), nil); err != nil {
- return minify.UpdateErrorPosition(err, z, t.Offset)
- }
- w.Write(t.Data[end:])
- } else {
- w.Write(t.Data) // downlevel-revealed or short downlevel-hidden
- }
- } else if 1 < len(t.Text) && t.Text[0] == '#' {
- // SSI tags
- w.Write(t.Data)
- }
- case html.SvgToken:
- if err := m.MinifyMimetype(svgMimeBytes, w, buffer.NewReader(t.Data), nil); err != nil {
- if err != minify.ErrNotExist {
- return minify.UpdateErrorPosition(err, z, t.Offset)
- }
- w.Write(t.Data)
- }
- case html.MathToken:
- if err := m.MinifyMimetype(mathMimeBytes, w, buffer.NewReader(t.Data), nil); err != nil {
- if err != minify.ErrNotExist {
- return minify.UpdateErrorPosition(err, z, t.Offset)
- }
- w.Write(t.Data)
- }
- case html.TextToken:
- // CSS and JS minifiers for inline code
- if rawTagHash != 0 {
- if rawTagHash == Style || rawTagHash == Script || rawTagHash == Iframe {
- var mimetype []byte
- var params map[string]string
- if rawTagHash == Iframe {
- mimetype = htmlMimeBytes
- } else if len(rawTagMediatype) > 0 {
- mimetype, params = parse.Mediatype(rawTagMediatype)
- } else if rawTagHash == Script {
- mimetype = jsMimeBytes
- } else if rawTagHash == Style {
- mimetype = cssMimeBytes
- }
- if err := m.MinifyMimetype(mimetype, w, buffer.NewReader(t.Data), params); err != nil {
- if err != minify.ErrNotExist {
- return minify.UpdateErrorPosition(err, z, t.Offset)
- }
- w.Write(t.Data)
- }
- } else {
- w.Write(t.Data)
- }
- } else if inPre {
- w.Write(t.Data)
- } else {
- t.Data = parse.ReplaceMultipleWhitespaceAndEntities(t.Data, EntitiesMap, TextRevEntitiesMap)
-
- // whitespace removal; trim left
- if omitSpace && parse.IsWhitespace(t.Data[0]) {
- t.Data = t.Data[1:]
- }
-
- // whitespace removal; trim right
- omitSpace = false
- if len(t.Data) == 0 {
- omitSpace = true
- } else if parse.IsWhitespace(t.Data[len(t.Data)-1]) {
- omitSpace = true
- i := 0
- for {
- next := tb.Peek(i)
- // trim if EOF, text token with leading whitespace or block token
- if next.TokenType == html.ErrorToken {
- t.Data = t.Data[:len(t.Data)-1]
- omitSpace = false
- break
- } else if next.TokenType == html.TextToken {
- // this only happens when a comment, doctype or phrasing end tag (only for !o.KeepWhitespace) was in between
- // remove if the text token starts with a whitespace
- if len(next.Data) > 0 && parse.IsWhitespace(next.Data[0]) {
- t.Data = t.Data[:len(t.Data)-1]
- omitSpace = false
- }
- break
- } else if next.TokenType == html.StartTagToken || next.TokenType == html.EndTagToken {
- if o.KeepWhitespace {
- break
- }
- // remove when followed up by a block tag
- if next.Traits&nonPhrasingTag != 0 {
- t.Data = t.Data[:len(t.Data)-1]
- omitSpace = false
- break
- } else if next.TokenType == html.StartTagToken {
- break
- }
- }
- i++
- }
- }
-
- w.Write(t.Data)
- }
- case html.StartTagToken, html.EndTagToken:
- rawTagHash = 0
- hasAttributes := false
- if t.TokenType == html.StartTagToken {
- if next := tb.Peek(0); next.TokenType == html.AttributeToken {
- hasAttributes = true
- }
- if t.Traits&rawTag != 0 {
- // ignore empty script and style tags
- if !hasAttributes && (t.Hash == Script || t.Hash == Style) {
- if next := tb.Peek(1); next.TokenType == html.EndTagToken {
- tb.Shift()
- tb.Shift()
- break
- }
- }
- rawTagHash = t.Hash
- rawTagMediatype = nil
-
- // do not minify content of <style amp-boilerplate>
- if hasAttributes && t.Hash == Style {
- if attrs := tb.Attributes(Amp_Boilerplate); attrs[0] != nil {
- rawTagHash = 0
- }
- }
- }
- } else if t.Hash == Template {
- omitSpace = true // EndTagToken
- }
-
- if t.Hash == Pre {
- inPre = t.TokenType == html.StartTagToken
- }
-
- // remove superfluous tags, except for html, head and body tags when KeepDocumentTags is set
- if !hasAttributes && (!o.KeepDocumentTags && (t.Hash == Html || t.Hash == Head || t.Hash == Body) || t.Hash == Colgroup) {
- break
- } else if t.TokenType == html.EndTagToken {
- omitEndTag := false
- if !o.KeepEndTags {
- if t.Hash == Thead || t.Hash == Tbody || t.Hash == Tfoot || t.Hash == Tr || t.Hash == Th ||
- t.Hash == Td || t.Hash == Option || t.Hash == Dd || t.Hash == Dt || t.Hash == Li ||
- t.Hash == Rb || t.Hash == Rt || t.Hash == Rtc || t.Hash == Rp {
- omitEndTag = true // omit end tags
- } else if t.Hash == P {
- i := 0
- for {
- next := tb.Peek(i)
- i++
- // continue if text token is empty or whitespace
- if next.TokenType == html.TextToken && parse.IsAllWhitespace(next.Data) {
- continue
- }
- if next.TokenType == html.ErrorToken || next.TokenType == html.EndTagToken && next.Traits&keepPTag == 0 || next.TokenType == html.StartTagToken && next.Traits&omitPTag != 0 {
- omitEndTag = true // omit p end tag
- }
- break
- }
- } else if t.Hash == Optgroup {
- i := 0
- for {
- next := tb.Peek(i)
- i++
- // continue if text token
- if next.TokenType == html.TextToken {
- continue
- }
- if next.TokenType == html.ErrorToken || next.Hash != Option {
- omitEndTag = true // omit optgroup end tag
- }
- break
- }
- }
- }
-
- if t.Traits&nonPhrasingTag != 0 {
- omitSpace = true // omit spaces after block elements
- } else if o.KeepWhitespace || t.Traits&objectTag != 0 {
- omitSpace = false
- }
-
- if !omitEndTag {
- if len(t.Data) > 3+len(t.Text) {
- t.Data[2+len(t.Text)] = '>'
- t.Data = t.Data[:3+len(t.Text)]
- }
- w.Write(t.Data)
- }
-
- // skip text in select and optgroup tags
- if t.Hash == Option || t.Hash == Optgroup {
- if next := tb.Peek(0); next.TokenType == html.TextToken {
- tb.Shift()
- }
- }
- break
- }
-
- if o.KeepWhitespace || t.Traits&objectTag != 0 {
- omitSpace = false
- } else if t.Traits&nonPhrasingTag != 0 {
- omitSpace = true // omit spaces after block elements
- }
-
- w.Write(t.Data)
-
- if hasAttributes {
- if t.Hash == Meta {
- attrs := tb.Attributes(Content, Http_Equiv, Charset, Name)
- if content := attrs[0]; content != nil {
- if httpEquiv := attrs[1]; httpEquiv != nil {
- httpEquiv.AttrVal = parse.TrimWhitespace(httpEquiv.AttrVal)
- if charset := attrs[2]; charset == nil && parse.EqualFold(httpEquiv.AttrVal, []byte("content-type")) {
- content.AttrVal = minify.Mediatype(content.AttrVal)
- if bytes.Equal(content.AttrVal, []byte("text/html;charset=utf-8")) {
- httpEquiv.Text = nil
- content.Text = []byte("charset")
- content.Hash = Charset
- content.AttrVal = []byte("utf-8")
- }
- }
- }
- if name := attrs[3]; name != nil {
- name.AttrVal = parse.TrimWhitespace(name.AttrVal)
- if parse.EqualFold(name.AttrVal, []byte("keywords")) {
- content.AttrVal = bytes.ReplaceAll(content.AttrVal, []byte(", "), []byte(","))
- } else if parse.EqualFold(name.AttrVal, []byte("viewport")) {
- content.AttrVal = bytes.ReplaceAll(content.AttrVal, []byte(" "), []byte(""))
- for i := 0; i < len(content.AttrVal); i++ {
- if content.AttrVal[i] == '=' && i+2 < len(content.AttrVal) {
- i++
- if n := parse.Number(content.AttrVal[i:]); n > 0 {
- minNum := minify.Number(content.AttrVal[i:i+n], -1)
- if len(minNum) < n {
- copy(content.AttrVal[i:i+len(minNum)], minNum)
- copy(content.AttrVal[i+len(minNum):], content.AttrVal[i+n:])
- content.AttrVal = content.AttrVal[:len(content.AttrVal)+len(minNum)-n]
- }
- i += len(minNum)
- }
- i-- // mitigate for-loop increase
- }
- }
- }
- }
- }
- } else if t.Hash == Script {
- attrs := tb.Attributes(Src, Charset)
- if attrs[0] != nil && attrs[1] != nil {
- attrs[1].Text = nil
- }
- } else if t.Hash == Input {
- attrs := tb.Attributes(Type, Value)
- if t, value := attrs[0], attrs[1]; t != nil && value != nil {
- isRadio := parse.EqualFold(t.AttrVal, radioBytes)
- if !isRadio && len(value.AttrVal) == 0 {
- value.Text = nil
- } else if isRadio && parse.EqualFold(value.AttrVal, onBytes) {
- value.Text = nil
- }
- }
- } else if t.Hash == A {
- attrs := tb.Attributes(Id, Name)
- if id, name := attrs[0], attrs[1]; id != nil && name != nil {
- if bytes.Equal(id.AttrVal, name.AttrVal) {
- name.Text = nil
- }
- }
- }
-
- // write attributes
- for {
- attr := *tb.Shift()
- if attr.TokenType != html.AttributeToken {
- break
- } else if attr.Text == nil {
- continue // removed attribute
- }
-
- val := attr.AttrVal
- if attr.Traits&trimAttr != 0 {
- val = parse.ReplaceMultipleWhitespaceAndEntities(val, EntitiesMap, nil)
- val = parse.TrimWhitespace(val)
- } else {
- val = parse.ReplaceEntities(val, EntitiesMap, nil)
- }
- if t.Traits != 0 {
- if len(val) == 0 && (attr.Hash == Class ||
- attr.Hash == Dir ||
- attr.Hash == Id ||
- attr.Hash == Name ||
- attr.Hash == Action && t.Hash == Form) {
- continue // omit empty attribute values
- }
- if attr.Traits&caselessAttr != 0 {
- val = parse.ToLower(val)
- if attr.Hash == Enctype || attr.Hash == Codetype || attr.Hash == Accept || attr.Hash == Type && (t.Hash == A || t.Hash == Link || t.Hash == Embed || t.Hash == Object || t.Hash == Source || t.Hash == Script || t.Hash == Style) {
- val = minify.Mediatype(val)
- }
- }
- if rawTagHash != 0 && attr.Hash == Type {
- rawTagMediatype = parse.Copy(val)
- }
-
- // default attribute values can be omitted
- if !o.KeepDefaultAttrVals && (attr.Hash == Type && (t.Hash == Script && jsMimetypes[string(val)] ||
- t.Hash == Style && bytes.Equal(val, cssMimeBytes) ||
- t.Hash == Link && bytes.Equal(val, cssMimeBytes) ||
- t.Hash == Input && bytes.Equal(val, textBytes) ||
- t.Hash == Button && bytes.Equal(val, submitBytes)) ||
- attr.Hash == Language && t.Hash == Script ||
- attr.Hash == Method && bytes.Equal(val, getBytes) ||
- attr.Hash == Enctype && bytes.Equal(val, formMimeBytes) ||
- attr.Hash == Colspan && bytes.Equal(val, oneBytes) ||
- attr.Hash == Rowspan && bytes.Equal(val, oneBytes) ||
- attr.Hash == Shape && bytes.Equal(val, rectBytes) ||
- attr.Hash == Span && bytes.Equal(val, oneBytes) ||
- attr.Hash == Clear && bytes.Equal(val, noneBytes) ||
- attr.Hash == Frameborder && bytes.Equal(val, oneBytes) ||
- attr.Hash == Scrolling && bytes.Equal(val, autoBytes) ||
- attr.Hash == Valuetype && bytes.Equal(val, dataBytes) ||
- attr.Hash == Media && t.Hash == Style && bytes.Equal(val, allBytes)) {
- continue
- }
-
- if attr.Hash == Style {
- // CSS minifier for attribute inline code
- val = parse.TrimWhitespace(val)
- attrMinifyBuffer.Reset()
- if err := m.MinifyMimetype(cssMimeBytes, attrMinifyBuffer, buffer.NewReader(val), inlineParams); err == nil {
- val = attrMinifyBuffer.Bytes()
- } else if err != minify.ErrNotExist {
- return minify.UpdateErrorPosition(err, z, attr.Offset)
- }
- if len(val) == 0 {
- continue
- }
- } else if len(attr.Text) > 2 && attr.Text[0] == 'o' && attr.Text[1] == 'n' {
- // JS minifier for attribute inline code
- val = parse.TrimWhitespace(val)
- if len(val) >= 11 && parse.EqualFold(val[:11], jsSchemeBytes) {
- val = val[11:]
- }
- attrMinifyBuffer.Reset()
- if err := m.MinifyMimetype(jsMimeBytes, attrMinifyBuffer, buffer.NewReader(val), nil); err == nil {
- val = attrMinifyBuffer.Bytes()
- } else if err != minify.ErrNotExist {
- return minify.UpdateErrorPosition(err, z, attr.Offset)
- }
- if len(val) == 0 {
- continue
- }
- } else if attr.Traits&urlAttr != 0 { // anchors are already handled
- val = parse.TrimWhitespace(val)
- if 5 < len(val) {
- if parse.EqualFold(val[:4], httpBytes) {
- if val[4] == ':' {
- if m.URL != nil && m.URL.Scheme == "http" {
- val = val[5:]
- } else {
- parse.ToLower(val[:4])
- }
- } else if (val[4] == 's' || val[4] == 'S') && val[5] == ':' {
- if m.URL != nil && m.URL.Scheme == "https" {
- val = val[6:]
- } else {
- parse.ToLower(val[:5])
- }
- }
- } else if parse.EqualFold(val[:5], dataSchemeBytes) {
- val = minify.DataURI(m, val)
- }
- }
- }
- }
-
- w.Write(spaceBytes)
- w.Write(attr.Text)
- if len(val) > 0 && attr.Traits&booleanAttr == 0 {
- w.Write(isBytes)
-
- // use double quotes for RDFa attributes
- isXML := attr.Hash == Vocab || attr.Hash == Typeof || attr.Hash == Property || attr.Hash == Resource || attr.Hash == Prefix || attr.Hash == Content || attr.Hash == About || attr.Hash == Rev || attr.Hash == Datatype || attr.Hash == Inlist
-
- // no quotes if possible, else prefer single or double depending on which occurs more often in value
- val = html.EscapeAttrVal(&attrByteBuffer, attr.AttrVal, val, o.KeepQuotes || isXML)
- w.Write(val)
- }
- }
- } else {
- _ = tb.Shift() // StartTagClose
- }
- w.Write(gtBytes)
-
- // skip text in select and optgroup tags
- if t.Hash == Select || t.Hash == Optgroup {
- if next := tb.Peek(0); next.TokenType == html.TextToken {
- tb.Shift()
- }
- }
-
- // keep space after phrasing tags (<i>, <span>, ...) FontAwesome etc.
- if t.TokenType == html.StartTagToken && t.Traits&nonPhrasingTag == 0 {
- if next := tb.Peek(0); next.Hash == t.Hash && next.TokenType == html.EndTagToken {
- omitSpace = false
- }
- }
- }
- }
-}
diff --git a/vendor/github.com/tdewolff/minify/v2/html/table.go b/vendor/github.com/tdewolff/minify/v2/html/table.go
deleted file mode 100644
index 1ace143a5..000000000
--- a/vendor/github.com/tdewolff/minify/v2/html/table.go
+++ /dev/null
@@ -1,1346 +0,0 @@
-package html
-
-type traits uint16
-
-const (
- normalTag traits = 1 << iota
- rawTag // raw tags need special processing for their content
- nonPhrasingTag // non-phrasing elements are unaffected by whitespace, remove spaces around these tags
- objectTag // content tags with a few exclusions, keep spaces after these open/close tags
- omitPTag // omit p end tag if it is followed by this start tag
- keepPTag // keep p end tag if it is followed by this end tag
-)
-
-const (
- booleanAttr traits = 1 << iota
- caselessAttr
- urlAttr
- trimAttr
-)
-
-var tagMap = map[Hash]traits{
- A: keepPTag,
- Abbr: normalTag,
- Address: nonPhrasingTag | omitPTag,
- Area: normalTag,
- Article: nonPhrasingTag | omitPTag,
- Aside: nonPhrasingTag | omitPTag,
- Audio: keepPTag,
- B: normalTag,
- Base: normalTag,
- Bb: normalTag,
- Bdi: normalTag,
- Bdo: normalTag,
- Blockquote: nonPhrasingTag | omitPTag,
- Body: nonPhrasingTag,
- Br: nonPhrasingTag,
- Button: objectTag,
- Canvas: objectTag | keepPTag,
- Caption: nonPhrasingTag,
- Cite: normalTag,
- Code: normalTag,
- Col: nonPhrasingTag,
- Colgroup: nonPhrasingTag,
- Data: normalTag,
- Datalist: normalTag,
- Dd: nonPhrasingTag,
- Del: keepPTag,
- Details: omitPTag,
- Dfn: normalTag,
- Dialog: normalTag,
- Div: nonPhrasingTag | omitPTag,
- Dl: nonPhrasingTag | omitPTag,
- Dt: nonPhrasingTag,
- Em: normalTag,
- Embed: nonPhrasingTag,
- Fieldset: nonPhrasingTag | omitPTag,
- Figcaption: nonPhrasingTag | omitPTag,
- Figure: nonPhrasingTag | omitPTag,
- Footer: nonPhrasingTag | omitPTag,
- Form: nonPhrasingTag | omitPTag,
- H1: nonPhrasingTag | omitPTag,
- H2: nonPhrasingTag | omitPTag,
- H3: nonPhrasingTag | omitPTag,
- H4: nonPhrasingTag | omitPTag,
- H5: nonPhrasingTag | omitPTag,
- H6: nonPhrasingTag | omitPTag,
- Head: nonPhrasingTag,
- Header: nonPhrasingTag | omitPTag,
- Hgroup: nonPhrasingTag,
- Hr: nonPhrasingTag | omitPTag,
- Html: nonPhrasingTag,
- I: normalTag,
- Iframe: rawTag | objectTag,
- Img: objectTag,
- Input: objectTag,
- Ins: keepPTag,
- Kbd: normalTag,
- Label: normalTag,
- Legend: normalTag,
- Li: nonPhrasingTag,
- Link: normalTag,
- Main: nonPhrasingTag | omitPTag,
- Map: keepPTag,
- Mark: normalTag,
- Math: rawTag,
- Menu: omitPTag,
- Meta: nonPhrasingTag,
- Meter: objectTag,
- Nav: nonPhrasingTag | omitPTag,
- Noscript: nonPhrasingTag | keepPTag,
- Object: objectTag,
- Ol: nonPhrasingTag | omitPTag,
- Optgroup: normalTag,
- Option: normalTag,
- Output: nonPhrasingTag,
- P: nonPhrasingTag | omitPTag,
- Param: normalTag,
- Picture: normalTag,
- Pre: nonPhrasingTag | omitPTag,
- Progress: objectTag,
- Q: objectTag,
- Rp: normalTag,
- Rt: normalTag,
- Ruby: normalTag,
- S: normalTag,
- Samp: normalTag,
- Script: rawTag,
- Section: nonPhrasingTag | omitPTag,
- Select: objectTag,
- Slot: normalTag,
- Small: normalTag,
- Source: normalTag,
- Span: normalTag,
- Strong: normalTag,
- Style: rawTag | nonPhrasingTag,
- Sub: normalTag,
- Summary: normalTag,
- Sup: normalTag,
- Svg: rawTag | objectTag,
- Table: nonPhrasingTag | omitPTag,
- Tbody: nonPhrasingTag,
- Td: nonPhrasingTag,
- Template: normalTag,
- Textarea: rawTag | objectTag,
- Tfoot: nonPhrasingTag,
- Th: nonPhrasingTag,
- Thead: nonPhrasingTag,
- Time: normalTag,
- Title: nonPhrasingTag,
- Tr: nonPhrasingTag,
- Track: normalTag,
- U: normalTag,
- Ul: nonPhrasingTag | omitPTag,
- Var: normalTag,
- Video: objectTag | keepPTag,
- Wbr: normalTag,
-}
-
-var attrMap = map[Hash]traits{
- Accept: caselessAttr,
- Accept_Charset: caselessAttr,
- Action: urlAttr,
- Align: caselessAttr,
- Alink: caselessAttr,
- Allowfullscreen: booleanAttr,
- Async: booleanAttr,
- Autofocus: booleanAttr,
- Autoplay: booleanAttr,
- Axis: caselessAttr,
- Background: urlAttr,
- Bgcolor: caselessAttr,
- Charset: caselessAttr,
- Checked: booleanAttr,
- Cite: urlAttr,
- Class: trimAttr,
- Classid: urlAttr,
- Clear: caselessAttr,
- Codebase: urlAttr,
- Codetype: caselessAttr,
- Color: caselessAttr,
- Cols: trimAttr,
- Colspan: trimAttr,
- Compact: booleanAttr,
- Controls: booleanAttr,
- Data: urlAttr,
- Declare: booleanAttr,
- Default: booleanAttr,
- DefaultChecked: booleanAttr,
- DefaultMuted: booleanAttr,
- DefaultSelected: booleanAttr,
- Defer: booleanAttr,
- Dir: caselessAttr,
- Disabled: booleanAttr,
- Enabled: booleanAttr,
- Enctype: caselessAttr,
- Face: caselessAttr,
- Formaction: urlAttr,
- Formnovalidate: booleanAttr,
- Frame: caselessAttr,
- Hidden: booleanAttr,
- Href: urlAttr,
- Hreflang: caselessAttr,
- Http_Equiv: caselessAttr,
- Icon: urlAttr,
- Inert: booleanAttr,
- Ismap: booleanAttr,
- Itemscope: booleanAttr,
- Lang: caselessAttr,
- Language: caselessAttr,
- Link: caselessAttr,
- Longdesc: urlAttr,
- Manifest: urlAttr,
- Maxlength: trimAttr,
- Media: caselessAttr | trimAttr,
- Method: caselessAttr,
- Multiple: booleanAttr,
- Muted: booleanAttr,
- Nohref: booleanAttr,
- Noresize: booleanAttr,
- Noshade: booleanAttr,
- Novalidate: booleanAttr,
- Nowrap: booleanAttr,
- Open: booleanAttr,
- Pauseonexit: booleanAttr,
- Poster: urlAttr,
- Profile: urlAttr,
- Readonly: booleanAttr,
- Rel: caselessAttr | trimAttr,
- Required: booleanAttr,
- Rev: caselessAttr,
- Reversed: booleanAttr,
- Rows: trimAttr,
- Rowspan: trimAttr,
- Rules: caselessAttr,
- Scope: caselessAttr,
- Scoped: booleanAttr,
- Scrolling: caselessAttr,
- Seamless: booleanAttr,
- Selected: booleanAttr,
- Shape: caselessAttr,
- Size: trimAttr,
- Sortable: booleanAttr,
- Span: trimAttr,
- Src: urlAttr,
- Srcset: trimAttr,
- Tabindex: trimAttr,
- Target: caselessAttr,
- Text: caselessAttr,
- Translate: caselessAttr,
- Truespeed: booleanAttr,
- Type: caselessAttr,
- Typemustmatch: booleanAttr,
- Undeterminate: booleanAttr,
- Usemap: urlAttr,
- Valign: caselessAttr,
- Valuetype: caselessAttr,
- Vlink: caselessAttr,
- Visible: booleanAttr,
- Xmlns: urlAttr,
-}
-
-var jsMimetypes = map[string]bool{
- "text/javascript": true,
- "application/javascript": true,
-}
-
-// EntitiesMap are all named character entities.
-var EntitiesMap = map[string][]byte{
- "AElig": []byte("&#198;"),
- "AMP": []byte("&"),
- "Aacute": []byte("&#193;"),
- "Abreve": []byte("&#258;"),
- "Acirc": []byte("&#194;"),
- "Agrave": []byte("&#192;"),
- "Alpha": []byte("&#913;"),
- "Amacr": []byte("&#256;"),
- "Aogon": []byte("&#260;"),
- "ApplyFunction": []byte("&af;"),
- "Aring": []byte("&#197;"),
- "Assign": []byte("&#8788;"),
- "Atilde": []byte("&#195;"),
- "Backslash": []byte("&#8726;"),
- "Barwed": []byte("&#8966;"),
- "Because": []byte("&#8757;"),
- "Bernoullis": []byte("&Bscr;"),
- "Breve": []byte("&#728;"),
- "Bumpeq": []byte("&bump;"),
- "Cacute": []byte("&#262;"),
- "CapitalDifferentialD": []byte("&DD;"),
- "Cayleys": []byte("&Cfr;"),
- "Ccaron": []byte("&#268;"),
- "Ccedil": []byte("&#199;"),
- "Ccirc": []byte("&#264;"),
- "Cconint": []byte("&#8752;"),
- "Cedilla": []byte("&#184;"),
- "CenterDot": []byte("&#183;"),
- "CircleDot": []byte("&odot;"),
- "CircleMinus": []byte("&#8854;"),
- "CirclePlus": []byte("&#8853;"),
- "CircleTimes": []byte("&#8855;"),
- "ClockwiseContourIntegral": []byte("&#8754;"),
- "CloseCurlyDoubleQuote": []byte("&#8221;"),
- "CloseCurlyQuote": []byte("&#8217;"),
- "Congruent": []byte("&#8801;"),
- "Conint": []byte("&#8751;"),
- "ContourIntegral": []byte("&oint;"),
- "Coproduct": []byte("&#8720;"),
- "CounterClockwiseContourIntegral": []byte("&#8755;"),
- "CupCap": []byte("&#8781;"),
- "DDotrahd": []byte("&#10513;"),
- "Dagger": []byte("&#8225;"),
- "Dcaron": []byte("&#270;"),
- "Delta": []byte("&#916;"),
- "DiacriticalAcute": []byte("&#180;"),
- "DiacriticalDot": []byte("&dot;"),
- "DiacriticalDoubleAcute": []byte("&#733;"),
- "DiacriticalGrave": []byte("`"),
- "DiacriticalTilde": []byte("&#732;"),
- "Diamond": []byte("&diam;"),
- "DifferentialD": []byte("&dd;"),
- "DotDot": []byte("&#8412;"),
- "DotEqual": []byte("&#8784;"),
- "DoubleContourIntegral": []byte("&#8751;"),
- "DoubleDot": []byte("&Dot;"),
- "DoubleDownArrow": []byte("&dArr;"),
- "DoubleLeftArrow": []byte("&lArr;"),
- "DoubleLeftRightArrow": []byte("&iff;"),
- "DoubleLeftTee": []byte("&Dashv;"),
- "DoubleLongLeftArrow": []byte("&xlArr;"),
- "DoubleLongLeftRightArrow": []byte("&xhArr;"),
- "DoubleLongRightArrow": []byte("&xrArr;"),
- "DoubleRightArrow": []byte("&rArr;"),
- "DoubleRightTee": []byte("&#8872;"),
- "DoubleUpArrow": []byte("&uArr;"),
- "DoubleUpDownArrow": []byte("&vArr;"),
- "DoubleVerticalBar": []byte("&par;"),
- "DownArrow": []byte("&darr;"),
- "DownArrowBar": []byte("&#10515;"),
- "DownArrowUpArrow": []byte("&#8693;"),
- "DownBreve": []byte("&#785;"),
- "DownLeftRightVector": []byte("&#10576;"),
- "DownLeftTeeVector": []byte("&#10590;"),
- "DownLeftVector": []byte("&#8637;"),
- "DownLeftVectorBar": []byte("&#10582;"),
- "DownRightTeeVector": []byte("&#10591;"),
- "DownRightVector": []byte("&#8641;"),
- "DownRightVectorBar": []byte("&#10583;"),
- "DownTee": []byte("&top;"),
- "DownTeeArrow": []byte("&#8615;"),
- "Downarrow": []byte("&dArr;"),
- "Dstrok": []byte("&#272;"),
- "Eacute": []byte("&#201;"),
- "Ecaron": []byte("&#282;"),
- "Ecirc": []byte("&#202;"),
- "Egrave": []byte("&#200;"),
- "Element": []byte("&in;"),
- "Emacr": []byte("&#274;"),
- "EmptySmallSquare": []byte("&#9723;"),
- "EmptyVerySmallSquare": []byte("&#9643;"),
- "Eogon": []byte("&#280;"),
- "Epsilon": []byte("&#917;"),
- "EqualTilde": []byte("&esim;"),
- "Equilibrium": []byte("&#8652;"),
- "Exists": []byte("&#8707;"),
- "ExponentialE": []byte("&ee;"),
- "FilledSmallSquare": []byte("&#9724;"),
- "FilledVerySmallSquare": []byte("&squf;"),
- "ForAll": []byte("&#8704;"),
- "Fouriertrf": []byte("&Fscr;"),
- "GT": []byte(">"),
- "Gamma": []byte("&#915;"),
- "Gammad": []byte("&#988;"),
- "Gbreve": []byte("&#286;"),
- "Gcedil": []byte("&#290;"),
- "Gcirc": []byte("&#284;"),
- "GreaterEqual": []byte("&ge;"),
- "GreaterEqualLess": []byte("&gel;"),
- "GreaterFullEqual": []byte("&gE;"),
- "GreaterGreater": []byte("&#10914;"),
- "GreaterLess": []byte("&gl;"),
- "GreaterSlantEqual": []byte("&ges;"),
- "GreaterTilde": []byte("&gsim;"),
- "HARDcy": []byte("&#1066;"),
- "Hacek": []byte("&#711;"),
- "Hat": []byte("^"),
- "Hcirc": []byte("&#292;"),
- "HilbertSpace": []byte("&Hscr;"),
- "HorizontalLine": []byte("&boxh;"),
- "Hstrok": []byte("&#294;"),
- "HumpDownHump": []byte("&bump;"),
- "HumpEqual": []byte("&#8783;"),
- "IJlig": []byte("&#306;"),
- "Iacute": []byte("&#205;"),
- "Icirc": []byte("&#206;"),
- "Ifr": []byte("&Im;"),
- "Igrave": []byte("&#204;"),
- "Imacr": []byte("&#298;"),
- "ImaginaryI": []byte("&ii;"),
- "Implies": []byte("&rArr;"),
- "Integral": []byte("&int;"),
- "Intersection": []byte("&xcap;"),
- "InvisibleComma": []byte("&ic;"),
- "InvisibleTimes": []byte("&it;"),
- "Iogon": []byte("&#302;"),
- "Itilde": []byte("&#296;"),
- "Jcirc": []byte("&#308;"),
- "Jsercy": []byte("&#1032;"),
- "Kappa": []byte("&#922;"),
- "Kcedil": []byte("&#310;"),
- "LT": []byte("<"),
- "Lacute": []byte("&#313;"),
- "Lambda": []byte("&#923;"),
- "Laplacetrf": []byte("&Lscr;"),
- "Lcaron": []byte("&#317;"),
- "Lcedil": []byte("&#315;"),
- "LeftAngleBracket": []byte("&lang;"),
- "LeftArrow": []byte("&larr;"),
- "LeftArrowBar": []byte("&#8676;"),
- "LeftArrowRightArrow": []byte("&#8646;"),
- "LeftCeiling": []byte("&#8968;"),
- "LeftDoubleBracket": []byte("&lobrk;"),
- "LeftDownTeeVector": []byte("&#10593;"),
- "LeftDownVector": []byte("&#8643;"),
- "LeftDownVectorBar": []byte("&#10585;"),
- "LeftFloor": []byte("&#8970;"),
- "LeftRightArrow": []byte("&harr;"),
- "LeftRightVector": []byte("&#10574;"),
- "LeftTee": []byte("&#8867;"),
- "LeftTeeArrow": []byte("&#8612;"),
- "LeftTeeVector": []byte("&#10586;"),
- "LeftTriangle": []byte("&#8882;"),
- "LeftTriangleBar": []byte("&#10703;"),
- "LeftTriangleEqual": []byte("&#8884;"),
- "LeftUpDownVector": []byte("&#10577;"),
- "LeftUpTeeVector": []byte("&#10592;"),
- "LeftUpVector": []byte("&#8639;"),
- "LeftUpVectorBar": []byte("&#10584;"),
- "LeftVector": []byte("&#8636;"),
- "LeftVectorBar": []byte("&#10578;"),
- "Leftarrow": []byte("&lArr;"),
- "Leftrightarrow": []byte("&iff;"),
- "LessEqualGreater": []byte("&leg;"),
- "LessFullEqual": []byte("&lE;"),
- "LessGreater": []byte("&lg;"),
- "LessLess": []byte("&#10913;"),
- "LessSlantEqual": []byte("&les;"),
- "LessTilde": []byte("&lsim;"),
- "Lleftarrow": []byte("&#8666;"),
- "Lmidot": []byte("&#319;"),
- "LongLeftArrow": []byte("&xlarr;"),
- "LongLeftRightArrow": []byte("&xharr;"),
- "LongRightArrow": []byte("&xrarr;"),
- "Longleftarrow": []byte("&xlArr;"),
- "Longleftrightarrow": []byte("&xhArr;"),
- "Longrightarrow": []byte("&xrArr;"),
- "LowerLeftArrow": []byte("&#8601;"),
- "LowerRightArrow": []byte("&#8600;"),
- "Lstrok": []byte("&#321;"),
- "MediumSpace": []byte("&#8287;"),
- "Mellintrf": []byte("&Mscr;"),
- "MinusPlus": []byte("&mp;"),
- "Nacute": []byte("&#323;"),
- "Ncaron": []byte("&#327;"),
- "Ncedil": []byte("&#325;"),
- "NegativeMediumSpace": []byte("&#8203;"),
- "NegativeThickSpace": []byte("&#8203;"),
- "NegativeThinSpace": []byte("&#8203;"),
- "NegativeVeryThinSpace": []byte("&#8203;"),
- "NestedGreaterGreater": []byte("&Gt;"),
- "NestedLessLess": []byte("&Lt;"),
- "NewLine": []byte("\n"),
- "NoBreak": []byte("&#8288;"),
- "NonBreakingSpace": []byte("&#160;"),
- "NotCongruent": []byte("&#8802;"),
- "NotCupCap": []byte("&#8813;"),
- "NotDoubleVerticalBar": []byte("&npar;"),
- "NotElement": []byte("&#8713;"),
- "NotEqual": []byte("&ne;"),
- "NotExists": []byte("&#8708;"),
- "NotGreater": []byte("&ngt;"),
- "NotGreaterEqual": []byte("&nge;"),
- "NotGreaterLess": []byte("&ntgl;"),
- "NotGreaterTilde": []byte("&#8821;"),
- "NotLeftTriangle": []byte("&#8938;"),
- "NotLeftTriangleEqual": []byte("&#8940;"),
- "NotLess": []byte("&nlt;"),
- "NotLessEqual": []byte("&nle;"),
- "NotLessGreater": []byte("&ntlg;"),
- "NotLessTilde": []byte("&#8820;"),
- "NotPrecedes": []byte("&npr;"),
- "NotPrecedesSlantEqual": []byte("&#8928;"),
- "NotReverseElement": []byte("&#8716;"),
- "NotRightTriangle": []byte("&#8939;"),
- "NotRightTriangleEqual": []byte("&#8941;"),
- "NotSquareSubsetEqual": []byte("&#8930;"),
- "NotSquareSupersetEqual": []byte("&#8931;"),
- "NotSubsetEqual": []byte("&#8840;"),
- "NotSucceeds": []byte("&nsc;"),
- "NotSucceedsSlantEqual": []byte("&#8929;"),
- "NotSupersetEqual": []byte("&#8841;"),
- "NotTilde": []byte("&nsim;"),
- "NotTildeEqual": []byte("&#8772;"),
- "NotTildeFullEqual": []byte("&#8775;"),
- "NotTildeTilde": []byte("&nap;"),
- "NotVerticalBar": []byte("&nmid;"),
- "Ntilde": []byte("&#209;"),
- "OElig": []byte("&#338;"),
- "Oacute": []byte("&#211;"),
- "Ocirc": []byte("&#212;"),
- "Odblac": []byte("&#336;"),
- "Ograve": []byte("&#210;"),
- "Omacr": []byte("&#332;"),
- "Omega": []byte("&ohm;"),
- "Omicron": []byte("&#927;"),
- "OpenCurlyDoubleQuote": []byte("&#8220;"),
- "OpenCurlyQuote": []byte("&#8216;"),
- "Oslash": []byte("&#216;"),
- "Otilde": []byte("&#213;"),
- "OverBar": []byte("&#8254;"),
- "OverBrace": []byte("&#9182;"),
- "OverBracket": []byte("&tbrk;"),
- "OverParenthesis": []byte("&#9180;"),
- "PartialD": []byte("&part;"),
- "PlusMinus": []byte("&pm;"),
- "Poincareplane": []byte("&Hfr;"),
- "Precedes": []byte("&pr;"),
- "PrecedesEqual": []byte("&pre;"),
- "PrecedesSlantEqual": []byte("&#8828;"),
- "PrecedesTilde": []byte("&#8830;"),
- "Product": []byte("&prod;"),
- "Proportion": []byte("&#8759;"),
- "Proportional": []byte("&prop;"),
- "QUOT": []byte("\""),
- "Racute": []byte("&#340;"),
- "Rcaron": []byte("&#344;"),
- "Rcedil": []byte("&#342;"),
- "ReverseElement": []byte("&ni;"),
- "ReverseEquilibrium": []byte("&#8651;"),
- "ReverseUpEquilibrium": []byte("&duhar;"),
- "Rfr": []byte("&Re;"),
- "RightAngleBracket": []byte("&rang;"),
- "RightArrow": []byte("&rarr;"),
- "RightArrowBar": []byte("&#8677;"),
- "RightArrowLeftArrow": []byte("&#8644;"),
- "RightCeiling": []byte("&#8969;"),
- "RightDoubleBracket": []byte("&robrk;"),
- "RightDownTeeVector": []byte("&#10589;"),
- "RightDownVector": []byte("&#8642;"),
- "RightDownVectorBar": []byte("&#10581;"),
- "RightFloor": []byte("&#8971;"),
- "RightTee": []byte("&#8866;"),
- "RightTeeArrow": []byte("&map;"),
- "RightTeeVector": []byte("&#10587;"),
- "RightTriangle": []byte("&#8883;"),
- "RightTriangleBar": []byte("&#10704;"),
- "RightTriangleEqual": []byte("&#8885;"),
- "RightUpDownVector": []byte("&#10575;"),
- "RightUpTeeVector": []byte("&#10588;"),
- "RightUpVector": []byte("&#8638;"),
- "RightUpVectorBar": []byte("&#10580;"),
- "RightVector": []byte("&#8640;"),
- "RightVectorBar": []byte("&#10579;"),
- "Rightarrow": []byte("&rArr;"),
- "RoundImplies": []byte("&#10608;"),
- "Rrightarrow": []byte("&#8667;"),
- "RuleDelayed": []byte("&#10740;"),
- "SHCHcy": []byte("&#1065;"),
- "SOFTcy": []byte("&#1068;"),
- "Sacute": []byte("&#346;"),
- "Scaron": []byte("&#352;"),
- "Scedil": []byte("&#350;"),
- "Scirc": []byte("&#348;"),
- "ShortDownArrow": []byte("&darr;"),
- "ShortLeftArrow": []byte("&larr;"),
- "ShortRightArrow": []byte("&rarr;"),
- "ShortUpArrow": []byte("&uarr;"),
- "Sigma": []byte("&#931;"),
- "SmallCircle": []byte("&#8728;"),
- "Square": []byte("&squ;"),
- "SquareIntersection": []byte("&#8851;"),
- "SquareSubset": []byte("&#8847;"),
- "SquareSubsetEqual": []byte("&#8849;"),
- "SquareSuperset": []byte("&#8848;"),
- "SquareSupersetEqual": []byte("&#8850;"),
- "SquareUnion": []byte("&#8852;"),
- "Subset": []byte("&Sub;"),
- "SubsetEqual": []byte("&sube;"),
- "Succeeds": []byte("&sc;"),
- "SucceedsEqual": []byte("&sce;"),
- "SucceedsSlantEqual": []byte("&#8829;"),
- "SucceedsTilde": []byte("&#8831;"),
- "SuchThat": []byte("&ni;"),
- "Superset": []byte("&sup;"),
- "SupersetEqual": []byte("&supe;"),
- "Supset": []byte("&Sup;"),
- "THORN": []byte("&#222;"),
- "Tab": []byte(" "),
- "Tcaron": []byte("&#356;"),
- "Tcedil": []byte("&#354;"),
- "Therefore": []byte("&#8756;"),
- "Theta": []byte("&#920;"),
- "ThinSpace": []byte("&#8201;"),
- "Tilde": []byte("&sim;"),
- "TildeEqual": []byte("&sime;"),
- "TildeFullEqual": []byte("&cong;"),
- "TildeTilde": []byte("&ap;"),
- "TripleDot": []byte("&tdot;"),
- "Tstrok": []byte("&#358;"),
- "Uacute": []byte("&#218;"),
- "Uarrocir": []byte("&#10569;"),
- "Ubreve": []byte("&#364;"),
- "Ucirc": []byte("&#219;"),
- "Udblac": []byte("&#368;"),
- "Ugrave": []byte("&#217;"),
- "Umacr": []byte("&#362;"),
- "UnderBar": []byte("_"),
- "UnderBrace": []byte("&#9183;"),
- "UnderBracket": []byte("&bbrk;"),
- "UnderParenthesis": []byte("&#9181;"),
- "Union": []byte("&xcup;"),
- "UnionPlus": []byte("&#8846;"),
- "Uogon": []byte("&#370;"),
- "UpArrow": []byte("&uarr;"),
- "UpArrowBar": []byte("&#10514;"),
- "UpArrowDownArrow": []byte("&#8645;"),
- "UpDownArrow": []byte("&varr;"),
- "UpEquilibrium": []byte("&udhar;"),
- "UpTee": []byte("&bot;"),
- "UpTeeArrow": []byte("&#8613;"),
- "Uparrow": []byte("&uArr;"),
- "Updownarrow": []byte("&vArr;"),
- "UpperLeftArrow": []byte("&#8598;"),
- "UpperRightArrow": []byte("&#8599;"),
- "Upsilon": []byte("&#933;"),
- "Uring": []byte("&#366;"),
- "Utilde": []byte("&#360;"),
- "Verbar": []byte("&Vert;"),
- "VerticalBar": []byte("&mid;"),
- "VerticalLine": []byte("|"),
- "VerticalSeparator": []byte("&#10072;"),
- "VerticalTilde": []byte("&wr;"),
- "VeryThinSpace": []byte("&#8202;"),
- "Vvdash": []byte("&#8874;"),
- "Wcirc": []byte("&#372;"),
- "Yacute": []byte("&#221;"),
- "Ycirc": []byte("&#374;"),
- "Zacute": []byte("&#377;"),
- "Zcaron": []byte("&#381;"),
- "ZeroWidthSpace": []byte("&#8203;"),
- "aacute": []byte("&#225;"),
- "abreve": []byte("&#259;"),
- "acirc": []byte("&#226;"),
- "acute": []byte("&#180;"),
- "aelig": []byte("&#230;"),
- "agrave": []byte("&#224;"),
- "alefsym": []byte("&#8501;"),
- "alpha": []byte("&#945;"),
- "amacr": []byte("&#257;"),
- "amp": []byte("&"),
- "andslope": []byte("&#10840;"),
- "angle": []byte("&ang;"),
- "angmsd": []byte("&#8737;"),
- "angmsdaa": []byte("&#10664;"),
- "angmsdab": []byte("&#10665;"),
- "angmsdac": []byte("&#10666;"),
- "angmsdad": []byte("&#10667;"),
- "angmsdae": []byte("&#10668;"),
- "angmsdaf": []byte("&#10669;"),
- "angmsdag": []byte("&#10670;"),
- "angmsdah": []byte("&#10671;"),
- "angrtvb": []byte("&#8894;"),
- "angrtvbd": []byte("&#10653;"),
- "angsph": []byte("&#8738;"),
- "angst": []byte("&#197;"),
- "angzarr": []byte("&#9084;"),
- "aogon": []byte("&#261;"),
- "apos": []byte("'"),
- "approx": []byte("&ap;"),
- "approxeq": []byte("&ape;"),
- "aring": []byte("&#229;"),
- "ast": []byte("*"),
- "asymp": []byte("&ap;"),
- "asympeq": []byte("&#8781;"),
- "atilde": []byte("&#227;"),
- "awconint": []byte("&#8755;"),
- "backcong": []byte("&#8780;"),
- "backepsilon": []byte("&#1014;"),
- "backprime": []byte("&#8245;"),
- "backsim": []byte("&bsim;"),
- "backsimeq": []byte("&#8909;"),
- "barvee": []byte("&#8893;"),
- "barwed": []byte("&#8965;"),
- "barwedge": []byte("&#8965;"),
- "bbrktbrk": []byte("&#9142;"),
- "becaus": []byte("&#8757;"),
- "because": []byte("&#8757;"),
- "bemptyv": []byte("&#10672;"),
- "bernou": []byte("&Bscr;"),
- "between": []byte("&#8812;"),
- "bigcap": []byte("&xcap;"),
- "bigcirc": []byte("&#9711;"),
- "bigcup": []byte("&xcup;"),
- "bigodot": []byte("&xodot;"),
- "bigoplus": []byte("&#10753;"),
- "bigotimes": []byte("&#10754;"),
- "bigsqcup": []byte("&#10758;"),
- "bigstar": []byte("&#9733;"),
- "bigtriangledown": []byte("&#9661;"),
- "bigtriangleup": []byte("&#9651;"),
- "biguplus": []byte("&#10756;"),
- "bigvee": []byte("&Vee;"),
- "bigwedge": []byte("&#8896;"),
- "bkarow": []byte("&rbarr;"),
- "blacklozenge": []byte("&lozf;"),
- "blacksquare": []byte("&squf;"),
- "blacktriangle": []byte("&#9652;"),
- "blacktriangledown": []byte("&#9662;"),
- "blacktriangleleft": []byte("&#9666;"),
- "blacktriangleright": []byte("&#9656;"),
- "bottom": []byte("&bot;"),
- "bowtie": []byte("&#8904;"),
- "boxminus": []byte("&#8863;"),
- "boxplus": []byte("&#8862;"),
- "boxtimes": []byte("&#8864;"),
- "bprime": []byte("&#8245;"),
- "breve": []byte("&#728;"),
- "brvbar": []byte("&#166;"),
- "bsol": []byte("\\"),
- "bsolhsub": []byte("&#10184;"),
- "bullet": []byte("&bull;"),
- "bumpeq": []byte("&#8783;"),
- "cacute": []byte("&#263;"),
- "capbrcup": []byte("&#10825;"),
- "caron": []byte("&#711;"),
- "ccaron": []byte("&#269;"),
- "ccedil": []byte("&#231;"),
- "ccirc": []byte("&#265;"),
- "ccupssm": []byte("&#10832;"),
- "cedil": []byte("&#184;"),
- "cemptyv": []byte("&#10674;"),
- "centerdot": []byte("&#183;"),
- "checkmark": []byte("&check;"),
- "circeq": []byte("&cire;"),
- "circlearrowleft": []byte("&#8634;"),
- "circlearrowright": []byte("&#8635;"),
- "circledR": []byte("&REG;"),
- "circledS": []byte("&oS;"),
- "circledast": []byte("&oast;"),
- "circledcirc": []byte("&ocir;"),
- "circleddash": []byte("&#8861;"),
- "cirfnint": []byte("&#10768;"),
- "cirscir": []byte("&#10690;"),
- "clubsuit": []byte("&#9827;"),
- "colon": []byte(":"),
- "colone": []byte("&#8788;"),
- "coloneq": []byte("&#8788;"),
- "comma": []byte(","),
- "commat": []byte("@"),
- "compfn": []byte("&#8728;"),
- "complement": []byte("&comp;"),
- "complexes": []byte("&Copf;"),
- "congdot": []byte("&#10861;"),
- "conint": []byte("&oint;"),
- "coprod": []byte("&#8720;"),
- "copysr": []byte("&#8471;"),
- "cudarrl": []byte("&#10552;"),
- "cudarrr": []byte("&#10549;"),
- "cularr": []byte("&#8630;"),
- "cularrp": []byte("&#10557;"),
- "cupbrcap": []byte("&#10824;"),
- "cupdot": []byte("&#8845;"),
- "curarr": []byte("&#8631;"),
- "curarrm": []byte("&#10556;"),
- "curlyeqprec": []byte("&#8926;"),
- "curlyeqsucc": []byte("&#8927;"),
- "curlyvee": []byte("&#8910;"),
- "curlywedge": []byte("&#8911;"),
- "curren": []byte("&#164;"),
- "curvearrowleft": []byte("&#8630;"),
- "curvearrowright": []byte("&#8631;"),
- "cwconint": []byte("&#8754;"),
- "cylcty": []byte("&#9005;"),
- "dagger": []byte("&#8224;"),
- "daleth": []byte("&#8504;"),
- "dbkarow": []byte("&rBarr;"),
- "dblac": []byte("&#733;"),
- "dcaron": []byte("&#271;"),
- "ddagger": []byte("&#8225;"),
- "ddotseq": []byte("&eDDot;"),
- "delta": []byte("&#948;"),
- "demptyv": []byte("&#10673;"),
- "diamond": []byte("&diam;"),
- "diamondsuit": []byte("&#9830;"),
- "digamma": []byte("&#989;"),
- "divide": []byte("&div;"),
- "divideontimes": []byte("&#8903;"),
- "divonx": []byte("&#8903;"),
- "dlcorn": []byte("&#8990;"),
- "dlcrop": []byte("&#8973;"),
- "dollar": []byte("$"),
- "doteqdot": []byte("&eDot;"),
- "dotminus": []byte("&#8760;"),
- "dotplus": []byte("&#8724;"),
- "dotsquare": []byte("&#8865;"),
- "doublebarwedge": []byte("&#8966;"),
- "downarrow": []byte("&darr;"),
- "downdownarrows": []byte("&#8650;"),
- "downharpoonleft": []byte("&#8643;"),
- "downharpoonright": []byte("&#8642;"),
- "drbkarow": []byte("&RBarr;"),
- "drcorn": []byte("&#8991;"),
- "drcrop": []byte("&#8972;"),
- "dstrok": []byte("&#273;"),
- "dwangle": []byte("&#10662;"),
- "dzigrarr": []byte("&#10239;"),
- "eacute": []byte("&#233;"),
- "ecaron": []byte("&#283;"),
- "ecirc": []byte("&#234;"),
- "ecolon": []byte("&#8789;"),
- "egrave": []byte("&#232;"),
- "elinters": []byte("&#9191;"),
- "emacr": []byte("&#275;"),
- "emptyset": []byte("&#8709;"),
- "emptyv": []byte("&#8709;"),
- "emsp13": []byte("&#8196;"),
- "emsp14": []byte("&#8197;"),
- "eogon": []byte("&#281;"),
- "epsilon": []byte("&#949;"),
- "eqcirc": []byte("&ecir;"),
- "eqcolon": []byte("&#8789;"),
- "eqsim": []byte("&esim;"),
- "eqslantgtr": []byte("&egs;"),
- "eqslantless": []byte("&els;"),
- "equals": []byte("="),
- "equest": []byte("&#8799;"),
- "equivDD": []byte("&#10872;"),
- "eqvparsl": []byte("&#10725;"),
- "excl": []byte("!"),
- "expectation": []byte("&Escr;"),
- "exponentiale": []byte("&ee;"),
- "fallingdotseq": []byte("&#8786;"),
- "female": []byte("&#9792;"),
- "forall": []byte("&#8704;"),
- "fpartint": []byte("&#10765;"),
- "frac12": []byte("&#189;"),
- "frac13": []byte("&#8531;"),
- "frac14": []byte("&#188;"),
- "frac15": []byte("&#8533;"),
- "frac16": []byte("&#8537;"),
- "frac18": []byte("&#8539;"),
- "frac23": []byte("&#8532;"),
- "frac25": []byte("&#8534;"),
- "frac34": []byte("&#190;"),
- "frac35": []byte("&#8535;"),
- "frac38": []byte("&#8540;"),
- "frac45": []byte("&#8536;"),
- "frac56": []byte("&#8538;"),
- "frac58": []byte("&#8541;"),
- "frac78": []byte("&#8542;"),
- "gacute": []byte("&#501;"),
- "gamma": []byte("&#947;"),
- "gammad": []byte("&#989;"),
- "gbreve": []byte("&#287;"),
- "gcirc": []byte("&#285;"),
- "geq": []byte("&ge;"),
- "geqq": []byte("&gE;"),
- "geqslant": []byte("&ges;"),
- "gesdoto": []byte("&#10882;"),
- "gesdotol": []byte("&#10884;"),
- "ggg": []byte("&Gg;"),
- "gnapprox": []byte("&gnap;"),
- "gneq": []byte("&gne;"),
- "gneqq": []byte("&gnE;"),
- "grave": []byte("`"),
- "gt": []byte(">"),
- "gtquest": []byte("&#10876;"),
- "gtrapprox": []byte("&gap;"),
- "gtrdot": []byte("&#8919;"),
- "gtreqless": []byte("&gel;"),
- "gtreqqless": []byte("&gEl;"),
- "gtrless": []byte("&gl;"),
- "gtrsim": []byte("&gsim;"),
- "hArr": []byte("&iff;"),
- "hairsp": []byte("&#8202;"),
- "hamilt": []byte("&Hscr;"),
- "hardcy": []byte("&#1098;"),
- "harrcir": []byte("&#10568;"),
- "hcirc": []byte("&#293;"),
- "hearts": []byte("&#9829;"),
- "heartsuit": []byte("&#9829;"),
- "hellip": []byte("&mldr;"),
- "hercon": []byte("&#8889;"),
- "hksearow": []byte("&#10533;"),
- "hkswarow": []byte("&#10534;"),
- "homtht": []byte("&#8763;"),
- "hookleftarrow": []byte("&#8617;"),
- "hookrightarrow": []byte("&#8618;"),
- "horbar": []byte("&#8213;"),
- "hslash": []byte("&hbar;"),
- "hstrok": []byte("&#295;"),
- "hybull": []byte("&#8259;"),
- "hyphen": []byte("&dash;"),
- "iacute": []byte("&#237;"),
- "icirc": []byte("&#238;"),
- "iexcl": []byte("&#161;"),
- "igrave": []byte("&#236;"),
- "iiiint": []byte("&qint;"),
- "iiint": []byte("&tint;"),
- "ijlig": []byte("&#307;"),
- "imacr": []byte("&#299;"),
- "image": []byte("&Im;"),
- "imagline": []byte("&Iscr;"),
- "imagpart": []byte("&Im;"),
- "imath": []byte("&#305;"),
- "imped": []byte("&#437;"),
- "incare": []byte("&#8453;"),
- "infintie": []byte("&#10717;"),
- "inodot": []byte("&#305;"),
- "intcal": []byte("&#8890;"),
- "integers": []byte("&Zopf;"),
- "intercal": []byte("&#8890;"),
- "intlarhk": []byte("&#10775;"),
- "intprod": []byte("&iprod;"),
- "iogon": []byte("&#303;"),
- "iquest": []byte("&#191;"),
- "isin": []byte("&in;"),
- "isindot": []byte("&#8949;"),
- "isinsv": []byte("&#8947;"),
- "isinv": []byte("&in;"),
- "itilde": []byte("&#297;"),
- "jcirc": []byte("&#309;"),
- "jmath": []byte("&#567;"),
- "jsercy": []byte("&#1112;"),
- "kappa": []byte("&#954;"),
- "kappav": []byte("&#1008;"),
- "kcedil": []byte("&#311;"),
- "kgreen": []byte("&#312;"),
- "lacute": []byte("&#314;"),
- "laemptyv": []byte("&#10676;"),
- "lagran": []byte("&Lscr;"),
- "lambda": []byte("&#955;"),
- "langle": []byte("&lang;"),
- "laquo": []byte("&#171;"),
- "larrbfs": []byte("&#10527;"),
- "larrhk": []byte("&#8617;"),
- "larrlp": []byte("&#8619;"),
- "larrsim": []byte("&#10611;"),
- "larrtl": []byte("&#8610;"),
- "lbrace": []byte("{"),
- "lbrack": []byte("["),
- "lbrksld": []byte("&#10639;"),
- "lbrkslu": []byte("&#10637;"),
- "lcaron": []byte("&#318;"),
- "lcedil": []byte("&#316;"),
- "lcub": []byte("{"),
- "ldquor": []byte("&#8222;"),
- "ldrdhar": []byte("&#10599;"),
- "ldrushar": []byte("&#10571;"),
- "leftarrow": []byte("&larr;"),
- "leftarrowtail": []byte("&#8610;"),
- "leftharpoondown": []byte("&#8637;"),
- "leftharpoonup": []byte("&#8636;"),
- "leftleftarrows": []byte("&#8647;"),
- "leftrightarrow": []byte("&harr;"),
- "leftrightarrows": []byte("&#8646;"),
- "leftrightharpoons": []byte("&#8651;"),
- "leftrightsquigarrow": []byte("&#8621;"),
- "leftthreetimes": []byte("&#8907;"),
- "leq": []byte("&le;"),
- "leqq": []byte("&lE;"),
- "leqslant": []byte("&les;"),
- "lesdoto": []byte("&#10881;"),
- "lesdotor": []byte("&#10883;"),
- "lessapprox": []byte("&lap;"),
- "lessdot": []byte("&#8918;"),
- "lesseqgtr": []byte("&leg;"),
- "lesseqqgtr": []byte("&lEg;"),
- "lessgtr": []byte("&lg;"),
- "lesssim": []byte("&lsim;"),
- "lfloor": []byte("&#8970;"),
- "llcorner": []byte("&#8990;"),
- "lmidot": []byte("&#320;"),
- "lmoust": []byte("&#9136;"),
- "lmoustache": []byte("&#9136;"),
- "lnapprox": []byte("&lnap;"),
- "lneq": []byte("&lne;"),
- "lneqq": []byte("&lnE;"),
- "longleftarrow": []byte("&xlarr;"),
- "longleftrightarrow": []byte("&xharr;"),
- "longmapsto": []byte("&xmap;"),
- "longrightarrow": []byte("&xrarr;"),
- "looparrowleft": []byte("&#8619;"),
- "looparrowright": []byte("&#8620;"),
- "lotimes": []byte("&#10804;"),
- "lowast": []byte("&#8727;"),
- "lowbar": []byte("_"),
- "lozenge": []byte("&loz;"),
- "lpar": []byte("("),
- "lrcorner": []byte("&#8991;"),
- "lsaquo": []byte("&#8249;"),
- "lsqb": []byte("["),
- "lsquor": []byte("&#8218;"),
- "lstrok": []byte("&#322;"),
- "lt": []byte("<"),
- "lthree": []byte("&#8907;"),
- "ltimes": []byte("&#8905;"),
- "ltquest": []byte("&#10875;"),
- "lurdshar": []byte("&#10570;"),
- "luruhar": []byte("&#10598;"),
- "maltese": []byte("&malt;"),
- "mapsto": []byte("&map;"),
- "mapstodown": []byte("&#8615;"),
- "mapstoleft": []byte("&#8612;"),
- "mapstoup": []byte("&#8613;"),
- "marker": []byte("&#9646;"),
- "measuredangle": []byte("&#8737;"),
- "micro": []byte("&#181;"),
- "midast": []byte("*"),
- "middot": []byte("&#183;"),
- "minusb": []byte("&#8863;"),
- "minusd": []byte("&#8760;"),
- "minusdu": []byte("&#10794;"),
- "mnplus": []byte("&mp;"),
- "models": []byte("&#8871;"),
- "mstpos": []byte("&ac;"),
- "multimap": []byte("&#8888;"),
- "nLeftarrow": []byte("&#8653;"),
- "nLeftrightarrow": []byte("&#8654;"),
- "nRightarrow": []byte("&#8655;"),
- "nVDash": []byte("&#8879;"),
- "nVdash": []byte("&#8878;"),
- "nabla": []byte("&Del;"),
- "nacute": []byte("&#324;"),
- "napos": []byte("&#329;"),
- "napprox": []byte("&nap;"),
- "natural": []byte("&#9838;"),
- "naturals": []byte("&Nopf;"),
- "ncaron": []byte("&#328;"),
- "ncedil": []byte("&#326;"),
- "nearrow": []byte("&#8599;"),
- "nequiv": []byte("&#8802;"),
- "nesear": []byte("&toea;"),
- "nexist": []byte("&#8708;"),
- "nexists": []byte("&#8708;"),
- "ngeq": []byte("&nge;"),
- "ngtr": []byte("&ngt;"),
- "niv": []byte("&ni;"),
- "nleftarrow": []byte("&#8602;"),
- "nleftrightarrow": []byte("&#8622;"),
- "nleq": []byte("&nle;"),
- "nless": []byte("&nlt;"),
- "nltrie": []byte("&#8940;"),
- "notinva": []byte("&#8713;"),
- "notinvb": []byte("&#8951;"),
- "notinvc": []byte("&#8950;"),
- "notniva": []byte("&#8716;"),
- "notnivb": []byte("&#8958;"),
- "notnivc": []byte("&#8957;"),
- "nparallel": []byte("&npar;"),
- "npolint": []byte("&#10772;"),
- "nprcue": []byte("&#8928;"),
- "nprec": []byte("&npr;"),
- "nrightarrow": []byte("&#8603;"),
- "nrtrie": []byte("&#8941;"),
- "nsccue": []byte("&#8929;"),
- "nshortmid": []byte("&nmid;"),
- "nshortparallel": []byte("&npar;"),
- "nsimeq": []byte("&#8772;"),
- "nsmid": []byte("&nmid;"),
- "nspar": []byte("&npar;"),
- "nsqsube": []byte("&#8930;"),
- "nsqsupe": []byte("&#8931;"),
- "nsubseteq": []byte("&#8840;"),
- "nsucc": []byte("&nsc;"),
- "nsupseteq": []byte("&#8841;"),
- "ntilde": []byte("&#241;"),
- "ntriangleleft": []byte("&#8938;"),
- "ntrianglelefteq": []byte("&#8940;"),
- "ntriangleright": []byte("&#8939;"),
- "ntrianglerighteq": []byte("&#8941;"),
- "num": []byte("#"),
- "numero": []byte("&#8470;"),
- "nvDash": []byte("&#8877;"),
- "nvdash": []byte("&#8876;"),
- "nvinfin": []byte("&#10718;"),
- "nwarrow": []byte("&#8598;"),
- "oacute": []byte("&#243;"),
- "ocirc": []byte("&#244;"),
- "odblac": []byte("&#337;"),
- "oelig": []byte("&#339;"),
- "ograve": []byte("&#242;"),
- "olcross": []byte("&#10683;"),
- "omacr": []byte("&#333;"),
- "omega": []byte("&#969;"),
- "omicron": []byte("&#959;"),
- "ominus": []byte("&#8854;"),
- "order": []byte("&oscr;"),
- "orderof": []byte("&oscr;"),
- "origof": []byte("&#8886;"),
- "orslope": []byte("&#10839;"),
- "oslash": []byte("&#248;"),
- "otilde": []byte("&#245;"),
- "otimes": []byte("&#8855;"),
- "otimesas": []byte("&#10806;"),
- "parallel": []byte("&par;"),
- "percnt": []byte("%"),
- "period": []byte("."),
- "permil": []byte("&#8240;"),
- "perp": []byte("&bot;"),
- "pertenk": []byte("&#8241;"),
- "phmmat": []byte("&Mscr;"),
- "pitchfork": []byte("&fork;"),
- "planck": []byte("&hbar;"),
- "planckh": []byte("&#8462;"),
- "plankv": []byte("&hbar;"),
- "plus": []byte("+"),
- "plusacir": []byte("&#10787;"),
- "pluscir": []byte("&#10786;"),
- "plusdo": []byte("&#8724;"),
- "plusmn": []byte("&pm;"),
- "plussim": []byte("&#10790;"),
- "plustwo": []byte("&#10791;"),
- "pointint": []byte("&#10773;"),
- "pound": []byte("&#163;"),
- "prec": []byte("&pr;"),
- "precapprox": []byte("&prap;"),
- "preccurlyeq": []byte("&#8828;"),
- "preceq": []byte("&pre;"),
- "precnapprox": []byte("&prnap;"),
- "precneqq": []byte("&prnE;"),
- "precnsim": []byte("&#8936;"),
- "precsim": []byte("&#8830;"),
- "primes": []byte("&Popf;"),
- "prnsim": []byte("&#8936;"),
- "profalar": []byte("&#9006;"),
- "profline": []byte("&#8978;"),
- "profsurf": []byte("&#8979;"),
- "propto": []byte("&prop;"),
- "prurel": []byte("&#8880;"),
- "puncsp": []byte("&#8200;"),
- "qprime": []byte("&#8279;"),
- "quaternions": []byte("&Hopf;"),
- "quatint": []byte("&#10774;"),
- "quest": []byte("?"),
- "questeq": []byte("&#8799;"),
- "quot": []byte("\""),
- "racute": []byte("&#341;"),
- "radic": []byte("&Sqrt;"),
- "raemptyv": []byte("&#10675;"),
- "rangle": []byte("&rang;"),
- "raquo": []byte("&#187;"),
- "rarrbfs": []byte("&#10528;"),
- "rarrhk": []byte("&#8618;"),
- "rarrlp": []byte("&#8620;"),
- "rarrsim": []byte("&#10612;"),
- "rarrtl": []byte("&#8611;"),
- "rationals": []byte("&Qopf;"),
- "rbrace": []byte("}"),
- "rbrack": []byte("]"),
- "rbrksld": []byte("&#10638;"),
- "rbrkslu": []byte("&#10640;"),
- "rcaron": []byte("&#345;"),
- "rcedil": []byte("&#343;"),
- "rcub": []byte("}"),
- "rdldhar": []byte("&#10601;"),
- "rdquor": []byte("&#8221;"),
- "real": []byte("&Re;"),
- "realine": []byte("&Rscr;"),
- "realpart": []byte("&Re;"),
- "reals": []byte("&Ropf;"),
- "rfloor": []byte("&#8971;"),
- "rightarrow": []byte("&rarr;"),
- "rightarrowtail": []byte("&#8611;"),
- "rightharpoondown": []byte("&#8641;"),
- "rightharpoonup": []byte("&#8640;"),
- "rightleftarrows": []byte("&#8644;"),
- "rightleftharpoons": []byte("&#8652;"),
- "rightrightarrows": []byte("&#8649;"),
- "rightsquigarrow": []byte("&#8605;"),
- "rightthreetimes": []byte("&#8908;"),
- "risingdotseq": []byte("&#8787;"),
- "rmoust": []byte("&#9137;"),
- "rmoustache": []byte("&#9137;"),
- "rotimes": []byte("&#10805;"),
- "rpar": []byte(")"),
- "rppolint": []byte("&#10770;"),
- "rsaquo": []byte("&#8250;"),
- "rsqb": []byte("]"),
- "rsquor": []byte("&#8217;"),
- "rthree": []byte("&#8908;"),
- "rtimes": []byte("&#8906;"),
- "rtriltri": []byte("&#10702;"),
- "ruluhar": []byte("&#10600;"),
- "sacute": []byte("&#347;"),
- "scaron": []byte("&#353;"),
- "scedil": []byte("&#351;"),
- "scirc": []byte("&#349;"),
- "scnsim": []byte("&#8937;"),
- "scpolint": []byte("&#10771;"),
- "searrow": []byte("&#8600;"),
- "semi": []byte(";"),
- "seswar": []byte("&tosa;"),
- "setminus": []byte("&#8726;"),
- "sfrown": []byte("&#8994;"),
- "shchcy": []byte("&#1097;"),
- "shortmid": []byte("&mid;"),
- "shortparallel": []byte("&par;"),
- "sigma": []byte("&#963;"),
- "sigmaf": []byte("&#962;"),
- "sigmav": []byte("&#962;"),
- "simeq": []byte("&sime;"),
- "simplus": []byte("&#10788;"),
- "simrarr": []byte("&#10610;"),
- "slarr": []byte("&larr;"),
- "smallsetminus": []byte("&#8726;"),
- "smeparsl": []byte("&#10724;"),
- "smid": []byte("&mid;"),
- "softcy": []byte("&#1100;"),
- "sol": []byte("/"),
- "solbar": []byte("&#9023;"),
- "spades": []byte("&#9824;"),
- "spadesuit": []byte("&#9824;"),
- "spar": []byte("&par;"),
- "sqsube": []byte("&#8849;"),
- "sqsubset": []byte("&#8847;"),
- "sqsubseteq": []byte("&#8849;"),
- "sqsupe": []byte("&#8850;"),
- "sqsupset": []byte("&#8848;"),
- "sqsupseteq": []byte("&#8850;"),
- "square": []byte("&squ;"),
- "squarf": []byte("&squf;"),
- "srarr": []byte("&rarr;"),
- "ssetmn": []byte("&#8726;"),
- "ssmile": []byte("&#8995;"),
- "sstarf": []byte("&Star;"),
- "straightepsilon": []byte("&#1013;"),
- "straightphi": []byte("&#981;"),
- "strns": []byte("&#175;"),
- "subedot": []byte("&#10947;"),
- "submult": []byte("&#10945;"),
- "subplus": []byte("&#10943;"),
- "subrarr": []byte("&#10617;"),
- "subset": []byte("&sub;"),
- "subseteq": []byte("&sube;"),
- "subseteqq": []byte("&subE;"),
- "subsetneq": []byte("&#8842;"),
- "subsetneqq": []byte("&subnE;"),
- "succ": []byte("&sc;"),
- "succapprox": []byte("&scap;"),
- "succcurlyeq": []byte("&#8829;"),
- "succeq": []byte("&sce;"),
- "succnapprox": []byte("&scnap;"),
- "succneqq": []byte("&scnE;"),
- "succnsim": []byte("&#8937;"),
- "succsim": []byte("&#8831;"),
- "supdsub": []byte("&#10968;"),
- "supedot": []byte("&#10948;"),
- "suphsol": []byte("&#10185;"),
- "suphsub": []byte("&#10967;"),
- "suplarr": []byte("&#10619;"),
- "supmult": []byte("&#10946;"),
- "supplus": []byte("&#10944;"),
- "supset": []byte("&sup;"),
- "supseteq": []byte("&supe;"),
- "supseteqq": []byte("&supE;"),
- "supsetneq": []byte("&#8843;"),
- "supsetneqq": []byte("&supnE;"),
- "swarrow": []byte("&#8601;"),
- "szlig": []byte("&#223;"),
- "target": []byte("&#8982;"),
- "tcaron": []byte("&#357;"),
- "tcedil": []byte("&#355;"),
- "telrec": []byte("&#8981;"),
- "there4": []byte("&#8756;"),
- "therefore": []byte("&#8756;"),
- "theta": []byte("&#952;"),
- "thetasym": []byte("&#977;"),
- "thetav": []byte("&#977;"),
- "thickapprox": []byte("&ap;"),
- "thicksim": []byte("&sim;"),
- "thinsp": []byte("&#8201;"),
- "thkap": []byte("&ap;"),
- "thksim": []byte("&sim;"),
- "thorn": []byte("&#254;"),
- "tilde": []byte("&#732;"),
- "times": []byte("&#215;"),
- "timesb": []byte("&#8864;"),
- "timesbar": []byte("&#10801;"),
- "topbot": []byte("&#9014;"),
- "topfork": []byte("&#10970;"),
- "tprime": []byte("&#8244;"),
- "triangle": []byte("&utri;"),
- "triangledown": []byte("&dtri;"),
- "triangleleft": []byte("&ltri;"),
- "trianglelefteq": []byte("&#8884;"),
- "triangleq": []byte("&trie;"),
- "triangleright": []byte("&rtri;"),
- "trianglerighteq": []byte("&#8885;"),
- "tridot": []byte("&#9708;"),
- "triminus": []byte("&#10810;"),
- "triplus": []byte("&#10809;"),
- "tritime": []byte("&#10811;"),
- "trpezium": []byte("&#9186;"),
- "tstrok": []byte("&#359;"),
- "twoheadleftarrow": []byte("&Larr;"),
- "twoheadrightarrow": []byte("&Rarr;"),
- "uacute": []byte("&#250;"),
- "ubreve": []byte("&#365;"),
- "ucirc": []byte("&#251;"),
- "udblac": []byte("&#369;"),
- "ugrave": []byte("&#249;"),
- "ulcorn": []byte("&#8988;"),
- "ulcorner": []byte("&#8988;"),
- "ulcrop": []byte("&#8975;"),
- "umacr": []byte("&#363;"),
- "uogon": []byte("&#371;"),
- "uparrow": []byte("&uarr;"),
- "updownarrow": []byte("&varr;"),
- "upharpoonleft": []byte("&#8639;"),
- "upharpoonright": []byte("&#8638;"),
- "upsih": []byte("&#978;"),
- "upsilon": []byte("&#965;"),
- "upuparrows": []byte("&#8648;"),
- "urcorn": []byte("&#8989;"),
- "urcorner": []byte("&#8989;"),
- "urcrop": []byte("&#8974;"),
- "uring": []byte("&#367;"),
- "utilde": []byte("&#361;"),
- "uwangle": []byte("&#10663;"),
- "varepsilon": []byte("&#1013;"),
- "varkappa": []byte("&#1008;"),
- "varnothing": []byte("&#8709;"),
- "varphi": []byte("&#981;"),
- "varpi": []byte("&piv;"),
- "varpropto": []byte("&prop;"),
- "varrho": []byte("&rhov;"),
- "varsigma": []byte("&#962;"),
- "vartheta": []byte("&#977;"),
- "vartriangleleft": []byte("&#8882;"),
- "vartriangleright": []byte("&#8883;"),
- "vee": []byte("&or;"),
- "veebar": []byte("&#8891;"),
- "vellip": []byte("&#8942;"),
- "verbar": []byte("|"),
- "vert": []byte("|"),
- "vprop": []byte("&prop;"),
- "vzigzag": []byte("&#10650;"),
- "wcirc": []byte("&#373;"),
- "wedge": []byte("&and;"),
- "wedgeq": []byte("&#8793;"),
- "weierp": []byte("&wp;"),
- "wreath": []byte("&wr;"),
- "xvee": []byte("&Vee;"),
- "xwedge": []byte("&#8896;"),
- "yacute": []byte("&#253;"),
- "ycirc": []byte("&#375;"),
- "zacute": []byte("&#378;"),
- "zcaron": []byte("&#382;"),
- "zeetrf": []byte("&Zfr;"),
- "zigrarr": []byte("&#8669;"),
-}
-
-// TextRevEntitiesMap is a map of escapes.
-var TextRevEntitiesMap = map[byte][]byte{
- '<': []byte("&lt;"),
-}