summaryrefslogtreecommitdiffstats
path: root/vendor/golang.org/x/text/cases
diff options
context:
space:
mode:
authorChristopher Speller <crspeller@gmail.com>2018-04-16 05:37:14 -0700
committerJoram Wilander <jwawilander@gmail.com>2018-04-16 08:37:14 -0400
commit6e2cb00008cbf09e556b00f87603797fcaa47e09 (patch)
tree3c0eb55ff4226a3f024aad373140d1fb860a6404 /vendor/golang.org/x/text/cases
parentbf24f51c4e1cc6286885460672f7f449e8c6f5ef (diff)
downloadchat-6e2cb00008cbf09e556b00f87603797fcaa47e09.tar.gz
chat-6e2cb00008cbf09e556b00f87603797fcaa47e09.tar.bz2
chat-6e2cb00008cbf09e556b00f87603797fcaa47e09.zip
Depenancy upgrades and movign to dep. (#8630)
Diffstat (limited to 'vendor/golang.org/x/text/cases')
-rw-r--r--vendor/golang.org/x/text/cases/cases.go162
-rw-r--r--vendor/golang.org/x/text/cases/context.go376
-rw-r--r--vendor/golang.org/x/text/cases/context_test.go438
-rw-r--r--vendor/golang.org/x/text/cases/example_test.go53
-rw-r--r--vendor/golang.org/x/text/cases/fold.go34
-rw-r--r--vendor/golang.org/x/text/cases/fold_test.go51
-rw-r--r--vendor/golang.org/x/text/cases/gen.go839
-rw-r--r--vendor/golang.org/x/text/cases/gen_trieval.go219
-rw-r--r--vendor/golang.org/x/text/cases/icu.go61
-rw-r--r--vendor/golang.org/x/text/cases/icu_test.go210
-rw-r--r--vendor/golang.org/x/text/cases/info.go82
-rw-r--r--vendor/golang.org/x/text/cases/map.go816
-rw-r--r--vendor/golang.org/x/text/cases/map_test.go950
-rw-r--r--vendor/golang.org/x/text/cases/tables10.0.0.go2253
-rw-r--r--vendor/golang.org/x/text/cases/tables10.0.0_test.go1160
-rw-r--r--vendor/golang.org/x/text/cases/tables9.0.0.go2213
-rw-r--r--vendor/golang.org/x/text/cases/tables9.0.0_test.go1156
-rw-r--r--vendor/golang.org/x/text/cases/trieval.go215
18 files changed, 0 insertions, 11288 deletions
diff --git a/vendor/golang.org/x/text/cases/cases.go b/vendor/golang.org/x/text/cases/cases.go
deleted file mode 100644
index 736c0c312..000000000
--- a/vendor/golang.org/x/text/cases/cases.go
+++ /dev/null
@@ -1,162 +0,0 @@
-// Copyright 2014 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-//go:generate go run gen.go gen_trieval.go
-
-// Package cases provides general and language-specific case mappers.
-package cases // import "golang.org/x/text/cases"
-
-import (
- "golang.org/x/text/language"
- "golang.org/x/text/transform"
-)
-
-// References:
-// - Unicode Reference Manual Chapter 3.13, 4.2, and 5.18.
-// - http://www.unicode.org/reports/tr29/
-// - http://www.unicode.org/Public/6.3.0/ucd/CaseFolding.txt
-// - http://www.unicode.org/Public/6.3.0/ucd/SpecialCasing.txt
-// - http://www.unicode.org/Public/6.3.0/ucd/DerivedCoreProperties.txt
-// - http://www.unicode.org/Public/6.3.0/ucd/auxiliary/WordBreakProperty.txt
-// - http://www.unicode.org/Public/6.3.0/ucd/auxiliary/WordBreakTest.txt
-// - http://userguide.icu-project.org/transforms/casemappings
-
-// TODO:
-// - Case folding
-// - Wide and Narrow?
-// - Segmenter option for title casing.
-// - ASCII fast paths
-// - Encode Soft-Dotted property within trie somehow.
-
-// A Caser transforms given input to a certain case. It implements
-// transform.Transformer.
-//
-// A Caser may be stateful and should therefore not be shared between
-// goroutines.
-type Caser struct {
- t transform.SpanningTransformer
-}
-
-// Bytes returns a new byte slice with the result of converting b to the case
-// form implemented by c.
-func (c Caser) Bytes(b []byte) []byte {
- b, _, _ = transform.Bytes(c.t, b)
- return b
-}
-
-// String returns a string with the result of transforming s to the case form
-// implemented by c.
-func (c Caser) String(s string) string {
- s, _, _ = transform.String(c.t, s)
- return s
-}
-
-// Reset resets the Caser to be reused for new input after a previous call to
-// Transform.
-func (c Caser) Reset() { c.t.Reset() }
-
-// Transform implements the transform.Transformer interface and transforms the
-// given input to the case form implemented by c.
-func (c Caser) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {
- return c.t.Transform(dst, src, atEOF)
-}
-
-// Span implements the transform.SpanningTransformer interface.
-func (c Caser) Span(src []byte, atEOF bool) (n int, err error) {
- return c.t.Span(src, atEOF)
-}
-
-// Upper returns a Caser for language-specific uppercasing.
-func Upper(t language.Tag, opts ...Option) Caser {
- return Caser{makeUpper(t, getOpts(opts...))}
-}
-
-// Lower returns a Caser for language-specific lowercasing.
-func Lower(t language.Tag, opts ...Option) Caser {
- return Caser{makeLower(t, getOpts(opts...))}
-}
-
-// Title returns a Caser for language-specific title casing. It uses an
-// approximation of the default Unicode Word Break algorithm.
-func Title(t language.Tag, opts ...Option) Caser {
- return Caser{makeTitle(t, getOpts(opts...))}
-}
-
-// Fold returns a Caser that implements Unicode case folding. The returned Caser
-// is stateless and safe to use concurrently by multiple goroutines.
-//
-// Case folding does not normalize the input and may not preserve a normal form.
-// Use the collate or search package for more convenient and linguistically
-// sound comparisons. Use golang.org/x/text/secure/precis for string comparisons
-// where security aspects are a concern.
-func Fold(opts ...Option) Caser {
- return Caser{makeFold(getOpts(opts...))}
-}
-
-// An Option is used to modify the behavior of a Caser.
-type Option func(o options) options
-
-// TODO: consider these options to take a boolean as well, like FinalSigma.
-// The advantage of using this approach is that other providers of a lower-case
-// algorithm could set different defaults by prefixing a user-provided slice
-// of options with their own. This is handy, for instance, for the precis
-// package which would override the default to not handle the Greek final sigma.
-
-var (
- // NoLower disables the lowercasing of non-leading letters for a title
- // caser.
- NoLower Option = noLower
-
- // Compact omits mappings in case folding for characters that would grow the
- // input. (Unimplemented.)
- Compact Option = compact
-)
-
-// TODO: option to preserve a normal form, if applicable?
-
-type options struct {
- noLower bool
- simple bool
-
- // TODO: segmenter, max ignorable, alternative versions, etc.
-
- ignoreFinalSigma bool
-}
-
-func getOpts(o ...Option) (res options) {
- for _, f := range o {
- res = f(res)
- }
- return
-}
-
-func noLower(o options) options {
- o.noLower = true
- return o
-}
-
-func compact(o options) options {
- o.simple = true
- return o
-}
-
-// HandleFinalSigma specifies whether the special handling of Greek final sigma
-// should be enabled. Unicode prescribes handling the Greek final sigma for all
-// locales, but standards like IDNA and PRECIS override this default.
-func HandleFinalSigma(enable bool) Option {
- if enable {
- return handleFinalSigma
- }
- return ignoreFinalSigma
-}
-
-func ignoreFinalSigma(o options) options {
- o.ignoreFinalSigma = true
- return o
-}
-
-func handleFinalSigma(o options) options {
- o.ignoreFinalSigma = false
- return o
-}
diff --git a/vendor/golang.org/x/text/cases/context.go b/vendor/golang.org/x/text/cases/context.go
deleted file mode 100644
index e9aa9e193..000000000
--- a/vendor/golang.org/x/text/cases/context.go
+++ /dev/null
@@ -1,376 +0,0 @@
-// Copyright 2014 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package cases
-
-import "golang.org/x/text/transform"
-
-// A context is used for iterating over source bytes, fetching case info and
-// writing to a destination buffer.
-//
-// Casing operations may need more than one rune of context to decide how a rune
-// should be cased. Casing implementations should call checkpoint on context
-// whenever it is known to be safe to return the runes processed so far.
-//
-// It is recommended for implementations to not allow for more than 30 case
-// ignorables as lookahead (analogous to the limit in norm) and to use state if
-// unbounded lookahead is needed for cased runes.
-type context struct {
- dst, src []byte
- atEOF bool
-
- pDst int // pDst points past the last written rune in dst.
- pSrc int // pSrc points to the start of the currently scanned rune.
-
- // checkpoints safe to return in Transform, where nDst <= pDst and nSrc <= pSrc.
- nDst, nSrc int
- err error
-
- sz int // size of current rune
- info info // case information of currently scanned rune
-
- // State preserved across calls to Transform.
- isMidWord bool // false if next cased letter needs to be title-cased.
-}
-
-func (c *context) Reset() {
- c.isMidWord = false
-}
-
-// ret returns the return values for the Transform method. It checks whether
-// there were insufficient bytes in src to complete and introduces an error
-// accordingly, if necessary.
-func (c *context) ret() (nDst, nSrc int, err error) {
- if c.err != nil || c.nSrc == len(c.src) {
- return c.nDst, c.nSrc, c.err
- }
- // This point is only reached by mappers if there was no short destination
- // buffer. This means that the source buffer was exhausted and that c.sz was
- // set to 0 by next.
- if c.atEOF && c.pSrc == len(c.src) {
- return c.pDst, c.pSrc, nil
- }
- return c.nDst, c.nSrc, transform.ErrShortSrc
-}
-
-// retSpan returns the return values for the Span method. It checks whether
-// there were insufficient bytes in src to complete and introduces an error
-// accordingly, if necessary.
-func (c *context) retSpan() (n int, err error) {
- _, nSrc, err := c.ret()
- return nSrc, err
-}
-
-// checkpoint sets the return value buffer points for Transform to the current
-// positions.
-func (c *context) checkpoint() {
- if c.err == nil {
- c.nDst, c.nSrc = c.pDst, c.pSrc+c.sz
- }
-}
-
-// unreadRune causes the last rune read by next to be reread on the next
-// invocation of next. Only one unreadRune may be called after a call to next.
-func (c *context) unreadRune() {
- c.sz = 0
-}
-
-func (c *context) next() bool {
- c.pSrc += c.sz
- if c.pSrc == len(c.src) || c.err != nil {
- c.info, c.sz = 0, 0
- return false
- }
- v, sz := trie.lookup(c.src[c.pSrc:])
- c.info, c.sz = info(v), sz
- if c.sz == 0 {
- if c.atEOF {
- // A zero size means we have an incomplete rune. If we are atEOF,
- // this means it is an illegal rune, which we will consume one
- // byte at a time.
- c.sz = 1
- } else {
- c.err = transform.ErrShortSrc
- return false
- }
- }
- return true
-}
-
-// writeBytes adds bytes to dst.
-func (c *context) writeBytes(b []byte) bool {
- if len(c.dst)-c.pDst < len(b) {
- c.err = transform.ErrShortDst
- return false
- }
- // This loop is faster than using copy.
- for _, ch := range b {
- c.dst[c.pDst] = ch
- c.pDst++
- }
- return true
-}
-
-// writeString writes the given string to dst.
-func (c *context) writeString(s string) bool {
- if len(c.dst)-c.pDst < len(s) {
- c.err = transform.ErrShortDst
- return false
- }
- // This loop is faster than using copy.
- for i := 0; i < len(s); i++ {
- c.dst[c.pDst] = s[i]
- c.pDst++
- }
- return true
-}
-
-// copy writes the current rune to dst.
-func (c *context) copy() bool {
- return c.writeBytes(c.src[c.pSrc : c.pSrc+c.sz])
-}
-
-// copyXOR copies the current rune to dst and modifies it by applying the XOR
-// pattern of the case info. It is the responsibility of the caller to ensure
-// that this is a rune with a XOR pattern defined.
-func (c *context) copyXOR() bool {
- if !c.copy() {
- return false
- }
- if c.info&xorIndexBit == 0 {
- // Fast path for 6-bit XOR pattern, which covers most cases.
- c.dst[c.pDst-1] ^= byte(c.info >> xorShift)
- } else {
- // Interpret XOR bits as an index.
- // TODO: test performance for unrolling this loop. Verify that we have
- // at least two bytes and at most three.
- idx := c.info >> xorShift
- for p := c.pDst - 1; ; p-- {
- c.dst[p] ^= xorData[idx]
- idx--
- if xorData[idx] == 0 {
- break
- }
- }
- }
- return true
-}
-
-// hasPrefix returns true if src[pSrc:] starts with the given string.
-func (c *context) hasPrefix(s string) bool {
- b := c.src[c.pSrc:]
- if len(b) < len(s) {
- return false
- }
- for i, c := range b[:len(s)] {
- if c != s[i] {
- return false
- }
- }
- return true
-}
-
-// caseType returns an info with only the case bits, normalized to either
-// cLower, cUpper, cTitle or cUncased.
-func (c *context) caseType() info {
- cm := c.info & 0x7
- if cm < 4 {
- return cm
- }
- if cm >= cXORCase {
- // xor the last bit of the rune with the case type bits.
- b := c.src[c.pSrc+c.sz-1]
- return info(b&1) ^ cm&0x3
- }
- if cm == cIgnorableCased {
- return cLower
- }
- return cUncased
-}
-
-// lower writes the lowercase version of the current rune to dst.
-func lower(c *context) bool {
- ct := c.caseType()
- if c.info&hasMappingMask == 0 || ct == cLower {
- return c.copy()
- }
- if c.info&exceptionBit == 0 {
- return c.copyXOR()
- }
- e := exceptions[c.info>>exceptionShift:]
- offset := 2 + e[0]&lengthMask // size of header + fold string
- if nLower := (e[1] >> lengthBits) & lengthMask; nLower != noChange {
- return c.writeString(e[offset : offset+nLower])
- }
- return c.copy()
-}
-
-func isLower(c *context) bool {
- ct := c.caseType()
- if c.info&hasMappingMask == 0 || ct == cLower {
- return true
- }
- if c.info&exceptionBit == 0 {
- c.err = transform.ErrEndOfSpan
- return false
- }
- e := exceptions[c.info>>exceptionShift:]
- if nLower := (e[1] >> lengthBits) & lengthMask; nLower != noChange {
- c.err = transform.ErrEndOfSpan
- return false
- }
- return true
-}
-
-// upper writes the uppercase version of the current rune to dst.
-func upper(c *context) bool {
- ct := c.caseType()
- if c.info&hasMappingMask == 0 || ct == cUpper {
- return c.copy()
- }
- if c.info&exceptionBit == 0 {
- return c.copyXOR()
- }
- e := exceptions[c.info>>exceptionShift:]
- offset := 2 + e[0]&lengthMask // size of header + fold string
- // Get length of first special case mapping.
- n := (e[1] >> lengthBits) & lengthMask
- if ct == cTitle {
- // The first special case mapping is for lower. Set n to the second.
- if n == noChange {
- n = 0
- }
- n, e = e[1]&lengthMask, e[n:]
- }
- if n != noChange {
- return c.writeString(e[offset : offset+n])
- }
- return c.copy()
-}
-
-// isUpper writes the isUppercase version of the current rune to dst.
-func isUpper(c *context) bool {
- ct := c.caseType()
- if c.info&hasMappingMask == 0 || ct == cUpper {
- return true
- }
- if c.info&exceptionBit == 0 {
- c.err = transform.ErrEndOfSpan
- return false
- }
- e := exceptions[c.info>>exceptionShift:]
- // Get length of first special case mapping.
- n := (e[1] >> lengthBits) & lengthMask
- if ct == cTitle {
- n = e[1] & lengthMask
- }
- if n != noChange {
- c.err = transform.ErrEndOfSpan
- return false
- }
- return true
-}
-
-// title writes the title case version of the current rune to dst.
-func title(c *context) bool {
- ct := c.caseType()
- if c.info&hasMappingMask == 0 || ct == cTitle {
- return c.copy()
- }
- if c.info&exceptionBit == 0 {
- if ct == cLower {
- return c.copyXOR()
- }
- return c.copy()
- }
- // Get the exception data.
- e := exceptions[c.info>>exceptionShift:]
- offset := 2 + e[0]&lengthMask // size of header + fold string
-
- nFirst := (e[1] >> lengthBits) & lengthMask
- if nTitle := e[1] & lengthMask; nTitle != noChange {
- if nFirst != noChange {
- e = e[nFirst:]
- }
- return c.writeString(e[offset : offset+nTitle])
- }
- if ct == cLower && nFirst != noChange {
- // Use the uppercase version instead.
- return c.writeString(e[offset : offset+nFirst])
- }
- // Already in correct case.
- return c.copy()
-}
-
-// isTitle reports whether the current rune is in title case.
-func isTitle(c *context) bool {
- ct := c.caseType()
- if c.info&hasMappingMask == 0 || ct == cTitle {
- return true
- }
- if c.info&exceptionBit == 0 {
- if ct == cLower {
- c.err = transform.ErrEndOfSpan
- return false
- }
- return true
- }
- // Get the exception data.
- e := exceptions[c.info>>exceptionShift:]
- if nTitle := e[1] & lengthMask; nTitle != noChange {
- c.err = transform.ErrEndOfSpan
- return false
- }
- nFirst := (e[1] >> lengthBits) & lengthMask
- if ct == cLower && nFirst != noChange {
- c.err = transform.ErrEndOfSpan
- return false
- }
- return true
-}
-
-// foldFull writes the foldFull version of the current rune to dst.
-func foldFull(c *context) bool {
- if c.info&hasMappingMask == 0 {
- return c.copy()
- }
- ct := c.caseType()
- if c.info&exceptionBit == 0 {
- if ct != cLower || c.info&inverseFoldBit != 0 {
- return c.copyXOR()
- }
- return c.copy()
- }
- e := exceptions[c.info>>exceptionShift:]
- n := e[0] & lengthMask
- if n == 0 {
- if ct == cLower {
- return c.copy()
- }
- n = (e[1] >> lengthBits) & lengthMask
- }
- return c.writeString(e[2 : 2+n])
-}
-
-// isFoldFull reports whether the current run is mapped to foldFull
-func isFoldFull(c *context) bool {
- if c.info&hasMappingMask == 0 {
- return true
- }
- ct := c.caseType()
- if c.info&exceptionBit == 0 {
- if ct != cLower || c.info&inverseFoldBit != 0 {
- c.err = transform.ErrEndOfSpan
- return false
- }
- return true
- }
- e := exceptions[c.info>>exceptionShift:]
- n := e[0] & lengthMask
- if n == 0 && ct == cLower {
- return true
- }
- c.err = transform.ErrEndOfSpan
- return false
-}
diff --git a/vendor/golang.org/x/text/cases/context_test.go b/vendor/golang.org/x/text/cases/context_test.go
deleted file mode 100644
index f59087807..000000000
--- a/vendor/golang.org/x/text/cases/context_test.go
+++ /dev/null
@@ -1,438 +0,0 @@
-// Copyright 2014 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package cases
-
-import (
- "strings"
- "testing"
- "unicode"
-
- "golang.org/x/text/internal/testtext"
- "golang.org/x/text/language"
- "golang.org/x/text/transform"
- "golang.org/x/text/unicode/norm"
- "golang.org/x/text/unicode/rangetable"
-)
-
-// The following definitions are taken directly from Chapter 3 of The Unicode
-// Standard.
-
-func propCased(r rune) bool {
- return propLower(r) || propUpper(r) || unicode.IsTitle(r)
-}
-
-func propLower(r rune) bool {
- return unicode.IsLower(r) || unicode.Is(unicode.Other_Lowercase, r)
-}
-
-func propUpper(r rune) bool {
- return unicode.IsUpper(r) || unicode.Is(unicode.Other_Uppercase, r)
-}
-
-func propIgnore(r rune) bool {
- if unicode.In(r, unicode.Mn, unicode.Me, unicode.Cf, unicode.Lm, unicode.Sk) {
- return true
- }
- return caseIgnorable[r]
-}
-
-func hasBreakProp(r rune) bool {
- // binary search over ranges
- lo := 0
- hi := len(breakProp)
- for lo < hi {
- m := lo + (hi-lo)/2
- bp := &breakProp[m]
- if bp.lo <= r && r <= bp.hi {
- return true
- }
- if r < bp.lo {
- hi = m
- } else {
- lo = m + 1
- }
- }
- return false
-}
-
-func contextFromRune(r rune) *context {
- c := context{dst: make([]byte, 128), src: []byte(string(r)), atEOF: true}
- c.next()
- return &c
-}
-
-func TestCaseProperties(t *testing.T) {
- if unicode.Version != UnicodeVersion {
- // Properties of existing code points may change by Unicode version, so
- // we need to skip.
- t.Skipf("Skipping as core Unicode version %s different than %s", unicode.Version, UnicodeVersion)
- }
- assigned := rangetable.Assigned(UnicodeVersion)
- coreVersion := rangetable.Assigned(unicode.Version)
- for r := rune(0); r <= lastRuneForTesting; r++ {
- if !unicode.In(r, assigned) || !unicode.In(r, coreVersion) {
- continue
- }
- c := contextFromRune(r)
- if got, want := c.info.isCaseIgnorable(), propIgnore(r); got != want {
- t.Errorf("caseIgnorable(%U): got %v; want %v (%x)", r, got, want, c.info)
- }
- // New letters may change case types, but existing case pairings should
- // not change. See Case Pair Stability in
- // http://unicode.org/policies/stability_policy.html.
- if rf := unicode.SimpleFold(r); rf != r && unicode.In(rf, assigned) {
- if got, want := c.info.isCased(), propCased(r); got != want {
- t.Errorf("cased(%U): got %v; want %v (%x)", r, got, want, c.info)
- }
- if got, want := c.caseType() == cUpper, propUpper(r); got != want {
- t.Errorf("upper(%U): got %v; want %v (%x)", r, got, want, c.info)
- }
- if got, want := c.caseType() == cLower, propLower(r); got != want {
- t.Errorf("lower(%U): got %v; want %v (%x)", r, got, want, c.info)
- }
- }
- if got, want := c.info.isBreak(), hasBreakProp(r); got != want {
- t.Errorf("isBreak(%U): got %v; want %v (%x)", r, got, want, c.info)
- }
- }
- // TODO: get title case from unicode file.
-}
-
-func TestMapping(t *testing.T) {
- assigned := rangetable.Assigned(UnicodeVersion)
- coreVersion := rangetable.Assigned(unicode.Version)
- if coreVersion == nil {
- coreVersion = assigned
- }
- apply := func(r rune, f func(c *context) bool) string {
- c := contextFromRune(r)
- f(c)
- return string(c.dst[:c.pDst])
- }
-
- for r, tt := range special {
- if got, want := apply(r, lower), tt.toLower; got != want {
- t.Errorf("lowerSpecial:(%U): got %+q; want %+q", r, got, want)
- }
- if got, want := apply(r, title), tt.toTitle; got != want {
- t.Errorf("titleSpecial:(%U): got %+q; want %+q", r, got, want)
- }
- if got, want := apply(r, upper), tt.toUpper; got != want {
- t.Errorf("upperSpecial:(%U): got %+q; want %+q", r, got, want)
- }
- }
-
- for r := rune(0); r <= lastRuneForTesting; r++ {
- if !unicode.In(r, assigned) || !unicode.In(r, coreVersion) {
- continue
- }
- if rf := unicode.SimpleFold(r); rf == r || !unicode.In(rf, assigned) {
- continue
- }
- if _, ok := special[r]; ok {
- continue
- }
- want := string(unicode.ToLower(r))
- if got := apply(r, lower); got != want {
- t.Errorf("lower:%q (%U): got %q %U; want %q %U", r, r, got, []rune(got), want, []rune(want))
- }
-
- want = string(unicode.ToUpper(r))
- if got := apply(r, upper); got != want {
- t.Errorf("upper:%q (%U): got %q %U; want %q %U", r, r, got, []rune(got), want, []rune(want))
- }
-
- want = string(unicode.ToTitle(r))
- if got := apply(r, title); got != want {
- t.Errorf("title:%q (%U): got %q %U; want %q %U", r, r, got, []rune(got), want, []rune(want))
- }
- }
-}
-
-func runeFoldData(r rune) (x struct{ simple, full, special string }) {
- x = foldMap[r]
- if x.simple == "" {
- x.simple = string(unicode.ToLower(r))
- }
- if x.full == "" {
- x.full = string(unicode.ToLower(r))
- }
- if x.special == "" {
- x.special = x.full
- }
- return
-}
-
-func TestFoldData(t *testing.T) {
- assigned := rangetable.Assigned(UnicodeVersion)
- coreVersion := rangetable.Assigned(unicode.Version)
- if coreVersion == nil {
- coreVersion = assigned
- }
- apply := func(r rune, f func(c *context) bool) (string, info) {
- c := contextFromRune(r)
- f(c)
- return string(c.dst[:c.pDst]), c.info.cccType()
- }
- for r := rune(0); r <= lastRuneForTesting; r++ {
- if !unicode.In(r, assigned) || !unicode.In(r, coreVersion) {
- continue
- }
- x := runeFoldData(r)
- if got, info := apply(r, foldFull); got != x.full {
- t.Errorf("full:%q (%U): got %q %U; want %q %U (ccc=%x)", r, r, got, []rune(got), x.full, []rune(x.full), info)
- }
- // TODO: special and simple.
- }
-}
-
-func TestCCC(t *testing.T) {
- assigned := rangetable.Assigned(UnicodeVersion)
- normVersion := rangetable.Assigned(norm.Version)
- for r := rune(0); r <= lastRuneForTesting; r++ {
- if !unicode.In(r, assigned) || !unicode.In(r, normVersion) {
- continue
- }
- c := contextFromRune(r)
-
- p := norm.NFC.PropertiesString(string(r))
- want := cccOther
- switch p.CCC() {
- case 0:
- want = cccZero
- case above:
- want = cccAbove
- }
- if got := c.info.cccType(); got != want {
- t.Errorf("%U: got %x; want %x", r, got, want)
- }
- }
-}
-
-func TestWordBreaks(t *testing.T) {
- for _, tt := range breakTest {
- testtext.Run(t, tt, func(t *testing.T) {
- parts := strings.Split(tt, "|")
- want := ""
- for _, s := range parts {
- found := false
- // This algorithm implements title casing given word breaks
- // as defined in the Unicode standard 3.13 R3.
- for _, r := range s {
- title := unicode.ToTitle(r)
- lower := unicode.ToLower(r)
- if !found && title != lower {
- found = true
- want += string(title)
- } else {
- want += string(lower)
- }
- }
- }
- src := strings.Join(parts, "")
- got := Title(language.Und).String(src)
- if got != want {
- t.Errorf("got %q; want %q", got, want)
- }
- })
- }
-}
-
-func TestContext(t *testing.T) {
- tests := []struct {
- desc string
- dstSize int
- atEOF bool
- src string
- out string
- nSrc int
- err error
- ops string
- prefixArg string
- prefixWant bool
- }{{
- desc: "next: past end, atEOF, no checkpoint",
- dstSize: 10,
- atEOF: true,
- src: "12",
- out: "",
- nSrc: 2,
- ops: "next;next;next",
- // Test that calling prefix with a non-empty argument when the buffer
- // is depleted returns false.
- prefixArg: "x",
- prefixWant: false,
- }, {
- desc: "next: not at end, atEOF, no checkpoint",
- dstSize: 10,
- atEOF: false,
- src: "12",
- out: "",
- nSrc: 0,
- err: transform.ErrShortSrc,
- ops: "next;next",
- prefixArg: "",
- prefixWant: true,
- }, {
- desc: "next: past end, !atEOF, no checkpoint",
- dstSize: 10,
- atEOF: false,
- src: "12",
- out: "",
- nSrc: 0,
- err: transform.ErrShortSrc,
- ops: "next;next;next",
- prefixArg: "",
- prefixWant: true,
- }, {
- desc: "next: past end, !atEOF, checkpoint",
- dstSize: 10,
- atEOF: false,
- src: "12",
- out: "",
- nSrc: 2,
- ops: "next;next;checkpoint;next",
- prefixArg: "",
- prefixWant: true,
- }, {
- desc: "copy: exact count, atEOF, no checkpoint",
- dstSize: 2,
- atEOF: true,
- src: "12",
- out: "12",
- nSrc: 2,
- ops: "next;copy;next;copy;next",
- prefixArg: "",
- prefixWant: true,
- }, {
- desc: "copy: past end, !atEOF, no checkpoint",
- dstSize: 2,
- atEOF: false,
- src: "12",
- out: "",
- nSrc: 0,
- err: transform.ErrShortSrc,
- ops: "next;copy;next;copy;next",
- prefixArg: "",
- prefixWant: true,
- }, {
- desc: "copy: past end, !atEOF, checkpoint",
- dstSize: 2,
- atEOF: false,
- src: "12",
- out: "12",
- nSrc: 2,
- ops: "next;copy;next;copy;checkpoint;next",
- prefixArg: "",
- prefixWant: true,
- }, {
- desc: "copy: short dst",
- dstSize: 1,
- atEOF: false,
- src: "12",
- out: "",
- nSrc: 0,
- err: transform.ErrShortDst,
- ops: "next;copy;next;copy;checkpoint;next",
- prefixArg: "12",
- prefixWant: false,
- }, {
- desc: "copy: short dst, checkpointed",
- dstSize: 1,
- atEOF: false,
- src: "12",
- out: "1",
- nSrc: 1,
- err: transform.ErrShortDst,
- ops: "next;copy;checkpoint;next;copy;next",
- prefixArg: "",
- prefixWant: true,
- }, {
- desc: "writeString: simple",
- dstSize: 3,
- atEOF: true,
- src: "1",
- out: "1ab",
- nSrc: 1,
- ops: "next;copy;writeab;next",
- prefixArg: "",
- prefixWant: true,
- }, {
- desc: "writeString: short dst",
- dstSize: 2,
- atEOF: true,
- src: "12",
- out: "",
- nSrc: 0,
- err: transform.ErrShortDst,
- ops: "next;copy;writeab;next",
- prefixArg: "2",
- prefixWant: true,
- }, {
- desc: "writeString: simple",
- dstSize: 3,
- atEOF: true,
- src: "12",
- out: "1ab",
- nSrc: 2,
- ops: "next;copy;next;writeab;next",
- prefixArg: "",
- prefixWant: true,
- }, {
- desc: "writeString: short dst",
- dstSize: 2,
- atEOF: true,
- src: "12",
- out: "",
- nSrc: 0,
- err: transform.ErrShortDst,
- ops: "next;copy;next;writeab;next",
- prefixArg: "1",
- prefixWant: false,
- }, {
- desc: "prefix",
- dstSize: 2,
- atEOF: true,
- src: "12",
- out: "",
- nSrc: 0,
- // Context will assign an ErrShortSrc if the input wasn't exhausted.
- err: transform.ErrShortSrc,
- prefixArg: "12",
- prefixWant: true,
- }}
- for _, tt := range tests {
- c := context{dst: make([]byte, tt.dstSize), src: []byte(tt.src), atEOF: tt.atEOF}
-
- for _, op := range strings.Split(tt.ops, ";") {
- switch op {
- case "next":
- c.next()
- case "checkpoint":
- c.checkpoint()
- case "writeab":
- c.writeString("ab")
- case "copy":
- c.copy()
- case "":
- default:
- t.Fatalf("unknown op %q", op)
- }
- }
- if got := c.hasPrefix(tt.prefixArg); got != tt.prefixWant {
- t.Errorf("%s:\nprefix was %v; want %v", tt.desc, got, tt.prefixWant)
- }
- nDst, nSrc, err := c.ret()
- if err != tt.err {
- t.Errorf("%s:\nerror was %v; want %v", tt.desc, err, tt.err)
- }
- if out := string(c.dst[:nDst]); out != tt.out {
- t.Errorf("%s:\nout was %q; want %q", tt.desc, out, tt.out)
- }
- if nSrc != tt.nSrc {
- t.Errorf("%s:\nnSrc was %d; want %d", tt.desc, nSrc, tt.nSrc)
- }
- }
-}
diff --git a/vendor/golang.org/x/text/cases/example_test.go b/vendor/golang.org/x/text/cases/example_test.go
deleted file mode 100644
index 56e6e33ee..000000000
--- a/vendor/golang.org/x/text/cases/example_test.go
+++ /dev/null
@@ -1,53 +0,0 @@
-// Copyright 2014 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package cases_test
-
-import (
- "fmt"
-
- "golang.org/x/text/cases"
- "golang.org/x/text/language"
-)
-
-func Example() {
- src := []string{
- "hello world!",
- "i with dot",
- "'n ijsberg",
- "here comes O'Brian",
- }
- for _, c := range []cases.Caser{
- cases.Lower(language.Und),
- cases.Upper(language.Turkish),
- cases.Title(language.Dutch),
- cases.Title(language.Und, cases.NoLower),
- } {
- fmt.Println()
- for _, s := range src {
- fmt.Println(c.String(s))
- }
- }
-
- // Output:
- // hello world!
- // i with dot
- // 'n ijsberg
- // here comes o'brian
- //
- // HELLO WORLD!
- // İ WİTH DOT
- // 'N İJSBERG
- // HERE COMES O'BRİAN
- //
- // Hello World!
- // I With Dot
- // 'n IJsberg
- // Here Comes O'brian
- //
- // Hello World!
- // I With Dot
- // 'N Ijsberg
- // Here Comes O'Brian
-}
diff --git a/vendor/golang.org/x/text/cases/fold.go b/vendor/golang.org/x/text/cases/fold.go
deleted file mode 100644
index 85cc434fa..000000000
--- a/vendor/golang.org/x/text/cases/fold.go
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright 2016 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package cases
-
-import "golang.org/x/text/transform"
-
-type caseFolder struct{ transform.NopResetter }
-
-// caseFolder implements the Transformer interface for doing case folding.
-func (t *caseFolder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {
- c := context{dst: dst, src: src, atEOF: atEOF}
- for c.next() {
- foldFull(&c)
- c.checkpoint()
- }
- return c.ret()
-}
-
-func (t *caseFolder) Span(src []byte, atEOF bool) (n int, err error) {
- c := context{src: src, atEOF: atEOF}
- for c.next() && isFoldFull(&c) {
- c.checkpoint()
- }
- return c.retSpan()
-}
-
-func makeFold(o options) transform.SpanningTransformer {
- // TODO: Special case folding, through option Language, Special/Turkic, or
- // both.
- // TODO: Implement Compact options.
- return &caseFolder{}
-}
diff --git a/vendor/golang.org/x/text/cases/fold_test.go b/vendor/golang.org/x/text/cases/fold_test.go
deleted file mode 100644
index ca939c7c1..000000000
--- a/vendor/golang.org/x/text/cases/fold_test.go
+++ /dev/null
@@ -1,51 +0,0 @@
-// Copyright 2016 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package cases
-
-import (
- "testing"
-
- "golang.org/x/text/internal/testtext"
-)
-
-var foldTestCases = []string{
- "βß\u13f8", // "βssᏰ"
- "ab\u13fc\uab7aꭰ", // abᏴᎪᎠ
- "affifflast", // affifflast
- "Iİiı\u0345", // ii̇iıι
- "µµΜΜςσΣΣ", // μμμμσσσσ
-}
-
-func TestFold(t *testing.T) {
- for _, tc := range foldTestCases {
- testEntry := func(name string, c Caser, m func(r rune) string) {
- want := ""
- for _, r := range tc {
- want += m(r)
- }
- if got := c.String(tc); got != want {
- t.Errorf("%s(%s) = %+q; want %+q", name, tc, got, want)
- }
- dst := make([]byte, 256) // big enough to hold any result
- src := []byte(tc)
- v := testtext.AllocsPerRun(20, func() {
- c.Transform(dst, src, true)
- })
- if v > 0 {
- t.Errorf("%s(%s): number of allocs was %f; want 0", name, tc, v)
- }
- }
- testEntry("FullFold", Fold(), func(r rune) string {
- return runeFoldData(r).full
- })
- // TODO:
- // testEntry("SimpleFold", Fold(Compact), func(r rune) string {
- // return runeFoldData(r).simple
- // })
- // testEntry("SpecialFold", Fold(Turkic), func(r rune) string {
- // return runeFoldData(r).special
- // })
- }
-}
diff --git a/vendor/golang.org/x/text/cases/gen.go b/vendor/golang.org/x/text/cases/gen.go
deleted file mode 100644
index 1cfe1c020..000000000
--- a/vendor/golang.org/x/text/cases/gen.go
+++ /dev/null
@@ -1,839 +0,0 @@
-// Copyright 2014 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// +build ignore
-
-// This program generates the trie for casing operations. The Unicode casing
-// algorithm requires the lookup of various properties and mappings for each
-// rune. The table generated by this generator combines several of the most
-// frequently used of these into a single trie so that they can be accessed
-// with a single lookup.
-package main
-
-import (
- "bytes"
- "fmt"
- "io"
- "io/ioutil"
- "log"
- "reflect"
- "strconv"
- "strings"
- "unicode"
-
- "golang.org/x/text/internal/gen"
- "golang.org/x/text/internal/triegen"
- "golang.org/x/text/internal/ucd"
- "golang.org/x/text/unicode/norm"
-)
-
-func main() {
- gen.Init()
- genTables()
- genTablesTest()
- gen.Repackage("gen_trieval.go", "trieval.go", "cases")
-}
-
-// runeInfo contains all information for a rune that we care about for casing
-// operations.
-type runeInfo struct {
- Rune rune
-
- entry info // trie value for this rune.
-
- CaseMode info
-
- // Simple case mappings.
- Simple [1 + maxCaseMode][]rune
-
- // Special casing
- HasSpecial bool
- Conditional bool
- Special [1 + maxCaseMode][]rune
-
- // Folding
- FoldSimple rune
- FoldSpecial rune
- FoldFull []rune
-
- // TODO: FC_NFKC, or equivalent data.
-
- // Properties
- SoftDotted bool
- CaseIgnorable bool
- Cased bool
- DecomposeGreek bool
- BreakType string
- BreakCat breakCategory
-
- // We care mostly about 0, Above, and IotaSubscript.
- CCC byte
-}
-
-type breakCategory int
-
-const (
- breakBreak breakCategory = iota
- breakLetter
- breakMid
-)
-
-// mapping returns the case mapping for the given case type.
-func (r *runeInfo) mapping(c info) string {
- if r.HasSpecial {
- return string(r.Special[c])
- }
- if len(r.Simple[c]) != 0 {
- return string(r.Simple[c])
- }
- return string(r.Rune)
-}
-
-func parse(file string, f func(p *ucd.Parser)) {
- ucd.Parse(gen.OpenUCDFile(file), f)
-}
-
-func parseUCD() []runeInfo {
- chars := make([]runeInfo, unicode.MaxRune)
-
- get := func(r rune) *runeInfo {
- c := &chars[r]
- c.Rune = r
- return c
- }
-
- parse("UnicodeData.txt", func(p *ucd.Parser) {
- ri := get(p.Rune(0))
- ri.CCC = byte(p.Int(ucd.CanonicalCombiningClass))
- ri.Simple[cLower] = p.Runes(ucd.SimpleLowercaseMapping)
- ri.Simple[cUpper] = p.Runes(ucd.SimpleUppercaseMapping)
- ri.Simple[cTitle] = p.Runes(ucd.SimpleTitlecaseMapping)
- if p.String(ucd.GeneralCategory) == "Lt" {
- ri.CaseMode = cTitle
- }
- })
-
- // <code>; <property>
- parse("PropList.txt", func(p *ucd.Parser) {
- if p.String(1) == "Soft_Dotted" {
- chars[p.Rune(0)].SoftDotted = true
- }
- })
-
- // <code>; <word break type>
- parse("DerivedCoreProperties.txt", func(p *ucd.Parser) {
- ri := get(p.Rune(0))
- switch p.String(1) {
- case "Case_Ignorable":
- ri.CaseIgnorable = true
- case "Cased":
- ri.Cased = true
- case "Lowercase":
- ri.CaseMode = cLower
- case "Uppercase":
- ri.CaseMode = cUpper
- }
- })
-
- // <code>; <lower> ; <title> ; <upper> ; (<condition_list> ;)?
- parse("SpecialCasing.txt", func(p *ucd.Parser) {
- // We drop all conditional special casing and deal with them manually in
- // the language-specific case mappers. Rune 0x03A3 is the only one with
- // a conditional formatting that is not language-specific. However,
- // dealing with this letter is tricky, especially in a streaming
- // context, so we deal with it in the Caser for Greek specifically.
- ri := get(p.Rune(0))
- if p.String(4) == "" {
- ri.HasSpecial = true
- ri.Special[cLower] = p.Runes(1)
- ri.Special[cTitle] = p.Runes(2)
- ri.Special[cUpper] = p.Runes(3)
- } else {
- ri.Conditional = true
- }
- })
-
- // TODO: Use text breaking according to UAX #29.
- // <code>; <word break type>
- parse("auxiliary/WordBreakProperty.txt", func(p *ucd.Parser) {
- ri := get(p.Rune(0))
- ri.BreakType = p.String(1)
-
- // We collapse the word breaking properties onto the categories we need.
- switch p.String(1) { // TODO: officially we need to canonicalize.
- case "MidLetter", "MidNumLet", "Single_Quote":
- ri.BreakCat = breakMid
- if !ri.CaseIgnorable {
- // finalSigma relies on the fact that all breakMid runes are
- // also a Case_Ignorable. Revisit this code when this changes.
- log.Fatalf("Rune %U, which has a break category mid, is not a case ignorable", ri)
- }
- case "ALetter", "Hebrew_Letter", "Numeric", "Extend", "ExtendNumLet", "Format", "ZWJ":
- ri.BreakCat = breakLetter
- }
- })
-
- // <code>; <type>; <mapping>
- parse("CaseFolding.txt", func(p *ucd.Parser) {
- ri := get(p.Rune(0))
- switch p.String(1) {
- case "C":
- ri.FoldSimple = p.Rune(2)
- ri.FoldFull = p.Runes(2)
- case "S":
- ri.FoldSimple = p.Rune(2)
- case "T":
- ri.FoldSpecial = p.Rune(2)
- case "F":
- ri.FoldFull = p.Runes(2)
- default:
- log.Fatalf("%U: unknown type: %s", p.Rune(0), p.String(1))
- }
- })
-
- return chars
-}
-
-func genTables() {
- chars := parseUCD()
- verifyProperties(chars)
-
- t := triegen.NewTrie("case")
- for i := range chars {
- c := &chars[i]
- makeEntry(c)
- t.Insert(rune(i), uint64(c.entry))
- }
-
- w := gen.NewCodeWriter()
- defer w.WriteVersionedGoFile("tables.go", "cases")
-
- gen.WriteUnicodeVersion(w)
-
- // TODO: write CLDR version after adding a mechanism to detect that the
- // tables on which the manually created locale-sensitive casing code is
- // based hasn't changed.
-
- w.WriteVar("xorData", string(xorData))
- w.WriteVar("exceptions", string(exceptionData))
-
- sz, err := t.Gen(w, triegen.Compact(&sparseCompacter{}))
- if err != nil {
- log.Fatal(err)
- }
- w.Size += sz
-}
-
-func makeEntry(ri *runeInfo) {
- if ri.CaseIgnorable {
- if ri.Cased {
- ri.entry = cIgnorableCased
- } else {
- ri.entry = cIgnorableUncased
- }
- } else {
- ri.entry = ri.CaseMode
- }
-
- // TODO: handle soft-dotted.
-
- ccc := cccOther
- switch ri.CCC {
- case 0: // Not_Reordered
- ccc = cccZero
- case above: // Above
- ccc = cccAbove
- }
- switch ri.BreakCat {
- case breakBreak:
- ccc = cccBreak
- case breakMid:
- ri.entry |= isMidBit
- }
-
- ri.entry |= ccc
-
- if ri.CaseMode == cUncased {
- return
- }
-
- // Need to do something special.
- if ri.CaseMode == cTitle || ri.HasSpecial || ri.mapping(cTitle) != ri.mapping(cUpper) {
- makeException(ri)
- return
- }
- if f := string(ri.FoldFull); len(f) > 0 && f != ri.mapping(cUpper) && f != ri.mapping(cLower) {
- makeException(ri)
- return
- }
-
- // Rune is either lowercase or uppercase.
-
- orig := string(ri.Rune)
- mapped := ""
- if ri.CaseMode == cUpper {
- mapped = ri.mapping(cLower)
- } else {
- mapped = ri.mapping(cUpper)
- }
-
- if len(orig) != len(mapped) {
- makeException(ri)
- return
- }
-
- if string(ri.FoldFull) == ri.mapping(cUpper) {
- ri.entry |= inverseFoldBit
- }
-
- n := len(orig)
-
- // Create per-byte XOR mask.
- var b []byte
- for i := 0; i < n; i++ {
- b = append(b, orig[i]^mapped[i])
- }
-
- // Remove leading 0 bytes, but keep at least one byte.
- for ; len(b) > 1 && b[0] == 0; b = b[1:] {
- }
-
- if len(b) == 1 && b[0]&0xc0 == 0 {
- ri.entry |= info(b[0]) << xorShift
- return
- }
-
- key := string(b)
- x, ok := xorCache[key]
- if !ok {
- xorData = append(xorData, 0) // for detecting start of sequence
- xorData = append(xorData, b...)
-
- x = len(xorData) - 1
- xorCache[key] = x
- }
- ri.entry |= info(x<<xorShift) | xorIndexBit
-}
-
-var xorCache = map[string]int{}
-
-// xorData contains byte-wise XOR data for the least significant bytes of a
-// UTF-8 encoded rune. An index points to the last byte. The sequence starts
-// with a zero terminator.
-var xorData = []byte{}
-
-// See the comments in gen_trieval.go re "the exceptions slice".
-var exceptionData = []byte{0}
-
-// makeException encodes case mappings that cannot be expressed in a simple
-// XOR diff.
-func makeException(ri *runeInfo) {
- ccc := ri.entry & cccMask
- // Set exception bit and retain case type.
- ri.entry &= 0x0007
- ri.entry |= exceptionBit
-
- if len(exceptionData) >= 1<<numExceptionBits {
- log.Fatalf("%U:exceptionData too large %x > %d bits", ri.Rune, len(exceptionData), numExceptionBits)
- }
-
- // Set the offset in the exceptionData array.
- ri.entry |= info(len(exceptionData) << exceptionShift)
-
- orig := string(ri.Rune)
- tc := ri.mapping(cTitle)
- uc := ri.mapping(cUpper)
- lc := ri.mapping(cLower)
- ff := string(ri.FoldFull)
-
- // addString sets the length of a string and adds it to the expansions array.
- addString := func(s string, b *byte) {
- if len(s) == 0 {
- // Zero-length mappings exist, but only for conditional casing,
- // which we are representing outside of this table.
- log.Fatalf("%U: has zero-length mapping.", ri.Rune)
- }
- *b <<= 3
- if s != orig {
- n := len(s)
- if n > 7 {
- log.Fatalf("%U: mapping larger than 7 (%d)", ri.Rune, n)
- }
- *b |= byte(n)
- exceptionData = append(exceptionData, s...)
- }
- }
-
- // byte 0:
- exceptionData = append(exceptionData, byte(ccc)|byte(len(ff)))
-
- // byte 1:
- p := len(exceptionData)
- exceptionData = append(exceptionData, 0)
-
- if len(ff) > 7 { // May be zero-length.
- log.Fatalf("%U: fold string larger than 7 (%d)", ri.Rune, len(ff))
- }
- exceptionData = append(exceptionData, ff...)
- ct := ri.CaseMode
- if ct != cLower {
- addString(lc, &exceptionData[p])
- }
- if ct != cUpper {
- addString(uc, &exceptionData[p])
- }
- if ct != cTitle {
- // If title is the same as upper, we set it to the original string so
- // that it will be marked as not present. This implies title case is
- // the same as upper case.
- if tc == uc {
- tc = orig
- }
- addString(tc, &exceptionData[p])
- }
-}
-
-// sparseCompacter is a trie value block Compacter. There are many cases where
-// successive runes alternate between lower- and upper-case. This Compacter
-// exploits this by adding a special case type where the case value is obtained
-// from or-ing it with the least-significant bit of the rune, creating large
-// ranges of equal case values that compress well.
-type sparseCompacter struct {
- sparseBlocks [][]uint16
- sparseOffsets []uint16
- sparseCount int
-}
-
-// makeSparse returns the number of elements that compact block would contain
-// as well as the modified values.
-func makeSparse(vals []uint64) ([]uint16, int) {
- // Copy the values.
- values := make([]uint16, len(vals))
- for i, v := range vals {
- values[i] = uint16(v)
- }
-
- alt := func(i int, v uint16) uint16 {
- if cm := info(v & fullCasedMask); cm == cUpper || cm == cLower {
- // Convert cLower or cUpper to cXORCase value, which has the form 11x.
- xor := v
- xor &^= 1
- xor |= uint16(i&1) ^ (v & 1)
- xor |= 0x4
- return xor
- }
- return v
- }
-
- var count int
- var previous uint16
- for i, v := range values {
- if v != 0 {
- // Try if the unmodified value is equal to the previous.
- if v == previous {
- continue
- }
-
- // Try if the xor-ed value is equal to the previous value.
- a := alt(i, v)
- if a == previous {
- values[i] = a
- continue
- }
-
- // This is a new value.
- count++
-
- // Use the xor-ed value if it will be identical to the next value.
- if p := i + 1; p < len(values) && alt(p, values[p]) == a {
- values[i] = a
- v = a
- }
- }
- previous = v
- }
- return values, count
-}
-
-func (s *sparseCompacter) Size(v []uint64) (int, bool) {
- _, n := makeSparse(v)
-
- // We limit using this method to having 16 entries.
- if n > 16 {
- return 0, false
- }
-
- return 2 + int(reflect.TypeOf(valueRange{}).Size())*n, true
-}
-
-func (s *sparseCompacter) Store(v []uint64) uint32 {
- h := uint32(len(s.sparseOffsets))
- values, sz := makeSparse(v)
- s.sparseBlocks = append(s.sparseBlocks, values)
- s.sparseOffsets = append(s.sparseOffsets, uint16(s.sparseCount))
- s.sparseCount += sz
- return h
-}
-
-func (s *sparseCompacter) Handler() string {
- // The sparse global variable and its lookup method is defined in gen_trieval.go.
- return "sparse.lookup"
-}
-
-func (s *sparseCompacter) Print(w io.Writer) (retErr error) {
- p := func(format string, args ...interface{}) {
- _, err := fmt.Fprintf(w, format, args...)
- if retErr == nil && err != nil {
- retErr = err
- }
- }
-
- ls := len(s.sparseBlocks)
- if ls == len(s.sparseOffsets) {
- s.sparseOffsets = append(s.sparseOffsets, uint16(s.sparseCount))
- }
- p("// sparseOffsets: %d entries, %d bytes\n", ls+1, (ls+1)*2)
- p("var sparseOffsets = %#v\n\n", s.sparseOffsets)
-
- ns := s.sparseCount
- p("// sparseValues: %d entries, %d bytes\n", ns, ns*4)
- p("var sparseValues = [%d]valueRange {", ns)
- for i, values := range s.sparseBlocks {
- p("\n// Block %#x, offset %#x", i, s.sparseOffsets[i])
- var v uint16
- for i, nv := range values {
- if nv != v {
- if v != 0 {
- p(",hi:%#02x},", 0x80+i-1)
- }
- if nv != 0 {
- p("\n{value:%#04x,lo:%#02x", nv, 0x80+i)
- }
- }
- v = nv
- }
- if v != 0 {
- p(",hi:%#02x},", 0x80+len(values)-1)
- }
- }
- p("\n}\n\n")
- return
-}
-
-// verifyProperties that properties of the runes that are relied upon in the
-// implementation. Each property is marked with an identifier that is referred
-// to in the places where it is used.
-func verifyProperties(chars []runeInfo) {
- for i, c := range chars {
- r := rune(i)
-
- // Rune properties.
-
- // A.1: modifier never changes on lowercase. [ltLower]
- if c.CCC > 0 && unicode.ToLower(r) != r {
- log.Fatalf("%U: non-starter changes when lowercased", r)
- }
-
- // A.2: properties of decompositions starting with I or J. [ltLower]
- d := norm.NFD.PropertiesString(string(r)).Decomposition()
- if len(d) > 0 {
- if d[0] == 'I' || d[0] == 'J' {
- // A.2.1: we expect at least an ASCII character and a modifier.
- if len(d) < 3 {
- log.Fatalf("%U: length of decomposition was %d; want >= 3", r, len(d))
- }
-
- // All subsequent runes are modifiers and all have the same CCC.
- runes := []rune(string(d[1:]))
- ccc := chars[runes[0]].CCC
-
- for _, mr := range runes[1:] {
- mc := chars[mr]
-
- // A.2.2: all modifiers have a CCC of Above or less.
- if ccc == 0 || ccc > above {
- log.Fatalf("%U: CCC of successive rune (%U) was %d; want (0,230]", r, mr, ccc)
- }
-
- // A.2.3: a sequence of modifiers all have the same CCC.
- if mc.CCC != ccc {
- log.Fatalf("%U: CCC of follow-up modifier (%U) was %d; want %d", r, mr, mc.CCC, ccc)
- }
-
- // A.2.4: for each trailing r, r in [0x300, 0x311] <=> CCC == Above.
- if (ccc == above) != (0x300 <= mr && mr <= 0x311) {
- log.Fatalf("%U: modifier %U in [U+0300, U+0311] != ccc(%U) == 230", r, mr, mr)
- }
-
- if i += len(string(mr)); i >= len(d) {
- break
- }
- }
- }
- }
-
- // A.3: no U+0307 in decomposition of Soft-Dotted rune. [ltUpper]
- if unicode.Is(unicode.Soft_Dotted, r) && strings.Contains(string(d), "\u0307") {
- log.Fatalf("%U: decomposition of soft-dotted rune may not contain U+0307", r)
- }
-
- // A.4: only rune U+0345 may be of CCC Iota_Subscript. [elUpper]
- if c.CCC == iotaSubscript && r != 0x0345 {
- log.Fatalf("%U: only rune U+0345 may have CCC Iota_Subscript", r)
- }
-
- // A.5: soft-dotted runes do not have exceptions.
- if c.SoftDotted && c.entry&exceptionBit != 0 {
- log.Fatalf("%U: soft-dotted has exception", r)
- }
-
- // A.6: Greek decomposition. [elUpper]
- if unicode.Is(unicode.Greek, r) {
- if b := norm.NFD.PropertiesString(string(r)).Decomposition(); b != nil {
- runes := []rune(string(b))
- // A.6.1: If a Greek rune decomposes and the first rune of the
- // decomposition is greater than U+00FF, the rune is always
- // great and not a modifier.
- if f := runes[0]; unicode.IsMark(f) || f > 0xFF && !unicode.Is(unicode.Greek, f) {
- log.Fatalf("%U: expected first rune of Greek decomposition to be letter, found %U", r, f)
- }
- // A.6.2: Any follow-up rune in a Greek decomposition is a
- // modifier of which the first should be gobbled in
- // decomposition.
- for _, m := range runes[1:] {
- switch m {
- case 0x0313, 0x0314, 0x0301, 0x0300, 0x0306, 0x0342, 0x0308, 0x0304, 0x345:
- default:
- log.Fatalf("%U: modifier %U is outside of expected Greek modifier set", r, m)
- }
- }
- }
- }
-
- // Breaking properties.
-
- // B.1: all runes with CCC > 0 are of break type Extend.
- if c.CCC > 0 && c.BreakType != "Extend" {
- log.Fatalf("%U: CCC == %d, but got break type %s; want Extend", r, c.CCC, c.BreakType)
- }
-
- // B.2: all cased runes with c.CCC == 0 are of break type ALetter.
- if c.CCC == 0 && c.Cased && c.BreakType != "ALetter" {
- log.Fatalf("%U: cased, but got break type %s; want ALetter", r, c.BreakType)
- }
-
- // B.3: letter category.
- if c.CCC == 0 && c.BreakCat != breakBreak && !c.CaseIgnorable {
- if c.BreakCat != breakLetter {
- log.Fatalf("%U: check for letter break type gave %d; want %d", r, c.BreakCat, breakLetter)
- }
- }
- }
-}
-
-func genTablesTest() {
- w := &bytes.Buffer{}
-
- fmt.Fprintln(w, "var (")
- printProperties(w, "DerivedCoreProperties.txt", "Case_Ignorable", verifyIgnore)
-
- // We discard the output as we know we have perfect functions. We run them
- // just to verify the properties are correct.
- n := printProperties(ioutil.Discard, "DerivedCoreProperties.txt", "Cased", verifyCased)
- n += printProperties(ioutil.Discard, "DerivedCoreProperties.txt", "Lowercase", verifyLower)
- n += printProperties(ioutil.Discard, "DerivedCoreProperties.txt", "Uppercase", verifyUpper)
- if n > 0 {
- log.Fatalf("One of the discarded properties does not have a perfect filter.")
- }
-
- // <code>; <lower> ; <title> ; <upper> ; (<condition_list> ;)?
- fmt.Fprintln(w, "\tspecial = map[rune]struct{ toLower, toTitle, toUpper string }{")
- parse("SpecialCasing.txt", func(p *ucd.Parser) {
- // Skip conditional entries.
- if p.String(4) != "" {
- return
- }
- r := p.Rune(0)
- fmt.Fprintf(w, "\t\t0x%04x: {%q, %q, %q},\n",
- r, string(p.Runes(1)), string(p.Runes(2)), string(p.Runes(3)))
- })
- fmt.Fprint(w, "\t}\n\n")
-
- // <code>; <type>; <runes>
- table := map[rune]struct{ simple, full, special string }{}
- parse("CaseFolding.txt", func(p *ucd.Parser) {
- r := p.Rune(0)
- t := p.String(1)
- v := string(p.Runes(2))
- if t != "T" && v == string(unicode.ToLower(r)) {
- return
- }
- x := table[r]
- switch t {
- case "C":
- x.full = v
- x.simple = v
- case "S":
- x.simple = v
- case "F":
- x.full = v
- case "T":
- x.special = v
- }
- table[r] = x
- })
- fmt.Fprintln(w, "\tfoldMap = map[rune]struct{ simple, full, special string }{")
- for r := rune(0); r < 0x10FFFF; r++ {
- x, ok := table[r]
- if !ok {
- continue
- }
- fmt.Fprintf(w, "\t\t0x%04x: {%q, %q, %q},\n", r, x.simple, x.full, x.special)
- }
- fmt.Fprint(w, "\t}\n\n")
-
- // Break property
- notBreak := map[rune]bool{}
- parse("auxiliary/WordBreakProperty.txt", func(p *ucd.Parser) {
- switch p.String(1) {
- case "Extend", "Format", "MidLetter", "MidNumLet", "Single_Quote",
- "ALetter", "Hebrew_Letter", "Numeric", "ExtendNumLet", "ZWJ":
- notBreak[p.Rune(0)] = true
- }
- })
-
- fmt.Fprintln(w, "\tbreakProp = []struct{ lo, hi rune }{")
- inBreak := false
- for r := rune(0); r <= lastRuneForTesting; r++ {
- if isBreak := !notBreak[r]; isBreak != inBreak {
- if isBreak {
- fmt.Fprintf(w, "\t\t{0x%x, ", r)
- } else {
- fmt.Fprintf(w, "0x%x},\n", r-1)
- }
- inBreak = isBreak
- }
- }
- if inBreak {
- fmt.Fprintf(w, "0x%x},\n", lastRuneForTesting)
- }
- fmt.Fprint(w, "\t}\n\n")
-
- // Word break test
- // Filter out all samples that do not contain cased characters.
- cased := map[rune]bool{}
- parse("DerivedCoreProperties.txt", func(p *ucd.Parser) {
- if p.String(1) == "Cased" {
- cased[p.Rune(0)] = true
- }
- })
-
- fmt.Fprintln(w, "\tbreakTest = []string{")
- parse("auxiliary/WordBreakTest.txt", func(p *ucd.Parser) {
- c := strings.Split(p.String(0), " ")
-
- const sep = '|'
- numCased := 0
- test := ""
- for ; len(c) >= 2; c = c[2:] {
- if c[0] == "÷" && test != "" {
- test += string(sep)
- }
- i, err := strconv.ParseUint(c[1], 16, 32)
- r := rune(i)
- if err != nil {
- log.Fatalf("Invalid rune %q.", c[1])
- }
- if r == sep {
- log.Fatalf("Separator %q not allowed in test data. Pick another one.", sep)
- }
- if cased[r] {
- numCased++
- }
- test += string(r)
- }
- if numCased > 1 {
- fmt.Fprintf(w, "\t\t%q,\n", test)
- }
- })
- fmt.Fprintln(w, "\t}")
-
- fmt.Fprintln(w, ")")
-
- gen.WriteVersionedGoFile("tables_test.go", "cases", w.Bytes())
-}
-
-// These functions are just used for verification that their definition have not
-// changed in the Unicode Standard.
-
-func verifyCased(r rune) bool {
- return verifyLower(r) || verifyUpper(r) || unicode.IsTitle(r)
-}
-
-func verifyLower(r rune) bool {
- return unicode.IsLower(r) || unicode.Is(unicode.Other_Lowercase, r)
-}
-
-func verifyUpper(r rune) bool {
- return unicode.IsUpper(r) || unicode.Is(unicode.Other_Uppercase, r)
-}
-
-// verifyIgnore is an approximation of the Case_Ignorable property using the
-// core unicode package. It is used to reduce the size of the test data.
-func verifyIgnore(r rune) bool {
- props := []*unicode.RangeTable{
- unicode.Mn,
- unicode.Me,
- unicode.Cf,
- unicode.Lm,
- unicode.Sk,
- }
- for _, p := range props {
- if unicode.Is(p, r) {
- return true
- }
- }
- return false
-}
-
-// printProperties prints tables of rune properties from the given UCD file.
-// A filter func f can be given to exclude certain values. A rune r will have
-// the indicated property if it is in the generated table or if f(r).
-func printProperties(w io.Writer, file, property string, f func(r rune) bool) int {
- verify := map[rune]bool{}
- n := 0
- varNameParts := strings.Split(property, "_")
- varNameParts[0] = strings.ToLower(varNameParts[0])
- fmt.Fprintf(w, "\t%s = map[rune]bool{\n", strings.Join(varNameParts, ""))
- parse(file, func(p *ucd.Parser) {
- if p.String(1) == property {
- r := p.Rune(0)
- verify[r] = true
- if !f(r) {
- n++
- fmt.Fprintf(w, "\t\t0x%.4x: true,\n", r)
- }
- }
- })
- fmt.Fprint(w, "\t}\n\n")
-
- // Verify that f is correct, that is, it represents a subset of the property.
- for r := rune(0); r <= lastRuneForTesting; r++ {
- if !verify[r] && f(r) {
- log.Fatalf("Incorrect filter func for property %q.", property)
- }
- }
- return n
-}
-
-// The newCaseTrie, sparseValues and sparseOffsets definitions below are
-// placeholders referred to by gen_trieval.go. The real definitions are
-// generated by this program and written to tables.go.
-
-func newCaseTrie(int) int { return 0 }
-
-var (
- sparseValues [0]valueRange
- sparseOffsets [0]uint16
-)
diff --git a/vendor/golang.org/x/text/cases/gen_trieval.go b/vendor/golang.org/x/text/cases/gen_trieval.go
deleted file mode 100644
index 376d22c8f..000000000
--- a/vendor/golang.org/x/text/cases/gen_trieval.go
+++ /dev/null
@@ -1,219 +0,0 @@
-// Copyright 2014 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// +build ignore
-
-package main
-
-// This file contains definitions for interpreting the trie value of the case
-// trie generated by "go run gen*.go". It is shared by both the generator
-// program and the resultant package. Sharing is achieved by the generator
-// copying gen_trieval.go to trieval.go and changing what's above this comment.
-
-// info holds case information for a single rune. It is the value returned
-// by a trie lookup. Most mapping information can be stored in a single 16-bit
-// value. If not, for example when a rune is mapped to multiple runes, the value
-// stores some basic case data and an index into an array with additional data.
-//
-// The per-rune values have the following format:
-//
-// if (exception) {
-// 15..5 unsigned exception index
-// 4 unused
-// } else {
-// 15..8 XOR pattern or index to XOR pattern for case mapping
-// Only 13..8 are used for XOR patterns.
-// 7 inverseFold (fold to upper, not to lower)
-// 6 index: interpret the XOR pattern as an index
-// or isMid if case mode is cIgnorableUncased.
-// 5..4 CCC: zero (normal or break), above or other
-// }
-// 3 exception: interpret this value as an exception index
-// (TODO: is this bit necessary? Probably implied from case mode.)
-// 2..0 case mode
-//
-// For the non-exceptional cases, a rune must be either uncased, lowercase or
-// uppercase. If the rune is cased, the XOR pattern maps either a lowercase
-// rune to uppercase or an uppercase rune to lowercase (applied to the 10
-// least-significant bits of the rune).
-//
-// See the definitions below for a more detailed description of the various
-// bits.
-type info uint16
-
-const (
- casedMask = 0x0003
- fullCasedMask = 0x0007
- ignorableMask = 0x0006
- ignorableValue = 0x0004
-
- inverseFoldBit = 1 << 7
- isMidBit = 1 << 6
-
- exceptionBit = 1 << 3
- exceptionShift = 5
- numExceptionBits = 11
-
- xorIndexBit = 1 << 6
- xorShift = 8
-
- // There is no mapping if all xor bits and the exception bit are zero.
- hasMappingMask = 0xff80 | exceptionBit
-)
-
-// The case mode bits encodes the case type of a rune. This includes uncased,
-// title, upper and lower case and case ignorable. (For a definition of these
-// terms see Chapter 3 of The Unicode Standard Core Specification.) In some rare
-// cases, a rune can be both cased and case-ignorable. This is encoded by
-// cIgnorableCased. A rune of this type is always lower case. Some runes are
-// cased while not having a mapping.
-//
-// A common pattern for scripts in the Unicode standard is for upper and lower
-// case runes to alternate for increasing rune values (e.g. the accented Latin
-// ranges starting from U+0100 and U+1E00 among others and some Cyrillic
-// characters). We use this property by defining a cXORCase mode, where the case
-// mode (always upper or lower case) is derived from the rune value. As the XOR
-// pattern for case mappings is often identical for successive runes, using
-// cXORCase can result in large series of identical trie values. This, in turn,
-// allows us to better compress the trie blocks.
-const (
- cUncased info = iota // 000
- cTitle // 001
- cLower // 010
- cUpper // 011
- cIgnorableUncased // 100
- cIgnorableCased // 101 // lower case if mappings exist
- cXORCase // 11x // case is cLower | ((rune&1) ^ x)
-
- maxCaseMode = cUpper
-)
-
-func (c info) isCased() bool {
- return c&casedMask != 0
-}
-
-func (c info) isCaseIgnorable() bool {
- return c&ignorableMask == ignorableValue
-}
-
-func (c info) isNotCasedAndNotCaseIgnorable() bool {
- return c&fullCasedMask == 0
-}
-
-func (c info) isCaseIgnorableAndNotCased() bool {
- return c&fullCasedMask == cIgnorableUncased
-}
-
-func (c info) isMid() bool {
- return c&(fullCasedMask|isMidBit) == isMidBit|cIgnorableUncased
-}
-
-// The case mapping implementation will need to know about various Canonical
-// Combining Class (CCC) values. We encode two of these in the trie value:
-// cccZero (0) and cccAbove (230). If the value is cccOther, it means that
-// CCC(r) > 0, but not 230. A value of cccBreak means that CCC(r) == 0 and that
-// the rune also has the break category Break (see below).
-const (
- cccBreak info = iota << 4
- cccZero
- cccAbove
- cccOther
-
- cccMask = cccBreak | cccZero | cccAbove | cccOther
-)
-
-const (
- starter = 0
- above = 230
- iotaSubscript = 240
-)
-
-// The exceptions slice holds data that does not fit in a normal info entry.
-// The entry is pointed to by the exception index in an entry. It has the
-// following format:
-//
-// Header
-// byte 0:
-// 7..6 unused
-// 5..4 CCC type (same bits as entry)
-// 3 unused
-// 2..0 length of fold
-//
-// byte 1:
-// 7..6 unused
-// 5..3 length of 1st mapping of case type
-// 2..0 length of 2nd mapping of case type
-//
-// case 1st 2nd
-// lower -> upper, title
-// upper -> lower, title
-// title -> lower, upper
-//
-// Lengths with the value 0x7 indicate no value and implies no change.
-// A length of 0 indicates a mapping to zero-length string.
-//
-// Body bytes:
-// case folding bytes
-// lowercase mapping bytes
-// uppercase mapping bytes
-// titlecase mapping bytes
-// closure mapping bytes (for NFKC_Casefold). (TODO)
-//
-// Fallbacks:
-// missing fold -> lower
-// missing title -> upper
-// all missing -> original rune
-//
-// exceptions starts with a dummy byte to enforce that there is no zero index
-// value.
-const (
- lengthMask = 0x07
- lengthBits = 3
- noChange = 0
-)
-
-// References to generated trie.
-
-var trie = newCaseTrie(0)
-
-var sparse = sparseBlocks{
- values: sparseValues[:],
- offsets: sparseOffsets[:],
-}
-
-// Sparse block lookup code.
-
-// valueRange is an entry in a sparse block.
-type valueRange struct {
- value uint16
- lo, hi byte
-}
-
-type sparseBlocks struct {
- values []valueRange
- offsets []uint16
-}
-
-// lookup returns the value from values block n for byte b using binary search.
-func (s *sparseBlocks) lookup(n uint32, b byte) uint16 {
- lo := s.offsets[n]
- hi := s.offsets[n+1]
- for lo < hi {
- m := lo + (hi-lo)/2
- r := s.values[m]
- if r.lo <= b && b <= r.hi {
- return r.value
- }
- if b < r.lo {
- hi = m
- } else {
- lo = m + 1
- }
- }
- return 0
-}
-
-// lastRuneForTesting is the last rune used for testing. Everything after this
-// is boring.
-const lastRuneForTesting = rune(0x1FFFF)
diff --git a/vendor/golang.org/x/text/cases/icu.go b/vendor/golang.org/x/text/cases/icu.go
deleted file mode 100644
index 46530d1e4..000000000
--- a/vendor/golang.org/x/text/cases/icu.go
+++ /dev/null
@@ -1,61 +0,0 @@
-// Copyright 2016 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// +build icu
-
-package cases
-
-// Ideally these functions would be defined in a test file, but go test doesn't
-// allow CGO in tests. The build tag should ensure either way that these
-// functions will not end up in the package.
-
-// TODO: Ensure that the correct ICU version is set.
-
-/*
-#cgo LDFLAGS: -licui18n.57 -licuuc.57
-#include <stdlib.h>
-#include <unicode/ustring.h>
-#include <unicode/utypes.h>
-#include <unicode/localpointer.h>
-#include <unicode/ucasemap.h>
-*/
-import "C"
-
-import "unsafe"
-
-func doICU(tag, caser, input string) string {
- err := C.UErrorCode(0)
- loc := C.CString(tag)
- cm := C.ucasemap_open(loc, C.uint32_t(0), &err)
-
- buf := make([]byte, len(input)*4)
- dst := (*C.char)(unsafe.Pointer(&buf[0]))
- src := C.CString(input)
-
- cn := C.int32_t(0)
-
- switch caser {
- case "fold":
- cn = C.ucasemap_utf8FoldCase(cm,
- dst, C.int32_t(len(buf)),
- src, C.int32_t(len(input)),
- &err)
- case "lower":
- cn = C.ucasemap_utf8ToLower(cm,
- dst, C.int32_t(len(buf)),
- src, C.int32_t(len(input)),
- &err)
- case "upper":
- cn = C.ucasemap_utf8ToUpper(cm,
- dst, C.int32_t(len(buf)),
- src, C.int32_t(len(input)),
- &err)
- case "title":
- cn = C.ucasemap_utf8ToTitle(cm,
- dst, C.int32_t(len(buf)),
- src, C.int32_t(len(input)),
- &err)
- }
- return string(buf[:cn])
-}
diff --git a/vendor/golang.org/x/text/cases/icu_test.go b/vendor/golang.org/x/text/cases/icu_test.go
deleted file mode 100644
index 3d07e2588..000000000
--- a/vendor/golang.org/x/text/cases/icu_test.go
+++ /dev/null
@@ -1,210 +0,0 @@
-// Copyright 2016 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// +build icu
-
-package cases
-
-import (
- "path"
- "strings"
- "testing"
-
- "golang.org/x/text/internal/testtext"
- "golang.org/x/text/language"
- "golang.org/x/text/unicode/norm"
-)
-
-func TestICUConformance(t *testing.T) {
- // Build test set.
- input := []string{
- "a.a a_a",
- "a\u05d0a",
- "\u05d0'a",
- "a\u03084a",
- "a\u0308a",
- "a3\u30a3a",
- "a\u303aa",
- "a_\u303a_a",
- "1_a..a",
- "1_a.a",
- "a..a.",
- "a--a-",
- "a-a-",
- "a\u200ba",
- "a\u200b\u200ba",
- "a\u00ad\u00ada", // Format
- "a\u00ada",
- "a''a", // SingleQuote
- "a'a",
- "a::a", // MidLetter
- "a:a",
- "a..a", // MidNumLet
- "a.a",
- "a;;a", // MidNum
- "a;a",
- "a__a", // ExtendNumlet
- "a_a",
- "ΟΣ''a",
- }
- add := func(x interface{}) {
- switch v := x.(type) {
- case string:
- input = append(input, v)
- case []string:
- for _, s := range v {
- input = append(input, s)
- }
- }
- }
- for _, tc := range testCases {
- add(tc.src)
- add(tc.lower)
- add(tc.upper)
- add(tc.title)
- }
- for _, tc := range bufferTests {
- add(tc.src)
- }
- for _, tc := range breakTest {
- add(strings.Replace(tc, "|", "", -1))
- }
- for _, tc := range foldTestCases {
- add(tc)
- }
-
- // Compare ICU to Go.
- for _, c := range []string{"lower", "upper", "title", "fold"} {
- for _, tag := range []string{
- "und", "af", "az", "el", "lt", "nl", "tr",
- } {
- for _, s := range input {
- if exclude(c, tag, s) {
- continue
- }
- testtext.Run(t, path.Join(c, tag, s), func(t *testing.T) {
- want := doICU(tag, c, s)
- got := doGo(tag, c, s)
- if norm.NFC.String(got) != norm.NFC.String(want) {
- t.Errorf("\n in %[3]q (%+[3]q)\n got %[1]q (%+[1]q)\n want %[2]q (%+[2]q)", got, want, s)
- }
- })
- }
- }
- }
-}
-
-// exclude indicates if a string should be excluded from testing.
-func exclude(cm, tag, s string) bool {
- list := []struct{ cm, tags, pattern string }{
- // TODO: Go does not handle certain esoteric breaks correctly. This will be
- // fixed once we have a real word break iterator. Alternatively, it
- // seems like we're not too far off from making it work, so we could
- // fix these last steps. But first verify that using a separate word
- // breaker does not hurt performance.
- {"title", "af nl", "a''a"},
- {"", "", "א'a"},
-
- // All the exclusions below seem to be issues with the ICU
- // implementation (at version 57) and thus are not marked as TODO.
-
- // ICU does not handle leading apostrophe for Dutch and
- // Afrikaans correctly. See http://unicode.org/cldr/trac/ticket/7078.
- {"title", "af nl", "'n"},
- {"title", "af nl", "'N"},
-
- // Go terminates the final sigma check after a fixed number of
- // ignorables have been found. This ensures that the algorithm can make
- // progress in a streaming scenario.
- {"lower title", "", "\u039f\u03a3...............................a"},
- // This also applies to upper in Greek.
- // NOTE: we could fix the following two cases by adding state to elUpper
- // and aztrLower. However, considering a modifier to not belong to the
- // preceding letter after the maximum modifiers count is reached is
- // consistent with the behavior of unicode/norm.
- {"upper", "el", "\u03bf" + strings.Repeat("\u0321", 29) + "\u0313"},
- {"lower", "az tr lt", "I" + strings.Repeat("\u0321", 30) + "\u0307\u0300"},
- {"upper", "lt", "i" + strings.Repeat("\u0321", 30) + "\u0307\u0300"},
- {"lower", "lt", "I" + strings.Repeat("\u0321", 30) + "\u0300"},
-
- // ICU title case seems to erroneously removes \u0307 from an upper case
- // I unconditionally, instead of only when lowercasing. The ICU
- // transform algorithm transforms these cases consistently with our
- // implementation.
- {"title", "az tr", "\u0307"},
-
- // The spec says to remove \u0307 after Soft-Dotted characters. ICU
- // transforms conform but ucasemap_utf8ToUpper does not.
- {"upper title", "lt", "i\u0307"},
- {"upper title", "lt", "i" + strings.Repeat("\u0321", 29) + "\u0307\u0300"},
-
- // Both Unicode and CLDR prescribe an extra explicit dot above after a
- // Soft_Dotted character if there are other modifiers.
- // ucasemap_utf8ToUpper does not do this; ICU transforms do.
- // The issue with ucasemap_utf8ToUpper seems to be that it does not
- // consider the modifiers that are part of composition in the evaluation
- // of More_Above. For instance, according to the More_Above rule for lt,
- // a dotted capital I (U+0130) becomes i\u0307\u0307 (an small i with
- // two additional dots). This seems odd, but is correct. ICU is
- // definitely not correct as it produces different results for different
- // normal forms. For instance, for an İ:
- // \u0130 (NFC) -> i\u0307 (incorrect)
- // I\u0307 (NFD) -> i\u0307\u0307 (correct)
- // We could argue that we should not add a \u0307 if there already is
- // one, but this may be hard to get correct and is not conform the
- // standard.
- {"lower title", "lt", "\u0130"},
- {"lower title", "lt", "\u00cf"},
-
- // We are conform ICU ucasemap_utf8ToUpper if we remove support for
- // elUpper. However, this is clearly not conform the spec. Moreover, the
- // ICU transforms _do_ implement this transform and produces results
- // consistent with our implementation. Note that we still prefer to use
- // ucasemap_utf8ToUpper instead of transforms as the latter have
- // inconsistencies in the word breaking algorithm.
- {"upper", "el", "\u0386"}, // GREEK CAPITAL LETTER ALPHA WITH TONOS
- {"upper", "el", "\u0389"}, // GREEK CAPITAL LETTER ETA WITH TONOS
- {"upper", "el", "\u038A"}, // GREEK CAPITAL LETTER IOTA WITH TONOS
-
- {"upper", "el", "\u0391"}, // GREEK CAPITAL LETTER ALPHA
- {"upper", "el", "\u0397"}, // GREEK CAPITAL LETTER ETA
- {"upper", "el", "\u0399"}, // GREEK CAPITAL LETTER IOTA
-
- {"upper", "el", "\u03AC"}, // GREEK SMALL LETTER ALPHA WITH TONOS
- {"upper", "el", "\u03AE"}, // GREEK SMALL LETTER ALPHA WITH ETA
- {"upper", "el", "\u03AF"}, // GREEK SMALL LETTER ALPHA WITH IOTA
-
- {"upper", "el", "\u03B1"}, // GREEK SMALL LETTER ALPHA
- {"upper", "el", "\u03B7"}, // GREEK SMALL LETTER ETA
- {"upper", "el", "\u03B9"}, // GREEK SMALL LETTER IOTA
- }
- for _, x := range list {
- if x.cm != "" && strings.Index(x.cm, cm) == -1 {
- continue
- }
- if x.tags != "" && strings.Index(x.tags, tag) == -1 {
- continue
- }
- if strings.Index(s, x.pattern) != -1 {
- return true
- }
- }
- return false
-}
-
-func doGo(tag, caser, input string) string {
- var c Caser
- t := language.MustParse(tag)
- switch caser {
- case "lower":
- c = Lower(t)
- case "upper":
- c = Upper(t)
- case "title":
- c = Title(t)
- case "fold":
- c = Fold()
- }
- return c.String(input)
-}
diff --git a/vendor/golang.org/x/text/cases/info.go b/vendor/golang.org/x/text/cases/info.go
deleted file mode 100644
index 3b51f03d6..000000000
--- a/vendor/golang.org/x/text/cases/info.go
+++ /dev/null
@@ -1,82 +0,0 @@
-// Copyright 2015 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package cases
-
-func (c info) cccVal() info {
- if c&exceptionBit != 0 {
- return info(exceptions[c>>exceptionShift]) & cccMask
- }
- return c & cccMask
-}
-
-func (c info) cccType() info {
- ccc := c.cccVal()
- if ccc <= cccZero {
- return cccZero
- }
- return ccc
-}
-
-// TODO: Implement full Unicode breaking algorithm:
-// 1) Implement breaking in separate package.
-// 2) Use the breaker here.
-// 3) Compare table size and performance of using the more generic breaker.
-//
-// Note that we can extend the current algorithm to be much more accurate. This
-// only makes sense, though, if the performance and/or space penalty of using
-// the generic breaker is big. Extra data will only be needed for non-cased
-// runes, which means there are sufficient bits left in the caseType.
-// ICU prohibits breaking in such cases as well.
-
-// For the purpose of title casing we use an approximation of the Unicode Word
-// Breaking algorithm defined in Annex #29:
-// http://www.unicode.org/reports/tr29/#Default_Grapheme_Cluster_Table.
-//
-// For our approximation, we group the Word Break types into the following
-// categories, with associated rules:
-//
-// 1) Letter:
-// ALetter, Hebrew_Letter, Numeric, ExtendNumLet, Extend, Format_FE, ZWJ.
-// Rule: Never break between consecutive runes of this category.
-//
-// 2) Mid:
-// MidLetter, MidNumLet, Single_Quote.
-// (Cf. case-ignorable: MidLetter, MidNumLet, Single_Quote or cat is Mn,
-// Me, Cf, Lm or Sk).
-// Rule: Don't break between Letter and Mid, but break between two Mids.
-//
-// 3) Break:
-// Any other category: NewLine, MidNum, CR, LF, Double_Quote, Katakana, and
-// Other.
-// These categories should always result in a break between two cased letters.
-// Rule: Always break.
-//
-// Note 1: the Katakana and MidNum categories can, in esoteric cases, result in
-// preventing a break between two cased letters. For now we will ignore this
-// (e.g. [ALetter] [ExtendNumLet] [Katakana] [ExtendNumLet] [ALetter] and
-// [ALetter] [Numeric] [MidNum] [Numeric] [ALetter].)
-//
-// Note 2: the rule for Mid is very approximate, but works in most cases. To
-// improve, we could store the categories in the trie value and use a FA to
-// manage breaks. See TODO comment above.
-//
-// Note 3: according to the spec, it is possible for the Extend category to
-// introduce breaks between other categories grouped in Letter. However, this
-// is undesirable for our purposes. ICU prevents breaks in such cases as well.
-
-// isBreak returns whether this rune should introduce a break.
-func (c info) isBreak() bool {
- return c.cccVal() == cccBreak
-}
-
-// isLetter returns whether the rune is of break type ALetter, Hebrew_Letter,
-// Numeric, ExtendNumLet, or Extend.
-func (c info) isLetter() bool {
- ccc := c.cccVal()
- if ccc == cccZero {
- return !c.isCaseIgnorable()
- }
- return ccc != cccBreak
-}
diff --git a/vendor/golang.org/x/text/cases/map.go b/vendor/golang.org/x/text/cases/map.go
deleted file mode 100644
index 4baebaaa6..000000000
--- a/vendor/golang.org/x/text/cases/map.go
+++ /dev/null
@@ -1,816 +0,0 @@
-// Copyright 2014 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package cases
-
-// This file contains the definitions of case mappings for all supported
-// languages. The rules for the language-specific tailorings were taken and
-// modified from the CLDR transform definitions in common/transforms.
-
-import (
- "strings"
- "unicode"
- "unicode/utf8"
-
- "golang.org/x/text/internal"
- "golang.org/x/text/language"
- "golang.org/x/text/transform"
- "golang.org/x/text/unicode/norm"
-)
-
-// A mapFunc takes a context set to the current rune and writes the mapped
-// version to the same context. It may advance the context to the next rune. It
-// returns whether a checkpoint is possible: whether the pDst bytes written to
-// dst so far won't need changing as we see more source bytes.
-type mapFunc func(*context) bool
-
-// A spanFunc takes a context set to the current rune and returns whether this
-// rune would be altered when written to the output. It may advance the context
-// to the next rune. It returns whether a checkpoint is possible.
-type spanFunc func(*context) bool
-
-// maxIgnorable defines the maximum number of ignorables to consider for
-// lookahead operations.
-const maxIgnorable = 30
-
-// supported lists the language tags for which we have tailorings.
-const supported = "und af az el lt nl tr"
-
-func init() {
- tags := []language.Tag{}
- for _, s := range strings.Split(supported, " ") {
- tags = append(tags, language.MustParse(s))
- }
- matcher = internal.NewInheritanceMatcher(tags)
- Supported = language.NewCoverage(tags)
-}
-
-var (
- matcher *internal.InheritanceMatcher
-
- Supported language.Coverage
-
- // We keep the following lists separate, instead of having a single per-
- // language struct, to give the compiler a chance to remove unused code.
-
- // Some uppercase mappers are stateless, so we can precompute the
- // Transformers and save a bit on runtime allocations.
- upperFunc = []struct {
- upper mapFunc
- span spanFunc
- }{
- {nil, nil}, // und
- {nil, nil}, // af
- {aztrUpper(upper), isUpper}, // az
- {elUpper, noSpan}, // el
- {ltUpper(upper), noSpan}, // lt
- {nil, nil}, // nl
- {aztrUpper(upper), isUpper}, // tr
- }
-
- undUpper transform.SpanningTransformer = &undUpperCaser{}
- undLower transform.SpanningTransformer = &undLowerCaser{}
- undLowerIgnoreSigma transform.SpanningTransformer = &undLowerIgnoreSigmaCaser{}
-
- lowerFunc = []mapFunc{
- nil, // und
- nil, // af
- aztrLower, // az
- nil, // el
- ltLower, // lt
- nil, // nl
- aztrLower, // tr
- }
-
- titleInfos = []struct {
- title mapFunc
- lower mapFunc
- titleSpan spanFunc
- rewrite func(*context)
- }{
- {title, lower, isTitle, nil}, // und
- {title, lower, isTitle, afnlRewrite}, // af
- {aztrUpper(title), aztrLower, isTitle, nil}, // az
- {title, lower, isTitle, nil}, // el
- {ltUpper(title), ltLower, noSpan, nil}, // lt
- {nlTitle, lower, nlTitleSpan, afnlRewrite}, // nl
- {aztrUpper(title), aztrLower, isTitle, nil}, // tr
- }
-)
-
-func makeUpper(t language.Tag, o options) transform.SpanningTransformer {
- _, i, _ := matcher.Match(t)
- f := upperFunc[i].upper
- if f == nil {
- return undUpper
- }
- return &simpleCaser{f: f, span: upperFunc[i].span}
-}
-
-func makeLower(t language.Tag, o options) transform.SpanningTransformer {
- _, i, _ := matcher.Match(t)
- f := lowerFunc[i]
- if f == nil {
- if o.ignoreFinalSigma {
- return undLowerIgnoreSigma
- }
- return undLower
- }
- if o.ignoreFinalSigma {
- return &simpleCaser{f: f, span: isLower}
- }
- return &lowerCaser{
- first: f,
- midWord: finalSigma(f),
- }
-}
-
-func makeTitle(t language.Tag, o options) transform.SpanningTransformer {
- _, i, _ := matcher.Match(t)
- x := &titleInfos[i]
- lower := x.lower
- if o.noLower {
- lower = (*context).copy
- } else if !o.ignoreFinalSigma {
- lower = finalSigma(lower)
- }
- return &titleCaser{
- title: x.title,
- lower: lower,
- titleSpan: x.titleSpan,
- rewrite: x.rewrite,
- }
-}
-
-func noSpan(c *context) bool {
- c.err = transform.ErrEndOfSpan
- return false
-}
-
-// TODO: consider a similar special case for the fast majority lower case. This
-// is a bit more involved so will require some more precise benchmarking to
-// justify it.
-
-type undUpperCaser struct{ transform.NopResetter }
-
-// undUpperCaser implements the Transformer interface for doing an upper case
-// mapping for the root locale (und). It eliminates the need for an allocation
-// as it prevents escaping by not using function pointers.
-func (t undUpperCaser) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {
- c := context{dst: dst, src: src, atEOF: atEOF}
- for c.next() {
- upper(&c)
- c.checkpoint()
- }
- return c.ret()
-}
-
-func (t undUpperCaser) Span(src []byte, atEOF bool) (n int, err error) {
- c := context{src: src, atEOF: atEOF}
- for c.next() && isUpper(&c) {
- c.checkpoint()
- }
- return c.retSpan()
-}
-
-// undLowerIgnoreSigmaCaser implements the Transformer interface for doing
-// a lower case mapping for the root locale (und) ignoring final sigma
-// handling. This casing algorithm is used in some performance-critical packages
-// like secure/precis and x/net/http/idna, which warrants its special-casing.
-type undLowerIgnoreSigmaCaser struct{ transform.NopResetter }
-
-func (t undLowerIgnoreSigmaCaser) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {
- c := context{dst: dst, src: src, atEOF: atEOF}
- for c.next() && lower(&c) {
- c.checkpoint()
- }
- return c.ret()
-
-}
-
-// Span implements a generic lower-casing. This is possible as isLower works
-// for all lowercasing variants. All lowercase variants only vary in how they
-// transform a non-lowercase letter. They will never change an already lowercase
-// letter. In addition, there is no state.
-func (t undLowerIgnoreSigmaCaser) Span(src []byte, atEOF bool) (n int, err error) {
- c := context{src: src, atEOF: atEOF}
- for c.next() && isLower(&c) {
- c.checkpoint()
- }
- return c.retSpan()
-}
-
-type simpleCaser struct {
- context
- f mapFunc
- span spanFunc
-}
-
-// simpleCaser implements the Transformer interface for doing a case operation
-// on a rune-by-rune basis.
-func (t *simpleCaser) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {
- c := context{dst: dst, src: src, atEOF: atEOF}
- for c.next() && t.f(&c) {
- c.checkpoint()
- }
- return c.ret()
-}
-
-func (t *simpleCaser) Span(src []byte, atEOF bool) (n int, err error) {
- c := context{src: src, atEOF: atEOF}
- for c.next() && t.span(&c) {
- c.checkpoint()
- }
- return c.retSpan()
-}
-
-// undLowerCaser implements the Transformer interface for doing a lower case
-// mapping for the root locale (und) ignoring final sigma handling. This casing
-// algorithm is used in some performance-critical packages like secure/precis
-// and x/net/http/idna, which warrants its special-casing.
-type undLowerCaser struct{ transform.NopResetter }
-
-func (t undLowerCaser) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {
- c := context{dst: dst, src: src, atEOF: atEOF}
-
- for isInterWord := true; c.next(); {
- if isInterWord {
- if c.info.isCased() {
- if !lower(&c) {
- break
- }
- isInterWord = false
- } else if !c.copy() {
- break
- }
- } else {
- if c.info.isNotCasedAndNotCaseIgnorable() {
- if !c.copy() {
- break
- }
- isInterWord = true
- } else if !c.hasPrefix("Σ") {
- if !lower(&c) {
- break
- }
- } else if !finalSigmaBody(&c) {
- break
- }
- }
- c.checkpoint()
- }
- return c.ret()
-}
-
-func (t undLowerCaser) Span(src []byte, atEOF bool) (n int, err error) {
- c := context{src: src, atEOF: atEOF}
- for c.next() && isLower(&c) {
- c.checkpoint()
- }
- return c.retSpan()
-}
-
-// lowerCaser implements the Transformer interface. The default Unicode lower
-// casing requires different treatment for the first and subsequent characters
-// of a word, most notably to handle the Greek final Sigma.
-type lowerCaser struct {
- undLowerIgnoreSigmaCaser
-
- context
-
- first, midWord mapFunc
-}
-
-func (t *lowerCaser) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {
- t.context = context{dst: dst, src: src, atEOF: atEOF}
- c := &t.context
-
- for isInterWord := true; c.next(); {
- if isInterWord {
- if c.info.isCased() {
- if !t.first(c) {
- break
- }
- isInterWord = false
- } else if !c.copy() {
- break
- }
- } else {
- if c.info.isNotCasedAndNotCaseIgnorable() {
- if !c.copy() {
- break
- }
- isInterWord = true
- } else if !t.midWord(c) {
- break
- }
- }
- c.checkpoint()
- }
- return c.ret()
-}
-
-// titleCaser implements the Transformer interface. Title casing algorithms
-// distinguish between the first letter of a word and subsequent letters of the
-// same word. It uses state to avoid requiring a potentially infinite lookahead.
-type titleCaser struct {
- context
-
- // rune mappings used by the actual casing algorithms.
- title mapFunc
- lower mapFunc
- titleSpan spanFunc
-
- rewrite func(*context)
-}
-
-// Transform implements the standard Unicode title case algorithm as defined in
-// Chapter 3 of The Unicode Standard:
-// toTitlecase(X): Find the word boundaries in X according to Unicode Standard
-// Annex #29, "Unicode Text Segmentation." For each word boundary, find the
-// first cased character F following the word boundary. If F exists, map F to
-// Titlecase_Mapping(F); then map all characters C between F and the following
-// word boundary to Lowercase_Mapping(C).
-func (t *titleCaser) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {
- t.context = context{dst: dst, src: src, atEOF: atEOF, isMidWord: t.isMidWord}
- c := &t.context
-
- if !c.next() {
- return c.ret()
- }
-
- for {
- p := c.info
- if t.rewrite != nil {
- t.rewrite(c)
- }
-
- wasMid := p.isMid()
- // Break out of this loop on failure to ensure we do not modify the
- // state incorrectly.
- if p.isCased() {
- if !c.isMidWord {
- if !t.title(c) {
- break
- }
- c.isMidWord = true
- } else if !t.lower(c) {
- break
- }
- } else if !c.copy() {
- break
- } else if p.isBreak() {
- c.isMidWord = false
- }
-
- // As we save the state of the transformer, it is safe to call
- // checkpoint after any successful write.
- if !(c.isMidWord && wasMid) {
- c.checkpoint()
- }
-
- if !c.next() {
- break
- }
- if wasMid && c.info.isMid() {
- c.isMidWord = false
- }
- }
- return c.ret()
-}
-
-func (t *titleCaser) Span(src []byte, atEOF bool) (n int, err error) {
- t.context = context{src: src, atEOF: atEOF, isMidWord: t.isMidWord}
- c := &t.context
-
- if !c.next() {
- return c.retSpan()
- }
-
- for {
- p := c.info
- if t.rewrite != nil {
- t.rewrite(c)
- }
-
- wasMid := p.isMid()
- // Break out of this loop on failure to ensure we do not modify the
- // state incorrectly.
- if p.isCased() {
- if !c.isMidWord {
- if !t.titleSpan(c) {
- break
- }
- c.isMidWord = true
- } else if !isLower(c) {
- break
- }
- } else if p.isBreak() {
- c.isMidWord = false
- }
- // As we save the state of the transformer, it is safe to call
- // checkpoint after any successful write.
- if !(c.isMidWord && wasMid) {
- c.checkpoint()
- }
-
- if !c.next() {
- break
- }
- if wasMid && c.info.isMid() {
- c.isMidWord = false
- }
- }
- return c.retSpan()
-}
-
-// finalSigma adds Greek final Sigma handing to another casing function. It
-// determines whether a lowercased sigma should be σ or ς, by looking ahead for
-// case-ignorables and a cased letters.
-func finalSigma(f mapFunc) mapFunc {
- return func(c *context) bool {
- if !c.hasPrefix("Σ") {
- return f(c)
- }
- return finalSigmaBody(c)
- }
-}
-
-func finalSigmaBody(c *context) bool {
- // Current rune must be ∑.
-
- // ::NFD();
- // # 03A3; 03C2; 03A3; 03A3; Final_Sigma; # GREEK CAPITAL LETTER SIGMA
- // Σ } [:case-ignorable:]* [:cased:] → σ;
- // [:cased:] [:case-ignorable:]* { Σ → ς;
- // ::Any-Lower;
- // ::NFC();
-
- p := c.pDst
- c.writeString("ς")
-
- // TODO: we should do this here, but right now this will never have an
- // effect as this is called when the prefix is Sigma, whereas Dutch and
- // Afrikaans only test for an apostrophe.
- //
- // if t.rewrite != nil {
- // t.rewrite(c)
- // }
-
- // We need to do one more iteration after maxIgnorable, as a cased
- // letter is not an ignorable and may modify the result.
- wasMid := false
- for i := 0; i < maxIgnorable+1; i++ {
- if !c.next() {
- return false
- }
- if !c.info.isCaseIgnorable() {
- // All Midword runes are also case ignorable, so we are
- // guaranteed to have a letter or word break here. As we are
- // unreading the run, there is no need to unset c.isMidWord;
- // the title caser will handle this.
- if c.info.isCased() {
- // p+1 is guaranteed to be in bounds: if writing ς was
- // successful, p+1 will contain the second byte of ς. If not,
- // this function will have returned after c.next returned false.
- c.dst[p+1]++ // ς → σ
- }
- c.unreadRune()
- return true
- }
- // A case ignorable may also introduce a word break, so we may need
- // to continue searching even after detecting a break.
- isMid := c.info.isMid()
- if (wasMid && isMid) || c.info.isBreak() {
- c.isMidWord = false
- }
- wasMid = isMid
- c.copy()
- }
- return true
-}
-
-// finalSigmaSpan would be the same as isLower.
-
-// elUpper implements Greek upper casing, which entails removing a predefined
-// set of non-blocked modifiers. Note that these accents should not be removed
-// for title casing!
-// Example: "Οδός" -> "ΟΔΟΣ".
-func elUpper(c *context) bool {
- // From CLDR:
- // [:Greek:] [^[:ccc=Not_Reordered:][:ccc=Above:]]*? { [\u0313\u0314\u0301\u0300\u0306\u0342\u0308\u0304] → ;
- // [:Greek:] [^[:ccc=Not_Reordered:][:ccc=Iota_Subscript:]]*? { \u0345 → ;
-
- r, _ := utf8.DecodeRune(c.src[c.pSrc:])
- oldPDst := c.pDst
- if !upper(c) {
- return false
- }
- if !unicode.Is(unicode.Greek, r) {
- return true
- }
- i := 0
- // Take the properties of the uppercased rune that is already written to the
- // destination. This saves us the trouble of having to uppercase the
- // decomposed rune again.
- if b := norm.NFD.Properties(c.dst[oldPDst:]).Decomposition(); b != nil {
- // Restore the destination position and process the decomposed rune.
- r, sz := utf8.DecodeRune(b)
- if r <= 0xFF { // See A.6.1
- return true
- }
- c.pDst = oldPDst
- // Insert the first rune and ignore the modifiers. See A.6.2.
- c.writeBytes(b[:sz])
- i = len(b[sz:]) / 2 // Greek modifiers are always of length 2.
- }
-
- for ; i < maxIgnorable && c.next(); i++ {
- switch r, _ := utf8.DecodeRune(c.src[c.pSrc:]); r {
- // Above and Iota Subscript
- case 0x0300, // U+0300 COMBINING GRAVE ACCENT
- 0x0301, // U+0301 COMBINING ACUTE ACCENT
- 0x0304, // U+0304 COMBINING MACRON
- 0x0306, // U+0306 COMBINING BREVE
- 0x0308, // U+0308 COMBINING DIAERESIS
- 0x0313, // U+0313 COMBINING COMMA ABOVE
- 0x0314, // U+0314 COMBINING REVERSED COMMA ABOVE
- 0x0342, // U+0342 COMBINING GREEK PERISPOMENI
- 0x0345: // U+0345 COMBINING GREEK YPOGEGRAMMENI
- // No-op. Gobble the modifier.
-
- default:
- switch v, _ := trie.lookup(c.src[c.pSrc:]); info(v).cccType() {
- case cccZero:
- c.unreadRune()
- return true
-
- // We don't need to test for IotaSubscript as the only rune that
- // qualifies (U+0345) was already excluded in the switch statement
- // above. See A.4.
-
- case cccAbove:
- return c.copy()
- default:
- // Some other modifier. We're still allowed to gobble Greek
- // modifiers after this.
- c.copy()
- }
- }
- }
- return i == maxIgnorable
-}
-
-// TODO: implement elUpperSpan (low-priority: complex and infrequent).
-
-func ltLower(c *context) bool {
- // From CLDR:
- // # Introduce an explicit dot above when lowercasing capital I's and J's
- // # whenever there are more accents above.
- // # (of the accents used in Lithuanian: grave, acute, tilde above, and ogonek)
- // # 0049; 0069 0307; 0049; 0049; lt More_Above; # LATIN CAPITAL LETTER I
- // # 004A; 006A 0307; 004A; 004A; lt More_Above; # LATIN CAPITAL LETTER J
- // # 012E; 012F 0307; 012E; 012E; lt More_Above; # LATIN CAPITAL LETTER I WITH OGONEK
- // # 00CC; 0069 0307 0300; 00CC; 00CC; lt; # LATIN CAPITAL LETTER I WITH GRAVE
- // # 00CD; 0069 0307 0301; 00CD; 00CD; lt; # LATIN CAPITAL LETTER I WITH ACUTE
- // # 0128; 0069 0307 0303; 0128; 0128; lt; # LATIN CAPITAL LETTER I WITH TILDE
- // ::NFD();
- // I } [^[:ccc=Not_Reordered:][:ccc=Above:]]* [:ccc=Above:] → i \u0307;
- // J } [^[:ccc=Not_Reordered:][:ccc=Above:]]* [:ccc=Above:] → j \u0307;
- // I \u0328 (Į) } [^[:ccc=Not_Reordered:][:ccc=Above:]]* [:ccc=Above:] → i \u0328 \u0307;
- // I \u0300 (Ì) → i \u0307 \u0300;
- // I \u0301 (Í) → i \u0307 \u0301;
- // I \u0303 (Ĩ) → i \u0307 \u0303;
- // ::Any-Lower();
- // ::NFC();
-
- i := 0
- if r := c.src[c.pSrc]; r < utf8.RuneSelf {
- lower(c)
- if r != 'I' && r != 'J' {
- return true
- }
- } else {
- p := norm.NFD.Properties(c.src[c.pSrc:])
- if d := p.Decomposition(); len(d) >= 3 && (d[0] == 'I' || d[0] == 'J') {
- // UTF-8 optimization: the decomposition will only have an above
- // modifier if the last rune of the decomposition is in [U+300-U+311].
- // In all other cases, a decomposition starting with I is always
- // an I followed by modifiers that are not cased themselves. See A.2.
- if d[1] == 0xCC && d[2] <= 0x91 { // A.2.4.
- if !c.writeBytes(d[:1]) {
- return false
- }
- c.dst[c.pDst-1] += 'a' - 'A' // lower
-
- // Assumption: modifier never changes on lowercase. See A.1.
- // Assumption: all modifiers added have CCC = Above. See A.2.3.
- return c.writeString("\u0307") && c.writeBytes(d[1:])
- }
- // In all other cases the additional modifiers will have a CCC
- // that is less than 230 (Above). We will insert the U+0307, if
- // needed, after these modifiers so that a string in FCD form
- // will remain so. See A.2.2.
- lower(c)
- i = 1
- } else {
- return lower(c)
- }
- }
-
- for ; i < maxIgnorable && c.next(); i++ {
- switch c.info.cccType() {
- case cccZero:
- c.unreadRune()
- return true
- case cccAbove:
- return c.writeString("\u0307") && c.copy() // See A.1.
- default:
- c.copy() // See A.1.
- }
- }
- return i == maxIgnorable
-}
-
-// ltLowerSpan would be the same as isLower.
-
-func ltUpper(f mapFunc) mapFunc {
- return func(c *context) bool {
- // Unicode:
- // 0307; 0307; ; ; lt After_Soft_Dotted; # COMBINING DOT ABOVE
- //
- // From CLDR:
- // # Remove \u0307 following soft-dotteds (i, j, and the like), with possible
- // # intervening non-230 marks.
- // ::NFD();
- // [:Soft_Dotted:] [^[:ccc=Not_Reordered:][:ccc=Above:]]* { \u0307 → ;
- // ::Any-Upper();
- // ::NFC();
-
- // TODO: See A.5. A soft-dotted rune never has an exception. This would
- // allow us to overload the exception bit and encode this property in
- // info. Need to measure performance impact of this.
- r, _ := utf8.DecodeRune(c.src[c.pSrc:])
- oldPDst := c.pDst
- if !f(c) {
- return false
- }
- if !unicode.Is(unicode.Soft_Dotted, r) {
- return true
- }
-
- // We don't need to do an NFD normalization, as a soft-dotted rune never
- // contains U+0307. See A.3.
-
- i := 0
- for ; i < maxIgnorable && c.next(); i++ {
- switch c.info.cccType() {
- case cccZero:
- c.unreadRune()
- return true
- case cccAbove:
- if c.hasPrefix("\u0307") {
- // We don't do a full NFC, but rather combine runes for
- // some of the common cases. (Returning NFC or
- // preserving normal form is neither a requirement nor
- // a possibility anyway).
- if !c.next() {
- return false
- }
- if c.dst[oldPDst] == 'I' && c.pDst == oldPDst+1 && c.src[c.pSrc] == 0xcc {
- s := ""
- switch c.src[c.pSrc+1] {
- case 0x80: // U+0300 COMBINING GRAVE ACCENT
- s = "\u00cc" // U+00CC LATIN CAPITAL LETTER I WITH GRAVE
- case 0x81: // U+0301 COMBINING ACUTE ACCENT
- s = "\u00cd" // U+00CD LATIN CAPITAL LETTER I WITH ACUTE
- case 0x83: // U+0303 COMBINING TILDE
- s = "\u0128" // U+0128 LATIN CAPITAL LETTER I WITH TILDE
- case 0x88: // U+0308 COMBINING DIAERESIS
- s = "\u00cf" // U+00CF LATIN CAPITAL LETTER I WITH DIAERESIS
- default:
- }
- if s != "" {
- c.pDst = oldPDst
- return c.writeString(s)
- }
- }
- }
- return c.copy()
- default:
- c.copy()
- }
- }
- return i == maxIgnorable
- }
-}
-
-// TODO: implement ltUpperSpan (low priority: complex and infrequent).
-
-func aztrUpper(f mapFunc) mapFunc {
- return func(c *context) bool {
- // i→İ;
- if c.src[c.pSrc] == 'i' {
- return c.writeString("İ")
- }
- return f(c)
- }
-}
-
-func aztrLower(c *context) (done bool) {
- // From CLDR:
- // # I and i-dotless; I-dot and i are case pairs in Turkish and Azeri
- // # 0130; 0069; 0130; 0130; tr; # LATIN CAPITAL LETTER I WITH DOT ABOVE
- // İ→i;
- // # When lowercasing, remove dot_above in the sequence I + dot_above, which will turn into i.
- // # This matches the behavior of the canonically equivalent I-dot_above
- // # 0307; ; 0307; 0307; tr After_I; # COMBINING DOT ABOVE
- // # When lowercasing, unless an I is before a dot_above, it turns into a dotless i.
- // # 0049; 0131; 0049; 0049; tr Not_Before_Dot; # LATIN CAPITAL LETTER I
- // I([^[:ccc=Not_Reordered:][:ccc=Above:]]*)\u0307 → i$1 ;
- // I→ı ;
- // ::Any-Lower();
- if c.hasPrefix("\u0130") { // İ
- return c.writeString("i")
- }
- if c.src[c.pSrc] != 'I' {
- return lower(c)
- }
-
- // We ignore the lower-case I for now, but insert it later when we know
- // which form we need.
- start := c.pSrc + c.sz
-
- i := 0
-Loop:
- // We check for up to n ignorables before \u0307. As \u0307 is an
- // ignorable as well, n is maxIgnorable-1.
- for ; i < maxIgnorable && c.next(); i++ {
- switch c.info.cccType() {
- case cccAbove:
- if c.hasPrefix("\u0307") {
- return c.writeString("i") && c.writeBytes(c.src[start:c.pSrc]) // ignore U+0307
- }
- done = true
- break Loop
- case cccZero:
- c.unreadRune()
- done = true
- break Loop
- default:
- // We'll write this rune after we know which starter to use.
- }
- }
- if i == maxIgnorable {
- done = true
- }
- return c.writeString("ı") && c.writeBytes(c.src[start:c.pSrc+c.sz]) && done
-}
-
-// aztrLowerSpan would be the same as isLower.
-
-func nlTitle(c *context) bool {
- // From CLDR:
- // # Special titlecasing for Dutch initial "ij".
- // ::Any-Title();
- // # Fix up Ij at the beginning of a "word" (per Any-Title, notUAX #29)
- // [:^WB=ALetter:] [:WB=Extend:]* [[:WB=MidLetter:][:WB=MidNumLet:]]? { Ij } → IJ ;
- if c.src[c.pSrc] != 'I' && c.src[c.pSrc] != 'i' {
- return title(c)
- }
-
- if !c.writeString("I") || !c.next() {
- return false
- }
- if c.src[c.pSrc] == 'j' || c.src[c.pSrc] == 'J' {
- return c.writeString("J")
- }
- c.unreadRune()
- return true
-}
-
-func nlTitleSpan(c *context) bool {
- // From CLDR:
- // # Special titlecasing for Dutch initial "ij".
- // ::Any-Title();
- // # Fix up Ij at the beginning of a "word" (per Any-Title, notUAX #29)
- // [:^WB=ALetter:] [:WB=Extend:]* [[:WB=MidLetter:][:WB=MidNumLet:]]? { Ij } → IJ ;
- if c.src[c.pSrc] != 'I' {
- return isTitle(c)
- }
- if !c.next() || c.src[c.pSrc] == 'j' {
- return false
- }
- if c.src[c.pSrc] != 'J' {
- c.unreadRune()
- }
- return true
-}
-
-// Not part of CLDR, but see http://unicode.org/cldr/trac/ticket/7078.
-func afnlRewrite(c *context) {
- if c.hasPrefix("'") || c.hasPrefix("’") {
- c.isMidWord = true
- }
-}
diff --git a/vendor/golang.org/x/text/cases/map_test.go b/vendor/golang.org/x/text/cases/map_test.go
deleted file mode 100644
index 8ac39118d..000000000
--- a/vendor/golang.org/x/text/cases/map_test.go
+++ /dev/null
@@ -1,950 +0,0 @@
-// Copyright 2014 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package cases
-
-import (
- "bytes"
- "fmt"
- "path"
- "strings"
- "testing"
- "unicode/utf8"
-
- "golang.org/x/text/internal/testtext"
- "golang.org/x/text/language"
- "golang.org/x/text/transform"
- "golang.org/x/text/unicode/norm"
-)
-
-type testCase struct {
- lang string
- src interface{} // string, []string, or nil to skip test
- title interface{} // string, []string, or nil to skip test
- lower interface{} // string, []string, or nil to skip test
- upper interface{} // string, []string, or nil to skip test
- opts options
-}
-
-var testCases = []testCase{
- 0: {
- lang: "und",
- src: "abc aBc ABC abC İsıI ΕΣΆΣ",
- title: "Abc Abc Abc Abc İsıi Εσάσ",
- lower: "abc abc abc abc i\u0307sıi εσάσ",
- upper: "ABC ABC ABC ABC İSII ΕΣΆΣ",
- opts: getOpts(HandleFinalSigma(false)),
- },
-
- 1: {
- lang: "und",
- src: "abc aBc ABC abC İsıI ΕΣΆΣ Σ _Σ -Σ",
- title: "Abc Abc Abc Abc İsıi Εσάς Σ _Σ -Σ",
- lower: "abc abc abc abc i\u0307sıi εσάς σ _σ -σ",
- upper: "ABC ABC ABC ABC İSII ΕΣΆΣ Σ _Σ -Σ",
- opts: getOpts(HandleFinalSigma(true)),
- },
-
- 2: { // Title cased runes.
- lang: supported,
- src: "DžA",
- title: "Dža",
- lower: "dža",
- upper: "DŽA",
- },
-
- 3: {
- // Title breaking.
- lang: supported,
- src: []string{
- "FOO CASE TEST",
- "DON'T DO THiS",
- "χωΡΊΣ χωΡΊΣ^a χωΡΊΣ:a χωΡΊΣ:^a χωΡΊΣ^ όμΩΣ Σ",
- "with-hyphens",
- "49ers 49ers",
- `"capitalize a^a -hyphen 0X _u a_u:a`,
- "MidNumLet a.b\u2018c\u2019d\u2024e\ufe52f\uff07f\uff0eg",
- "MidNum a,b;c\u037ed\u0589e\u060cf\u2044g\ufe50h",
- "\u0345 x\u3031x x\u05d0x \u05d0x a'.a a.a a4,a",
- },
- title: []string{
- "Foo Case Test",
- "Don't Do This",
- "Χωρίς Χωρίσ^A Χωρίσ:a Χωρίσ:^A Χωρίς^ Όμως Σ",
- "With-Hyphens",
- // Note that 49Ers is correct according to the spec.
- // TODO: provide some option to the user to treat different
- // characters as cased.
- "49Ers 49Ers",
- `"Capitalize A^A -Hyphen 0X _U A_u:a`,
- "Midnumlet A.b\u2018c\u2019d\u2024e\ufe52f\uff07f\uff0eg",
- "Midnum A,B;C\u037eD\u0589E\u060cF\u2044G\ufe50H",
- "\u0399 X\u3031X X\u05d0x \u05d0X A'.A A.a A4,A",
- },
- },
-
- // TODO: These are known deviations from the options{} Unicode Word Breaking
- // Algorithm.
- // {
- // "und",
- // "x_\u3031_x a4,4a",
- // "X_\u3031_x A4,4a", // Currently is "X_\U3031_X A4,4A".
- // "x_\u3031_x a4,4a",
- // "X_\u3031_X A4,4A",
- // options{},
- // },
-
- 4: {
- // Tests title options
- lang: "und",
- src: "abc aBc ABC abC İsıI o'Brien",
- title: "Abc ABc ABC AbC İsıI O'Brien",
- opts: getOpts(NoLower),
- },
-
- 5: {
- lang: "el",
- src: "aBc ΟΔΌΣ Οδός Σο ΣΟ Σ oΣ ΟΣ σ ἕξ \u03ac",
- title: "Abc Οδός Οδός Σο Σο Σ Oς Ος Σ Ἕξ \u0386",
- lower: "abc οδός οδός σο σο σ oς ος σ ἕξ \u03ac",
- upper: "ABC ΟΔΟΣ ΟΔΟΣ ΣΟ ΣΟ Σ OΣ ΟΣ Σ ΕΞ \u0391", // Uppercase removes accents
- },
-
- 6: {
- lang: "tr az",
- src: "Isiİ İsıI I\u0307sIiİ İsıI\u0307 I\u0300\u0307",
- title: "Isii İsıı I\u0307sıii İsıi I\u0300\u0307",
- lower: "ısii isıı isıii isıi \u0131\u0300\u0307",
- upper: "ISİİ İSII I\u0307SIİİ İSII\u0307 I\u0300\u0307",
- },
-
- 7: {
- lang: "lt",
- src: "I Ï J J̈ Į Į̈ Ì Í Ĩ xi̇̈ xj̇̈ xį̇̈ xi̇̀ xi̇́ xi̇̃ XI XÏ XJ XJ̈ XĮ XĮ̈ XI̟̤",
- title: "I Ï J J̈ Į Į̈ Ì Í Ĩ Xi̇̈ Xj̇̈ Xį̇̈ Xi̇̀ Xi̇́ Xi̇̃ Xi Xi̇̈ Xj Xj̇̈ Xį Xį̇̈ Xi̟̤",
- lower: "i i̇̈ j j̇̈ į į̇̈ i̇̀ i̇́ i̇̃ xi̇̈ xj̇̈ xį̇̈ xi̇̀ xi̇́ xi̇̃ xi xi̇̈ xj xj̇̈ xį xį̇̈ xi̟̤",
- upper: "I Ï J J̈ Į Į̈ Ì Í Ĩ XÏ XJ̈ XĮ̈ XÌ XÍ XĨ XI XÏ XJ XJ̈ XĮ XĮ̈ XI̟̤",
- },
-
- 8: {
- lang: "lt",
- src: "\u012e\u0300 \u00cc i\u0307\u0300 i\u0307\u0301 i\u0307\u0303 i\u0307\u0308 i\u0300\u0307",
- title: "\u012e\u0300 \u00cc \u00cc \u00cd \u0128 \u00cf I\u0300\u0307",
- lower: "\u012f\u0307\u0300 i\u0307\u0300 i\u0307\u0300 i\u0307\u0301 i\u0307\u0303 i\u0307\u0308 i\u0300\u0307",
- upper: "\u012e\u0300 \u00cc \u00cc \u00cd \u0128 \u00cf I\u0300\u0307",
- },
-
- 9: {
- lang: "nl",
- src: "ijs IJs Ij Ijs İJ İJs aa aA 'ns 'S",
- title: "IJs IJs IJ IJs İj İjs Aa Aa 'ns 's",
- },
-
- // Note: this specification is not currently part of CLDR. The same holds
- // for the leading apostrophe handling for Dutch.
- // See http://unicode.org/cldr/trac/ticket/7078.
- 10: {
- lang: "af",
- src: "wag 'n bietjie",
- title: "Wag 'n Bietjie",
- lower: "wag 'n bietjie",
- upper: "WAG 'N BIETJIE",
- },
-}
-
-func TestCaseMappings(t *testing.T) {
- for i, tt := range testCases {
- src, ok := tt.src.([]string)
- if !ok {
- src = strings.Split(tt.src.(string), " ")
- }
-
- for _, lang := range strings.Split(tt.lang, " ") {
- tag := language.MustParse(lang)
- testEntry := func(name string, mk func(language.Tag, options) transform.SpanningTransformer, gold interface{}) {
- c := Caser{mk(tag, tt.opts)}
- if gold != nil {
- wants, ok := gold.([]string)
- if !ok {
- wants = strings.Split(gold.(string), " ")
- }
- for j, want := range wants {
- if got := c.String(src[j]); got != want {
- t.Errorf("%d:%s:\n%s.String(%+q):\ngot %+q;\nwant %+q", i, lang, name, src[j], got, want)
- }
- }
- }
- dst := make([]byte, 256) // big enough to hold any result
- src := []byte(strings.Join(src, " "))
- v := testtext.AllocsPerRun(20, func() {
- c.Transform(dst, src, true)
- })
- if v > 1.1 {
- t.Errorf("%d:%s:\n%s: number of allocs was %f; want 0", i, lang, name, v)
- }
- }
- testEntry("Upper", makeUpper, tt.upper)
- testEntry("Lower", makeLower, tt.lower)
- testEntry("Title", makeTitle, tt.title)
- }
- }
-}
-
-// TestAlloc tests that some mapping methods should not cause any allocation.
-func TestAlloc(t *testing.T) {
- dst := make([]byte, 256) // big enough to hold any result
- src := []byte(txtNonASCII)
-
- for i, f := range []func() Caser{
- func() Caser { return Upper(language.Und) },
- func() Caser { return Lower(language.Und) },
- func() Caser { return Lower(language.Und, HandleFinalSigma(false)) },
- // TODO: use a shared copy for these casers as well, in order of
- // importance, starting with the most important:
- // func() Caser { return Title(language.Und) },
- // func() Caser { return Title(language.Und, HandleFinalSigma(false)) },
- } {
- testtext.Run(t, "", func(t *testing.T) {
- var c Caser
- v := testtext.AllocsPerRun(10, func() {
- c = f()
- })
- if v > 0 {
- // TODO: Right now only Upper has 1 allocation. Special-case Lower
- // and Title as well to have less allocations for the root locale.
- t.Errorf("%d:init: number of allocs was %f; want 0", i, v)
- }
- v = testtext.AllocsPerRun(2, func() {
- c.Transform(dst, src, true)
- })
- if v > 0 {
- t.Errorf("%d:transform: number of allocs was %f; want 0", i, v)
- }
- })
- }
-}
-
-func testHandover(t *testing.T, c Caser, src string) {
- want := c.String(src)
- // Find the common prefix.
- pSrc := 0
- for ; pSrc < len(src) && pSrc < len(want) && want[pSrc] == src[pSrc]; pSrc++ {
- }
-
- // Test handover for each substring of the prefix.
- for i := 0; i < pSrc; i++ {
- testtext.Run(t, fmt.Sprint("interleave/", i), func(t *testing.T) {
- dst := make([]byte, 4*len(src))
- c.Reset()
- nSpan, _ := c.Span([]byte(src[:i]), false)
- copy(dst, src[:nSpan])
- nTransform, _, _ := c.Transform(dst[nSpan:], []byte(src[nSpan:]), true)
- got := string(dst[:nSpan+nTransform])
- if got != want {
- t.Errorf("full string: got %q; want %q", got, want)
- }
- })
- }
-}
-
-func TestHandover(t *testing.T) {
- testCases := []struct {
- desc string
- t Caser
- first, second string
- }{{
- "title/nosigma/single midword",
- Title(language.Und, HandleFinalSigma(false)),
- "A.", "a",
- }, {
- "title/nosigma/single midword",
- Title(language.Und, HandleFinalSigma(false)),
- "A", ".a",
- }, {
- "title/nosigma/double midword",
- Title(language.Und, HandleFinalSigma(false)),
- "A..", "a",
- }, {
- "title/nosigma/double midword",
- Title(language.Und, HandleFinalSigma(false)),
- "A.", ".a",
- }, {
- "title/nosigma/double midword",
- Title(language.Und, HandleFinalSigma(false)),
- "A", "..a",
- }, {
- "title/sigma/single midword",
- Title(language.Und),
- "ΟΣ.", "a",
- }, {
- "title/sigma/single midword",
- Title(language.Und),
- "ΟΣ", ".a",
- }, {
- "title/sigma/double midword",
- Title(language.Und),
- "ΟΣ..", "a",
- }, {
- "title/sigma/double midword",
- Title(language.Und),
- "ΟΣ.", ".a",
- }, {
- "title/sigma/double midword",
- Title(language.Und),
- "ΟΣ", "..a",
- }, {
- "title/af/leading apostrophe",
- Title(language.Afrikaans),
- "'", "n bietje",
- }}
- for _, tc := range testCases {
- testtext.Run(t, tc.desc, func(t *testing.T) {
- src := tc.first + tc.second
- want := tc.t.String(src)
- tc.t.Reset()
- n, _ := tc.t.Span([]byte(tc.first), false)
-
- dst := make([]byte, len(want))
- copy(dst, tc.first[:n])
-
- nDst, _, _ := tc.t.Transform(dst[n:], []byte(src[n:]), true)
- got := string(dst[:n+nDst])
- if got != want {
- t.Errorf("got %q; want %q", got, want)
- }
- })
- }
-}
-
-// minBufSize is the size of the buffer by which the casing operation in
-// this package are guaranteed to make progress.
-const minBufSize = norm.MaxSegmentSize
-
-type bufferTest struct {
- desc, src, want string
- firstErr error
- dstSize, srcSize int
- t transform.SpanningTransformer
-}
-
-var bufferTests []bufferTest
-
-func init() {
- bufferTests = []bufferTest{{
- desc: "und/upper/short dst",
- src: "abcdefg",
- want: "ABCDEFG",
- firstErr: transform.ErrShortDst,
- dstSize: 3,
- srcSize: minBufSize,
- t: Upper(language.Und),
- }, {
- desc: "und/upper/short src",
- src: "123é56",
- want: "123É56",
- firstErr: transform.ErrShortSrc,
- dstSize: 4,
- srcSize: 4,
- t: Upper(language.Und),
- }, {
- desc: "und/upper/no error on short",
- src: "12",
- want: "12",
- firstErr: nil,
- dstSize: 1,
- srcSize: 1,
- t: Upper(language.Und),
- }, {
- desc: "und/lower/short dst",
- src: "ABCDEFG",
- want: "abcdefg",
- firstErr: transform.ErrShortDst,
- dstSize: 3,
- srcSize: minBufSize,
- t: Lower(language.Und),
- }, {
- desc: "und/lower/short src",
- src: "123É56",
- want: "123é56",
- firstErr: transform.ErrShortSrc,
- dstSize: 4,
- srcSize: 4,
- t: Lower(language.Und),
- }, {
- desc: "und/lower/no error on short",
- src: "12",
- want: "12",
- firstErr: nil,
- dstSize: 1,
- srcSize: 1,
- t: Lower(language.Und),
- }, {
- desc: "und/lower/simple (no final sigma)",
- src: "ΟΣ ΟΣΣ",
- want: "οσ οσσ",
- dstSize: minBufSize,
- srcSize: minBufSize,
- t: Lower(language.Und, HandleFinalSigma(false)),
- }, {
- desc: "und/title/simple (no final sigma)",
- src: "ΟΣ ΟΣΣ",
- want: "Οσ Οσσ",
- dstSize: minBufSize,
- srcSize: minBufSize,
- t: Title(language.Und, HandleFinalSigma(false)),
- }, {
- desc: "und/title/final sigma: no error",
- src: "ΟΣ",
- want: "Ος",
- dstSize: minBufSize,
- srcSize: minBufSize,
- t: Title(language.Und),
- }, {
- desc: "und/title/final sigma: short source",
- src: "ΟΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣ",
- want: "Οσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσς",
- firstErr: transform.ErrShortSrc,
- dstSize: minBufSize,
- srcSize: 10,
- t: Title(language.Und),
- }, {
- desc: "und/title/final sigma: short destination 1",
- src: "ΟΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣ",
- want: "Οσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσς",
- firstErr: transform.ErrShortDst,
- dstSize: 10,
- srcSize: minBufSize,
- t: Title(language.Und),
- }, {
- desc: "und/title/final sigma: short destination 2",
- src: "ΟΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣ",
- want: "Οσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσς",
- firstErr: transform.ErrShortDst,
- dstSize: 9,
- srcSize: minBufSize,
- t: Title(language.Und),
- }, {
- desc: "und/title/final sigma: short destination 3",
- src: "ΟΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣΣ",
- want: "Οσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσς",
- firstErr: transform.ErrShortDst,
- dstSize: 8,
- srcSize: minBufSize,
- t: Title(language.Und),
- }, {
- desc: "und/title/clipped UTF-8 rune",
- src: "σσσσσσσσσσσ",
- want: "Σσσσσσσσσσσ",
- firstErr: transform.ErrShortSrc,
- dstSize: minBufSize,
- srcSize: 5,
- t: Title(language.Und),
- }, {
- desc: "und/title/clipped UTF-8 rune atEOF",
- src: "σσσ" + string([]byte{0xCF}),
- want: "Σσσ" + string([]byte{0xCF}),
- dstSize: minBufSize,
- srcSize: minBufSize,
- t: Title(language.Und),
- }, {
- // Note: the choice to change the final sigma at the end in case of
- // too many case ignorables is arbitrary. The main reason for this
- // choice is that it results in simpler code.
- desc: "und/title/final sigma: max ignorables",
- src: "ΟΣ" + strings.Repeat(".", maxIgnorable) + "a",
- want: "Οσ" + strings.Repeat(".", maxIgnorable) + "A",
- dstSize: minBufSize,
- srcSize: minBufSize,
- t: Title(language.Und),
- }, {
- // Note: the choice to change the final sigma at the end in case of
- // too many case ignorables is arbitrary. The main reason for this
- // choice is that it results in simpler code.
- desc: "und/title/long string",
- src: "AA" + strings.Repeat(".", maxIgnorable+1) + "a",
- want: "Aa" + strings.Repeat(".", maxIgnorable+1) + "A",
- dstSize: minBufSize,
- srcSize: len("AA" + strings.Repeat(".", maxIgnorable+1)),
- t: Title(language.Und),
- }, {
- // Note: the choice to change the final sigma at the end in case of
- // too many case ignorables is arbitrary. The main reason for this
- // choice is that it results in simpler code.
- desc: "und/title/final sigma: too many ignorables",
- src: "ΟΣ" + strings.Repeat(".", maxIgnorable+1) + "a",
- want: "Ος" + strings.Repeat(".", maxIgnorable+1) + "A",
- dstSize: minBufSize,
- srcSize: len("ΟΣ" + strings.Repeat(".", maxIgnorable+1)),
- t: Title(language.Und),
- }, {
- desc: "und/title/final sigma: apostrophe",
- src: "ΟΣ''a",
- want: "Οσ''A",
- dstSize: minBufSize,
- srcSize: minBufSize,
- t: Title(language.Und),
- }, {
- desc: "el/upper/max ignorables",
- src: "ο" + strings.Repeat("\u0321", maxIgnorable-1) + "\u0313",
- want: "Ο" + strings.Repeat("\u0321", maxIgnorable-1),
- dstSize: minBufSize,
- srcSize: minBufSize,
- t: Upper(language.Greek),
- }, {
- desc: "el/upper/too many ignorables",
- src: "ο" + strings.Repeat("\u0321", maxIgnorable) + "\u0313",
- want: "Ο" + strings.Repeat("\u0321", maxIgnorable) + "\u0313",
- dstSize: minBufSize,
- srcSize: len("ο" + strings.Repeat("\u0321", maxIgnorable)),
- t: Upper(language.Greek),
- }, {
- desc: "el/upper/short dst",
- src: "123ο",
- want: "123Ο",
- firstErr: transform.ErrShortDst,
- dstSize: 3,
- srcSize: minBufSize,
- t: Upper(language.Greek),
- }, {
- desc: "lt/lower/max ignorables",
- src: "I" + strings.Repeat("\u0321", maxIgnorable-1) + "\u0300",
- want: "i" + strings.Repeat("\u0321", maxIgnorable-1) + "\u0307\u0300",
- dstSize: minBufSize,
- srcSize: minBufSize,
- t: Lower(language.Lithuanian),
- }, {
- desc: "lt/lower/too many ignorables",
- src: "I" + strings.Repeat("\u0321", maxIgnorable) + "\u0300",
- want: "i" + strings.Repeat("\u0321", maxIgnorable) + "\u0300",
- dstSize: minBufSize,
- srcSize: len("I" + strings.Repeat("\u0321", maxIgnorable)),
- t: Lower(language.Lithuanian),
- }, {
- desc: "lt/lower/decomposition with short dst buffer 1",
- src: "aaaaa\u00cc", // U+00CC LATIN CAPITAL LETTER I GRAVE
- firstErr: transform.ErrShortDst,
- want: "aaaaai\u0307\u0300",
- dstSize: 5,
- srcSize: minBufSize,
- t: Lower(language.Lithuanian),
- }, {
- desc: "lt/lower/decomposition with short dst buffer 2",
- src: "aaaa\u00cc", // U+00CC LATIN CAPITAL LETTER I GRAVE
- firstErr: transform.ErrShortDst,
- want: "aaaai\u0307\u0300",
- dstSize: 5,
- srcSize: minBufSize,
- t: Lower(language.Lithuanian),
- }, {
- desc: "lt/upper/max ignorables",
- src: "i" + strings.Repeat("\u0321", maxIgnorable-1) + "\u0307\u0300",
- want: "I" + strings.Repeat("\u0321", maxIgnorable-1) + "\u0300",
- dstSize: minBufSize,
- srcSize: minBufSize,
- t: Upper(language.Lithuanian),
- }, {
- desc: "lt/upper/too many ignorables",
- src: "i" + strings.Repeat("\u0321", maxIgnorable) + "\u0307\u0300",
- want: "I" + strings.Repeat("\u0321", maxIgnorable) + "\u0307\u0300",
- dstSize: minBufSize,
- srcSize: len("i" + strings.Repeat("\u0321", maxIgnorable)),
- t: Upper(language.Lithuanian),
- }, {
- desc: "lt/upper/short dst",
- src: "12i\u0307\u0300",
- want: "12\u00cc",
- firstErr: transform.ErrShortDst,
- dstSize: 3,
- srcSize: minBufSize,
- t: Upper(language.Lithuanian),
- }, {
- desc: "aztr/lower/max ignorables",
- src: "I" + strings.Repeat("\u0321", maxIgnorable-1) + "\u0307\u0300",
- want: "i" + strings.Repeat("\u0321", maxIgnorable-1) + "\u0300",
- dstSize: minBufSize,
- srcSize: minBufSize,
- t: Lower(language.Turkish),
- }, {
- desc: "aztr/lower/too many ignorables",
- src: "I" + strings.Repeat("\u0321", maxIgnorable) + "\u0307\u0300",
- want: "\u0131" + strings.Repeat("\u0321", maxIgnorable) + "\u0307\u0300",
- dstSize: minBufSize,
- srcSize: len("I" + strings.Repeat("\u0321", maxIgnorable)),
- t: Lower(language.Turkish),
- }, {
- desc: "nl/title/pre-IJ cutoff",
- src: " ij",
- want: " IJ",
- firstErr: transform.ErrShortDst,
- dstSize: 2,
- srcSize: minBufSize,
- t: Title(language.Dutch),
- }, {
- desc: "nl/title/mid-IJ cutoff",
- src: " ij",
- want: " IJ",
- firstErr: transform.ErrShortDst,
- dstSize: 3,
- srcSize: minBufSize,
- t: Title(language.Dutch),
- }, {
- desc: "af/title/apostrophe",
- src: "'n bietje",
- want: "'n Bietje",
- firstErr: transform.ErrShortDst,
- dstSize: 3,
- srcSize: minBufSize,
- t: Title(language.Afrikaans),
- }}
-}
-
-func TestShortBuffersAndOverflow(t *testing.T) {
- for i, tt := range bufferTests {
- testtext.Run(t, tt.desc, func(t *testing.T) {
- buf := make([]byte, tt.dstSize)
- got := []byte{}
- var nSrc, nDst int
- var err error
- for p := 0; p < len(tt.src); p += nSrc {
- q := p + tt.srcSize
- if q > len(tt.src) {
- q = len(tt.src)
- }
- nDst, nSrc, err = tt.t.Transform(buf, []byte(tt.src[p:q]), q == len(tt.src))
- got = append(got, buf[:nDst]...)
-
- if p == 0 && err != tt.firstErr {
- t.Errorf("%d:%s:\n error was %v; want %v", i, tt.desc, err, tt.firstErr)
- break
- }
- }
- if string(got) != tt.want {
- t.Errorf("%d:%s:\ngot %+q;\nwant %+q", i, tt.desc, got, tt.want)
- }
- testHandover(t, Caser{tt.t}, tt.src)
- })
- }
-}
-
-func TestSpan(t *testing.T) {
- for _, tt := range []struct {
- desc string
- src string
- want string
- atEOF bool
- err error
- t Caser
- }{{
- desc: "und/upper/basic",
- src: "abcdefg",
- want: "",
- atEOF: true,
- err: transform.ErrEndOfSpan,
- t: Upper(language.Und),
- }, {
- desc: "und/upper/short src",
- src: "123É"[:4],
- want: "123",
- atEOF: false,
- err: transform.ErrShortSrc,
- t: Upper(language.Und),
- }, {
- desc: "und/upper/no error on short",
- src: "12",
- want: "12",
- atEOF: false,
- t: Upper(language.Und),
- }, {
- desc: "und/lower/basic",
- src: "ABCDEFG",
- want: "",
- atEOF: true,
- err: transform.ErrEndOfSpan,
- t: Lower(language.Und),
- }, {
- desc: "und/lower/short src num",
- src: "123é"[:4],
- want: "123",
- atEOF: false,
- err: transform.ErrShortSrc,
- t: Lower(language.Und),
- }, {
- desc: "und/lower/short src greek",
- src: "αβγé"[:7],
- want: "αβγ",
- atEOF: false,
- err: transform.ErrShortSrc,
- t: Lower(language.Und),
- }, {
- desc: "und/lower/no error on short",
- src: "12",
- want: "12",
- atEOF: false,
- t: Lower(language.Und),
- }, {
- desc: "und/lower/simple (no final sigma)",
- src: "ος οσσ",
- want: "οσ οσσ",
- atEOF: true,
- t: Lower(language.Und, HandleFinalSigma(false)),
- }, {
- desc: "und/title/simple (no final sigma)",
- src: "Οσ Οσσ",
- want: "Οσ Οσσ",
- atEOF: true,
- t: Title(language.Und, HandleFinalSigma(false)),
- }, {
- desc: "und/lower/final sigma: no error",
- src: "οΣ", // Oς
- want: "ο", // Oς
- err: transform.ErrEndOfSpan,
- t: Lower(language.Und),
- }, {
- desc: "und/title/final sigma: no error",
- src: "ΟΣ", // Oς
- want: "Ο", // Oς
- err: transform.ErrEndOfSpan,
- t: Title(language.Und),
- }, {
- desc: "und/title/final sigma: no short source!",
- src: "ΟσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσΣ",
- want: "Οσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσ",
- err: transform.ErrEndOfSpan,
- t: Title(language.Und),
- }, {
- desc: "und/title/clipped UTF-8 rune",
- src: "Σσ" + string([]byte{0xCF}),
- want: "Σσ",
- atEOF: false,
- err: transform.ErrShortSrc,
- t: Title(language.Und),
- }, {
- desc: "und/title/clipped UTF-8 rune atEOF",
- src: "Σσσ" + string([]byte{0xCF}),
- want: "Σσσ" + string([]byte{0xCF}),
- atEOF: true,
- t: Title(language.Und),
- }, {
- // Note: the choice to change the final sigma at the end in case of
- // too many case ignorables is arbitrary. The main reason for this
- // choice is that it results in simpler code.
- desc: "und/title/long string",
- src: "A" + strings.Repeat("a", maxIgnorable+5),
- want: "A" + strings.Repeat("a", maxIgnorable+5),
- t: Title(language.Und),
- }, {
- // Note: the choice to change the final sigma at the end in case of
- // too many case ignorables is arbitrary. The main reason for this
- // choice is that it results in simpler code.
- desc: "und/title/cyrillic",
- src: "При",
- want: "При",
- atEOF: true,
- t: Title(language.Und, HandleFinalSigma(false)),
- }, {
- // Note: the choice to change the final sigma at the end in case of
- // too many case ignorables is arbitrary. The main reason for this
- // choice is that it results in simpler code.
- desc: "und/title/final sigma: max ignorables",
- src: "Οσ" + strings.Repeat(".", maxIgnorable) + "A",
- want: "Οσ" + strings.Repeat(".", maxIgnorable) + "A",
- t: Title(language.Und),
- }, {
- desc: "el/upper/max ignorables - not implemented",
- src: "Ο" + strings.Repeat("\u0321", maxIgnorable-1) + "\u0313",
- want: "",
- err: transform.ErrEndOfSpan,
- t: Upper(language.Greek),
- }, {
- desc: "el/upper/too many ignorables - not implemented",
- src: "Ο" + strings.Repeat("\u0321", maxIgnorable) + "\u0313",
- want: "",
- err: transform.ErrEndOfSpan,
- t: Upper(language.Greek),
- }, {
- desc: "el/upper/short dst",
- src: "123ο",
- want: "",
- err: transform.ErrEndOfSpan,
- t: Upper(language.Greek),
- }, {
- desc: "lt/lower/max ignorables",
- src: "i" + strings.Repeat("\u0321", maxIgnorable-1) + "\u0307\u0300",
- want: "i" + strings.Repeat("\u0321", maxIgnorable-1) + "\u0307\u0300",
- t: Lower(language.Lithuanian),
- }, {
- desc: "lt/lower/isLower",
- src: "I" + strings.Repeat("\u0321", maxIgnorable) + "\u0300",
- want: "",
- err: transform.ErrEndOfSpan,
- t: Lower(language.Lithuanian),
- }, {
- desc: "lt/lower/not identical",
- src: "aaaaa\u00cc", // U+00CC LATIN CAPITAL LETTER I GRAVE
- err: transform.ErrEndOfSpan,
- want: "aaaaa",
- t: Lower(language.Lithuanian),
- }, {
- desc: "lt/lower/identical",
- src: "aaaai\u0307\u0300", // U+00CC LATIN CAPITAL LETTER I GRAVE
- want: "aaaai\u0307\u0300",
- t: Lower(language.Lithuanian),
- }, {
- desc: "lt/upper/not implemented",
- src: "I" + strings.Repeat("\u0321", maxIgnorable-1) + "\u0300",
- want: "",
- err: transform.ErrEndOfSpan,
- t: Upper(language.Lithuanian),
- }, {
- desc: "lt/upper/not implemented, ascii",
- src: "AB",
- want: "",
- err: transform.ErrEndOfSpan,
- t: Upper(language.Lithuanian),
- }, {
- desc: "nl/title/pre-IJ cutoff",
- src: " IJ",
- want: " IJ",
- t: Title(language.Dutch),
- }, {
- desc: "nl/title/mid-IJ cutoff",
- src: " Ia",
- want: " Ia",
- t: Title(language.Dutch),
- }, {
- desc: "af/title/apostrophe",
- src: "'n Bietje",
- want: "'n Bietje",
- t: Title(language.Afrikaans),
- }, {
- desc: "af/title/apostrophe-incorrect",
- src: "'N Bietje",
- // The Single_Quote (a MidWord), needs to be retained as unspanned so
- // that a successive call to Transform can detect that N should not be
- // capitalized.
- want: "",
- err: transform.ErrEndOfSpan,
- t: Title(language.Afrikaans),
- }} {
- testtext.Run(t, tt.desc, func(t *testing.T) {
- for p := 0; p < len(tt.want); p += utf8.RuneLen([]rune(tt.src[p:])[0]) {
- tt.t.Reset()
- n, err := tt.t.Span([]byte(tt.src[:p]), false)
- if err != nil && err != transform.ErrShortSrc {
- t.Errorf("early failure:Span(%+q): %v (%d < %d)", tt.src[:p], err, n, len(tt.want))
- break
- }
- }
- tt.t.Reset()
- n, err := tt.t.Span([]byte(tt.src), tt.atEOF)
- if n != len(tt.want) || err != tt.err {
- t.Errorf("Span(%+q, %v): got %d, %v; want %d, %v", tt.src, tt.atEOF, n, err, len(tt.want), tt.err)
- }
- testHandover(t, tt.t, tt.src)
- })
- }
-}
-
-var txtASCII = strings.Repeat("The quick brown fox jumps over the lazy dog. ", 50)
-
-// Taken from http://creativecommons.org/licenses/by-sa/3.0/vn/
-const txt_vn = `Với các điều kiện sau: Ghi nhận công của tác giả. Nếu bạn sử
-dụng, chuyển đổi, hoặc xây dựng dự án từ nội dung được chia sẻ này, bạn phải áp
-dụng giấy phép này hoặc một giấy phép khác có các điều khoản tương tự như giấy
-phép này cho dự án của bạn. Hiểu rằng: Miễn — Bất kỳ các điều kiện nào trên đây
-cũng có thể được miễn bỏ nếu bạn được sự cho phép của người sở hữu bản quyền.
-Phạm vi công chúng — Khi tác phẩm hoặc bất kỳ chương nào của tác phẩm đã trong
-vùng dành cho công chúng theo quy định của pháp luật thì tình trạng của nó không
-bị ảnh hưởng bởi giấy phép trong bất kỳ trường hợp nào.`
-
-// http://creativecommons.org/licenses/by-sa/2.5/cn/
-const txt_cn = `您可以自由: 复制、发行、展览、表演、放映、
-广播或通过信息网络传播本作品 创作演绎作品
-对本作品进行商业性使用 惟须遵守下列条件:
-署名 — 您必须按照作者或者许可人指定的方式对作品进行署名。
-相同方式共享 — 如果您改变、转换本作品或者以本作品为基础进行创作,
-您只能采用与本协议相同的许可协议发布基于本作品的演绎作品。`
-
-// Taken from http://creativecommons.org/licenses/by-sa/1.0/deed.ru
-const txt_ru = `При обязательном соблюдении следующих условий: Attribution — Вы
-должны атрибутировать произведение (указывать автора и источник) в порядке,
-предусмотренном автором или лицензиаром (но только так, чтобы никоим образом не
-подразумевалось, что они поддерживают вас или использование вами данного
-произведения). Υπό τις ακόλουθες προϋποθέσεις:`
-
-// Taken from http://creativecommons.org/licenses/by-sa/3.0/gr/
-const txt_gr = `Αναφορά Δημιουργού — Θα πρέπει να κάνετε την αναφορά στο έργο με
-τον τρόπο που έχει οριστεί από το δημιουργό ή το χορηγούντο την άδεια (χωρίς
-όμως να εννοείται με οποιονδήποτε τρόπο ότι εγκρίνουν εσάς ή τη χρήση του έργου
-από εσάς). Παρόμοια Διανομή — Εάν αλλοιώσετε, τροποποιήσετε ή δημιουργήσετε
-περαιτέρω βασισμένοι στο έργο θα μπορείτε να διανέμετε το έργο που θα προκύψει
-μόνο με την ίδια ή παρόμοια άδεια.`
-
-const txtNonASCII = txt_vn + txt_cn + txt_ru + txt_gr
-
-// TODO: Improve ASCII performance.
-
-func BenchmarkCasers(b *testing.B) {
- for _, s := range []struct{ name, text string }{
- {"ascii", txtASCII},
- {"nonASCII", txtNonASCII},
- {"short", "При"},
- } {
- src := []byte(s.text)
- // Measure case mappings in bytes package for comparison.
- for _, f := range []struct {
- name string
- fn func(b []byte) []byte
- }{
- {"lower", bytes.ToLower},
- {"title", bytes.ToTitle},
- {"upper", bytes.ToUpper},
- } {
- testtext.Bench(b, path.Join(s.name, "bytes", f.name), func(b *testing.B) {
- b.SetBytes(int64(len(src)))
- for i := 0; i < b.N; i++ {
- f.fn(src)
- }
- })
- }
- for _, t := range []struct {
- name string
- caser transform.SpanningTransformer
- }{
- {"fold/default", Fold()},
- {"upper/default", Upper(language.Und)},
- {"lower/sigma", Lower(language.Und)},
- {"lower/simple", Lower(language.Und, HandleFinalSigma(false))},
- {"title/sigma", Title(language.Und)},
- {"title/simple", Title(language.Und, HandleFinalSigma(false))},
- } {
- c := Caser{t.caser}
- dst := make([]byte, len(src))
- testtext.Bench(b, path.Join(s.name, t.name, "transform"), func(b *testing.B) {
- b.SetBytes(int64(len(src)))
- for i := 0; i < b.N; i++ {
- c.Reset()
- c.Transform(dst, src, true)
- }
- })
- // No need to check span for simple cases, as they will be the same
- // as sigma.
- if strings.HasSuffix(t.name, "/simple") {
- continue
- }
- spanSrc := c.Bytes(src)
- testtext.Bench(b, path.Join(s.name, t.name, "span"), func(b *testing.B) {
- c.Reset()
- if n, _ := c.Span(spanSrc, true); n < len(spanSrc) {
- b.Fatalf("spanner is not recognizing text %q as done (at %d)", spanSrc, n)
- }
- b.SetBytes(int64(len(spanSrc)))
- for i := 0; i < b.N; i++ {
- c.Reset()
- c.Span(spanSrc, true)
- }
- })
- }
- }
-}
diff --git a/vendor/golang.org/x/text/cases/tables10.0.0.go b/vendor/golang.org/x/text/cases/tables10.0.0.go
deleted file mode 100644
index 9800782af..000000000
--- a/vendor/golang.org/x/text/cases/tables10.0.0.go
+++ /dev/null
@@ -1,2253 +0,0 @@
-// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT.
-
-// +build go1.10
-
-package cases
-
-// UnicodeVersion is the Unicode version from which the tables in this package are derived.
-const UnicodeVersion = "10.0.0"
-
-var xorData string = "" + // Size: 185 bytes
- "\x00\x06\x07\x00\x01?\x00\x0f\x03\x00\x0f\x12\x00\x0f\x1f\x00\x0f\x1d" +
- "\x00\x01\x13\x00\x0f\x16\x00\x0f\x0b\x00\x0f3\x00\x0f7\x00\x01#\x00\x0f?" +
- "\x00\x0e'\x00\x0f/\x00\x0e>\x00\x0f*\x00\x0c&\x00\x0c*\x00\x0c;\x00\x0c9" +
- "\x00\x0c%\x00\x01\x08\x00\x03\x0d\x00\x03\x09\x00\x02\x06\x00\x02\x02" +
- "\x00\x02\x0c\x00\x01\x00\x00\x01\x03\x00\x01\x01\x00\x01 \x00\x01\x0c" +
- "\x00\x01\x10\x00\x03\x10\x00\x036 \x00\x037 \x00\x0b#\x10\x00\x0b 0\x00" +
- "\x0b!\x10\x00\x0b!0\x00\x0b(\x04\x00\x03\x04\x1e\x00\x03\x0a\x00\x02:" +
- "\x00\x02>\x00\x02,\x00\x02\x00\x00\x02\x10\x00\x01<\x00\x01&\x00\x01*" +
- "\x00\x01.\x00\x010\x003 \x00\x01\x18\x00\x01(\x00\x01\x1e\x00\x01\x22"
-
-var exceptions string = "" + // Size: 1852 bytes
- "\x00\x12\x10μΜ\x12\x12ssSSSs\x13\x18i̇i̇\x10\x08I\x13\x18ʼnʼN\x11\x08sS" +
- "\x12\x12dždžDž\x12\x12dždžDŽ\x10\x12DŽDž\x12\x12ljljLj\x12\x12ljljLJ\x10\x12LJLj\x12\x12" +
- "njnjNj\x12\x12njnjNJ\x10\x12NJNj\x13\x18ǰJ̌\x12\x12dzdzDz\x12\x12dzdzDZ\x10\x12DZDz" +
- "\x13\x18ⱥⱥ\x13\x18ⱦⱦ\x10\x18Ȿ\x10\x18Ɀ\x10\x18Ɐ\x10\x18Ɑ\x10\x18Ɒ\x10" +
- "\x18Ɜ\x10\x18Ɡ\x10\x18Ɥ\x10\x18Ɦ\x10\x18Ɪ\x10\x18Ɫ\x10\x18Ɬ\x10\x18Ɱ\x10" +
- "\x18Ɽ\x10\x18Ʇ\x10\x18Ʝ\x10\x18Ʞ2\x10ιΙ\x160ΐΪ́\x160ΰΫ́\x12\x10σΣ" +
- "\x12\x10βΒ\x12\x10θΘ\x12\x10φΦ\x12\x10πΠ\x12\x10κΚ\x12\x10ρΡ\x12\x10εΕ" +
- "\x14$եւԵՒԵւ\x12\x10вВ\x12\x10дД\x12\x10оО\x12\x10сС\x12\x10тТ\x12\x10тТ" +
- "\x12\x10ъЪ\x12\x10ѣѢ\x13\x18ꙋꙊ\x13\x18ẖH̱\x13\x18ẗT̈\x13\x18ẘW̊\x13" +
- "\x18ẙY̊\x13\x18aʾAʾ\x13\x18ṡṠ\x12\x10ssß\x14 ὐΥ̓\x160ὒΥ̓̀\x160ὔΥ̓́" +
- "\x160ὖΥ̓͂\x15+ἀιἈΙᾈ\x15+ἁιἉΙᾉ\x15+ἂιἊΙᾊ\x15+ἃιἋΙᾋ\x15+ἄιἌΙᾌ\x15+ἅιἍΙᾍ" +
- "\x15+ἆιἎΙᾎ\x15+ἇιἏΙᾏ\x15\x1dἀιᾀἈΙ\x15\x1dἁιᾁἉΙ\x15\x1dἂιᾂἊΙ\x15\x1dἃιᾃἋΙ" +
- "\x15\x1dἄιᾄἌΙ\x15\x1dἅιᾅἍΙ\x15\x1dἆιᾆἎΙ\x15\x1dἇιᾇἏΙ\x15+ἠιἨΙᾘ\x15+ἡιἩΙᾙ" +
- "\x15+ἢιἪΙᾚ\x15+ἣιἫΙᾛ\x15+ἤιἬΙᾜ\x15+ἥιἭΙᾝ\x15+ἦιἮΙᾞ\x15+ἧιἯΙᾟ\x15\x1dἠιᾐἨ" +
- "Ι\x15\x1dἡιᾑἩΙ\x15\x1dἢιᾒἪΙ\x15\x1dἣιᾓἫΙ\x15\x1dἤιᾔἬΙ\x15\x1dἥιᾕἭΙ\x15" +
- "\x1dἦιᾖἮΙ\x15\x1dἧιᾗἯΙ\x15+ὠιὨΙᾨ\x15+ὡιὩΙᾩ\x15+ὢιὪΙᾪ\x15+ὣιὫΙᾫ\x15+ὤιὬΙᾬ" +
- "\x15+ὥιὭΙᾭ\x15+ὦιὮΙᾮ\x15+ὧιὯΙᾯ\x15\x1dὠιᾠὨΙ\x15\x1dὡιᾡὩΙ\x15\x1dὢιᾢὪΙ" +
- "\x15\x1dὣιᾣὫΙ\x15\x1dὤιᾤὬΙ\x15\x1dὥιᾥὭΙ\x15\x1dὦιᾦὮΙ\x15\x1dὧιᾧὯΙ\x15-ὰι" +
- "ᾺΙᾺͅ\x14#αιΑΙᾼ\x14$άιΆΙΆͅ\x14 ᾶΑ͂\x166ᾶιΑ͂Ιᾼ͂\x14\x1cαιᾳΑΙ\x12\x10ι" +
- "Ι\x15-ὴιῊΙῊͅ\x14#ηιΗΙῌ\x14$ήιΉΙΉͅ\x14 ῆΗ͂\x166ῆιΗ͂Ιῌ͂\x14\x1cηιῃΗΙ" +
- "\x160ῒΪ̀\x160ΐΪ́\x14 ῖΙ͂\x160ῗΪ͂\x160ῢΫ̀\x160ΰΫ́\x14 ῤΡ" +
- "̓\x14 ῦΥ͂\x160ῧΫ͂\x15-ὼιῺΙῺͅ\x14#ωιΩΙῼ\x14$ώιΏΙΏͅ\x14 ῶΩ͂\x166ῶιΩ" +
- "͂Ιῼ͂\x14\x1cωιῳΩΙ\x12\x10ωω\x11\x08kk\x12\x10åå\x12\x10ɫɫ\x12\x10ɽɽ" +
- "\x10\x10Ⱥ\x10\x10Ⱦ\x12\x10ɑɑ\x12\x10ɱɱ\x12\x10ɐɐ\x12\x10ɒɒ\x12\x10ȿȿ\x12" +
- "\x10ɀɀ\x12\x10ɥɥ\x12\x10ɦɦ\x12\x10ɜɜ\x12\x10ɡɡ\x12\x10ɬɬ\x12\x10ɪɪ\x12" +
- "\x10ʞʞ\x12\x10ʇʇ\x12\x10ʝʝ\x12\x12ffFFFf\x12\x12fiFIFi\x12\x12flFLFl\x13" +
- "\x1bffiFFIFfi\x13\x1bfflFFLFfl\x12\x12stSTSt\x12\x12stSTSt\x14$մնՄՆՄն" +
- "\x14$մեՄԵՄե\x14$միՄԻՄի\x14$վնՎՆՎն\x14$մխՄԽՄխ"
-
-// lookup returns the trie value for the first UTF-8 encoding in s and
-// the width in bytes of this encoding. The size will be 0 if s does not
-// hold enough bytes to complete the encoding. len(s) must be greater than 0.
-func (t *caseTrie) lookup(s []byte) (v uint16, sz int) {
- c0 := s[0]
- switch {
- case c0 < 0x80: // is ASCII
- return caseValues[c0], 1
- case c0 < 0xC2:
- return 0, 1 // Illegal UTF-8: not a starter, not ASCII.
- case c0 < 0xE0: // 2-byte UTF-8
- if len(s) < 2 {
- return 0, 0
- }
- i := caseIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c1), 2
- case c0 < 0xF0: // 3-byte UTF-8
- if len(s) < 3 {
- return 0, 0
- }
- i := caseIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- o := uint32(i)<<6 + uint32(c1)
- i = caseIndex[o]
- c2 := s[2]
- if c2 < 0x80 || 0xC0 <= c2 {
- return 0, 2 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c2), 3
- case c0 < 0xF8: // 4-byte UTF-8
- if len(s) < 4 {
- return 0, 0
- }
- i := caseIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- o := uint32(i)<<6 + uint32(c1)
- i = caseIndex[o]
- c2 := s[2]
- if c2 < 0x80 || 0xC0 <= c2 {
- return 0, 2 // Illegal UTF-8: not a continuation byte.
- }
- o = uint32(i)<<6 + uint32(c2)
- i = caseIndex[o]
- c3 := s[3]
- if c3 < 0x80 || 0xC0 <= c3 {
- return 0, 3 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c3), 4
- }
- // Illegal rune
- return 0, 1
-}
-
-// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.
-// s must start with a full and valid UTF-8 encoded rune.
-func (t *caseTrie) lookupUnsafe(s []byte) uint16 {
- c0 := s[0]
- if c0 < 0x80 { // is ASCII
- return caseValues[c0]
- }
- i := caseIndex[c0]
- if c0 < 0xE0 { // 2-byte UTF-8
- return t.lookupValue(uint32(i), s[1])
- }
- i = caseIndex[uint32(i)<<6+uint32(s[1])]
- if c0 < 0xF0 { // 3-byte UTF-8
- return t.lookupValue(uint32(i), s[2])
- }
- i = caseIndex[uint32(i)<<6+uint32(s[2])]
- if c0 < 0xF8 { // 4-byte UTF-8
- return t.lookupValue(uint32(i), s[3])
- }
- return 0
-}
-
-// lookupString returns the trie value for the first UTF-8 encoding in s and
-// the width in bytes of this encoding. The size will be 0 if s does not
-// hold enough bytes to complete the encoding. len(s) must be greater than 0.
-func (t *caseTrie) lookupString(s string) (v uint16, sz int) {
- c0 := s[0]
- switch {
- case c0 < 0x80: // is ASCII
- return caseValues[c0], 1
- case c0 < 0xC2:
- return 0, 1 // Illegal UTF-8: not a starter, not ASCII.
- case c0 < 0xE0: // 2-byte UTF-8
- if len(s) < 2 {
- return 0, 0
- }
- i := caseIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c1), 2
- case c0 < 0xF0: // 3-byte UTF-8
- if len(s) < 3 {
- return 0, 0
- }
- i := caseIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- o := uint32(i)<<6 + uint32(c1)
- i = caseIndex[o]
- c2 := s[2]
- if c2 < 0x80 || 0xC0 <= c2 {
- return 0, 2 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c2), 3
- case c0 < 0xF8: // 4-byte UTF-8
- if len(s) < 4 {
- return 0, 0
- }
- i := caseIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- o := uint32(i)<<6 + uint32(c1)
- i = caseIndex[o]
- c2 := s[2]
- if c2 < 0x80 || 0xC0 <= c2 {
- return 0, 2 // Illegal UTF-8: not a continuation byte.
- }
- o = uint32(i)<<6 + uint32(c2)
- i = caseIndex[o]
- c3 := s[3]
- if c3 < 0x80 || 0xC0 <= c3 {
- return 0, 3 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c3), 4
- }
- // Illegal rune
- return 0, 1
-}
-
-// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.
-// s must start with a full and valid UTF-8 encoded rune.
-func (t *caseTrie) lookupStringUnsafe(s string) uint16 {
- c0 := s[0]
- if c0 < 0x80 { // is ASCII
- return caseValues[c0]
- }
- i := caseIndex[c0]
- if c0 < 0xE0 { // 2-byte UTF-8
- return t.lookupValue(uint32(i), s[1])
- }
- i = caseIndex[uint32(i)<<6+uint32(s[1])]
- if c0 < 0xF0 { // 3-byte UTF-8
- return t.lookupValue(uint32(i), s[2])
- }
- i = caseIndex[uint32(i)<<6+uint32(s[2])]
- if c0 < 0xF8 { // 4-byte UTF-8
- return t.lookupValue(uint32(i), s[3])
- }
- return 0
-}
-
-// caseTrie. Total size: 11892 bytes (11.61 KiB). Checksum: abd4a0bc39341b30.
-type caseTrie struct{}
-
-func newCaseTrie(i int) *caseTrie {
- return &caseTrie{}
-}
-
-// lookupValue determines the type of block n and looks up the value for b.
-func (t *caseTrie) lookupValue(n uint32, b byte) uint16 {
- switch {
- case n < 18:
- return uint16(caseValues[n<<6+uint32(b)])
- default:
- n -= 18
- return uint16(sparse.lookup(n, b))
- }
-}
-
-// caseValues: 20 blocks, 1280 entries, 2560 bytes
-// The third block is the zero block.
-var caseValues = [1280]uint16{
- // Block 0x0, offset 0x0
- 0x27: 0x0054,
- 0x2e: 0x0054,
- 0x30: 0x0010, 0x31: 0x0010, 0x32: 0x0010, 0x33: 0x0010, 0x34: 0x0010, 0x35: 0x0010,
- 0x36: 0x0010, 0x37: 0x0010, 0x38: 0x0010, 0x39: 0x0010, 0x3a: 0x0054,
- // Block 0x1, offset 0x40
- 0x41: 0x2013, 0x42: 0x2013, 0x43: 0x2013, 0x44: 0x2013, 0x45: 0x2013,
- 0x46: 0x2013, 0x47: 0x2013, 0x48: 0x2013, 0x49: 0x2013, 0x4a: 0x2013, 0x4b: 0x2013,
- 0x4c: 0x2013, 0x4d: 0x2013, 0x4e: 0x2013, 0x4f: 0x2013, 0x50: 0x2013, 0x51: 0x2013,
- 0x52: 0x2013, 0x53: 0x2013, 0x54: 0x2013, 0x55: 0x2013, 0x56: 0x2013, 0x57: 0x2013,
- 0x58: 0x2013, 0x59: 0x2013, 0x5a: 0x2013,
- 0x5e: 0x0004, 0x5f: 0x0010, 0x60: 0x0004, 0x61: 0x2012, 0x62: 0x2012, 0x63: 0x2012,
- 0x64: 0x2012, 0x65: 0x2012, 0x66: 0x2012, 0x67: 0x2012, 0x68: 0x2012, 0x69: 0x2012,
- 0x6a: 0x2012, 0x6b: 0x2012, 0x6c: 0x2012, 0x6d: 0x2012, 0x6e: 0x2012, 0x6f: 0x2012,
- 0x70: 0x2012, 0x71: 0x2012, 0x72: 0x2012, 0x73: 0x2012, 0x74: 0x2012, 0x75: 0x2012,
- 0x76: 0x2012, 0x77: 0x2012, 0x78: 0x2012, 0x79: 0x2012, 0x7a: 0x2012,
- // Block 0x2, offset 0x80
- // Block 0x3, offset 0xc0
- 0xc0: 0x0852, 0xc1: 0x0b53, 0xc2: 0x0113, 0xc3: 0x0112, 0xc4: 0x0113, 0xc5: 0x0112,
- 0xc6: 0x0b53, 0xc7: 0x0f13, 0xc8: 0x0f12, 0xc9: 0x0e53, 0xca: 0x1153, 0xcb: 0x0713,
- 0xcc: 0x0712, 0xcd: 0x0012, 0xce: 0x1453, 0xcf: 0x1753, 0xd0: 0x1a53, 0xd1: 0x0313,
- 0xd2: 0x0312, 0xd3: 0x1d53, 0xd4: 0x2053, 0xd5: 0x2352, 0xd6: 0x2653, 0xd7: 0x2653,
- 0xd8: 0x0113, 0xd9: 0x0112, 0xda: 0x2952, 0xdb: 0x0012, 0xdc: 0x1d53, 0xdd: 0x2c53,
- 0xde: 0x2f52, 0xdf: 0x3253, 0xe0: 0x0113, 0xe1: 0x0112, 0xe2: 0x0113, 0xe3: 0x0112,
- 0xe4: 0x0113, 0xe5: 0x0112, 0xe6: 0x3553, 0xe7: 0x0f13, 0xe8: 0x0f12, 0xe9: 0x3853,
- 0xea: 0x0012, 0xeb: 0x0012, 0xec: 0x0113, 0xed: 0x0112, 0xee: 0x3553, 0xef: 0x1f13,
- 0xf0: 0x1f12, 0xf1: 0x3b53, 0xf2: 0x3e53, 0xf3: 0x0713, 0xf4: 0x0712, 0xf5: 0x0313,
- 0xf6: 0x0312, 0xf7: 0x4153, 0xf8: 0x0113, 0xf9: 0x0112, 0xfa: 0x0012, 0xfb: 0x0010,
- 0xfc: 0x0113, 0xfd: 0x0112, 0xfe: 0x0012, 0xff: 0x4452,
- // Block 0x4, offset 0x100
- 0x100: 0x0010, 0x101: 0x0010, 0x102: 0x0010, 0x103: 0x0010, 0x104: 0x04cb, 0x105: 0x05c9,
- 0x106: 0x06ca, 0x107: 0x078b, 0x108: 0x0889, 0x109: 0x098a, 0x10a: 0x0a4b, 0x10b: 0x0b49,
- 0x10c: 0x0c4a, 0x10d: 0x0313, 0x10e: 0x0312, 0x10f: 0x1f13, 0x110: 0x1f12, 0x111: 0x0313,
- 0x112: 0x0312, 0x113: 0x0713, 0x114: 0x0712, 0x115: 0x0313, 0x116: 0x0312, 0x117: 0x0f13,
- 0x118: 0x0f12, 0x119: 0x0313, 0x11a: 0x0312, 0x11b: 0x0713, 0x11c: 0x0712, 0x11d: 0x1452,
- 0x11e: 0x0113, 0x11f: 0x0112, 0x120: 0x0113, 0x121: 0x0112, 0x122: 0x0113, 0x123: 0x0112,
- 0x124: 0x0113, 0x125: 0x0112, 0x126: 0x0113, 0x127: 0x0112, 0x128: 0x0113, 0x129: 0x0112,
- 0x12a: 0x0113, 0x12b: 0x0112, 0x12c: 0x0113, 0x12d: 0x0112, 0x12e: 0x0113, 0x12f: 0x0112,
- 0x130: 0x0d0a, 0x131: 0x0e0b, 0x132: 0x0f09, 0x133: 0x100a, 0x134: 0x0113, 0x135: 0x0112,
- 0x136: 0x2353, 0x137: 0x4453, 0x138: 0x0113, 0x139: 0x0112, 0x13a: 0x0113, 0x13b: 0x0112,
- 0x13c: 0x0113, 0x13d: 0x0112, 0x13e: 0x0113, 0x13f: 0x0112,
- // Block 0x5, offset 0x140
- 0x140: 0x136a, 0x141: 0x0313, 0x142: 0x0312, 0x143: 0x0853, 0x144: 0x4753, 0x145: 0x4a53,
- 0x146: 0x0113, 0x147: 0x0112, 0x148: 0x0113, 0x149: 0x0112, 0x14a: 0x0113, 0x14b: 0x0112,
- 0x14c: 0x0113, 0x14d: 0x0112, 0x14e: 0x0113, 0x14f: 0x0112, 0x150: 0x140a, 0x151: 0x14aa,
- 0x152: 0x154a, 0x153: 0x0b52, 0x154: 0x0b52, 0x155: 0x0012, 0x156: 0x0e52, 0x157: 0x1152,
- 0x158: 0x0012, 0x159: 0x1752, 0x15a: 0x0012, 0x15b: 0x1a52, 0x15c: 0x15ea, 0x15d: 0x0012,
- 0x15e: 0x0012, 0x15f: 0x0012, 0x160: 0x1d52, 0x161: 0x168a, 0x162: 0x0012, 0x163: 0x2052,
- 0x164: 0x0012, 0x165: 0x172a, 0x166: 0x17ca, 0x167: 0x0012, 0x168: 0x2652, 0x169: 0x2652,
- 0x16a: 0x186a, 0x16b: 0x190a, 0x16c: 0x19aa, 0x16d: 0x0012, 0x16e: 0x0012, 0x16f: 0x1d52,
- 0x170: 0x0012, 0x171: 0x1a4a, 0x172: 0x2c52, 0x173: 0x0012, 0x174: 0x0012, 0x175: 0x3252,
- 0x176: 0x0012, 0x177: 0x0012, 0x178: 0x0012, 0x179: 0x0012, 0x17a: 0x0012, 0x17b: 0x0012,
- 0x17c: 0x0012, 0x17d: 0x1aea, 0x17e: 0x0012, 0x17f: 0x0012,
- // Block 0x6, offset 0x180
- 0x180: 0x3552, 0x181: 0x0012, 0x182: 0x0012, 0x183: 0x3852, 0x184: 0x0012, 0x185: 0x0012,
- 0x186: 0x0012, 0x187: 0x1b8a, 0x188: 0x3552, 0x189: 0x4752, 0x18a: 0x3b52, 0x18b: 0x3e52,
- 0x18c: 0x4a52, 0x18d: 0x0012, 0x18e: 0x0012, 0x18f: 0x0012, 0x190: 0x0012, 0x191: 0x0012,
- 0x192: 0x4152, 0x193: 0x0012, 0x194: 0x0010, 0x195: 0x0012, 0x196: 0x0012, 0x197: 0x0012,
- 0x198: 0x0012, 0x199: 0x0012, 0x19a: 0x0012, 0x19b: 0x0012, 0x19c: 0x0012, 0x19d: 0x1c2a,
- 0x19e: 0x1cca, 0x19f: 0x0012, 0x1a0: 0x0012, 0x1a1: 0x0012, 0x1a2: 0x0012, 0x1a3: 0x0012,
- 0x1a4: 0x0012, 0x1a5: 0x0012, 0x1a6: 0x0012, 0x1a7: 0x0012, 0x1a8: 0x0012, 0x1a9: 0x0012,
- 0x1aa: 0x0012, 0x1ab: 0x0012, 0x1ac: 0x0012, 0x1ad: 0x0012, 0x1ae: 0x0012, 0x1af: 0x0012,
- 0x1b0: 0x0015, 0x1b1: 0x0015, 0x1b2: 0x0015, 0x1b3: 0x0015, 0x1b4: 0x0015, 0x1b5: 0x0015,
- 0x1b6: 0x0015, 0x1b7: 0x0015, 0x1b8: 0x0015, 0x1b9: 0x0014, 0x1ba: 0x0014, 0x1bb: 0x0014,
- 0x1bc: 0x0014, 0x1bd: 0x0014, 0x1be: 0x0014, 0x1bf: 0x0014,
- // Block 0x7, offset 0x1c0
- 0x1c0: 0x0024, 0x1c1: 0x0024, 0x1c2: 0x0024, 0x1c3: 0x0024, 0x1c4: 0x0024, 0x1c5: 0x1d6d,
- 0x1c6: 0x0024, 0x1c7: 0x0034, 0x1c8: 0x0034, 0x1c9: 0x0034, 0x1ca: 0x0024, 0x1cb: 0x0024,
- 0x1cc: 0x0024, 0x1cd: 0x0034, 0x1ce: 0x0034, 0x1cf: 0x0014, 0x1d0: 0x0024, 0x1d1: 0x0024,
- 0x1d2: 0x0024, 0x1d3: 0x0034, 0x1d4: 0x0034, 0x1d5: 0x0034, 0x1d6: 0x0034, 0x1d7: 0x0024,
- 0x1d8: 0x0034, 0x1d9: 0x0034, 0x1da: 0x0034, 0x1db: 0x0024, 0x1dc: 0x0034, 0x1dd: 0x0034,
- 0x1de: 0x0034, 0x1df: 0x0034, 0x1e0: 0x0034, 0x1e1: 0x0034, 0x1e2: 0x0034, 0x1e3: 0x0024,
- 0x1e4: 0x0024, 0x1e5: 0x0024, 0x1e6: 0x0024, 0x1e7: 0x0024, 0x1e8: 0x0024, 0x1e9: 0x0024,
- 0x1ea: 0x0024, 0x1eb: 0x0024, 0x1ec: 0x0024, 0x1ed: 0x0024, 0x1ee: 0x0024, 0x1ef: 0x0024,
- 0x1f0: 0x0113, 0x1f1: 0x0112, 0x1f2: 0x0113, 0x1f3: 0x0112, 0x1f4: 0x0014, 0x1f5: 0x0004,
- 0x1f6: 0x0113, 0x1f7: 0x0112, 0x1fa: 0x0015, 0x1fb: 0x4d52,
- 0x1fc: 0x5052, 0x1fd: 0x5052, 0x1ff: 0x5353,
- // Block 0x8, offset 0x200
- 0x204: 0x0004, 0x205: 0x0004,
- 0x206: 0x2a13, 0x207: 0x0054, 0x208: 0x2513, 0x209: 0x2713, 0x20a: 0x2513,
- 0x20c: 0x5653, 0x20e: 0x5953, 0x20f: 0x5c53, 0x210: 0x1e2a, 0x211: 0x2013,
- 0x212: 0x2013, 0x213: 0x2013, 0x214: 0x2013, 0x215: 0x2013, 0x216: 0x2013, 0x217: 0x2013,
- 0x218: 0x2013, 0x219: 0x2013, 0x21a: 0x2013, 0x21b: 0x2013, 0x21c: 0x2013, 0x21d: 0x2013,
- 0x21e: 0x2013, 0x21f: 0x2013, 0x220: 0x5f53, 0x221: 0x5f53, 0x223: 0x5f53,
- 0x224: 0x5f53, 0x225: 0x5f53, 0x226: 0x5f53, 0x227: 0x5f53, 0x228: 0x5f53, 0x229: 0x5f53,
- 0x22a: 0x5f53, 0x22b: 0x5f53, 0x22c: 0x2a12, 0x22d: 0x2512, 0x22e: 0x2712, 0x22f: 0x2512,
- 0x230: 0x1fea, 0x231: 0x2012, 0x232: 0x2012, 0x233: 0x2012, 0x234: 0x2012, 0x235: 0x2012,
- 0x236: 0x2012, 0x237: 0x2012, 0x238: 0x2012, 0x239: 0x2012, 0x23a: 0x2012, 0x23b: 0x2012,
- 0x23c: 0x2012, 0x23d: 0x2012, 0x23e: 0x2012, 0x23f: 0x2012,
- // Block 0x9, offset 0x240
- 0x240: 0x5f52, 0x241: 0x5f52, 0x242: 0x21aa, 0x243: 0x5f52, 0x244: 0x5f52, 0x245: 0x5f52,
- 0x246: 0x5f52, 0x247: 0x5f52, 0x248: 0x5f52, 0x249: 0x5f52, 0x24a: 0x5f52, 0x24b: 0x5f52,
- 0x24c: 0x5652, 0x24d: 0x5952, 0x24e: 0x5c52, 0x24f: 0x1813, 0x250: 0x226a, 0x251: 0x232a,
- 0x252: 0x0013, 0x253: 0x0013, 0x254: 0x0013, 0x255: 0x23ea, 0x256: 0x24aa, 0x257: 0x1812,
- 0x258: 0x0113, 0x259: 0x0112, 0x25a: 0x0113, 0x25b: 0x0112, 0x25c: 0x0113, 0x25d: 0x0112,
- 0x25e: 0x0113, 0x25f: 0x0112, 0x260: 0x0113, 0x261: 0x0112, 0x262: 0x0113, 0x263: 0x0112,
- 0x264: 0x0113, 0x265: 0x0112, 0x266: 0x0113, 0x267: 0x0112, 0x268: 0x0113, 0x269: 0x0112,
- 0x26a: 0x0113, 0x26b: 0x0112, 0x26c: 0x0113, 0x26d: 0x0112, 0x26e: 0x0113, 0x26f: 0x0112,
- 0x270: 0x256a, 0x271: 0x262a, 0x272: 0x0b12, 0x273: 0x5352, 0x274: 0x6253, 0x275: 0x26ea,
- 0x277: 0x0f13, 0x278: 0x0f12, 0x279: 0x0b13, 0x27a: 0x0113, 0x27b: 0x0112,
- 0x27c: 0x0012, 0x27d: 0x4d53, 0x27e: 0x5053, 0x27f: 0x5053,
- // Block 0xa, offset 0x280
- 0x280: 0x0812, 0x281: 0x0812, 0x282: 0x0812, 0x283: 0x0812, 0x284: 0x0812, 0x285: 0x0812,
- 0x288: 0x0813, 0x289: 0x0813, 0x28a: 0x0813, 0x28b: 0x0813,
- 0x28c: 0x0813, 0x28d: 0x0813, 0x290: 0x372a, 0x291: 0x0812,
- 0x292: 0x386a, 0x293: 0x0812, 0x294: 0x3a2a, 0x295: 0x0812, 0x296: 0x3bea, 0x297: 0x0812,
- 0x299: 0x0813, 0x29b: 0x0813, 0x29d: 0x0813,
- 0x29f: 0x0813, 0x2a0: 0x0812, 0x2a1: 0x0812, 0x2a2: 0x0812, 0x2a3: 0x0812,
- 0x2a4: 0x0812, 0x2a5: 0x0812, 0x2a6: 0x0812, 0x2a7: 0x0812, 0x2a8: 0x0813, 0x2a9: 0x0813,
- 0x2aa: 0x0813, 0x2ab: 0x0813, 0x2ac: 0x0813, 0x2ad: 0x0813, 0x2ae: 0x0813, 0x2af: 0x0813,
- 0x2b0: 0x8b52, 0x2b1: 0x8b52, 0x2b2: 0x8e52, 0x2b3: 0x8e52, 0x2b4: 0x9152, 0x2b5: 0x9152,
- 0x2b6: 0x9452, 0x2b7: 0x9452, 0x2b8: 0x9752, 0x2b9: 0x9752, 0x2ba: 0x9a52, 0x2bb: 0x9a52,
- 0x2bc: 0x4d52, 0x2bd: 0x4d52,
- // Block 0xb, offset 0x2c0
- 0x2c0: 0x3daa, 0x2c1: 0x3f8a, 0x2c2: 0x416a, 0x2c3: 0x434a, 0x2c4: 0x452a, 0x2c5: 0x470a,
- 0x2c6: 0x48ea, 0x2c7: 0x4aca, 0x2c8: 0x4ca9, 0x2c9: 0x4e89, 0x2ca: 0x5069, 0x2cb: 0x5249,
- 0x2cc: 0x5429, 0x2cd: 0x5609, 0x2ce: 0x57e9, 0x2cf: 0x59c9, 0x2d0: 0x5baa, 0x2d1: 0x5d8a,
- 0x2d2: 0x5f6a, 0x2d3: 0x614a, 0x2d4: 0x632a, 0x2d5: 0x650a, 0x2d6: 0x66ea, 0x2d7: 0x68ca,
- 0x2d8: 0x6aa9, 0x2d9: 0x6c89, 0x2da: 0x6e69, 0x2db: 0x7049, 0x2dc: 0x7229, 0x2dd: 0x7409,
- 0x2de: 0x75e9, 0x2df: 0x77c9, 0x2e0: 0x79aa, 0x2e1: 0x7b8a, 0x2e2: 0x7d6a, 0x2e3: 0x7f4a,
- 0x2e4: 0x812a, 0x2e5: 0x830a, 0x2e6: 0x84ea, 0x2e7: 0x86ca, 0x2e8: 0x88a9, 0x2e9: 0x8a89,
- 0x2ea: 0x8c69, 0x2eb: 0x8e49, 0x2ec: 0x9029, 0x2ed: 0x9209, 0x2ee: 0x93e9, 0x2ef: 0x95c9,
- 0x2f0: 0x0812, 0x2f1: 0x0812, 0x2f2: 0x97aa, 0x2f3: 0x99ca, 0x2f4: 0x9b6a,
- 0x2f6: 0x9d2a, 0x2f7: 0x9e6a, 0x2f8: 0x0813, 0x2f9: 0x0813, 0x2fa: 0x8b53, 0x2fb: 0x8b53,
- 0x2fc: 0xa0e9, 0x2fd: 0x0004, 0x2fe: 0xa28a, 0x2ff: 0x0004,
- // Block 0xc, offset 0x300
- 0x300: 0x0004, 0x301: 0x0004, 0x302: 0xa34a, 0x303: 0xa56a, 0x304: 0xa70a,
- 0x306: 0xa8ca, 0x307: 0xaa0a, 0x308: 0x8e53, 0x309: 0x8e53, 0x30a: 0x9153, 0x30b: 0x9153,
- 0x30c: 0xac89, 0x30d: 0x0004, 0x30e: 0x0004, 0x30f: 0x0004, 0x310: 0x0812, 0x311: 0x0812,
- 0x312: 0xae2a, 0x313: 0xafea, 0x316: 0xb1aa, 0x317: 0xb2ea,
- 0x318: 0x0813, 0x319: 0x0813, 0x31a: 0x9453, 0x31b: 0x9453, 0x31d: 0x0004,
- 0x31e: 0x0004, 0x31f: 0x0004, 0x320: 0x0812, 0x321: 0x0812, 0x322: 0xb4aa, 0x323: 0xb66a,
- 0x324: 0xb82a, 0x325: 0x0912, 0x326: 0xb96a, 0x327: 0xbaaa, 0x328: 0x0813, 0x329: 0x0813,
- 0x32a: 0x9a53, 0x32b: 0x9a53, 0x32c: 0x0913, 0x32d: 0x0004, 0x32e: 0x0004, 0x32f: 0x0004,
- 0x332: 0xbc6a, 0x333: 0xbe8a, 0x334: 0xc02a,
- 0x336: 0xc1ea, 0x337: 0xc32a, 0x338: 0x9753, 0x339: 0x9753, 0x33a: 0x4d53, 0x33b: 0x4d53,
- 0x33c: 0xc5a9, 0x33d: 0x0004, 0x33e: 0x0004,
- // Block 0xd, offset 0x340
- 0x342: 0x0013,
- 0x347: 0x0013, 0x34a: 0x0012, 0x34b: 0x0013,
- 0x34c: 0x0013, 0x34d: 0x0013, 0x34e: 0x0012, 0x34f: 0x0012, 0x350: 0x0013, 0x351: 0x0013,
- 0x352: 0x0013, 0x353: 0x0012, 0x355: 0x0013,
- 0x359: 0x0013, 0x35a: 0x0013, 0x35b: 0x0013, 0x35c: 0x0013, 0x35d: 0x0013,
- 0x364: 0x0013, 0x366: 0xc74b, 0x368: 0x0013,
- 0x36a: 0xc80b, 0x36b: 0xc88b, 0x36c: 0x0013, 0x36d: 0x0013, 0x36f: 0x0012,
- 0x370: 0x0013, 0x371: 0x0013, 0x372: 0x9d53, 0x373: 0x0013, 0x374: 0x0012, 0x375: 0x0010,
- 0x376: 0x0010, 0x377: 0x0010, 0x378: 0x0010, 0x379: 0x0012,
- 0x37c: 0x0012, 0x37d: 0x0012, 0x37e: 0x0013, 0x37f: 0x0013,
- // Block 0xe, offset 0x380
- 0x380: 0x1a13, 0x381: 0x1a13, 0x382: 0x1e13, 0x383: 0x1e13, 0x384: 0x1a13, 0x385: 0x1a13,
- 0x386: 0x2613, 0x387: 0x2613, 0x388: 0x2a13, 0x389: 0x2a13, 0x38a: 0x2e13, 0x38b: 0x2e13,
- 0x38c: 0x2a13, 0x38d: 0x2a13, 0x38e: 0x2613, 0x38f: 0x2613, 0x390: 0xa052, 0x391: 0xa052,
- 0x392: 0xa352, 0x393: 0xa352, 0x394: 0xa652, 0x395: 0xa652, 0x396: 0xa352, 0x397: 0xa352,
- 0x398: 0xa052, 0x399: 0xa052, 0x39a: 0x1a12, 0x39b: 0x1a12, 0x39c: 0x1e12, 0x39d: 0x1e12,
- 0x39e: 0x1a12, 0x39f: 0x1a12, 0x3a0: 0x2612, 0x3a1: 0x2612, 0x3a2: 0x2a12, 0x3a3: 0x2a12,
- 0x3a4: 0x2e12, 0x3a5: 0x2e12, 0x3a6: 0x2a12, 0x3a7: 0x2a12, 0x3a8: 0x2612, 0x3a9: 0x2612,
- // Block 0xf, offset 0x3c0
- 0x3c0: 0x6552, 0x3c1: 0x6552, 0x3c2: 0x6552, 0x3c3: 0x6552, 0x3c4: 0x6552, 0x3c5: 0x6552,
- 0x3c6: 0x6552, 0x3c7: 0x6552, 0x3c8: 0x6552, 0x3c9: 0x6552, 0x3ca: 0x6552, 0x3cb: 0x6552,
- 0x3cc: 0x6552, 0x3cd: 0x6552, 0x3ce: 0x6552, 0x3cf: 0x6552, 0x3d0: 0xa952, 0x3d1: 0xa952,
- 0x3d2: 0xa952, 0x3d3: 0xa952, 0x3d4: 0xa952, 0x3d5: 0xa952, 0x3d6: 0xa952, 0x3d7: 0xa952,
- 0x3d8: 0xa952, 0x3d9: 0xa952, 0x3da: 0xa952, 0x3db: 0xa952, 0x3dc: 0xa952, 0x3dd: 0xa952,
- 0x3de: 0xa952, 0x3e0: 0x0113, 0x3e1: 0x0112, 0x3e2: 0xc94b, 0x3e3: 0x8853,
- 0x3e4: 0xca0b, 0x3e5: 0xcaca, 0x3e6: 0xcb4a, 0x3e7: 0x0f13, 0x3e8: 0x0f12, 0x3e9: 0x0313,
- 0x3ea: 0x0312, 0x3eb: 0x0713, 0x3ec: 0x0712, 0x3ed: 0xcbcb, 0x3ee: 0xcc8b, 0x3ef: 0xcd4b,
- 0x3f0: 0xce0b, 0x3f1: 0x0012, 0x3f2: 0x0113, 0x3f3: 0x0112, 0x3f4: 0x0012, 0x3f5: 0x0313,
- 0x3f6: 0x0312, 0x3f7: 0x0012, 0x3f8: 0x0012, 0x3f9: 0x0012, 0x3fa: 0x0012, 0x3fb: 0x0012,
- 0x3fc: 0x0015, 0x3fd: 0x0015, 0x3fe: 0xcecb, 0x3ff: 0xcf8b,
- // Block 0x10, offset 0x400
- 0x400: 0x0113, 0x401: 0x0112, 0x402: 0x0113, 0x403: 0x0112, 0x404: 0x0113, 0x405: 0x0112,
- 0x406: 0x0113, 0x407: 0x0112, 0x408: 0x0014, 0x409: 0x0014, 0x40a: 0x0014, 0x40b: 0x0713,
- 0x40c: 0x0712, 0x40d: 0xd04b, 0x40e: 0x0012, 0x40f: 0x0010, 0x410: 0x0113, 0x411: 0x0112,
- 0x412: 0x0113, 0x413: 0x0112, 0x414: 0x0012, 0x415: 0x0012, 0x416: 0x0113, 0x417: 0x0112,
- 0x418: 0x0113, 0x419: 0x0112, 0x41a: 0x0113, 0x41b: 0x0112, 0x41c: 0x0113, 0x41d: 0x0112,
- 0x41e: 0x0113, 0x41f: 0x0112, 0x420: 0x0113, 0x421: 0x0112, 0x422: 0x0113, 0x423: 0x0112,
- 0x424: 0x0113, 0x425: 0x0112, 0x426: 0x0113, 0x427: 0x0112, 0x428: 0x0113, 0x429: 0x0112,
- 0x42a: 0xd10b, 0x42b: 0xd1cb, 0x42c: 0xd28b, 0x42d: 0xd34b, 0x42e: 0xd40b,
- 0x430: 0xd4cb, 0x431: 0xd58b, 0x432: 0xd64b, 0x433: 0xac53, 0x434: 0x0113, 0x435: 0x0112,
- 0x436: 0x0113, 0x437: 0x0112,
- // Block 0x11, offset 0x440
- 0x440: 0xd70a, 0x441: 0xd80a, 0x442: 0xd90a, 0x443: 0xda0a, 0x444: 0xdb6a, 0x445: 0xdcca,
- 0x446: 0xddca,
- 0x453: 0xdeca, 0x454: 0xe08a, 0x455: 0xe24a, 0x456: 0xe40a, 0x457: 0xe5ca,
- 0x45d: 0x0010,
- 0x45e: 0x0034, 0x45f: 0x0010, 0x460: 0x0010, 0x461: 0x0010, 0x462: 0x0010, 0x463: 0x0010,
- 0x464: 0x0010, 0x465: 0x0010, 0x466: 0x0010, 0x467: 0x0010, 0x468: 0x0010,
- 0x46a: 0x0010, 0x46b: 0x0010, 0x46c: 0x0010, 0x46d: 0x0010, 0x46e: 0x0010, 0x46f: 0x0010,
- 0x470: 0x0010, 0x471: 0x0010, 0x472: 0x0010, 0x473: 0x0010, 0x474: 0x0010, 0x475: 0x0010,
- 0x476: 0x0010, 0x478: 0x0010, 0x479: 0x0010, 0x47a: 0x0010, 0x47b: 0x0010,
- 0x47c: 0x0010, 0x47e: 0x0010,
- // Block 0x12, offset 0x480
- 0x480: 0x2213, 0x481: 0x2213, 0x482: 0x2613, 0x483: 0x2613, 0x484: 0x2213, 0x485: 0x2213,
- 0x486: 0x2e13, 0x487: 0x2e13, 0x488: 0x2213, 0x489: 0x2213, 0x48a: 0x2613, 0x48b: 0x2613,
- 0x48c: 0x2213, 0x48d: 0x2213, 0x48e: 0x3e13, 0x48f: 0x3e13, 0x490: 0x2213, 0x491: 0x2213,
- 0x492: 0x2613, 0x493: 0x2613, 0x494: 0x2213, 0x495: 0x2213, 0x496: 0x2e13, 0x497: 0x2e13,
- 0x498: 0x2213, 0x499: 0x2213, 0x49a: 0x2613, 0x49b: 0x2613, 0x49c: 0x2213, 0x49d: 0x2213,
- 0x49e: 0xb553, 0x49f: 0xb553, 0x4a0: 0xb853, 0x4a1: 0xb853, 0x4a2: 0x2212, 0x4a3: 0x2212,
- 0x4a4: 0x2612, 0x4a5: 0x2612, 0x4a6: 0x2212, 0x4a7: 0x2212, 0x4a8: 0x2e12, 0x4a9: 0x2e12,
- 0x4aa: 0x2212, 0x4ab: 0x2212, 0x4ac: 0x2612, 0x4ad: 0x2612, 0x4ae: 0x2212, 0x4af: 0x2212,
- 0x4b0: 0x3e12, 0x4b1: 0x3e12, 0x4b2: 0x2212, 0x4b3: 0x2212, 0x4b4: 0x2612, 0x4b5: 0x2612,
- 0x4b6: 0x2212, 0x4b7: 0x2212, 0x4b8: 0x2e12, 0x4b9: 0x2e12, 0x4ba: 0x2212, 0x4bb: 0x2212,
- 0x4bc: 0x2612, 0x4bd: 0x2612, 0x4be: 0x2212, 0x4bf: 0x2212,
- // Block 0x13, offset 0x4c0
- 0x4c2: 0x0010,
- 0x4c7: 0x0010, 0x4c9: 0x0010, 0x4cb: 0x0010,
- 0x4cd: 0x0010, 0x4ce: 0x0010, 0x4cf: 0x0010, 0x4d1: 0x0010,
- 0x4d2: 0x0010, 0x4d4: 0x0010, 0x4d7: 0x0010,
- 0x4d9: 0x0010, 0x4db: 0x0010, 0x4dd: 0x0010,
- 0x4df: 0x0010, 0x4e1: 0x0010, 0x4e2: 0x0010,
- 0x4e4: 0x0010, 0x4e7: 0x0010, 0x4e8: 0x0010, 0x4e9: 0x0010,
- 0x4ea: 0x0010, 0x4ec: 0x0010, 0x4ed: 0x0010, 0x4ee: 0x0010, 0x4ef: 0x0010,
- 0x4f0: 0x0010, 0x4f1: 0x0010, 0x4f2: 0x0010, 0x4f4: 0x0010, 0x4f5: 0x0010,
- 0x4f6: 0x0010, 0x4f7: 0x0010, 0x4f9: 0x0010, 0x4fa: 0x0010, 0x4fb: 0x0010,
- 0x4fc: 0x0010, 0x4fe: 0x0010,
-}
-
-// caseIndex: 25 blocks, 1600 entries, 3200 bytes
-// Block 0 is the zero block.
-var caseIndex = [1600]uint16{
- // Block 0x0, offset 0x0
- // Block 0x1, offset 0x40
- // Block 0x2, offset 0x80
- // Block 0x3, offset 0xc0
- 0xc2: 0x12, 0xc3: 0x13, 0xc4: 0x14, 0xc5: 0x15, 0xc6: 0x01, 0xc7: 0x02,
- 0xc8: 0x16, 0xc9: 0x03, 0xca: 0x04, 0xcb: 0x17, 0xcc: 0x18, 0xcd: 0x05, 0xce: 0x06, 0xcf: 0x07,
- 0xd0: 0x19, 0xd1: 0x1a, 0xd2: 0x1b, 0xd3: 0x1c, 0xd4: 0x1d, 0xd5: 0x1e, 0xd6: 0x1f, 0xd7: 0x20,
- 0xd8: 0x21, 0xd9: 0x22, 0xda: 0x23, 0xdb: 0x24, 0xdc: 0x25, 0xdd: 0x26, 0xde: 0x27, 0xdf: 0x28,
- 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05,
- 0xea: 0x06, 0xeb: 0x07, 0xec: 0x07, 0xed: 0x08, 0xef: 0x09,
- 0xf0: 0x14, 0xf3: 0x16,
- // Block 0x4, offset 0x100
- 0x120: 0x29, 0x121: 0x2a, 0x122: 0x2b, 0x123: 0x2c, 0x124: 0x2d, 0x125: 0x2e, 0x126: 0x2f, 0x127: 0x30,
- 0x128: 0x31, 0x129: 0x32, 0x12a: 0x33, 0x12b: 0x34, 0x12c: 0x35, 0x12d: 0x36, 0x12e: 0x37, 0x12f: 0x38,
- 0x130: 0x39, 0x131: 0x3a, 0x132: 0x3b, 0x133: 0x3c, 0x134: 0x3d, 0x135: 0x3e, 0x136: 0x3f, 0x137: 0x40,
- 0x138: 0x41, 0x139: 0x42, 0x13a: 0x43, 0x13b: 0x44, 0x13c: 0x45, 0x13d: 0x46, 0x13e: 0x47, 0x13f: 0x48,
- // Block 0x5, offset 0x140
- 0x140: 0x49, 0x141: 0x4a, 0x142: 0x4b, 0x143: 0x4c, 0x144: 0x23, 0x145: 0x23, 0x146: 0x23, 0x147: 0x23,
- 0x148: 0x23, 0x149: 0x4d, 0x14a: 0x4e, 0x14b: 0x4f, 0x14c: 0x50, 0x14d: 0x51, 0x14e: 0x52, 0x14f: 0x53,
- 0x150: 0x54, 0x151: 0x23, 0x152: 0x23, 0x153: 0x23, 0x154: 0x23, 0x155: 0x23, 0x156: 0x23, 0x157: 0x23,
- 0x158: 0x23, 0x159: 0x55, 0x15a: 0x56, 0x15b: 0x57, 0x15c: 0x58, 0x15d: 0x59, 0x15e: 0x5a, 0x15f: 0x5b,
- 0x160: 0x5c, 0x161: 0x5d, 0x162: 0x5e, 0x163: 0x5f, 0x164: 0x60, 0x165: 0x61, 0x167: 0x62,
- 0x168: 0x63, 0x169: 0x64, 0x16a: 0x65, 0x16c: 0x66, 0x16d: 0x67, 0x16e: 0x68, 0x16f: 0x69,
- 0x170: 0x6a, 0x171: 0x6b, 0x172: 0x6c, 0x173: 0x6d, 0x174: 0x6e, 0x175: 0x6f, 0x176: 0x70, 0x177: 0x71,
- 0x178: 0x72, 0x179: 0x72, 0x17a: 0x73, 0x17b: 0x72, 0x17c: 0x74, 0x17d: 0x08, 0x17e: 0x09, 0x17f: 0x0a,
- // Block 0x6, offset 0x180
- 0x180: 0x75, 0x181: 0x76, 0x182: 0x77, 0x183: 0x78, 0x184: 0x0b, 0x185: 0x79, 0x186: 0x7a,
- 0x192: 0x7b, 0x193: 0x0c,
- 0x1b0: 0x7c, 0x1b1: 0x0d, 0x1b2: 0x72, 0x1b3: 0x7d, 0x1b4: 0x7e, 0x1b5: 0x7f, 0x1b6: 0x80, 0x1b7: 0x81,
- 0x1b8: 0x82,
- // Block 0x7, offset 0x1c0
- 0x1c0: 0x83, 0x1c2: 0x84, 0x1c3: 0x85, 0x1c4: 0x86, 0x1c5: 0x23, 0x1c6: 0x87,
- // Block 0x8, offset 0x200
- 0x200: 0x88, 0x201: 0x23, 0x202: 0x23, 0x203: 0x23, 0x204: 0x23, 0x205: 0x23, 0x206: 0x23, 0x207: 0x23,
- 0x208: 0x23, 0x209: 0x23, 0x20a: 0x23, 0x20b: 0x23, 0x20c: 0x23, 0x20d: 0x23, 0x20e: 0x23, 0x20f: 0x23,
- 0x210: 0x23, 0x211: 0x23, 0x212: 0x89, 0x213: 0x8a, 0x214: 0x23, 0x215: 0x23, 0x216: 0x23, 0x217: 0x23,
- 0x218: 0x8b, 0x219: 0x8c, 0x21a: 0x8d, 0x21b: 0x8e, 0x21c: 0x8f, 0x21d: 0x90, 0x21e: 0x0e, 0x21f: 0x91,
- 0x220: 0x92, 0x221: 0x93, 0x222: 0x23, 0x223: 0x94, 0x224: 0x95, 0x225: 0x96, 0x226: 0x97, 0x227: 0x98,
- 0x228: 0x99, 0x229: 0x9a, 0x22a: 0x9b, 0x22b: 0x9c, 0x22c: 0x9d, 0x22d: 0x9e, 0x22e: 0x9f, 0x22f: 0xa0,
- 0x230: 0x23, 0x231: 0x23, 0x232: 0x23, 0x233: 0x23, 0x234: 0x23, 0x235: 0x23, 0x236: 0x23, 0x237: 0x23,
- 0x238: 0x23, 0x239: 0x23, 0x23a: 0x23, 0x23b: 0x23, 0x23c: 0x23, 0x23d: 0x23, 0x23e: 0x23, 0x23f: 0x23,
- // Block 0x9, offset 0x240
- 0x240: 0x23, 0x241: 0x23, 0x242: 0x23, 0x243: 0x23, 0x244: 0x23, 0x245: 0x23, 0x246: 0x23, 0x247: 0x23,
- 0x248: 0x23, 0x249: 0x23, 0x24a: 0x23, 0x24b: 0x23, 0x24c: 0x23, 0x24d: 0x23, 0x24e: 0x23, 0x24f: 0x23,
- 0x250: 0x23, 0x251: 0x23, 0x252: 0x23, 0x253: 0x23, 0x254: 0x23, 0x255: 0x23, 0x256: 0x23, 0x257: 0x23,
- 0x258: 0x23, 0x259: 0x23, 0x25a: 0x23, 0x25b: 0x23, 0x25c: 0x23, 0x25d: 0x23, 0x25e: 0x23, 0x25f: 0x23,
- 0x260: 0x23, 0x261: 0x23, 0x262: 0x23, 0x263: 0x23, 0x264: 0x23, 0x265: 0x23, 0x266: 0x23, 0x267: 0x23,
- 0x268: 0x23, 0x269: 0x23, 0x26a: 0x23, 0x26b: 0x23, 0x26c: 0x23, 0x26d: 0x23, 0x26e: 0x23, 0x26f: 0x23,
- 0x270: 0x23, 0x271: 0x23, 0x272: 0x23, 0x273: 0x23, 0x274: 0x23, 0x275: 0x23, 0x276: 0x23, 0x277: 0x23,
- 0x278: 0x23, 0x279: 0x23, 0x27a: 0x23, 0x27b: 0x23, 0x27c: 0x23, 0x27d: 0x23, 0x27e: 0x23, 0x27f: 0x23,
- // Block 0xa, offset 0x280
- 0x280: 0x23, 0x281: 0x23, 0x282: 0x23, 0x283: 0x23, 0x284: 0x23, 0x285: 0x23, 0x286: 0x23, 0x287: 0x23,
- 0x288: 0x23, 0x289: 0x23, 0x28a: 0x23, 0x28b: 0x23, 0x28c: 0x23, 0x28d: 0x23, 0x28e: 0x23, 0x28f: 0x23,
- 0x290: 0x23, 0x291: 0x23, 0x292: 0x23, 0x293: 0x23, 0x294: 0x23, 0x295: 0x23, 0x296: 0x23, 0x297: 0x23,
- 0x298: 0x23, 0x299: 0x23, 0x29a: 0x23, 0x29b: 0x23, 0x29c: 0x23, 0x29d: 0x23, 0x29e: 0xa1, 0x29f: 0xa2,
- // Block 0xb, offset 0x2c0
- 0x2ec: 0x0f, 0x2ed: 0xa3, 0x2ee: 0xa4, 0x2ef: 0xa5,
- 0x2f0: 0x23, 0x2f1: 0x23, 0x2f2: 0x23, 0x2f3: 0x23, 0x2f4: 0xa6, 0x2f5: 0xa7, 0x2f6: 0xa8, 0x2f7: 0xa9,
- 0x2f8: 0xaa, 0x2f9: 0xab, 0x2fa: 0x23, 0x2fb: 0xac, 0x2fc: 0xad, 0x2fd: 0xae, 0x2fe: 0xaf, 0x2ff: 0xb0,
- // Block 0xc, offset 0x300
- 0x300: 0xb1, 0x301: 0xb2, 0x302: 0x23, 0x303: 0xb3, 0x305: 0xb4, 0x307: 0xb5,
- 0x30a: 0xb6, 0x30b: 0xb7, 0x30c: 0xb8, 0x30d: 0xb9, 0x30e: 0xba, 0x30f: 0xbb,
- 0x310: 0xbc, 0x311: 0xbd, 0x312: 0xbe, 0x313: 0xbf, 0x314: 0xc0, 0x315: 0xc1,
- 0x318: 0x23, 0x319: 0x23, 0x31a: 0x23, 0x31b: 0x23, 0x31c: 0xc2, 0x31d: 0xc3,
- 0x320: 0xc4, 0x321: 0xc5, 0x322: 0xc6, 0x323: 0xc7, 0x324: 0xc8, 0x326: 0xc9,
- 0x328: 0xca, 0x329: 0xcb, 0x32a: 0xcc, 0x32b: 0xcd, 0x32c: 0x5f, 0x32d: 0xce, 0x32e: 0xcf,
- 0x330: 0x23, 0x331: 0xd0, 0x332: 0xd1, 0x333: 0xd2,
- // Block 0xd, offset 0x340
- 0x340: 0xd3, 0x341: 0xd4, 0x342: 0xd5, 0x343: 0xd6, 0x344: 0xd7, 0x345: 0xd8, 0x346: 0xd9, 0x347: 0xda,
- 0x348: 0xdb, 0x34a: 0xdc, 0x34b: 0xdd, 0x34c: 0xde, 0x34d: 0xdf,
- 0x350: 0xe0, 0x351: 0xe1, 0x352: 0xe2, 0x353: 0xe3, 0x356: 0xe4, 0x357: 0xe5,
- 0x358: 0xe6, 0x359: 0xe7, 0x35a: 0xe8, 0x35b: 0xe9, 0x35c: 0xea,
- 0x362: 0xeb, 0x363: 0xec,
- 0x368: 0xed, 0x369: 0xee, 0x36a: 0xef, 0x36b: 0xf0,
- 0x370: 0xf1, 0x371: 0xf2, 0x372: 0xf3, 0x374: 0xf4, 0x375: 0xf5,
- // Block 0xe, offset 0x380
- 0x380: 0x23, 0x381: 0x23, 0x382: 0x23, 0x383: 0x23, 0x384: 0x23, 0x385: 0x23, 0x386: 0x23, 0x387: 0x23,
- 0x388: 0x23, 0x389: 0x23, 0x38a: 0x23, 0x38b: 0x23, 0x38c: 0x23, 0x38d: 0x23, 0x38e: 0xf6,
- 0x390: 0x23, 0x391: 0xf7, 0x392: 0x23, 0x393: 0x23, 0x394: 0x23, 0x395: 0xf8,
- // Block 0xf, offset 0x3c0
- 0x3c0: 0x23, 0x3c1: 0x23, 0x3c2: 0x23, 0x3c3: 0x23, 0x3c4: 0x23, 0x3c5: 0x23, 0x3c6: 0x23, 0x3c7: 0x23,
- 0x3c8: 0x23, 0x3c9: 0x23, 0x3ca: 0x23, 0x3cb: 0x23, 0x3cc: 0x23, 0x3cd: 0x23, 0x3ce: 0x23, 0x3cf: 0x23,
- 0x3d0: 0xf7,
- // Block 0x10, offset 0x400
- 0x410: 0x23, 0x411: 0x23, 0x412: 0x23, 0x413: 0x23, 0x414: 0x23, 0x415: 0x23, 0x416: 0x23, 0x417: 0x23,
- 0x418: 0x23, 0x419: 0xf9,
- // Block 0x11, offset 0x440
- 0x460: 0x23, 0x461: 0x23, 0x462: 0x23, 0x463: 0x23, 0x464: 0x23, 0x465: 0x23, 0x466: 0x23, 0x467: 0x23,
- 0x468: 0xf0, 0x469: 0xfa, 0x46b: 0xfb, 0x46c: 0xfc, 0x46d: 0xfd, 0x46e: 0xfe,
- 0x47c: 0x23, 0x47d: 0xff, 0x47e: 0x100, 0x47f: 0x101,
- // Block 0x12, offset 0x480
- 0x4b0: 0x23, 0x4b1: 0x102, 0x4b2: 0x103,
- // Block 0x13, offset 0x4c0
- 0x4c5: 0x104, 0x4c6: 0x105,
- 0x4c9: 0x106,
- 0x4d0: 0x107, 0x4d1: 0x108, 0x4d2: 0x109, 0x4d3: 0x10a, 0x4d4: 0x10b, 0x4d5: 0x10c, 0x4d6: 0x10d, 0x4d7: 0x10e,
- 0x4d8: 0x10f, 0x4d9: 0x110, 0x4da: 0x111, 0x4db: 0x112, 0x4dc: 0x113, 0x4dd: 0x114, 0x4de: 0x115, 0x4df: 0x116,
- 0x4e8: 0x117, 0x4e9: 0x118, 0x4ea: 0x119,
- // Block 0x14, offset 0x500
- 0x500: 0x11a,
- 0x520: 0x23, 0x521: 0x23, 0x522: 0x23, 0x523: 0x11b, 0x524: 0x10, 0x525: 0x11c,
- 0x538: 0x11d, 0x539: 0x11, 0x53a: 0x11e,
- // Block 0x15, offset 0x540
- 0x544: 0x11f, 0x545: 0x120, 0x546: 0x121,
- 0x54f: 0x122,
- // Block 0x16, offset 0x580
- 0x590: 0x0a, 0x591: 0x0b, 0x592: 0x0c, 0x593: 0x0d, 0x594: 0x0e, 0x596: 0x0f,
- 0x59b: 0x10, 0x59d: 0x11, 0x59e: 0x12, 0x59f: 0x13,
- // Block 0x17, offset 0x5c0
- 0x5c0: 0x123, 0x5c1: 0x124, 0x5c4: 0x124, 0x5c5: 0x124, 0x5c6: 0x124, 0x5c7: 0x125,
- // Block 0x18, offset 0x600
- 0x620: 0x15,
-}
-
-// sparseOffsets: 277 entries, 554 bytes
-var sparseOffsets = []uint16{0x0, 0x9, 0xf, 0x18, 0x24, 0x2e, 0x35, 0x38, 0x3c, 0x3f, 0x43, 0x4d, 0x4f, 0x54, 0x64, 0x6b, 0x70, 0x7e, 0x7f, 0x8d, 0x9c, 0xa6, 0xa9, 0xaf, 0xb7, 0xba, 0xbc, 0xca, 0xd0, 0xde, 0xe9, 0xf5, 0x100, 0x10c, 0x116, 0x122, 0x12d, 0x139, 0x145, 0x14d, 0x155, 0x15f, 0x16a, 0x176, 0x17d, 0x188, 0x18d, 0x195, 0x198, 0x19d, 0x1a1, 0x1a5, 0x1ac, 0x1b5, 0x1bd, 0x1be, 0x1c7, 0x1ce, 0x1d6, 0x1dc, 0x1e2, 0x1e7, 0x1eb, 0x1ee, 0x1f0, 0x1f3, 0x1f8, 0x1f9, 0x1fb, 0x1fd, 0x1ff, 0x206, 0x20b, 0x20f, 0x218, 0x21b, 0x21e, 0x224, 0x225, 0x230, 0x231, 0x232, 0x237, 0x244, 0x24c, 0x254, 0x25d, 0x266, 0x26f, 0x274, 0x277, 0x280, 0x28d, 0x28f, 0x296, 0x298, 0x2a4, 0x2a5, 0x2b0, 0x2b8, 0x2c0, 0x2c6, 0x2c7, 0x2d5, 0x2da, 0x2dd, 0x2e2, 0x2e6, 0x2ec, 0x2f1, 0x2f4, 0x2f9, 0x2fe, 0x2ff, 0x305, 0x307, 0x308, 0x30a, 0x30c, 0x30f, 0x310, 0x312, 0x315, 0x31b, 0x31f, 0x321, 0x326, 0x32d, 0x331, 0x33a, 0x33b, 0x343, 0x347, 0x34c, 0x354, 0x35a, 0x360, 0x36a, 0x36f, 0x378, 0x37e, 0x385, 0x389, 0x391, 0x393, 0x395, 0x398, 0x39a, 0x39c, 0x39d, 0x39e, 0x3a0, 0x3a2, 0x3a8, 0x3ad, 0x3af, 0x3b5, 0x3b8, 0x3ba, 0x3c0, 0x3c5, 0x3c7, 0x3c8, 0x3c9, 0x3ca, 0x3cc, 0x3ce, 0x3d0, 0x3d3, 0x3d5, 0x3d8, 0x3e0, 0x3e3, 0x3e7, 0x3ef, 0x3f1, 0x3f2, 0x3f3, 0x3f5, 0x3fb, 0x3fd, 0x3fe, 0x400, 0x402, 0x404, 0x411, 0x412, 0x413, 0x417, 0x419, 0x41a, 0x41b, 0x41c, 0x41d, 0x421, 0x425, 0x42b, 0x42d, 0x434, 0x437, 0x43b, 0x441, 0x44a, 0x450, 0x456, 0x460, 0x46a, 0x46c, 0x473, 0x479, 0x47f, 0x485, 0x488, 0x48e, 0x491, 0x499, 0x49a, 0x4a1, 0x4a2, 0x4a5, 0x4af, 0x4b5, 0x4bb, 0x4bc, 0x4c2, 0x4c5, 0x4cd, 0x4d4, 0x4db, 0x4dc, 0x4dd, 0x4de, 0x4df, 0x4e1, 0x4e3, 0x4e5, 0x4e9, 0x4ea, 0x4ec, 0x4ed, 0x4ee, 0x4f0, 0x4f5, 0x4fa, 0x4fe, 0x4ff, 0x502, 0x506, 0x511, 0x515, 0x51d, 0x522, 0x526, 0x529, 0x52d, 0x530, 0x533, 0x538, 0x53c, 0x540, 0x544, 0x548, 0x54a, 0x54c, 0x54f, 0x554, 0x556, 0x55b, 0x564, 0x569, 0x56a, 0x56d, 0x56e, 0x56f, 0x571, 0x572, 0x573}
-
-// sparseValues: 1395 entries, 5580 bytes
-var sparseValues = [1395]valueRange{
- // Block 0x0, offset 0x0
- {value: 0x0004, lo: 0xa8, hi: 0xa8},
- {value: 0x0012, lo: 0xaa, hi: 0xaa},
- {value: 0x0014, lo: 0xad, hi: 0xad},
- {value: 0x0004, lo: 0xaf, hi: 0xaf},
- {value: 0x0004, lo: 0xb4, hi: 0xb4},
- {value: 0x002a, lo: 0xb5, hi: 0xb5},
- {value: 0x0054, lo: 0xb7, hi: 0xb7},
- {value: 0x0004, lo: 0xb8, hi: 0xb8},
- {value: 0x0012, lo: 0xba, hi: 0xba},
- // Block 0x1, offset 0x9
- {value: 0x2013, lo: 0x80, hi: 0x96},
- {value: 0x2013, lo: 0x98, hi: 0x9e},
- {value: 0x00ea, lo: 0x9f, hi: 0x9f},
- {value: 0x2012, lo: 0xa0, hi: 0xb6},
- {value: 0x2012, lo: 0xb8, hi: 0xbe},
- {value: 0x0252, lo: 0xbf, hi: 0xbf},
- // Block 0x2, offset 0xf
- {value: 0x0117, lo: 0x80, hi: 0xaf},
- {value: 0x01eb, lo: 0xb0, hi: 0xb0},
- {value: 0x02ea, lo: 0xb1, hi: 0xb1},
- {value: 0x0117, lo: 0xb2, hi: 0xb7},
- {value: 0x0012, lo: 0xb8, hi: 0xb8},
- {value: 0x0316, lo: 0xb9, hi: 0xba},
- {value: 0x0716, lo: 0xbb, hi: 0xbc},
- {value: 0x0316, lo: 0xbd, hi: 0xbe},
- {value: 0x0553, lo: 0xbf, hi: 0xbf},
- // Block 0x3, offset 0x18
- {value: 0x0552, lo: 0x80, hi: 0x80},
- {value: 0x0316, lo: 0x81, hi: 0x82},
- {value: 0x0716, lo: 0x83, hi: 0x84},
- {value: 0x0316, lo: 0x85, hi: 0x86},
- {value: 0x0f16, lo: 0x87, hi: 0x88},
- {value: 0x034a, lo: 0x89, hi: 0x89},
- {value: 0x0117, lo: 0x8a, hi: 0xb7},
- {value: 0x0253, lo: 0xb8, hi: 0xb8},
- {value: 0x0316, lo: 0xb9, hi: 0xba},
- {value: 0x0716, lo: 0xbb, hi: 0xbc},
- {value: 0x0316, lo: 0xbd, hi: 0xbe},
- {value: 0x044a, lo: 0xbf, hi: 0xbf},
- // Block 0x4, offset 0x24
- {value: 0x0117, lo: 0x80, hi: 0x9f},
- {value: 0x2f53, lo: 0xa0, hi: 0xa0},
- {value: 0x0012, lo: 0xa1, hi: 0xa1},
- {value: 0x0117, lo: 0xa2, hi: 0xb3},
- {value: 0x0012, lo: 0xb4, hi: 0xb9},
- {value: 0x10cb, lo: 0xba, hi: 0xba},
- {value: 0x0716, lo: 0xbb, hi: 0xbc},
- {value: 0x2953, lo: 0xbd, hi: 0xbd},
- {value: 0x11cb, lo: 0xbe, hi: 0xbe},
- {value: 0x12ca, lo: 0xbf, hi: 0xbf},
- // Block 0x5, offset 0x2e
- {value: 0x0015, lo: 0x80, hi: 0x81},
- {value: 0x0014, lo: 0x82, hi: 0x97},
- {value: 0x0004, lo: 0x98, hi: 0x9d},
- {value: 0x0014, lo: 0x9e, hi: 0x9f},
- {value: 0x0015, lo: 0xa0, hi: 0xa4},
- {value: 0x0004, lo: 0xa5, hi: 0xab},
- {value: 0x0014, lo: 0xac, hi: 0xbf},
- // Block 0x6, offset 0x35
- {value: 0x0024, lo: 0x80, hi: 0x94},
- {value: 0x0034, lo: 0x95, hi: 0xbc},
- {value: 0x0024, lo: 0xbd, hi: 0xbf},
- // Block 0x7, offset 0x38
- {value: 0x6553, lo: 0x80, hi: 0x8f},
- {value: 0x2013, lo: 0x90, hi: 0x9f},
- {value: 0x5f53, lo: 0xa0, hi: 0xaf},
- {value: 0x2012, lo: 0xb0, hi: 0xbf},
- // Block 0x8, offset 0x3c
- {value: 0x5f52, lo: 0x80, hi: 0x8f},
- {value: 0x6552, lo: 0x90, hi: 0x9f},
- {value: 0x0117, lo: 0xa0, hi: 0xbf},
- // Block 0x9, offset 0x3f
- {value: 0x0117, lo: 0x80, hi: 0x81},
- {value: 0x0024, lo: 0x83, hi: 0x87},
- {value: 0x0014, lo: 0x88, hi: 0x89},
- {value: 0x0117, lo: 0x8a, hi: 0xbf},
- // Block 0xa, offset 0x43
- {value: 0x0f13, lo: 0x80, hi: 0x80},
- {value: 0x0316, lo: 0x81, hi: 0x82},
- {value: 0x0716, lo: 0x83, hi: 0x84},
- {value: 0x0316, lo: 0x85, hi: 0x86},
- {value: 0x0f16, lo: 0x87, hi: 0x88},
- {value: 0x0316, lo: 0x89, hi: 0x8a},
- {value: 0x0716, lo: 0x8b, hi: 0x8c},
- {value: 0x0316, lo: 0x8d, hi: 0x8e},
- {value: 0x0f12, lo: 0x8f, hi: 0x8f},
- {value: 0x0117, lo: 0x90, hi: 0xbf},
- // Block 0xb, offset 0x4d
- {value: 0x0117, lo: 0x80, hi: 0xaf},
- {value: 0x6553, lo: 0xb1, hi: 0xbf},
- // Block 0xc, offset 0x4f
- {value: 0x3013, lo: 0x80, hi: 0x8f},
- {value: 0x6853, lo: 0x90, hi: 0x96},
- {value: 0x0014, lo: 0x99, hi: 0x99},
- {value: 0x6552, lo: 0xa1, hi: 0xaf},
- {value: 0x3012, lo: 0xb0, hi: 0xbf},
- // Block 0xd, offset 0x54
- {value: 0x6852, lo: 0x80, hi: 0x86},
- {value: 0x27aa, lo: 0x87, hi: 0x87},
- {value: 0x0034, lo: 0x91, hi: 0x91},
- {value: 0x0024, lo: 0x92, hi: 0x95},
- {value: 0x0034, lo: 0x96, hi: 0x96},
- {value: 0x0024, lo: 0x97, hi: 0x99},
- {value: 0x0034, lo: 0x9a, hi: 0x9b},
- {value: 0x0024, lo: 0x9c, hi: 0xa1},
- {value: 0x0034, lo: 0xa2, hi: 0xa7},
- {value: 0x0024, lo: 0xa8, hi: 0xa9},
- {value: 0x0034, lo: 0xaa, hi: 0xaa},
- {value: 0x0024, lo: 0xab, hi: 0xac},
- {value: 0x0034, lo: 0xad, hi: 0xae},
- {value: 0x0024, lo: 0xaf, hi: 0xaf},
- {value: 0x0034, lo: 0xb0, hi: 0xbd},
- {value: 0x0034, lo: 0xbf, hi: 0xbf},
- // Block 0xe, offset 0x64
- {value: 0x0034, lo: 0x81, hi: 0x82},
- {value: 0x0024, lo: 0x84, hi: 0x84},
- {value: 0x0034, lo: 0x85, hi: 0x85},
- {value: 0x0034, lo: 0x87, hi: 0x87},
- {value: 0x0010, lo: 0x90, hi: 0xaa},
- {value: 0x0010, lo: 0xb0, hi: 0xb3},
- {value: 0x0054, lo: 0xb4, hi: 0xb4},
- // Block 0xf, offset 0x6b
- {value: 0x0014, lo: 0x80, hi: 0x85},
- {value: 0x0024, lo: 0x90, hi: 0x97},
- {value: 0x0034, lo: 0x98, hi: 0x9a},
- {value: 0x0014, lo: 0x9c, hi: 0x9c},
- {value: 0x0010, lo: 0xa0, hi: 0xbf},
- // Block 0x10, offset 0x70
- {value: 0x0014, lo: 0x80, hi: 0x80},
- {value: 0x0010, lo: 0x81, hi: 0x8a},
- {value: 0x0034, lo: 0x8b, hi: 0x92},
- {value: 0x0024, lo: 0x93, hi: 0x94},
- {value: 0x0034, lo: 0x95, hi: 0x96},
- {value: 0x0024, lo: 0x97, hi: 0x9b},
- {value: 0x0034, lo: 0x9c, hi: 0x9c},
- {value: 0x0024, lo: 0x9d, hi: 0x9e},
- {value: 0x0034, lo: 0x9f, hi: 0x9f},
- {value: 0x0010, lo: 0xa0, hi: 0xa9},
- {value: 0x0010, lo: 0xab, hi: 0xab},
- {value: 0x0010, lo: 0xae, hi: 0xaf},
- {value: 0x0034, lo: 0xb0, hi: 0xb0},
- {value: 0x0010, lo: 0xb1, hi: 0xbf},
- // Block 0x11, offset 0x7e
- {value: 0x0010, lo: 0x80, hi: 0xbf},
- // Block 0x12, offset 0x7f
- {value: 0x0010, lo: 0x80, hi: 0x93},
- {value: 0x0010, lo: 0x95, hi: 0x95},
- {value: 0x0024, lo: 0x96, hi: 0x9c},
- {value: 0x0014, lo: 0x9d, hi: 0x9d},
- {value: 0x0024, lo: 0x9f, hi: 0xa2},
- {value: 0x0034, lo: 0xa3, hi: 0xa3},
- {value: 0x0024, lo: 0xa4, hi: 0xa4},
- {value: 0x0014, lo: 0xa5, hi: 0xa6},
- {value: 0x0024, lo: 0xa7, hi: 0xa8},
- {value: 0x0034, lo: 0xaa, hi: 0xaa},
- {value: 0x0024, lo: 0xab, hi: 0xac},
- {value: 0x0034, lo: 0xad, hi: 0xad},
- {value: 0x0010, lo: 0xae, hi: 0xbc},
- {value: 0x0010, lo: 0xbf, hi: 0xbf},
- // Block 0x13, offset 0x8d
- {value: 0x0014, lo: 0x8f, hi: 0x8f},
- {value: 0x0010, lo: 0x90, hi: 0x90},
- {value: 0x0034, lo: 0x91, hi: 0x91},
- {value: 0x0010, lo: 0x92, hi: 0xaf},
- {value: 0x0024, lo: 0xb0, hi: 0xb0},
- {value: 0x0034, lo: 0xb1, hi: 0xb1},
- {value: 0x0024, lo: 0xb2, hi: 0xb3},
- {value: 0x0034, lo: 0xb4, hi: 0xb4},
- {value: 0x0024, lo: 0xb5, hi: 0xb6},
- {value: 0x0034, lo: 0xb7, hi: 0xb9},
- {value: 0x0024, lo: 0xba, hi: 0xba},
- {value: 0x0034, lo: 0xbb, hi: 0xbc},
- {value: 0x0024, lo: 0xbd, hi: 0xbd},
- {value: 0x0034, lo: 0xbe, hi: 0xbe},
- {value: 0x0024, lo: 0xbf, hi: 0xbf},
- // Block 0x14, offset 0x9c
- {value: 0x0024, lo: 0x80, hi: 0x81},
- {value: 0x0034, lo: 0x82, hi: 0x82},
- {value: 0x0024, lo: 0x83, hi: 0x83},
- {value: 0x0034, lo: 0x84, hi: 0x84},
- {value: 0x0024, lo: 0x85, hi: 0x85},
- {value: 0x0034, lo: 0x86, hi: 0x86},
- {value: 0x0024, lo: 0x87, hi: 0x87},
- {value: 0x0034, lo: 0x88, hi: 0x88},
- {value: 0x0024, lo: 0x89, hi: 0x8a},
- {value: 0x0010, lo: 0x8d, hi: 0xbf},
- // Block 0x15, offset 0xa6
- {value: 0x0010, lo: 0x80, hi: 0xa5},
- {value: 0x0014, lo: 0xa6, hi: 0xb0},
- {value: 0x0010, lo: 0xb1, hi: 0xb1},
- // Block 0x16, offset 0xa9
- {value: 0x0010, lo: 0x80, hi: 0xaa},
- {value: 0x0024, lo: 0xab, hi: 0xb1},
- {value: 0x0034, lo: 0xb2, hi: 0xb2},
- {value: 0x0024, lo: 0xb3, hi: 0xb3},
- {value: 0x0014, lo: 0xb4, hi: 0xb5},
- {value: 0x0014, lo: 0xba, hi: 0xba},
- // Block 0x17, offset 0xaf
- {value: 0x0010, lo: 0x80, hi: 0x95},
- {value: 0x0024, lo: 0x96, hi: 0x99},
- {value: 0x0014, lo: 0x9a, hi: 0x9a},
- {value: 0x0024, lo: 0x9b, hi: 0xa3},
- {value: 0x0014, lo: 0xa4, hi: 0xa4},
- {value: 0x0024, lo: 0xa5, hi: 0xa7},
- {value: 0x0014, lo: 0xa8, hi: 0xa8},
- {value: 0x0024, lo: 0xa9, hi: 0xad},
- // Block 0x18, offset 0xb7
- {value: 0x0010, lo: 0x80, hi: 0x98},
- {value: 0x0034, lo: 0x99, hi: 0x9b},
- {value: 0x0010, lo: 0xa0, hi: 0xaa},
- // Block 0x19, offset 0xba
- {value: 0x0010, lo: 0xa0, hi: 0xb4},
- {value: 0x0010, lo: 0xb6, hi: 0xbd},
- // Block 0x1a, offset 0xbc
- {value: 0x0024, lo: 0x94, hi: 0xa1},
- {value: 0x0014, lo: 0xa2, hi: 0xa2},
- {value: 0x0034, lo: 0xa3, hi: 0xa3},
- {value: 0x0024, lo: 0xa4, hi: 0xa5},
- {value: 0x0034, lo: 0xa6, hi: 0xa6},
- {value: 0x0024, lo: 0xa7, hi: 0xa8},
- {value: 0x0034, lo: 0xa9, hi: 0xa9},
- {value: 0x0024, lo: 0xaa, hi: 0xac},
- {value: 0x0034, lo: 0xad, hi: 0xb2},
- {value: 0x0024, lo: 0xb3, hi: 0xb5},
- {value: 0x0034, lo: 0xb6, hi: 0xb6},
- {value: 0x0024, lo: 0xb7, hi: 0xb8},
- {value: 0x0034, lo: 0xb9, hi: 0xba},
- {value: 0x0024, lo: 0xbb, hi: 0xbf},
- // Block 0x1b, offset 0xca
- {value: 0x0014, lo: 0x80, hi: 0x82},
- {value: 0x0010, lo: 0x83, hi: 0xb9},
- {value: 0x0014, lo: 0xba, hi: 0xba},
- {value: 0x0010, lo: 0xbb, hi: 0xbb},
- {value: 0x0034, lo: 0xbc, hi: 0xbc},
- {value: 0x0010, lo: 0xbd, hi: 0xbf},
- // Block 0x1c, offset 0xd0
- {value: 0x0010, lo: 0x80, hi: 0x80},
- {value: 0x0014, lo: 0x81, hi: 0x88},
- {value: 0x0010, lo: 0x89, hi: 0x8c},
- {value: 0x0034, lo: 0x8d, hi: 0x8d},
- {value: 0x0010, lo: 0x8e, hi: 0x90},
- {value: 0x0024, lo: 0x91, hi: 0x91},
- {value: 0x0034, lo: 0x92, hi: 0x92},
- {value: 0x0024, lo: 0x93, hi: 0x94},
- {value: 0x0014, lo: 0x95, hi: 0x97},
- {value: 0x0010, lo: 0x98, hi: 0xa1},
- {value: 0x0014, lo: 0xa2, hi: 0xa3},
- {value: 0x0010, lo: 0xa6, hi: 0xaf},
- {value: 0x0014, lo: 0xb1, hi: 0xb1},
- {value: 0x0010, lo: 0xb2, hi: 0xbf},
- // Block 0x1d, offset 0xde
- {value: 0x0010, lo: 0x80, hi: 0x80},
- {value: 0x0014, lo: 0x81, hi: 0x81},
- {value: 0x0010, lo: 0x82, hi: 0x83},
- {value: 0x0010, lo: 0x85, hi: 0x8c},
- {value: 0x0010, lo: 0x8f, hi: 0x90},
- {value: 0x0010, lo: 0x93, hi: 0xa8},
- {value: 0x0010, lo: 0xaa, hi: 0xb0},
- {value: 0x0010, lo: 0xb2, hi: 0xb2},
- {value: 0x0010, lo: 0xb6, hi: 0xb9},
- {value: 0x0034, lo: 0xbc, hi: 0xbc},
- {value: 0x0010, lo: 0xbd, hi: 0xbf},
- // Block 0x1e, offset 0xe9
- {value: 0x0010, lo: 0x80, hi: 0x80},
- {value: 0x0014, lo: 0x81, hi: 0x84},
- {value: 0x0010, lo: 0x87, hi: 0x88},
- {value: 0x0010, lo: 0x8b, hi: 0x8c},
- {value: 0x0034, lo: 0x8d, hi: 0x8d},
- {value: 0x0010, lo: 0x8e, hi: 0x8e},
- {value: 0x0010, lo: 0x97, hi: 0x97},
- {value: 0x0010, lo: 0x9c, hi: 0x9d},
- {value: 0x0010, lo: 0x9f, hi: 0xa1},
- {value: 0x0014, lo: 0xa2, hi: 0xa3},
- {value: 0x0010, lo: 0xa6, hi: 0xb1},
- {value: 0x0010, lo: 0xbc, hi: 0xbc},
- // Block 0x1f, offset 0xf5
- {value: 0x0014, lo: 0x81, hi: 0x82},
- {value: 0x0010, lo: 0x83, hi: 0x83},
- {value: 0x0010, lo: 0x85, hi: 0x8a},
- {value: 0x0010, lo: 0x8f, hi: 0x90},
- {value: 0x0010, lo: 0x93, hi: 0xa8},
- {value: 0x0010, lo: 0xaa, hi: 0xb0},
- {value: 0x0010, lo: 0xb2, hi: 0xb3},
- {value: 0x0010, lo: 0xb5, hi: 0xb6},
- {value: 0x0010, lo: 0xb8, hi: 0xb9},
- {value: 0x0034, lo: 0xbc, hi: 0xbc},
- {value: 0x0010, lo: 0xbe, hi: 0xbf},
- // Block 0x20, offset 0x100
- {value: 0x0010, lo: 0x80, hi: 0x80},
- {value: 0x0014, lo: 0x81, hi: 0x82},
- {value: 0x0014, lo: 0x87, hi: 0x88},
- {value: 0x0014, lo: 0x8b, hi: 0x8c},
- {value: 0x0034, lo: 0x8d, hi: 0x8d},
- {value: 0x0014, lo: 0x91, hi: 0x91},
- {value: 0x0010, lo: 0x99, hi: 0x9c},
- {value: 0x0010, lo: 0x9e, hi: 0x9e},
- {value: 0x0010, lo: 0xa6, hi: 0xaf},
- {value: 0x0014, lo: 0xb0, hi: 0xb1},
- {value: 0x0010, lo: 0xb2, hi: 0xb4},
- {value: 0x0014, lo: 0xb5, hi: 0xb5},
- // Block 0x21, offset 0x10c
- {value: 0x0014, lo: 0x81, hi: 0x82},
- {value: 0x0010, lo: 0x83, hi: 0x83},
- {value: 0x0010, lo: 0x85, hi: 0x8d},
- {value: 0x0010, lo: 0x8f, hi: 0x91},
- {value: 0x0010, lo: 0x93, hi: 0xa8},
- {value: 0x0010, lo: 0xaa, hi: 0xb0},
- {value: 0x0010, lo: 0xb2, hi: 0xb3},
- {value: 0x0010, lo: 0xb5, hi: 0xb9},
- {value: 0x0034, lo: 0xbc, hi: 0xbc},
- {value: 0x0010, lo: 0xbd, hi: 0xbf},
- // Block 0x22, offset 0x116
- {value: 0x0010, lo: 0x80, hi: 0x80},
- {value: 0x0014, lo: 0x81, hi: 0x85},
- {value: 0x0014, lo: 0x87, hi: 0x88},
- {value: 0x0010, lo: 0x89, hi: 0x89},
- {value: 0x0010, lo: 0x8b, hi: 0x8c},
- {value: 0x0034, lo: 0x8d, hi: 0x8d},
- {value: 0x0010, lo: 0x90, hi: 0x90},
- {value: 0x0010, lo: 0xa0, hi: 0xa1},
- {value: 0x0014, lo: 0xa2, hi: 0xa3},
- {value: 0x0010, lo: 0xa6, hi: 0xaf},
- {value: 0x0010, lo: 0xb9, hi: 0xb9},
- {value: 0x0014, lo: 0xba, hi: 0xbf},
- // Block 0x23, offset 0x122
- {value: 0x0014, lo: 0x81, hi: 0x81},
- {value: 0x0010, lo: 0x82, hi: 0x83},
- {value: 0x0010, lo: 0x85, hi: 0x8c},
- {value: 0x0010, lo: 0x8f, hi: 0x90},
- {value: 0x0010, lo: 0x93, hi: 0xa8},
- {value: 0x0010, lo: 0xaa, hi: 0xb0},
- {value: 0x0010, lo: 0xb2, hi: 0xb3},
- {value: 0x0010, lo: 0xb5, hi: 0xb9},
- {value: 0x0034, lo: 0xbc, hi: 0xbc},
- {value: 0x0010, lo: 0xbd, hi: 0xbe},
- {value: 0x0014, lo: 0xbf, hi: 0xbf},
- // Block 0x24, offset 0x12d
- {value: 0x0010, lo: 0x80, hi: 0x80},
- {value: 0x0014, lo: 0x81, hi: 0x84},
- {value: 0x0010, lo: 0x87, hi: 0x88},
- {value: 0x0010, lo: 0x8b, hi: 0x8c},
- {value: 0x0034, lo: 0x8d, hi: 0x8d},
- {value: 0x0014, lo: 0x96, hi: 0x96},
- {value: 0x0010, lo: 0x97, hi: 0x97},
- {value: 0x0010, lo: 0x9c, hi: 0x9d},
- {value: 0x0010, lo: 0x9f, hi: 0xa1},
- {value: 0x0014, lo: 0xa2, hi: 0xa3},
- {value: 0x0010, lo: 0xa6, hi: 0xaf},
- {value: 0x0010, lo: 0xb1, hi: 0xb1},
- // Block 0x25, offset 0x139
- {value: 0x0014, lo: 0x82, hi: 0x82},
- {value: 0x0010, lo: 0x83, hi: 0x83},
- {value: 0x0010, lo: 0x85, hi: 0x8a},
- {value: 0x0010, lo: 0x8e, hi: 0x90},
- {value: 0x0010, lo: 0x92, hi: 0x95},
- {value: 0x0010, lo: 0x99, hi: 0x9a},
- {value: 0x0010, lo: 0x9c, hi: 0x9c},
- {value: 0x0010, lo: 0x9e, hi: 0x9f},
- {value: 0x0010, lo: 0xa3, hi: 0xa4},
- {value: 0x0010, lo: 0xa8, hi: 0xaa},
- {value: 0x0010, lo: 0xae, hi: 0xb9},
- {value: 0x0010, lo: 0xbe, hi: 0xbf},
- // Block 0x26, offset 0x145
- {value: 0x0014, lo: 0x80, hi: 0x80},
- {value: 0x0010, lo: 0x81, hi: 0x82},
- {value: 0x0010, lo: 0x86, hi: 0x88},
- {value: 0x0010, lo: 0x8a, hi: 0x8c},
- {value: 0x0034, lo: 0x8d, hi: 0x8d},
- {value: 0x0010, lo: 0x90, hi: 0x90},
- {value: 0x0010, lo: 0x97, hi: 0x97},
- {value: 0x0010, lo: 0xa6, hi: 0xaf},
- // Block 0x27, offset 0x14d
- {value: 0x0014, lo: 0x80, hi: 0x80},
- {value: 0x0010, lo: 0x81, hi: 0x83},
- {value: 0x0010, lo: 0x85, hi: 0x8c},
- {value: 0x0010, lo: 0x8e, hi: 0x90},
- {value: 0x0010, lo: 0x92, hi: 0xa8},
- {value: 0x0010, lo: 0xaa, hi: 0xb9},
- {value: 0x0010, lo: 0xbd, hi: 0xbd},
- {value: 0x0014, lo: 0xbe, hi: 0xbf},
- // Block 0x28, offset 0x155
- {value: 0x0014, lo: 0x80, hi: 0x80},
- {value: 0x0010, lo: 0x81, hi: 0x84},
- {value: 0x0014, lo: 0x86, hi: 0x88},
- {value: 0x0014, lo: 0x8a, hi: 0x8c},
- {value: 0x0034, lo: 0x8d, hi: 0x8d},
- {value: 0x0034, lo: 0x95, hi: 0x96},
- {value: 0x0010, lo: 0x98, hi: 0x9a},
- {value: 0x0010, lo: 0xa0, hi: 0xa1},
- {value: 0x0014, lo: 0xa2, hi: 0xa3},
- {value: 0x0010, lo: 0xa6, hi: 0xaf},
- // Block 0x29, offset 0x15f
- {value: 0x0010, lo: 0x80, hi: 0x80},
- {value: 0x0014, lo: 0x81, hi: 0x81},
- {value: 0x0010, lo: 0x82, hi: 0x83},
- {value: 0x0010, lo: 0x85, hi: 0x8c},
- {value: 0x0010, lo: 0x8e, hi: 0x90},
- {value: 0x0010, lo: 0x92, hi: 0xa8},
- {value: 0x0010, lo: 0xaa, hi: 0xb3},
- {value: 0x0010, lo: 0xb5, hi: 0xb9},
- {value: 0x0034, lo: 0xbc, hi: 0xbc},
- {value: 0x0010, lo: 0xbd, hi: 0xbe},
- {value: 0x0014, lo: 0xbf, hi: 0xbf},
- // Block 0x2a, offset 0x16a
- {value: 0x0010, lo: 0x80, hi: 0x84},
- {value: 0x0014, lo: 0x86, hi: 0x86},
- {value: 0x0010, lo: 0x87, hi: 0x88},
- {value: 0x0010, lo: 0x8a, hi: 0x8b},
- {value: 0x0014, lo: 0x8c, hi: 0x8c},
- {value: 0x0034, lo: 0x8d, hi: 0x8d},
- {value: 0x0010, lo: 0x95, hi: 0x96},
- {value: 0x0010, lo: 0x9e, hi: 0x9e},
- {value: 0x0010, lo: 0xa0, hi: 0xa1},
- {value: 0x0014, lo: 0xa2, hi: 0xa3},
- {value: 0x0010, lo: 0xa6, hi: 0xaf},
- {value: 0x0010, lo: 0xb1, hi: 0xb2},
- // Block 0x2b, offset 0x176
- {value: 0x0014, lo: 0x80, hi: 0x81},
- {value: 0x0010, lo: 0x82, hi: 0x83},
- {value: 0x0010, lo: 0x85, hi: 0x8c},
- {value: 0x0010, lo: 0x8e, hi: 0x90},
- {value: 0x0010, lo: 0x92, hi: 0xba},
- {value: 0x0034, lo: 0xbb, hi: 0xbc},
- {value: 0x0010, lo: 0xbd, hi: 0xbf},
- // Block 0x2c, offset 0x17d
- {value: 0x0010, lo: 0x80, hi: 0x80},
- {value: 0x0014, lo: 0x81, hi: 0x84},
- {value: 0x0010, lo: 0x86, hi: 0x88},
- {value: 0x0010, lo: 0x8a, hi: 0x8c},
- {value: 0x0034, lo: 0x8d, hi: 0x8d},
- {value: 0x0010, lo: 0x8e, hi: 0x8e},
- {value: 0x0010, lo: 0x94, hi: 0x97},
- {value: 0x0010, lo: 0x9f, hi: 0xa1},
- {value: 0x0014, lo: 0xa2, hi: 0xa3},
- {value: 0x0010, lo: 0xa6, hi: 0xaf},
- {value: 0x0010, lo: 0xba, hi: 0xbf},
- // Block 0x2d, offset 0x188
- {value: 0x0010, lo: 0x82, hi: 0x83},
- {value: 0x0010, lo: 0x85, hi: 0x96},
- {value: 0x0010, lo: 0x9a, hi: 0xb1},
- {value: 0x0010, lo: 0xb3, hi: 0xbb},
- {value: 0x0010, lo: 0xbd, hi: 0xbd},
- // Block 0x2e, offset 0x18d
- {value: 0x0010, lo: 0x80, hi: 0x86},
- {value: 0x0034, lo: 0x8a, hi: 0x8a},
- {value: 0x0010, lo: 0x8f, hi: 0x91},
- {value: 0x0014, lo: 0x92, hi: 0x94},
- {value: 0x0014, lo: 0x96, hi: 0x96},
- {value: 0x0010, lo: 0x98, hi: 0x9f},
- {value: 0x0010, lo: 0xa6, hi: 0xaf},
- {value: 0x0010, lo: 0xb2, hi: 0xb3},
- // Block 0x2f, offset 0x195
- {value: 0x0014, lo: 0xb1, hi: 0xb1},
- {value: 0x0014, lo: 0xb4, hi: 0xb7},
- {value: 0x0034, lo: 0xb8, hi: 0xba},
- // Block 0x30, offset 0x198
- {value: 0x0004, lo: 0x86, hi: 0x86},
- {value: 0x0014, lo: 0x87, hi: 0x87},
- {value: 0x0034, lo: 0x88, hi: 0x8b},
- {value: 0x0014, lo: 0x8c, hi: 0x8e},
- {value: 0x0010, lo: 0x90, hi: 0x99},
- // Block 0x31, offset 0x19d
- {value: 0x0014, lo: 0xb1, hi: 0xb1},
- {value: 0x0014, lo: 0xb4, hi: 0xb7},
- {value: 0x0034, lo: 0xb8, hi: 0xb9},
- {value: 0x0014, lo: 0xbb, hi: 0xbc},
- // Block 0x32, offset 0x1a1
- {value: 0x0004, lo: 0x86, hi: 0x86},
- {value: 0x0034, lo: 0x88, hi: 0x8b},
- {value: 0x0014, lo: 0x8c, hi: 0x8d},
- {value: 0x0010, lo: 0x90, hi: 0x99},
- // Block 0x33, offset 0x1a5
- {value: 0x0010, lo: 0x80, hi: 0x80},
- {value: 0x0034, lo: 0x98, hi: 0x99},
- {value: 0x0010, lo: 0xa0, hi: 0xa9},
- {value: 0x0034, lo: 0xb5, hi: 0xb5},
- {value: 0x0034, lo: 0xb7, hi: 0xb7},
- {value: 0x0034, lo: 0xb9, hi: 0xb9},
- {value: 0x0010, lo: 0xbe, hi: 0xbf},
- // Block 0x34, offset 0x1ac
- {value: 0x0010, lo: 0x80, hi: 0x87},
- {value: 0x0010, lo: 0x89, hi: 0xac},
- {value: 0x0034, lo: 0xb1, hi: 0xb2},
- {value: 0x0014, lo: 0xb3, hi: 0xb3},
- {value: 0x0034, lo: 0xb4, hi: 0xb4},
- {value: 0x0014, lo: 0xb5, hi: 0xb9},
- {value: 0x0034, lo: 0xba, hi: 0xbd},
- {value: 0x0014, lo: 0xbe, hi: 0xbe},
- {value: 0x0010, lo: 0xbf, hi: 0xbf},
- // Block 0x35, offset 0x1b5
- {value: 0x0034, lo: 0x80, hi: 0x80},
- {value: 0x0014, lo: 0x81, hi: 0x81},
- {value: 0x0024, lo: 0x82, hi: 0x83},
- {value: 0x0034, lo: 0x84, hi: 0x84},
- {value: 0x0024, lo: 0x86, hi: 0x87},
- {value: 0x0010, lo: 0x88, hi: 0x8c},
- {value: 0x0014, lo: 0x8d, hi: 0x97},
- {value: 0x0014, lo: 0x99, hi: 0xbc},
- // Block 0x36, offset 0x1bd
- {value: 0x0034, lo: 0x86, hi: 0x86},
- // Block 0x37, offset 0x1be
- {value: 0x0010, lo: 0xab, hi: 0xac},
- {value: 0x0014, lo: 0xad, hi: 0xb0},
- {value: 0x0010, lo: 0xb1, hi: 0xb1},
- {value: 0x0014, lo: 0xb2, hi: 0xb6},
- {value: 0x0034, lo: 0xb7, hi: 0xb7},
- {value: 0x0010, lo: 0xb8, hi: 0xb8},
- {value: 0x0034, lo: 0xb9, hi: 0xba},
- {value: 0x0010, lo: 0xbb, hi: 0xbc},
- {value: 0x0014, lo: 0xbd, hi: 0xbe},
- // Block 0x38, offset 0x1c7
- {value: 0x0010, lo: 0x80, hi: 0x89},
- {value: 0x0010, lo: 0x96, hi: 0x97},
- {value: 0x0014, lo: 0x98, hi: 0x99},
- {value: 0x0014, lo: 0x9e, hi: 0xa0},
- {value: 0x0010, lo: 0xa2, hi: 0xa4},
- {value: 0x0010, lo: 0xa7, hi: 0xad},
- {value: 0x0014, lo: 0xb1, hi: 0xb4},
- // Block 0x39, offset 0x1ce
- {value: 0x0014, lo: 0x82, hi: 0x82},
- {value: 0x0010, lo: 0x83, hi: 0x84},
- {value: 0x0014, lo: 0x85, hi: 0x86},
- {value: 0x0010, lo: 0x87, hi: 0x8c},
- {value: 0x0034, lo: 0x8d, hi: 0x8d},
- {value: 0x0010, lo: 0x8f, hi: 0x9c},
- {value: 0x0014, lo: 0x9d, hi: 0x9d},
- {value: 0x6c53, lo: 0xa0, hi: 0xbf},
- // Block 0x3a, offset 0x1d6
- {value: 0x7053, lo: 0x80, hi: 0x85},
- {value: 0x7053, lo: 0x87, hi: 0x87},
- {value: 0x7053, lo: 0x8d, hi: 0x8d},
- {value: 0x0010, lo: 0x90, hi: 0xba},
- {value: 0x0014, lo: 0xbc, hi: 0xbc},
- {value: 0x0010, lo: 0xbd, hi: 0xbf},
- // Block 0x3b, offset 0x1dc
- {value: 0x0010, lo: 0x80, hi: 0x88},
- {value: 0x0010, lo: 0x8a, hi: 0x8d},
- {value: 0x0010, lo: 0x90, hi: 0x96},
- {value: 0x0010, lo: 0x98, hi: 0x98},
- {value: 0x0010, lo: 0x9a, hi: 0x9d},
- {value: 0x0010, lo: 0xa0, hi: 0xbf},
- // Block 0x3c, offset 0x1e2
- {value: 0x0010, lo: 0x80, hi: 0x88},
- {value: 0x0010, lo: 0x8a, hi: 0x8d},
- {value: 0x0010, lo: 0x90, hi: 0xb0},
- {value: 0x0010, lo: 0xb2, hi: 0xb5},
- {value: 0x0010, lo: 0xb8, hi: 0xbe},
- // Block 0x3d, offset 0x1e7
- {value: 0x0010, lo: 0x80, hi: 0x80},
- {value: 0x0010, lo: 0x82, hi: 0x85},
- {value: 0x0010, lo: 0x88, hi: 0x96},
- {value: 0x0010, lo: 0x98, hi: 0xbf},
- // Block 0x3e, offset 0x1eb
- {value: 0x0010, lo: 0x80, hi: 0x90},
- {value: 0x0010, lo: 0x92, hi: 0x95},
- {value: 0x0010, lo: 0x98, hi: 0xbf},
- // Block 0x3f, offset 0x1ee
- {value: 0x0010, lo: 0x80, hi: 0x9a},
- {value: 0x0024, lo: 0x9d, hi: 0x9f},
- // Block 0x40, offset 0x1f0
- {value: 0x0010, lo: 0x80, hi: 0x8f},
- {value: 0x7453, lo: 0xa0, hi: 0xaf},
- {value: 0x7853, lo: 0xb0, hi: 0xbf},
- // Block 0x41, offset 0x1f3
- {value: 0x7c53, lo: 0x80, hi: 0x8f},
- {value: 0x8053, lo: 0x90, hi: 0x9f},
- {value: 0x7c53, lo: 0xa0, hi: 0xaf},
- {value: 0x0813, lo: 0xb0, hi: 0xb5},
- {value: 0x0892, lo: 0xb8, hi: 0xbd},
- // Block 0x42, offset 0x1f8
- {value: 0x0010, lo: 0x81, hi: 0xbf},
- // Block 0x43, offset 0x1f9
- {value: 0x0010, lo: 0x80, hi: 0xac},
- {value: 0x0010, lo: 0xaf, hi: 0xbf},
- // Block 0x44, offset 0x1fb
- {value: 0x0010, lo: 0x81, hi: 0x9a},
- {value: 0x0010, lo: 0xa0, hi: 0xbf},
- // Block 0x45, offset 0x1fd
- {value: 0x0010, lo: 0x80, hi: 0xaa},
- {value: 0x0010, lo: 0xae, hi: 0xb8},
- // Block 0x46, offset 0x1ff
- {value: 0x0010, lo: 0x80, hi: 0x8c},
- {value: 0x0010, lo: 0x8e, hi: 0x91},
- {value: 0x0014, lo: 0x92, hi: 0x93},
- {value: 0x0034, lo: 0x94, hi: 0x94},
- {value: 0x0010, lo: 0xa0, hi: 0xb1},
- {value: 0x0014, lo: 0xb2, hi: 0xb3},
- {value: 0x0034, lo: 0xb4, hi: 0xb4},
- // Block 0x47, offset 0x206
- {value: 0x0010, lo: 0x80, hi: 0x91},
- {value: 0x0014, lo: 0x92, hi: 0x93},
- {value: 0x0010, lo: 0xa0, hi: 0xac},
- {value: 0x0010, lo: 0xae, hi: 0xb0},
- {value: 0x0014, lo: 0xb2, hi: 0xb3},
- // Block 0x48, offset 0x20b
- {value: 0x0014, lo: 0xb4, hi: 0xb5},
- {value: 0x0010, lo: 0xb6, hi: 0xb6},
- {value: 0x0014, lo: 0xb7, hi: 0xbd},
- {value: 0x0010, lo: 0xbe, hi: 0xbf},
- // Block 0x49, offset 0x20f
- {value: 0x0010, lo: 0x80, hi: 0x85},
- {value: 0x0014, lo: 0x86, hi: 0x86},
- {value: 0x0010, lo: 0x87, hi: 0x88},
- {value: 0x0014, lo: 0x89, hi: 0x91},
- {value: 0x0034, lo: 0x92, hi: 0x92},
- {value: 0x0014, lo: 0x93, hi: 0x93},
- {value: 0x0004, lo: 0x97, hi: 0x97},
- {value: 0x0024, lo: 0x9d, hi: 0x9d},
- {value: 0x0010, lo: 0xa0, hi: 0xa9},
- // Block 0x4a, offset 0x218
- {value: 0x0014, lo: 0x8b, hi: 0x8e},
- {value: 0x0010, lo: 0x90, hi: 0x99},
- {value: 0x0010, lo: 0xa0, hi: 0xbf},
- // Block 0x4b, offset 0x21b
- {value: 0x0010, lo: 0x80, hi: 0x82},
- {value: 0x0014, lo: 0x83, hi: 0x83},
- {value: 0x0010, lo: 0x84, hi: 0xb7},
- // Block 0x4c, offset 0x21e
- {value: 0x0010, lo: 0x80, hi: 0x84},
- {value: 0x0014, lo: 0x85, hi: 0x86},
- {value: 0x0010, lo: 0x87, hi: 0xa8},
- {value: 0x0034, lo: 0xa9, hi: 0xa9},
- {value: 0x0010, lo: 0xaa, hi: 0xaa},
- {value: 0x0010, lo: 0xb0, hi: 0xbf},
- // Block 0x4d, offset 0x224
- {value: 0x0010, lo: 0x80, hi: 0xb5},
- // Block 0x4e, offset 0x225
- {value: 0x0010, lo: 0x80, hi: 0x9e},
- {value: 0x0014, lo: 0xa0, hi: 0xa2},
- {value: 0x0010, lo: 0xa3, hi: 0xa6},
- {value: 0x0014, lo: 0xa7, hi: 0xa8},
- {value: 0x0010, lo: 0xa9, hi: 0xab},
- {value: 0x0010, lo: 0xb0, hi: 0xb1},
- {value: 0x0014, lo: 0xb2, hi: 0xb2},
- {value: 0x0010, lo: 0xb3, hi: 0xb8},
- {value: 0x0034, lo: 0xb9, hi: 0xb9},
- {value: 0x0024, lo: 0xba, hi: 0xba},
- {value: 0x0034, lo: 0xbb, hi: 0xbb},
- // Block 0x4f, offset 0x230
- {value: 0x0010, lo: 0x86, hi: 0x8f},
- // Block 0x50, offset 0x231
- {value: 0x0010, lo: 0x90, hi: 0x99},
- // Block 0x51, offset 0x232
- {value: 0x0010, lo: 0x80, hi: 0x96},
- {value: 0x0024, lo: 0x97, hi: 0x97},
- {value: 0x0034, lo: 0x98, hi: 0x98},
- {value: 0x0010, lo: 0x99, hi: 0x9a},
- {value: 0x0014, lo: 0x9b, hi: 0x9b},
- // Block 0x52, offset 0x237
- {value: 0x0010, lo: 0x95, hi: 0x95},
- {value: 0x0014, lo: 0x96, hi: 0x96},
- {value: 0x0010, lo: 0x97, hi: 0x97},
- {value: 0x0014, lo: 0x98, hi: 0x9e},
- {value: 0x0034, lo: 0xa0, hi: 0xa0},
- {value: 0x0010, lo: 0xa1, hi: 0xa1},
- {value: 0x0014, lo: 0xa2, hi: 0xa2},
- {value: 0x0010, lo: 0xa3, hi: 0xa4},
- {value: 0x0014, lo: 0xa5, hi: 0xac},
- {value: 0x0010, lo: 0xad, hi: 0xb2},
- {value: 0x0014, lo: 0xb3, hi: 0xb4},
- {value: 0x0024, lo: 0xb5, hi: 0xbc},
- {value: 0x0034, lo: 0xbf, hi: 0xbf},
- // Block 0x53, offset 0x244
- {value: 0x0010, lo: 0x80, hi: 0x89},
- {value: 0x0010, lo: 0x90, hi: 0x99},
- {value: 0x0004, lo: 0xa7, hi: 0xa7},
- {value: 0x0024, lo: 0xb0, hi: 0xb4},
- {value: 0x0034, lo: 0xb5, hi: 0xba},
- {value: 0x0024, lo: 0xbb, hi: 0xbc},
- {value: 0x0034, lo: 0xbd, hi: 0xbd},
- {value: 0x0014, lo: 0xbe, hi: 0xbe},
- // Block 0x54, offset 0x24c
- {value: 0x0014, lo: 0x80, hi: 0x83},
- {value: 0x0010, lo: 0x84, hi: 0xb3},
- {value: 0x0034, lo: 0xb4, hi: 0xb4},
- {value: 0x0010, lo: 0xb5, hi: 0xb5},
- {value: 0x0014, lo: 0xb6, hi: 0xba},
- {value: 0x0010, lo: 0xbb, hi: 0xbb},
- {value: 0x0014, lo: 0xbc, hi: 0xbc},
- {value: 0x0010, lo: 0xbd, hi: 0xbf},
- // Block 0x55, offset 0x254
- {value: 0x0010, lo: 0x80, hi: 0x81},
- {value: 0x0014, lo: 0x82, hi: 0x82},
- {value: 0x0010, lo: 0x83, hi: 0x83},
- {value: 0x0030, lo: 0x84, hi: 0x84},
- {value: 0x0010, lo: 0x85, hi: 0x8b},
- {value: 0x0010, lo: 0x90, hi: 0x99},
- {value: 0x0024, lo: 0xab, hi: 0xab},
- {value: 0x0034, lo: 0xac, hi: 0xac},
- {value: 0x0024, lo: 0xad, hi: 0xb3},
- // Block 0x56, offset 0x25d
- {value: 0x0014, lo: 0x80, hi: 0x81},
- {value: 0x0010, lo: 0x82, hi: 0xa1},
- {value: 0x0014, lo: 0xa2, hi: 0xa5},
- {value: 0x0010, lo: 0xa6, hi: 0xa7},
- {value: 0x0014, lo: 0xa8, hi: 0xa9},
- {value: 0x0030, lo: 0xaa, hi: 0xaa},
- {value: 0x0034, lo: 0xab, hi: 0xab},
- {value: 0x0014, lo: 0xac, hi: 0xad},
- {value: 0x0010, lo: 0xae, hi: 0xbf},
- // Block 0x57, offset 0x266
- {value: 0x0010, lo: 0x80, hi: 0xa5},
- {value: 0x0034, lo: 0xa6, hi: 0xa6},
- {value: 0x0010, lo: 0xa7, hi: 0xa7},
- {value: 0x0014, lo: 0xa8, hi: 0xa9},
- {value: 0x0010, lo: 0xaa, hi: 0xac},
- {value: 0x0014, lo: 0xad, hi: 0xad},
- {value: 0x0010, lo: 0xae, hi: 0xae},
- {value: 0x0014, lo: 0xaf, hi: 0xb1},
- {value: 0x0030, lo: 0xb2, hi: 0xb3},
- // Block 0x58, offset 0x26f
- {value: 0x0010, lo: 0x80, hi: 0xab},
- {value: 0x0014, lo: 0xac, hi: 0xb3},
- {value: 0x0010, lo: 0xb4, hi: 0xb5},
- {value: 0x0014, lo: 0xb6, hi: 0xb6},
- {value: 0x0034, lo: 0xb7, hi: 0xb7},
- // Block 0x59, offset 0x274
- {value: 0x0010, lo: 0x80, hi: 0x89},
- {value: 0x0010, lo: 0x8d, hi: 0xb7},
- {value: 0x0014, lo: 0xb8, hi: 0xbd},
- // Block 0x5a, offset 0x277
- {value: 0x296a, lo: 0x80, hi: 0x80},
- {value: 0x2a2a, lo: 0x81, hi: 0x81},
- {value: 0x2aea, lo: 0x82, hi: 0x82},
- {value: 0x2baa, lo: 0x83, hi: 0x83},
- {value: 0x2c6a, lo: 0x84, hi: 0x84},
- {value: 0x2d2a, lo: 0x85, hi: 0x85},
- {value: 0x2dea, lo: 0x86, hi: 0x86},
- {value: 0x2eaa, lo: 0x87, hi: 0x87},
- {value: 0x2f6a, lo: 0x88, hi: 0x88},
- // Block 0x5b, offset 0x280
- {value: 0x0024, lo: 0x90, hi: 0x92},
- {value: 0x0034, lo: 0x94, hi: 0x99},
- {value: 0x0024, lo: 0x9a, hi: 0x9b},
- {value: 0x0034, lo: 0x9c, hi: 0x9f},
- {value: 0x0024, lo: 0xa0, hi: 0xa0},
- {value: 0x0010, lo: 0xa1, hi: 0xa1},
- {value: 0x0034, lo: 0xa2, hi: 0xa8},
- {value: 0x0010, lo: 0xa9, hi: 0xac},
- {value: 0x0034, lo: 0xad, hi: 0xad},
- {value: 0x0010, lo: 0xae, hi: 0xb3},
- {value: 0x0024, lo: 0xb4, hi: 0xb4},
- {value: 0x0010, lo: 0xb5, hi: 0xb7},
- {value: 0x0024, lo: 0xb8, hi: 0xb9},
- // Block 0x5c, offset 0x28d
- {value: 0x0012, lo: 0x80, hi: 0xab},
- {value: 0x0015, lo: 0xac, hi: 0xbf},
- // Block 0x5d, offset 0x28f
- {value: 0x0015, lo: 0x80, hi: 0xaa},
- {value: 0x0012, lo: 0xab, hi: 0xb7},
- {value: 0x0015, lo: 0xb8, hi: 0xb8},
- {value: 0x8452, lo: 0xb9, hi: 0xb9},
- {value: 0x0012, lo: 0xba, hi: 0xbc},
- {value: 0x8852, lo: 0xbd, hi: 0xbd},
- {value: 0x0012, lo: 0xbe, hi: 0xbf},
- // Block 0x5e, offset 0x296
- {value: 0x0012, lo: 0x80, hi: 0x9a},
- {value: 0x0015, lo: 0x9b, hi: 0xbf},
- // Block 0x5f, offset 0x298
- {value: 0x0024, lo: 0x80, hi: 0x81},
- {value: 0x0034, lo: 0x82, hi: 0x82},
- {value: 0x0024, lo: 0x83, hi: 0x89},
- {value: 0x0034, lo: 0x8a, hi: 0x8a},
- {value: 0x0024, lo: 0x8b, hi: 0x8c},
- {value: 0x0034, lo: 0x8d, hi: 0x90},
- {value: 0x0024, lo: 0x91, hi: 0xb5},
- {value: 0x0034, lo: 0xb6, hi: 0xb9},
- {value: 0x0024, lo: 0xbb, hi: 0xbb},
- {value: 0x0034, lo: 0xbc, hi: 0xbd},
- {value: 0x0024, lo: 0xbe, hi: 0xbe},
- {value: 0x0034, lo: 0xbf, hi: 0xbf},
- // Block 0x60, offset 0x2a4
- {value: 0x0117, lo: 0x80, hi: 0xbf},
- // Block 0x61, offset 0x2a5
- {value: 0x0117, lo: 0x80, hi: 0x95},
- {value: 0x306a, lo: 0x96, hi: 0x96},
- {value: 0x316a, lo: 0x97, hi: 0x97},
- {value: 0x326a, lo: 0x98, hi: 0x98},
- {value: 0x336a, lo: 0x99, hi: 0x99},
- {value: 0x346a, lo: 0x9a, hi: 0x9a},
- {value: 0x356a, lo: 0x9b, hi: 0x9b},
- {value: 0x0012, lo: 0x9c, hi: 0x9d},
- {value: 0x366b, lo: 0x9e, hi: 0x9e},
- {value: 0x0012, lo: 0x9f, hi: 0x9f},
- {value: 0x0117, lo: 0xa0, hi: 0xbf},
- // Block 0x62, offset 0x2b0
- {value: 0x0812, lo: 0x80, hi: 0x87},
- {value: 0x0813, lo: 0x88, hi: 0x8f},
- {value: 0x0812, lo: 0x90, hi: 0x95},
- {value: 0x0813, lo: 0x98, hi: 0x9d},
- {value: 0x0812, lo: 0xa0, hi: 0xa7},
- {value: 0x0813, lo: 0xa8, hi: 0xaf},
- {value: 0x0812, lo: 0xb0, hi: 0xb7},
- {value: 0x0813, lo: 0xb8, hi: 0xbf},
- // Block 0x63, offset 0x2b8
- {value: 0x0004, lo: 0x8b, hi: 0x8b},
- {value: 0x0014, lo: 0x8c, hi: 0x8f},
- {value: 0x0054, lo: 0x98, hi: 0x99},
- {value: 0x0054, lo: 0xa4, hi: 0xa4},
- {value: 0x0054, lo: 0xa7, hi: 0xa7},
- {value: 0x0014, lo: 0xaa, hi: 0xae},
- {value: 0x0010, lo: 0xaf, hi: 0xaf},
- {value: 0x0010, lo: 0xbf, hi: 0xbf},
- // Block 0x64, offset 0x2c0
- {value: 0x0010, lo: 0x80, hi: 0x80},
- {value: 0x0010, lo: 0x94, hi: 0x94},
- {value: 0x0014, lo: 0xa0, hi: 0xa4},
- {value: 0x0014, lo: 0xa6, hi: 0xaf},
- {value: 0x0015, lo: 0xb1, hi: 0xb1},
- {value: 0x0015, lo: 0xbf, hi: 0xbf},
- // Block 0x65, offset 0x2c6
- {value: 0x0015, lo: 0x90, hi: 0x9c},
- // Block 0x66, offset 0x2c7
- {value: 0x0024, lo: 0x90, hi: 0x91},
- {value: 0x0034, lo: 0x92, hi: 0x93},
- {value: 0x0024, lo: 0x94, hi: 0x97},
- {value: 0x0034, lo: 0x98, hi: 0x9a},
- {value: 0x0024, lo: 0x9b, hi: 0x9c},
- {value: 0x0014, lo: 0x9d, hi: 0xa0},
- {value: 0x0024, lo: 0xa1, hi: 0xa1},
- {value: 0x0014, lo: 0xa2, hi: 0xa4},
- {value: 0x0034, lo: 0xa5, hi: 0xa6},
- {value: 0x0024, lo: 0xa7, hi: 0xa7},
- {value: 0x0034, lo: 0xa8, hi: 0xa8},
- {value: 0x0024, lo: 0xa9, hi: 0xa9},
- {value: 0x0034, lo: 0xaa, hi: 0xaf},
- {value: 0x0024, lo: 0xb0, hi: 0xb0},
- // Block 0x67, offset 0x2d5
- {value: 0x0016, lo: 0x85, hi: 0x86},
- {value: 0x0012, lo: 0x87, hi: 0x89},
- {value: 0x9d52, lo: 0x8e, hi: 0x8e},
- {value: 0x1013, lo: 0xa0, hi: 0xaf},
- {value: 0x1012, lo: 0xb0, hi: 0xbf},
- // Block 0x68, offset 0x2da
- {value: 0x0010, lo: 0x80, hi: 0x82},
- {value: 0x0716, lo: 0x83, hi: 0x84},
- {value: 0x0010, lo: 0x85, hi: 0x88},
- // Block 0x69, offset 0x2dd
- {value: 0xa053, lo: 0xb6, hi: 0xb7},
- {value: 0xa353, lo: 0xb8, hi: 0xb9},
- {value: 0xa653, lo: 0xba, hi: 0xbb},
- {value: 0xa353, lo: 0xbc, hi: 0xbd},
- {value: 0xa053, lo: 0xbe, hi: 0xbf},
- // Block 0x6a, offset 0x2e2
- {value: 0x3013, lo: 0x80, hi: 0x8f},
- {value: 0x6553, lo: 0x90, hi: 0x9f},
- {value: 0xa953, lo: 0xa0, hi: 0xae},
- {value: 0x3012, lo: 0xb0, hi: 0xbf},
- // Block 0x6b, offset 0x2e6
- {value: 0x0117, lo: 0x80, hi: 0xa3},
- {value: 0x0012, lo: 0xa4, hi: 0xa4},
- {value: 0x0716, lo: 0xab, hi: 0xac},
- {value: 0x0316, lo: 0xad, hi: 0xae},
- {value: 0x0024, lo: 0xaf, hi: 0xb1},
- {value: 0x0117, lo: 0xb2, hi: 0xb3},
- // Block 0x6c, offset 0x2ec
- {value: 0x6c52, lo: 0x80, hi: 0x9f},
- {value: 0x7052, lo: 0xa0, hi: 0xa5},
- {value: 0x7052, lo: 0xa7, hi: 0xa7},
- {value: 0x7052, lo: 0xad, hi: 0xad},
- {value: 0x0010, lo: 0xb0, hi: 0xbf},
- // Block 0x6d, offset 0x2f1
- {value: 0x0010, lo: 0x80, hi: 0xa7},
- {value: 0x0014, lo: 0xaf, hi: 0xaf},
- {value: 0x0034, lo: 0xbf, hi: 0xbf},
- // Block 0x6e, offset 0x2f4
- {value: 0x0010, lo: 0x80, hi: 0x96},
- {value: 0x0010, lo: 0xa0, hi: 0xa6},
- {value: 0x0010, lo: 0xa8, hi: 0xae},
- {value: 0x0010, lo: 0xb0, hi: 0xb6},
- {value: 0x0010, lo: 0xb8, hi: 0xbe},
- // Block 0x6f, offset 0x2f9
- {value: 0x0010, lo: 0x80, hi: 0x86},
- {value: 0x0010, lo: 0x88, hi: 0x8e},
- {value: 0x0010, lo: 0x90, hi: 0x96},
- {value: 0x0010, lo: 0x98, hi: 0x9e},
- {value: 0x0024, lo: 0xa0, hi: 0xbf},
- // Block 0x70, offset 0x2fe
- {value: 0x0014, lo: 0xaf, hi: 0xaf},
- // Block 0x71, offset 0x2ff
- {value: 0x0014, lo: 0x85, hi: 0x85},
- {value: 0x0034, lo: 0xaa, hi: 0xad},
- {value: 0x0030, lo: 0xae, hi: 0xaf},
- {value: 0x0004, lo: 0xb1, hi: 0xb5},
- {value: 0x0014, lo: 0xbb, hi: 0xbb},
- {value: 0x0010, lo: 0xbc, hi: 0xbc},
- // Block 0x72, offset 0x305
- {value: 0x0034, lo: 0x99, hi: 0x9a},
- {value: 0x0004, lo: 0x9b, hi: 0x9e},
- // Block 0x73, offset 0x307
- {value: 0x0004, lo: 0xbc, hi: 0xbe},
- // Block 0x74, offset 0x308
- {value: 0x0010, lo: 0x85, hi: 0xae},
- {value: 0x0010, lo: 0xb1, hi: 0xbf},
- // Block 0x75, offset 0x30a
- {value: 0x0010, lo: 0x80, hi: 0x8e},
- {value: 0x0010, lo: 0xa0, hi: 0xba},
- // Block 0x76, offset 0x30c
- {value: 0x0010, lo: 0x80, hi: 0x94},
- {value: 0x0014, lo: 0x95, hi: 0x95},
- {value: 0x0010, lo: 0x96, hi: 0xbf},
- // Block 0x77, offset 0x30f
- {value: 0x0010, lo: 0x80, hi: 0x8c},
- // Block 0x78, offset 0x310
- {value: 0x0010, lo: 0x90, hi: 0xb7},
- {value: 0x0014, lo: 0xb8, hi: 0xbd},
- // Block 0x79, offset 0x312
- {value: 0x0010, lo: 0x80, hi: 0x8b},
- {value: 0x0014, lo: 0x8c, hi: 0x8c},
- {value: 0x0010, lo: 0x90, hi: 0xab},
- // Block 0x7a, offset 0x315
- {value: 0x0117, lo: 0x80, hi: 0xad},
- {value: 0x0010, lo: 0xae, hi: 0xae},
- {value: 0x0024, lo: 0xaf, hi: 0xaf},
- {value: 0x0014, lo: 0xb0, hi: 0xb2},
- {value: 0x0024, lo: 0xb4, hi: 0xbd},
- {value: 0x0014, lo: 0xbf, hi: 0xbf},
- // Block 0x7b, offset 0x31b
- {value: 0x0117, lo: 0x80, hi: 0x9b},
- {value: 0x0015, lo: 0x9c, hi: 0x9d},
- {value: 0x0024, lo: 0x9e, hi: 0x9f},
- {value: 0x0010, lo: 0xa0, hi: 0xbf},
- // Block 0x7c, offset 0x31f
- {value: 0x0010, lo: 0x80, hi: 0xaf},
- {value: 0x0024, lo: 0xb0, hi: 0xb1},
- // Block 0x7d, offset 0x321
- {value: 0x0004, lo: 0x80, hi: 0x96},
- {value: 0x0014, lo: 0x97, hi: 0xa1},
- {value: 0x0117, lo: 0xa2, hi: 0xaf},
- {value: 0x0012, lo: 0xb0, hi: 0xb1},
- {value: 0x0117, lo: 0xb2, hi: 0xbf},
- // Block 0x7e, offset 0x326
- {value: 0x0117, lo: 0x80, hi: 0xaf},
- {value: 0x0015, lo: 0xb0, hi: 0xb0},
- {value: 0x0012, lo: 0xb1, hi: 0xb8},
- {value: 0x0316, lo: 0xb9, hi: 0xba},
- {value: 0x0716, lo: 0xbb, hi: 0xbc},
- {value: 0x8453, lo: 0xbd, hi: 0xbd},
- {value: 0x0117, lo: 0xbe, hi: 0xbf},
- // Block 0x7f, offset 0x32d
- {value: 0x0010, lo: 0xb7, hi: 0xb7},
- {value: 0x0015, lo: 0xb8, hi: 0xb9},
- {value: 0x0012, lo: 0xba, hi: 0xba},
- {value: 0x0010, lo: 0xbb, hi: 0xbf},
- // Block 0x80, offset 0x331
- {value: 0x0010, lo: 0x80, hi: 0x81},
- {value: 0x0014, lo: 0x82, hi: 0x82},
- {value: 0x0010, lo: 0x83, hi: 0x85},
- {value: 0x0034, lo: 0x86, hi: 0x86},
- {value: 0x0010, lo: 0x87, hi: 0x8a},
- {value: 0x0014, lo: 0x8b, hi: 0x8b},
- {value: 0x0010, lo: 0x8c, hi: 0xa4},
- {value: 0x0014, lo: 0xa5, hi: 0xa6},
- {value: 0x0010, lo: 0xa7, hi: 0xa7},
- // Block 0x81, offset 0x33a
- {value: 0x0010, lo: 0x80, hi: 0xb3},
- // Block 0x82, offset 0x33b
- {value: 0x0010, lo: 0x80, hi: 0x83},
- {value: 0x0034, lo: 0x84, hi: 0x84},
- {value: 0x0014, lo: 0x85, hi: 0x85},
- {value: 0x0010, lo: 0x90, hi: 0x99},
- {value: 0x0024, lo: 0xa0, hi: 0xb1},
- {value: 0x0010, lo: 0xb2, hi: 0xb7},
- {value: 0x0010, lo: 0xbb, hi: 0xbb},
- {value: 0x0010, lo: 0xbd, hi: 0xbd},
- // Block 0x83, offset 0x343
- {value: 0x0010, lo: 0x80, hi: 0xa5},
- {value: 0x0014, lo: 0xa6, hi: 0xaa},
- {value: 0x0034, lo: 0xab, hi: 0xad},
- {value: 0x0010, lo: 0xb0, hi: 0xbf},
- // Block 0x84, offset 0x347
- {value: 0x0010, lo: 0x80, hi: 0x86},
- {value: 0x0014, lo: 0x87, hi: 0x91},
- {value: 0x0010, lo: 0x92, hi: 0x92},
- {value: 0x0030, lo: 0x93, hi: 0x93},
- {value: 0x0010, lo: 0xa0, hi: 0xbc},
- // Block 0x85, offset 0x34c
- {value: 0x0014, lo: 0x80, hi: 0x82},
- {value: 0x0010, lo: 0x83, hi: 0xb2},
- {value: 0x0034, lo: 0xb3, hi: 0xb3},
- {value: 0x0010, lo: 0xb4, hi: 0xb5},
- {value: 0x0014, lo: 0xb6, hi: 0xb9},
- {value: 0x0010, lo: 0xba, hi: 0xbb},
- {value: 0x0014, lo: 0xbc, hi: 0xbc},
- {value: 0x0010, lo: 0xbd, hi: 0xbf},
- // Block 0x86, offset 0x354
- {value: 0x0030, lo: 0x80, hi: 0x80},
- {value: 0x0014, lo: 0x8f, hi: 0x8f},
- {value: 0x0010, lo: 0x90, hi: 0x99},
- {value: 0x0014, lo: 0xa5, hi: 0xa5},
- {value: 0x0004, lo: 0xa6, hi: 0xa6},
- {value: 0x0010, lo: 0xb0, hi: 0xb9},
- // Block 0x87, offset 0x35a
- {value: 0x0010, lo: 0x80, hi: 0xa8},
- {value: 0x0014, lo: 0xa9, hi: 0xae},
- {value: 0x0010, lo: 0xaf, hi: 0xb0},
- {value: 0x0014, lo: 0xb1, hi: 0xb2},
- {value: 0x0010, lo: 0xb3, hi: 0xb4},
- {value: 0x0014, lo: 0xb5, hi: 0xb6},
- // Block 0x88, offset 0x360
- {value: 0x0010, lo: 0x80, hi: 0x82},
- {value: 0x0014, lo: 0x83, hi: 0x83},
- {value: 0x0010, lo: 0x84, hi: 0x8b},
- {value: 0x0014, lo: 0x8c, hi: 0x8c},
- {value: 0x0010, lo: 0x8d, hi: 0x8d},
- {value: 0x0010, lo: 0x90, hi: 0x99},
- {value: 0x0004, lo: 0xb0, hi: 0xb0},
- {value: 0x0010, lo: 0xbb, hi: 0xbb},
- {value: 0x0014, lo: 0xbc, hi: 0xbc},
- {value: 0x0010, lo: 0xbd, hi: 0xbd},
- // Block 0x89, offset 0x36a
- {value: 0x0024, lo: 0xb0, hi: 0xb0},
- {value: 0x0024, lo: 0xb2, hi: 0xb3},
- {value: 0x0034, lo: 0xb4, hi: 0xb4},
- {value: 0x0024, lo: 0xb7, hi: 0xb8},
- {value: 0x0024, lo: 0xbe, hi: 0xbf},
- // Block 0x8a, offset 0x36f
- {value: 0x0024, lo: 0x81, hi: 0x81},
- {value: 0x0004, lo: 0x9d, hi: 0x9d},
- {value: 0x0010, lo: 0xa0, hi: 0xab},
- {value: 0x0014, lo: 0xac, hi: 0xad},
- {value: 0x0010, lo: 0xae, hi: 0xaf},
- {value: 0x0010, lo: 0xb2, hi: 0xb2},
- {value: 0x0014, lo: 0xb3, hi: 0xb4},
- {value: 0x0010, lo: 0xb5, hi: 0xb5},
- {value: 0x0034, lo: 0xb6, hi: 0xb6},
- // Block 0x8b, offset 0x378
- {value: 0x0010, lo: 0x81, hi: 0x86},
- {value: 0x0010, lo: 0x89, hi: 0x8e},
- {value: 0x0010, lo: 0x91, hi: 0x96},
- {value: 0x0010, lo: 0xa0, hi: 0xa6},
- {value: 0x0010, lo: 0xa8, hi: 0xae},
- {value: 0x0012, lo: 0xb0, hi: 0xbf},
- // Block 0x8c, offset 0x37e
- {value: 0x0012, lo: 0x80, hi: 0x92},
- {value: 0xac52, lo: 0x93, hi: 0x93},
- {value: 0x0012, lo: 0x94, hi: 0x9a},
- {value: 0x0014, lo: 0x9b, hi: 0x9b},
- {value: 0x0015, lo: 0x9c, hi: 0x9f},
- {value: 0x0012, lo: 0xa0, hi: 0xa5},
- {value: 0x74d2, lo: 0xb0, hi: 0xbf},
- // Block 0x8d, offset 0x385
- {value: 0x78d2, lo: 0x80, hi: 0x8f},
- {value: 0x7cd2, lo: 0x90, hi: 0x9f},
- {value: 0x80d2, lo: 0xa0, hi: 0xaf},
- {value: 0x7cd2, lo: 0xb0, hi: 0xbf},
- // Block 0x8e, offset 0x389
- {value: 0x0010, lo: 0x80, hi: 0xa4},
- {value: 0x0014, lo: 0xa5, hi: 0xa5},
- {value: 0x0010, lo: 0xa6, hi: 0xa7},
- {value: 0x0014, lo: 0xa8, hi: 0xa8},
- {value: 0x0010, lo: 0xa9, hi: 0xaa},
- {value: 0x0010, lo: 0xac, hi: 0xac},
- {value: 0x0034, lo: 0xad, hi: 0xad},
- {value: 0x0010, lo: 0xb0, hi: 0xb9},
- // Block 0x8f, offset 0x391
- {value: 0x0010, lo: 0x80, hi: 0xa3},
- {value: 0x0010, lo: 0xb0, hi: 0xbf},
- // Block 0x90, offset 0x393
- {value: 0x0010, lo: 0x80, hi: 0x86},
- {value: 0x0010, lo: 0x8b, hi: 0xbb},
- // Block 0x91, offset 0x395
- {value: 0x0010, lo: 0x80, hi: 0x81},
- {value: 0x0010, lo: 0x83, hi: 0x84},
- {value: 0x0010, lo: 0x86, hi: 0xbf},
- // Block 0x92, offset 0x398
- {value: 0x0010, lo: 0x80, hi: 0xb1},
- {value: 0x0004, lo: 0xb2, hi: 0xbf},
- // Block 0x93, offset 0x39a
- {value: 0x0004, lo: 0x80, hi: 0x81},
- {value: 0x0010, lo: 0x93, hi: 0xbf},
- // Block 0x94, offset 0x39c
- {value: 0x0010, lo: 0x80, hi: 0xbd},
- // Block 0x95, offset 0x39d
- {value: 0x0010, lo: 0x90, hi: 0xbf},
- // Block 0x96, offset 0x39e
- {value: 0x0010, lo: 0x80, hi: 0x8f},
- {value: 0x0010, lo: 0x92, hi: 0xbf},
- // Block 0x97, offset 0x3a0
- {value: 0x0010, lo: 0x80, hi: 0x87},
- {value: 0x0010, lo: 0xb0, hi: 0xbb},
- // Block 0x98, offset 0x3a2
- {value: 0x0014, lo: 0x80, hi: 0x8f},
- {value: 0x0054, lo: 0x93, hi: 0x93},
- {value: 0x0024, lo: 0xa0, hi: 0xa6},
- {value: 0x0034, lo: 0xa7, hi: 0xad},
- {value: 0x0024, lo: 0xae, hi: 0xaf},
- {value: 0x0010, lo: 0xb3, hi: 0xb4},
- // Block 0x99, offset 0x3a8
- {value: 0x0010, lo: 0x8d, hi: 0x8f},
- {value: 0x0054, lo: 0x92, hi: 0x92},
- {value: 0x0054, lo: 0x95, hi: 0x95},
- {value: 0x0010, lo: 0xb0, hi: 0xb4},
- {value: 0x0010, lo: 0xb6, hi: 0xbf},
- // Block 0x9a, offset 0x3ad
- {value: 0x0010, lo: 0x80, hi: 0xbc},
- {value: 0x0014, lo: 0xbf, hi: 0xbf},
- // Block 0x9b, offset 0x3af
- {value: 0x0054, lo: 0x87, hi: 0x87},
- {value: 0x0054, lo: 0x8e, hi: 0x8e},
- {value: 0x0054, lo: 0x9a, hi: 0x9a},
- {value: 0x5f53, lo: 0xa1, hi: 0xba},
- {value: 0x0004, lo: 0xbe, hi: 0xbe},
- {value: 0x0010, lo: 0xbf, hi: 0xbf},
- // Block 0x9c, offset 0x3b5
- {value: 0x0004, lo: 0x80, hi: 0x80},
- {value: 0x5f52, lo: 0x81, hi: 0x9a},
- {value: 0x0004, lo: 0xb0, hi: 0xb0},
- // Block 0x9d, offset 0x3b8
- {value: 0x0014, lo: 0x9e, hi: 0x9f},
- {value: 0x0010, lo: 0xa0, hi: 0xbe},
- // Block 0x9e, offset 0x3ba
- {value: 0x0010, lo: 0x82, hi: 0x87},
- {value: 0x0010, lo: 0x8a, hi: 0x8f},
- {value: 0x0010, lo: 0x92, hi: 0x97},
- {value: 0x0010, lo: 0x9a, hi: 0x9c},
- {value: 0x0004, lo: 0xa3, hi: 0xa3},
- {value: 0x0014, lo: 0xb9, hi: 0xbb},
- // Block 0x9f, offset 0x3c0
- {value: 0x0010, lo: 0x80, hi: 0x8b},
- {value: 0x0010, lo: 0x8d, hi: 0xa6},
- {value: 0x0010, lo: 0xa8, hi: 0xba},
- {value: 0x0010, lo: 0xbc, hi: 0xbd},
- {value: 0x0010, lo: 0xbf, hi: 0xbf},
- // Block 0xa0, offset 0x3c5
- {value: 0x0010, lo: 0x80, hi: 0x8d},
- {value: 0x0010, lo: 0x90, hi: 0x9d},
- // Block 0xa1, offset 0x3c7
- {value: 0x0010, lo: 0x80, hi: 0xba},
- // Block 0xa2, offset 0x3c8
- {value: 0x0010, lo: 0x80, hi: 0xb4},
- // Block 0xa3, offset 0x3c9
- {value: 0x0034, lo: 0xbd, hi: 0xbd},
- // Block 0xa4, offset 0x3ca
- {value: 0x0010, lo: 0x80, hi: 0x9c},
- {value: 0x0010, lo: 0xa0, hi: 0xbf},
- // Block 0xa5, offset 0x3cc
- {value: 0x0010, lo: 0x80, hi: 0x90},
- {value: 0x0034, lo: 0xa0, hi: 0xa0},
- // Block 0xa6, offset 0x3ce
- {value: 0x0010, lo: 0x80, hi: 0x9f},
- {value: 0x0010, lo: 0xad, hi: 0xbf},
- // Block 0xa7, offset 0x3d0
- {value: 0x0010, lo: 0x80, hi: 0x8a},
- {value: 0x0010, lo: 0x90, hi: 0xb5},
- {value: 0x0024, lo: 0xb6, hi: 0xba},
- // Block 0xa8, offset 0x3d3
- {value: 0x0010, lo: 0x80, hi: 0x9d},
- {value: 0x0010, lo: 0xa0, hi: 0xbf},
- // Block 0xa9, offset 0x3d5
- {value: 0x0010, lo: 0x80, hi: 0x83},
- {value: 0x0010, lo: 0x88, hi: 0x8f},
- {value: 0x0010, lo: 0x91, hi: 0x95},
- // Block 0xaa, offset 0x3d8
- {value: 0x2813, lo: 0x80, hi: 0x87},
- {value: 0x3813, lo: 0x88, hi: 0x8f},
- {value: 0x2813, lo: 0x90, hi: 0x97},
- {value: 0xaf53, lo: 0x98, hi: 0x9f},
- {value: 0xb253, lo: 0xa0, hi: 0xa7},
- {value: 0x2812, lo: 0xa8, hi: 0xaf},
- {value: 0x3812, lo: 0xb0, hi: 0xb7},
- {value: 0x2812, lo: 0xb8, hi: 0xbf},
- // Block 0xab, offset 0x3e0
- {value: 0xaf52, lo: 0x80, hi: 0x87},
- {value: 0xb252, lo: 0x88, hi: 0x8f},
- {value: 0x0010, lo: 0x90, hi: 0xbf},
- // Block 0xac, offset 0x3e3
- {value: 0x0010, lo: 0x80, hi: 0x9d},
- {value: 0x0010, lo: 0xa0, hi: 0xa9},
- {value: 0xb253, lo: 0xb0, hi: 0xb7},
- {value: 0xaf53, lo: 0xb8, hi: 0xbf},
- // Block 0xad, offset 0x3e7
- {value: 0x2813, lo: 0x80, hi: 0x87},
- {value: 0x3813, lo: 0x88, hi: 0x8f},
- {value: 0x2813, lo: 0x90, hi: 0x93},
- {value: 0xb252, lo: 0x98, hi: 0x9f},
- {value: 0xaf52, lo: 0xa0, hi: 0xa7},
- {value: 0x2812, lo: 0xa8, hi: 0xaf},
- {value: 0x3812, lo: 0xb0, hi: 0xb7},
- {value: 0x2812, lo: 0xb8, hi: 0xbb},
- // Block 0xae, offset 0x3ef
- {value: 0x0010, lo: 0x80, hi: 0xa7},
- {value: 0x0010, lo: 0xb0, hi: 0xbf},
- // Block 0xaf, offset 0x3f1
- {value: 0x0010, lo: 0x80, hi: 0xa3},
- // Block 0xb0, offset 0x3f2
- {value: 0x0010, lo: 0x80, hi: 0xb6},
- // Block 0xb1, offset 0x3f3
- {value: 0x0010, lo: 0x80, hi: 0x95},
- {value: 0x0010, lo: 0xa0, hi: 0xa7},
- // Block 0xb2, offset 0x3f5
- {value: 0x0010, lo: 0x80, hi: 0x85},
- {value: 0x0010, lo: 0x88, hi: 0x88},
- {value: 0x0010, lo: 0x8a, hi: 0xb5},
- {value: 0x0010, lo: 0xb7, hi: 0xb8},
- {value: 0x0010, lo: 0xbc, hi: 0xbc},
- {value: 0x0010, lo: 0xbf, hi: 0xbf},
- // Block 0xb3, offset 0x3fb
- {value: 0x0010, lo: 0x80, hi: 0x95},
- {value: 0x0010, lo: 0xa0, hi: 0xb6},
- // Block 0xb4, offset 0x3fd
- {value: 0x0010, lo: 0x80, hi: 0x9e},
- // Block 0xb5, offset 0x3fe
- {value: 0x0010, lo: 0xa0, hi: 0xb2},
- {value: 0x0010, lo: 0xb4, hi: 0xb5},
- // Block 0xb6, offset 0x400
- {value: 0x0010, lo: 0x80, hi: 0x95},
- {value: 0x0010, lo: 0xa0, hi: 0xb9},
- // Block 0xb7, offset 0x402
- {value: 0x0010, lo: 0x80, hi: 0xb7},
- {value: 0x0010, lo: 0xbe, hi: 0xbf},
- // Block 0xb8, offset 0x404
- {value: 0x0010, lo: 0x80, hi: 0x80},
- {value: 0x0014, lo: 0x81, hi: 0x83},
- {value: 0x0014, lo: 0x85, hi: 0x86},
- {value: 0x0014, lo: 0x8c, hi: 0x8c},
- {value: 0x0034, lo: 0x8d, hi: 0x8d},
- {value: 0x0014, lo: 0x8e, hi: 0x8e},
- {value: 0x0024, lo: 0x8f, hi: 0x8f},
- {value: 0x0010, lo: 0x90, hi: 0x93},
- {value: 0x0010, lo: 0x95, hi: 0x97},
- {value: 0x0010, lo: 0x99, hi: 0xb3},
- {value: 0x0024, lo: 0xb8, hi: 0xb8},
- {value: 0x0034, lo: 0xb9, hi: 0xba},
- {value: 0x0034, lo: 0xbf, hi: 0xbf},
- // Block 0xb9, offset 0x411
- {value: 0x0010, lo: 0xa0, hi: 0xbc},
- // Block 0xba, offset 0x412
- {value: 0x0010, lo: 0x80, hi: 0x9c},
- // Block 0xbb, offset 0x413
- {value: 0x0010, lo: 0x80, hi: 0x87},
- {value: 0x0010, lo: 0x89, hi: 0xa4},
- {value: 0x0024, lo: 0xa5, hi: 0xa5},
- {value: 0x0034, lo: 0xa6, hi: 0xa6},
- // Block 0xbc, offset 0x417
- {value: 0x0010, lo: 0x80, hi: 0x95},
- {value: 0x0010, lo: 0xa0, hi: 0xb2},
- // Block 0xbd, offset 0x419
- {value: 0x0010, lo: 0x80, hi: 0x91},
- // Block 0xbe, offset 0x41a
- {value: 0x0010, lo: 0x80, hi: 0x88},
- // Block 0xbf, offset 0x41b
- {value: 0x5653, lo: 0x80, hi: 0xb2},
- // Block 0xc0, offset 0x41c
- {value: 0x5652, lo: 0x80, hi: 0xb2},
- // Block 0xc1, offset 0x41d
- {value: 0x0010, lo: 0x80, hi: 0x80},
- {value: 0x0014, lo: 0x81, hi: 0x81},
- {value: 0x0010, lo: 0x82, hi: 0xb7},
- {value: 0x0014, lo: 0xb8, hi: 0xbf},
- // Block 0xc2, offset 0x421
- {value: 0x0014, lo: 0x80, hi: 0x85},
- {value: 0x0034, lo: 0x86, hi: 0x86},
- {value: 0x0010, lo: 0xa6, hi: 0xaf},
- {value: 0x0034, lo: 0xbf, hi: 0xbf},
- // Block 0xc3, offset 0x425
- {value: 0x0014, lo: 0x80, hi: 0x81},
- {value: 0x0010, lo: 0x82, hi: 0xb2},
- {value: 0x0014, lo: 0xb3, hi: 0xb6},
- {value: 0x0010, lo: 0xb7, hi: 0xb8},
- {value: 0x0034, lo: 0xb9, hi: 0xba},
- {value: 0x0014, lo: 0xbd, hi: 0xbd},
- // Block 0xc4, offset 0x42b
- {value: 0x0010, lo: 0x90, hi: 0xa8},
- {value: 0x0010, lo: 0xb0, hi: 0xb9},
- // Block 0xc5, offset 0x42d
- {value: 0x0024, lo: 0x80, hi: 0x82},
- {value: 0x0010, lo: 0x83, hi: 0xa6},
- {value: 0x0014, lo: 0xa7, hi: 0xab},
- {value: 0x0010, lo: 0xac, hi: 0xac},
- {value: 0x0014, lo: 0xad, hi: 0xb2},
- {value: 0x0034, lo: 0xb3, hi: 0xb4},
- {value: 0x0010, lo: 0xb6, hi: 0xbf},
- // Block 0xc6, offset 0x434
- {value: 0x0010, lo: 0x90, hi: 0xb2},
- {value: 0x0034, lo: 0xb3, hi: 0xb3},
- {value: 0x0010, lo: 0xb6, hi: 0xb6},
- // Block 0xc7, offset 0x437
- {value: 0x0014, lo: 0x80, hi: 0x81},
- {value: 0x0010, lo: 0x82, hi: 0xb5},
- {value: 0x0014, lo: 0xb6, hi: 0xbe},
- {value: 0x0010, lo: 0xbf, hi: 0xbf},
- // Block 0xc8, offset 0x43b
- {value: 0x0030, lo: 0x80, hi: 0x80},
- {value: 0x0010, lo: 0x81, hi: 0x84},
- {value: 0x0034, lo: 0x8a, hi: 0x8a},
- {value: 0x0014, lo: 0x8b, hi: 0x8c},
- {value: 0x0010, lo: 0x90, hi: 0x9a},
- {value: 0x0010, lo: 0x9c, hi: 0x9c},
- // Block 0xc9, offset 0x441
- {value: 0x0010, lo: 0x80, hi: 0x91},
- {value: 0x0010, lo: 0x93, hi: 0xae},
- {value: 0x0014, lo: 0xaf, hi: 0xb1},
- {value: 0x0010, lo: 0xb2, hi: 0xb3},
- {value: 0x0014, lo: 0xb4, hi: 0xb4},
- {value: 0x0030, lo: 0xb5, hi: 0xb5},
- {value: 0x0034, lo: 0xb6, hi: 0xb6},
- {value: 0x0014, lo: 0xb7, hi: 0xb7},
- {value: 0x0014, lo: 0xbe, hi: 0xbe},
- // Block 0xca, offset 0x44a
- {value: 0x0010, lo: 0x80, hi: 0x86},
- {value: 0x0010, lo: 0x88, hi: 0x88},
- {value: 0x0010, lo: 0x8a, hi: 0x8d},
- {value: 0x0010, lo: 0x8f, hi: 0x9d},
- {value: 0x0010, lo: 0x9f, hi: 0xa8},
- {value: 0x0010, lo: 0xb0, hi: 0xbf},
- // Block 0xcb, offset 0x450
- {value: 0x0010, lo: 0x80, hi: 0x9e},
- {value: 0x0014, lo: 0x9f, hi: 0x9f},
- {value: 0x0010, lo: 0xa0, hi: 0xa2},
- {value: 0x0014, lo: 0xa3, hi: 0xa8},
- {value: 0x0034, lo: 0xa9, hi: 0xaa},
- {value: 0x0010, lo: 0xb0, hi: 0xb9},
- // Block 0xcc, offset 0x456
- {value: 0x0014, lo: 0x80, hi: 0x81},
- {value: 0x0010, lo: 0x82, hi: 0x83},
- {value: 0x0010, lo: 0x85, hi: 0x8c},
- {value: 0x0010, lo: 0x8f, hi: 0x90},
- {value: 0x0010, lo: 0x93, hi: 0xa8},
- {value: 0x0010, lo: 0xaa, hi: 0xb0},
- {value: 0x0010, lo: 0xb2, hi: 0xb3},
- {value: 0x0010, lo: 0xb5, hi: 0xb9},
- {value: 0x0034, lo: 0xbc, hi: 0xbc},
- {value: 0x0010, lo: 0xbd, hi: 0xbf},
- // Block 0xcd, offset 0x460
- {value: 0x0014, lo: 0x80, hi: 0x80},
- {value: 0x0010, lo: 0x81, hi: 0x84},
- {value: 0x0010, lo: 0x87, hi: 0x88},
- {value: 0x0010, lo: 0x8b, hi: 0x8c},
- {value: 0x0030, lo: 0x8d, hi: 0x8d},
- {value: 0x0010, lo: 0x90, hi: 0x90},
- {value: 0x0010, lo: 0x97, hi: 0x97},
- {value: 0x0010, lo: 0x9d, hi: 0xa3},
- {value: 0x0024, lo: 0xa6, hi: 0xac},
- {value: 0x0024, lo: 0xb0, hi: 0xb4},
- // Block 0xce, offset 0x46a
- {value: 0x0010, lo: 0x80, hi: 0xb7},
- {value: 0x0014, lo: 0xb8, hi: 0xbf},
- // Block 0xcf, offset 0x46c
- {value: 0x0010, lo: 0x80, hi: 0x81},
- {value: 0x0034, lo: 0x82, hi: 0x82},
- {value: 0x0014, lo: 0x83, hi: 0x84},
- {value: 0x0010, lo: 0x85, hi: 0x85},
- {value: 0x0034, lo: 0x86, hi: 0x86},
- {value: 0x0010, lo: 0x87, hi: 0x8a},
- {value: 0x0010, lo: 0x90, hi: 0x99},
- // Block 0xd0, offset 0x473
- {value: 0x0010, lo: 0x80, hi: 0xb2},
- {value: 0x0014, lo: 0xb3, hi: 0xb8},
- {value: 0x0010, lo: 0xb9, hi: 0xb9},
- {value: 0x0014, lo: 0xba, hi: 0xba},
- {value: 0x0010, lo: 0xbb, hi: 0xbe},
- {value: 0x0014, lo: 0xbf, hi: 0xbf},
- // Block 0xd1, offset 0x479
- {value: 0x0014, lo: 0x80, hi: 0x80},
- {value: 0x0010, lo: 0x81, hi: 0x81},
- {value: 0x0034, lo: 0x82, hi: 0x83},
- {value: 0x0010, lo: 0x84, hi: 0x85},
- {value: 0x0010, lo: 0x87, hi: 0x87},
- {value: 0x0010, lo: 0x90, hi: 0x99},
- // Block 0xd2, offset 0x47f
- {value: 0x0010, lo: 0x80, hi: 0xb1},
- {value: 0x0014, lo: 0xb2, hi: 0xb5},
- {value: 0x0010, lo: 0xb8, hi: 0xbb},
- {value: 0x0014, lo: 0xbc, hi: 0xbd},
- {value: 0x0010, lo: 0xbe, hi: 0xbe},
- {value: 0x0034, lo: 0xbf, hi: 0xbf},
- // Block 0xd3, offset 0x485
- {value: 0x0034, lo: 0x80, hi: 0x80},
- {value: 0x0010, lo: 0x98, hi: 0x9b},
- {value: 0x0014, lo: 0x9c, hi: 0x9d},
- // Block 0xd4, offset 0x488
- {value: 0x0010, lo: 0x80, hi: 0xb2},
- {value: 0x0014, lo: 0xb3, hi: 0xba},
- {value: 0x0010, lo: 0xbb, hi: 0xbc},
- {value: 0x0014, lo: 0xbd, hi: 0xbd},
- {value: 0x0010, lo: 0xbe, hi: 0xbe},
- {value: 0x0034, lo: 0xbf, hi: 0xbf},
- // Block 0xd5, offset 0x48e
- {value: 0x0014, lo: 0x80, hi: 0x80},
- {value: 0x0010, lo: 0x84, hi: 0x84},
- {value: 0x0010, lo: 0x90, hi: 0x99},
- // Block 0xd6, offset 0x491
- {value: 0x0010, lo: 0x80, hi: 0xaa},
- {value: 0x0014, lo: 0xab, hi: 0xab},
- {value: 0x0010, lo: 0xac, hi: 0xac},
- {value: 0x0014, lo: 0xad, hi: 0xad},
- {value: 0x0010, lo: 0xae, hi: 0xaf},
- {value: 0x0014, lo: 0xb0, hi: 0xb5},
- {value: 0x0030, lo: 0xb6, hi: 0xb6},
- {value: 0x0034, lo: 0xb7, hi: 0xb7},
- // Block 0xd7, offset 0x499
- {value: 0x0010, lo: 0x80, hi: 0x89},
- // Block 0xd8, offset 0x49a
- {value: 0x0014, lo: 0x9d, hi: 0x9f},
- {value: 0x0010, lo: 0xa0, hi: 0xa1},
- {value: 0x0014, lo: 0xa2, hi: 0xa5},
- {value: 0x0010, lo: 0xa6, hi: 0xa6},
- {value: 0x0014, lo: 0xa7, hi: 0xaa},
- {value: 0x0034, lo: 0xab, hi: 0xab},
- {value: 0x0010, lo: 0xb0, hi: 0xb9},
- // Block 0xd9, offset 0x4a1
- {value: 0x5f53, lo: 0xa0, hi: 0xbf},
- // Block 0xda, offset 0x4a2
- {value: 0x5f52, lo: 0x80, hi: 0x9f},
- {value: 0x0010, lo: 0xa0, hi: 0xa9},
- {value: 0x0010, lo: 0xbf, hi: 0xbf},
- // Block 0xdb, offset 0x4a5
- {value: 0x0010, lo: 0x80, hi: 0x80},
- {value: 0x0014, lo: 0x81, hi: 0x86},
- {value: 0x0010, lo: 0x87, hi: 0x88},
- {value: 0x0014, lo: 0x89, hi: 0x8a},
- {value: 0x0010, lo: 0x8b, hi: 0xb2},
- {value: 0x0014, lo: 0xb3, hi: 0xb3},
- {value: 0x0034, lo: 0xb4, hi: 0xb4},
- {value: 0x0014, lo: 0xb5, hi: 0xb8},
- {value: 0x0010, lo: 0xb9, hi: 0xba},
- {value: 0x0014, lo: 0xbb, hi: 0xbe},
- // Block 0xdc, offset 0x4af
- {value: 0x0034, lo: 0x87, hi: 0x87},
- {value: 0x0010, lo: 0x90, hi: 0x90},
- {value: 0x0014, lo: 0x91, hi: 0x96},
- {value: 0x0010, lo: 0x97, hi: 0x98},
- {value: 0x0014, lo: 0x99, hi: 0x9b},
- {value: 0x0010, lo: 0x9c, hi: 0xbf},
- // Block 0xdd, offset 0x4b5
- {value: 0x0010, lo: 0x80, hi: 0x83},
- {value: 0x0010, lo: 0x86, hi: 0x89},
- {value: 0x0014, lo: 0x8a, hi: 0x96},
- {value: 0x0010, lo: 0x97, hi: 0x97},
- {value: 0x0014, lo: 0x98, hi: 0x98},
- {value: 0x0034, lo: 0x99, hi: 0x99},
- // Block 0xde, offset 0x4bb
- {value: 0x0010, lo: 0x80, hi: 0xb8},
- // Block 0xdf, offset 0x4bc
- {value: 0x0010, lo: 0x80, hi: 0x88},
- {value: 0x0010, lo: 0x8a, hi: 0xaf},
- {value: 0x0014, lo: 0xb0, hi: 0xb6},
- {value: 0x0014, lo: 0xb8, hi: 0xbd},
- {value: 0x0010, lo: 0xbe, hi: 0xbe},
- {value: 0x0034, lo: 0xbf, hi: 0xbf},
- // Block 0xe0, offset 0x4c2
- {value: 0x0010, lo: 0x80, hi: 0x80},
- {value: 0x0010, lo: 0x90, hi: 0x99},
- {value: 0x0010, lo: 0xb2, hi: 0xbf},
- // Block 0xe1, offset 0x4c5
- {value: 0x0010, lo: 0x80, hi: 0x8f},
- {value: 0x0014, lo: 0x92, hi: 0xa7},
- {value: 0x0010, lo: 0xa9, hi: 0xa9},
- {value: 0x0014, lo: 0xaa, hi: 0xb0},
- {value: 0x0010, lo: 0xb1, hi: 0xb1},
- {value: 0x0014, lo: 0xb2, hi: 0xb3},
- {value: 0x0010, lo: 0xb4, hi: 0xb4},
- {value: 0x0014, lo: 0xb5, hi: 0xb6},
- // Block 0xe2, offset 0x4cd
- {value: 0x0010, lo: 0x80, hi: 0x86},
- {value: 0x0010, lo: 0x88, hi: 0x89},
- {value: 0x0010, lo: 0x8b, hi: 0xb0},
- {value: 0x0014, lo: 0xb1, hi: 0xb6},
- {value: 0x0014, lo: 0xba, hi: 0xba},
- {value: 0x0014, lo: 0xbc, hi: 0xbd},
- {value: 0x0014, lo: 0xbf, hi: 0xbf},
- // Block 0xe3, offset 0x4d4
- {value: 0x0014, lo: 0x80, hi: 0x81},
- {value: 0x0034, lo: 0x82, hi: 0x82},
- {value: 0x0014, lo: 0x83, hi: 0x83},
- {value: 0x0034, lo: 0x84, hi: 0x85},
- {value: 0x0010, lo: 0x86, hi: 0x86},
- {value: 0x0014, lo: 0x87, hi: 0x87},
- {value: 0x0010, lo: 0x90, hi: 0x99},
- // Block 0xe4, offset 0x4db
- {value: 0x0010, lo: 0x80, hi: 0x99},
- // Block 0xe5, offset 0x4dc
- {value: 0x0010, lo: 0x80, hi: 0xae},
- // Block 0xe6, offset 0x4dd
- {value: 0x0010, lo: 0x80, hi: 0x83},
- // Block 0xe7, offset 0x4de
- {value: 0x0010, lo: 0x80, hi: 0x86},
- // Block 0xe8, offset 0x4df
- {value: 0x0010, lo: 0x80, hi: 0x9e},
- {value: 0x0010, lo: 0xa0, hi: 0xa9},
- // Block 0xe9, offset 0x4e1
- {value: 0x0010, lo: 0x90, hi: 0xad},
- {value: 0x0034, lo: 0xb0, hi: 0xb4},
- // Block 0xea, offset 0x4e3
- {value: 0x0010, lo: 0x80, hi: 0xaf},
- {value: 0x0024, lo: 0xb0, hi: 0xb6},
- // Block 0xeb, offset 0x4e5
- {value: 0x0014, lo: 0x80, hi: 0x83},
- {value: 0x0010, lo: 0x90, hi: 0x99},
- {value: 0x0010, lo: 0xa3, hi: 0xb7},
- {value: 0x0010, lo: 0xbd, hi: 0xbf},
- // Block 0xec, offset 0x4e9
- {value: 0x0010, lo: 0x80, hi: 0x8f},
- // Block 0xed, offset 0x4ea
- {value: 0x0010, lo: 0x80, hi: 0x84},
- {value: 0x0010, lo: 0x90, hi: 0xbe},
- // Block 0xee, offset 0x4ec
- {value: 0x0014, lo: 0x8f, hi: 0x9f},
- // Block 0xef, offset 0x4ed
- {value: 0x0014, lo: 0xa0, hi: 0xa1},
- // Block 0xf0, offset 0x4ee
- {value: 0x0010, lo: 0x80, hi: 0xaa},
- {value: 0x0010, lo: 0xb0, hi: 0xbc},
- // Block 0xf1, offset 0x4f0
- {value: 0x0010, lo: 0x80, hi: 0x88},
- {value: 0x0010, lo: 0x90, hi: 0x99},
- {value: 0x0014, lo: 0x9d, hi: 0x9d},
- {value: 0x0034, lo: 0x9e, hi: 0x9e},
- {value: 0x0014, lo: 0xa0, hi: 0xa3},
- // Block 0xf2, offset 0x4f5
- {value: 0x0030, lo: 0xa5, hi: 0xa6},
- {value: 0x0034, lo: 0xa7, hi: 0xa9},
- {value: 0x0030, lo: 0xad, hi: 0xb2},
- {value: 0x0014, lo: 0xb3, hi: 0xba},
- {value: 0x0034, lo: 0xbb, hi: 0xbf},
- // Block 0xf3, offset 0x4fa
- {value: 0x0034, lo: 0x80, hi: 0x82},
- {value: 0x0024, lo: 0x85, hi: 0x89},
- {value: 0x0034, lo: 0x8a, hi: 0x8b},
- {value: 0x0024, lo: 0xaa, hi: 0xad},
- // Block 0xf4, offset 0x4fe
- {value: 0x0024, lo: 0x82, hi: 0x84},
- // Block 0xf5, offset 0x4ff
- {value: 0x0013, lo: 0x80, hi: 0x99},
- {value: 0x0012, lo: 0x9a, hi: 0xb3},
- {value: 0x0013, lo: 0xb4, hi: 0xbf},
- // Block 0xf6, offset 0x502
- {value: 0x0013, lo: 0x80, hi: 0x8d},
- {value: 0x0012, lo: 0x8e, hi: 0x94},
- {value: 0x0012, lo: 0x96, hi: 0xa7},
- {value: 0x0013, lo: 0xa8, hi: 0xbf},
- // Block 0xf7, offset 0x506
- {value: 0x0013, lo: 0x80, hi: 0x81},
- {value: 0x0012, lo: 0x82, hi: 0x9b},
- {value: 0x0013, lo: 0x9c, hi: 0x9c},
- {value: 0x0013, lo: 0x9e, hi: 0x9f},
- {value: 0x0013, lo: 0xa2, hi: 0xa2},
- {value: 0x0013, lo: 0xa5, hi: 0xa6},
- {value: 0x0013, lo: 0xa9, hi: 0xac},
- {value: 0x0013, lo: 0xae, hi: 0xb5},
- {value: 0x0012, lo: 0xb6, hi: 0xb9},
- {value: 0x0012, lo: 0xbb, hi: 0xbb},
- {value: 0x0012, lo: 0xbd, hi: 0xbf},
- // Block 0xf8, offset 0x511
- {value: 0x0012, lo: 0x80, hi: 0x83},
- {value: 0x0012, lo: 0x85, hi: 0x8f},
- {value: 0x0013, lo: 0x90, hi: 0xa9},
- {value: 0x0012, lo: 0xaa, hi: 0xbf},
- // Block 0xf9, offset 0x515
- {value: 0x0012, lo: 0x80, hi: 0x83},
- {value: 0x0013, lo: 0x84, hi: 0x85},
- {value: 0x0013, lo: 0x87, hi: 0x8a},
- {value: 0x0013, lo: 0x8d, hi: 0x94},
- {value: 0x0013, lo: 0x96, hi: 0x9c},
- {value: 0x0012, lo: 0x9e, hi: 0xb7},
- {value: 0x0013, lo: 0xb8, hi: 0xb9},
- {value: 0x0013, lo: 0xbb, hi: 0xbe},
- // Block 0xfa, offset 0x51d
- {value: 0x0013, lo: 0x80, hi: 0x84},
- {value: 0x0013, lo: 0x86, hi: 0x86},
- {value: 0x0013, lo: 0x8a, hi: 0x90},
- {value: 0x0012, lo: 0x92, hi: 0xab},
- {value: 0x0013, lo: 0xac, hi: 0xbf},
- // Block 0xfb, offset 0x522
- {value: 0x0013, lo: 0x80, hi: 0x85},
- {value: 0x0012, lo: 0x86, hi: 0x9f},
- {value: 0x0013, lo: 0xa0, hi: 0xb9},
- {value: 0x0012, lo: 0xba, hi: 0xbf},
- // Block 0xfc, offset 0x526
- {value: 0x0012, lo: 0x80, hi: 0x93},
- {value: 0x0013, lo: 0x94, hi: 0xad},
- {value: 0x0012, lo: 0xae, hi: 0xbf},
- // Block 0xfd, offset 0x529
- {value: 0x0012, lo: 0x80, hi: 0x87},
- {value: 0x0013, lo: 0x88, hi: 0xa1},
- {value: 0x0012, lo: 0xa2, hi: 0xbb},
- {value: 0x0013, lo: 0xbc, hi: 0xbf},
- // Block 0xfe, offset 0x52d
- {value: 0x0013, lo: 0x80, hi: 0x95},
- {value: 0x0012, lo: 0x96, hi: 0xaf},
- {value: 0x0013, lo: 0xb0, hi: 0xbf},
- // Block 0xff, offset 0x530
- {value: 0x0013, lo: 0x80, hi: 0x89},
- {value: 0x0012, lo: 0x8a, hi: 0xa5},
- {value: 0x0013, lo: 0xa8, hi: 0xbf},
- // Block 0x100, offset 0x533
- {value: 0x0013, lo: 0x80, hi: 0x80},
- {value: 0x0012, lo: 0x82, hi: 0x9a},
- {value: 0x0012, lo: 0x9c, hi: 0xa1},
- {value: 0x0013, lo: 0xa2, hi: 0xba},
- {value: 0x0012, lo: 0xbc, hi: 0xbf},
- // Block 0x101, offset 0x538
- {value: 0x0012, lo: 0x80, hi: 0x94},
- {value: 0x0012, lo: 0x96, hi: 0x9b},
- {value: 0x0013, lo: 0x9c, hi: 0xb4},
- {value: 0x0012, lo: 0xb6, hi: 0xbf},
- // Block 0x102, offset 0x53c
- {value: 0x0012, lo: 0x80, hi: 0x8e},
- {value: 0x0012, lo: 0x90, hi: 0x95},
- {value: 0x0013, lo: 0x96, hi: 0xae},
- {value: 0x0012, lo: 0xb0, hi: 0xbf},
- // Block 0x103, offset 0x540
- {value: 0x0012, lo: 0x80, hi: 0x88},
- {value: 0x0012, lo: 0x8a, hi: 0x8f},
- {value: 0x0013, lo: 0x90, hi: 0xa8},
- {value: 0x0012, lo: 0xaa, hi: 0xbf},
- // Block 0x104, offset 0x544
- {value: 0x0012, lo: 0x80, hi: 0x82},
- {value: 0x0012, lo: 0x84, hi: 0x89},
- {value: 0x0017, lo: 0x8a, hi: 0x8b},
- {value: 0x0010, lo: 0x8e, hi: 0xbf},
- // Block 0x105, offset 0x548
- {value: 0x0014, lo: 0x80, hi: 0xb6},
- {value: 0x0014, lo: 0xbb, hi: 0xbf},
- // Block 0x106, offset 0x54a
- {value: 0x0014, lo: 0x80, hi: 0xac},
- {value: 0x0014, lo: 0xb5, hi: 0xb5},
- // Block 0x107, offset 0x54c
- {value: 0x0014, lo: 0x84, hi: 0x84},
- {value: 0x0014, lo: 0x9b, hi: 0x9f},
- {value: 0x0014, lo: 0xa1, hi: 0xaf},
- // Block 0x108, offset 0x54f
- {value: 0x0024, lo: 0x80, hi: 0x86},
- {value: 0x0024, lo: 0x88, hi: 0x98},
- {value: 0x0024, lo: 0x9b, hi: 0xa1},
- {value: 0x0024, lo: 0xa3, hi: 0xa4},
- {value: 0x0024, lo: 0xa6, hi: 0xaa},
- // Block 0x109, offset 0x554
- {value: 0x0010, lo: 0x80, hi: 0x84},
- {value: 0x0034, lo: 0x90, hi: 0x96},
- // Block 0x10a, offset 0x556
- {value: 0xb552, lo: 0x80, hi: 0x81},
- {value: 0xb852, lo: 0x82, hi: 0x83},
- {value: 0x0024, lo: 0x84, hi: 0x89},
- {value: 0x0034, lo: 0x8a, hi: 0x8a},
- {value: 0x0010, lo: 0x90, hi: 0x99},
- // Block 0x10b, offset 0x55b
- {value: 0x0010, lo: 0x80, hi: 0x83},
- {value: 0x0010, lo: 0x85, hi: 0x9f},
- {value: 0x0010, lo: 0xa1, hi: 0xa2},
- {value: 0x0010, lo: 0xa4, hi: 0xa4},
- {value: 0x0010, lo: 0xa7, hi: 0xa7},
- {value: 0x0010, lo: 0xa9, hi: 0xb2},
- {value: 0x0010, lo: 0xb4, hi: 0xb7},
- {value: 0x0010, lo: 0xb9, hi: 0xb9},
- {value: 0x0010, lo: 0xbb, hi: 0xbb},
- // Block 0x10c, offset 0x564
- {value: 0x0010, lo: 0x80, hi: 0x89},
- {value: 0x0010, lo: 0x8b, hi: 0x9b},
- {value: 0x0010, lo: 0xa1, hi: 0xa3},
- {value: 0x0010, lo: 0xa5, hi: 0xa9},
- {value: 0x0010, lo: 0xab, hi: 0xbb},
- // Block 0x10d, offset 0x569
- {value: 0x0013, lo: 0xb0, hi: 0xbf},
- // Block 0x10e, offset 0x56a
- {value: 0x0013, lo: 0x80, hi: 0x89},
- {value: 0x0013, lo: 0x90, hi: 0xa9},
- {value: 0x0013, lo: 0xb0, hi: 0xbf},
- // Block 0x10f, offset 0x56d
- {value: 0x0013, lo: 0x80, hi: 0x89},
- // Block 0x110, offset 0x56e
- {value: 0x0004, lo: 0xbb, hi: 0xbf},
- // Block 0x111, offset 0x56f
- {value: 0x0014, lo: 0x81, hi: 0x81},
- {value: 0x0014, lo: 0xa0, hi: 0xbf},
- // Block 0x112, offset 0x571
- {value: 0x0014, lo: 0x80, hi: 0xbf},
- // Block 0x113, offset 0x572
- {value: 0x0014, lo: 0x80, hi: 0xaf},
-}
-
-// Total table size 13961 bytes (13KiB); checksum: 4CC48DA3
diff --git a/vendor/golang.org/x/text/cases/tables10.0.0_test.go b/vendor/golang.org/x/text/cases/tables10.0.0_test.go
deleted file mode 100644
index c73c9795f..000000000
--- a/vendor/golang.org/x/text/cases/tables10.0.0_test.go
+++ /dev/null
@@ -1,1160 +0,0 @@
-// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT.
-
-// +build go1.10
-
-package cases
-
-var (
- caseIgnorable = map[rune]bool{
- 0x0027: true,
- 0x002e: true,
- 0x003a: true,
- 0x00b7: true,
- 0x0387: true,
- 0x05f4: true,
- 0x2018: true,
- 0x2019: true,
- 0x2024: true,
- 0x2027: true,
- 0xfe13: true,
- 0xfe52: true,
- 0xfe55: true,
- 0xff07: true,
- 0xff0e: true,
- 0xff1a: true,
- }
-
- special = map[rune]struct{ toLower, toTitle, toUpper string }{
- 0x00df: {"ß", "Ss", "SS"},
- 0x0130: {"i̇", "İ", "İ"},
- 0xfb00: {"ff", "Ff", "FF"},
- 0xfb01: {"fi", "Fi", "FI"},
- 0xfb02: {"fl", "Fl", "FL"},
- 0xfb03: {"ffi", "Ffi", "FFI"},
- 0xfb04: {"ffl", "Ffl", "FFL"},
- 0xfb05: {"ſt", "St", "ST"},
- 0xfb06: {"st", "St", "ST"},
- 0x0587: {"և", "Եւ", "ԵՒ"},
- 0xfb13: {"ﬓ", "Մն", "ՄՆ"},
- 0xfb14: {"ﬔ", "Մե", "ՄԵ"},
- 0xfb15: {"ﬕ", "Մի", "ՄԻ"},
- 0xfb16: {"ﬖ", "Վն", "ՎՆ"},
- 0xfb17: {"ﬗ", "Մխ", "ՄԽ"},
- 0x0149: {"ʼn", "ʼN", "ʼN"},
- 0x0390: {"ΐ", "Ϊ́", "Ϊ́"},
- 0x03b0: {"ΰ", "Ϋ́", "Ϋ́"},
- 0x01f0: {"ǰ", "J̌", "J̌"},
- 0x1e96: {"ẖ", "H̱", "H̱"},
- 0x1e97: {"ẗ", "T̈", "T̈"},
- 0x1e98: {"ẘ", "W̊", "W̊"},
- 0x1e99: {"ẙ", "Y̊", "Y̊"},
- 0x1e9a: {"ẚ", "Aʾ", "Aʾ"},
- 0x1f50: {"ὐ", "Υ̓", "Υ̓"},
- 0x1f52: {"ὒ", "Υ̓̀", "Υ̓̀"},
- 0x1f54: {"ὔ", "Υ̓́", "Υ̓́"},
- 0x1f56: {"ὖ", "Υ̓͂", "Υ̓͂"},
- 0x1fb6: {"ᾶ", "Α͂", "Α͂"},
- 0x1fc6: {"ῆ", "Η͂", "Η͂"},
- 0x1fd2: {"ῒ", "Ϊ̀", "Ϊ̀"},
- 0x1fd3: {"ΐ", "Ϊ́", "Ϊ́"},
- 0x1fd6: {"ῖ", "Ι͂", "Ι͂"},
- 0x1fd7: {"ῗ", "Ϊ͂", "Ϊ͂"},
- 0x1fe2: {"ῢ", "Ϋ̀", "Ϋ̀"},
- 0x1fe3: {"ΰ", "Ϋ́", "Ϋ́"},
- 0x1fe4: {"ῤ", "Ρ̓", "Ρ̓"},
- 0x1fe6: {"ῦ", "Υ͂", "Υ͂"},
- 0x1fe7: {"ῧ", "Ϋ͂", "Ϋ͂"},
- 0x1ff6: {"ῶ", "Ω͂", "Ω͂"},
- 0x1f80: {"ᾀ", "ᾈ", "ἈΙ"},
- 0x1f81: {"ᾁ", "ᾉ", "ἉΙ"},
- 0x1f82: {"ᾂ", "ᾊ", "ἊΙ"},
- 0x1f83: {"ᾃ", "ᾋ", "ἋΙ"},
- 0x1f84: {"ᾄ", "ᾌ", "ἌΙ"},
- 0x1f85: {"ᾅ", "ᾍ", "ἍΙ"},
- 0x1f86: {"ᾆ", "ᾎ", "ἎΙ"},
- 0x1f87: {"ᾇ", "ᾏ", "ἏΙ"},
- 0x1f88: {"ᾀ", "ᾈ", "ἈΙ"},
- 0x1f89: {"ᾁ", "ᾉ", "ἉΙ"},
- 0x1f8a: {"ᾂ", "ᾊ", "ἊΙ"},
- 0x1f8b: {"ᾃ", "ᾋ", "ἋΙ"},
- 0x1f8c: {"ᾄ", "ᾌ", "ἌΙ"},
- 0x1f8d: {"ᾅ", "ᾍ", "ἍΙ"},
- 0x1f8e: {"ᾆ", "ᾎ", "ἎΙ"},
- 0x1f8f: {"ᾇ", "ᾏ", "ἏΙ"},
- 0x1f90: {"ᾐ", "ᾘ", "ἨΙ"},
- 0x1f91: {"ᾑ", "ᾙ", "ἩΙ"},
- 0x1f92: {"ᾒ", "ᾚ", "ἪΙ"},
- 0x1f93: {"ᾓ", "ᾛ", "ἫΙ"},
- 0x1f94: {"ᾔ", "ᾜ", "ἬΙ"},
- 0x1f95: {"ᾕ", "ᾝ", "ἭΙ"},
- 0x1f96: {"ᾖ", "ᾞ", "ἮΙ"},
- 0x1f97: {"ᾗ", "ᾟ", "ἯΙ"},
- 0x1f98: {"ᾐ", "ᾘ", "ἨΙ"},
- 0x1f99: {"ᾑ", "ᾙ", "ἩΙ"},
- 0x1f9a: {"ᾒ", "ᾚ", "ἪΙ"},
- 0x1f9b: {"ᾓ", "ᾛ", "ἫΙ"},
- 0x1f9c: {"ᾔ", "ᾜ", "ἬΙ"},
- 0x1f9d: {"ᾕ", "ᾝ", "ἭΙ"},
- 0x1f9e: {"ᾖ", "ᾞ", "ἮΙ"},
- 0x1f9f: {"ᾗ", "ᾟ", "ἯΙ"},
- 0x1fa0: {"ᾠ", "ᾨ", "ὨΙ"},
- 0x1fa1: {"ᾡ", "ᾩ", "ὩΙ"},
- 0x1fa2: {"ᾢ", "ᾪ", "ὪΙ"},
- 0x1fa3: {"ᾣ", "ᾫ", "ὫΙ"},
- 0x1fa4: {"ᾤ", "ᾬ", "ὬΙ"},
- 0x1fa5: {"ᾥ", "ᾭ", "ὭΙ"},
- 0x1fa6: {"ᾦ", "ᾮ", "ὮΙ"},
- 0x1fa7: {"ᾧ", "ᾯ", "ὯΙ"},
- 0x1fa8: {"ᾠ", "ᾨ", "ὨΙ"},
- 0x1fa9: {"ᾡ", "ᾩ", "ὩΙ"},
- 0x1faa: {"ᾢ", "ᾪ", "ὪΙ"},
- 0x1fab: {"ᾣ", "ᾫ", "ὫΙ"},
- 0x1fac: {"ᾤ", "ᾬ", "ὬΙ"},
- 0x1fad: {"ᾥ", "ᾭ", "ὭΙ"},
- 0x1fae: {"ᾦ", "ᾮ", "ὮΙ"},
- 0x1faf: {"ᾧ", "ᾯ", "ὯΙ"},
- 0x1fb3: {"ᾳ", "ᾼ", "ΑΙ"},
- 0x1fbc: {"ᾳ", "ᾼ", "ΑΙ"},
- 0x1fc3: {"ῃ", "ῌ", "ΗΙ"},
- 0x1fcc: {"ῃ", "ῌ", "ΗΙ"},
- 0x1ff3: {"ῳ", "ῼ", "ΩΙ"},
- 0x1ffc: {"ῳ", "ῼ", "ΩΙ"},
- 0x1fb2: {"ᾲ", "Ὰͅ", "ᾺΙ"},
- 0x1fb4: {"ᾴ", "Άͅ", "ΆΙ"},
- 0x1fc2: {"ῂ", "Ὴͅ", "ῊΙ"},
- 0x1fc4: {"ῄ", "Ήͅ", "ΉΙ"},
- 0x1ff2: {"ῲ", "Ὼͅ", "ῺΙ"},
- 0x1ff4: {"ῴ", "Ώͅ", "ΏΙ"},
- 0x1fb7: {"ᾷ", "ᾼ͂", "Α͂Ι"},
- 0x1fc7: {"ῇ", "ῌ͂", "Η͂Ι"},
- 0x1ff7: {"ῷ", "ῼ͂", "Ω͂Ι"},
- }
-
- foldMap = map[rune]struct{ simple, full, special string }{
- 0x0049: {"", "", "ı"},
- 0x00b5: {"μ", "μ", ""},
- 0x00df: {"", "ss", ""},
- 0x0130: {"", "i̇", "i"},
- 0x0149: {"", "ʼn", ""},
- 0x017f: {"s", "s", ""},
- 0x01f0: {"", "ǰ", ""},
- 0x0345: {"ι", "ι", ""},
- 0x0390: {"", "ΐ", ""},
- 0x03b0: {"", "ΰ", ""},
- 0x03c2: {"σ", "σ", ""},
- 0x03d0: {"β", "β", ""},
- 0x03d1: {"θ", "θ", ""},
- 0x03d5: {"φ", "φ", ""},
- 0x03d6: {"π", "π", ""},
- 0x03f0: {"κ", "κ", ""},
- 0x03f1: {"ρ", "ρ", ""},
- 0x03f5: {"ε", "ε", ""},
- 0x0587: {"", "եւ", ""},
- 0x13f8: {"Ᏸ", "Ᏸ", ""},
- 0x13f9: {"Ᏹ", "Ᏹ", ""},
- 0x13fa: {"Ᏺ", "Ᏺ", ""},
- 0x13fb: {"Ᏻ", "Ᏻ", ""},
- 0x13fc: {"Ᏼ", "Ᏼ", ""},
- 0x13fd: {"Ᏽ", "Ᏽ", ""},
- 0x1c80: {"в", "в", ""},
- 0x1c81: {"д", "д", ""},
- 0x1c82: {"о", "о", ""},
- 0x1c83: {"с", "с", ""},
- 0x1c84: {"т", "т", ""},
- 0x1c85: {"т", "т", ""},
- 0x1c86: {"ъ", "ъ", ""},
- 0x1c87: {"ѣ", "ѣ", ""},
- 0x1c88: {"ꙋ", "ꙋ", ""},
- 0x1e96: {"", "ẖ", ""},
- 0x1e97: {"", "ẗ", ""},
- 0x1e98: {"", "ẘ", ""},
- 0x1e99: {"", "ẙ", ""},
- 0x1e9a: {"", "aʾ", ""},
- 0x1e9b: {"ṡ", "ṡ", ""},
- 0x1e9e: {"", "ss", ""},
- 0x1f50: {"", "ὐ", ""},
- 0x1f52: {"", "ὒ", ""},
- 0x1f54: {"", "ὔ", ""},
- 0x1f56: {"", "ὖ", ""},
- 0x1f80: {"", "ἀι", ""},
- 0x1f81: {"", "ἁι", ""},
- 0x1f82: {"", "ἂι", ""},
- 0x1f83: {"", "ἃι", ""},
- 0x1f84: {"", "ἄι", ""},
- 0x1f85: {"", "ἅι", ""},
- 0x1f86: {"", "ἆι", ""},
- 0x1f87: {"", "ἇι", ""},
- 0x1f88: {"", "ἀι", ""},
- 0x1f89: {"", "ἁι", ""},
- 0x1f8a: {"", "ἂι", ""},
- 0x1f8b: {"", "ἃι", ""},
- 0x1f8c: {"", "ἄι", ""},
- 0x1f8d: {"", "ἅι", ""},
- 0x1f8e: {"", "ἆι", ""},
- 0x1f8f: {"", "ἇι", ""},
- 0x1f90: {"", "ἠι", ""},
- 0x1f91: {"", "ἡι", ""},
- 0x1f92: {"", "ἢι", ""},
- 0x1f93: {"", "ἣι", ""},
- 0x1f94: {"", "ἤι", ""},
- 0x1f95: {"", "ἥι", ""},
- 0x1f96: {"", "ἦι", ""},
- 0x1f97: {"", "ἧι", ""},
- 0x1f98: {"", "ἠι", ""},
- 0x1f99: {"", "ἡι", ""},
- 0x1f9a: {"", "ἢι", ""},
- 0x1f9b: {"", "ἣι", ""},
- 0x1f9c: {"", "ἤι", ""},
- 0x1f9d: {"", "ἥι", ""},
- 0x1f9e: {"", "ἦι", ""},
- 0x1f9f: {"", "ἧι", ""},
- 0x1fa0: {"", "ὠι", ""},
- 0x1fa1: {"", "ὡι", ""},
- 0x1fa2: {"", "ὢι", ""},
- 0x1fa3: {"", "ὣι", ""},
- 0x1fa4: {"", "ὤι", ""},
- 0x1fa5: {"", "ὥι", ""},
- 0x1fa6: {"", "ὦι", ""},
- 0x1fa7: {"", "ὧι", ""},
- 0x1fa8: {"", "ὠι", ""},
- 0x1fa9: {"", "ὡι", ""},
- 0x1faa: {"", "ὢι", ""},
- 0x1fab: {"", "ὣι", ""},
- 0x1fac: {"", "ὤι", ""},
- 0x1fad: {"", "ὥι", ""},
- 0x1fae: {"", "ὦι", ""},
- 0x1faf: {"", "ὧι", ""},
- 0x1fb2: {"", "ὰι", ""},
- 0x1fb3: {"", "αι", ""},
- 0x1fb4: {"", "άι", ""},
- 0x1fb6: {"", "ᾶ", ""},
- 0x1fb7: {"", "ᾶι", ""},
- 0x1fbc: {"", "αι", ""},
- 0x1fbe: {"ι", "ι", ""},
- 0x1fc2: {"", "ὴι", ""},
- 0x1fc3: {"", "ηι", ""},
- 0x1fc4: {"", "ήι", ""},
- 0x1fc6: {"", "ῆ", ""},
- 0x1fc7: {"", "ῆι", ""},
- 0x1fcc: {"", "ηι", ""},
- 0x1fd2: {"", "ῒ", ""},
- 0x1fd3: {"", "ΐ", ""},
- 0x1fd6: {"", "ῖ", ""},
- 0x1fd7: {"", "ῗ", ""},
- 0x1fe2: {"", "ῢ", ""},
- 0x1fe3: {"", "ΰ", ""},
- 0x1fe4: {"", "ῤ", ""},
- 0x1fe6: {"", "ῦ", ""},
- 0x1fe7: {"", "ῧ", ""},
- 0x1ff2: {"", "ὼι", ""},
- 0x1ff3: {"", "ωι", ""},
- 0x1ff4: {"", "ώι", ""},
- 0x1ff6: {"", "ῶ", ""},
- 0x1ff7: {"", "ῶι", ""},
- 0x1ffc: {"", "ωι", ""},
- 0xab70: {"Ꭰ", "Ꭰ", ""},
- 0xab71: {"Ꭱ", "Ꭱ", ""},
- 0xab72: {"Ꭲ", "Ꭲ", ""},
- 0xab73: {"Ꭳ", "Ꭳ", ""},
- 0xab74: {"Ꭴ", "Ꭴ", ""},
- 0xab75: {"Ꭵ", "Ꭵ", ""},
- 0xab76: {"Ꭶ", "Ꭶ", ""},
- 0xab77: {"Ꭷ", "Ꭷ", ""},
- 0xab78: {"Ꭸ", "Ꭸ", ""},
- 0xab79: {"Ꭹ", "Ꭹ", ""},
- 0xab7a: {"Ꭺ", "Ꭺ", ""},
- 0xab7b: {"Ꭻ", "Ꭻ", ""},
- 0xab7c: {"Ꭼ", "Ꭼ", ""},
- 0xab7d: {"Ꭽ", "Ꭽ", ""},
- 0xab7e: {"Ꭾ", "Ꭾ", ""},
- 0xab7f: {"Ꭿ", "Ꭿ", ""},
- 0xab80: {"Ꮀ", "Ꮀ", ""},
- 0xab81: {"Ꮁ", "Ꮁ", ""},
- 0xab82: {"Ꮂ", "Ꮂ", ""},
- 0xab83: {"Ꮃ", "Ꮃ", ""},
- 0xab84: {"Ꮄ", "Ꮄ", ""},
- 0xab85: {"Ꮅ", "Ꮅ", ""},
- 0xab86: {"Ꮆ", "Ꮆ", ""},
- 0xab87: {"Ꮇ", "Ꮇ", ""},
- 0xab88: {"Ꮈ", "Ꮈ", ""},
- 0xab89: {"Ꮉ", "Ꮉ", ""},
- 0xab8a: {"Ꮊ", "Ꮊ", ""},
- 0xab8b: {"Ꮋ", "Ꮋ", ""},
- 0xab8c: {"Ꮌ", "Ꮌ", ""},
- 0xab8d: {"Ꮍ", "Ꮍ", ""},
- 0xab8e: {"Ꮎ", "Ꮎ", ""},
- 0xab8f: {"Ꮏ", "Ꮏ", ""},
- 0xab90: {"Ꮐ", "Ꮐ", ""},
- 0xab91: {"Ꮑ", "Ꮑ", ""},
- 0xab92: {"Ꮒ", "Ꮒ", ""},
- 0xab93: {"Ꮓ", "Ꮓ", ""},
- 0xab94: {"Ꮔ", "Ꮔ", ""},
- 0xab95: {"Ꮕ", "Ꮕ", ""},
- 0xab96: {"Ꮖ", "Ꮖ", ""},
- 0xab97: {"Ꮗ", "Ꮗ", ""},
- 0xab98: {"Ꮘ", "Ꮘ", ""},
- 0xab99: {"Ꮙ", "Ꮙ", ""},
- 0xab9a: {"Ꮚ", "Ꮚ", ""},
- 0xab9b: {"Ꮛ", "Ꮛ", ""},
- 0xab9c: {"Ꮜ", "Ꮜ", ""},
- 0xab9d: {"Ꮝ", "Ꮝ", ""},
- 0xab9e: {"Ꮞ", "Ꮞ", ""},
- 0xab9f: {"Ꮟ", "Ꮟ", ""},
- 0xaba0: {"Ꮠ", "Ꮠ", ""},
- 0xaba1: {"Ꮡ", "Ꮡ", ""},
- 0xaba2: {"Ꮢ", "Ꮢ", ""},
- 0xaba3: {"Ꮣ", "Ꮣ", ""},
- 0xaba4: {"Ꮤ", "Ꮤ", ""},
- 0xaba5: {"Ꮥ", "Ꮥ", ""},
- 0xaba6: {"Ꮦ", "Ꮦ", ""},
- 0xaba7: {"Ꮧ", "Ꮧ", ""},
- 0xaba8: {"Ꮨ", "Ꮨ", ""},
- 0xaba9: {"Ꮩ", "Ꮩ", ""},
- 0xabaa: {"Ꮪ", "Ꮪ", ""},
- 0xabab: {"Ꮫ", "Ꮫ", ""},
- 0xabac: {"Ꮬ", "Ꮬ", ""},
- 0xabad: {"Ꮭ", "Ꮭ", ""},
- 0xabae: {"Ꮮ", "Ꮮ", ""},
- 0xabaf: {"Ꮯ", "Ꮯ", ""},
- 0xabb0: {"Ꮰ", "Ꮰ", ""},
- 0xabb1: {"Ꮱ", "Ꮱ", ""},
- 0xabb2: {"Ꮲ", "Ꮲ", ""},
- 0xabb3: {"Ꮳ", "Ꮳ", ""},
- 0xabb4: {"Ꮴ", "Ꮴ", ""},
- 0xabb5: {"Ꮵ", "Ꮵ", ""},
- 0xabb6: {"Ꮶ", "Ꮶ", ""},
- 0xabb7: {"Ꮷ", "Ꮷ", ""},
- 0xabb8: {"Ꮸ", "Ꮸ", ""},
- 0xabb9: {"Ꮹ", "Ꮹ", ""},
- 0xabba: {"Ꮺ", "Ꮺ", ""},
- 0xabbb: {"Ꮻ", "Ꮻ", ""},
- 0xabbc: {"Ꮼ", "Ꮼ", ""},
- 0xabbd: {"Ꮽ", "Ꮽ", ""},
- 0xabbe: {"Ꮾ", "Ꮾ", ""},
- 0xabbf: {"Ꮿ", "Ꮿ", ""},
- 0xfb00: {"", "ff", ""},
- 0xfb01: {"", "fi", ""},
- 0xfb02: {"", "fl", ""},
- 0xfb03: {"", "ffi", ""},
- 0xfb04: {"", "ffl", ""},
- 0xfb05: {"", "st", ""},
- 0xfb06: {"", "st", ""},
- 0xfb13: {"", "մն", ""},
- 0xfb14: {"", "մե", ""},
- 0xfb15: {"", "մի", ""},
- 0xfb16: {"", "վն", ""},
- 0xfb17: {"", "մխ", ""},
- }
-
- breakProp = []struct{ lo, hi rune }{
- {0x0, 0x26},
- {0x28, 0x2d},
- {0x2f, 0x2f},
- {0x3b, 0x40},
- {0x5b, 0x5e},
- {0x60, 0x60},
- {0x7b, 0xa9},
- {0xab, 0xac},
- {0xae, 0xb4},
- {0xb6, 0xb6},
- {0xb8, 0xb9},
- {0xbb, 0xbf},
- {0xd7, 0xd7},
- {0xf7, 0xf7},
- {0x2d8, 0x2dd},
- {0x2e5, 0x2eb},
- {0x375, 0x375},
- {0x378, 0x379},
- {0x37e, 0x37e},
- {0x380, 0x385},
- {0x38b, 0x38b},
- {0x38d, 0x38d},
- {0x3a2, 0x3a2},
- {0x3f6, 0x3f6},
- {0x482, 0x482},
- {0x530, 0x530},
- {0x557, 0x558},
- {0x55a, 0x560},
- {0x588, 0x590},
- {0x5be, 0x5be},
- {0x5c0, 0x5c0},
- {0x5c3, 0x5c3},
- {0x5c6, 0x5c6},
- {0x5c8, 0x5cf},
- {0x5eb, 0x5ef},
- {0x5f5, 0x5ff},
- {0x606, 0x60f},
- {0x61b, 0x61b},
- {0x61d, 0x61f},
- {0x66a, 0x66a},
- {0x66c, 0x66d},
- {0x6d4, 0x6d4},
- {0x6de, 0x6de},
- {0x6e9, 0x6e9},
- {0x6fd, 0x6fe},
- {0x700, 0x70e},
- {0x74b, 0x74c},
- {0x7b2, 0x7bf},
- {0x7f6, 0x7f9},
- {0x7fb, 0x7ff},
- {0x82e, 0x83f},
- {0x85c, 0x85f},
- {0x86b, 0x89f},
- {0x8b5, 0x8b5},
- {0x8be, 0x8d3},
- {0x964, 0x965},
- {0x970, 0x970},
- {0x984, 0x984},
- {0x98d, 0x98e},
- {0x991, 0x992},
- {0x9a9, 0x9a9},
- {0x9b1, 0x9b1},
- {0x9b3, 0x9b5},
- {0x9ba, 0x9bb},
- {0x9c5, 0x9c6},
- {0x9c9, 0x9ca},
- {0x9cf, 0x9d6},
- {0x9d8, 0x9db},
- {0x9de, 0x9de},
- {0x9e4, 0x9e5},
- {0x9f2, 0x9fb},
- {0x9fd, 0xa00},
- {0xa04, 0xa04},
- {0xa0b, 0xa0e},
- {0xa11, 0xa12},
- {0xa29, 0xa29},
- {0xa31, 0xa31},
- {0xa34, 0xa34},
- {0xa37, 0xa37},
- {0xa3a, 0xa3b},
- {0xa3d, 0xa3d},
- {0xa43, 0xa46},
- {0xa49, 0xa4a},
- {0xa4e, 0xa50},
- {0xa52, 0xa58},
- {0xa5d, 0xa5d},
- {0xa5f, 0xa65},
- {0xa76, 0xa80},
- {0xa84, 0xa84},
- {0xa8e, 0xa8e},
- {0xa92, 0xa92},
- {0xaa9, 0xaa9},
- {0xab1, 0xab1},
- {0xab4, 0xab4},
- {0xaba, 0xabb},
- {0xac6, 0xac6},
- {0xaca, 0xaca},
- {0xace, 0xacf},
- {0xad1, 0xadf},
- {0xae4, 0xae5},
- {0xaf0, 0xaf8},
- {0xb00, 0xb00},
- {0xb04, 0xb04},
- {0xb0d, 0xb0e},
- {0xb11, 0xb12},
- {0xb29, 0xb29},
- {0xb31, 0xb31},
- {0xb34, 0xb34},
- {0xb3a, 0xb3b},
- {0xb45, 0xb46},
- {0xb49, 0xb4a},
- {0xb4e, 0xb55},
- {0xb58, 0xb5b},
- {0xb5e, 0xb5e},
- {0xb64, 0xb65},
- {0xb70, 0xb70},
- {0xb72, 0xb81},
- {0xb84, 0xb84},
- {0xb8b, 0xb8d},
- {0xb91, 0xb91},
- {0xb96, 0xb98},
- {0xb9b, 0xb9b},
- {0xb9d, 0xb9d},
- {0xba0, 0xba2},
- {0xba5, 0xba7},
- {0xbab, 0xbad},
- {0xbba, 0xbbd},
- {0xbc3, 0xbc5},
- {0xbc9, 0xbc9},
- {0xbce, 0xbcf},
- {0xbd1, 0xbd6},
- {0xbd8, 0xbe5},
- {0xbf0, 0xbff},
- {0xc04, 0xc04},
- {0xc0d, 0xc0d},
- {0xc11, 0xc11},
- {0xc29, 0xc29},
- {0xc3a, 0xc3c},
- {0xc45, 0xc45},
- {0xc49, 0xc49},
- {0xc4e, 0xc54},
- {0xc57, 0xc57},
- {0xc5b, 0xc5f},
- {0xc64, 0xc65},
- {0xc70, 0xc7f},
- {0xc84, 0xc84},
- {0xc8d, 0xc8d},
- {0xc91, 0xc91},
- {0xca9, 0xca9},
- {0xcb4, 0xcb4},
- {0xcba, 0xcbb},
- {0xcc5, 0xcc5},
- {0xcc9, 0xcc9},
- {0xcce, 0xcd4},
- {0xcd7, 0xcdd},
- {0xcdf, 0xcdf},
- {0xce4, 0xce5},
- {0xcf0, 0xcf0},
- {0xcf3, 0xcff},
- {0xd04, 0xd04},
- {0xd0d, 0xd0d},
- {0xd11, 0xd11},
- {0xd45, 0xd45},
- {0xd49, 0xd49},
- {0xd4f, 0xd53},
- {0xd58, 0xd5e},
- {0xd64, 0xd65},
- {0xd70, 0xd79},
- {0xd80, 0xd81},
- {0xd84, 0xd84},
- {0xd97, 0xd99},
- {0xdb2, 0xdb2},
- {0xdbc, 0xdbc},
- {0xdbe, 0xdbf},
- {0xdc7, 0xdc9},
- {0xdcb, 0xdce},
- {0xdd5, 0xdd5},
- {0xdd7, 0xdd7},
- {0xde0, 0xde5},
- {0xdf0, 0xdf1},
- {0xdf4, 0xe30},
- {0xe32, 0xe33},
- {0xe3b, 0xe46},
- {0xe4f, 0xe4f},
- {0xe5a, 0xeb0},
- {0xeb2, 0xeb3},
- {0xeba, 0xeba},
- {0xebd, 0xec7},
- {0xece, 0xecf},
- {0xeda, 0xeff},
- {0xf01, 0xf17},
- {0xf1a, 0xf1f},
- {0xf2a, 0xf34},
- {0xf36, 0xf36},
- {0xf38, 0xf38},
- {0xf3a, 0xf3d},
- {0xf48, 0xf48},
- {0xf6d, 0xf70},
- {0xf85, 0xf85},
- {0xf98, 0xf98},
- {0xfbd, 0xfc5},
- {0xfc7, 0x102a},
- {0x103f, 0x103f},
- {0x104a, 0x1055},
- {0x105a, 0x105d},
- {0x1061, 0x1061},
- {0x1065, 0x1066},
- {0x106e, 0x1070},
- {0x1075, 0x1081},
- {0x108e, 0x108e},
- {0x109e, 0x109f},
- {0x10c6, 0x10c6},
- {0x10c8, 0x10cc},
- {0x10ce, 0x10cf},
- {0x10fb, 0x10fb},
- {0x1249, 0x1249},
- {0x124e, 0x124f},
- {0x1257, 0x1257},
- {0x1259, 0x1259},
- {0x125e, 0x125f},
- {0x1289, 0x1289},
- {0x128e, 0x128f},
- {0x12b1, 0x12b1},
- {0x12b6, 0x12b7},
- {0x12bf, 0x12bf},
- {0x12c1, 0x12c1},
- {0x12c6, 0x12c7},
- {0x12d7, 0x12d7},
- {0x1311, 0x1311},
- {0x1316, 0x1317},
- {0x135b, 0x135c},
- {0x1360, 0x137f},
- {0x1390, 0x139f},
- {0x13f6, 0x13f7},
- {0x13fe, 0x1400},
- {0x166d, 0x166e},
- {0x1680, 0x1680},
- {0x169b, 0x169f},
- {0x16eb, 0x16ed},
- {0x16f9, 0x16ff},
- {0x170d, 0x170d},
- {0x1715, 0x171f},
- {0x1735, 0x173f},
- {0x1754, 0x175f},
- {0x176d, 0x176d},
- {0x1771, 0x1771},
- {0x1774, 0x17b3},
- {0x17d4, 0x17dc},
- {0x17de, 0x17df},
- {0x17ea, 0x180a},
- {0x180f, 0x180f},
- {0x181a, 0x181f},
- {0x1878, 0x187f},
- {0x18ab, 0x18af},
- {0x18f6, 0x18ff},
- {0x191f, 0x191f},
- {0x192c, 0x192f},
- {0x193c, 0x1945},
- {0x1950, 0x19cf},
- {0x19da, 0x19ff},
- {0x1a1c, 0x1a54},
- {0x1a5f, 0x1a5f},
- {0x1a7d, 0x1a7e},
- {0x1a8a, 0x1a8f},
- {0x1a9a, 0x1aaf},
- {0x1abf, 0x1aff},
- {0x1b4c, 0x1b4f},
- {0x1b5a, 0x1b6a},
- {0x1b74, 0x1b7f},
- {0x1bf4, 0x1bff},
- {0x1c38, 0x1c3f},
- {0x1c4a, 0x1c4c},
- {0x1c7e, 0x1c7f},
- {0x1c89, 0x1ccf},
- {0x1cd3, 0x1cd3},
- {0x1cfa, 0x1cff},
- {0x1dfa, 0x1dfa},
- {0x1f16, 0x1f17},
- {0x1f1e, 0x1f1f},
- {0x1f46, 0x1f47},
- {0x1f4e, 0x1f4f},
- {0x1f58, 0x1f58},
- {0x1f5a, 0x1f5a},
- {0x1f5c, 0x1f5c},
- {0x1f5e, 0x1f5e},
- {0x1f7e, 0x1f7f},
- {0x1fb5, 0x1fb5},
- {0x1fbd, 0x1fbd},
- {0x1fbf, 0x1fc1},
- {0x1fc5, 0x1fc5},
- {0x1fcd, 0x1fcf},
- {0x1fd4, 0x1fd5},
- {0x1fdc, 0x1fdf},
- {0x1fed, 0x1ff1},
- {0x1ff5, 0x1ff5},
- {0x1ffd, 0x200b},
- {0x2010, 0x2017},
- {0x201a, 0x2023},
- {0x2025, 0x2026},
- {0x2028, 0x2029},
- {0x2030, 0x203e},
- {0x2041, 0x2053},
- {0x2055, 0x205f},
- {0x2065, 0x2065},
- {0x2070, 0x2070},
- {0x2072, 0x207e},
- {0x2080, 0x208f},
- {0x209d, 0x20cf},
- {0x20f1, 0x2101},
- {0x2103, 0x2106},
- {0x2108, 0x2109},
- {0x2114, 0x2114},
- {0x2116, 0x2118},
- {0x211e, 0x2123},
- {0x2125, 0x2125},
- {0x2127, 0x2127},
- {0x2129, 0x2129},
- {0x212e, 0x212e},
- {0x213a, 0x213b},
- {0x2140, 0x2144},
- {0x214a, 0x214d},
- {0x214f, 0x215f},
- {0x2189, 0x24b5},
- {0x24ea, 0x2bff},
- {0x2c2f, 0x2c2f},
- {0x2c5f, 0x2c5f},
- {0x2ce5, 0x2cea},
- {0x2cf4, 0x2cff},
- {0x2d26, 0x2d26},
- {0x2d28, 0x2d2c},
- {0x2d2e, 0x2d2f},
- {0x2d68, 0x2d6e},
- {0x2d70, 0x2d7e},
- {0x2d97, 0x2d9f},
- {0x2da7, 0x2da7},
- {0x2daf, 0x2daf},
- {0x2db7, 0x2db7},
- {0x2dbf, 0x2dbf},
- {0x2dc7, 0x2dc7},
- {0x2dcf, 0x2dcf},
- {0x2dd7, 0x2dd7},
- {0x2ddf, 0x2ddf},
- {0x2e00, 0x2e2e},
- {0x2e30, 0x3004},
- {0x3006, 0x3029},
- {0x3030, 0x303a},
- {0x303d, 0x3098},
- {0x309b, 0x3104},
- {0x312f, 0x3130},
- {0x318f, 0x319f},
- {0x31bb, 0x9fff},
- {0xa48d, 0xa4cf},
- {0xa4fe, 0xa4ff},
- {0xa60d, 0xa60f},
- {0xa62c, 0xa63f},
- {0xa673, 0xa673},
- {0xa67e, 0xa67e},
- {0xa6f2, 0xa716},
- {0xa7af, 0xa7af},
- {0xa7b8, 0xa7f6},
- {0xa828, 0xa83f},
- {0xa874, 0xa87f},
- {0xa8c6, 0xa8cf},
- {0xa8da, 0xa8df},
- {0xa8f8, 0xa8fa},
- {0xa8fc, 0xa8fc},
- {0xa8fe, 0xa8ff},
- {0xa92e, 0xa92f},
- {0xa954, 0xa95f},
- {0xa97d, 0xa97f},
- {0xa9c1, 0xa9ce},
- {0xa9da, 0xa9e4},
- {0xa9e6, 0xa9ef},
- {0xa9fa, 0xa9ff},
- {0xaa37, 0xaa3f},
- {0xaa4e, 0xaa4f},
- {0xaa5a, 0xaa7a},
- {0xaa7e, 0xaaaf},
- {0xaab1, 0xaab1},
- {0xaab5, 0xaab6},
- {0xaab9, 0xaabd},
- {0xaac0, 0xaac0},
- {0xaac2, 0xaadf},
- {0xaaf0, 0xaaf1},
- {0xaaf7, 0xab00},
- {0xab07, 0xab08},
- {0xab0f, 0xab10},
- {0xab17, 0xab1f},
- {0xab27, 0xab27},
- {0xab2f, 0xab2f},
- {0xab66, 0xab6f},
- {0xabeb, 0xabeb},
- {0xabee, 0xabef},
- {0xabfa, 0xabff},
- {0xd7a4, 0xd7af},
- {0xd7c7, 0xd7ca},
- {0xd7fc, 0xfaff},
- {0xfb07, 0xfb12},
- {0xfb18, 0xfb1c},
- {0xfb29, 0xfb29},
- {0xfb37, 0xfb37},
- {0xfb3d, 0xfb3d},
- {0xfb3f, 0xfb3f},
- {0xfb42, 0xfb42},
- {0xfb45, 0xfb45},
- {0xfbb2, 0xfbd2},
- {0xfd3e, 0xfd4f},
- {0xfd90, 0xfd91},
- {0xfdc8, 0xfdef},
- {0xfdfc, 0xfdff},
- {0xfe10, 0xfe12},
- {0xfe14, 0xfe1f},
- {0xfe30, 0xfe32},
- {0xfe35, 0xfe4c},
- {0xfe50, 0xfe51},
- {0xfe53, 0xfe54},
- {0xfe56, 0xfe6f},
- {0xfe75, 0xfe75},
- {0xfefd, 0xfefe},
- {0xff00, 0xff06},
- {0xff08, 0xff0d},
- {0xff0f, 0xff19},
- {0xff1b, 0xff20},
- {0xff3b, 0xff3e},
- {0xff40, 0xff40},
- {0xff5b, 0xff9d},
- {0xffbf, 0xffc1},
- {0xffc8, 0xffc9},
- {0xffd0, 0xffd1},
- {0xffd8, 0xffd9},
- {0xffdd, 0xfff8},
- {0xfffc, 0xffff},
- {0x1000c, 0x1000c},
- {0x10027, 0x10027},
- {0x1003b, 0x1003b},
- {0x1003e, 0x1003e},
- {0x1004e, 0x1004f},
- {0x1005e, 0x1007f},
- {0x100fb, 0x1013f},
- {0x10175, 0x101fc},
- {0x101fe, 0x1027f},
- {0x1029d, 0x1029f},
- {0x102d1, 0x102df},
- {0x102e1, 0x102ff},
- {0x10320, 0x1032c},
- {0x1034b, 0x1034f},
- {0x1037b, 0x1037f},
- {0x1039e, 0x1039f},
- {0x103c4, 0x103c7},
- {0x103d0, 0x103d0},
- {0x103d6, 0x103ff},
- {0x1049e, 0x1049f},
- {0x104aa, 0x104af},
- {0x104d4, 0x104d7},
- {0x104fc, 0x104ff},
- {0x10528, 0x1052f},
- {0x10564, 0x105ff},
- {0x10737, 0x1073f},
- {0x10756, 0x1075f},
- {0x10768, 0x107ff},
- {0x10806, 0x10807},
- {0x10809, 0x10809},
- {0x10836, 0x10836},
- {0x10839, 0x1083b},
- {0x1083d, 0x1083e},
- {0x10856, 0x1085f},
- {0x10877, 0x1087f},
- {0x1089f, 0x108df},
- {0x108f3, 0x108f3},
- {0x108f6, 0x108ff},
- {0x10916, 0x1091f},
- {0x1093a, 0x1097f},
- {0x109b8, 0x109bd},
- {0x109c0, 0x109ff},
- {0x10a04, 0x10a04},
- {0x10a07, 0x10a0b},
- {0x10a14, 0x10a14},
- {0x10a18, 0x10a18},
- {0x10a34, 0x10a37},
- {0x10a3b, 0x10a3e},
- {0x10a40, 0x10a5f},
- {0x10a7d, 0x10a7f},
- {0x10a9d, 0x10abf},
- {0x10ac8, 0x10ac8},
- {0x10ae7, 0x10aff},
- {0x10b36, 0x10b3f},
- {0x10b56, 0x10b5f},
- {0x10b73, 0x10b7f},
- {0x10b92, 0x10bff},
- {0x10c49, 0x10c7f},
- {0x10cb3, 0x10cbf},
- {0x10cf3, 0x10fff},
- {0x11047, 0x11065},
- {0x11070, 0x1107e},
- {0x110bb, 0x110bc},
- {0x110be, 0x110cf},
- {0x110e9, 0x110ef},
- {0x110fa, 0x110ff},
- {0x11135, 0x11135},
- {0x11140, 0x1114f},
- {0x11174, 0x11175},
- {0x11177, 0x1117f},
- {0x111c5, 0x111c9},
- {0x111cd, 0x111cf},
- {0x111db, 0x111db},
- {0x111dd, 0x111ff},
- {0x11212, 0x11212},
- {0x11238, 0x1123d},
- {0x1123f, 0x1127f},
- {0x11287, 0x11287},
- {0x11289, 0x11289},
- {0x1128e, 0x1128e},
- {0x1129e, 0x1129e},
- {0x112a9, 0x112af},
- {0x112eb, 0x112ef},
- {0x112fa, 0x112ff},
- {0x11304, 0x11304},
- {0x1130d, 0x1130e},
- {0x11311, 0x11312},
- {0x11329, 0x11329},
- {0x11331, 0x11331},
- {0x11334, 0x11334},
- {0x1133a, 0x1133b},
- {0x11345, 0x11346},
- {0x11349, 0x1134a},
- {0x1134e, 0x1134f},
- {0x11351, 0x11356},
- {0x11358, 0x1135c},
- {0x11364, 0x11365},
- {0x1136d, 0x1136f},
- {0x11375, 0x113ff},
- {0x1144b, 0x1144f},
- {0x1145a, 0x1147f},
- {0x114c6, 0x114c6},
- {0x114c8, 0x114cf},
- {0x114da, 0x1157f},
- {0x115b6, 0x115b7},
- {0x115c1, 0x115d7},
- {0x115de, 0x115ff},
- {0x11641, 0x11643},
- {0x11645, 0x1164f},
- {0x1165a, 0x1167f},
- {0x116b8, 0x116bf},
- {0x116ca, 0x1171c},
- {0x1172c, 0x1172f},
- {0x1173a, 0x1189f},
- {0x118ea, 0x118fe},
- {0x11900, 0x119ff},
- {0x11a3f, 0x11a46},
- {0x11a48, 0x11a4f},
- {0x11a84, 0x11a85},
- {0x11a9a, 0x11abf},
- {0x11af9, 0x11bff},
- {0x11c09, 0x11c09},
- {0x11c37, 0x11c37},
- {0x11c41, 0x11c4f},
- {0x11c5a, 0x11c71},
- {0x11c90, 0x11c91},
- {0x11ca8, 0x11ca8},
- {0x11cb7, 0x11cff},
- {0x11d07, 0x11d07},
- {0x11d0a, 0x11d0a},
- {0x11d37, 0x11d39},
- {0x11d3b, 0x11d3b},
- {0x11d3e, 0x11d3e},
- {0x11d48, 0x11d4f},
- {0x11d5a, 0x11fff},
- {0x1239a, 0x123ff},
- {0x1246f, 0x1247f},
- {0x12544, 0x12fff},
- {0x1342f, 0x143ff},
- {0x14647, 0x167ff},
- {0x16a39, 0x16a3f},
- {0x16a5f, 0x16a5f},
- {0x16a6a, 0x16acf},
- {0x16aee, 0x16aef},
- {0x16af5, 0x16aff},
- {0x16b37, 0x16b3f},
- {0x16b44, 0x16b4f},
- {0x16b5a, 0x16b62},
- {0x16b78, 0x16b7c},
- {0x16b90, 0x16eff},
- {0x16f45, 0x16f4f},
- {0x16f7f, 0x16f8e},
- {0x16fa0, 0x16fdf},
- {0x16fe2, 0x1bbff},
- {0x1bc6b, 0x1bc6f},
- {0x1bc7d, 0x1bc7f},
- {0x1bc89, 0x1bc8f},
- {0x1bc9a, 0x1bc9c},
- {0x1bc9f, 0x1bc9f},
- {0x1bca4, 0x1d164},
- {0x1d16a, 0x1d16c},
- {0x1d183, 0x1d184},
- {0x1d18c, 0x1d1a9},
- {0x1d1ae, 0x1d241},
- {0x1d245, 0x1d3ff},
- {0x1d455, 0x1d455},
- {0x1d49d, 0x1d49d},
- {0x1d4a0, 0x1d4a1},
- {0x1d4a3, 0x1d4a4},
- {0x1d4a7, 0x1d4a8},
- {0x1d4ad, 0x1d4ad},
- {0x1d4ba, 0x1d4ba},
- {0x1d4bc, 0x1d4bc},
- {0x1d4c4, 0x1d4c4},
- {0x1d506, 0x1d506},
- {0x1d50b, 0x1d50c},
- {0x1d515, 0x1d515},
- {0x1d51d, 0x1d51d},
- {0x1d53a, 0x1d53a},
- {0x1d53f, 0x1d53f},
- {0x1d545, 0x1d545},
- {0x1d547, 0x1d549},
- {0x1d551, 0x1d551},
- {0x1d6a6, 0x1d6a7},
- {0x1d6c1, 0x1d6c1},
- {0x1d6db, 0x1d6db},
- {0x1d6fb, 0x1d6fb},
- {0x1d715, 0x1d715},
- {0x1d735, 0x1d735},
- {0x1d74f, 0x1d74f},
- {0x1d76f, 0x1d76f},
- {0x1d789, 0x1d789},
- {0x1d7a9, 0x1d7a9},
- {0x1d7c3, 0x1d7c3},
- {0x1d7cc, 0x1d7cd},
- {0x1d800, 0x1d9ff},
- {0x1da37, 0x1da3a},
- {0x1da6d, 0x1da74},
- {0x1da76, 0x1da83},
- {0x1da85, 0x1da9a},
- {0x1daa0, 0x1daa0},
- {0x1dab0, 0x1dfff},
- {0x1e007, 0x1e007},
- {0x1e019, 0x1e01a},
- {0x1e022, 0x1e022},
- {0x1e025, 0x1e025},
- {0x1e02b, 0x1e7ff},
- {0x1e8c5, 0x1e8cf},
- {0x1e8d7, 0x1e8ff},
- {0x1e94b, 0x1e94f},
- {0x1e95a, 0x1edff},
- {0x1ee04, 0x1ee04},
- {0x1ee20, 0x1ee20},
- {0x1ee23, 0x1ee23},
- {0x1ee25, 0x1ee26},
- {0x1ee28, 0x1ee28},
- {0x1ee33, 0x1ee33},
- {0x1ee38, 0x1ee38},
- {0x1ee3a, 0x1ee3a},
- {0x1ee3c, 0x1ee41},
- {0x1ee43, 0x1ee46},
- {0x1ee48, 0x1ee48},
- {0x1ee4a, 0x1ee4a},
- {0x1ee4c, 0x1ee4c},
- {0x1ee50, 0x1ee50},
- {0x1ee53, 0x1ee53},
- {0x1ee55, 0x1ee56},
- {0x1ee58, 0x1ee58},
- {0x1ee5a, 0x1ee5a},
- {0x1ee5c, 0x1ee5c},
- {0x1ee5e, 0x1ee5e},
- {0x1ee60, 0x1ee60},
- {0x1ee63, 0x1ee63},
- {0x1ee65, 0x1ee66},
- {0x1ee6b, 0x1ee6b},
- {0x1ee73, 0x1ee73},
- {0x1ee78, 0x1ee78},
- {0x1ee7d, 0x1ee7d},
- {0x1ee7f, 0x1ee7f},
- {0x1ee8a, 0x1ee8a},
- {0x1ee9c, 0x1eea0},
- {0x1eea4, 0x1eea4},
- {0x1eeaa, 0x1eeaa},
- {0x1eebc, 0x1f12f},
- {0x1f14a, 0x1f14f},
- {0x1f16a, 0x1f16f},
- {0x1f18a, 0x1ffff},
- }
-
- breakTest = []string{
- "AA",
- "ÄA",
- "Aa\u2060",
- "Äa\u2060",
- "Aa|:",
- "Äa|:",
- "Aa|'",
- "Äa|'",
- "Aa|'\u2060",
- "Äa|'\u2060",
- "Aa|,",
- "Äa|,",
- "a\u2060A",
- "a\u2060̈A",
- "a\u2060a\u2060",
- "a\u2060̈a\u2060",
- "a\u2060a|:",
- "a\u2060̈a|:",
- "a\u2060a|'",
- "a\u2060̈a|'",
- "a\u2060a|'\u2060",
- "a\u2060̈a|'\u2060",
- "a\u2060a|,",
- "a\u2060̈a|,",
- "a:A",
- "a:̈A",
- "a:a\u2060",
- "a:̈a\u2060",
- "a:a|:",
- "a:̈a|:",
- "a:a|'",
- "a:̈a|'",
- "a:a|'\u2060",
- "a:̈a|'\u2060",
- "a:a|,",
- "a:̈a|,",
- "a'A",
- "a'̈A",
- "a'a\u2060",
- "a'̈a\u2060",
- "a'a|:",
- "a'̈a|:",
- "a'a|'",
- "a'̈a|'",
- "a'a|'\u2060",
- "a'̈a|'\u2060",
- "a'a|,",
- "a'̈a|,",
- "a'\u2060A",
- "a'\u2060̈A",
- "a'\u2060a\u2060",
- "a'\u2060̈a\u2060",
- "a'\u2060a|:",
- "a'\u2060̈a|:",
- "a'\u2060a|'",
- "a'\u2060̈a|'",
- "a'\u2060a|'\u2060",
- "a'\u2060̈a|'\u2060",
- "a'\u2060a|,",
- "a'\u2060̈a|,",
- "a|,|A",
- "a|,̈|A",
- "a|,|a\u2060",
- "a|,̈|a\u2060",
- "a|,|a|:",
- "a|,̈|a|:",
- "a|,|a|'",
- "a|,̈|a|'",
- "a|,|a|'\u2060",
- "a|,̈|a|'\u2060",
- "a|,|a|,",
- "a|,̈|a|,",
- "AAA",
- "A:A",
- "A|:|:|A",
- "A00A",
- "A__A",
- "a|🇦🇧|🇨|b",
- "a|🇦🇧\u200d|🇨|b",
- "a|🇦\u200d🇧|🇨|b",
- "a|🇦🇧|🇨🇩|b",
- "ä\u200d̈b",
- "1_a|:|:|a",
- "1_a|:|.|a",
- "1_a|:|,|a",
- "1_a|.|:|a",
- "1_a|.|.|a",
- "1_a|.|,|a",
- "1_a|,|:|a",
- "1_a|,|.|a",
- "1_a|,|,|a",
- "a_a|:|:|1",
- "a|:|:|a",
- "a_1|:|:|a",
- "a_a|:|:|a",
- "a_a|:|.|1",
- "a|:|.|a",
- "a_1|:|.|a",
- "a_a|:|.|a",
- "a_a|:|,|1",
- "a|:|,|a",
- "a_1|:|,|a",
- "a_a|:|,|a",
- "a_a|.|:|1",
- "a|.|:|a",
- "a_1|.|:|a",
- "a_a|.|:|a",
- "a_a|.|.|1",
- "a|.|.|a",
- "a_1|.|.|a",
- "a_a|.|.|a",
- "a_a|.|,|1",
- "a|.|,|a",
- "a_1|.|,|a",
- "a_a|.|,|a",
- "a_a|,|:|1",
- "a|,|:|a",
- "a_1|,|:|a",
- "a_a|,|:|a",
- "a_a|,|.|1",
- "a|,|.|a",
- "a_1|,|.|a",
- "a_a|,|.|a",
- "a_a|,|,|1",
- "a|,|,|a",
- "a_1|,|,|a",
- "a_a|,|,|a",
- }
-)
diff --git a/vendor/golang.org/x/text/cases/tables9.0.0.go b/vendor/golang.org/x/text/cases/tables9.0.0.go
deleted file mode 100644
index b8d87c603..000000000
--- a/vendor/golang.org/x/text/cases/tables9.0.0.go
+++ /dev/null
@@ -1,2213 +0,0 @@
-// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT.
-
-// +build !go1.10
-
-package cases
-
-// UnicodeVersion is the Unicode version from which the tables in this package are derived.
-const UnicodeVersion = "9.0.0"
-
-var xorData string = "" + // Size: 185 bytes
- "\x00\x06\x07\x00\x01?\x00\x0f\x03\x00\x0f\x12\x00\x0f\x1f\x00\x0f\x1d" +
- "\x00\x01\x13\x00\x0f\x16\x00\x0f\x0b\x00\x0f3\x00\x0f7\x00\x01#\x00\x0f?" +
- "\x00\x0e'\x00\x0f/\x00\x0e>\x00\x0f*\x00\x0c&\x00\x0c*\x00\x0c;\x00\x0c9" +
- "\x00\x0c%\x00\x01\x08\x00\x03\x0d\x00\x03\x09\x00\x02\x06\x00\x02\x02" +
- "\x00\x02\x0c\x00\x01\x00\x00\x01\x03\x00\x01\x01\x00\x01 \x00\x01\x0c" +
- "\x00\x01\x10\x00\x03\x10\x00\x036 \x00\x037 \x00\x0b#\x10\x00\x0b 0\x00" +
- "\x0b!\x10\x00\x0b!0\x00\x0b(\x04\x00\x03\x04\x1e\x00\x03\x0a\x00\x02:" +
- "\x00\x02>\x00\x02,\x00\x02\x00\x00\x02\x10\x00\x01<\x00\x01&\x00\x01*" +
- "\x00\x01.\x00\x010\x003 \x00\x01\x18\x00\x01(\x00\x01\x1e\x00\x01\x22"
-
-var exceptions string = "" + // Size: 1852 bytes
- "\x00\x12\x10μΜ\x12\x12ssSSSs\x13\x18i̇i̇\x10\x08I\x13\x18ʼnʼN\x11\x08sS" +
- "\x12\x12dždžDž\x12\x12dždžDŽ\x10\x12DŽDž\x12\x12ljljLj\x12\x12ljljLJ\x10\x12LJLj\x12\x12" +
- "njnjNj\x12\x12njnjNJ\x10\x12NJNj\x13\x18ǰJ̌\x12\x12dzdzDz\x12\x12dzdzDZ\x10\x12DZDz" +
- "\x13\x18ⱥⱥ\x13\x18ⱦⱦ\x10\x18Ȿ\x10\x18Ɀ\x10\x18Ɐ\x10\x18Ɑ\x10\x18Ɒ\x10" +
- "\x18Ɜ\x10\x18Ɡ\x10\x18Ɥ\x10\x18Ɦ\x10\x18Ɪ\x10\x18Ɫ\x10\x18Ɬ\x10\x18Ɱ\x10" +
- "\x18Ɽ\x10\x18Ʇ\x10\x18Ʝ\x10\x18Ʞ2\x10ιΙ\x160ΐΪ́\x160ΰΫ́\x12\x10σΣ" +
- "\x12\x10βΒ\x12\x10θΘ\x12\x10φΦ\x12\x10πΠ\x12\x10κΚ\x12\x10ρΡ\x12\x10εΕ" +
- "\x14$եւԵՒԵւ\x12\x10вВ\x12\x10дД\x12\x10оО\x12\x10сС\x12\x10тТ\x12\x10тТ" +
- "\x12\x10ъЪ\x12\x10ѣѢ\x13\x18ꙋꙊ\x13\x18ẖH̱\x13\x18ẗT̈\x13\x18ẘW̊\x13" +
- "\x18ẙY̊\x13\x18aʾAʾ\x13\x18ṡṠ\x12\x10ssß\x14 ὐΥ̓\x160ὒΥ̓̀\x160ὔΥ̓́" +
- "\x160ὖΥ̓͂\x15+ἀιἈΙᾈ\x15+ἁιἉΙᾉ\x15+ἂιἊΙᾊ\x15+ἃιἋΙᾋ\x15+ἄιἌΙᾌ\x15+ἅιἍΙᾍ" +
- "\x15+ἆιἎΙᾎ\x15+ἇιἏΙᾏ\x15\x1dἀιᾀἈΙ\x15\x1dἁιᾁἉΙ\x15\x1dἂιᾂἊΙ\x15\x1dἃιᾃἋΙ" +
- "\x15\x1dἄιᾄἌΙ\x15\x1dἅιᾅἍΙ\x15\x1dἆιᾆἎΙ\x15\x1dἇιᾇἏΙ\x15+ἠιἨΙᾘ\x15+ἡιἩΙᾙ" +
- "\x15+ἢιἪΙᾚ\x15+ἣιἫΙᾛ\x15+ἤιἬΙᾜ\x15+ἥιἭΙᾝ\x15+ἦιἮΙᾞ\x15+ἧιἯΙᾟ\x15\x1dἠιᾐἨ" +
- "Ι\x15\x1dἡιᾑἩΙ\x15\x1dἢιᾒἪΙ\x15\x1dἣιᾓἫΙ\x15\x1dἤιᾔἬΙ\x15\x1dἥιᾕἭΙ\x15" +
- "\x1dἦιᾖἮΙ\x15\x1dἧιᾗἯΙ\x15+ὠιὨΙᾨ\x15+ὡιὩΙᾩ\x15+ὢιὪΙᾪ\x15+ὣιὫΙᾫ\x15+ὤιὬΙᾬ" +
- "\x15+ὥιὭΙᾭ\x15+ὦιὮΙᾮ\x15+ὧιὯΙᾯ\x15\x1dὠιᾠὨΙ\x15\x1dὡιᾡὩΙ\x15\x1dὢιᾢὪΙ" +
- "\x15\x1dὣιᾣὫΙ\x15\x1dὤιᾤὬΙ\x15\x1dὥιᾥὭΙ\x15\x1dὦιᾦὮΙ\x15\x1dὧιᾧὯΙ\x15-ὰι" +
- "ᾺΙᾺͅ\x14#αιΑΙᾼ\x14$άιΆΙΆͅ\x14 ᾶΑ͂\x166ᾶιΑ͂Ιᾼ͂\x14\x1cαιᾳΑΙ\x12\x10ι" +
- "Ι\x15-ὴιῊΙῊͅ\x14#ηιΗΙῌ\x14$ήιΉΙΉͅ\x14 ῆΗ͂\x166ῆιΗ͂Ιῌ͂\x14\x1cηιῃΗΙ" +
- "\x160ῒΪ̀\x160ΐΪ́\x14 ῖΙ͂\x160ῗΪ͂\x160ῢΫ̀\x160ΰΫ́\x14 ῤΡ" +
- "̓\x14 ῦΥ͂\x160ῧΫ͂\x15-ὼιῺΙῺͅ\x14#ωιΩΙῼ\x14$ώιΏΙΏͅ\x14 ῶΩ͂\x166ῶιΩ" +
- "͂Ιῼ͂\x14\x1cωιῳΩΙ\x12\x10ωω\x11\x08kk\x12\x10åå\x12\x10ɫɫ\x12\x10ɽɽ" +
- "\x10\x10Ⱥ\x10\x10Ⱦ\x12\x10ɑɑ\x12\x10ɱɱ\x12\x10ɐɐ\x12\x10ɒɒ\x12\x10ȿȿ\x12" +
- "\x10ɀɀ\x12\x10ɥɥ\x12\x10ɦɦ\x12\x10ɜɜ\x12\x10ɡɡ\x12\x10ɬɬ\x12\x10ɪɪ\x12" +
- "\x10ʞʞ\x12\x10ʇʇ\x12\x10ʝʝ\x12\x12ffFFFf\x12\x12fiFIFi\x12\x12flFLFl\x13" +
- "\x1bffiFFIFfi\x13\x1bfflFFLFfl\x12\x12stSTSt\x12\x12stSTSt\x14$մնՄՆՄն" +
- "\x14$մեՄԵՄե\x14$միՄԻՄի\x14$վնՎՆՎն\x14$մխՄԽՄխ"
-
-// lookup returns the trie value for the first UTF-8 encoding in s and
-// the width in bytes of this encoding. The size will be 0 if s does not
-// hold enough bytes to complete the encoding. len(s) must be greater than 0.
-func (t *caseTrie) lookup(s []byte) (v uint16, sz int) {
- c0 := s[0]
- switch {
- case c0 < 0x80: // is ASCII
- return caseValues[c0], 1
- case c0 < 0xC2:
- return 0, 1 // Illegal UTF-8: not a starter, not ASCII.
- case c0 < 0xE0: // 2-byte UTF-8
- if len(s) < 2 {
- return 0, 0
- }
- i := caseIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c1), 2
- case c0 < 0xF0: // 3-byte UTF-8
- if len(s) < 3 {
- return 0, 0
- }
- i := caseIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- o := uint32(i)<<6 + uint32(c1)
- i = caseIndex[o]
- c2 := s[2]
- if c2 < 0x80 || 0xC0 <= c2 {
- return 0, 2 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c2), 3
- case c0 < 0xF8: // 4-byte UTF-8
- if len(s) < 4 {
- return 0, 0
- }
- i := caseIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- o := uint32(i)<<6 + uint32(c1)
- i = caseIndex[o]
- c2 := s[2]
- if c2 < 0x80 || 0xC0 <= c2 {
- return 0, 2 // Illegal UTF-8: not a continuation byte.
- }
- o = uint32(i)<<6 + uint32(c2)
- i = caseIndex[o]
- c3 := s[3]
- if c3 < 0x80 || 0xC0 <= c3 {
- return 0, 3 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c3), 4
- }
- // Illegal rune
- return 0, 1
-}
-
-// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.
-// s must start with a full and valid UTF-8 encoded rune.
-func (t *caseTrie) lookupUnsafe(s []byte) uint16 {
- c0 := s[0]
- if c0 < 0x80 { // is ASCII
- return caseValues[c0]
- }
- i := caseIndex[c0]
- if c0 < 0xE0 { // 2-byte UTF-8
- return t.lookupValue(uint32(i), s[1])
- }
- i = caseIndex[uint32(i)<<6+uint32(s[1])]
- if c0 < 0xF0 { // 3-byte UTF-8
- return t.lookupValue(uint32(i), s[2])
- }
- i = caseIndex[uint32(i)<<6+uint32(s[2])]
- if c0 < 0xF8 { // 4-byte UTF-8
- return t.lookupValue(uint32(i), s[3])
- }
- return 0
-}
-
-// lookupString returns the trie value for the first UTF-8 encoding in s and
-// the width in bytes of this encoding. The size will be 0 if s does not
-// hold enough bytes to complete the encoding. len(s) must be greater than 0.
-func (t *caseTrie) lookupString(s string) (v uint16, sz int) {
- c0 := s[0]
- switch {
- case c0 < 0x80: // is ASCII
- return caseValues[c0], 1
- case c0 < 0xC2:
- return 0, 1 // Illegal UTF-8: not a starter, not ASCII.
- case c0 < 0xE0: // 2-byte UTF-8
- if len(s) < 2 {
- return 0, 0
- }
- i := caseIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c1), 2
- case c0 < 0xF0: // 3-byte UTF-8
- if len(s) < 3 {
- return 0, 0
- }
- i := caseIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- o := uint32(i)<<6 + uint32(c1)
- i = caseIndex[o]
- c2 := s[2]
- if c2 < 0x80 || 0xC0 <= c2 {
- return 0, 2 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c2), 3
- case c0 < 0xF8: // 4-byte UTF-8
- if len(s) < 4 {
- return 0, 0
- }
- i := caseIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- o := uint32(i)<<6 + uint32(c1)
- i = caseIndex[o]
- c2 := s[2]
- if c2 < 0x80 || 0xC0 <= c2 {
- return 0, 2 // Illegal UTF-8: not a continuation byte.
- }
- o = uint32(i)<<6 + uint32(c2)
- i = caseIndex[o]
- c3 := s[3]
- if c3 < 0x80 || 0xC0 <= c3 {
- return 0, 3 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c3), 4
- }
- // Illegal rune
- return 0, 1
-}
-
-// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.
-// s must start with a full and valid UTF-8 encoded rune.
-func (t *caseTrie) lookupStringUnsafe(s string) uint16 {
- c0 := s[0]
- if c0 < 0x80 { // is ASCII
- return caseValues[c0]
- }
- i := caseIndex[c0]
- if c0 < 0xE0 { // 2-byte UTF-8
- return t.lookupValue(uint32(i), s[1])
- }
- i = caseIndex[uint32(i)<<6+uint32(s[1])]
- if c0 < 0xF0 { // 3-byte UTF-8
- return t.lookupValue(uint32(i), s[2])
- }
- i = caseIndex[uint32(i)<<6+uint32(s[2])]
- if c0 < 0xF8 { // 4-byte UTF-8
- return t.lookupValue(uint32(i), s[3])
- }
- return 0
-}
-
-// caseTrie. Total size: 11742 bytes (11.47 KiB). Checksum: 147a11466b427436.
-type caseTrie struct{}
-
-func newCaseTrie(i int) *caseTrie {
- return &caseTrie{}
-}
-
-// lookupValue determines the type of block n and looks up the value for b.
-func (t *caseTrie) lookupValue(n uint32, b byte) uint16 {
- switch {
- case n < 18:
- return uint16(caseValues[n<<6+uint32(b)])
- default:
- n -= 18
- return uint16(sparse.lookup(n, b))
- }
-}
-
-// caseValues: 20 blocks, 1280 entries, 2560 bytes
-// The third block is the zero block.
-var caseValues = [1280]uint16{
- // Block 0x0, offset 0x0
- 0x27: 0x0054,
- 0x2e: 0x0054,
- 0x30: 0x0010, 0x31: 0x0010, 0x32: 0x0010, 0x33: 0x0010, 0x34: 0x0010, 0x35: 0x0010,
- 0x36: 0x0010, 0x37: 0x0010, 0x38: 0x0010, 0x39: 0x0010, 0x3a: 0x0054,
- // Block 0x1, offset 0x40
- 0x41: 0x2013, 0x42: 0x2013, 0x43: 0x2013, 0x44: 0x2013, 0x45: 0x2013,
- 0x46: 0x2013, 0x47: 0x2013, 0x48: 0x2013, 0x49: 0x2013, 0x4a: 0x2013, 0x4b: 0x2013,
- 0x4c: 0x2013, 0x4d: 0x2013, 0x4e: 0x2013, 0x4f: 0x2013, 0x50: 0x2013, 0x51: 0x2013,
- 0x52: 0x2013, 0x53: 0x2013, 0x54: 0x2013, 0x55: 0x2013, 0x56: 0x2013, 0x57: 0x2013,
- 0x58: 0x2013, 0x59: 0x2013, 0x5a: 0x2013,
- 0x5e: 0x0004, 0x5f: 0x0010, 0x60: 0x0004, 0x61: 0x2012, 0x62: 0x2012, 0x63: 0x2012,
- 0x64: 0x2012, 0x65: 0x2012, 0x66: 0x2012, 0x67: 0x2012, 0x68: 0x2012, 0x69: 0x2012,
- 0x6a: 0x2012, 0x6b: 0x2012, 0x6c: 0x2012, 0x6d: 0x2012, 0x6e: 0x2012, 0x6f: 0x2012,
- 0x70: 0x2012, 0x71: 0x2012, 0x72: 0x2012, 0x73: 0x2012, 0x74: 0x2012, 0x75: 0x2012,
- 0x76: 0x2012, 0x77: 0x2012, 0x78: 0x2012, 0x79: 0x2012, 0x7a: 0x2012,
- // Block 0x2, offset 0x80
- // Block 0x3, offset 0xc0
- 0xc0: 0x0852, 0xc1: 0x0b53, 0xc2: 0x0113, 0xc3: 0x0112, 0xc4: 0x0113, 0xc5: 0x0112,
- 0xc6: 0x0b53, 0xc7: 0x0f13, 0xc8: 0x0f12, 0xc9: 0x0e53, 0xca: 0x1153, 0xcb: 0x0713,
- 0xcc: 0x0712, 0xcd: 0x0012, 0xce: 0x1453, 0xcf: 0x1753, 0xd0: 0x1a53, 0xd1: 0x0313,
- 0xd2: 0x0312, 0xd3: 0x1d53, 0xd4: 0x2053, 0xd5: 0x2352, 0xd6: 0x2653, 0xd7: 0x2653,
- 0xd8: 0x0113, 0xd9: 0x0112, 0xda: 0x2952, 0xdb: 0x0012, 0xdc: 0x1d53, 0xdd: 0x2c53,
- 0xde: 0x2f52, 0xdf: 0x3253, 0xe0: 0x0113, 0xe1: 0x0112, 0xe2: 0x0113, 0xe3: 0x0112,
- 0xe4: 0x0113, 0xe5: 0x0112, 0xe6: 0x3553, 0xe7: 0x0f13, 0xe8: 0x0f12, 0xe9: 0x3853,
- 0xea: 0x0012, 0xeb: 0x0012, 0xec: 0x0113, 0xed: 0x0112, 0xee: 0x3553, 0xef: 0x1f13,
- 0xf0: 0x1f12, 0xf1: 0x3b53, 0xf2: 0x3e53, 0xf3: 0x0713, 0xf4: 0x0712, 0xf5: 0x0313,
- 0xf6: 0x0312, 0xf7: 0x4153, 0xf8: 0x0113, 0xf9: 0x0112, 0xfa: 0x0012, 0xfb: 0x0010,
- 0xfc: 0x0113, 0xfd: 0x0112, 0xfe: 0x0012, 0xff: 0x4452,
- // Block 0x4, offset 0x100
- 0x100: 0x0010, 0x101: 0x0010, 0x102: 0x0010, 0x103: 0x0010, 0x104: 0x04cb, 0x105: 0x05c9,
- 0x106: 0x06ca, 0x107: 0x078b, 0x108: 0x0889, 0x109: 0x098a, 0x10a: 0x0a4b, 0x10b: 0x0b49,
- 0x10c: 0x0c4a, 0x10d: 0x0313, 0x10e: 0x0312, 0x10f: 0x1f13, 0x110: 0x1f12, 0x111: 0x0313,
- 0x112: 0x0312, 0x113: 0x0713, 0x114: 0x0712, 0x115: 0x0313, 0x116: 0x0312, 0x117: 0x0f13,
- 0x118: 0x0f12, 0x119: 0x0313, 0x11a: 0x0312, 0x11b: 0x0713, 0x11c: 0x0712, 0x11d: 0x1452,
- 0x11e: 0x0113, 0x11f: 0x0112, 0x120: 0x0113, 0x121: 0x0112, 0x122: 0x0113, 0x123: 0x0112,
- 0x124: 0x0113, 0x125: 0x0112, 0x126: 0x0113, 0x127: 0x0112, 0x128: 0x0113, 0x129: 0x0112,
- 0x12a: 0x0113, 0x12b: 0x0112, 0x12c: 0x0113, 0x12d: 0x0112, 0x12e: 0x0113, 0x12f: 0x0112,
- 0x130: 0x0d0a, 0x131: 0x0e0b, 0x132: 0x0f09, 0x133: 0x100a, 0x134: 0x0113, 0x135: 0x0112,
- 0x136: 0x2353, 0x137: 0x4453, 0x138: 0x0113, 0x139: 0x0112, 0x13a: 0x0113, 0x13b: 0x0112,
- 0x13c: 0x0113, 0x13d: 0x0112, 0x13e: 0x0113, 0x13f: 0x0112,
- // Block 0x5, offset 0x140
- 0x140: 0x136a, 0x141: 0x0313, 0x142: 0x0312, 0x143: 0x0853, 0x144: 0x4753, 0x145: 0x4a53,
- 0x146: 0x0113, 0x147: 0x0112, 0x148: 0x0113, 0x149: 0x0112, 0x14a: 0x0113, 0x14b: 0x0112,
- 0x14c: 0x0113, 0x14d: 0x0112, 0x14e: 0x0113, 0x14f: 0x0112, 0x150: 0x140a, 0x151: 0x14aa,
- 0x152: 0x154a, 0x153: 0x0b52, 0x154: 0x0b52, 0x155: 0x0012, 0x156: 0x0e52, 0x157: 0x1152,
- 0x158: 0x0012, 0x159: 0x1752, 0x15a: 0x0012, 0x15b: 0x1a52, 0x15c: 0x15ea, 0x15d: 0x0012,
- 0x15e: 0x0012, 0x15f: 0x0012, 0x160: 0x1d52, 0x161: 0x168a, 0x162: 0x0012, 0x163: 0x2052,
- 0x164: 0x0012, 0x165: 0x172a, 0x166: 0x17ca, 0x167: 0x0012, 0x168: 0x2652, 0x169: 0x2652,
- 0x16a: 0x186a, 0x16b: 0x190a, 0x16c: 0x19aa, 0x16d: 0x0012, 0x16e: 0x0012, 0x16f: 0x1d52,
- 0x170: 0x0012, 0x171: 0x1a4a, 0x172: 0x2c52, 0x173: 0x0012, 0x174: 0x0012, 0x175: 0x3252,
- 0x176: 0x0012, 0x177: 0x0012, 0x178: 0x0012, 0x179: 0x0012, 0x17a: 0x0012, 0x17b: 0x0012,
- 0x17c: 0x0012, 0x17d: 0x1aea, 0x17e: 0x0012, 0x17f: 0x0012,
- // Block 0x6, offset 0x180
- 0x180: 0x3552, 0x181: 0x0012, 0x182: 0x0012, 0x183: 0x3852, 0x184: 0x0012, 0x185: 0x0012,
- 0x186: 0x0012, 0x187: 0x1b8a, 0x188: 0x3552, 0x189: 0x4752, 0x18a: 0x3b52, 0x18b: 0x3e52,
- 0x18c: 0x4a52, 0x18d: 0x0012, 0x18e: 0x0012, 0x18f: 0x0012, 0x190: 0x0012, 0x191: 0x0012,
- 0x192: 0x4152, 0x193: 0x0012, 0x194: 0x0010, 0x195: 0x0012, 0x196: 0x0012, 0x197: 0x0012,
- 0x198: 0x0012, 0x199: 0x0012, 0x19a: 0x0012, 0x19b: 0x0012, 0x19c: 0x0012, 0x19d: 0x1c2a,
- 0x19e: 0x1cca, 0x19f: 0x0012, 0x1a0: 0x0012, 0x1a1: 0x0012, 0x1a2: 0x0012, 0x1a3: 0x0012,
- 0x1a4: 0x0012, 0x1a5: 0x0012, 0x1a6: 0x0012, 0x1a7: 0x0012, 0x1a8: 0x0012, 0x1a9: 0x0012,
- 0x1aa: 0x0012, 0x1ab: 0x0012, 0x1ac: 0x0012, 0x1ad: 0x0012, 0x1ae: 0x0012, 0x1af: 0x0012,
- 0x1b0: 0x0015, 0x1b1: 0x0015, 0x1b2: 0x0015, 0x1b3: 0x0015, 0x1b4: 0x0015, 0x1b5: 0x0015,
- 0x1b6: 0x0015, 0x1b7: 0x0015, 0x1b8: 0x0015, 0x1b9: 0x0014, 0x1ba: 0x0014, 0x1bb: 0x0014,
- 0x1bc: 0x0014, 0x1bd: 0x0014, 0x1be: 0x0014, 0x1bf: 0x0014,
- // Block 0x7, offset 0x1c0
- 0x1c0: 0x0024, 0x1c1: 0x0024, 0x1c2: 0x0024, 0x1c3: 0x0024, 0x1c4: 0x0024, 0x1c5: 0x1d6d,
- 0x1c6: 0x0024, 0x1c7: 0x0034, 0x1c8: 0x0034, 0x1c9: 0x0034, 0x1ca: 0x0024, 0x1cb: 0x0024,
- 0x1cc: 0x0024, 0x1cd: 0x0034, 0x1ce: 0x0034, 0x1cf: 0x0014, 0x1d0: 0x0024, 0x1d1: 0x0024,
- 0x1d2: 0x0024, 0x1d3: 0x0034, 0x1d4: 0x0034, 0x1d5: 0x0034, 0x1d6: 0x0034, 0x1d7: 0x0024,
- 0x1d8: 0x0034, 0x1d9: 0x0034, 0x1da: 0x0034, 0x1db: 0x0024, 0x1dc: 0x0034, 0x1dd: 0x0034,
- 0x1de: 0x0034, 0x1df: 0x0034, 0x1e0: 0x0034, 0x1e1: 0x0034, 0x1e2: 0x0034, 0x1e3: 0x0024,
- 0x1e4: 0x0024, 0x1e5: 0x0024, 0x1e6: 0x0024, 0x1e7: 0x0024, 0x1e8: 0x0024, 0x1e9: 0x0024,
- 0x1ea: 0x0024, 0x1eb: 0x0024, 0x1ec: 0x0024, 0x1ed: 0x0024, 0x1ee: 0x0024, 0x1ef: 0x0024,
- 0x1f0: 0x0113, 0x1f1: 0x0112, 0x1f2: 0x0113, 0x1f3: 0x0112, 0x1f4: 0x0014, 0x1f5: 0x0004,
- 0x1f6: 0x0113, 0x1f7: 0x0112, 0x1fa: 0x0015, 0x1fb: 0x4d52,
- 0x1fc: 0x5052, 0x1fd: 0x5052, 0x1ff: 0x5353,
- // Block 0x8, offset 0x200
- 0x204: 0x0004, 0x205: 0x0004,
- 0x206: 0x2a13, 0x207: 0x0054, 0x208: 0x2513, 0x209: 0x2713, 0x20a: 0x2513,
- 0x20c: 0x5653, 0x20e: 0x5953, 0x20f: 0x5c53, 0x210: 0x1e2a, 0x211: 0x2013,
- 0x212: 0x2013, 0x213: 0x2013, 0x214: 0x2013, 0x215: 0x2013, 0x216: 0x2013, 0x217: 0x2013,
- 0x218: 0x2013, 0x219: 0x2013, 0x21a: 0x2013, 0x21b: 0x2013, 0x21c: 0x2013, 0x21d: 0x2013,
- 0x21e: 0x2013, 0x21f: 0x2013, 0x220: 0x5f53, 0x221: 0x5f53, 0x223: 0x5f53,
- 0x224: 0x5f53, 0x225: 0x5f53, 0x226: 0x5f53, 0x227: 0x5f53, 0x228: 0x5f53, 0x229: 0x5f53,
- 0x22a: 0x5f53, 0x22b: 0x5f53, 0x22c: 0x2a12, 0x22d: 0x2512, 0x22e: 0x2712, 0x22f: 0x2512,
- 0x230: 0x1fea, 0x231: 0x2012, 0x232: 0x2012, 0x233: 0x2012, 0x234: 0x2012, 0x235: 0x2012,
- 0x236: 0x2012, 0x237: 0x2012, 0x238: 0x2012, 0x239: 0x2012, 0x23a: 0x2012, 0x23b: 0x2012,
- 0x23c: 0x2012, 0x23d: 0x2012, 0x23e: 0x2012, 0x23f: 0x2012,
- // Block 0x9, offset 0x240
- 0x240: 0x5f52, 0x241: 0x5f52, 0x242: 0x21aa, 0x243: 0x5f52, 0x244: 0x5f52, 0x245: 0x5f52,
- 0x246: 0x5f52, 0x247: 0x5f52, 0x248: 0x5f52, 0x249: 0x5f52, 0x24a: 0x5f52, 0x24b: 0x5f52,
- 0x24c: 0x5652, 0x24d: 0x5952, 0x24e: 0x5c52, 0x24f: 0x1813, 0x250: 0x226a, 0x251: 0x232a,
- 0x252: 0x0013, 0x253: 0x0013, 0x254: 0x0013, 0x255: 0x23ea, 0x256: 0x24aa, 0x257: 0x1812,
- 0x258: 0x0113, 0x259: 0x0112, 0x25a: 0x0113, 0x25b: 0x0112, 0x25c: 0x0113, 0x25d: 0x0112,
- 0x25e: 0x0113, 0x25f: 0x0112, 0x260: 0x0113, 0x261: 0x0112, 0x262: 0x0113, 0x263: 0x0112,
- 0x264: 0x0113, 0x265: 0x0112, 0x266: 0x0113, 0x267: 0x0112, 0x268: 0x0113, 0x269: 0x0112,
- 0x26a: 0x0113, 0x26b: 0x0112, 0x26c: 0x0113, 0x26d: 0x0112, 0x26e: 0x0113, 0x26f: 0x0112,
- 0x270: 0x256a, 0x271: 0x262a, 0x272: 0x0b12, 0x273: 0x5352, 0x274: 0x6253, 0x275: 0x26ea,
- 0x277: 0x0f13, 0x278: 0x0f12, 0x279: 0x0b13, 0x27a: 0x0113, 0x27b: 0x0112,
- 0x27c: 0x0012, 0x27d: 0x4d53, 0x27e: 0x5053, 0x27f: 0x5053,
- // Block 0xa, offset 0x280
- 0x280: 0x0812, 0x281: 0x0812, 0x282: 0x0812, 0x283: 0x0812, 0x284: 0x0812, 0x285: 0x0812,
- 0x288: 0x0813, 0x289: 0x0813, 0x28a: 0x0813, 0x28b: 0x0813,
- 0x28c: 0x0813, 0x28d: 0x0813, 0x290: 0x372a, 0x291: 0x0812,
- 0x292: 0x386a, 0x293: 0x0812, 0x294: 0x3a2a, 0x295: 0x0812, 0x296: 0x3bea, 0x297: 0x0812,
- 0x299: 0x0813, 0x29b: 0x0813, 0x29d: 0x0813,
- 0x29f: 0x0813, 0x2a0: 0x0812, 0x2a1: 0x0812, 0x2a2: 0x0812, 0x2a3: 0x0812,
- 0x2a4: 0x0812, 0x2a5: 0x0812, 0x2a6: 0x0812, 0x2a7: 0x0812, 0x2a8: 0x0813, 0x2a9: 0x0813,
- 0x2aa: 0x0813, 0x2ab: 0x0813, 0x2ac: 0x0813, 0x2ad: 0x0813, 0x2ae: 0x0813, 0x2af: 0x0813,
- 0x2b0: 0x8b52, 0x2b1: 0x8b52, 0x2b2: 0x8e52, 0x2b3: 0x8e52, 0x2b4: 0x9152, 0x2b5: 0x9152,
- 0x2b6: 0x9452, 0x2b7: 0x9452, 0x2b8: 0x9752, 0x2b9: 0x9752, 0x2ba: 0x9a52, 0x2bb: 0x9a52,
- 0x2bc: 0x4d52, 0x2bd: 0x4d52,
- // Block 0xb, offset 0x2c0
- 0x2c0: 0x3daa, 0x2c1: 0x3f8a, 0x2c2: 0x416a, 0x2c3: 0x434a, 0x2c4: 0x452a, 0x2c5: 0x470a,
- 0x2c6: 0x48ea, 0x2c7: 0x4aca, 0x2c8: 0x4ca9, 0x2c9: 0x4e89, 0x2ca: 0x5069, 0x2cb: 0x5249,
- 0x2cc: 0x5429, 0x2cd: 0x5609, 0x2ce: 0x57e9, 0x2cf: 0x59c9, 0x2d0: 0x5baa, 0x2d1: 0x5d8a,
- 0x2d2: 0x5f6a, 0x2d3: 0x614a, 0x2d4: 0x632a, 0x2d5: 0x650a, 0x2d6: 0x66ea, 0x2d7: 0x68ca,
- 0x2d8: 0x6aa9, 0x2d9: 0x6c89, 0x2da: 0x6e69, 0x2db: 0x7049, 0x2dc: 0x7229, 0x2dd: 0x7409,
- 0x2de: 0x75e9, 0x2df: 0x77c9, 0x2e0: 0x79aa, 0x2e1: 0x7b8a, 0x2e2: 0x7d6a, 0x2e3: 0x7f4a,
- 0x2e4: 0x812a, 0x2e5: 0x830a, 0x2e6: 0x84ea, 0x2e7: 0x86ca, 0x2e8: 0x88a9, 0x2e9: 0x8a89,
- 0x2ea: 0x8c69, 0x2eb: 0x8e49, 0x2ec: 0x9029, 0x2ed: 0x9209, 0x2ee: 0x93e9, 0x2ef: 0x95c9,
- 0x2f0: 0x0812, 0x2f1: 0x0812, 0x2f2: 0x97aa, 0x2f3: 0x99ca, 0x2f4: 0x9b6a,
- 0x2f6: 0x9d2a, 0x2f7: 0x9e6a, 0x2f8: 0x0813, 0x2f9: 0x0813, 0x2fa: 0x8b53, 0x2fb: 0x8b53,
- 0x2fc: 0xa0e9, 0x2fd: 0x0004, 0x2fe: 0xa28a, 0x2ff: 0x0004,
- // Block 0xc, offset 0x300
- 0x300: 0x0004, 0x301: 0x0004, 0x302: 0xa34a, 0x303: 0xa56a, 0x304: 0xa70a,
- 0x306: 0xa8ca, 0x307: 0xaa0a, 0x308: 0x8e53, 0x309: 0x8e53, 0x30a: 0x9153, 0x30b: 0x9153,
- 0x30c: 0xac89, 0x30d: 0x0004, 0x30e: 0x0004, 0x30f: 0x0004, 0x310: 0x0812, 0x311: 0x0812,
- 0x312: 0xae2a, 0x313: 0xafea, 0x316: 0xb1aa, 0x317: 0xb2ea,
- 0x318: 0x0813, 0x319: 0x0813, 0x31a: 0x9453, 0x31b: 0x9453, 0x31d: 0x0004,
- 0x31e: 0x0004, 0x31f: 0x0004, 0x320: 0x0812, 0x321: 0x0812, 0x322: 0xb4aa, 0x323: 0xb66a,
- 0x324: 0xb82a, 0x325: 0x0912, 0x326: 0xb96a, 0x327: 0xbaaa, 0x328: 0x0813, 0x329: 0x0813,
- 0x32a: 0x9a53, 0x32b: 0x9a53, 0x32c: 0x0913, 0x32d: 0x0004, 0x32e: 0x0004, 0x32f: 0x0004,
- 0x332: 0xbc6a, 0x333: 0xbe8a, 0x334: 0xc02a,
- 0x336: 0xc1ea, 0x337: 0xc32a, 0x338: 0x9753, 0x339: 0x9753, 0x33a: 0x4d53, 0x33b: 0x4d53,
- 0x33c: 0xc5a9, 0x33d: 0x0004, 0x33e: 0x0004,
- // Block 0xd, offset 0x340
- 0x342: 0x0013,
- 0x347: 0x0013, 0x34a: 0x0012, 0x34b: 0x0013,
- 0x34c: 0x0013, 0x34d: 0x0013, 0x34e: 0x0012, 0x34f: 0x0012, 0x350: 0x0013, 0x351: 0x0013,
- 0x352: 0x0013, 0x353: 0x0012, 0x355: 0x0013,
- 0x359: 0x0013, 0x35a: 0x0013, 0x35b: 0x0013, 0x35c: 0x0013, 0x35d: 0x0013,
- 0x364: 0x0013, 0x366: 0xc74b, 0x368: 0x0013,
- 0x36a: 0xc80b, 0x36b: 0xc88b, 0x36c: 0x0013, 0x36d: 0x0013, 0x36f: 0x0012,
- 0x370: 0x0013, 0x371: 0x0013, 0x372: 0x9d53, 0x373: 0x0013, 0x374: 0x0012, 0x375: 0x0010,
- 0x376: 0x0010, 0x377: 0x0010, 0x378: 0x0010, 0x379: 0x0012,
- 0x37c: 0x0012, 0x37d: 0x0012, 0x37e: 0x0013, 0x37f: 0x0013,
- // Block 0xe, offset 0x380
- 0x380: 0x1a13, 0x381: 0x1a13, 0x382: 0x1e13, 0x383: 0x1e13, 0x384: 0x1a13, 0x385: 0x1a13,
- 0x386: 0x2613, 0x387: 0x2613, 0x388: 0x2a13, 0x389: 0x2a13, 0x38a: 0x2e13, 0x38b: 0x2e13,
- 0x38c: 0x2a13, 0x38d: 0x2a13, 0x38e: 0x2613, 0x38f: 0x2613, 0x390: 0xa052, 0x391: 0xa052,
- 0x392: 0xa352, 0x393: 0xa352, 0x394: 0xa652, 0x395: 0xa652, 0x396: 0xa352, 0x397: 0xa352,
- 0x398: 0xa052, 0x399: 0xa052, 0x39a: 0x1a12, 0x39b: 0x1a12, 0x39c: 0x1e12, 0x39d: 0x1e12,
- 0x39e: 0x1a12, 0x39f: 0x1a12, 0x3a0: 0x2612, 0x3a1: 0x2612, 0x3a2: 0x2a12, 0x3a3: 0x2a12,
- 0x3a4: 0x2e12, 0x3a5: 0x2e12, 0x3a6: 0x2a12, 0x3a7: 0x2a12, 0x3a8: 0x2612, 0x3a9: 0x2612,
- // Block 0xf, offset 0x3c0
- 0x3c0: 0x6552, 0x3c1: 0x6552, 0x3c2: 0x6552, 0x3c3: 0x6552, 0x3c4: 0x6552, 0x3c5: 0x6552,
- 0x3c6: 0x6552, 0x3c7: 0x6552, 0x3c8: 0x6552, 0x3c9: 0x6552, 0x3ca: 0x6552, 0x3cb: 0x6552,
- 0x3cc: 0x6552, 0x3cd: 0x6552, 0x3ce: 0x6552, 0x3cf: 0x6552, 0x3d0: 0xa952, 0x3d1: 0xa952,
- 0x3d2: 0xa952, 0x3d3: 0xa952, 0x3d4: 0xa952, 0x3d5: 0xa952, 0x3d6: 0xa952, 0x3d7: 0xa952,
- 0x3d8: 0xa952, 0x3d9: 0xa952, 0x3da: 0xa952, 0x3db: 0xa952, 0x3dc: 0xa952, 0x3dd: 0xa952,
- 0x3de: 0xa952, 0x3e0: 0x0113, 0x3e1: 0x0112, 0x3e2: 0xc94b, 0x3e3: 0x8853,
- 0x3e4: 0xca0b, 0x3e5: 0xcaca, 0x3e6: 0xcb4a, 0x3e7: 0x0f13, 0x3e8: 0x0f12, 0x3e9: 0x0313,
- 0x3ea: 0x0312, 0x3eb: 0x0713, 0x3ec: 0x0712, 0x3ed: 0xcbcb, 0x3ee: 0xcc8b, 0x3ef: 0xcd4b,
- 0x3f0: 0xce0b, 0x3f1: 0x0012, 0x3f2: 0x0113, 0x3f3: 0x0112, 0x3f4: 0x0012, 0x3f5: 0x0313,
- 0x3f6: 0x0312, 0x3f7: 0x0012, 0x3f8: 0x0012, 0x3f9: 0x0012, 0x3fa: 0x0012, 0x3fb: 0x0012,
- 0x3fc: 0x0015, 0x3fd: 0x0015, 0x3fe: 0xcecb, 0x3ff: 0xcf8b,
- // Block 0x10, offset 0x400
- 0x400: 0x0113, 0x401: 0x0112, 0x402: 0x0113, 0x403: 0x0112, 0x404: 0x0113, 0x405: 0x0112,
- 0x406: 0x0113, 0x407: 0x0112, 0x408: 0x0014, 0x409: 0x0004, 0x40a: 0x0004, 0x40b: 0x0713,
- 0x40c: 0x0712, 0x40d: 0xd04b, 0x40e: 0x0012, 0x40f: 0x0010, 0x410: 0x0113, 0x411: 0x0112,
- 0x412: 0x0113, 0x413: 0x0112, 0x414: 0x0012, 0x415: 0x0012, 0x416: 0x0113, 0x417: 0x0112,
- 0x418: 0x0113, 0x419: 0x0112, 0x41a: 0x0113, 0x41b: 0x0112, 0x41c: 0x0113, 0x41d: 0x0112,
- 0x41e: 0x0113, 0x41f: 0x0112, 0x420: 0x0113, 0x421: 0x0112, 0x422: 0x0113, 0x423: 0x0112,
- 0x424: 0x0113, 0x425: 0x0112, 0x426: 0x0113, 0x427: 0x0112, 0x428: 0x0113, 0x429: 0x0112,
- 0x42a: 0xd10b, 0x42b: 0xd1cb, 0x42c: 0xd28b, 0x42d: 0xd34b, 0x42e: 0xd40b,
- 0x430: 0xd4cb, 0x431: 0xd58b, 0x432: 0xd64b, 0x433: 0xac53, 0x434: 0x0113, 0x435: 0x0112,
- 0x436: 0x0113, 0x437: 0x0112,
- // Block 0x11, offset 0x440
- 0x440: 0xd70a, 0x441: 0xd80a, 0x442: 0xd90a, 0x443: 0xda0a, 0x444: 0xdb6a, 0x445: 0xdcca,
- 0x446: 0xddca,
- 0x453: 0xdeca, 0x454: 0xe08a, 0x455: 0xe24a, 0x456: 0xe40a, 0x457: 0xe5ca,
- 0x45d: 0x0010,
- 0x45e: 0x0034, 0x45f: 0x0010, 0x460: 0x0010, 0x461: 0x0010, 0x462: 0x0010, 0x463: 0x0010,
- 0x464: 0x0010, 0x465: 0x0010, 0x466: 0x0010, 0x467: 0x0010, 0x468: 0x0010,
- 0x46a: 0x0010, 0x46b: 0x0010, 0x46c: 0x0010, 0x46d: 0x0010, 0x46e: 0x0010, 0x46f: 0x0010,
- 0x470: 0x0010, 0x471: 0x0010, 0x472: 0x0010, 0x473: 0x0010, 0x474: 0x0010, 0x475: 0x0010,
- 0x476: 0x0010, 0x478: 0x0010, 0x479: 0x0010, 0x47a: 0x0010, 0x47b: 0x0010,
- 0x47c: 0x0010, 0x47e: 0x0010,
- // Block 0x12, offset 0x480
- 0x480: 0x2213, 0x481: 0x2213, 0x482: 0x2613, 0x483: 0x2613, 0x484: 0x2213, 0x485: 0x2213,
- 0x486: 0x2e13, 0x487: 0x2e13, 0x488: 0x2213, 0x489: 0x2213, 0x48a: 0x2613, 0x48b: 0x2613,
- 0x48c: 0x2213, 0x48d: 0x2213, 0x48e: 0x3e13, 0x48f: 0x3e13, 0x490: 0x2213, 0x491: 0x2213,
- 0x492: 0x2613, 0x493: 0x2613, 0x494: 0x2213, 0x495: 0x2213, 0x496: 0x2e13, 0x497: 0x2e13,
- 0x498: 0x2213, 0x499: 0x2213, 0x49a: 0x2613, 0x49b: 0x2613, 0x49c: 0x2213, 0x49d: 0x2213,
- 0x49e: 0xb553, 0x49f: 0xb553, 0x4a0: 0xb853, 0x4a1: 0xb853, 0x4a2: 0x2212, 0x4a3: 0x2212,
- 0x4a4: 0x2612, 0x4a5: 0x2612, 0x4a6: 0x2212, 0x4a7: 0x2212, 0x4a8: 0x2e12, 0x4a9: 0x2e12,
- 0x4aa: 0x2212, 0x4ab: 0x2212, 0x4ac: 0x2612, 0x4ad: 0x2612, 0x4ae: 0x2212, 0x4af: 0x2212,
- 0x4b0: 0x3e12, 0x4b1: 0x3e12, 0x4b2: 0x2212, 0x4b3: 0x2212, 0x4b4: 0x2612, 0x4b5: 0x2612,
- 0x4b6: 0x2212, 0x4b7: 0x2212, 0x4b8: 0x2e12, 0x4b9: 0x2e12, 0x4ba: 0x2212, 0x4bb: 0x2212,
- 0x4bc: 0x2612, 0x4bd: 0x2612, 0x4be: 0x2212, 0x4bf: 0x2212,
- // Block 0x13, offset 0x4c0
- 0x4c2: 0x0010,
- 0x4c7: 0x0010, 0x4c9: 0x0010, 0x4cb: 0x0010,
- 0x4cd: 0x0010, 0x4ce: 0x0010, 0x4cf: 0x0010, 0x4d1: 0x0010,
- 0x4d2: 0x0010, 0x4d4: 0x0010, 0x4d7: 0x0010,
- 0x4d9: 0x0010, 0x4db: 0x0010, 0x4dd: 0x0010,
- 0x4df: 0x0010, 0x4e1: 0x0010, 0x4e2: 0x0010,
- 0x4e4: 0x0010, 0x4e7: 0x0010, 0x4e8: 0x0010, 0x4e9: 0x0010,
- 0x4ea: 0x0010, 0x4ec: 0x0010, 0x4ed: 0x0010, 0x4ee: 0x0010, 0x4ef: 0x0010,
- 0x4f0: 0x0010, 0x4f1: 0x0010, 0x4f2: 0x0010, 0x4f4: 0x0010, 0x4f5: 0x0010,
- 0x4f6: 0x0010, 0x4f7: 0x0010, 0x4f9: 0x0010, 0x4fa: 0x0010, 0x4fb: 0x0010,
- 0x4fc: 0x0010, 0x4fe: 0x0010,
-}
-
-// caseIndex: 25 blocks, 1600 entries, 3200 bytes
-// Block 0 is the zero block.
-var caseIndex = [1600]uint16{
- // Block 0x0, offset 0x0
- // Block 0x1, offset 0x40
- // Block 0x2, offset 0x80
- // Block 0x3, offset 0xc0
- 0xc2: 0x12, 0xc3: 0x13, 0xc4: 0x14, 0xc5: 0x15, 0xc6: 0x01, 0xc7: 0x02,
- 0xc8: 0x16, 0xc9: 0x03, 0xca: 0x04, 0xcb: 0x17, 0xcc: 0x18, 0xcd: 0x05, 0xce: 0x06, 0xcf: 0x07,
- 0xd0: 0x19, 0xd1: 0x1a, 0xd2: 0x1b, 0xd3: 0x1c, 0xd4: 0x1d, 0xd5: 0x1e, 0xd6: 0x1f, 0xd7: 0x20,
- 0xd8: 0x21, 0xd9: 0x22, 0xda: 0x23, 0xdb: 0x24, 0xdc: 0x25, 0xdd: 0x26, 0xde: 0x27, 0xdf: 0x28,
- 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05,
- 0xea: 0x06, 0xeb: 0x07, 0xec: 0x07, 0xed: 0x08, 0xef: 0x09,
- 0xf0: 0x14, 0xf3: 0x16,
- // Block 0x4, offset 0x100
- 0x120: 0x29, 0x121: 0x2a, 0x122: 0x2b, 0x123: 0x2c, 0x124: 0x2d, 0x125: 0x2e, 0x126: 0x2f, 0x127: 0x30,
- 0x128: 0x31, 0x129: 0x32, 0x12a: 0x33, 0x12b: 0x34, 0x12c: 0x35, 0x12d: 0x36, 0x12e: 0x37, 0x12f: 0x38,
- 0x130: 0x39, 0x131: 0x3a, 0x132: 0x3b, 0x133: 0x3c, 0x134: 0x3d, 0x135: 0x3e, 0x136: 0x3f, 0x137: 0x40,
- 0x138: 0x41, 0x139: 0x42, 0x13a: 0x43, 0x13b: 0x44, 0x13c: 0x45, 0x13d: 0x46, 0x13e: 0x47, 0x13f: 0x48,
- // Block 0x5, offset 0x140
- 0x140: 0x49, 0x141: 0x4a, 0x142: 0x4b, 0x143: 0x4c, 0x144: 0x23, 0x145: 0x23, 0x146: 0x23, 0x147: 0x23,
- 0x148: 0x23, 0x149: 0x4d, 0x14a: 0x4e, 0x14b: 0x4f, 0x14c: 0x50, 0x14d: 0x51, 0x14e: 0x52, 0x14f: 0x53,
- 0x150: 0x54, 0x151: 0x23, 0x152: 0x23, 0x153: 0x23, 0x154: 0x23, 0x155: 0x23, 0x156: 0x23, 0x157: 0x23,
- 0x158: 0x23, 0x159: 0x55, 0x15a: 0x56, 0x15b: 0x57, 0x15c: 0x58, 0x15d: 0x59, 0x15e: 0x5a, 0x15f: 0x5b,
- 0x160: 0x5c, 0x161: 0x5d, 0x162: 0x5e, 0x163: 0x5f, 0x164: 0x60, 0x165: 0x61, 0x167: 0x62,
- 0x168: 0x63, 0x169: 0x64, 0x16a: 0x65, 0x16c: 0x66, 0x16d: 0x67, 0x16e: 0x68, 0x16f: 0x69,
- 0x170: 0x6a, 0x171: 0x6b, 0x172: 0x6c, 0x173: 0x6d, 0x174: 0x6e, 0x175: 0x6f, 0x176: 0x70, 0x177: 0x71,
- 0x178: 0x72, 0x179: 0x72, 0x17a: 0x73, 0x17b: 0x72, 0x17c: 0x74, 0x17d: 0x08, 0x17e: 0x09, 0x17f: 0x0a,
- // Block 0x6, offset 0x180
- 0x180: 0x75, 0x181: 0x76, 0x182: 0x77, 0x183: 0x78, 0x184: 0x0b, 0x185: 0x79, 0x186: 0x7a,
- 0x192: 0x7b, 0x193: 0x0c,
- 0x1b0: 0x7c, 0x1b1: 0x0d, 0x1b2: 0x72, 0x1b3: 0x7d, 0x1b4: 0x7e, 0x1b5: 0x7f, 0x1b6: 0x80, 0x1b7: 0x81,
- 0x1b8: 0x82,
- // Block 0x7, offset 0x1c0
- 0x1c0: 0x83, 0x1c2: 0x84, 0x1c3: 0x85, 0x1c4: 0x86, 0x1c5: 0x23, 0x1c6: 0x87,
- // Block 0x8, offset 0x200
- 0x200: 0x88, 0x201: 0x23, 0x202: 0x23, 0x203: 0x23, 0x204: 0x23, 0x205: 0x23, 0x206: 0x23, 0x207: 0x23,
- 0x208: 0x23, 0x209: 0x23, 0x20a: 0x23, 0x20b: 0x23, 0x20c: 0x23, 0x20d: 0x23, 0x20e: 0x23, 0x20f: 0x23,
- 0x210: 0x23, 0x211: 0x23, 0x212: 0x89, 0x213: 0x8a, 0x214: 0x23, 0x215: 0x23, 0x216: 0x23, 0x217: 0x23,
- 0x218: 0x8b, 0x219: 0x8c, 0x21a: 0x8d, 0x21b: 0x8e, 0x21c: 0x8f, 0x21d: 0x90, 0x21e: 0x0e, 0x21f: 0x91,
- 0x220: 0x92, 0x221: 0x93, 0x222: 0x23, 0x223: 0x94, 0x224: 0x95, 0x225: 0x96, 0x226: 0x97, 0x227: 0x98,
- 0x228: 0x99, 0x229: 0x9a, 0x22a: 0x9b, 0x22b: 0x9c, 0x22c: 0x9d, 0x22d: 0x9e, 0x22e: 0x9f, 0x22f: 0xa0,
- 0x230: 0x23, 0x231: 0x23, 0x232: 0x23, 0x233: 0x23, 0x234: 0x23, 0x235: 0x23, 0x236: 0x23, 0x237: 0x23,
- 0x238: 0x23, 0x239: 0x23, 0x23a: 0x23, 0x23b: 0x23, 0x23c: 0x23, 0x23d: 0x23, 0x23e: 0x23, 0x23f: 0x23,
- // Block 0x9, offset 0x240
- 0x240: 0x23, 0x241: 0x23, 0x242: 0x23, 0x243: 0x23, 0x244: 0x23, 0x245: 0x23, 0x246: 0x23, 0x247: 0x23,
- 0x248: 0x23, 0x249: 0x23, 0x24a: 0x23, 0x24b: 0x23, 0x24c: 0x23, 0x24d: 0x23, 0x24e: 0x23, 0x24f: 0x23,
- 0x250: 0x23, 0x251: 0x23, 0x252: 0x23, 0x253: 0x23, 0x254: 0x23, 0x255: 0x23, 0x256: 0x23, 0x257: 0x23,
- 0x258: 0x23, 0x259: 0x23, 0x25a: 0x23, 0x25b: 0x23, 0x25c: 0x23, 0x25d: 0x23, 0x25e: 0x23, 0x25f: 0x23,
- 0x260: 0x23, 0x261: 0x23, 0x262: 0x23, 0x263: 0x23, 0x264: 0x23, 0x265: 0x23, 0x266: 0x23, 0x267: 0x23,
- 0x268: 0x23, 0x269: 0x23, 0x26a: 0x23, 0x26b: 0x23, 0x26c: 0x23, 0x26d: 0x23, 0x26e: 0x23, 0x26f: 0x23,
- 0x270: 0x23, 0x271: 0x23, 0x272: 0x23, 0x273: 0x23, 0x274: 0x23, 0x275: 0x23, 0x276: 0x23, 0x277: 0x23,
- 0x278: 0x23, 0x279: 0x23, 0x27a: 0x23, 0x27b: 0x23, 0x27c: 0x23, 0x27d: 0x23, 0x27e: 0x23, 0x27f: 0x23,
- // Block 0xa, offset 0x280
- 0x280: 0x23, 0x281: 0x23, 0x282: 0x23, 0x283: 0x23, 0x284: 0x23, 0x285: 0x23, 0x286: 0x23, 0x287: 0x23,
- 0x288: 0x23, 0x289: 0x23, 0x28a: 0x23, 0x28b: 0x23, 0x28c: 0x23, 0x28d: 0x23, 0x28e: 0x23, 0x28f: 0x23,
- 0x290: 0x23, 0x291: 0x23, 0x292: 0x23, 0x293: 0x23, 0x294: 0x23, 0x295: 0x23, 0x296: 0x23, 0x297: 0x23,
- 0x298: 0x23, 0x299: 0x23, 0x29a: 0x23, 0x29b: 0x23, 0x29c: 0x23, 0x29d: 0x23, 0x29e: 0xa1, 0x29f: 0xa2,
- // Block 0xb, offset 0x2c0
- 0x2ec: 0x0f, 0x2ed: 0xa3, 0x2ee: 0xa4, 0x2ef: 0xa5,
- 0x2f0: 0x23, 0x2f1: 0x23, 0x2f2: 0x23, 0x2f3: 0x23, 0x2f4: 0xa6, 0x2f5: 0xa7, 0x2f6: 0xa8, 0x2f7: 0xa9,
- 0x2f8: 0xaa, 0x2f9: 0xab, 0x2fa: 0x23, 0x2fb: 0xac, 0x2fc: 0xad, 0x2fd: 0xae, 0x2fe: 0xaf, 0x2ff: 0xb0,
- // Block 0xc, offset 0x300
- 0x300: 0xb1, 0x301: 0xb2, 0x302: 0x23, 0x303: 0xb3, 0x305: 0xb4, 0x307: 0xb5,
- 0x30a: 0xb6, 0x30b: 0xb7, 0x30c: 0xb8, 0x30d: 0xb9, 0x30e: 0xba, 0x30f: 0xbb,
- 0x310: 0xbc, 0x311: 0xbd, 0x312: 0xbe, 0x313: 0xbf, 0x314: 0xc0, 0x315: 0xc1,
- 0x318: 0x23, 0x319: 0x23, 0x31a: 0x23, 0x31b: 0x23, 0x31c: 0xc2, 0x31d: 0xc3,
- 0x320: 0xc4, 0x321: 0xc5, 0x322: 0xc6, 0x323: 0xc7, 0x324: 0xc8, 0x326: 0xc9,
- 0x328: 0xca, 0x329: 0xcb, 0x32a: 0xcc, 0x32b: 0xcd, 0x32c: 0x5f, 0x32d: 0xce, 0x32e: 0xcf,
- 0x330: 0x23, 0x331: 0xd0, 0x332: 0xd1, 0x333: 0xd2,
- // Block 0xd, offset 0x340
- 0x340: 0xd3, 0x341: 0xd4, 0x342: 0xd5, 0x343: 0xd6, 0x344: 0xd7, 0x345: 0xd8, 0x346: 0xd9, 0x347: 0xda,
- 0x348: 0xdb, 0x34a: 0xdc, 0x34b: 0xdd, 0x34c: 0xde, 0x34d: 0xdf,
- 0x350: 0xe0, 0x351: 0xe1, 0x352: 0xe2, 0x353: 0xe3, 0x356: 0xe4, 0x357: 0xe5,
- 0x358: 0xe6, 0x359: 0xe7, 0x35a: 0xe8, 0x35b: 0xe9, 0x35c: 0xea,
- 0x362: 0xeb, 0x363: 0xec,
- 0x36b: 0xed,
- 0x370: 0xee, 0x371: 0xef, 0x372: 0xf0,
- // Block 0xe, offset 0x380
- 0x380: 0x23, 0x381: 0x23, 0x382: 0x23, 0x383: 0x23, 0x384: 0x23, 0x385: 0x23, 0x386: 0x23, 0x387: 0x23,
- 0x388: 0x23, 0x389: 0x23, 0x38a: 0x23, 0x38b: 0x23, 0x38c: 0x23, 0x38d: 0x23, 0x38e: 0xf1,
- 0x390: 0x23, 0x391: 0xf2, 0x392: 0x23, 0x393: 0x23, 0x394: 0x23, 0x395: 0xf3,
- // Block 0xf, offset 0x3c0
- 0x3c0: 0x23, 0x3c1: 0x23, 0x3c2: 0x23, 0x3c3: 0x23, 0x3c4: 0x23, 0x3c5: 0x23, 0x3c6: 0x23, 0x3c7: 0x23,
- 0x3c8: 0x23, 0x3c9: 0x23, 0x3ca: 0x23, 0x3cb: 0x23, 0x3cc: 0x23, 0x3cd: 0x23, 0x3ce: 0x23, 0x3cf: 0x23,
- 0x3d0: 0xf2,
- // Block 0x10, offset 0x400
- 0x410: 0x23, 0x411: 0x23, 0x412: 0x23, 0x413: 0x23, 0x414: 0x23, 0x415: 0x23, 0x416: 0x23, 0x417: 0x23,
- 0x418: 0x23, 0x419: 0xf4,
- // Block 0x11, offset 0x440
- 0x460: 0x23, 0x461: 0x23, 0x462: 0x23, 0x463: 0x23, 0x464: 0x23, 0x465: 0x23, 0x466: 0x23, 0x467: 0x23,
- 0x468: 0xed, 0x469: 0xf5, 0x46b: 0xf6, 0x46c: 0xf7, 0x46d: 0xf8, 0x46e: 0xf9,
- 0x47c: 0x23, 0x47d: 0xfa, 0x47e: 0xfb, 0x47f: 0xfc,
- // Block 0x12, offset 0x480
- 0x4b0: 0x23, 0x4b1: 0xfd, 0x4b2: 0xfe,
- // Block 0x13, offset 0x4c0
- 0x4c5: 0xff, 0x4c6: 0x100,
- 0x4c9: 0x101,
- 0x4d0: 0x102, 0x4d1: 0x103, 0x4d2: 0x104, 0x4d3: 0x105, 0x4d4: 0x106, 0x4d5: 0x107, 0x4d6: 0x108, 0x4d7: 0x109,
- 0x4d8: 0x10a, 0x4d9: 0x10b, 0x4da: 0x10c, 0x4db: 0x10d, 0x4dc: 0x10e, 0x4dd: 0x10f, 0x4de: 0x110, 0x4df: 0x111,
- 0x4e8: 0x112, 0x4e9: 0x113, 0x4ea: 0x114,
- // Block 0x14, offset 0x500
- 0x500: 0x115,
- 0x520: 0x23, 0x521: 0x23, 0x522: 0x23, 0x523: 0x116, 0x524: 0x10, 0x525: 0x117,
- 0x538: 0x118, 0x539: 0x11, 0x53a: 0x119,
- // Block 0x15, offset 0x540
- 0x544: 0x11a, 0x545: 0x11b, 0x546: 0x11c,
- 0x54f: 0x11d,
- // Block 0x16, offset 0x580
- 0x590: 0x0a, 0x591: 0x0b, 0x592: 0x0c, 0x593: 0x0d, 0x594: 0x0e, 0x596: 0x0f,
- 0x59b: 0x10, 0x59d: 0x11, 0x59e: 0x12, 0x59f: 0x13,
- // Block 0x17, offset 0x5c0
- 0x5c0: 0x11e, 0x5c1: 0x11f, 0x5c4: 0x11f, 0x5c5: 0x11f, 0x5c6: 0x11f, 0x5c7: 0x120,
- // Block 0x18, offset 0x600
- 0x620: 0x15,
-}
-
-// sparseOffsets: 272 entries, 544 bytes
-var sparseOffsets = []uint16{0x0, 0x9, 0xf, 0x18, 0x24, 0x2e, 0x3a, 0x3d, 0x41, 0x44, 0x48, 0x52, 0x54, 0x59, 0x69, 0x70, 0x75, 0x83, 0x84, 0x92, 0xa1, 0xab, 0xae, 0xb4, 0xbc, 0xbe, 0xc0, 0xce, 0xd4, 0xe2, 0xed, 0xf8, 0x103, 0x10f, 0x119, 0x124, 0x12f, 0x13b, 0x147, 0x14f, 0x157, 0x161, 0x16c, 0x178, 0x17e, 0x189, 0x18e, 0x196, 0x199, 0x19e, 0x1a2, 0x1a6, 0x1ad, 0x1b6, 0x1be, 0x1bf, 0x1c8, 0x1cf, 0x1d7, 0x1dd, 0x1e3, 0x1e8, 0x1ec, 0x1ef, 0x1f1, 0x1f4, 0x1f9, 0x1fa, 0x1fc, 0x1fe, 0x200, 0x207, 0x20c, 0x210, 0x219, 0x21c, 0x21f, 0x225, 0x226, 0x231, 0x232, 0x233, 0x238, 0x245, 0x24d, 0x255, 0x25e, 0x267, 0x270, 0x275, 0x278, 0x281, 0x28e, 0x290, 0x297, 0x299, 0x2a4, 0x2a5, 0x2b0, 0x2b8, 0x2c0, 0x2c6, 0x2c7, 0x2d5, 0x2da, 0x2dd, 0x2e2, 0x2e6, 0x2ec, 0x2f1, 0x2f4, 0x2f9, 0x2fe, 0x2ff, 0x305, 0x307, 0x308, 0x30a, 0x30c, 0x30f, 0x310, 0x312, 0x315, 0x31b, 0x31f, 0x321, 0x327, 0x32e, 0x332, 0x33b, 0x33c, 0x344, 0x348, 0x34d, 0x355, 0x35b, 0x361, 0x36b, 0x370, 0x379, 0x37f, 0x386, 0x38a, 0x392, 0x394, 0x396, 0x399, 0x39b, 0x39d, 0x39e, 0x39f, 0x3a1, 0x3a3, 0x3a9, 0x3ae, 0x3b0, 0x3b6, 0x3b9, 0x3bb, 0x3c1, 0x3c6, 0x3c8, 0x3c9, 0x3ca, 0x3cb, 0x3cd, 0x3cf, 0x3d1, 0x3d4, 0x3d6, 0x3d9, 0x3e1, 0x3e4, 0x3e8, 0x3f0, 0x3f2, 0x3f3, 0x3f4, 0x3f6, 0x3fc, 0x3fe, 0x3ff, 0x401, 0x403, 0x405, 0x412, 0x413, 0x414, 0x418, 0x41a, 0x41b, 0x41c, 0x41d, 0x41e, 0x422, 0x426, 0x42c, 0x42e, 0x435, 0x438, 0x43c, 0x442, 0x44b, 0x451, 0x457, 0x461, 0x46b, 0x46d, 0x474, 0x47a, 0x480, 0x486, 0x489, 0x48f, 0x492, 0x49a, 0x49b, 0x4a2, 0x4a3, 0x4a6, 0x4a7, 0x4ad, 0x4b0, 0x4b8, 0x4b9, 0x4ba, 0x4bb, 0x4bc, 0x4be, 0x4c0, 0x4c2, 0x4c6, 0x4c7, 0x4c9, 0x4ca, 0x4cb, 0x4cd, 0x4d2, 0x4d7, 0x4db, 0x4dc, 0x4df, 0x4e3, 0x4ee, 0x4f2, 0x4fa, 0x4ff, 0x503, 0x506, 0x50a, 0x50d, 0x510, 0x515, 0x519, 0x51d, 0x521, 0x525, 0x527, 0x529, 0x52c, 0x531, 0x533, 0x538, 0x541, 0x546, 0x547, 0x54a, 0x54b, 0x54c, 0x54e, 0x54f, 0x550}
-
-// sparseValues: 1360 entries, 5440 bytes
-var sparseValues = [1360]valueRange{
- // Block 0x0, offset 0x0
- {value: 0x0004, lo: 0xa8, hi: 0xa8},
- {value: 0x0012, lo: 0xaa, hi: 0xaa},
- {value: 0x0014, lo: 0xad, hi: 0xad},
- {value: 0x0004, lo: 0xaf, hi: 0xaf},
- {value: 0x0004, lo: 0xb4, hi: 0xb4},
- {value: 0x002a, lo: 0xb5, hi: 0xb5},
- {value: 0x0054, lo: 0xb7, hi: 0xb7},
- {value: 0x0004, lo: 0xb8, hi: 0xb8},
- {value: 0x0012, lo: 0xba, hi: 0xba},
- // Block 0x1, offset 0x9
- {value: 0x2013, lo: 0x80, hi: 0x96},
- {value: 0x2013, lo: 0x98, hi: 0x9e},
- {value: 0x00ea, lo: 0x9f, hi: 0x9f},
- {value: 0x2012, lo: 0xa0, hi: 0xb6},
- {value: 0x2012, lo: 0xb8, hi: 0xbe},
- {value: 0x0252, lo: 0xbf, hi: 0xbf},
- // Block 0x2, offset 0xf
- {value: 0x0117, lo: 0x80, hi: 0xaf},
- {value: 0x01eb, lo: 0xb0, hi: 0xb0},
- {value: 0x02ea, lo: 0xb1, hi: 0xb1},
- {value: 0x0117, lo: 0xb2, hi: 0xb7},
- {value: 0x0012, lo: 0xb8, hi: 0xb8},
- {value: 0x0316, lo: 0xb9, hi: 0xba},
- {value: 0x0716, lo: 0xbb, hi: 0xbc},
- {value: 0x0316, lo: 0xbd, hi: 0xbe},
- {value: 0x0553, lo: 0xbf, hi: 0xbf},
- // Block 0x3, offset 0x18
- {value: 0x0552, lo: 0x80, hi: 0x80},
- {value: 0x0316, lo: 0x81, hi: 0x82},
- {value: 0x0716, lo: 0x83, hi: 0x84},
- {value: 0x0316, lo: 0x85, hi: 0x86},
- {value: 0x0f16, lo: 0x87, hi: 0x88},
- {value: 0x034a, lo: 0x89, hi: 0x89},
- {value: 0x0117, lo: 0x8a, hi: 0xb7},
- {value: 0x0253, lo: 0xb8, hi: 0xb8},
- {value: 0x0316, lo: 0xb9, hi: 0xba},
- {value: 0x0716, lo: 0xbb, hi: 0xbc},
- {value: 0x0316, lo: 0xbd, hi: 0xbe},
- {value: 0x044a, lo: 0xbf, hi: 0xbf},
- // Block 0x4, offset 0x24
- {value: 0x0117, lo: 0x80, hi: 0x9f},
- {value: 0x2f53, lo: 0xa0, hi: 0xa0},
- {value: 0x0012, lo: 0xa1, hi: 0xa1},
- {value: 0x0117, lo: 0xa2, hi: 0xb3},
- {value: 0x0012, lo: 0xb4, hi: 0xb9},
- {value: 0x10cb, lo: 0xba, hi: 0xba},
- {value: 0x0716, lo: 0xbb, hi: 0xbc},
- {value: 0x2953, lo: 0xbd, hi: 0xbd},
- {value: 0x11cb, lo: 0xbe, hi: 0xbe},
- {value: 0x12ca, lo: 0xbf, hi: 0xbf},
- // Block 0x5, offset 0x2e
- {value: 0x0015, lo: 0x80, hi: 0x81},
- {value: 0x0004, lo: 0x82, hi: 0x85},
- {value: 0x0014, lo: 0x86, hi: 0x91},
- {value: 0x0004, lo: 0x92, hi: 0x96},
- {value: 0x0054, lo: 0x97, hi: 0x97},
- {value: 0x0004, lo: 0x98, hi: 0x9f},
- {value: 0x0015, lo: 0xa0, hi: 0xa4},
- {value: 0x0004, lo: 0xa5, hi: 0xab},
- {value: 0x0014, lo: 0xac, hi: 0xac},
- {value: 0x0004, lo: 0xad, hi: 0xad},
- {value: 0x0014, lo: 0xae, hi: 0xae},
- {value: 0x0004, lo: 0xaf, hi: 0xbf},
- // Block 0x6, offset 0x3a
- {value: 0x0024, lo: 0x80, hi: 0x94},
- {value: 0x0034, lo: 0x95, hi: 0xbc},
- {value: 0x0024, lo: 0xbd, hi: 0xbf},
- // Block 0x7, offset 0x3d
- {value: 0x6553, lo: 0x80, hi: 0x8f},
- {value: 0x2013, lo: 0x90, hi: 0x9f},
- {value: 0x5f53, lo: 0xa0, hi: 0xaf},
- {value: 0x2012, lo: 0xb0, hi: 0xbf},
- // Block 0x8, offset 0x41
- {value: 0x5f52, lo: 0x80, hi: 0x8f},
- {value: 0x6552, lo: 0x90, hi: 0x9f},
- {value: 0x0117, lo: 0xa0, hi: 0xbf},
- // Block 0x9, offset 0x44
- {value: 0x0117, lo: 0x80, hi: 0x81},
- {value: 0x0024, lo: 0x83, hi: 0x87},
- {value: 0x0014, lo: 0x88, hi: 0x89},
- {value: 0x0117, lo: 0x8a, hi: 0xbf},
- // Block 0xa, offset 0x48
- {value: 0x0f13, lo: 0x80, hi: 0x80},
- {value: 0x0316, lo: 0x81, hi: 0x82},
- {value: 0x0716, lo: 0x83, hi: 0x84},
- {value: 0x0316, lo: 0x85, hi: 0x86},
- {value: 0x0f16, lo: 0x87, hi: 0x88},
- {value: 0x0316, lo: 0x89, hi: 0x8a},
- {value: 0x0716, lo: 0x8b, hi: 0x8c},
- {value: 0x0316, lo: 0x8d, hi: 0x8e},
- {value: 0x0f12, lo: 0x8f, hi: 0x8f},
- {value: 0x0117, lo: 0x90, hi: 0xbf},
- // Block 0xb, offset 0x52
- {value: 0x0117, lo: 0x80, hi: 0xaf},
- {value: 0x6553, lo: 0xb1, hi: 0xbf},
- // Block 0xc, offset 0x54
- {value: 0x3013, lo: 0x80, hi: 0x8f},
- {value: 0x6853, lo: 0x90, hi: 0x96},
- {value: 0x0014, lo: 0x99, hi: 0x99},
- {value: 0x6552, lo: 0xa1, hi: 0xaf},
- {value: 0x3012, lo: 0xb0, hi: 0xbf},
- // Block 0xd, offset 0x59
- {value: 0x6852, lo: 0x80, hi: 0x86},
- {value: 0x27aa, lo: 0x87, hi: 0x87},
- {value: 0x0034, lo: 0x91, hi: 0x91},
- {value: 0x0024, lo: 0x92, hi: 0x95},
- {value: 0x0034, lo: 0x96, hi: 0x96},
- {value: 0x0024, lo: 0x97, hi: 0x99},
- {value: 0x0034, lo: 0x9a, hi: 0x9b},
- {value: 0x0024, lo: 0x9c, hi: 0xa1},
- {value: 0x0034, lo: 0xa2, hi: 0xa7},
- {value: 0x0024, lo: 0xa8, hi: 0xa9},
- {value: 0x0034, lo: 0xaa, hi: 0xaa},
- {value: 0x0024, lo: 0xab, hi: 0xac},
- {value: 0x0034, lo: 0xad, hi: 0xae},
- {value: 0x0024, lo: 0xaf, hi: 0xaf},
- {value: 0x0034, lo: 0xb0, hi: 0xbd},
- {value: 0x0034, lo: 0xbf, hi: 0xbf},
- // Block 0xe, offset 0x69
- {value: 0x0034, lo: 0x81, hi: 0x82},
- {value: 0x0024, lo: 0x84, hi: 0x84},
- {value: 0x0034, lo: 0x85, hi: 0x85},
- {value: 0x0034, lo: 0x87, hi: 0x87},
- {value: 0x0010, lo: 0x90, hi: 0xaa},
- {value: 0x0010, lo: 0xb0, hi: 0xb3},
- {value: 0x0054, lo: 0xb4, hi: 0xb4},
- // Block 0xf, offset 0x70
- {value: 0x0014, lo: 0x80, hi: 0x85},
- {value: 0x0024, lo: 0x90, hi: 0x97},
- {value: 0x0034, lo: 0x98, hi: 0x9a},
- {value: 0x0014, lo: 0x9c, hi: 0x9c},
- {value: 0x0010, lo: 0xa0, hi: 0xbf},
- // Block 0x10, offset 0x75
- {value: 0x0014, lo: 0x80, hi: 0x80},
- {value: 0x0010, lo: 0x81, hi: 0x8a},
- {value: 0x0034, lo: 0x8b, hi: 0x92},
- {value: 0x0024, lo: 0x93, hi: 0x94},
- {value: 0x0034, lo: 0x95, hi: 0x96},
- {value: 0x0024, lo: 0x97, hi: 0x9b},
- {value: 0x0034, lo: 0x9c, hi: 0x9c},
- {value: 0x0024, lo: 0x9d, hi: 0x9e},
- {value: 0x0034, lo: 0x9f, hi: 0x9f},
- {value: 0x0010, lo: 0xa0, hi: 0xa9},
- {value: 0x0010, lo: 0xab, hi: 0xab},
- {value: 0x0010, lo: 0xae, hi: 0xaf},
- {value: 0x0034, lo: 0xb0, hi: 0xb0},
- {value: 0x0010, lo: 0xb1, hi: 0xbf},
- // Block 0x11, offset 0x83
- {value: 0x0010, lo: 0x80, hi: 0xbf},
- // Block 0x12, offset 0x84
- {value: 0x0010, lo: 0x80, hi: 0x93},
- {value: 0x0010, lo: 0x95, hi: 0x95},
- {value: 0x0024, lo: 0x96, hi: 0x9c},
- {value: 0x0014, lo: 0x9d, hi: 0x9d},
- {value: 0x0024, lo: 0x9f, hi: 0xa2},
- {value: 0x0034, lo: 0xa3, hi: 0xa3},
- {value: 0x0024, lo: 0xa4, hi: 0xa4},
- {value: 0x0014, lo: 0xa5, hi: 0xa6},
- {value: 0x0024, lo: 0xa7, hi: 0xa8},
- {value: 0x0034, lo: 0xaa, hi: 0xaa},
- {value: 0x0024, lo: 0xab, hi: 0xac},
- {value: 0x0034, lo: 0xad, hi: 0xad},
- {value: 0x0010, lo: 0xae, hi: 0xbc},
- {value: 0x0010, lo: 0xbf, hi: 0xbf},
- // Block 0x13, offset 0x92
- {value: 0x0014, lo: 0x8f, hi: 0x8f},
- {value: 0x0010, lo: 0x90, hi: 0x90},
- {value: 0x0034, lo: 0x91, hi: 0x91},
- {value: 0x0010, lo: 0x92, hi: 0xaf},
- {value: 0x0024, lo: 0xb0, hi: 0xb0},
- {value: 0x0034, lo: 0xb1, hi: 0xb1},
- {value: 0x0024, lo: 0xb2, hi: 0xb3},
- {value: 0x0034, lo: 0xb4, hi: 0xb4},
- {value: 0x0024, lo: 0xb5, hi: 0xb6},
- {value: 0x0034, lo: 0xb7, hi: 0xb9},
- {value: 0x0024, lo: 0xba, hi: 0xba},
- {value: 0x0034, lo: 0xbb, hi: 0xbc},
- {value: 0x0024, lo: 0xbd, hi: 0xbd},
- {value: 0x0034, lo: 0xbe, hi: 0xbe},
- {value: 0x0024, lo: 0xbf, hi: 0xbf},
- // Block 0x14, offset 0xa1
- {value: 0x0024, lo: 0x80, hi: 0x81},
- {value: 0x0034, lo: 0x82, hi: 0x82},
- {value: 0x0024, lo: 0x83, hi: 0x83},
- {value: 0x0034, lo: 0x84, hi: 0x84},
- {value: 0x0024, lo: 0x85, hi: 0x85},
- {value: 0x0034, lo: 0x86, hi: 0x86},
- {value: 0x0024, lo: 0x87, hi: 0x87},
- {value: 0x0034, lo: 0x88, hi: 0x88},
- {value: 0x0024, lo: 0x89, hi: 0x8a},
- {value: 0x0010, lo: 0x8d, hi: 0xbf},
- // Block 0x15, offset 0xab
- {value: 0x0010, lo: 0x80, hi: 0xa5},
- {value: 0x0014, lo: 0xa6, hi: 0xb0},
- {value: 0x0010, lo: 0xb1, hi: 0xb1},
- // Block 0x16, offset 0xae
- {value: 0x0010, lo: 0x80, hi: 0xaa},
- {value: 0x0024, lo: 0xab, hi: 0xb1},
- {value: 0x0034, lo: 0xb2, hi: 0xb2},
- {value: 0x0024, lo: 0xb3, hi: 0xb3},
- {value: 0x0014, lo: 0xb4, hi: 0xb5},
- {value: 0x0014, lo: 0xba, hi: 0xba},
- // Block 0x17, offset 0xb4
- {value: 0x0010, lo: 0x80, hi: 0x95},
- {value: 0x0024, lo: 0x96, hi: 0x99},
- {value: 0x0014, lo: 0x9a, hi: 0x9a},
- {value: 0x0024, lo: 0x9b, hi: 0xa3},
- {value: 0x0014, lo: 0xa4, hi: 0xa4},
- {value: 0x0024, lo: 0xa5, hi: 0xa7},
- {value: 0x0014, lo: 0xa8, hi: 0xa8},
- {value: 0x0024, lo: 0xa9, hi: 0xad},
- // Block 0x18, offset 0xbc
- {value: 0x0010, lo: 0x80, hi: 0x98},
- {value: 0x0034, lo: 0x99, hi: 0x9b},
- // Block 0x19, offset 0xbe
- {value: 0x0010, lo: 0xa0, hi: 0xb4},
- {value: 0x0010, lo: 0xb6, hi: 0xbd},
- // Block 0x1a, offset 0xc0
- {value: 0x0024, lo: 0x94, hi: 0xa1},
- {value: 0x0014, lo: 0xa2, hi: 0xa2},
- {value: 0x0034, lo: 0xa3, hi: 0xa3},
- {value: 0x0024, lo: 0xa4, hi: 0xa5},
- {value: 0x0034, lo: 0xa6, hi: 0xa6},
- {value: 0x0024, lo: 0xa7, hi: 0xa8},
- {value: 0x0034, lo: 0xa9, hi: 0xa9},
- {value: 0x0024, lo: 0xaa, hi: 0xac},
- {value: 0x0034, lo: 0xad, hi: 0xb2},
- {value: 0x0024, lo: 0xb3, hi: 0xb5},
- {value: 0x0034, lo: 0xb6, hi: 0xb6},
- {value: 0x0024, lo: 0xb7, hi: 0xb8},
- {value: 0x0034, lo: 0xb9, hi: 0xba},
- {value: 0x0024, lo: 0xbb, hi: 0xbf},
- // Block 0x1b, offset 0xce
- {value: 0x0014, lo: 0x80, hi: 0x82},
- {value: 0x0010, lo: 0x83, hi: 0xb9},
- {value: 0x0014, lo: 0xba, hi: 0xba},
- {value: 0x0010, lo: 0xbb, hi: 0xbb},
- {value: 0x0034, lo: 0xbc, hi: 0xbc},
- {value: 0x0010, lo: 0xbd, hi: 0xbf},
- // Block 0x1c, offset 0xd4
- {value: 0x0010, lo: 0x80, hi: 0x80},
- {value: 0x0014, lo: 0x81, hi: 0x88},
- {value: 0x0010, lo: 0x89, hi: 0x8c},
- {value: 0x0034, lo: 0x8d, hi: 0x8d},
- {value: 0x0010, lo: 0x8e, hi: 0x90},
- {value: 0x0024, lo: 0x91, hi: 0x91},
- {value: 0x0034, lo: 0x92, hi: 0x92},
- {value: 0x0024, lo: 0x93, hi: 0x94},
- {value: 0x0014, lo: 0x95, hi: 0x97},
- {value: 0x0010, lo: 0x98, hi: 0xa1},
- {value: 0x0014, lo: 0xa2, hi: 0xa3},
- {value: 0x0010, lo: 0xa6, hi: 0xaf},
- {value: 0x0014, lo: 0xb1, hi: 0xb1},
- {value: 0x0010, lo: 0xb2, hi: 0xbf},
- // Block 0x1d, offset 0xe2
- {value: 0x0010, lo: 0x80, hi: 0x80},
- {value: 0x0014, lo: 0x81, hi: 0x81},
- {value: 0x0010, lo: 0x82, hi: 0x83},
- {value: 0x0010, lo: 0x85, hi: 0x8c},
- {value: 0x0010, lo: 0x8f, hi: 0x90},
- {value: 0x0010, lo: 0x93, hi: 0xa8},
- {value: 0x0010, lo: 0xaa, hi: 0xb0},
- {value: 0x0010, lo: 0xb2, hi: 0xb2},
- {value: 0x0010, lo: 0xb6, hi: 0xb9},
- {value: 0x0034, lo: 0xbc, hi: 0xbc},
- {value: 0x0010, lo: 0xbd, hi: 0xbf},
- // Block 0x1e, offset 0xed
- {value: 0x0010, lo: 0x80, hi: 0x80},
- {value: 0x0014, lo: 0x81, hi: 0x84},
- {value: 0x0010, lo: 0x87, hi: 0x88},
- {value: 0x0010, lo: 0x8b, hi: 0x8c},
- {value: 0x0034, lo: 0x8d, hi: 0x8d},
- {value: 0x0010, lo: 0x8e, hi: 0x8e},
- {value: 0x0010, lo: 0x97, hi: 0x97},
- {value: 0x0010, lo: 0x9c, hi: 0x9d},
- {value: 0x0010, lo: 0x9f, hi: 0xa1},
- {value: 0x0014, lo: 0xa2, hi: 0xa3},
- {value: 0x0010, lo: 0xa6, hi: 0xb1},
- // Block 0x1f, offset 0xf8
- {value: 0x0014, lo: 0x81, hi: 0x82},
- {value: 0x0010, lo: 0x83, hi: 0x83},
- {value: 0x0010, lo: 0x85, hi: 0x8a},
- {value: 0x0010, lo: 0x8f, hi: 0x90},
- {value: 0x0010, lo: 0x93, hi: 0xa8},
- {value: 0x0010, lo: 0xaa, hi: 0xb0},
- {value: 0x0010, lo: 0xb2, hi: 0xb3},
- {value: 0x0010, lo: 0xb5, hi: 0xb6},
- {value: 0x0010, lo: 0xb8, hi: 0xb9},
- {value: 0x0034, lo: 0xbc, hi: 0xbc},
- {value: 0x0010, lo: 0xbe, hi: 0xbf},
- // Block 0x20, offset 0x103
- {value: 0x0010, lo: 0x80, hi: 0x80},
- {value: 0x0014, lo: 0x81, hi: 0x82},
- {value: 0x0014, lo: 0x87, hi: 0x88},
- {value: 0x0014, lo: 0x8b, hi: 0x8c},
- {value: 0x0034, lo: 0x8d, hi: 0x8d},
- {value: 0x0014, lo: 0x91, hi: 0x91},
- {value: 0x0010, lo: 0x99, hi: 0x9c},
- {value: 0x0010, lo: 0x9e, hi: 0x9e},
- {value: 0x0010, lo: 0xa6, hi: 0xaf},
- {value: 0x0014, lo: 0xb0, hi: 0xb1},
- {value: 0x0010, lo: 0xb2, hi: 0xb4},
- {value: 0x0014, lo: 0xb5, hi: 0xb5},
- // Block 0x21, offset 0x10f
- {value: 0x0014, lo: 0x81, hi: 0x82},
- {value: 0x0010, lo: 0x83, hi: 0x83},
- {value: 0x0010, lo: 0x85, hi: 0x8d},
- {value: 0x0010, lo: 0x8f, hi: 0x91},
- {value: 0x0010, lo: 0x93, hi: 0xa8},
- {value: 0x0010, lo: 0xaa, hi: 0xb0},
- {value: 0x0010, lo: 0xb2, hi: 0xb3},
- {value: 0x0010, lo: 0xb5, hi: 0xb9},
- {value: 0x0034, lo: 0xbc, hi: 0xbc},
- {value: 0x0010, lo: 0xbd, hi: 0xbf},
- // Block 0x22, offset 0x119
- {value: 0x0010, lo: 0x80, hi: 0x80},
- {value: 0x0014, lo: 0x81, hi: 0x85},
- {value: 0x0014, lo: 0x87, hi: 0x88},
- {value: 0x0010, lo: 0x89, hi: 0x89},
- {value: 0x0010, lo: 0x8b, hi: 0x8c},
- {value: 0x0034, lo: 0x8d, hi: 0x8d},
- {value: 0x0010, lo: 0x90, hi: 0x90},
- {value: 0x0010, lo: 0xa0, hi: 0xa1},
- {value: 0x0014, lo: 0xa2, hi: 0xa3},
- {value: 0x0010, lo: 0xa6, hi: 0xaf},
- {value: 0x0010, lo: 0xb9, hi: 0xb9},
- // Block 0x23, offset 0x124
- {value: 0x0014, lo: 0x81, hi: 0x81},
- {value: 0x0010, lo: 0x82, hi: 0x83},
- {value: 0x0010, lo: 0x85, hi: 0x8c},
- {value: 0x0010, lo: 0x8f, hi: 0x90},
- {value: 0x0010, lo: 0x93, hi: 0xa8},
- {value: 0x0010, lo: 0xaa, hi: 0xb0},
- {value: 0x0010, lo: 0xb2, hi: 0xb3},
- {value: 0x0010, lo: 0xb5, hi: 0xb9},
- {value: 0x0034, lo: 0xbc, hi: 0xbc},
- {value: 0x0010, lo: 0xbd, hi: 0xbe},
- {value: 0x0014, lo: 0xbf, hi: 0xbf},
- // Block 0x24, offset 0x12f
- {value: 0x0010, lo: 0x80, hi: 0x80},
- {value: 0x0014, lo: 0x81, hi: 0x84},
- {value: 0x0010, lo: 0x87, hi: 0x88},
- {value: 0x0010, lo: 0x8b, hi: 0x8c},
- {value: 0x0034, lo: 0x8d, hi: 0x8d},
- {value: 0x0014, lo: 0x96, hi: 0x96},
- {value: 0x0010, lo: 0x97, hi: 0x97},
- {value: 0x0010, lo: 0x9c, hi: 0x9d},
- {value: 0x0010, lo: 0x9f, hi: 0xa1},
- {value: 0x0014, lo: 0xa2, hi: 0xa3},
- {value: 0x0010, lo: 0xa6, hi: 0xaf},
- {value: 0x0010, lo: 0xb1, hi: 0xb1},
- // Block 0x25, offset 0x13b
- {value: 0x0014, lo: 0x82, hi: 0x82},
- {value: 0x0010, lo: 0x83, hi: 0x83},
- {value: 0x0010, lo: 0x85, hi: 0x8a},
- {value: 0x0010, lo: 0x8e, hi: 0x90},
- {value: 0x0010, lo: 0x92, hi: 0x95},
- {value: 0x0010, lo: 0x99, hi: 0x9a},
- {value: 0x0010, lo: 0x9c, hi: 0x9c},
- {value: 0x0010, lo: 0x9e, hi: 0x9f},
- {value: 0x0010, lo: 0xa3, hi: 0xa4},
- {value: 0x0010, lo: 0xa8, hi: 0xaa},
- {value: 0x0010, lo: 0xae, hi: 0xb9},
- {value: 0x0010, lo: 0xbe, hi: 0xbf},
- // Block 0x26, offset 0x147
- {value: 0x0014, lo: 0x80, hi: 0x80},
- {value: 0x0010, lo: 0x81, hi: 0x82},
- {value: 0x0010, lo: 0x86, hi: 0x88},
- {value: 0x0010, lo: 0x8a, hi: 0x8c},
- {value: 0x0034, lo: 0x8d, hi: 0x8d},
- {value: 0x0010, lo: 0x90, hi: 0x90},
- {value: 0x0010, lo: 0x97, hi: 0x97},
- {value: 0x0010, lo: 0xa6, hi: 0xaf},
- // Block 0x27, offset 0x14f
- {value: 0x0014, lo: 0x80, hi: 0x80},
- {value: 0x0010, lo: 0x81, hi: 0x83},
- {value: 0x0010, lo: 0x85, hi: 0x8c},
- {value: 0x0010, lo: 0x8e, hi: 0x90},
- {value: 0x0010, lo: 0x92, hi: 0xa8},
- {value: 0x0010, lo: 0xaa, hi: 0xb9},
- {value: 0x0010, lo: 0xbd, hi: 0xbd},
- {value: 0x0014, lo: 0xbe, hi: 0xbf},
- // Block 0x28, offset 0x157
- {value: 0x0014, lo: 0x80, hi: 0x80},
- {value: 0x0010, lo: 0x81, hi: 0x84},
- {value: 0x0014, lo: 0x86, hi: 0x88},
- {value: 0x0014, lo: 0x8a, hi: 0x8c},
- {value: 0x0034, lo: 0x8d, hi: 0x8d},
- {value: 0x0034, lo: 0x95, hi: 0x96},
- {value: 0x0010, lo: 0x98, hi: 0x9a},
- {value: 0x0010, lo: 0xa0, hi: 0xa1},
- {value: 0x0014, lo: 0xa2, hi: 0xa3},
- {value: 0x0010, lo: 0xa6, hi: 0xaf},
- // Block 0x29, offset 0x161
- {value: 0x0010, lo: 0x80, hi: 0x80},
- {value: 0x0014, lo: 0x81, hi: 0x81},
- {value: 0x0010, lo: 0x82, hi: 0x83},
- {value: 0x0010, lo: 0x85, hi: 0x8c},
- {value: 0x0010, lo: 0x8e, hi: 0x90},
- {value: 0x0010, lo: 0x92, hi: 0xa8},
- {value: 0x0010, lo: 0xaa, hi: 0xb3},
- {value: 0x0010, lo: 0xb5, hi: 0xb9},
- {value: 0x0034, lo: 0xbc, hi: 0xbc},
- {value: 0x0010, lo: 0xbd, hi: 0xbe},
- {value: 0x0014, lo: 0xbf, hi: 0xbf},
- // Block 0x2a, offset 0x16c
- {value: 0x0010, lo: 0x80, hi: 0x84},
- {value: 0x0014, lo: 0x86, hi: 0x86},
- {value: 0x0010, lo: 0x87, hi: 0x88},
- {value: 0x0010, lo: 0x8a, hi: 0x8b},
- {value: 0x0014, lo: 0x8c, hi: 0x8c},
- {value: 0x0034, lo: 0x8d, hi: 0x8d},
- {value: 0x0010, lo: 0x95, hi: 0x96},
- {value: 0x0010, lo: 0x9e, hi: 0x9e},
- {value: 0x0010, lo: 0xa0, hi: 0xa1},
- {value: 0x0014, lo: 0xa2, hi: 0xa3},
- {value: 0x0010, lo: 0xa6, hi: 0xaf},
- {value: 0x0010, lo: 0xb1, hi: 0xb2},
- // Block 0x2b, offset 0x178
- {value: 0x0014, lo: 0x81, hi: 0x81},
- {value: 0x0010, lo: 0x82, hi: 0x83},
- {value: 0x0010, lo: 0x85, hi: 0x8c},
- {value: 0x0010, lo: 0x8e, hi: 0x90},
- {value: 0x0010, lo: 0x92, hi: 0xba},
- {value: 0x0010, lo: 0xbd, hi: 0xbf},
- // Block 0x2c, offset 0x17e
- {value: 0x0010, lo: 0x80, hi: 0x80},
- {value: 0x0014, lo: 0x81, hi: 0x84},
- {value: 0x0010, lo: 0x86, hi: 0x88},
- {value: 0x0010, lo: 0x8a, hi: 0x8c},
- {value: 0x0034, lo: 0x8d, hi: 0x8d},
- {value: 0x0010, lo: 0x8e, hi: 0x8e},
- {value: 0x0010, lo: 0x94, hi: 0x97},
- {value: 0x0010, lo: 0x9f, hi: 0xa1},
- {value: 0x0014, lo: 0xa2, hi: 0xa3},
- {value: 0x0010, lo: 0xa6, hi: 0xaf},
- {value: 0x0010, lo: 0xba, hi: 0xbf},
- // Block 0x2d, offset 0x189
- {value: 0x0010, lo: 0x82, hi: 0x83},
- {value: 0x0010, lo: 0x85, hi: 0x96},
- {value: 0x0010, lo: 0x9a, hi: 0xb1},
- {value: 0x0010, lo: 0xb3, hi: 0xbb},
- {value: 0x0010, lo: 0xbd, hi: 0xbd},
- // Block 0x2e, offset 0x18e
- {value: 0x0010, lo: 0x80, hi: 0x86},
- {value: 0x0034, lo: 0x8a, hi: 0x8a},
- {value: 0x0010, lo: 0x8f, hi: 0x91},
- {value: 0x0014, lo: 0x92, hi: 0x94},
- {value: 0x0014, lo: 0x96, hi: 0x96},
- {value: 0x0010, lo: 0x98, hi: 0x9f},
- {value: 0x0010, lo: 0xa6, hi: 0xaf},
- {value: 0x0010, lo: 0xb2, hi: 0xb3},
- // Block 0x2f, offset 0x196
- {value: 0x0014, lo: 0xb1, hi: 0xb1},
- {value: 0x0014, lo: 0xb4, hi: 0xb7},
- {value: 0x0034, lo: 0xb8, hi: 0xba},
- // Block 0x30, offset 0x199
- {value: 0x0004, lo: 0x86, hi: 0x86},
- {value: 0x0014, lo: 0x87, hi: 0x87},
- {value: 0x0034, lo: 0x88, hi: 0x8b},
- {value: 0x0014, lo: 0x8c, hi: 0x8e},
- {value: 0x0010, lo: 0x90, hi: 0x99},
- // Block 0x31, offset 0x19e
- {value: 0x0014, lo: 0xb1, hi: 0xb1},
- {value: 0x0014, lo: 0xb4, hi: 0xb7},
- {value: 0x0034, lo: 0xb8, hi: 0xb9},
- {value: 0x0014, lo: 0xbb, hi: 0xbc},
- // Block 0x32, offset 0x1a2
- {value: 0x0004, lo: 0x86, hi: 0x86},
- {value: 0x0034, lo: 0x88, hi: 0x8b},
- {value: 0x0014, lo: 0x8c, hi: 0x8d},
- {value: 0x0010, lo: 0x90, hi: 0x99},
- // Block 0x33, offset 0x1a6
- {value: 0x0010, lo: 0x80, hi: 0x80},
- {value: 0x0034, lo: 0x98, hi: 0x99},
- {value: 0x0010, lo: 0xa0, hi: 0xa9},
- {value: 0x0034, lo: 0xb5, hi: 0xb5},
- {value: 0x0034, lo: 0xb7, hi: 0xb7},
- {value: 0x0034, lo: 0xb9, hi: 0xb9},
- {value: 0x0010, lo: 0xbe, hi: 0xbf},
- // Block 0x34, offset 0x1ad
- {value: 0x0010, lo: 0x80, hi: 0x87},
- {value: 0x0010, lo: 0x89, hi: 0xac},
- {value: 0x0034, lo: 0xb1, hi: 0xb2},
- {value: 0x0014, lo: 0xb3, hi: 0xb3},
- {value: 0x0034, lo: 0xb4, hi: 0xb4},
- {value: 0x0014, lo: 0xb5, hi: 0xb9},
- {value: 0x0034, lo: 0xba, hi: 0xbd},
- {value: 0x0014, lo: 0xbe, hi: 0xbe},
- {value: 0x0010, lo: 0xbf, hi: 0xbf},
- // Block 0x35, offset 0x1b6
- {value: 0x0034, lo: 0x80, hi: 0x80},
- {value: 0x0014, lo: 0x81, hi: 0x81},
- {value: 0x0024, lo: 0x82, hi: 0x83},
- {value: 0x0034, lo: 0x84, hi: 0x84},
- {value: 0x0024, lo: 0x86, hi: 0x87},
- {value: 0x0010, lo: 0x88, hi: 0x8c},
- {value: 0x0014, lo: 0x8d, hi: 0x97},
- {value: 0x0014, lo: 0x99, hi: 0xbc},
- // Block 0x36, offset 0x1be
- {value: 0x0034, lo: 0x86, hi: 0x86},
- // Block 0x37, offset 0x1bf
- {value: 0x0010, lo: 0xab, hi: 0xac},
- {value: 0x0014, lo: 0xad, hi: 0xb0},
- {value: 0x0010, lo: 0xb1, hi: 0xb1},
- {value: 0x0014, lo: 0xb2, hi: 0xb6},
- {value: 0x0034, lo: 0xb7, hi: 0xb7},
- {value: 0x0010, lo: 0xb8, hi: 0xb8},
- {value: 0x0034, lo: 0xb9, hi: 0xba},
- {value: 0x0010, lo: 0xbb, hi: 0xbc},
- {value: 0x0014, lo: 0xbd, hi: 0xbe},
- // Block 0x38, offset 0x1c8
- {value: 0x0010, lo: 0x80, hi: 0x89},
- {value: 0x0010, lo: 0x96, hi: 0x97},
- {value: 0x0014, lo: 0x98, hi: 0x99},
- {value: 0x0014, lo: 0x9e, hi: 0xa0},
- {value: 0x0010, lo: 0xa2, hi: 0xa4},
- {value: 0x0010, lo: 0xa7, hi: 0xad},
- {value: 0x0014, lo: 0xb1, hi: 0xb4},
- // Block 0x39, offset 0x1cf
- {value: 0x0014, lo: 0x82, hi: 0x82},
- {value: 0x0010, lo: 0x83, hi: 0x84},
- {value: 0x0014, lo: 0x85, hi: 0x86},
- {value: 0x0010, lo: 0x87, hi: 0x8c},
- {value: 0x0034, lo: 0x8d, hi: 0x8d},
- {value: 0x0010, lo: 0x8f, hi: 0x9c},
- {value: 0x0014, lo: 0x9d, hi: 0x9d},
- {value: 0x6c53, lo: 0xa0, hi: 0xbf},
- // Block 0x3a, offset 0x1d7
- {value: 0x7053, lo: 0x80, hi: 0x85},
- {value: 0x7053, lo: 0x87, hi: 0x87},
- {value: 0x7053, lo: 0x8d, hi: 0x8d},
- {value: 0x0010, lo: 0x90, hi: 0xba},
- {value: 0x0014, lo: 0xbc, hi: 0xbc},
- {value: 0x0010, lo: 0xbd, hi: 0xbf},
- // Block 0x3b, offset 0x1dd
- {value: 0x0010, lo: 0x80, hi: 0x88},
- {value: 0x0010, lo: 0x8a, hi: 0x8d},
- {value: 0x0010, lo: 0x90, hi: 0x96},
- {value: 0x0010, lo: 0x98, hi: 0x98},
- {value: 0x0010, lo: 0x9a, hi: 0x9d},
- {value: 0x0010, lo: 0xa0, hi: 0xbf},
- // Block 0x3c, offset 0x1e3
- {value: 0x0010, lo: 0x80, hi: 0x88},
- {value: 0x0010, lo: 0x8a, hi: 0x8d},
- {value: 0x0010, lo: 0x90, hi: 0xb0},
- {value: 0x0010, lo: 0xb2, hi: 0xb5},
- {value: 0x0010, lo: 0xb8, hi: 0xbe},
- // Block 0x3d, offset 0x1e8
- {value: 0x0010, lo: 0x80, hi: 0x80},
- {value: 0x0010, lo: 0x82, hi: 0x85},
- {value: 0x0010, lo: 0x88, hi: 0x96},
- {value: 0x0010, lo: 0x98, hi: 0xbf},
- // Block 0x3e, offset 0x1ec
- {value: 0x0010, lo: 0x80, hi: 0x90},
- {value: 0x0010, lo: 0x92, hi: 0x95},
- {value: 0x0010, lo: 0x98, hi: 0xbf},
- // Block 0x3f, offset 0x1ef
- {value: 0x0010, lo: 0x80, hi: 0x9a},
- {value: 0x0024, lo: 0x9d, hi: 0x9f},
- // Block 0x40, offset 0x1f1
- {value: 0x0010, lo: 0x80, hi: 0x8f},
- {value: 0x7453, lo: 0xa0, hi: 0xaf},
- {value: 0x7853, lo: 0xb0, hi: 0xbf},
- // Block 0x41, offset 0x1f4
- {value: 0x7c53, lo: 0x80, hi: 0x8f},
- {value: 0x8053, lo: 0x90, hi: 0x9f},
- {value: 0x7c53, lo: 0xa0, hi: 0xaf},
- {value: 0x0813, lo: 0xb0, hi: 0xb5},
- {value: 0x0892, lo: 0xb8, hi: 0xbd},
- // Block 0x42, offset 0x1f9
- {value: 0x0010, lo: 0x81, hi: 0xbf},
- // Block 0x43, offset 0x1fa
- {value: 0x0010, lo: 0x80, hi: 0xac},
- {value: 0x0010, lo: 0xaf, hi: 0xbf},
- // Block 0x44, offset 0x1fc
- {value: 0x0010, lo: 0x81, hi: 0x9a},
- {value: 0x0010, lo: 0xa0, hi: 0xbf},
- // Block 0x45, offset 0x1fe
- {value: 0x0010, lo: 0x80, hi: 0xaa},
- {value: 0x0010, lo: 0xae, hi: 0xb8},
- // Block 0x46, offset 0x200
- {value: 0x0010, lo: 0x80, hi: 0x8c},
- {value: 0x0010, lo: 0x8e, hi: 0x91},
- {value: 0x0014, lo: 0x92, hi: 0x93},
- {value: 0x0034, lo: 0x94, hi: 0x94},
- {value: 0x0010, lo: 0xa0, hi: 0xb1},
- {value: 0x0014, lo: 0xb2, hi: 0xb3},
- {value: 0x0034, lo: 0xb4, hi: 0xb4},
- // Block 0x47, offset 0x207
- {value: 0x0010, lo: 0x80, hi: 0x91},
- {value: 0x0014, lo: 0x92, hi: 0x93},
- {value: 0x0010, lo: 0xa0, hi: 0xac},
- {value: 0x0010, lo: 0xae, hi: 0xb0},
- {value: 0x0014, lo: 0xb2, hi: 0xb3},
- // Block 0x48, offset 0x20c
- {value: 0x0014, lo: 0xb4, hi: 0xb5},
- {value: 0x0010, lo: 0xb6, hi: 0xb6},
- {value: 0x0014, lo: 0xb7, hi: 0xbd},
- {value: 0x0010, lo: 0xbe, hi: 0xbf},
- // Block 0x49, offset 0x210
- {value: 0x0010, lo: 0x80, hi: 0x85},
- {value: 0x0014, lo: 0x86, hi: 0x86},
- {value: 0x0010, lo: 0x87, hi: 0x88},
- {value: 0x0014, lo: 0x89, hi: 0x91},
- {value: 0x0034, lo: 0x92, hi: 0x92},
- {value: 0x0014, lo: 0x93, hi: 0x93},
- {value: 0x0004, lo: 0x97, hi: 0x97},
- {value: 0x0024, lo: 0x9d, hi: 0x9d},
- {value: 0x0010, lo: 0xa0, hi: 0xa9},
- // Block 0x4a, offset 0x219
- {value: 0x0014, lo: 0x8b, hi: 0x8e},
- {value: 0x0010, lo: 0x90, hi: 0x99},
- {value: 0x0010, lo: 0xa0, hi: 0xbf},
- // Block 0x4b, offset 0x21c
- {value: 0x0010, lo: 0x80, hi: 0x82},
- {value: 0x0014, lo: 0x83, hi: 0x83},
- {value: 0x0010, lo: 0x84, hi: 0xb7},
- // Block 0x4c, offset 0x21f
- {value: 0x0010, lo: 0x80, hi: 0x84},
- {value: 0x0014, lo: 0x85, hi: 0x86},
- {value: 0x0010, lo: 0x87, hi: 0xa8},
- {value: 0x0034, lo: 0xa9, hi: 0xa9},
- {value: 0x0010, lo: 0xaa, hi: 0xaa},
- {value: 0x0010, lo: 0xb0, hi: 0xbf},
- // Block 0x4d, offset 0x225
- {value: 0x0010, lo: 0x80, hi: 0xb5},
- // Block 0x4e, offset 0x226
- {value: 0x0010, lo: 0x80, hi: 0x9e},
- {value: 0x0014, lo: 0xa0, hi: 0xa2},
- {value: 0x0010, lo: 0xa3, hi: 0xa6},
- {value: 0x0014, lo: 0xa7, hi: 0xa8},
- {value: 0x0010, lo: 0xa9, hi: 0xab},
- {value: 0x0010, lo: 0xb0, hi: 0xb1},
- {value: 0x0014, lo: 0xb2, hi: 0xb2},
- {value: 0x0010, lo: 0xb3, hi: 0xb8},
- {value: 0x0034, lo: 0xb9, hi: 0xb9},
- {value: 0x0024, lo: 0xba, hi: 0xba},
- {value: 0x0034, lo: 0xbb, hi: 0xbb},
- // Block 0x4f, offset 0x231
- {value: 0x0010, lo: 0x86, hi: 0x8f},
- // Block 0x50, offset 0x232
- {value: 0x0010, lo: 0x90, hi: 0x99},
- // Block 0x51, offset 0x233
- {value: 0x0010, lo: 0x80, hi: 0x96},
- {value: 0x0024, lo: 0x97, hi: 0x97},
- {value: 0x0034, lo: 0x98, hi: 0x98},
- {value: 0x0010, lo: 0x99, hi: 0x9a},
- {value: 0x0014, lo: 0x9b, hi: 0x9b},
- // Block 0x52, offset 0x238
- {value: 0x0010, lo: 0x95, hi: 0x95},
- {value: 0x0014, lo: 0x96, hi: 0x96},
- {value: 0x0010, lo: 0x97, hi: 0x97},
- {value: 0x0014, lo: 0x98, hi: 0x9e},
- {value: 0x0034, lo: 0xa0, hi: 0xa0},
- {value: 0x0010, lo: 0xa1, hi: 0xa1},
- {value: 0x0014, lo: 0xa2, hi: 0xa2},
- {value: 0x0010, lo: 0xa3, hi: 0xa4},
- {value: 0x0014, lo: 0xa5, hi: 0xac},
- {value: 0x0010, lo: 0xad, hi: 0xb2},
- {value: 0x0014, lo: 0xb3, hi: 0xb4},
- {value: 0x0024, lo: 0xb5, hi: 0xbc},
- {value: 0x0034, lo: 0xbf, hi: 0xbf},
- // Block 0x53, offset 0x245
- {value: 0x0010, lo: 0x80, hi: 0x89},
- {value: 0x0010, lo: 0x90, hi: 0x99},
- {value: 0x0004, lo: 0xa7, hi: 0xa7},
- {value: 0x0024, lo: 0xb0, hi: 0xb4},
- {value: 0x0034, lo: 0xb5, hi: 0xba},
- {value: 0x0024, lo: 0xbb, hi: 0xbc},
- {value: 0x0034, lo: 0xbd, hi: 0xbd},
- {value: 0x0014, lo: 0xbe, hi: 0xbe},
- // Block 0x54, offset 0x24d
- {value: 0x0014, lo: 0x80, hi: 0x83},
- {value: 0x0010, lo: 0x84, hi: 0xb3},
- {value: 0x0034, lo: 0xb4, hi: 0xb4},
- {value: 0x0010, lo: 0xb5, hi: 0xb5},
- {value: 0x0014, lo: 0xb6, hi: 0xba},
- {value: 0x0010, lo: 0xbb, hi: 0xbb},
- {value: 0x0014, lo: 0xbc, hi: 0xbc},
- {value: 0x0010, lo: 0xbd, hi: 0xbf},
- // Block 0x55, offset 0x255
- {value: 0x0010, lo: 0x80, hi: 0x81},
- {value: 0x0014, lo: 0x82, hi: 0x82},
- {value: 0x0010, lo: 0x83, hi: 0x83},
- {value: 0x0030, lo: 0x84, hi: 0x84},
- {value: 0x0010, lo: 0x85, hi: 0x8b},
- {value: 0x0010, lo: 0x90, hi: 0x99},
- {value: 0x0024, lo: 0xab, hi: 0xab},
- {value: 0x0034, lo: 0xac, hi: 0xac},
- {value: 0x0024, lo: 0xad, hi: 0xb3},
- // Block 0x56, offset 0x25e
- {value: 0x0014, lo: 0x80, hi: 0x81},
- {value: 0x0010, lo: 0x82, hi: 0xa1},
- {value: 0x0014, lo: 0xa2, hi: 0xa5},
- {value: 0x0010, lo: 0xa6, hi: 0xa7},
- {value: 0x0014, lo: 0xa8, hi: 0xa9},
- {value: 0x0030, lo: 0xaa, hi: 0xaa},
- {value: 0x0034, lo: 0xab, hi: 0xab},
- {value: 0x0014, lo: 0xac, hi: 0xad},
- {value: 0x0010, lo: 0xae, hi: 0xbf},
- // Block 0x57, offset 0x267
- {value: 0x0010, lo: 0x80, hi: 0xa5},
- {value: 0x0034, lo: 0xa6, hi: 0xa6},
- {value: 0x0010, lo: 0xa7, hi: 0xa7},
- {value: 0x0014, lo: 0xa8, hi: 0xa9},
- {value: 0x0010, lo: 0xaa, hi: 0xac},
- {value: 0x0014, lo: 0xad, hi: 0xad},
- {value: 0x0010, lo: 0xae, hi: 0xae},
- {value: 0x0014, lo: 0xaf, hi: 0xb1},
- {value: 0x0030, lo: 0xb2, hi: 0xb3},
- // Block 0x58, offset 0x270
- {value: 0x0010, lo: 0x80, hi: 0xab},
- {value: 0x0014, lo: 0xac, hi: 0xb3},
- {value: 0x0010, lo: 0xb4, hi: 0xb5},
- {value: 0x0014, lo: 0xb6, hi: 0xb6},
- {value: 0x0034, lo: 0xb7, hi: 0xb7},
- // Block 0x59, offset 0x275
- {value: 0x0010, lo: 0x80, hi: 0x89},
- {value: 0x0010, lo: 0x8d, hi: 0xb7},
- {value: 0x0014, lo: 0xb8, hi: 0xbd},
- // Block 0x5a, offset 0x278
- {value: 0x296a, lo: 0x80, hi: 0x80},
- {value: 0x2a2a, lo: 0x81, hi: 0x81},
- {value: 0x2aea, lo: 0x82, hi: 0x82},
- {value: 0x2baa, lo: 0x83, hi: 0x83},
- {value: 0x2c6a, lo: 0x84, hi: 0x84},
- {value: 0x2d2a, lo: 0x85, hi: 0x85},
- {value: 0x2dea, lo: 0x86, hi: 0x86},
- {value: 0x2eaa, lo: 0x87, hi: 0x87},
- {value: 0x2f6a, lo: 0x88, hi: 0x88},
- // Block 0x5b, offset 0x281
- {value: 0x0024, lo: 0x90, hi: 0x92},
- {value: 0x0034, lo: 0x94, hi: 0x99},
- {value: 0x0024, lo: 0x9a, hi: 0x9b},
- {value: 0x0034, lo: 0x9c, hi: 0x9f},
- {value: 0x0024, lo: 0xa0, hi: 0xa0},
- {value: 0x0010, lo: 0xa1, hi: 0xa1},
- {value: 0x0034, lo: 0xa2, hi: 0xa8},
- {value: 0x0010, lo: 0xa9, hi: 0xac},
- {value: 0x0034, lo: 0xad, hi: 0xad},
- {value: 0x0010, lo: 0xae, hi: 0xb3},
- {value: 0x0024, lo: 0xb4, hi: 0xb4},
- {value: 0x0010, lo: 0xb5, hi: 0xb6},
- {value: 0x0024, lo: 0xb8, hi: 0xb9},
- // Block 0x5c, offset 0x28e
- {value: 0x0012, lo: 0x80, hi: 0xab},
- {value: 0x0015, lo: 0xac, hi: 0xbf},
- // Block 0x5d, offset 0x290
- {value: 0x0015, lo: 0x80, hi: 0xaa},
- {value: 0x0012, lo: 0xab, hi: 0xb7},
- {value: 0x0015, lo: 0xb8, hi: 0xb8},
- {value: 0x8452, lo: 0xb9, hi: 0xb9},
- {value: 0x0012, lo: 0xba, hi: 0xbc},
- {value: 0x8852, lo: 0xbd, hi: 0xbd},
- {value: 0x0012, lo: 0xbe, hi: 0xbf},
- // Block 0x5e, offset 0x297
- {value: 0x0012, lo: 0x80, hi: 0x9a},
- {value: 0x0015, lo: 0x9b, hi: 0xbf},
- // Block 0x5f, offset 0x299
- {value: 0x0024, lo: 0x80, hi: 0x81},
- {value: 0x0034, lo: 0x82, hi: 0x82},
- {value: 0x0024, lo: 0x83, hi: 0x89},
- {value: 0x0034, lo: 0x8a, hi: 0x8a},
- {value: 0x0024, lo: 0x8b, hi: 0x8c},
- {value: 0x0034, lo: 0x8d, hi: 0x90},
- {value: 0x0024, lo: 0x91, hi: 0xb5},
- {value: 0x0024, lo: 0xbb, hi: 0xbb},
- {value: 0x0034, lo: 0xbc, hi: 0xbd},
- {value: 0x0024, lo: 0xbe, hi: 0xbe},
- {value: 0x0034, lo: 0xbf, hi: 0xbf},
- // Block 0x60, offset 0x2a4
- {value: 0x0117, lo: 0x80, hi: 0xbf},
- // Block 0x61, offset 0x2a5
- {value: 0x0117, lo: 0x80, hi: 0x95},
- {value: 0x306a, lo: 0x96, hi: 0x96},
- {value: 0x316a, lo: 0x97, hi: 0x97},
- {value: 0x326a, lo: 0x98, hi: 0x98},
- {value: 0x336a, lo: 0x99, hi: 0x99},
- {value: 0x346a, lo: 0x9a, hi: 0x9a},
- {value: 0x356a, lo: 0x9b, hi: 0x9b},
- {value: 0x0012, lo: 0x9c, hi: 0x9d},
- {value: 0x366b, lo: 0x9e, hi: 0x9e},
- {value: 0x0012, lo: 0x9f, hi: 0x9f},
- {value: 0x0117, lo: 0xa0, hi: 0xbf},
- // Block 0x62, offset 0x2b0
- {value: 0x0812, lo: 0x80, hi: 0x87},
- {value: 0x0813, lo: 0x88, hi: 0x8f},
- {value: 0x0812, lo: 0x90, hi: 0x95},
- {value: 0x0813, lo: 0x98, hi: 0x9d},
- {value: 0x0812, lo: 0xa0, hi: 0xa7},
- {value: 0x0813, lo: 0xa8, hi: 0xaf},
- {value: 0x0812, lo: 0xb0, hi: 0xb7},
- {value: 0x0813, lo: 0xb8, hi: 0xbf},
- // Block 0x63, offset 0x2b8
- {value: 0x0004, lo: 0x8b, hi: 0x8b},
- {value: 0x0014, lo: 0x8c, hi: 0x8f},
- {value: 0x0054, lo: 0x98, hi: 0x99},
- {value: 0x0054, lo: 0xa4, hi: 0xa4},
- {value: 0x0054, lo: 0xa7, hi: 0xa7},
- {value: 0x0014, lo: 0xaa, hi: 0xae},
- {value: 0x0010, lo: 0xaf, hi: 0xaf},
- {value: 0x0010, lo: 0xbf, hi: 0xbf},
- // Block 0x64, offset 0x2c0
- {value: 0x0010, lo: 0x80, hi: 0x80},
- {value: 0x0010, lo: 0x94, hi: 0x94},
- {value: 0x0014, lo: 0xa0, hi: 0xa4},
- {value: 0x0014, lo: 0xa6, hi: 0xaf},
- {value: 0x0015, lo: 0xb1, hi: 0xb1},
- {value: 0x0015, lo: 0xbf, hi: 0xbf},
- // Block 0x65, offset 0x2c6
- {value: 0x0015, lo: 0x90, hi: 0x9c},
- // Block 0x66, offset 0x2c7
- {value: 0x0024, lo: 0x90, hi: 0x91},
- {value: 0x0034, lo: 0x92, hi: 0x93},
- {value: 0x0024, lo: 0x94, hi: 0x97},
- {value: 0x0034, lo: 0x98, hi: 0x9a},
- {value: 0x0024, lo: 0x9b, hi: 0x9c},
- {value: 0x0014, lo: 0x9d, hi: 0xa0},
- {value: 0x0024, lo: 0xa1, hi: 0xa1},
- {value: 0x0014, lo: 0xa2, hi: 0xa4},
- {value: 0x0034, lo: 0xa5, hi: 0xa6},
- {value: 0x0024, lo: 0xa7, hi: 0xa7},
- {value: 0x0034, lo: 0xa8, hi: 0xa8},
- {value: 0x0024, lo: 0xa9, hi: 0xa9},
- {value: 0x0034, lo: 0xaa, hi: 0xaf},
- {value: 0x0024, lo: 0xb0, hi: 0xb0},
- // Block 0x67, offset 0x2d5
- {value: 0x0016, lo: 0x85, hi: 0x86},
- {value: 0x0012, lo: 0x87, hi: 0x89},
- {value: 0x9d52, lo: 0x8e, hi: 0x8e},
- {value: 0x1013, lo: 0xa0, hi: 0xaf},
- {value: 0x1012, lo: 0xb0, hi: 0xbf},
- // Block 0x68, offset 0x2da
- {value: 0x0010, lo: 0x80, hi: 0x82},
- {value: 0x0716, lo: 0x83, hi: 0x84},
- {value: 0x0010, lo: 0x85, hi: 0x88},
- // Block 0x69, offset 0x2dd
- {value: 0xa053, lo: 0xb6, hi: 0xb7},
- {value: 0xa353, lo: 0xb8, hi: 0xb9},
- {value: 0xa653, lo: 0xba, hi: 0xbb},
- {value: 0xa353, lo: 0xbc, hi: 0xbd},
- {value: 0xa053, lo: 0xbe, hi: 0xbf},
- // Block 0x6a, offset 0x2e2
- {value: 0x3013, lo: 0x80, hi: 0x8f},
- {value: 0x6553, lo: 0x90, hi: 0x9f},
- {value: 0xa953, lo: 0xa0, hi: 0xae},
- {value: 0x3012, lo: 0xb0, hi: 0xbf},
- // Block 0x6b, offset 0x2e6
- {value: 0x0117, lo: 0x80, hi: 0xa3},
- {value: 0x0012, lo: 0xa4, hi: 0xa4},
- {value: 0x0716, lo: 0xab, hi: 0xac},
- {value: 0x0316, lo: 0xad, hi: 0xae},
- {value: 0x0024, lo: 0xaf, hi: 0xb1},
- {value: 0x0117, lo: 0xb2, hi: 0xb3},
- // Block 0x6c, offset 0x2ec
- {value: 0x6c52, lo: 0x80, hi: 0x9f},
- {value: 0x7052, lo: 0xa0, hi: 0xa5},
- {value: 0x7052, lo: 0xa7, hi: 0xa7},
- {value: 0x7052, lo: 0xad, hi: 0xad},
- {value: 0x0010, lo: 0xb0, hi: 0xbf},
- // Block 0x6d, offset 0x2f1
- {value: 0x0010, lo: 0x80, hi: 0xa7},
- {value: 0x0014, lo: 0xaf, hi: 0xaf},
- {value: 0x0034, lo: 0xbf, hi: 0xbf},
- // Block 0x6e, offset 0x2f4
- {value: 0x0010, lo: 0x80, hi: 0x96},
- {value: 0x0010, lo: 0xa0, hi: 0xa6},
- {value: 0x0010, lo: 0xa8, hi: 0xae},
- {value: 0x0010, lo: 0xb0, hi: 0xb6},
- {value: 0x0010, lo: 0xb8, hi: 0xbe},
- // Block 0x6f, offset 0x2f9
- {value: 0x0010, lo: 0x80, hi: 0x86},
- {value: 0x0010, lo: 0x88, hi: 0x8e},
- {value: 0x0010, lo: 0x90, hi: 0x96},
- {value: 0x0010, lo: 0x98, hi: 0x9e},
- {value: 0x0024, lo: 0xa0, hi: 0xbf},
- // Block 0x70, offset 0x2fe
- {value: 0x0014, lo: 0xaf, hi: 0xaf},
- // Block 0x71, offset 0x2ff
- {value: 0x0014, lo: 0x85, hi: 0x85},
- {value: 0x0034, lo: 0xaa, hi: 0xad},
- {value: 0x0030, lo: 0xae, hi: 0xaf},
- {value: 0x0004, lo: 0xb1, hi: 0xb5},
- {value: 0x0014, lo: 0xbb, hi: 0xbb},
- {value: 0x0010, lo: 0xbc, hi: 0xbc},
- // Block 0x72, offset 0x305
- {value: 0x0034, lo: 0x99, hi: 0x9a},
- {value: 0x0004, lo: 0x9b, hi: 0x9e},
- // Block 0x73, offset 0x307
- {value: 0x0004, lo: 0xbc, hi: 0xbe},
- // Block 0x74, offset 0x308
- {value: 0x0010, lo: 0x85, hi: 0xad},
- {value: 0x0010, lo: 0xb1, hi: 0xbf},
- // Block 0x75, offset 0x30a
- {value: 0x0010, lo: 0x80, hi: 0x8e},
- {value: 0x0010, lo: 0xa0, hi: 0xba},
- // Block 0x76, offset 0x30c
- {value: 0x0010, lo: 0x80, hi: 0x94},
- {value: 0x0014, lo: 0x95, hi: 0x95},
- {value: 0x0010, lo: 0x96, hi: 0xbf},
- // Block 0x77, offset 0x30f
- {value: 0x0010, lo: 0x80, hi: 0x8c},
- // Block 0x78, offset 0x310
- {value: 0x0010, lo: 0x90, hi: 0xb7},
- {value: 0x0014, lo: 0xb8, hi: 0xbd},
- // Block 0x79, offset 0x312
- {value: 0x0010, lo: 0x80, hi: 0x8b},
- {value: 0x0014, lo: 0x8c, hi: 0x8c},
- {value: 0x0010, lo: 0x90, hi: 0xab},
- // Block 0x7a, offset 0x315
- {value: 0x0117, lo: 0x80, hi: 0xad},
- {value: 0x0010, lo: 0xae, hi: 0xae},
- {value: 0x0024, lo: 0xaf, hi: 0xaf},
- {value: 0x0014, lo: 0xb0, hi: 0xb2},
- {value: 0x0024, lo: 0xb4, hi: 0xbd},
- {value: 0x0014, lo: 0xbf, hi: 0xbf},
- // Block 0x7b, offset 0x31b
- {value: 0x0117, lo: 0x80, hi: 0x9b},
- {value: 0x0015, lo: 0x9c, hi: 0x9d},
- {value: 0x0024, lo: 0x9e, hi: 0x9f},
- {value: 0x0010, lo: 0xa0, hi: 0xbf},
- // Block 0x7c, offset 0x31f
- {value: 0x0010, lo: 0x80, hi: 0xaf},
- {value: 0x0024, lo: 0xb0, hi: 0xb1},
- // Block 0x7d, offset 0x321
- {value: 0x0004, lo: 0x80, hi: 0x96},
- {value: 0x0014, lo: 0x97, hi: 0x9f},
- {value: 0x0004, lo: 0xa0, hi: 0xa1},
- {value: 0x0117, lo: 0xa2, hi: 0xaf},
- {value: 0x0012, lo: 0xb0, hi: 0xb1},
- {value: 0x0117, lo: 0xb2, hi: 0xbf},
- // Block 0x7e, offset 0x327
- {value: 0x0117, lo: 0x80, hi: 0xaf},
- {value: 0x0015, lo: 0xb0, hi: 0xb0},
- {value: 0x0012, lo: 0xb1, hi: 0xb8},
- {value: 0x0316, lo: 0xb9, hi: 0xba},
- {value: 0x0716, lo: 0xbb, hi: 0xbc},
- {value: 0x8453, lo: 0xbd, hi: 0xbd},
- {value: 0x0117, lo: 0xbe, hi: 0xbf},
- // Block 0x7f, offset 0x32e
- {value: 0x0010, lo: 0xb7, hi: 0xb7},
- {value: 0x0015, lo: 0xb8, hi: 0xb9},
- {value: 0x0012, lo: 0xba, hi: 0xba},
- {value: 0x0010, lo: 0xbb, hi: 0xbf},
- // Block 0x80, offset 0x332
- {value: 0x0010, lo: 0x80, hi: 0x81},
- {value: 0x0014, lo: 0x82, hi: 0x82},
- {value: 0x0010, lo: 0x83, hi: 0x85},
- {value: 0x0034, lo: 0x86, hi: 0x86},
- {value: 0x0010, lo: 0x87, hi: 0x8a},
- {value: 0x0014, lo: 0x8b, hi: 0x8b},
- {value: 0x0010, lo: 0x8c, hi: 0xa4},
- {value: 0x0014, lo: 0xa5, hi: 0xa6},
- {value: 0x0010, lo: 0xa7, hi: 0xa7},
- // Block 0x81, offset 0x33b
- {value: 0x0010, lo: 0x80, hi: 0xb3},
- // Block 0x82, offset 0x33c
- {value: 0x0010, lo: 0x80, hi: 0x83},
- {value: 0x0034, lo: 0x84, hi: 0x84},
- {value: 0x0014, lo: 0x85, hi: 0x85},
- {value: 0x0010, lo: 0x90, hi: 0x99},
- {value: 0x0024, lo: 0xa0, hi: 0xb1},
- {value: 0x0010, lo: 0xb2, hi: 0xb7},
- {value: 0x0010, lo: 0xbb, hi: 0xbb},
- {value: 0x0010, lo: 0xbd, hi: 0xbd},
- // Block 0x83, offset 0x344
- {value: 0x0010, lo: 0x80, hi: 0xa5},
- {value: 0x0014, lo: 0xa6, hi: 0xaa},
- {value: 0x0034, lo: 0xab, hi: 0xad},
- {value: 0x0010, lo: 0xb0, hi: 0xbf},
- // Block 0x84, offset 0x348
- {value: 0x0010, lo: 0x80, hi: 0x86},
- {value: 0x0014, lo: 0x87, hi: 0x91},
- {value: 0x0010, lo: 0x92, hi: 0x92},
- {value: 0x0030, lo: 0x93, hi: 0x93},
- {value: 0x0010, lo: 0xa0, hi: 0xbc},
- // Block 0x85, offset 0x34d
- {value: 0x0014, lo: 0x80, hi: 0x82},
- {value: 0x0010, lo: 0x83, hi: 0xb2},
- {value: 0x0034, lo: 0xb3, hi: 0xb3},
- {value: 0x0010, lo: 0xb4, hi: 0xb5},
- {value: 0x0014, lo: 0xb6, hi: 0xb9},
- {value: 0x0010, lo: 0xba, hi: 0xbb},
- {value: 0x0014, lo: 0xbc, hi: 0xbc},
- {value: 0x0010, lo: 0xbd, hi: 0xbf},
- // Block 0x86, offset 0x355
- {value: 0x0030, lo: 0x80, hi: 0x80},
- {value: 0x0014, lo: 0x8f, hi: 0x8f},
- {value: 0x0010, lo: 0x90, hi: 0x99},
- {value: 0x0014, lo: 0xa5, hi: 0xa5},
- {value: 0x0004, lo: 0xa6, hi: 0xa6},
- {value: 0x0010, lo: 0xb0, hi: 0xb9},
- // Block 0x87, offset 0x35b
- {value: 0x0010, lo: 0x80, hi: 0xa8},
- {value: 0x0014, lo: 0xa9, hi: 0xae},
- {value: 0x0010, lo: 0xaf, hi: 0xb0},
- {value: 0x0014, lo: 0xb1, hi: 0xb2},
- {value: 0x0010, lo: 0xb3, hi: 0xb4},
- {value: 0x0014, lo: 0xb5, hi: 0xb6},
- // Block 0x88, offset 0x361
- {value: 0x0010, lo: 0x80, hi: 0x82},
- {value: 0x0014, lo: 0x83, hi: 0x83},
- {value: 0x0010, lo: 0x84, hi: 0x8b},
- {value: 0x0014, lo: 0x8c, hi: 0x8c},
- {value: 0x0010, lo: 0x8d, hi: 0x8d},
- {value: 0x0010, lo: 0x90, hi: 0x99},
- {value: 0x0004, lo: 0xb0, hi: 0xb0},
- {value: 0x0010, lo: 0xbb, hi: 0xbb},
- {value: 0x0014, lo: 0xbc, hi: 0xbc},
- {value: 0x0010, lo: 0xbd, hi: 0xbd},
- // Block 0x89, offset 0x36b
- {value: 0x0024, lo: 0xb0, hi: 0xb0},
- {value: 0x0024, lo: 0xb2, hi: 0xb3},
- {value: 0x0034, lo: 0xb4, hi: 0xb4},
- {value: 0x0024, lo: 0xb7, hi: 0xb8},
- {value: 0x0024, lo: 0xbe, hi: 0xbf},
- // Block 0x8a, offset 0x370
- {value: 0x0024, lo: 0x81, hi: 0x81},
- {value: 0x0004, lo: 0x9d, hi: 0x9d},
- {value: 0x0010, lo: 0xa0, hi: 0xab},
- {value: 0x0014, lo: 0xac, hi: 0xad},
- {value: 0x0010, lo: 0xae, hi: 0xaf},
- {value: 0x0010, lo: 0xb2, hi: 0xb2},
- {value: 0x0014, lo: 0xb3, hi: 0xb4},
- {value: 0x0010, lo: 0xb5, hi: 0xb5},
- {value: 0x0034, lo: 0xb6, hi: 0xb6},
- // Block 0x8b, offset 0x379
- {value: 0x0010, lo: 0x81, hi: 0x86},
- {value: 0x0010, lo: 0x89, hi: 0x8e},
- {value: 0x0010, lo: 0x91, hi: 0x96},
- {value: 0x0010, lo: 0xa0, hi: 0xa6},
- {value: 0x0010, lo: 0xa8, hi: 0xae},
- {value: 0x0012, lo: 0xb0, hi: 0xbf},
- // Block 0x8c, offset 0x37f
- {value: 0x0012, lo: 0x80, hi: 0x92},
- {value: 0xac52, lo: 0x93, hi: 0x93},
- {value: 0x0012, lo: 0x94, hi: 0x9a},
- {value: 0x0004, lo: 0x9b, hi: 0x9b},
- {value: 0x0015, lo: 0x9c, hi: 0x9f},
- {value: 0x0012, lo: 0xa0, hi: 0xa5},
- {value: 0x74d2, lo: 0xb0, hi: 0xbf},
- // Block 0x8d, offset 0x386
- {value: 0x78d2, lo: 0x80, hi: 0x8f},
- {value: 0x7cd2, lo: 0x90, hi: 0x9f},
- {value: 0x80d2, lo: 0xa0, hi: 0xaf},
- {value: 0x7cd2, lo: 0xb0, hi: 0xbf},
- // Block 0x8e, offset 0x38a
- {value: 0x0010, lo: 0x80, hi: 0xa4},
- {value: 0x0014, lo: 0xa5, hi: 0xa5},
- {value: 0x0010, lo: 0xa6, hi: 0xa7},
- {value: 0x0014, lo: 0xa8, hi: 0xa8},
- {value: 0x0010, lo: 0xa9, hi: 0xaa},
- {value: 0x0010, lo: 0xac, hi: 0xac},
- {value: 0x0034, lo: 0xad, hi: 0xad},
- {value: 0x0010, lo: 0xb0, hi: 0xb9},
- // Block 0x8f, offset 0x392
- {value: 0x0010, lo: 0x80, hi: 0xa3},
- {value: 0x0010, lo: 0xb0, hi: 0xbf},
- // Block 0x90, offset 0x394
- {value: 0x0010, lo: 0x80, hi: 0x86},
- {value: 0x0010, lo: 0x8b, hi: 0xbb},
- // Block 0x91, offset 0x396
- {value: 0x0010, lo: 0x80, hi: 0x81},
- {value: 0x0010, lo: 0x83, hi: 0x84},
- {value: 0x0010, lo: 0x86, hi: 0xbf},
- // Block 0x92, offset 0x399
- {value: 0x0010, lo: 0x80, hi: 0xb1},
- {value: 0x0004, lo: 0xb2, hi: 0xbf},
- // Block 0x93, offset 0x39b
- {value: 0x0004, lo: 0x80, hi: 0x81},
- {value: 0x0010, lo: 0x93, hi: 0xbf},
- // Block 0x94, offset 0x39d
- {value: 0x0010, lo: 0x80, hi: 0xbd},
- // Block 0x95, offset 0x39e
- {value: 0x0010, lo: 0x90, hi: 0xbf},
- // Block 0x96, offset 0x39f
- {value: 0x0010, lo: 0x80, hi: 0x8f},
- {value: 0x0010, lo: 0x92, hi: 0xbf},
- // Block 0x97, offset 0x3a1
- {value: 0x0010, lo: 0x80, hi: 0x87},
- {value: 0x0010, lo: 0xb0, hi: 0xbb},
- // Block 0x98, offset 0x3a3
- {value: 0x0014, lo: 0x80, hi: 0x8f},
- {value: 0x0054, lo: 0x93, hi: 0x93},
- {value: 0x0024, lo: 0xa0, hi: 0xa6},
- {value: 0x0034, lo: 0xa7, hi: 0xad},
- {value: 0x0024, lo: 0xae, hi: 0xaf},
- {value: 0x0010, lo: 0xb3, hi: 0xb4},
- // Block 0x99, offset 0x3a9
- {value: 0x0010, lo: 0x8d, hi: 0x8f},
- {value: 0x0054, lo: 0x92, hi: 0x92},
- {value: 0x0054, lo: 0x95, hi: 0x95},
- {value: 0x0010, lo: 0xb0, hi: 0xb4},
- {value: 0x0010, lo: 0xb6, hi: 0xbf},
- // Block 0x9a, offset 0x3ae
- {value: 0x0010, lo: 0x80, hi: 0xbc},
- {value: 0x0014, lo: 0xbf, hi: 0xbf},
- // Block 0x9b, offset 0x3b0
- {value: 0x0054, lo: 0x87, hi: 0x87},
- {value: 0x0054, lo: 0x8e, hi: 0x8e},
- {value: 0x0054, lo: 0x9a, hi: 0x9a},
- {value: 0x5f53, lo: 0xa1, hi: 0xba},
- {value: 0x0004, lo: 0xbe, hi: 0xbe},
- {value: 0x0010, lo: 0xbf, hi: 0xbf},
- // Block 0x9c, offset 0x3b6
- {value: 0x0004, lo: 0x80, hi: 0x80},
- {value: 0x5f52, lo: 0x81, hi: 0x9a},
- {value: 0x0004, lo: 0xb0, hi: 0xb0},
- // Block 0x9d, offset 0x3b9
- {value: 0x0014, lo: 0x9e, hi: 0x9f},
- {value: 0x0010, lo: 0xa0, hi: 0xbe},
- // Block 0x9e, offset 0x3bb
- {value: 0x0010, lo: 0x82, hi: 0x87},
- {value: 0x0010, lo: 0x8a, hi: 0x8f},
- {value: 0x0010, lo: 0x92, hi: 0x97},
- {value: 0x0010, lo: 0x9a, hi: 0x9c},
- {value: 0x0004, lo: 0xa3, hi: 0xa3},
- {value: 0x0014, lo: 0xb9, hi: 0xbb},
- // Block 0x9f, offset 0x3c1
- {value: 0x0010, lo: 0x80, hi: 0x8b},
- {value: 0x0010, lo: 0x8d, hi: 0xa6},
- {value: 0x0010, lo: 0xa8, hi: 0xba},
- {value: 0x0010, lo: 0xbc, hi: 0xbd},
- {value: 0x0010, lo: 0xbf, hi: 0xbf},
- // Block 0xa0, offset 0x3c6
- {value: 0x0010, lo: 0x80, hi: 0x8d},
- {value: 0x0010, lo: 0x90, hi: 0x9d},
- // Block 0xa1, offset 0x3c8
- {value: 0x0010, lo: 0x80, hi: 0xba},
- // Block 0xa2, offset 0x3c9
- {value: 0x0010, lo: 0x80, hi: 0xb4},
- // Block 0xa3, offset 0x3ca
- {value: 0x0034, lo: 0xbd, hi: 0xbd},
- // Block 0xa4, offset 0x3cb
- {value: 0x0010, lo: 0x80, hi: 0x9c},
- {value: 0x0010, lo: 0xa0, hi: 0xbf},
- // Block 0xa5, offset 0x3cd
- {value: 0x0010, lo: 0x80, hi: 0x90},
- {value: 0x0034, lo: 0xa0, hi: 0xa0},
- // Block 0xa6, offset 0x3cf
- {value: 0x0010, lo: 0x80, hi: 0x9f},
- {value: 0x0010, lo: 0xb0, hi: 0xbf},
- // Block 0xa7, offset 0x3d1
- {value: 0x0010, lo: 0x80, hi: 0x8a},
- {value: 0x0010, lo: 0x90, hi: 0xb5},
- {value: 0x0024, lo: 0xb6, hi: 0xba},
- // Block 0xa8, offset 0x3d4
- {value: 0x0010, lo: 0x80, hi: 0x9d},
- {value: 0x0010, lo: 0xa0, hi: 0xbf},
- // Block 0xa9, offset 0x3d6
- {value: 0x0010, lo: 0x80, hi: 0x83},
- {value: 0x0010, lo: 0x88, hi: 0x8f},
- {value: 0x0010, lo: 0x91, hi: 0x95},
- // Block 0xaa, offset 0x3d9
- {value: 0x2813, lo: 0x80, hi: 0x87},
- {value: 0x3813, lo: 0x88, hi: 0x8f},
- {value: 0x2813, lo: 0x90, hi: 0x97},
- {value: 0xaf53, lo: 0x98, hi: 0x9f},
- {value: 0xb253, lo: 0xa0, hi: 0xa7},
- {value: 0x2812, lo: 0xa8, hi: 0xaf},
- {value: 0x3812, lo: 0xb0, hi: 0xb7},
- {value: 0x2812, lo: 0xb8, hi: 0xbf},
- // Block 0xab, offset 0x3e1
- {value: 0xaf52, lo: 0x80, hi: 0x87},
- {value: 0xb252, lo: 0x88, hi: 0x8f},
- {value: 0x0010, lo: 0x90, hi: 0xbf},
- // Block 0xac, offset 0x3e4
- {value: 0x0010, lo: 0x80, hi: 0x9d},
- {value: 0x0010, lo: 0xa0, hi: 0xa9},
- {value: 0xb253, lo: 0xb0, hi: 0xb7},
- {value: 0xaf53, lo: 0xb8, hi: 0xbf},
- // Block 0xad, offset 0x3e8
- {value: 0x2813, lo: 0x80, hi: 0x87},
- {value: 0x3813, lo: 0x88, hi: 0x8f},
- {value: 0x2813, lo: 0x90, hi: 0x93},
- {value: 0xb252, lo: 0x98, hi: 0x9f},
- {value: 0xaf52, lo: 0xa0, hi: 0xa7},
- {value: 0x2812, lo: 0xa8, hi: 0xaf},
- {value: 0x3812, lo: 0xb0, hi: 0xb7},
- {value: 0x2812, lo: 0xb8, hi: 0xbb},
- // Block 0xae, offset 0x3f0
- {value: 0x0010, lo: 0x80, hi: 0xa7},
- {value: 0x0010, lo: 0xb0, hi: 0xbf},
- // Block 0xaf, offset 0x3f2
- {value: 0x0010, lo: 0x80, hi: 0xa3},
- // Block 0xb0, offset 0x3f3
- {value: 0x0010, lo: 0x80, hi: 0xb6},
- // Block 0xb1, offset 0x3f4
- {value: 0x0010, lo: 0x80, hi: 0x95},
- {value: 0x0010, lo: 0xa0, hi: 0xa7},
- // Block 0xb2, offset 0x3f6
- {value: 0x0010, lo: 0x80, hi: 0x85},
- {value: 0x0010, lo: 0x88, hi: 0x88},
- {value: 0x0010, lo: 0x8a, hi: 0xb5},
- {value: 0x0010, lo: 0xb7, hi: 0xb8},
- {value: 0x0010, lo: 0xbc, hi: 0xbc},
- {value: 0x0010, lo: 0xbf, hi: 0xbf},
- // Block 0xb3, offset 0x3fc
- {value: 0x0010, lo: 0x80, hi: 0x95},
- {value: 0x0010, lo: 0xa0, hi: 0xb6},
- // Block 0xb4, offset 0x3fe
- {value: 0x0010, lo: 0x80, hi: 0x9e},
- // Block 0xb5, offset 0x3ff
- {value: 0x0010, lo: 0xa0, hi: 0xb2},
- {value: 0x0010, lo: 0xb4, hi: 0xb5},
- // Block 0xb6, offset 0x401
- {value: 0x0010, lo: 0x80, hi: 0x95},
- {value: 0x0010, lo: 0xa0, hi: 0xb9},
- // Block 0xb7, offset 0x403
- {value: 0x0010, lo: 0x80, hi: 0xb7},
- {value: 0x0010, lo: 0xbe, hi: 0xbf},
- // Block 0xb8, offset 0x405
- {value: 0x0010, lo: 0x80, hi: 0x80},
- {value: 0x0014, lo: 0x81, hi: 0x83},
- {value: 0x0014, lo: 0x85, hi: 0x86},
- {value: 0x0014, lo: 0x8c, hi: 0x8c},
- {value: 0x0034, lo: 0x8d, hi: 0x8d},
- {value: 0x0014, lo: 0x8e, hi: 0x8e},
- {value: 0x0024, lo: 0x8f, hi: 0x8f},
- {value: 0x0010, lo: 0x90, hi: 0x93},
- {value: 0x0010, lo: 0x95, hi: 0x97},
- {value: 0x0010, lo: 0x99, hi: 0xb3},
- {value: 0x0024, lo: 0xb8, hi: 0xb8},
- {value: 0x0034, lo: 0xb9, hi: 0xba},
- {value: 0x0034, lo: 0xbf, hi: 0xbf},
- // Block 0xb9, offset 0x412
- {value: 0x0010, lo: 0xa0, hi: 0xbc},
- // Block 0xba, offset 0x413
- {value: 0x0010, lo: 0x80, hi: 0x9c},
- // Block 0xbb, offset 0x414
- {value: 0x0010, lo: 0x80, hi: 0x87},
- {value: 0x0010, lo: 0x89, hi: 0xa4},
- {value: 0x0024, lo: 0xa5, hi: 0xa5},
- {value: 0x0034, lo: 0xa6, hi: 0xa6},
- // Block 0xbc, offset 0x418
- {value: 0x0010, lo: 0x80, hi: 0x95},
- {value: 0x0010, lo: 0xa0, hi: 0xb2},
- // Block 0xbd, offset 0x41a
- {value: 0x0010, lo: 0x80, hi: 0x91},
- // Block 0xbe, offset 0x41b
- {value: 0x0010, lo: 0x80, hi: 0x88},
- // Block 0xbf, offset 0x41c
- {value: 0x5653, lo: 0x80, hi: 0xb2},
- // Block 0xc0, offset 0x41d
- {value: 0x5652, lo: 0x80, hi: 0xb2},
- // Block 0xc1, offset 0x41e
- {value: 0x0010, lo: 0x80, hi: 0x80},
- {value: 0x0014, lo: 0x81, hi: 0x81},
- {value: 0x0010, lo: 0x82, hi: 0xb7},
- {value: 0x0014, lo: 0xb8, hi: 0xbf},
- // Block 0xc2, offset 0x422
- {value: 0x0014, lo: 0x80, hi: 0x85},
- {value: 0x0034, lo: 0x86, hi: 0x86},
- {value: 0x0010, lo: 0xa6, hi: 0xaf},
- {value: 0x0034, lo: 0xbf, hi: 0xbf},
- // Block 0xc3, offset 0x426
- {value: 0x0014, lo: 0x80, hi: 0x81},
- {value: 0x0010, lo: 0x82, hi: 0xb2},
- {value: 0x0014, lo: 0xb3, hi: 0xb6},
- {value: 0x0010, lo: 0xb7, hi: 0xb8},
- {value: 0x0034, lo: 0xb9, hi: 0xba},
- {value: 0x0014, lo: 0xbd, hi: 0xbd},
- // Block 0xc4, offset 0x42c
- {value: 0x0010, lo: 0x90, hi: 0xa8},
- {value: 0x0010, lo: 0xb0, hi: 0xb9},
- // Block 0xc5, offset 0x42e
- {value: 0x0024, lo: 0x80, hi: 0x82},
- {value: 0x0010, lo: 0x83, hi: 0xa6},
- {value: 0x0014, lo: 0xa7, hi: 0xab},
- {value: 0x0010, lo: 0xac, hi: 0xac},
- {value: 0x0014, lo: 0xad, hi: 0xb2},
- {value: 0x0034, lo: 0xb3, hi: 0xb4},
- {value: 0x0010, lo: 0xb6, hi: 0xbf},
- // Block 0xc6, offset 0x435
- {value: 0x0010, lo: 0x90, hi: 0xb2},
- {value: 0x0034, lo: 0xb3, hi: 0xb3},
- {value: 0x0010, lo: 0xb6, hi: 0xb6},
- // Block 0xc7, offset 0x438
- {value: 0x0014, lo: 0x80, hi: 0x81},
- {value: 0x0010, lo: 0x82, hi: 0xb5},
- {value: 0x0014, lo: 0xb6, hi: 0xbe},
- {value: 0x0010, lo: 0xbf, hi: 0xbf},
- // Block 0xc8, offset 0x43c
- {value: 0x0030, lo: 0x80, hi: 0x80},
- {value: 0x0010, lo: 0x81, hi: 0x84},
- {value: 0x0034, lo: 0x8a, hi: 0x8a},
- {value: 0x0014, lo: 0x8b, hi: 0x8c},
- {value: 0x0010, lo: 0x90, hi: 0x9a},
- {value: 0x0010, lo: 0x9c, hi: 0x9c},
- // Block 0xc9, offset 0x442
- {value: 0x0010, lo: 0x80, hi: 0x91},
- {value: 0x0010, lo: 0x93, hi: 0xae},
- {value: 0x0014, lo: 0xaf, hi: 0xb1},
- {value: 0x0010, lo: 0xb2, hi: 0xb3},
- {value: 0x0014, lo: 0xb4, hi: 0xb4},
- {value: 0x0030, lo: 0xb5, hi: 0xb5},
- {value: 0x0034, lo: 0xb6, hi: 0xb6},
- {value: 0x0014, lo: 0xb7, hi: 0xb7},
- {value: 0x0014, lo: 0xbe, hi: 0xbe},
- // Block 0xca, offset 0x44b
- {value: 0x0010, lo: 0x80, hi: 0x86},
- {value: 0x0010, lo: 0x88, hi: 0x88},
- {value: 0x0010, lo: 0x8a, hi: 0x8d},
- {value: 0x0010, lo: 0x8f, hi: 0x9d},
- {value: 0x0010, lo: 0x9f, hi: 0xa8},
- {value: 0x0010, lo: 0xb0, hi: 0xbf},
- // Block 0xcb, offset 0x451
- {value: 0x0010, lo: 0x80, hi: 0x9e},
- {value: 0x0014, lo: 0x9f, hi: 0x9f},
- {value: 0x0010, lo: 0xa0, hi: 0xa2},
- {value: 0x0014, lo: 0xa3, hi: 0xa8},
- {value: 0x0034, lo: 0xa9, hi: 0xaa},
- {value: 0x0010, lo: 0xb0, hi: 0xb9},
- // Block 0xcc, offset 0x457
- {value: 0x0014, lo: 0x80, hi: 0x81},
- {value: 0x0010, lo: 0x82, hi: 0x83},
- {value: 0x0010, lo: 0x85, hi: 0x8c},
- {value: 0x0010, lo: 0x8f, hi: 0x90},
- {value: 0x0010, lo: 0x93, hi: 0xa8},
- {value: 0x0010, lo: 0xaa, hi: 0xb0},
- {value: 0x0010, lo: 0xb2, hi: 0xb3},
- {value: 0x0010, lo: 0xb5, hi: 0xb9},
- {value: 0x0034, lo: 0xbc, hi: 0xbc},
- {value: 0x0010, lo: 0xbd, hi: 0xbf},
- // Block 0xcd, offset 0x461
- {value: 0x0014, lo: 0x80, hi: 0x80},
- {value: 0x0010, lo: 0x81, hi: 0x84},
- {value: 0x0010, lo: 0x87, hi: 0x88},
- {value: 0x0010, lo: 0x8b, hi: 0x8c},
- {value: 0x0030, lo: 0x8d, hi: 0x8d},
- {value: 0x0010, lo: 0x90, hi: 0x90},
- {value: 0x0010, lo: 0x97, hi: 0x97},
- {value: 0x0010, lo: 0x9d, hi: 0xa3},
- {value: 0x0024, lo: 0xa6, hi: 0xac},
- {value: 0x0024, lo: 0xb0, hi: 0xb4},
- // Block 0xce, offset 0x46b
- {value: 0x0010, lo: 0x80, hi: 0xb7},
- {value: 0x0014, lo: 0xb8, hi: 0xbf},
- // Block 0xcf, offset 0x46d
- {value: 0x0010, lo: 0x80, hi: 0x81},
- {value: 0x0034, lo: 0x82, hi: 0x82},
- {value: 0x0014, lo: 0x83, hi: 0x84},
- {value: 0x0010, lo: 0x85, hi: 0x85},
- {value: 0x0034, lo: 0x86, hi: 0x86},
- {value: 0x0010, lo: 0x87, hi: 0x8a},
- {value: 0x0010, lo: 0x90, hi: 0x99},
- // Block 0xd0, offset 0x474
- {value: 0x0010, lo: 0x80, hi: 0xb2},
- {value: 0x0014, lo: 0xb3, hi: 0xb8},
- {value: 0x0010, lo: 0xb9, hi: 0xb9},
- {value: 0x0014, lo: 0xba, hi: 0xba},
- {value: 0x0010, lo: 0xbb, hi: 0xbe},
- {value: 0x0014, lo: 0xbf, hi: 0xbf},
- // Block 0xd1, offset 0x47a
- {value: 0x0014, lo: 0x80, hi: 0x80},
- {value: 0x0010, lo: 0x81, hi: 0x81},
- {value: 0x0034, lo: 0x82, hi: 0x83},
- {value: 0x0010, lo: 0x84, hi: 0x85},
- {value: 0x0010, lo: 0x87, hi: 0x87},
- {value: 0x0010, lo: 0x90, hi: 0x99},
- // Block 0xd2, offset 0x480
- {value: 0x0010, lo: 0x80, hi: 0xb1},
- {value: 0x0014, lo: 0xb2, hi: 0xb5},
- {value: 0x0010, lo: 0xb8, hi: 0xbb},
- {value: 0x0014, lo: 0xbc, hi: 0xbd},
- {value: 0x0010, lo: 0xbe, hi: 0xbe},
- {value: 0x0034, lo: 0xbf, hi: 0xbf},
- // Block 0xd3, offset 0x486
- {value: 0x0034, lo: 0x80, hi: 0x80},
- {value: 0x0010, lo: 0x98, hi: 0x9b},
- {value: 0x0014, lo: 0x9c, hi: 0x9d},
- // Block 0xd4, offset 0x489
- {value: 0x0010, lo: 0x80, hi: 0xb2},
- {value: 0x0014, lo: 0xb3, hi: 0xba},
- {value: 0x0010, lo: 0xbb, hi: 0xbc},
- {value: 0x0014, lo: 0xbd, hi: 0xbd},
- {value: 0x0010, lo: 0xbe, hi: 0xbe},
- {value: 0x0034, lo: 0xbf, hi: 0xbf},
- // Block 0xd5, offset 0x48f
- {value: 0x0014, lo: 0x80, hi: 0x80},
- {value: 0x0010, lo: 0x84, hi: 0x84},
- {value: 0x0010, lo: 0x90, hi: 0x99},
- // Block 0xd6, offset 0x492
- {value: 0x0010, lo: 0x80, hi: 0xaa},
- {value: 0x0014, lo: 0xab, hi: 0xab},
- {value: 0x0010, lo: 0xac, hi: 0xac},
- {value: 0x0014, lo: 0xad, hi: 0xad},
- {value: 0x0010, lo: 0xae, hi: 0xaf},
- {value: 0x0014, lo: 0xb0, hi: 0xb5},
- {value: 0x0030, lo: 0xb6, hi: 0xb6},
- {value: 0x0034, lo: 0xb7, hi: 0xb7},
- // Block 0xd7, offset 0x49a
- {value: 0x0010, lo: 0x80, hi: 0x89},
- // Block 0xd8, offset 0x49b
- {value: 0x0014, lo: 0x9d, hi: 0x9f},
- {value: 0x0010, lo: 0xa0, hi: 0xa1},
- {value: 0x0014, lo: 0xa2, hi: 0xa5},
- {value: 0x0010, lo: 0xa6, hi: 0xa6},
- {value: 0x0014, lo: 0xa7, hi: 0xaa},
- {value: 0x0034, lo: 0xab, hi: 0xab},
- {value: 0x0010, lo: 0xb0, hi: 0xb9},
- // Block 0xd9, offset 0x4a2
- {value: 0x5f53, lo: 0xa0, hi: 0xbf},
- // Block 0xda, offset 0x4a3
- {value: 0x5f52, lo: 0x80, hi: 0x9f},
- {value: 0x0010, lo: 0xa0, hi: 0xa9},
- {value: 0x0010, lo: 0xbf, hi: 0xbf},
- // Block 0xdb, offset 0x4a6
- {value: 0x0010, lo: 0x80, hi: 0xb8},
- // Block 0xdc, offset 0x4a7
- {value: 0x0010, lo: 0x80, hi: 0x88},
- {value: 0x0010, lo: 0x8a, hi: 0xaf},
- {value: 0x0014, lo: 0xb0, hi: 0xb6},
- {value: 0x0014, lo: 0xb8, hi: 0xbd},
- {value: 0x0010, lo: 0xbe, hi: 0xbe},
- {value: 0x0034, lo: 0xbf, hi: 0xbf},
- // Block 0xdd, offset 0x4ad
- {value: 0x0010, lo: 0x80, hi: 0x80},
- {value: 0x0010, lo: 0x90, hi: 0x99},
- {value: 0x0010, lo: 0xb2, hi: 0xbf},
- // Block 0xde, offset 0x4b0
- {value: 0x0010, lo: 0x80, hi: 0x8f},
- {value: 0x0014, lo: 0x92, hi: 0xa7},
- {value: 0x0010, lo: 0xa9, hi: 0xa9},
- {value: 0x0014, lo: 0xaa, hi: 0xb0},
- {value: 0x0010, lo: 0xb1, hi: 0xb1},
- {value: 0x0014, lo: 0xb2, hi: 0xb3},
- {value: 0x0010, lo: 0xb4, hi: 0xb4},
- {value: 0x0014, lo: 0xb5, hi: 0xb6},
- // Block 0xdf, offset 0x4b8
- {value: 0x0010, lo: 0x80, hi: 0x99},
- // Block 0xe0, offset 0x4b9
- {value: 0x0010, lo: 0x80, hi: 0xae},
- // Block 0xe1, offset 0x4ba
- {value: 0x0010, lo: 0x80, hi: 0x83},
- // Block 0xe2, offset 0x4bb
- {value: 0x0010, lo: 0x80, hi: 0x86},
- // Block 0xe3, offset 0x4bc
- {value: 0x0010, lo: 0x80, hi: 0x9e},
- {value: 0x0010, lo: 0xa0, hi: 0xa9},
- // Block 0xe4, offset 0x4be
- {value: 0x0010, lo: 0x90, hi: 0xad},
- {value: 0x0034, lo: 0xb0, hi: 0xb4},
- // Block 0xe5, offset 0x4c0
- {value: 0x0010, lo: 0x80, hi: 0xaf},
- {value: 0x0024, lo: 0xb0, hi: 0xb6},
- // Block 0xe6, offset 0x4c2
- {value: 0x0014, lo: 0x80, hi: 0x83},
- {value: 0x0010, lo: 0x90, hi: 0x99},
- {value: 0x0010, lo: 0xa3, hi: 0xb7},
- {value: 0x0010, lo: 0xbd, hi: 0xbf},
- // Block 0xe7, offset 0x4c6
- {value: 0x0010, lo: 0x80, hi: 0x8f},
- // Block 0xe8, offset 0x4c7
- {value: 0x0010, lo: 0x80, hi: 0x84},
- {value: 0x0010, lo: 0x90, hi: 0xbe},
- // Block 0xe9, offset 0x4c9
- {value: 0x0014, lo: 0x8f, hi: 0x9f},
- // Block 0xea, offset 0x4ca
- {value: 0x0014, lo: 0xa0, hi: 0xa0},
- // Block 0xeb, offset 0x4cb
- {value: 0x0010, lo: 0x80, hi: 0xaa},
- {value: 0x0010, lo: 0xb0, hi: 0xbc},
- // Block 0xec, offset 0x4cd
- {value: 0x0010, lo: 0x80, hi: 0x88},
- {value: 0x0010, lo: 0x90, hi: 0x99},
- {value: 0x0014, lo: 0x9d, hi: 0x9d},
- {value: 0x0034, lo: 0x9e, hi: 0x9e},
- {value: 0x0014, lo: 0xa0, hi: 0xa3},
- // Block 0xed, offset 0x4d2
- {value: 0x0030, lo: 0xa5, hi: 0xa6},
- {value: 0x0034, lo: 0xa7, hi: 0xa9},
- {value: 0x0030, lo: 0xad, hi: 0xb2},
- {value: 0x0014, lo: 0xb3, hi: 0xba},
- {value: 0x0034, lo: 0xbb, hi: 0xbf},
- // Block 0xee, offset 0x4d7
- {value: 0x0034, lo: 0x80, hi: 0x82},
- {value: 0x0024, lo: 0x85, hi: 0x89},
- {value: 0x0034, lo: 0x8a, hi: 0x8b},
- {value: 0x0024, lo: 0xaa, hi: 0xad},
- // Block 0xef, offset 0x4db
- {value: 0x0024, lo: 0x82, hi: 0x84},
- // Block 0xf0, offset 0x4dc
- {value: 0x0013, lo: 0x80, hi: 0x99},
- {value: 0x0012, lo: 0x9a, hi: 0xb3},
- {value: 0x0013, lo: 0xb4, hi: 0xbf},
- // Block 0xf1, offset 0x4df
- {value: 0x0013, lo: 0x80, hi: 0x8d},
- {value: 0x0012, lo: 0x8e, hi: 0x94},
- {value: 0x0012, lo: 0x96, hi: 0xa7},
- {value: 0x0013, lo: 0xa8, hi: 0xbf},
- // Block 0xf2, offset 0x4e3
- {value: 0x0013, lo: 0x80, hi: 0x81},
- {value: 0x0012, lo: 0x82, hi: 0x9b},
- {value: 0x0013, lo: 0x9c, hi: 0x9c},
- {value: 0x0013, lo: 0x9e, hi: 0x9f},
- {value: 0x0013, lo: 0xa2, hi: 0xa2},
- {value: 0x0013, lo: 0xa5, hi: 0xa6},
- {value: 0x0013, lo: 0xa9, hi: 0xac},
- {value: 0x0013, lo: 0xae, hi: 0xb5},
- {value: 0x0012, lo: 0xb6, hi: 0xb9},
- {value: 0x0012, lo: 0xbb, hi: 0xbb},
- {value: 0x0012, lo: 0xbd, hi: 0xbf},
- // Block 0xf3, offset 0x4ee
- {value: 0x0012, lo: 0x80, hi: 0x83},
- {value: 0x0012, lo: 0x85, hi: 0x8f},
- {value: 0x0013, lo: 0x90, hi: 0xa9},
- {value: 0x0012, lo: 0xaa, hi: 0xbf},
- // Block 0xf4, offset 0x4f2
- {value: 0x0012, lo: 0x80, hi: 0x83},
- {value: 0x0013, lo: 0x84, hi: 0x85},
- {value: 0x0013, lo: 0x87, hi: 0x8a},
- {value: 0x0013, lo: 0x8d, hi: 0x94},
- {value: 0x0013, lo: 0x96, hi: 0x9c},
- {value: 0x0012, lo: 0x9e, hi: 0xb7},
- {value: 0x0013, lo: 0xb8, hi: 0xb9},
- {value: 0x0013, lo: 0xbb, hi: 0xbe},
- // Block 0xf5, offset 0x4fa
- {value: 0x0013, lo: 0x80, hi: 0x84},
- {value: 0x0013, lo: 0x86, hi: 0x86},
- {value: 0x0013, lo: 0x8a, hi: 0x90},
- {value: 0x0012, lo: 0x92, hi: 0xab},
- {value: 0x0013, lo: 0xac, hi: 0xbf},
- // Block 0xf6, offset 0x4ff
- {value: 0x0013, lo: 0x80, hi: 0x85},
- {value: 0x0012, lo: 0x86, hi: 0x9f},
- {value: 0x0013, lo: 0xa0, hi: 0xb9},
- {value: 0x0012, lo: 0xba, hi: 0xbf},
- // Block 0xf7, offset 0x503
- {value: 0x0012, lo: 0x80, hi: 0x93},
- {value: 0x0013, lo: 0x94, hi: 0xad},
- {value: 0x0012, lo: 0xae, hi: 0xbf},
- // Block 0xf8, offset 0x506
- {value: 0x0012, lo: 0x80, hi: 0x87},
- {value: 0x0013, lo: 0x88, hi: 0xa1},
- {value: 0x0012, lo: 0xa2, hi: 0xbb},
- {value: 0x0013, lo: 0xbc, hi: 0xbf},
- // Block 0xf9, offset 0x50a
- {value: 0x0013, lo: 0x80, hi: 0x95},
- {value: 0x0012, lo: 0x96, hi: 0xaf},
- {value: 0x0013, lo: 0xb0, hi: 0xbf},
- // Block 0xfa, offset 0x50d
- {value: 0x0013, lo: 0x80, hi: 0x89},
- {value: 0x0012, lo: 0x8a, hi: 0xa5},
- {value: 0x0013, lo: 0xa8, hi: 0xbf},
- // Block 0xfb, offset 0x510
- {value: 0x0013, lo: 0x80, hi: 0x80},
- {value: 0x0012, lo: 0x82, hi: 0x9a},
- {value: 0x0012, lo: 0x9c, hi: 0xa1},
- {value: 0x0013, lo: 0xa2, hi: 0xba},
- {value: 0x0012, lo: 0xbc, hi: 0xbf},
- // Block 0xfc, offset 0x515
- {value: 0x0012, lo: 0x80, hi: 0x94},
- {value: 0x0012, lo: 0x96, hi: 0x9b},
- {value: 0x0013, lo: 0x9c, hi: 0xb4},
- {value: 0x0012, lo: 0xb6, hi: 0xbf},
- // Block 0xfd, offset 0x519
- {value: 0x0012, lo: 0x80, hi: 0x8e},
- {value: 0x0012, lo: 0x90, hi: 0x95},
- {value: 0x0013, lo: 0x96, hi: 0xae},
- {value: 0x0012, lo: 0xb0, hi: 0xbf},
- // Block 0xfe, offset 0x51d
- {value: 0x0012, lo: 0x80, hi: 0x88},
- {value: 0x0012, lo: 0x8a, hi: 0x8f},
- {value: 0x0013, lo: 0x90, hi: 0xa8},
- {value: 0x0012, lo: 0xaa, hi: 0xbf},
- // Block 0xff, offset 0x521
- {value: 0x0012, lo: 0x80, hi: 0x82},
- {value: 0x0012, lo: 0x84, hi: 0x89},
- {value: 0x0017, lo: 0x8a, hi: 0x8b},
- {value: 0x0010, lo: 0x8e, hi: 0xbf},
- // Block 0x100, offset 0x525
- {value: 0x0014, lo: 0x80, hi: 0xb6},
- {value: 0x0014, lo: 0xbb, hi: 0xbf},
- // Block 0x101, offset 0x527
- {value: 0x0014, lo: 0x80, hi: 0xac},
- {value: 0x0014, lo: 0xb5, hi: 0xb5},
- // Block 0x102, offset 0x529
- {value: 0x0014, lo: 0x84, hi: 0x84},
- {value: 0x0014, lo: 0x9b, hi: 0x9f},
- {value: 0x0014, lo: 0xa1, hi: 0xaf},
- // Block 0x103, offset 0x52c
- {value: 0x0024, lo: 0x80, hi: 0x86},
- {value: 0x0024, lo: 0x88, hi: 0x98},
- {value: 0x0024, lo: 0x9b, hi: 0xa1},
- {value: 0x0024, lo: 0xa3, hi: 0xa4},
- {value: 0x0024, lo: 0xa6, hi: 0xaa},
- // Block 0x104, offset 0x531
- {value: 0x0010, lo: 0x80, hi: 0x84},
- {value: 0x0034, lo: 0x90, hi: 0x96},
- // Block 0x105, offset 0x533
- {value: 0xb552, lo: 0x80, hi: 0x81},
- {value: 0xb852, lo: 0x82, hi: 0x83},
- {value: 0x0024, lo: 0x84, hi: 0x89},
- {value: 0x0034, lo: 0x8a, hi: 0x8a},
- {value: 0x0010, lo: 0x90, hi: 0x99},
- // Block 0x106, offset 0x538
- {value: 0x0010, lo: 0x80, hi: 0x83},
- {value: 0x0010, lo: 0x85, hi: 0x9f},
- {value: 0x0010, lo: 0xa1, hi: 0xa2},
- {value: 0x0010, lo: 0xa4, hi: 0xa4},
- {value: 0x0010, lo: 0xa7, hi: 0xa7},
- {value: 0x0010, lo: 0xa9, hi: 0xb2},
- {value: 0x0010, lo: 0xb4, hi: 0xb7},
- {value: 0x0010, lo: 0xb9, hi: 0xb9},
- {value: 0x0010, lo: 0xbb, hi: 0xbb},
- // Block 0x107, offset 0x541
- {value: 0x0010, lo: 0x80, hi: 0x89},
- {value: 0x0010, lo: 0x8b, hi: 0x9b},
- {value: 0x0010, lo: 0xa1, hi: 0xa3},
- {value: 0x0010, lo: 0xa5, hi: 0xa9},
- {value: 0x0010, lo: 0xab, hi: 0xbb},
- // Block 0x108, offset 0x546
- {value: 0x0013, lo: 0xb0, hi: 0xbf},
- // Block 0x109, offset 0x547
- {value: 0x0013, lo: 0x80, hi: 0x89},
- {value: 0x0013, lo: 0x90, hi: 0xa9},
- {value: 0x0013, lo: 0xb0, hi: 0xbf},
- // Block 0x10a, offset 0x54a
- {value: 0x0013, lo: 0x80, hi: 0x89},
- // Block 0x10b, offset 0x54b
- {value: 0x0004, lo: 0xbb, hi: 0xbf},
- // Block 0x10c, offset 0x54c
- {value: 0x0014, lo: 0x81, hi: 0x81},
- {value: 0x0014, lo: 0xa0, hi: 0xbf},
- // Block 0x10d, offset 0x54e
- {value: 0x0014, lo: 0x80, hi: 0xbf},
- // Block 0x10e, offset 0x54f
- {value: 0x0014, lo: 0x80, hi: 0xaf},
-}
-
-// Total table size 13811 bytes (13KiB); checksum: 4CC48DA3
diff --git a/vendor/golang.org/x/text/cases/tables9.0.0_test.go b/vendor/golang.org/x/text/cases/tables9.0.0_test.go
deleted file mode 100644
index 398d25331..000000000
--- a/vendor/golang.org/x/text/cases/tables9.0.0_test.go
+++ /dev/null
@@ -1,1156 +0,0 @@
-// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT.
-
-// +build !go1.10
-
-package cases
-
-var (
- caseIgnorable = map[rune]bool{
- 0x0027: true,
- 0x002e: true,
- 0x003a: true,
- 0x00b7: true,
- 0x0387: true,
- 0x05f4: true,
- 0x2018: true,
- 0x2019: true,
- 0x2024: true,
- 0x2027: true,
- 0xfe13: true,
- 0xfe52: true,
- 0xfe55: true,
- 0xff07: true,
- 0xff0e: true,
- 0xff1a: true,
- }
-
- special = map[rune]struct{ toLower, toTitle, toUpper string }{
- 0x00df: {"ß", "Ss", "SS"},
- 0x0130: {"i̇", "İ", "İ"},
- 0xfb00: {"ff", "Ff", "FF"},
- 0xfb01: {"fi", "Fi", "FI"},
- 0xfb02: {"fl", "Fl", "FL"},
- 0xfb03: {"ffi", "Ffi", "FFI"},
- 0xfb04: {"ffl", "Ffl", "FFL"},
- 0xfb05: {"ſt", "St", "ST"},
- 0xfb06: {"st", "St", "ST"},
- 0x0587: {"և", "Եւ", "ԵՒ"},
- 0xfb13: {"ﬓ", "Մն", "ՄՆ"},
- 0xfb14: {"ﬔ", "Մե", "ՄԵ"},
- 0xfb15: {"ﬕ", "Մի", "ՄԻ"},
- 0xfb16: {"ﬖ", "Վն", "ՎՆ"},
- 0xfb17: {"ﬗ", "Մխ", "ՄԽ"},
- 0x0149: {"ʼn", "ʼN", "ʼN"},
- 0x0390: {"ΐ", "Ϊ́", "Ϊ́"},
- 0x03b0: {"ΰ", "Ϋ́", "Ϋ́"},
- 0x01f0: {"ǰ", "J̌", "J̌"},
- 0x1e96: {"ẖ", "H̱", "H̱"},
- 0x1e97: {"ẗ", "T̈", "T̈"},
- 0x1e98: {"ẘ", "W̊", "W̊"},
- 0x1e99: {"ẙ", "Y̊", "Y̊"},
- 0x1e9a: {"ẚ", "Aʾ", "Aʾ"},
- 0x1f50: {"ὐ", "Υ̓", "Υ̓"},
- 0x1f52: {"ὒ", "Υ̓̀", "Υ̓̀"},
- 0x1f54: {"ὔ", "Υ̓́", "Υ̓́"},
- 0x1f56: {"ὖ", "Υ̓͂", "Υ̓͂"},
- 0x1fb6: {"ᾶ", "Α͂", "Α͂"},
- 0x1fc6: {"ῆ", "Η͂", "Η͂"},
- 0x1fd2: {"ῒ", "Ϊ̀", "Ϊ̀"},
- 0x1fd3: {"ΐ", "Ϊ́", "Ϊ́"},
- 0x1fd6: {"ῖ", "Ι͂", "Ι͂"},
- 0x1fd7: {"ῗ", "Ϊ͂", "Ϊ͂"},
- 0x1fe2: {"ῢ", "Ϋ̀", "Ϋ̀"},
- 0x1fe3: {"ΰ", "Ϋ́", "Ϋ́"},
- 0x1fe4: {"ῤ", "Ρ̓", "Ρ̓"},
- 0x1fe6: {"ῦ", "Υ͂", "Υ͂"},
- 0x1fe7: {"ῧ", "Ϋ͂", "Ϋ͂"},
- 0x1ff6: {"ῶ", "Ω͂", "Ω͂"},
- 0x1f80: {"ᾀ", "ᾈ", "ἈΙ"},
- 0x1f81: {"ᾁ", "ᾉ", "ἉΙ"},
- 0x1f82: {"ᾂ", "ᾊ", "ἊΙ"},
- 0x1f83: {"ᾃ", "ᾋ", "ἋΙ"},
- 0x1f84: {"ᾄ", "ᾌ", "ἌΙ"},
- 0x1f85: {"ᾅ", "ᾍ", "ἍΙ"},
- 0x1f86: {"ᾆ", "ᾎ", "ἎΙ"},
- 0x1f87: {"ᾇ", "ᾏ", "ἏΙ"},
- 0x1f88: {"ᾀ", "ᾈ", "ἈΙ"},
- 0x1f89: {"ᾁ", "ᾉ", "ἉΙ"},
- 0x1f8a: {"ᾂ", "ᾊ", "ἊΙ"},
- 0x1f8b: {"ᾃ", "ᾋ", "ἋΙ"},
- 0x1f8c: {"ᾄ", "ᾌ", "ἌΙ"},
- 0x1f8d: {"ᾅ", "ᾍ", "ἍΙ"},
- 0x1f8e: {"ᾆ", "ᾎ", "ἎΙ"},
- 0x1f8f: {"ᾇ", "ᾏ", "ἏΙ"},
- 0x1f90: {"ᾐ", "ᾘ", "ἨΙ"},
- 0x1f91: {"ᾑ", "ᾙ", "ἩΙ"},
- 0x1f92: {"ᾒ", "ᾚ", "ἪΙ"},
- 0x1f93: {"ᾓ", "ᾛ", "ἫΙ"},
- 0x1f94: {"ᾔ", "ᾜ", "ἬΙ"},
- 0x1f95: {"ᾕ", "ᾝ", "ἭΙ"},
- 0x1f96: {"ᾖ", "ᾞ", "ἮΙ"},
- 0x1f97: {"ᾗ", "ᾟ", "ἯΙ"},
- 0x1f98: {"ᾐ", "ᾘ", "ἨΙ"},
- 0x1f99: {"ᾑ", "ᾙ", "ἩΙ"},
- 0x1f9a: {"ᾒ", "ᾚ", "ἪΙ"},
- 0x1f9b: {"ᾓ", "ᾛ", "ἫΙ"},
- 0x1f9c: {"ᾔ", "ᾜ", "ἬΙ"},
- 0x1f9d: {"ᾕ", "ᾝ", "ἭΙ"},
- 0x1f9e: {"ᾖ", "ᾞ", "ἮΙ"},
- 0x1f9f: {"ᾗ", "ᾟ", "ἯΙ"},
- 0x1fa0: {"ᾠ", "ᾨ", "ὨΙ"},
- 0x1fa1: {"ᾡ", "ᾩ", "ὩΙ"},
- 0x1fa2: {"ᾢ", "ᾪ", "ὪΙ"},
- 0x1fa3: {"ᾣ", "ᾫ", "ὫΙ"},
- 0x1fa4: {"ᾤ", "ᾬ", "ὬΙ"},
- 0x1fa5: {"ᾥ", "ᾭ", "ὭΙ"},
- 0x1fa6: {"ᾦ", "ᾮ", "ὮΙ"},
- 0x1fa7: {"ᾧ", "ᾯ", "ὯΙ"},
- 0x1fa8: {"ᾠ", "ᾨ", "ὨΙ"},
- 0x1fa9: {"ᾡ", "ᾩ", "ὩΙ"},
- 0x1faa: {"ᾢ", "ᾪ", "ὪΙ"},
- 0x1fab: {"ᾣ", "ᾫ", "ὫΙ"},
- 0x1fac: {"ᾤ", "ᾬ", "ὬΙ"},
- 0x1fad: {"ᾥ", "ᾭ", "ὭΙ"},
- 0x1fae: {"ᾦ", "ᾮ", "ὮΙ"},
- 0x1faf: {"ᾧ", "ᾯ", "ὯΙ"},
- 0x1fb3: {"ᾳ", "ᾼ", "ΑΙ"},
- 0x1fbc: {"ᾳ", "ᾼ", "ΑΙ"},
- 0x1fc3: {"ῃ", "ῌ", "ΗΙ"},
- 0x1fcc: {"ῃ", "ῌ", "ΗΙ"},
- 0x1ff3: {"ῳ", "ῼ", "ΩΙ"},
- 0x1ffc: {"ῳ", "ῼ", "ΩΙ"},
- 0x1fb2: {"ᾲ", "Ὰͅ", "ᾺΙ"},
- 0x1fb4: {"ᾴ", "Άͅ", "ΆΙ"},
- 0x1fc2: {"ῂ", "Ὴͅ", "ῊΙ"},
- 0x1fc4: {"ῄ", "Ήͅ", "ΉΙ"},
- 0x1ff2: {"ῲ", "Ὼͅ", "ῺΙ"},
- 0x1ff4: {"ῴ", "Ώͅ", "ΏΙ"},
- 0x1fb7: {"ᾷ", "ᾼ͂", "Α͂Ι"},
- 0x1fc7: {"ῇ", "ῌ͂", "Η͂Ι"},
- 0x1ff7: {"ῷ", "ῼ͂", "Ω͂Ι"},
- }
-
- foldMap = map[rune]struct{ simple, full, special string }{
- 0x0049: {"", "", "ı"},
- 0x00b5: {"μ", "μ", ""},
- 0x00df: {"", "ss", ""},
- 0x0130: {"", "i̇", "i"},
- 0x0149: {"", "ʼn", ""},
- 0x017f: {"s", "s", ""},
- 0x01f0: {"", "ǰ", ""},
- 0x0345: {"ι", "ι", ""},
- 0x0390: {"", "ΐ", ""},
- 0x03b0: {"", "ΰ", ""},
- 0x03c2: {"σ", "σ", ""},
- 0x03d0: {"β", "β", ""},
- 0x03d1: {"θ", "θ", ""},
- 0x03d5: {"φ", "φ", ""},
- 0x03d6: {"π", "π", ""},
- 0x03f0: {"κ", "κ", ""},
- 0x03f1: {"ρ", "ρ", ""},
- 0x03f5: {"ε", "ε", ""},
- 0x0587: {"", "եւ", ""},
- 0x13f8: {"Ᏸ", "Ᏸ", ""},
- 0x13f9: {"Ᏹ", "Ᏹ", ""},
- 0x13fa: {"Ᏺ", "Ᏺ", ""},
- 0x13fb: {"Ᏻ", "Ᏻ", ""},
- 0x13fc: {"Ᏼ", "Ᏼ", ""},
- 0x13fd: {"Ᏽ", "Ᏽ", ""},
- 0x1c80: {"в", "в", ""},
- 0x1c81: {"д", "д", ""},
- 0x1c82: {"о", "о", ""},
- 0x1c83: {"с", "с", ""},
- 0x1c84: {"т", "т", ""},
- 0x1c85: {"т", "т", ""},
- 0x1c86: {"ъ", "ъ", ""},
- 0x1c87: {"ѣ", "ѣ", ""},
- 0x1c88: {"ꙋ", "ꙋ", ""},
- 0x1e96: {"", "ẖ", ""},
- 0x1e97: {"", "ẗ", ""},
- 0x1e98: {"", "ẘ", ""},
- 0x1e99: {"", "ẙ", ""},
- 0x1e9a: {"", "aʾ", ""},
- 0x1e9b: {"ṡ", "ṡ", ""},
- 0x1e9e: {"", "ss", ""},
- 0x1f50: {"", "ὐ", ""},
- 0x1f52: {"", "ὒ", ""},
- 0x1f54: {"", "ὔ", ""},
- 0x1f56: {"", "ὖ", ""},
- 0x1f80: {"", "ἀι", ""},
- 0x1f81: {"", "ἁι", ""},
- 0x1f82: {"", "ἂι", ""},
- 0x1f83: {"", "ἃι", ""},
- 0x1f84: {"", "ἄι", ""},
- 0x1f85: {"", "ἅι", ""},
- 0x1f86: {"", "ἆι", ""},
- 0x1f87: {"", "ἇι", ""},
- 0x1f88: {"", "ἀι", ""},
- 0x1f89: {"", "ἁι", ""},
- 0x1f8a: {"", "ἂι", ""},
- 0x1f8b: {"", "ἃι", ""},
- 0x1f8c: {"", "ἄι", ""},
- 0x1f8d: {"", "ἅι", ""},
- 0x1f8e: {"", "ἆι", ""},
- 0x1f8f: {"", "ἇι", ""},
- 0x1f90: {"", "ἠι", ""},
- 0x1f91: {"", "ἡι", ""},
- 0x1f92: {"", "ἢι", ""},
- 0x1f93: {"", "ἣι", ""},
- 0x1f94: {"", "ἤι", ""},
- 0x1f95: {"", "ἥι", ""},
- 0x1f96: {"", "ἦι", ""},
- 0x1f97: {"", "ἧι", ""},
- 0x1f98: {"", "ἠι", ""},
- 0x1f99: {"", "ἡι", ""},
- 0x1f9a: {"", "ἢι", ""},
- 0x1f9b: {"", "ἣι", ""},
- 0x1f9c: {"", "ἤι", ""},
- 0x1f9d: {"", "ἥι", ""},
- 0x1f9e: {"", "ἦι", ""},
- 0x1f9f: {"", "ἧι", ""},
- 0x1fa0: {"", "ὠι", ""},
- 0x1fa1: {"", "ὡι", ""},
- 0x1fa2: {"", "ὢι", ""},
- 0x1fa3: {"", "ὣι", ""},
- 0x1fa4: {"", "ὤι", ""},
- 0x1fa5: {"", "ὥι", ""},
- 0x1fa6: {"", "ὦι", ""},
- 0x1fa7: {"", "ὧι", ""},
- 0x1fa8: {"", "ὠι", ""},
- 0x1fa9: {"", "ὡι", ""},
- 0x1faa: {"", "ὢι", ""},
- 0x1fab: {"", "ὣι", ""},
- 0x1fac: {"", "ὤι", ""},
- 0x1fad: {"", "ὥι", ""},
- 0x1fae: {"", "ὦι", ""},
- 0x1faf: {"", "ὧι", ""},
- 0x1fb2: {"", "ὰι", ""},
- 0x1fb3: {"", "αι", ""},
- 0x1fb4: {"", "άι", ""},
- 0x1fb6: {"", "ᾶ", ""},
- 0x1fb7: {"", "ᾶι", ""},
- 0x1fbc: {"", "αι", ""},
- 0x1fbe: {"ι", "ι", ""},
- 0x1fc2: {"", "ὴι", ""},
- 0x1fc3: {"", "ηι", ""},
- 0x1fc4: {"", "ήι", ""},
- 0x1fc6: {"", "ῆ", ""},
- 0x1fc7: {"", "ῆι", ""},
- 0x1fcc: {"", "ηι", ""},
- 0x1fd2: {"", "ῒ", ""},
- 0x1fd3: {"", "ΐ", ""},
- 0x1fd6: {"", "ῖ", ""},
- 0x1fd7: {"", "ῗ", ""},
- 0x1fe2: {"", "ῢ", ""},
- 0x1fe3: {"", "ΰ", ""},
- 0x1fe4: {"", "ῤ", ""},
- 0x1fe6: {"", "ῦ", ""},
- 0x1fe7: {"", "ῧ", ""},
- 0x1ff2: {"", "ὼι", ""},
- 0x1ff3: {"", "ωι", ""},
- 0x1ff4: {"", "ώι", ""},
- 0x1ff6: {"", "ῶ", ""},
- 0x1ff7: {"", "ῶι", ""},
- 0x1ffc: {"", "ωι", ""},
- 0xab70: {"Ꭰ", "Ꭰ", ""},
- 0xab71: {"Ꭱ", "Ꭱ", ""},
- 0xab72: {"Ꭲ", "Ꭲ", ""},
- 0xab73: {"Ꭳ", "Ꭳ", ""},
- 0xab74: {"Ꭴ", "Ꭴ", ""},
- 0xab75: {"Ꭵ", "Ꭵ", ""},
- 0xab76: {"Ꭶ", "Ꭶ", ""},
- 0xab77: {"Ꭷ", "Ꭷ", ""},
- 0xab78: {"Ꭸ", "Ꭸ", ""},
- 0xab79: {"Ꭹ", "Ꭹ", ""},
- 0xab7a: {"Ꭺ", "Ꭺ", ""},
- 0xab7b: {"Ꭻ", "Ꭻ", ""},
- 0xab7c: {"Ꭼ", "Ꭼ", ""},
- 0xab7d: {"Ꭽ", "Ꭽ", ""},
- 0xab7e: {"Ꭾ", "Ꭾ", ""},
- 0xab7f: {"Ꭿ", "Ꭿ", ""},
- 0xab80: {"Ꮀ", "Ꮀ", ""},
- 0xab81: {"Ꮁ", "Ꮁ", ""},
- 0xab82: {"Ꮂ", "Ꮂ", ""},
- 0xab83: {"Ꮃ", "Ꮃ", ""},
- 0xab84: {"Ꮄ", "Ꮄ", ""},
- 0xab85: {"Ꮅ", "Ꮅ", ""},
- 0xab86: {"Ꮆ", "Ꮆ", ""},
- 0xab87: {"Ꮇ", "Ꮇ", ""},
- 0xab88: {"Ꮈ", "Ꮈ", ""},
- 0xab89: {"Ꮉ", "Ꮉ", ""},
- 0xab8a: {"Ꮊ", "Ꮊ", ""},
- 0xab8b: {"Ꮋ", "Ꮋ", ""},
- 0xab8c: {"Ꮌ", "Ꮌ", ""},
- 0xab8d: {"Ꮍ", "Ꮍ", ""},
- 0xab8e: {"Ꮎ", "Ꮎ", ""},
- 0xab8f: {"Ꮏ", "Ꮏ", ""},
- 0xab90: {"Ꮐ", "Ꮐ", ""},
- 0xab91: {"Ꮑ", "Ꮑ", ""},
- 0xab92: {"Ꮒ", "Ꮒ", ""},
- 0xab93: {"Ꮓ", "Ꮓ", ""},
- 0xab94: {"Ꮔ", "Ꮔ", ""},
- 0xab95: {"Ꮕ", "Ꮕ", ""},
- 0xab96: {"Ꮖ", "Ꮖ", ""},
- 0xab97: {"Ꮗ", "Ꮗ", ""},
- 0xab98: {"Ꮘ", "Ꮘ", ""},
- 0xab99: {"Ꮙ", "Ꮙ", ""},
- 0xab9a: {"Ꮚ", "Ꮚ", ""},
- 0xab9b: {"Ꮛ", "Ꮛ", ""},
- 0xab9c: {"Ꮜ", "Ꮜ", ""},
- 0xab9d: {"Ꮝ", "Ꮝ", ""},
- 0xab9e: {"Ꮞ", "Ꮞ", ""},
- 0xab9f: {"Ꮟ", "Ꮟ", ""},
- 0xaba0: {"Ꮠ", "Ꮠ", ""},
- 0xaba1: {"Ꮡ", "Ꮡ", ""},
- 0xaba2: {"Ꮢ", "Ꮢ", ""},
- 0xaba3: {"Ꮣ", "Ꮣ", ""},
- 0xaba4: {"Ꮤ", "Ꮤ", ""},
- 0xaba5: {"Ꮥ", "Ꮥ", ""},
- 0xaba6: {"Ꮦ", "Ꮦ", ""},
- 0xaba7: {"Ꮧ", "Ꮧ", ""},
- 0xaba8: {"Ꮨ", "Ꮨ", ""},
- 0xaba9: {"Ꮩ", "Ꮩ", ""},
- 0xabaa: {"Ꮪ", "Ꮪ", ""},
- 0xabab: {"Ꮫ", "Ꮫ", ""},
- 0xabac: {"Ꮬ", "Ꮬ", ""},
- 0xabad: {"Ꮭ", "Ꮭ", ""},
- 0xabae: {"Ꮮ", "Ꮮ", ""},
- 0xabaf: {"Ꮯ", "Ꮯ", ""},
- 0xabb0: {"Ꮰ", "Ꮰ", ""},
- 0xabb1: {"Ꮱ", "Ꮱ", ""},
- 0xabb2: {"Ꮲ", "Ꮲ", ""},
- 0xabb3: {"Ꮳ", "Ꮳ", ""},
- 0xabb4: {"Ꮴ", "Ꮴ", ""},
- 0xabb5: {"Ꮵ", "Ꮵ", ""},
- 0xabb6: {"Ꮶ", "Ꮶ", ""},
- 0xabb7: {"Ꮷ", "Ꮷ", ""},
- 0xabb8: {"Ꮸ", "Ꮸ", ""},
- 0xabb9: {"Ꮹ", "Ꮹ", ""},
- 0xabba: {"Ꮺ", "Ꮺ", ""},
- 0xabbb: {"Ꮻ", "Ꮻ", ""},
- 0xabbc: {"Ꮼ", "Ꮼ", ""},
- 0xabbd: {"Ꮽ", "Ꮽ", ""},
- 0xabbe: {"Ꮾ", "Ꮾ", ""},
- 0xabbf: {"Ꮿ", "Ꮿ", ""},
- 0xfb00: {"", "ff", ""},
- 0xfb01: {"", "fi", ""},
- 0xfb02: {"", "fl", ""},
- 0xfb03: {"", "ffi", ""},
- 0xfb04: {"", "ffl", ""},
- 0xfb05: {"", "st", ""},
- 0xfb06: {"", "st", ""},
- 0xfb13: {"", "մն", ""},
- 0xfb14: {"", "մե", ""},
- 0xfb15: {"", "մի", ""},
- 0xfb16: {"", "վն", ""},
- 0xfb17: {"", "մխ", ""},
- }
-
- breakProp = []struct{ lo, hi rune }{
- {0x0, 0x26},
- {0x28, 0x2d},
- {0x2f, 0x2f},
- {0x3b, 0x40},
- {0x5b, 0x5e},
- {0x60, 0x60},
- {0x7b, 0xa9},
- {0xab, 0xac},
- {0xae, 0xb4},
- {0xb6, 0xb6},
- {0xb8, 0xb9},
- {0xbb, 0xbf},
- {0xd7, 0xd7},
- {0xf7, 0xf7},
- {0x2c2, 0x2c5},
- {0x2d2, 0x2d6},
- {0x2d8, 0x2df},
- {0x2e5, 0x2eb},
- {0x2ed, 0x2ed},
- {0x2ef, 0x2ff},
- {0x375, 0x375},
- {0x378, 0x379},
- {0x37e, 0x37e},
- {0x380, 0x385},
- {0x38b, 0x38b},
- {0x38d, 0x38d},
- {0x3a2, 0x3a2},
- {0x3f6, 0x3f6},
- {0x482, 0x482},
- {0x530, 0x530},
- {0x557, 0x558},
- {0x55a, 0x560},
- {0x588, 0x590},
- {0x5be, 0x5be},
- {0x5c0, 0x5c0},
- {0x5c3, 0x5c3},
- {0x5c6, 0x5c6},
- {0x5c8, 0x5cf},
- {0x5eb, 0x5ef},
- {0x5f5, 0x5ff},
- {0x606, 0x60f},
- {0x61b, 0x61b},
- {0x61d, 0x61f},
- {0x66a, 0x66a},
- {0x66c, 0x66d},
- {0x6d4, 0x6d4},
- {0x6de, 0x6de},
- {0x6e9, 0x6e9},
- {0x6fd, 0x6fe},
- {0x700, 0x70e},
- {0x74b, 0x74c},
- {0x7b2, 0x7bf},
- {0x7f6, 0x7f9},
- {0x7fb, 0x7ff},
- {0x82e, 0x83f},
- {0x85c, 0x89f},
- {0x8b5, 0x8b5},
- {0x8be, 0x8d3},
- {0x964, 0x965},
- {0x970, 0x970},
- {0x984, 0x984},
- {0x98d, 0x98e},
- {0x991, 0x992},
- {0x9a9, 0x9a9},
- {0x9b1, 0x9b1},
- {0x9b3, 0x9b5},
- {0x9ba, 0x9bb},
- {0x9c5, 0x9c6},
- {0x9c9, 0x9ca},
- {0x9cf, 0x9d6},
- {0x9d8, 0x9db},
- {0x9de, 0x9de},
- {0x9e4, 0x9e5},
- {0x9f2, 0xa00},
- {0xa04, 0xa04},
- {0xa0b, 0xa0e},
- {0xa11, 0xa12},
- {0xa29, 0xa29},
- {0xa31, 0xa31},
- {0xa34, 0xa34},
- {0xa37, 0xa37},
- {0xa3a, 0xa3b},
- {0xa3d, 0xa3d},
- {0xa43, 0xa46},
- {0xa49, 0xa4a},
- {0xa4e, 0xa50},
- {0xa52, 0xa58},
- {0xa5d, 0xa5d},
- {0xa5f, 0xa65},
- {0xa76, 0xa80},
- {0xa84, 0xa84},
- {0xa8e, 0xa8e},
- {0xa92, 0xa92},
- {0xaa9, 0xaa9},
- {0xab1, 0xab1},
- {0xab4, 0xab4},
- {0xaba, 0xabb},
- {0xac6, 0xac6},
- {0xaca, 0xaca},
- {0xace, 0xacf},
- {0xad1, 0xadf},
- {0xae4, 0xae5},
- {0xaf0, 0xaf8},
- {0xafa, 0xb00},
- {0xb04, 0xb04},
- {0xb0d, 0xb0e},
- {0xb11, 0xb12},
- {0xb29, 0xb29},
- {0xb31, 0xb31},
- {0xb34, 0xb34},
- {0xb3a, 0xb3b},
- {0xb45, 0xb46},
- {0xb49, 0xb4a},
- {0xb4e, 0xb55},
- {0xb58, 0xb5b},
- {0xb5e, 0xb5e},
- {0xb64, 0xb65},
- {0xb70, 0xb70},
- {0xb72, 0xb81},
- {0xb84, 0xb84},
- {0xb8b, 0xb8d},
- {0xb91, 0xb91},
- {0xb96, 0xb98},
- {0xb9b, 0xb9b},
- {0xb9d, 0xb9d},
- {0xba0, 0xba2},
- {0xba5, 0xba7},
- {0xbab, 0xbad},
- {0xbba, 0xbbd},
- {0xbc3, 0xbc5},
- {0xbc9, 0xbc9},
- {0xbce, 0xbcf},
- {0xbd1, 0xbd6},
- {0xbd8, 0xbe5},
- {0xbf0, 0xbff},
- {0xc04, 0xc04},
- {0xc0d, 0xc0d},
- {0xc11, 0xc11},
- {0xc29, 0xc29},
- {0xc3a, 0xc3c},
- {0xc45, 0xc45},
- {0xc49, 0xc49},
- {0xc4e, 0xc54},
- {0xc57, 0xc57},
- {0xc5b, 0xc5f},
- {0xc64, 0xc65},
- {0xc70, 0xc7f},
- {0xc84, 0xc84},
- {0xc8d, 0xc8d},
- {0xc91, 0xc91},
- {0xca9, 0xca9},
- {0xcb4, 0xcb4},
- {0xcba, 0xcbb},
- {0xcc5, 0xcc5},
- {0xcc9, 0xcc9},
- {0xcce, 0xcd4},
- {0xcd7, 0xcdd},
- {0xcdf, 0xcdf},
- {0xce4, 0xce5},
- {0xcf0, 0xcf0},
- {0xcf3, 0xd00},
- {0xd04, 0xd04},
- {0xd0d, 0xd0d},
- {0xd11, 0xd11},
- {0xd3b, 0xd3c},
- {0xd45, 0xd45},
- {0xd49, 0xd49},
- {0xd4f, 0xd53},
- {0xd58, 0xd5e},
- {0xd64, 0xd65},
- {0xd70, 0xd79},
- {0xd80, 0xd81},
- {0xd84, 0xd84},
- {0xd97, 0xd99},
- {0xdb2, 0xdb2},
- {0xdbc, 0xdbc},
- {0xdbe, 0xdbf},
- {0xdc7, 0xdc9},
- {0xdcb, 0xdce},
- {0xdd5, 0xdd5},
- {0xdd7, 0xdd7},
- {0xde0, 0xde5},
- {0xdf0, 0xdf1},
- {0xdf4, 0xe30},
- {0xe32, 0xe33},
- {0xe3b, 0xe46},
- {0xe4f, 0xe4f},
- {0xe5a, 0xeb0},
- {0xeb2, 0xeb3},
- {0xeba, 0xeba},
- {0xebd, 0xec7},
- {0xece, 0xecf},
- {0xeda, 0xeff},
- {0xf01, 0xf17},
- {0xf1a, 0xf1f},
- {0xf2a, 0xf34},
- {0xf36, 0xf36},
- {0xf38, 0xf38},
- {0xf3a, 0xf3d},
- {0xf48, 0xf48},
- {0xf6d, 0xf70},
- {0xf85, 0xf85},
- {0xf98, 0xf98},
- {0xfbd, 0xfc5},
- {0xfc7, 0x102a},
- {0x103f, 0x103f},
- {0x104a, 0x1055},
- {0x105a, 0x105d},
- {0x1061, 0x1061},
- {0x1065, 0x1066},
- {0x106e, 0x1070},
- {0x1075, 0x1081},
- {0x108e, 0x108e},
- {0x109e, 0x109f},
- {0x10c6, 0x10c6},
- {0x10c8, 0x10cc},
- {0x10ce, 0x10cf},
- {0x10fb, 0x10fb},
- {0x1249, 0x1249},
- {0x124e, 0x124f},
- {0x1257, 0x1257},
- {0x1259, 0x1259},
- {0x125e, 0x125f},
- {0x1289, 0x1289},
- {0x128e, 0x128f},
- {0x12b1, 0x12b1},
- {0x12b6, 0x12b7},
- {0x12bf, 0x12bf},
- {0x12c1, 0x12c1},
- {0x12c6, 0x12c7},
- {0x12d7, 0x12d7},
- {0x1311, 0x1311},
- {0x1316, 0x1317},
- {0x135b, 0x135c},
- {0x1360, 0x137f},
- {0x1390, 0x139f},
- {0x13f6, 0x13f7},
- {0x13fe, 0x1400},
- {0x166d, 0x166e},
- {0x1680, 0x1680},
- {0x169b, 0x169f},
- {0x16eb, 0x16ed},
- {0x16f9, 0x16ff},
- {0x170d, 0x170d},
- {0x1715, 0x171f},
- {0x1735, 0x173f},
- {0x1754, 0x175f},
- {0x176d, 0x176d},
- {0x1771, 0x1771},
- {0x1774, 0x17b3},
- {0x17d4, 0x17dc},
- {0x17de, 0x17df},
- {0x17ea, 0x180a},
- {0x180f, 0x180f},
- {0x181a, 0x181f},
- {0x1878, 0x187f},
- {0x18ab, 0x18af},
- {0x18f6, 0x18ff},
- {0x191f, 0x191f},
- {0x192c, 0x192f},
- {0x193c, 0x1945},
- {0x1950, 0x19cf},
- {0x19da, 0x19ff},
- {0x1a1c, 0x1a54},
- {0x1a5f, 0x1a5f},
- {0x1a7d, 0x1a7e},
- {0x1a8a, 0x1a8f},
- {0x1a9a, 0x1aaf},
- {0x1abf, 0x1aff},
- {0x1b4c, 0x1b4f},
- {0x1b5a, 0x1b6a},
- {0x1b74, 0x1b7f},
- {0x1bf4, 0x1bff},
- {0x1c38, 0x1c3f},
- {0x1c4a, 0x1c4c},
- {0x1c7e, 0x1c7f},
- {0x1c89, 0x1ccf},
- {0x1cd3, 0x1cd3},
- {0x1cf7, 0x1cf7},
- {0x1cfa, 0x1cff},
- {0x1df6, 0x1dfa},
- {0x1f16, 0x1f17},
- {0x1f1e, 0x1f1f},
- {0x1f46, 0x1f47},
- {0x1f4e, 0x1f4f},
- {0x1f58, 0x1f58},
- {0x1f5a, 0x1f5a},
- {0x1f5c, 0x1f5c},
- {0x1f5e, 0x1f5e},
- {0x1f7e, 0x1f7f},
- {0x1fb5, 0x1fb5},
- {0x1fbd, 0x1fbd},
- {0x1fbf, 0x1fc1},
- {0x1fc5, 0x1fc5},
- {0x1fcd, 0x1fcf},
- {0x1fd4, 0x1fd5},
- {0x1fdc, 0x1fdf},
- {0x1fed, 0x1ff1},
- {0x1ff5, 0x1ff5},
- {0x1ffd, 0x200b},
- {0x2010, 0x2017},
- {0x201a, 0x2023},
- {0x2025, 0x2026},
- {0x2028, 0x2029},
- {0x2030, 0x203e},
- {0x2041, 0x2053},
- {0x2055, 0x205f},
- {0x2065, 0x2065},
- {0x2070, 0x2070},
- {0x2072, 0x207e},
- {0x2080, 0x208f},
- {0x209d, 0x20cf},
- {0x20f1, 0x2101},
- {0x2103, 0x2106},
- {0x2108, 0x2109},
- {0x2114, 0x2114},
- {0x2116, 0x2118},
- {0x211e, 0x2123},
- {0x2125, 0x2125},
- {0x2127, 0x2127},
- {0x2129, 0x2129},
- {0x212e, 0x212e},
- {0x213a, 0x213b},
- {0x2140, 0x2144},
- {0x214a, 0x214d},
- {0x214f, 0x215f},
- {0x2189, 0x24b5},
- {0x24ea, 0x2bff},
- {0x2c2f, 0x2c2f},
- {0x2c5f, 0x2c5f},
- {0x2ce5, 0x2cea},
- {0x2cf4, 0x2cff},
- {0x2d26, 0x2d26},
- {0x2d28, 0x2d2c},
- {0x2d2e, 0x2d2f},
- {0x2d68, 0x2d6e},
- {0x2d70, 0x2d7e},
- {0x2d97, 0x2d9f},
- {0x2da7, 0x2da7},
- {0x2daf, 0x2daf},
- {0x2db7, 0x2db7},
- {0x2dbf, 0x2dbf},
- {0x2dc7, 0x2dc7},
- {0x2dcf, 0x2dcf},
- {0x2dd7, 0x2dd7},
- {0x2ddf, 0x2ddf},
- {0x2e00, 0x2e2e},
- {0x2e30, 0x3004},
- {0x3006, 0x3029},
- {0x3030, 0x303a},
- {0x303d, 0x3098},
- {0x309b, 0x3104},
- {0x312e, 0x3130},
- {0x318f, 0x319f},
- {0x31bb, 0x9fff},
- {0xa48d, 0xa4cf},
- {0xa4fe, 0xa4ff},
- {0xa60d, 0xa60f},
- {0xa62c, 0xa63f},
- {0xa673, 0xa673},
- {0xa67e, 0xa67e},
- {0xa6f2, 0xa716},
- {0xa720, 0xa721},
- {0xa789, 0xa78a},
- {0xa7af, 0xa7af},
- {0xa7b8, 0xa7f6},
- {0xa828, 0xa83f},
- {0xa874, 0xa87f},
- {0xa8c6, 0xa8cf},
- {0xa8da, 0xa8df},
- {0xa8f8, 0xa8fa},
- {0xa8fc, 0xa8fc},
- {0xa8fe, 0xa8ff},
- {0xa92e, 0xa92f},
- {0xa954, 0xa95f},
- {0xa97d, 0xa97f},
- {0xa9c1, 0xa9ce},
- {0xa9da, 0xa9e4},
- {0xa9e6, 0xa9ef},
- {0xa9fa, 0xa9ff},
- {0xaa37, 0xaa3f},
- {0xaa4e, 0xaa4f},
- {0xaa5a, 0xaa7a},
- {0xaa7e, 0xaaaf},
- {0xaab1, 0xaab1},
- {0xaab5, 0xaab6},
- {0xaab9, 0xaabd},
- {0xaac0, 0xaac0},
- {0xaac2, 0xaadf},
- {0xaaf0, 0xaaf1},
- {0xaaf7, 0xab00},
- {0xab07, 0xab08},
- {0xab0f, 0xab10},
- {0xab17, 0xab1f},
- {0xab27, 0xab27},
- {0xab2f, 0xab2f},
- {0xab5b, 0xab5b},
- {0xab66, 0xab6f},
- {0xabeb, 0xabeb},
- {0xabee, 0xabef},
- {0xabfa, 0xabff},
- {0xd7a4, 0xd7af},
- {0xd7c7, 0xd7ca},
- {0xd7fc, 0xfaff},
- {0xfb07, 0xfb12},
- {0xfb18, 0xfb1c},
- {0xfb29, 0xfb29},
- {0xfb37, 0xfb37},
- {0xfb3d, 0xfb3d},
- {0xfb3f, 0xfb3f},
- {0xfb42, 0xfb42},
- {0xfb45, 0xfb45},
- {0xfbb2, 0xfbd2},
- {0xfd3e, 0xfd4f},
- {0xfd90, 0xfd91},
- {0xfdc8, 0xfdef},
- {0xfdfc, 0xfdff},
- {0xfe10, 0xfe12},
- {0xfe14, 0xfe1f},
- {0xfe30, 0xfe32},
- {0xfe35, 0xfe4c},
- {0xfe50, 0xfe51},
- {0xfe53, 0xfe54},
- {0xfe56, 0xfe6f},
- {0xfe75, 0xfe75},
- {0xfefd, 0xfefe},
- {0xff00, 0xff06},
- {0xff08, 0xff0d},
- {0xff0f, 0xff19},
- {0xff1b, 0xff20},
- {0xff3b, 0xff3e},
- {0xff40, 0xff40},
- {0xff5b, 0xff9d},
- {0xffbf, 0xffc1},
- {0xffc8, 0xffc9},
- {0xffd0, 0xffd1},
- {0xffd8, 0xffd9},
- {0xffdd, 0xfff8},
- {0xfffc, 0xffff},
- {0x1000c, 0x1000c},
- {0x10027, 0x10027},
- {0x1003b, 0x1003b},
- {0x1003e, 0x1003e},
- {0x1004e, 0x1004f},
- {0x1005e, 0x1007f},
- {0x100fb, 0x1013f},
- {0x10175, 0x101fc},
- {0x101fe, 0x1027f},
- {0x1029d, 0x1029f},
- {0x102d1, 0x102df},
- {0x102e1, 0x102ff},
- {0x10320, 0x1032f},
- {0x1034b, 0x1034f},
- {0x1037b, 0x1037f},
- {0x1039e, 0x1039f},
- {0x103c4, 0x103c7},
- {0x103d0, 0x103d0},
- {0x103d6, 0x103ff},
- {0x1049e, 0x1049f},
- {0x104aa, 0x104af},
- {0x104d4, 0x104d7},
- {0x104fc, 0x104ff},
- {0x10528, 0x1052f},
- {0x10564, 0x105ff},
- {0x10737, 0x1073f},
- {0x10756, 0x1075f},
- {0x10768, 0x107ff},
- {0x10806, 0x10807},
- {0x10809, 0x10809},
- {0x10836, 0x10836},
- {0x10839, 0x1083b},
- {0x1083d, 0x1083e},
- {0x10856, 0x1085f},
- {0x10877, 0x1087f},
- {0x1089f, 0x108df},
- {0x108f3, 0x108f3},
- {0x108f6, 0x108ff},
- {0x10916, 0x1091f},
- {0x1093a, 0x1097f},
- {0x109b8, 0x109bd},
- {0x109c0, 0x109ff},
- {0x10a04, 0x10a04},
- {0x10a07, 0x10a0b},
- {0x10a14, 0x10a14},
- {0x10a18, 0x10a18},
- {0x10a34, 0x10a37},
- {0x10a3b, 0x10a3e},
- {0x10a40, 0x10a5f},
- {0x10a7d, 0x10a7f},
- {0x10a9d, 0x10abf},
- {0x10ac8, 0x10ac8},
- {0x10ae7, 0x10aff},
- {0x10b36, 0x10b3f},
- {0x10b56, 0x10b5f},
- {0x10b73, 0x10b7f},
- {0x10b92, 0x10bff},
- {0x10c49, 0x10c7f},
- {0x10cb3, 0x10cbf},
- {0x10cf3, 0x10fff},
- {0x11047, 0x11065},
- {0x11070, 0x1107e},
- {0x110bb, 0x110bc},
- {0x110be, 0x110cf},
- {0x110e9, 0x110ef},
- {0x110fa, 0x110ff},
- {0x11135, 0x11135},
- {0x11140, 0x1114f},
- {0x11174, 0x11175},
- {0x11177, 0x1117f},
- {0x111c5, 0x111c9},
- {0x111cd, 0x111cf},
- {0x111db, 0x111db},
- {0x111dd, 0x111ff},
- {0x11212, 0x11212},
- {0x11238, 0x1123d},
- {0x1123f, 0x1127f},
- {0x11287, 0x11287},
- {0x11289, 0x11289},
- {0x1128e, 0x1128e},
- {0x1129e, 0x1129e},
- {0x112a9, 0x112af},
- {0x112eb, 0x112ef},
- {0x112fa, 0x112ff},
- {0x11304, 0x11304},
- {0x1130d, 0x1130e},
- {0x11311, 0x11312},
- {0x11329, 0x11329},
- {0x11331, 0x11331},
- {0x11334, 0x11334},
- {0x1133a, 0x1133b},
- {0x11345, 0x11346},
- {0x11349, 0x1134a},
- {0x1134e, 0x1134f},
- {0x11351, 0x11356},
- {0x11358, 0x1135c},
- {0x11364, 0x11365},
- {0x1136d, 0x1136f},
- {0x11375, 0x113ff},
- {0x1144b, 0x1144f},
- {0x1145a, 0x1147f},
- {0x114c6, 0x114c6},
- {0x114c8, 0x114cf},
- {0x114da, 0x1157f},
- {0x115b6, 0x115b7},
- {0x115c1, 0x115d7},
- {0x115de, 0x115ff},
- {0x11641, 0x11643},
- {0x11645, 0x1164f},
- {0x1165a, 0x1167f},
- {0x116b8, 0x116bf},
- {0x116ca, 0x1171c},
- {0x1172c, 0x1172f},
- {0x1173a, 0x1189f},
- {0x118ea, 0x118fe},
- {0x11900, 0x11abf},
- {0x11af9, 0x11bff},
- {0x11c09, 0x11c09},
- {0x11c37, 0x11c37},
- {0x11c41, 0x11c4f},
- {0x11c5a, 0x11c71},
- {0x11c90, 0x11c91},
- {0x11ca8, 0x11ca8},
- {0x11cb7, 0x11fff},
- {0x1239a, 0x123ff},
- {0x1246f, 0x1247f},
- {0x12544, 0x12fff},
- {0x1342f, 0x143ff},
- {0x14647, 0x167ff},
- {0x16a39, 0x16a3f},
- {0x16a5f, 0x16a5f},
- {0x16a6a, 0x16acf},
- {0x16aee, 0x16aef},
- {0x16af5, 0x16aff},
- {0x16b37, 0x16b3f},
- {0x16b44, 0x16b4f},
- {0x16b5a, 0x16b62},
- {0x16b78, 0x16b7c},
- {0x16b90, 0x16eff},
- {0x16f45, 0x16f4f},
- {0x16f7f, 0x16f8e},
- {0x16fa0, 0x16fdf},
- {0x16fe1, 0x1bbff},
- {0x1bc6b, 0x1bc6f},
- {0x1bc7d, 0x1bc7f},
- {0x1bc89, 0x1bc8f},
- {0x1bc9a, 0x1bc9c},
- {0x1bc9f, 0x1bc9f},
- {0x1bca4, 0x1d164},
- {0x1d16a, 0x1d16c},
- {0x1d183, 0x1d184},
- {0x1d18c, 0x1d1a9},
- {0x1d1ae, 0x1d241},
- {0x1d245, 0x1d3ff},
- {0x1d455, 0x1d455},
- {0x1d49d, 0x1d49d},
- {0x1d4a0, 0x1d4a1},
- {0x1d4a3, 0x1d4a4},
- {0x1d4a7, 0x1d4a8},
- {0x1d4ad, 0x1d4ad},
- {0x1d4ba, 0x1d4ba},
- {0x1d4bc, 0x1d4bc},
- {0x1d4c4, 0x1d4c4},
- {0x1d506, 0x1d506},
- {0x1d50b, 0x1d50c},
- {0x1d515, 0x1d515},
- {0x1d51d, 0x1d51d},
- {0x1d53a, 0x1d53a},
- {0x1d53f, 0x1d53f},
- {0x1d545, 0x1d545},
- {0x1d547, 0x1d549},
- {0x1d551, 0x1d551},
- {0x1d6a6, 0x1d6a7},
- {0x1d6c1, 0x1d6c1},
- {0x1d6db, 0x1d6db},
- {0x1d6fb, 0x1d6fb},
- {0x1d715, 0x1d715},
- {0x1d735, 0x1d735},
- {0x1d74f, 0x1d74f},
- {0x1d76f, 0x1d76f},
- {0x1d789, 0x1d789},
- {0x1d7a9, 0x1d7a9},
- {0x1d7c3, 0x1d7c3},
- {0x1d7cc, 0x1d7cd},
- {0x1d800, 0x1d9ff},
- {0x1da37, 0x1da3a},
- {0x1da6d, 0x1da74},
- {0x1da76, 0x1da83},
- {0x1da85, 0x1da9a},
- {0x1daa0, 0x1daa0},
- {0x1dab0, 0x1dfff},
- {0x1e007, 0x1e007},
- {0x1e019, 0x1e01a},
- {0x1e022, 0x1e022},
- {0x1e025, 0x1e025},
- {0x1e02b, 0x1e7ff},
- {0x1e8c5, 0x1e8cf},
- {0x1e8d7, 0x1e8ff},
- {0x1e94b, 0x1e94f},
- {0x1e95a, 0x1edff},
- {0x1ee04, 0x1ee04},
- {0x1ee20, 0x1ee20},
- {0x1ee23, 0x1ee23},
- {0x1ee25, 0x1ee26},
- {0x1ee28, 0x1ee28},
- {0x1ee33, 0x1ee33},
- {0x1ee38, 0x1ee38},
- {0x1ee3a, 0x1ee3a},
- {0x1ee3c, 0x1ee41},
- {0x1ee43, 0x1ee46},
- {0x1ee48, 0x1ee48},
- {0x1ee4a, 0x1ee4a},
- {0x1ee4c, 0x1ee4c},
- {0x1ee50, 0x1ee50},
- {0x1ee53, 0x1ee53},
- {0x1ee55, 0x1ee56},
- {0x1ee58, 0x1ee58},
- {0x1ee5a, 0x1ee5a},
- {0x1ee5c, 0x1ee5c},
- {0x1ee5e, 0x1ee5e},
- {0x1ee60, 0x1ee60},
- {0x1ee63, 0x1ee63},
- {0x1ee65, 0x1ee66},
- {0x1ee6b, 0x1ee6b},
- {0x1ee73, 0x1ee73},
- {0x1ee78, 0x1ee78},
- {0x1ee7d, 0x1ee7d},
- {0x1ee7f, 0x1ee7f},
- {0x1ee8a, 0x1ee8a},
- {0x1ee9c, 0x1eea0},
- {0x1eea4, 0x1eea4},
- {0x1eeaa, 0x1eeaa},
- {0x1eebc, 0x1f12f},
- {0x1f14a, 0x1f14f},
- {0x1f16a, 0x1f16f},
- {0x1f18a, 0x1ffff},
- }
-
- breakTest = []string{
- "AA",
- "ÄA",
- "Aa\u2060",
- "Äa\u2060",
- "Aa|:",
- "Äa|:",
- "Aa|'",
- "Äa|'",
- "Aa|'\u2060",
- "Äa|'\u2060",
- "Aa|,",
- "Äa|,",
- "a\u2060A",
- "a\u2060̈A",
- "a\u2060a\u2060",
- "a\u2060̈a\u2060",
- "a\u2060a|:",
- "a\u2060̈a|:",
- "a\u2060a|'",
- "a\u2060̈a|'",
- "a\u2060a|'\u2060",
- "a\u2060̈a|'\u2060",
- "a\u2060a|,",
- "a\u2060̈a|,",
- "a:A",
- "a:̈A",
- "a:a\u2060",
- "a:̈a\u2060",
- "a:a|:",
- "a:̈a|:",
- "a:a|'",
- "a:̈a|'",
- "a:a|'\u2060",
- "a:̈a|'\u2060",
- "a:a|,",
- "a:̈a|,",
- "a'A",
- "a'̈A",
- "a'a\u2060",
- "a'̈a\u2060",
- "a'a|:",
- "a'̈a|:",
- "a'a|'",
- "a'̈a|'",
- "a'a|'\u2060",
- "a'̈a|'\u2060",
- "a'a|,",
- "a'̈a|,",
- "a'\u2060A",
- "a'\u2060̈A",
- "a'\u2060a\u2060",
- "a'\u2060̈a\u2060",
- "a'\u2060a|:",
- "a'\u2060̈a|:",
- "a'\u2060a|'",
- "a'\u2060̈a|'",
- "a'\u2060a|'\u2060",
- "a'\u2060̈a|'\u2060",
- "a'\u2060a|,",
- "a'\u2060̈a|,",
- "a|,|A",
- "a|,̈|A",
- "a|,|a\u2060",
- "a|,̈|a\u2060",
- "a|,|a|:",
- "a|,̈|a|:",
- "a|,|a|'",
- "a|,̈|a|'",
- "a|,|a|'\u2060",
- "a|,̈|a|'\u2060",
- "a|,|a|,",
- "a|,̈|a|,",
- "AAA",
- "A:A",
- "A|:|:|A",
- "A00A",
- "A__A",
- "a|🇦🇧|🇨|b",
- "a|🇦🇧\u200d|🇨|b",
- "a|🇦\u200d🇧|🇨|b",
- "a|🇦🇧|🇨🇩|b",
- "ä\u200d̈b",
- "1_a|:|:|a",
- "1_a|:|.|a",
- "1_a|:|,|a",
- "1_a|.|:|a",
- "1_a|.|.|a",
- "1_a|.|,|a",
- "1_a|,|:|a",
- "1_a|,|.|a",
- "1_a|,|,|a",
- "a_a|:|:|1",
- "a|:|:|a",
- "a_1|:|:|a",
- "a_a|:|:|a",
- "a_a|:|.|1",
- "a|:|.|a",
- "a_1|:|.|a",
- "a_a|:|.|a",
- "a_a|:|,|1",
- "a|:|,|a",
- "a_1|:|,|a",
- "a_a|:|,|a",
- "a_a|.|:|1",
- "a|.|:|a",
- "a_1|.|:|a",
- "a_a|.|:|a",
- "a_a|.|.|1",
- "a|.|.|a",
- "a_1|.|.|a",
- "a_a|.|.|a",
- "a_a|.|,|1",
- "a|.|,|a",
- "a_1|.|,|a",
- "a_a|.|,|a",
- "a_a|,|:|1",
- "a|,|:|a",
- "a_1|,|:|a",
- "a_a|,|:|a",
- "a_a|,|.|1",
- "a|,|.|a",
- "a_1|,|.|a",
- "a_a|,|.|a",
- "a_a|,|,|1",
- "a|,|,|a",
- "a_1|,|,|a",
- "a_a|,|,|a",
- }
-)
diff --git a/vendor/golang.org/x/text/cases/trieval.go b/vendor/golang.org/x/text/cases/trieval.go
deleted file mode 100644
index fb221f843..000000000
--- a/vendor/golang.org/x/text/cases/trieval.go
+++ /dev/null
@@ -1,215 +0,0 @@
-// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT.
-
-package cases
-
-// This file contains definitions for interpreting the trie value of the case
-// trie generated by "go run gen*.go". It is shared by both the generator
-// program and the resultant package. Sharing is achieved by the generator
-// copying gen_trieval.go to trieval.go and changing what's above this comment.
-
-// info holds case information for a single rune. It is the value returned
-// by a trie lookup. Most mapping information can be stored in a single 16-bit
-// value. If not, for example when a rune is mapped to multiple runes, the value
-// stores some basic case data and an index into an array with additional data.
-//
-// The per-rune values have the following format:
-//
-// if (exception) {
-// 15..5 unsigned exception index
-// 4 unused
-// } else {
-// 15..8 XOR pattern or index to XOR pattern for case mapping
-// Only 13..8 are used for XOR patterns.
-// 7 inverseFold (fold to upper, not to lower)
-// 6 index: interpret the XOR pattern as an index
-// or isMid if case mode is cIgnorableUncased.
-// 5..4 CCC: zero (normal or break), above or other
-// }
-// 3 exception: interpret this value as an exception index
-// (TODO: is this bit necessary? Probably implied from case mode.)
-// 2..0 case mode
-//
-// For the non-exceptional cases, a rune must be either uncased, lowercase or
-// uppercase. If the rune is cased, the XOR pattern maps either a lowercase
-// rune to uppercase or an uppercase rune to lowercase (applied to the 10
-// least-significant bits of the rune).
-//
-// See the definitions below for a more detailed description of the various
-// bits.
-type info uint16
-
-const (
- casedMask = 0x0003
- fullCasedMask = 0x0007
- ignorableMask = 0x0006
- ignorableValue = 0x0004
-
- inverseFoldBit = 1 << 7
- isMidBit = 1 << 6
-
- exceptionBit = 1 << 3
- exceptionShift = 5
- numExceptionBits = 11
-
- xorIndexBit = 1 << 6
- xorShift = 8
-
- // There is no mapping if all xor bits and the exception bit are zero.
- hasMappingMask = 0xff80 | exceptionBit
-)
-
-// The case mode bits encodes the case type of a rune. This includes uncased,
-// title, upper and lower case and case ignorable. (For a definition of these
-// terms see Chapter 3 of The Unicode Standard Core Specification.) In some rare
-// cases, a rune can be both cased and case-ignorable. This is encoded by
-// cIgnorableCased. A rune of this type is always lower case. Some runes are
-// cased while not having a mapping.
-//
-// A common pattern for scripts in the Unicode standard is for upper and lower
-// case runes to alternate for increasing rune values (e.g. the accented Latin
-// ranges starting from U+0100 and U+1E00 among others and some Cyrillic
-// characters). We use this property by defining a cXORCase mode, where the case
-// mode (always upper or lower case) is derived from the rune value. As the XOR
-// pattern for case mappings is often identical for successive runes, using
-// cXORCase can result in large series of identical trie values. This, in turn,
-// allows us to better compress the trie blocks.
-const (
- cUncased info = iota // 000
- cTitle // 001
- cLower // 010
- cUpper // 011
- cIgnorableUncased // 100
- cIgnorableCased // 101 // lower case if mappings exist
- cXORCase // 11x // case is cLower | ((rune&1) ^ x)
-
- maxCaseMode = cUpper
-)
-
-func (c info) isCased() bool {
- return c&casedMask != 0
-}
-
-func (c info) isCaseIgnorable() bool {
- return c&ignorableMask == ignorableValue
-}
-
-func (c info) isNotCasedAndNotCaseIgnorable() bool {
- return c&fullCasedMask == 0
-}
-
-func (c info) isCaseIgnorableAndNotCased() bool {
- return c&fullCasedMask == cIgnorableUncased
-}
-
-func (c info) isMid() bool {
- return c&(fullCasedMask|isMidBit) == isMidBit|cIgnorableUncased
-}
-
-// The case mapping implementation will need to know about various Canonical
-// Combining Class (CCC) values. We encode two of these in the trie value:
-// cccZero (0) and cccAbove (230). If the value is cccOther, it means that
-// CCC(r) > 0, but not 230. A value of cccBreak means that CCC(r) == 0 and that
-// the rune also has the break category Break (see below).
-const (
- cccBreak info = iota << 4
- cccZero
- cccAbove
- cccOther
-
- cccMask = cccBreak | cccZero | cccAbove | cccOther
-)
-
-const (
- starter = 0
- above = 230
- iotaSubscript = 240
-)
-
-// The exceptions slice holds data that does not fit in a normal info entry.
-// The entry is pointed to by the exception index in an entry. It has the
-// following format:
-//
-// Header
-// byte 0:
-// 7..6 unused
-// 5..4 CCC type (same bits as entry)
-// 3 unused
-// 2..0 length of fold
-//
-// byte 1:
-// 7..6 unused
-// 5..3 length of 1st mapping of case type
-// 2..0 length of 2nd mapping of case type
-//
-// case 1st 2nd
-// lower -> upper, title
-// upper -> lower, title
-// title -> lower, upper
-//
-// Lengths with the value 0x7 indicate no value and implies no change.
-// A length of 0 indicates a mapping to zero-length string.
-//
-// Body bytes:
-// case folding bytes
-// lowercase mapping bytes
-// uppercase mapping bytes
-// titlecase mapping bytes
-// closure mapping bytes (for NFKC_Casefold). (TODO)
-//
-// Fallbacks:
-// missing fold -> lower
-// missing title -> upper
-// all missing -> original rune
-//
-// exceptions starts with a dummy byte to enforce that there is no zero index
-// value.
-const (
- lengthMask = 0x07
- lengthBits = 3
- noChange = 0
-)
-
-// References to generated trie.
-
-var trie = newCaseTrie(0)
-
-var sparse = sparseBlocks{
- values: sparseValues[:],
- offsets: sparseOffsets[:],
-}
-
-// Sparse block lookup code.
-
-// valueRange is an entry in a sparse block.
-type valueRange struct {
- value uint16
- lo, hi byte
-}
-
-type sparseBlocks struct {
- values []valueRange
- offsets []uint16
-}
-
-// lookup returns the value from values block n for byte b using binary search.
-func (s *sparseBlocks) lookup(n uint32, b byte) uint16 {
- lo := s.offsets[n]
- hi := s.offsets[n+1]
- for lo < hi {
- m := lo + (hi-lo)/2
- r := s.values[m]
- if r.lo <= b && b <= r.hi {
- return r.value
- }
- if b < r.lo {
- hi = m
- } else {
- lo = m + 1
- }
- }
- return 0
-}
-
-// lastRuneForTesting is the last rune used for testing. Everything after this
-// is boring.
-const lastRuneForTesting = rune(0x1FFFF)