]> Cypherpunks repositories - gostls13.git/commitdiff
vendor: add golang.org/x/text/unicode/norm + x/test/width for IDNA support
authorBrad Fitzpatrick <bradfitz@golang.org>
Tue, 27 Sep 2016 18:28:29 +0000 (18:28 +0000)
committerBrad Fitzpatrick <bradfitz@golang.org>
Tue, 27 Sep 2016 22:06:23 +0000 (22:06 +0000)
Add golang.org/x/text/unicode/norm from x/text git rev a7c02369.

Needed by net/http for IDNA normalization.

Updates #13835

Change-Id: I8b024e179d573f2b093c209a4b9e4f71f7d4a1f2
Reviewed-on: https://go-review.googlesource.com/29859
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Marcel van Lohuizen <mpvl@golang.org>
16 files changed:
src/vendor/golang_org/x/text/transform/transform.go [new file with mode: 0644]
src/vendor/golang_org/x/text/unicode/norm/composition.go [new file with mode: 0644]
src/vendor/golang_org/x/text/unicode/norm/forminfo.go [new file with mode: 0644]
src/vendor/golang_org/x/text/unicode/norm/input.go [new file with mode: 0644]
src/vendor/golang_org/x/text/unicode/norm/iter.go [new file with mode: 0644]
src/vendor/golang_org/x/text/unicode/norm/normalize.go [new file with mode: 0644]
src/vendor/golang_org/x/text/unicode/norm/readwriter.go [new file with mode: 0644]
src/vendor/golang_org/x/text/unicode/norm/tables.go [new file with mode: 0644]
src/vendor/golang_org/x/text/unicode/norm/transform.go [new file with mode: 0644]
src/vendor/golang_org/x/text/unicode/norm/trie.go [new file with mode: 0644]
src/vendor/golang_org/x/text/unicode/norm/triegen.go [new file with mode: 0644]
src/vendor/golang_org/x/text/width/kind_string.go [new file with mode: 0644]
src/vendor/golang_org/x/text/width/tables.go [new file with mode: 0644]
src/vendor/golang_org/x/text/width/transform.go [new file with mode: 0644]
src/vendor/golang_org/x/text/width/trieval.go [new file with mode: 0644]
src/vendor/golang_org/x/text/width/width.go [new file with mode: 0644]

diff --git a/src/vendor/golang_org/x/text/transform/transform.go b/src/vendor/golang_org/x/text/transform/transform.go
new file mode 100644 (file)
index 0000000..fe47b9b
--- /dev/null
@@ -0,0 +1,705 @@
+// Copyright 2013 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 transform provides reader and writer wrappers that transform the
+// bytes passing through as well as various transformations. Example
+// transformations provided by other packages include normalization and
+// conversion between character sets.
+package transform // import "golang.org/x/text/transform"
+
+import (
+       "bytes"
+       "errors"
+       "io"
+       "unicode/utf8"
+)
+
+var (
+       // ErrShortDst means that the destination buffer was too short to
+       // receive all of the transformed bytes.
+       ErrShortDst = errors.New("transform: short destination buffer")
+
+       // ErrShortSrc means that the source buffer has insufficient data to
+       // complete the transformation.
+       ErrShortSrc = errors.New("transform: short source buffer")
+
+       // ErrEndOfSpan means that the input and output (the transformed input)
+       // are not identical.
+       ErrEndOfSpan = errors.New("transform: input and output are not identical")
+
+       // errInconsistentByteCount means that Transform returned success (nil
+       // error) but also returned nSrc inconsistent with the src argument.
+       errInconsistentByteCount = errors.New("transform: inconsistent byte count returned")
+
+       // errShortInternal means that an internal buffer is not large enough
+       // to make progress and the Transform operation must be aborted.
+       errShortInternal = errors.New("transform: short internal buffer")
+)
+
+// Transformer transforms bytes.
+type Transformer interface {
+       // Transform writes to dst the transformed bytes read from src, and
+       // returns the number of dst bytes written and src bytes read. The
+       // atEOF argument tells whether src represents the last bytes of the
+       // input.
+       //
+       // Callers should always process the nDst bytes produced and account
+       // for the nSrc bytes consumed before considering the error err.
+       //
+       // A nil error means that all of the transformed bytes (whether freshly
+       // transformed from src or left over from previous Transform calls)
+       // were written to dst. A nil error can be returned regardless of
+       // whether atEOF is true. If err is nil then nSrc must equal len(src);
+       // the converse is not necessarily true.
+       //
+       // ErrShortDst means that dst was too short to receive all of the
+       // transformed bytes. ErrShortSrc means that src had insufficient data
+       // to complete the transformation. If both conditions apply, then
+       // either error may be returned. Other than the error conditions listed
+       // here, implementations are free to report other errors that arise.
+       Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error)
+
+       // Reset resets the state and allows a Transformer to be reused.
+       Reset()
+}
+
+// SpanningTransformer extends the Transformer interface with a Span method
+// that determines how much of the input already conforms to the Transformer.
+type SpanningTransformer interface {
+       Transformer
+
+       // Span returns a position in src such that transforming src[:n] results in
+       // identical output src[:n] for these bytes. It does not necessarily return
+       // the largest such n. The atEOF argument tells whether src represents the
+       // last bytes of the input.
+       //
+       // Callers should always account for the n bytes consumed before
+       // considering the error err.
+       //
+       // A nil error means that all input bytes are known to be identical to the
+       // output produced by the Transformer. A nil error can be be returned
+       // regardless of whether atEOF is true. If err is nil, then then n must
+       // equal len(src); the converse is not necessarily true.
+       //
+       // ErrEndOfSpan means that the Transformer output may differ from the
+       // input after n bytes. Note that n may be len(src), meaning that the output
+       // would contain additional bytes after otherwise identical output.
+       // ErrShortSrc means that src had insufficient data to determine whether the
+       // remaining bytes would change. Other than the error conditions listed
+       // here, implementations are free to report other errors that arise.
+       //
+       // Calling Span can modify the Transformer state as a side effect. In
+       // effect, it does the transformation just as calling Transform would, only
+       // without copying to a destination buffer and only up to a point it can
+       // determine the input and output bytes are the same. This is obviously more
+       // limited than calling Transform, but can be more efficient in terms of
+       // copying and allocating buffers. Calls to Span and Transform may be
+       // interleaved.
+       Span(src []byte, atEOF bool) (n int, err error)
+}
+
+// NopResetter can be embedded by implementations of Transformer to add a nop
+// Reset method.
+type NopResetter struct{}
+
+// Reset implements the Reset method of the Transformer interface.
+func (NopResetter) Reset() {}
+
+// Reader wraps another io.Reader by transforming the bytes read.
+type Reader struct {
+       r   io.Reader
+       t   Transformer
+       err error
+
+       // dst[dst0:dst1] contains bytes that have been transformed by t but
+       // not yet copied out via Read.
+       dst        []byte
+       dst0, dst1 int
+
+       // src[src0:src1] contains bytes that have been read from r but not
+       // yet transformed through t.
+       src        []byte
+       src0, src1 int
+
+       // transformComplete is whether the transformation is complete,
+       // regardless of whether or not it was successful.
+       transformComplete bool
+}
+
+const defaultBufSize = 4096
+
+// NewReader returns a new Reader that wraps r by transforming the bytes read
+// via t. It calls Reset on t.
+func NewReader(r io.Reader, t Transformer) *Reader {
+       t.Reset()
+       return &Reader{
+               r:   r,
+               t:   t,
+               dst: make([]byte, defaultBufSize),
+               src: make([]byte, defaultBufSize),
+       }
+}
+
+// Read implements the io.Reader interface.
+func (r *Reader) Read(p []byte) (int, error) {
+       n, err := 0, error(nil)
+       for {
+               // Copy out any transformed bytes and return the final error if we are done.
+               if r.dst0 != r.dst1 {
+                       n = copy(p, r.dst[r.dst0:r.dst1])
+                       r.dst0 += n
+                       if r.dst0 == r.dst1 && r.transformComplete {
+                               return n, r.err
+                       }
+                       return n, nil
+               } else if r.transformComplete {
+                       return 0, r.err
+               }
+
+               // Try to transform some source bytes, or to flush the transformer if we
+               // are out of source bytes. We do this even if r.r.Read returned an error.
+               // As the io.Reader documentation says, "process the n > 0 bytes returned
+               // before considering the error".
+               if r.src0 != r.src1 || r.err != nil {
+                       r.dst0 = 0
+                       r.dst1, n, err = r.t.Transform(r.dst, r.src[r.src0:r.src1], r.err == io.EOF)
+                       r.src0 += n
+
+                       switch {
+                       case err == nil:
+                               if r.src0 != r.src1 {
+                                       r.err = errInconsistentByteCount
+                               }
+                               // The Transform call was successful; we are complete if we
+                               // cannot read more bytes into src.
+                               r.transformComplete = r.err != nil
+                               continue
+                       case err == ErrShortDst && (r.dst1 != 0 || n != 0):
+                               // Make room in dst by copying out, and try again.
+                               continue
+                       case err == ErrShortSrc && r.src1-r.src0 != len(r.src) && r.err == nil:
+                               // Read more bytes into src via the code below, and try again.
+                       default:
+                               r.transformComplete = true
+                               // The reader error (r.err) takes precedence over the
+                               // transformer error (err) unless r.err is nil or io.EOF.
+                               if r.err == nil || r.err == io.EOF {
+                                       r.err = err
+                               }
+                               continue
+                       }
+               }
+
+               // Move any untransformed source bytes to the start of the buffer
+               // and read more bytes.
+               if r.src0 != 0 {
+                       r.src0, r.src1 = 0, copy(r.src, r.src[r.src0:r.src1])
+               }
+               n, r.err = r.r.Read(r.src[r.src1:])
+               r.src1 += n
+       }
+}
+
+// TODO: implement ReadByte (and ReadRune??).
+
+// Writer wraps another io.Writer by transforming the bytes read.
+// The user needs to call Close to flush unwritten bytes that may
+// be buffered.
+type Writer struct {
+       w   io.Writer
+       t   Transformer
+       dst []byte
+
+       // src[:n] contains bytes that have not yet passed through t.
+       src []byte
+       n   int
+}
+
+// NewWriter returns a new Writer that wraps w by transforming the bytes written
+// via t. It calls Reset on t.
+func NewWriter(w io.Writer, t Transformer) *Writer {
+       t.Reset()
+       return &Writer{
+               w:   w,
+               t:   t,
+               dst: make([]byte, defaultBufSize),
+               src: make([]byte, defaultBufSize),
+       }
+}
+
+// Write implements the io.Writer interface. If there are not enough
+// bytes available to complete a Transform, the bytes will be buffered
+// for the next write. Call Close to convert the remaining bytes.
+func (w *Writer) Write(data []byte) (n int, err error) {
+       src := data
+       if w.n > 0 {
+               // Append bytes from data to the last remainder.
+               // TODO: limit the amount copied on first try.
+               n = copy(w.src[w.n:], data)
+               w.n += n
+               src = w.src[:w.n]
+       }
+       for {
+               nDst, nSrc, err := w.t.Transform(w.dst, src, false)
+               if _, werr := w.w.Write(w.dst[:nDst]); werr != nil {
+                       return n, werr
+               }
+               src = src[nSrc:]
+               if w.n == 0 {
+                       n += nSrc
+               } else if len(src) <= n {
+                       // Enough bytes from w.src have been consumed. We make src point
+                       // to data instead to reduce the copying.
+                       w.n = 0
+                       n -= len(src)
+                       src = data[n:]
+                       if n < len(data) && (err == nil || err == ErrShortSrc) {
+                               continue
+                       }
+               }
+               switch err {
+               case ErrShortDst:
+                       // This error is okay as long as we are making progress.
+                       if nDst > 0 || nSrc > 0 {
+                               continue
+                       }
+               case ErrShortSrc:
+                       if len(src) < len(w.src) {
+                               m := copy(w.src, src)
+                               // If w.n > 0, bytes from data were already copied to w.src and n
+                               // was already set to the number of bytes consumed.
+                               if w.n == 0 {
+                                       n += m
+                               }
+                               w.n = m
+                               err = nil
+                       } else if nDst > 0 || nSrc > 0 {
+                               // Not enough buffer to store the remainder. Keep processing as
+                               // long as there is progress. Without this case, transforms that
+                               // require a lookahead larger than the buffer may result in an
+                               // error. This is not something one may expect to be common in
+                               // practice, but it may occur when buffers are set to small
+                               // sizes during testing.
+                               continue
+                       }
+               case nil:
+                       if w.n > 0 {
+                               err = errInconsistentByteCount
+                       }
+               }
+               return n, err
+       }
+}
+
+// Close implements the io.Closer interface.
+func (w *Writer) Close() error {
+       src := w.src[:w.n]
+       for {
+               nDst, nSrc, err := w.t.Transform(w.dst, src, true)
+               if _, werr := w.w.Write(w.dst[:nDst]); werr != nil {
+                       return werr
+               }
+               if err != ErrShortDst {
+                       return err
+               }
+               src = src[nSrc:]
+       }
+}
+
+type nop struct{ NopResetter }
+
+func (nop) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {
+       n := copy(dst, src)
+       if n < len(src) {
+               err = ErrShortDst
+       }
+       return n, n, err
+}
+
+func (nop) Span(src []byte, atEOF bool) (n int, err error) {
+       return len(src), nil
+}
+
+type discard struct{ NopResetter }
+
+func (discard) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {
+       return 0, len(src), nil
+}
+
+var (
+       // Discard is a Transformer for which all Transform calls succeed
+       // by consuming all bytes and writing nothing.
+       Discard Transformer = discard{}
+
+       // Nop is a SpanningTransformer that copies src to dst.
+       Nop SpanningTransformer = nop{}
+)
+
+// chain is a sequence of links. A chain with N Transformers has N+1 links and
+// N+1 buffers. Of those N+1 buffers, the first and last are the src and dst
+// buffers given to chain.Transform and the middle N-1 buffers are intermediate
+// buffers owned by the chain. The i'th link transforms bytes from the i'th
+// buffer chain.link[i].b at read offset chain.link[i].p to the i+1'th buffer
+// chain.link[i+1].b at write offset chain.link[i+1].n, for i in [0, N).
+type chain struct {
+       link []link
+       err  error
+       // errStart is the index at which the error occurred plus 1. Processing
+       // errStart at this level at the next call to Transform. As long as
+       // errStart > 0, chain will not consume any more source bytes.
+       errStart int
+}
+
+func (c *chain) fatalError(errIndex int, err error) {
+       if i := errIndex + 1; i > c.errStart {
+               c.errStart = i
+               c.err = err
+       }
+}
+
+type link struct {
+       t Transformer
+       // b[p:n] holds the bytes to be transformed by t.
+       b []byte
+       p int
+       n int
+}
+
+func (l *link) src() []byte {
+       return l.b[l.p:l.n]
+}
+
+func (l *link) dst() []byte {
+       return l.b[l.n:]
+}
+
+// Chain returns a Transformer that applies t in sequence.
+func Chain(t ...Transformer) Transformer {
+       if len(t) == 0 {
+               return nop{}
+       }
+       c := &chain{link: make([]link, len(t)+1)}
+       for i, tt := range t {
+               c.link[i].t = tt
+       }
+       // Allocate intermediate buffers.
+       b := make([][defaultBufSize]byte, len(t)-1)
+       for i := range b {
+               c.link[i+1].b = b[i][:]
+       }
+       return c
+}
+
+// Reset resets the state of Chain. It calls Reset on all the Transformers.
+func (c *chain) Reset() {
+       for i, l := range c.link {
+               if l.t != nil {
+                       l.t.Reset()
+               }
+               c.link[i].p, c.link[i].n = 0, 0
+       }
+}
+
+// TODO: make chain use Span (is going to be fun to implement!)
+
+// Transform applies the transformers of c in sequence.
+func (c *chain) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {
+       // Set up src and dst in the chain.
+       srcL := &c.link[0]
+       dstL := &c.link[len(c.link)-1]
+       srcL.b, srcL.p, srcL.n = src, 0, len(src)
+       dstL.b, dstL.n = dst, 0
+       var lastFull, needProgress bool // for detecting progress
+
+       // i is the index of the next Transformer to apply, for i in [low, high].
+       // low is the lowest index for which c.link[low] may still produce bytes.
+       // high is the highest index for which c.link[high] has a Transformer.
+       // The error returned by Transform determines whether to increase or
+       // decrease i. We try to completely fill a buffer before converting it.
+       for low, i, high := c.errStart, c.errStart, len(c.link)-2; low <= i && i <= high; {
+               in, out := &c.link[i], &c.link[i+1]
+               nDst, nSrc, err0 := in.t.Transform(out.dst(), in.src(), atEOF && low == i)
+               out.n += nDst
+               in.p += nSrc
+               if i > 0 && in.p == in.n {
+                       in.p, in.n = 0, 0
+               }
+               needProgress, lastFull = lastFull, false
+               switch err0 {
+               case ErrShortDst:
+                       // Process the destination buffer next. Return if we are already
+                       // at the high index.
+                       if i == high {
+                               return dstL.n, srcL.p, ErrShortDst
+                       }
+                       if out.n != 0 {
+                               i++
+                               // If the Transformer at the next index is not able to process any
+                               // source bytes there is nothing that can be done to make progress
+                               // and the bytes will remain unprocessed. lastFull is used to
+                               // detect this and break out of the loop with a fatal error.
+                               lastFull = true
+                               continue
+                       }
+                       // The destination buffer was too small, but is completely empty.
+                       // Return a fatal error as this transformation can never complete.
+                       c.fatalError(i, errShortInternal)
+               case ErrShortSrc:
+                       if i == 0 {
+                               // Save ErrShortSrc in err. All other errors take precedence.
+                               err = ErrShortSrc
+                               break
+                       }
+                       // Source bytes were depleted before filling up the destination buffer.
+                       // Verify we made some progress, move the remaining bytes to the errStart
+                       // and try to get more source bytes.
+                       if needProgress && nSrc == 0 || in.n-in.p == len(in.b) {
+                               // There were not enough source bytes to proceed while the source
+                               // buffer cannot hold any more bytes. Return a fatal error as this
+                               // transformation can never complete.
+                               c.fatalError(i, errShortInternal)
+                               break
+                       }
+                       // in.b is an internal buffer and we can make progress.
+                       in.p, in.n = 0, copy(in.b, in.src())
+                       fallthrough
+               case nil:
+                       // if i == low, we have depleted the bytes at index i or any lower levels.
+                       // In that case we increase low and i. In all other cases we decrease i to
+                       // fetch more bytes before proceeding to the next index.
+                       if i > low {
+                               i--
+                               continue
+                       }
+               default:
+                       c.fatalError(i, err0)
+               }
+               // Exhausted level low or fatal error: increase low and continue
+               // to process the bytes accepted so far.
+               i++
+               low = i
+       }
+
+       // If c.errStart > 0, this means we found a fatal error.  We will clear
+       // all upstream buffers. At this point, no more progress can be made
+       // downstream, as Transform would have bailed while handling ErrShortDst.
+       if c.errStart > 0 {
+               for i := 1; i < c.errStart; i++ {
+                       c.link[i].p, c.link[i].n = 0, 0
+               }
+               err, c.errStart, c.err = c.err, 0, nil
+       }
+       return dstL.n, srcL.p, err
+}
+
+// Deprecated: use runes.Remove instead.
+func RemoveFunc(f func(r rune) bool) Transformer {
+       return removeF(f)
+}
+
+type removeF func(r rune) bool
+
+func (removeF) Reset() {}
+
+// Transform implements the Transformer interface.
+func (t removeF) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {
+       for r, sz := rune(0), 0; len(src) > 0; src = src[sz:] {
+
+               if r = rune(src[0]); r < utf8.RuneSelf {
+                       sz = 1
+               } else {
+                       r, sz = utf8.DecodeRune(src)
+
+                       if sz == 1 {
+                               // Invalid rune.
+                               if !atEOF && !utf8.FullRune(src) {
+                                       err = ErrShortSrc
+                                       break
+                               }
+                               // We replace illegal bytes with RuneError. Not doing so might
+                               // otherwise turn a sequence of invalid UTF-8 into valid UTF-8.
+                               // The resulting byte sequence may subsequently contain runes
+                               // for which t(r) is true that were passed unnoticed.
+                               if !t(r) {
+                                       if nDst+3 > len(dst) {
+                                               err = ErrShortDst
+                                               break
+                                       }
+                                       nDst += copy(dst[nDst:], "\uFFFD")
+                               }
+                               nSrc++
+                               continue
+                       }
+               }
+
+               if !t(r) {
+                       if nDst+sz > len(dst) {
+                               err = ErrShortDst
+                               break
+                       }
+                       nDst += copy(dst[nDst:], src[:sz])
+               }
+               nSrc += sz
+       }
+       return
+}
+
+// grow returns a new []byte that is longer than b, and copies the first n bytes
+// of b to the start of the new slice.
+func grow(b []byte, n int) []byte {
+       m := len(b)
+       if m <= 32 {
+               m = 64
+       } else if m <= 256 {
+               m *= 2
+       } else {
+               m += m >> 1
+       }
+       buf := make([]byte, m)
+       copy(buf, b[:n])
+       return buf
+}
+
+const initialBufSize = 128
+
+// String returns a string with the result of converting s[:n] using t, where
+// n <= len(s). If err == nil, n will be len(s). It calls Reset on t.
+func String(t Transformer, s string) (result string, n int, err error) {
+       t.Reset()
+       if s == "" {
+               // Fast path for the common case for empty input. Results in about a
+               // 86% reduction of running time for BenchmarkStringLowerEmpty.
+               if _, _, err := t.Transform(nil, nil, true); err == nil {
+                       return "", 0, nil
+               }
+       }
+
+       // Allocate only once. Note that both dst and src escape when passed to
+       // Transform.
+       buf := [2 * initialBufSize]byte{}
+       dst := buf[:initialBufSize:initialBufSize]
+       src := buf[initialBufSize : 2*initialBufSize]
+
+       // The input string s is transformed in multiple chunks (starting with a
+       // chunk size of initialBufSize). nDst and nSrc are per-chunk (or
+       // per-Transform-call) indexes, pDst and pSrc are overall indexes.
+       nDst, nSrc := 0, 0
+       pDst, pSrc := 0, 0
+
+       // pPrefix is the length of a common prefix: the first pPrefix bytes of the
+       // result will equal the first pPrefix bytes of s. It is not guaranteed to
+       // be the largest such value, but if pPrefix, len(result) and len(s) are
+       // all equal after the final transform (i.e. calling Transform with atEOF
+       // being true returned nil error) then we don't need to allocate a new
+       // result string.
+       pPrefix := 0
+       for {
+               // Invariant: pDst == pPrefix && pSrc == pPrefix.
+
+               n := copy(src, s[pSrc:])
+               nDst, nSrc, err = t.Transform(dst, src[:n], pSrc+n == len(s))
+               pDst += nDst
+               pSrc += nSrc
+
+               // TODO:  let transformers implement an optional Spanner interface, akin
+               // to norm's QuickSpan. This would even allow us to avoid any allocation.
+               if !bytes.Equal(dst[:nDst], src[:nSrc]) {
+                       break
+               }
+               pPrefix = pSrc
+               if err == ErrShortDst {
+                       // A buffer can only be short if a transformer modifies its input.
+                       break
+               } else if err == ErrShortSrc {
+                       if nSrc == 0 {
+                               // No progress was made.
+                               break
+                       }
+                       // Equal so far and !atEOF, so continue checking.
+               } else if err != nil || pPrefix == len(s) {
+                       return string(s[:pPrefix]), pPrefix, err
+               }
+       }
+       // Post-condition: pDst == pPrefix + nDst && pSrc == pPrefix + nSrc.
+
+       // We have transformed the first pSrc bytes of the input s to become pDst
+       // transformed bytes. Those transformed bytes are discontiguous: the first
+       // pPrefix of them equal s[:pPrefix] and the last nDst of them equal
+       // dst[:nDst]. We copy them around, into a new dst buffer if necessary, so
+       // that they become one contiguous slice: dst[:pDst].
+       if pPrefix != 0 {
+               newDst := dst
+               if pDst > len(newDst) {
+                       newDst = make([]byte, len(s)+nDst-nSrc)
+               }
+               copy(newDst[pPrefix:pDst], dst[:nDst])
+               copy(newDst[:pPrefix], s[:pPrefix])
+               dst = newDst
+       }
+
+       // Prevent duplicate Transform calls with atEOF being true at the end of
+       // the input. Also return if we have an unrecoverable error.
+       if (err == nil && pSrc == len(s)) ||
+               (err != nil && err != ErrShortDst && err != ErrShortSrc) {
+               return string(dst[:pDst]), pSrc, err
+       }
+
+       // Transform the remaining input, growing dst and src buffers as necessary.
+       for {
+               n := copy(src, s[pSrc:])
+               nDst, nSrc, err := t.Transform(dst[pDst:], src[:n], pSrc+n == len(s))
+               pDst += nDst
+               pSrc += nSrc
+
+               // If we got ErrShortDst or ErrShortSrc, do not grow as long as we can
+               // make progress. This may avoid excessive allocations.
+               if err == ErrShortDst {
+                       if nDst == 0 {
+                               dst = grow(dst, pDst)
+                       }
+               } else if err == ErrShortSrc {
+                       if nSrc == 0 {
+                               src = grow(src, 0)
+                       }
+               } else if err != nil || pSrc == len(s) {
+                       return string(dst[:pDst]), pSrc, err
+               }
+       }
+}
+
+// Bytes returns a new byte slice with the result of converting b[:n] using t,
+// where n <= len(b). If err == nil, n will be len(b). It calls Reset on t.
+func Bytes(t Transformer, b []byte) (result []byte, n int, err error) {
+       return doAppend(t, 0, make([]byte, len(b)), b)
+}
+
+// Append appends the result of converting src[:n] using t to dst, where
+// n <= len(src), If err == nil, n will be len(src). It calls Reset on t.
+func Append(t Transformer, dst, src []byte) (result []byte, n int, err error) {
+       if len(dst) == cap(dst) {
+               n := len(src) + len(dst) // It is okay for this to be 0.
+               b := make([]byte, n)
+               dst = b[:copy(b, dst)]
+       }
+       return doAppend(t, len(dst), dst[:cap(dst)], src)
+}
+
+func doAppend(t Transformer, pDst int, dst, src []byte) (result []byte, n int, err error) {
+       t.Reset()
+       pSrc := 0
+       for {
+               nDst, nSrc, err := t.Transform(dst[pDst:], src[pSrc:], true)
+               pDst += nDst
+               pSrc += nSrc
+               if err != ErrShortDst {
+                       return dst[:pDst], pSrc, err
+               }
+
+               // Grow the destination buffer, but do not grow as long as we can make
+               // progress. This may avoid excessive allocations.
+               if nDst == 0 {
+                       dst = grow(dst, pDst)
+               }
+       }
+}
diff --git a/src/vendor/golang_org/x/text/unicode/norm/composition.go b/src/vendor/golang_org/x/text/unicode/norm/composition.go
new file mode 100644 (file)
index 0000000..d17b278
--- /dev/null
@@ -0,0 +1,514 @@
+// Copyright 2011 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 norm
+
+import "unicode/utf8"
+
+const (
+       maxNonStarters = 30
+       // The maximum number of characters needed for a buffer is
+       // maxNonStarters + 1 for the starter + 1 for the GCJ
+       maxBufferSize    = maxNonStarters + 2
+       maxNFCExpansion  = 3  // NFC(0x1D160)
+       maxNFKCExpansion = 18 // NFKC(0xFDFA)
+
+       maxByteBufferSize = utf8.UTFMax * maxBufferSize // 128
+)
+
+// ssState is used for reporting the segment state after inserting a rune.
+// It is returned by streamSafe.next.
+type ssState int
+
+const (
+       // Indicates a rune was successfully added to the segment.
+       ssSuccess ssState = iota
+       // Indicates a rune starts a new segment and should not be added.
+       ssStarter
+       // Indicates a rune caused a segment overflow and a CGJ should be inserted.
+       ssOverflow
+)
+
+// streamSafe implements the policy of when a CGJ should be inserted.
+type streamSafe uint8
+
+// mkStreamSafe is a shorthand for declaring a streamSafe var and calling
+// first on it.
+func mkStreamSafe(p Properties) streamSafe {
+       return streamSafe(p.nTrailingNonStarters())
+}
+
+// first inserts the first rune of a segment.
+func (ss *streamSafe) first(p Properties) {
+       if *ss != 0 {
+               panic("!= 0")
+       }
+       *ss = streamSafe(p.nTrailingNonStarters())
+}
+
+// insert returns a ssState value to indicate whether a rune represented by p
+// can be inserted.
+func (ss *streamSafe) next(p Properties) ssState {
+       if *ss > maxNonStarters {
+               panic("streamSafe was not reset")
+       }
+       n := p.nLeadingNonStarters()
+       if *ss += streamSafe(n); *ss > maxNonStarters {
+               *ss = 0
+               return ssOverflow
+       }
+       // The Stream-Safe Text Processing prescribes that the counting can stop
+       // as soon as a starter is encountered. However, there are some starters,
+       // like Jamo V and T, that can combine with other runes, leaving their
+       // successive non-starters appended to the previous, possibly causing an
+       // overflow. We will therefore consider any rune with a non-zero nLead to
+       // be a non-starter. Note that it always hold that if nLead > 0 then
+       // nLead == nTrail.
+       if n == 0 {
+               *ss = 0
+               return ssStarter
+       }
+       return ssSuccess
+}
+
+// backwards is used for checking for overflow and segment starts
+// when traversing a string backwards. Users do not need to call first
+// for the first rune. The state of the streamSafe retains the count of
+// the non-starters loaded.
+func (ss *streamSafe) backwards(p Properties) ssState {
+       if *ss > maxNonStarters {
+               panic("streamSafe was not reset")
+       }
+       c := *ss + streamSafe(p.nTrailingNonStarters())
+       if c > maxNonStarters {
+               return ssOverflow
+       }
+       *ss = c
+       if p.nLeadingNonStarters() == 0 {
+               return ssStarter
+       }
+       return ssSuccess
+}
+
+func (ss streamSafe) isMax() bool {
+       return ss == maxNonStarters
+}
+
+// GraphemeJoiner is inserted after maxNonStarters non-starter runes.
+const GraphemeJoiner = "\u034F"
+
+// reorderBuffer is used to normalize a single segment.  Characters inserted with
+// insert are decomposed and reordered based on CCC. The compose method can
+// be used to recombine characters.  Note that the byte buffer does not hold
+// the UTF-8 characters in order.  Only the rune array is maintained in sorted
+// order. flush writes the resulting segment to a byte array.
+type reorderBuffer struct {
+       rune  [maxBufferSize]Properties // Per character info.
+       byte  [maxByteBufferSize]byte   // UTF-8 buffer. Referenced by runeInfo.pos.
+       nbyte uint8                     // Number or bytes.
+       ss    streamSafe                // For limiting length of non-starter sequence.
+       nrune int                       // Number of runeInfos.
+       f     formInfo
+
+       src      input
+       nsrc     int
+       tmpBytes input
+
+       out    []byte
+       flushF func(*reorderBuffer) bool
+}
+
+func (rb *reorderBuffer) init(f Form, src []byte) {
+       rb.f = *formTable[f]
+       rb.src.setBytes(src)
+       rb.nsrc = len(src)
+       rb.ss = 0
+}
+
+func (rb *reorderBuffer) initString(f Form, src string) {
+       rb.f = *formTable[f]
+       rb.src.setString(src)
+       rb.nsrc = len(src)
+       rb.ss = 0
+}
+
+func (rb *reorderBuffer) setFlusher(out []byte, f func(*reorderBuffer) bool) {
+       rb.out = out
+       rb.flushF = f
+}
+
+// reset discards all characters from the buffer.
+func (rb *reorderBuffer) reset() {
+       rb.nrune = 0
+       rb.nbyte = 0
+       rb.ss = 0
+}
+
+func (rb *reorderBuffer) doFlush() bool {
+       if rb.f.composing {
+               rb.compose()
+       }
+       res := rb.flushF(rb)
+       rb.reset()
+       return res
+}
+
+// appendFlush appends the normalized segment to rb.out.
+func appendFlush(rb *reorderBuffer) bool {
+       for i := 0; i < rb.nrune; i++ {
+               start := rb.rune[i].pos
+               end := start + rb.rune[i].size
+               rb.out = append(rb.out, rb.byte[start:end]...)
+       }
+       return true
+}
+
+// flush appends the normalized segment to out and resets rb.
+func (rb *reorderBuffer) flush(out []byte) []byte {
+       for i := 0; i < rb.nrune; i++ {
+               start := rb.rune[i].pos
+               end := start + rb.rune[i].size
+               out = append(out, rb.byte[start:end]...)
+       }
+       rb.reset()
+       return out
+}
+
+// flushCopy copies the normalized segment to buf and resets rb.
+// It returns the number of bytes written to buf.
+func (rb *reorderBuffer) flushCopy(buf []byte) int {
+       p := 0
+       for i := 0; i < rb.nrune; i++ {
+               runep := rb.rune[i]
+               p += copy(buf[p:], rb.byte[runep.pos:runep.pos+runep.size])
+       }
+       rb.reset()
+       return p
+}
+
+// insertOrdered inserts a rune in the buffer, ordered by Canonical Combining Class.
+// It returns false if the buffer is not large enough to hold the rune.
+// It is used internally by insert and insertString only.
+func (rb *reorderBuffer) insertOrdered(info Properties) {
+       n := rb.nrune
+       b := rb.rune[:]
+       cc := info.ccc
+       if cc > 0 {
+               // Find insertion position + move elements to make room.
+               for ; n > 0; n-- {
+                       if b[n-1].ccc <= cc {
+                               break
+                       }
+                       b[n] = b[n-1]
+               }
+       }
+       rb.nrune += 1
+       pos := uint8(rb.nbyte)
+       rb.nbyte += utf8.UTFMax
+       info.pos = pos
+       b[n] = info
+}
+
+// insertErr is an error code returned by insert. Using this type instead
+// of error improves performance up to 20% for many of the benchmarks.
+type insertErr int
+
+const (
+       iSuccess insertErr = -iota
+       iShortDst
+       iShortSrc
+)
+
+// insertFlush inserts the given rune in the buffer ordered by CCC.
+// If a decomposition with multiple segments are encountered, they leading
+// ones are flushed.
+// It returns a non-zero error code if the rune was not inserted.
+func (rb *reorderBuffer) insertFlush(src input, i int, info Properties) insertErr {
+       if rune := src.hangul(i); rune != 0 {
+               rb.decomposeHangul(rune)
+               return iSuccess
+       }
+       if info.hasDecomposition() {
+               return rb.insertDecomposed(info.Decomposition())
+       }
+       rb.insertSingle(src, i, info)
+       return iSuccess
+}
+
+// insertUnsafe inserts the given rune in the buffer ordered by CCC.
+// It is assumed there is sufficient space to hold the runes. It is the
+// responsibility of the caller to ensure this. This can be done by checking
+// the state returned by the streamSafe type.
+func (rb *reorderBuffer) insertUnsafe(src input, i int, info Properties) {
+       if rune := src.hangul(i); rune != 0 {
+               rb.decomposeHangul(rune)
+       }
+       if info.hasDecomposition() {
+               // TODO: inline.
+               rb.insertDecomposed(info.Decomposition())
+       } else {
+               rb.insertSingle(src, i, info)
+       }
+}
+
+// insertDecomposed inserts an entry in to the reorderBuffer for each rune
+// in dcomp. dcomp must be a sequence of decomposed UTF-8-encoded runes.
+// It flushes the buffer on each new segment start.
+func (rb *reorderBuffer) insertDecomposed(dcomp []byte) insertErr {
+       rb.tmpBytes.setBytes(dcomp)
+       for i := 0; i < len(dcomp); {
+               info := rb.f.info(rb.tmpBytes, i)
+               if info.BoundaryBefore() && rb.nrune > 0 && !rb.doFlush() {
+                       return iShortDst
+               }
+               i += copy(rb.byte[rb.nbyte:], dcomp[i:i+int(info.size)])
+               rb.insertOrdered(info)
+       }
+       return iSuccess
+}
+
+// insertSingle inserts an entry in the reorderBuffer for the rune at
+// position i. info is the runeInfo for the rune at position i.
+func (rb *reorderBuffer) insertSingle(src input, i int, info Properties) {
+       src.copySlice(rb.byte[rb.nbyte:], i, i+int(info.size))
+       rb.insertOrdered(info)
+}
+
+// insertCGJ inserts a Combining Grapheme Joiner (0x034f) into rb.
+func (rb *reorderBuffer) insertCGJ() {
+       rb.insertSingle(input{str: GraphemeJoiner}, 0, Properties{size: uint8(len(GraphemeJoiner))})
+}
+
+// appendRune inserts a rune at the end of the buffer. It is used for Hangul.
+func (rb *reorderBuffer) appendRune(r rune) {
+       bn := rb.nbyte
+       sz := utf8.EncodeRune(rb.byte[bn:], rune(r))
+       rb.nbyte += utf8.UTFMax
+       rb.rune[rb.nrune] = Properties{pos: bn, size: uint8(sz)}
+       rb.nrune++
+}
+
+// assignRune sets a rune at position pos. It is used for Hangul and recomposition.
+func (rb *reorderBuffer) assignRune(pos int, r rune) {
+       bn := rb.rune[pos].pos
+       sz := utf8.EncodeRune(rb.byte[bn:], rune(r))
+       rb.rune[pos] = Properties{pos: bn, size: uint8(sz)}
+}
+
+// runeAt returns the rune at position n. It is used for Hangul and recomposition.
+func (rb *reorderBuffer) runeAt(n int) rune {
+       inf := rb.rune[n]
+       r, _ := utf8.DecodeRune(rb.byte[inf.pos : inf.pos+inf.size])
+       return r
+}
+
+// bytesAt returns the UTF-8 encoding of the rune at position n.
+// It is used for Hangul and recomposition.
+func (rb *reorderBuffer) bytesAt(n int) []byte {
+       inf := rb.rune[n]
+       return rb.byte[inf.pos : int(inf.pos)+int(inf.size)]
+}
+
+// For Hangul we combine algorithmically, instead of using tables.
+const (
+       hangulBase  = 0xAC00 // UTF-8(hangulBase) -> EA B0 80
+       hangulBase0 = 0xEA
+       hangulBase1 = 0xB0
+       hangulBase2 = 0x80
+
+       hangulEnd  = hangulBase + jamoLVTCount // UTF-8(0xD7A4) -> ED 9E A4
+       hangulEnd0 = 0xED
+       hangulEnd1 = 0x9E
+       hangulEnd2 = 0xA4
+
+       jamoLBase  = 0x1100 // UTF-8(jamoLBase) -> E1 84 00
+       jamoLBase0 = 0xE1
+       jamoLBase1 = 0x84
+       jamoLEnd   = 0x1113
+       jamoVBase  = 0x1161
+       jamoVEnd   = 0x1176
+       jamoTBase  = 0x11A7
+       jamoTEnd   = 0x11C3
+
+       jamoTCount   = 28
+       jamoVCount   = 21
+       jamoVTCount  = 21 * 28
+       jamoLVTCount = 19 * 21 * 28
+)
+
+const hangulUTF8Size = 3
+
+func isHangul(b []byte) bool {
+       if len(b) < hangulUTF8Size {
+               return false
+       }
+       b0 := b[0]
+       if b0 < hangulBase0 {
+               return false
+       }
+       b1 := b[1]
+       switch {
+       case b0 == hangulBase0:
+               return b1 >= hangulBase1
+       case b0 < hangulEnd0:
+               return true
+       case b0 > hangulEnd0:
+               return false
+       case b1 < hangulEnd1:
+               return true
+       }
+       return b1 == hangulEnd1 && b[2] < hangulEnd2
+}
+
+func isHangulString(b string) bool {
+       if len(b) < hangulUTF8Size {
+               return false
+       }
+       b0 := b[0]
+       if b0 < hangulBase0 {
+               return false
+       }
+       b1 := b[1]
+       switch {
+       case b0 == hangulBase0:
+               return b1 >= hangulBase1
+       case b0 < hangulEnd0:
+               return true
+       case b0 > hangulEnd0:
+               return false
+       case b1 < hangulEnd1:
+               return true
+       }
+       return b1 == hangulEnd1 && b[2] < hangulEnd2
+}
+
+// Caller must ensure len(b) >= 2.
+func isJamoVT(b []byte) bool {
+       // True if (rune & 0xff00) == jamoLBase
+       return b[0] == jamoLBase0 && (b[1]&0xFC) == jamoLBase1
+}
+
+func isHangulWithoutJamoT(b []byte) bool {
+       c, _ := utf8.DecodeRune(b)
+       c -= hangulBase
+       return c < jamoLVTCount && c%jamoTCount == 0
+}
+
+// decomposeHangul writes the decomposed Hangul to buf and returns the number
+// of bytes written.  len(buf) should be at least 9.
+func decomposeHangul(buf []byte, r rune) int {
+       const JamoUTF8Len = 3
+       r -= hangulBase
+       x := r % jamoTCount
+       r /= jamoTCount
+       utf8.EncodeRune(buf, jamoLBase+r/jamoVCount)
+       utf8.EncodeRune(buf[JamoUTF8Len:], jamoVBase+r%jamoVCount)
+       if x != 0 {
+               utf8.EncodeRune(buf[2*JamoUTF8Len:], jamoTBase+x)
+               return 3 * JamoUTF8Len
+       }
+       return 2 * JamoUTF8Len
+}
+
+// decomposeHangul algorithmically decomposes a Hangul rune into
+// its Jamo components.
+// See http://unicode.org/reports/tr15/#Hangul for details on decomposing Hangul.
+func (rb *reorderBuffer) decomposeHangul(r rune) {
+       r -= hangulBase
+       x := r % jamoTCount
+       r /= jamoTCount
+       rb.appendRune(jamoLBase + r/jamoVCount)
+       rb.appendRune(jamoVBase + r%jamoVCount)
+       if x != 0 {
+               rb.appendRune(jamoTBase + x)
+       }
+}
+
+// combineHangul algorithmically combines Jamo character components into Hangul.
+// See http://unicode.org/reports/tr15/#Hangul for details on combining Hangul.
+func (rb *reorderBuffer) combineHangul(s, i, k int) {
+       b := rb.rune[:]
+       bn := rb.nrune
+       for ; i < bn; i++ {
+               cccB := b[k-1].ccc
+               cccC := b[i].ccc
+               if cccB == 0 {
+                       s = k - 1
+               }
+               if s != k-1 && cccB >= cccC {
+                       // b[i] is blocked by greater-equal cccX below it
+                       b[k] = b[i]
+                       k++
+               } else {
+                       l := rb.runeAt(s) // also used to compare to hangulBase
+                       v := rb.runeAt(i) // also used to compare to jamoT
+                       switch {
+                       case jamoLBase <= l && l < jamoLEnd &&
+                               jamoVBase <= v && v < jamoVEnd:
+                               // 11xx plus 116x to LV
+                               rb.assignRune(s, hangulBase+
+                                       (l-jamoLBase)*jamoVTCount+(v-jamoVBase)*jamoTCount)
+                       case hangulBase <= l && l < hangulEnd &&
+                               jamoTBase < v && v < jamoTEnd &&
+                               ((l-hangulBase)%jamoTCount) == 0:
+                               // ACxx plus 11Ax to LVT
+                               rb.assignRune(s, l+v-jamoTBase)
+                       default:
+                               b[k] = b[i]
+                               k++
+                       }
+               }
+       }
+       rb.nrune = k
+}
+
+// compose recombines the runes in the buffer.
+// It should only be used to recompose a single segment, as it will not
+// handle alternations between Hangul and non-Hangul characters correctly.
+func (rb *reorderBuffer) compose() {
+       // UAX #15, section X5 , including Corrigendum #5
+       // "In any character sequence beginning with starter S, a character C is
+       //  blocked from S if and only if there is some character B between S
+       //  and C, and either B is a starter or it has the same or higher
+       //  combining class as C."
+       bn := rb.nrune
+       if bn == 0 {
+               return
+       }
+       k := 1
+       b := rb.rune[:]
+       for s, i := 0, 1; i < bn; i++ {
+               if isJamoVT(rb.bytesAt(i)) {
+                       // Redo from start in Hangul mode. Necessary to support
+                       // U+320E..U+321E in NFKC mode.
+                       rb.combineHangul(s, i, k)
+                       return
+               }
+               ii := b[i]
+               // We can only use combineForward as a filter if we later
+               // get the info for the combined character. This is more
+               // expensive than using the filter. Using combinesBackward()
+               // is safe.
+               if ii.combinesBackward() {
+                       cccB := b[k-1].ccc
+                       cccC := ii.ccc
+                       blocked := false // b[i] blocked by starter or greater or equal CCC?
+                       if cccB == 0 {
+                               s = k - 1
+                       } else {
+                               blocked = s != k-1 && cccB >= cccC
+                       }
+                       if !blocked {
+                               combined := combine(rb.runeAt(s), rb.runeAt(i))
+                               if combined != 0 {
+                                       rb.assignRune(s, combined)
+                                       continue
+                               }
+                       }
+               }
+               b[k] = b[i]
+               k++
+       }
+       rb.nrune = k
+}
diff --git a/src/vendor/golang_org/x/text/unicode/norm/forminfo.go b/src/vendor/golang_org/x/text/unicode/norm/forminfo.go
new file mode 100644 (file)
index 0000000..15a67c6
--- /dev/null
@@ -0,0 +1,256 @@
+// Copyright 2011 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 norm
+
+// This file contains Form-specific logic and wrappers for data in tables.go.
+
+// Rune info is stored in a separate trie per composing form. A composing form
+// and its corresponding decomposing form share the same trie.  Each trie maps
+// a rune to a uint16. The values take two forms.  For v >= 0x8000:
+//   bits
+//   15:    1 (inverse of NFD_QD bit of qcInfo)
+//   13..7: qcInfo (see below). isYesD is always true (no decompostion).
+//    6..0: ccc (compressed CCC value).
+// For v < 0x8000, the respective rune has a decomposition and v is an index
+// into a byte array of UTF-8 decomposition sequences and additional info and
+// has the form:
+//    <header> <decomp_byte>* [<tccc> [<lccc>]]
+// The header contains the number of bytes in the decomposition (excluding this
+// length byte). The two most significant bits of this length byte correspond
+// to bit 5 and 4 of qcInfo (see below).  The byte sequence itself starts at v+1.
+// The byte sequence is followed by a trailing and leading CCC if the values
+// for these are not zero.  The value of v determines which ccc are appended
+// to the sequences.  For v < firstCCC, there are none, for v >= firstCCC,
+// the sequence is followed by a trailing ccc, and for v >= firstLeadingCC
+// there is an additional leading ccc. The value of tccc itself is the
+// trailing CCC shifted left 2 bits. The two least-significant bits of tccc
+// are the number of trailing non-starters.
+
+const (
+       qcInfoMask      = 0x3F // to clear all but the relevant bits in a qcInfo
+       headerLenMask   = 0x3F // extract the length value from the header byte
+       headerFlagsMask = 0xC0 // extract the qcInfo bits from the header byte
+)
+
+// Properties provides access to normalization properties of a rune.
+type Properties struct {
+       pos   uint8  // start position in reorderBuffer; used in composition.go
+       size  uint8  // length of UTF-8 encoding of this rune
+       ccc   uint8  // leading canonical combining class (ccc if not decomposition)
+       tccc  uint8  // trailing canonical combining class (ccc if not decomposition)
+       nLead uint8  // number of leading non-starters.
+       flags qcInfo // quick check flags
+       index uint16
+}
+
+// functions dispatchable per form
+type lookupFunc func(b input, i int) Properties
+
+// formInfo holds Form-specific functions and tables.
+type formInfo struct {
+       form                     Form
+       composing, compatibility bool // form type
+       info                     lookupFunc
+       nextMain                 iterFunc
+}
+
+var formTable []*formInfo
+
+func init() {
+       formTable = make([]*formInfo, 4)
+
+       for i := range formTable {
+               f := &formInfo{}
+               formTable[i] = f
+               f.form = Form(i)
+               if Form(i) == NFKD || Form(i) == NFKC {
+                       f.compatibility = true
+                       f.info = lookupInfoNFKC
+               } else {
+                       f.info = lookupInfoNFC
+               }
+               f.nextMain = nextDecomposed
+               if Form(i) == NFC || Form(i) == NFKC {
+                       f.nextMain = nextComposed
+                       f.composing = true
+               }
+       }
+}
+
+// We do not distinguish between boundaries for NFC, NFD, etc. to avoid
+// unexpected behavior for the user.  For example, in NFD, there is a boundary
+// after 'a'.  However, 'a' might combine with modifiers, so from the application's
+// perspective it is not a good boundary. We will therefore always use the
+// boundaries for the combining variants.
+
+// BoundaryBefore returns true if this rune starts a new segment and
+// cannot combine with any rune on the left.
+func (p Properties) BoundaryBefore() bool {
+       if p.ccc == 0 && !p.combinesBackward() {
+               return true
+       }
+       // We assume that the CCC of the first character in a decomposition
+       // is always non-zero if different from info.ccc and that we can return
+       // false at this point. This is verified by maketables.
+       return false
+}
+
+// BoundaryAfter returns true if runes cannot combine with or otherwise
+// interact with this or previous runes.
+func (p Properties) BoundaryAfter() bool {
+       // TODO: loosen these conditions.
+       return p.isInert()
+}
+
+// We pack quick check data in 4 bits:
+//   5:    Combines forward  (0 == false, 1 == true)
+//   4..3: NFC_QC Yes(00), No (10), or Maybe (11)
+//   2:    NFD_QC Yes (0) or No (1). No also means there is a decomposition.
+//   1..0: Number of trailing non-starters.
+//
+// When all 4 bits are zero, the character is inert, meaning it is never
+// influenced by normalization.
+type qcInfo uint8
+
+func (p Properties) isYesC() bool { return p.flags&0x10 == 0 }
+func (p Properties) isYesD() bool { return p.flags&0x4 == 0 }
+
+func (p Properties) combinesForward() bool  { return p.flags&0x20 != 0 }
+func (p Properties) combinesBackward() bool { return p.flags&0x8 != 0 } // == isMaybe
+func (p Properties) hasDecomposition() bool { return p.flags&0x4 != 0 } // == isNoD
+
+func (p Properties) isInert() bool {
+       return p.flags&qcInfoMask == 0 && p.ccc == 0
+}
+
+func (p Properties) multiSegment() bool {
+       return p.index >= firstMulti && p.index < endMulti
+}
+
+func (p Properties) nLeadingNonStarters() uint8 {
+       return p.nLead
+}
+
+func (p Properties) nTrailingNonStarters() uint8 {
+       return uint8(p.flags & 0x03)
+}
+
+// Decomposition returns the decomposition for the underlying rune
+// or nil if there is none.
+func (p Properties) Decomposition() []byte {
+       // TODO: create the decomposition for Hangul?
+       if p.index == 0 {
+               return nil
+       }
+       i := p.index
+       n := decomps[i] & headerLenMask
+       i++
+       return decomps[i : i+uint16(n)]
+}
+
+// Size returns the length of UTF-8 encoding of the rune.
+func (p Properties) Size() int {
+       return int(p.size)
+}
+
+// CCC returns the canonical combining class of the underlying rune.
+func (p Properties) CCC() uint8 {
+       if p.index >= firstCCCZeroExcept {
+               return 0
+       }
+       return ccc[p.ccc]
+}
+
+// LeadCCC returns the CCC of the first rune in the decomposition.
+// If there is no decomposition, LeadCCC equals CCC.
+func (p Properties) LeadCCC() uint8 {
+       return ccc[p.ccc]
+}
+
+// TrailCCC returns the CCC of the last rune in the decomposition.
+// If there is no decomposition, TrailCCC equals CCC.
+func (p Properties) TrailCCC() uint8 {
+       return ccc[p.tccc]
+}
+
+// Recomposition
+// We use 32-bit keys instead of 64-bit for the two codepoint keys.
+// This clips off the bits of three entries, but we know this will not
+// result in a collision. In the unlikely event that changes to
+// UnicodeData.txt introduce collisions, the compiler will catch it.
+// Note that the recomposition map for NFC and NFKC are identical.
+
+// combine returns the combined rune or 0 if it doesn't exist.
+func combine(a, b rune) rune {
+       key := uint32(uint16(a))<<16 + uint32(uint16(b))
+       return recompMap[key]
+}
+
+func lookupInfoNFC(b input, i int) Properties {
+       v, sz := b.charinfoNFC(i)
+       return compInfo(v, sz)
+}
+
+func lookupInfoNFKC(b input, i int) Properties {
+       v, sz := b.charinfoNFKC(i)
+       return compInfo(v, sz)
+}
+
+// Properties returns properties for the first rune in s.
+func (f Form) Properties(s []byte) Properties {
+       if f == NFC || f == NFD {
+               return compInfo(nfcData.lookup(s))
+       }
+       return compInfo(nfkcData.lookup(s))
+}
+
+// PropertiesString returns properties for the first rune in s.
+func (f Form) PropertiesString(s string) Properties {
+       if f == NFC || f == NFD {
+               return compInfo(nfcData.lookupString(s))
+       }
+       return compInfo(nfkcData.lookupString(s))
+}
+
+// compInfo converts the information contained in v and sz
+// to a Properties.  See the comment at the top of the file
+// for more information on the format.
+func compInfo(v uint16, sz int) Properties {
+       if v == 0 {
+               return Properties{size: uint8(sz)}
+       } else if v >= 0x8000 {
+               p := Properties{
+                       size:  uint8(sz),
+                       ccc:   uint8(v),
+                       tccc:  uint8(v),
+                       flags: qcInfo(v >> 8),
+               }
+               if p.ccc > 0 || p.combinesBackward() {
+                       p.nLead = uint8(p.flags & 0x3)
+               }
+               return p
+       }
+       // has decomposition
+       h := decomps[v]
+       f := (qcInfo(h&headerFlagsMask) >> 2) | 0x4
+       p := Properties{size: uint8(sz), flags: f, index: v}
+       if v >= firstCCC {
+               v += uint16(h&headerLenMask) + 1
+               c := decomps[v]
+               p.tccc = c >> 2
+               p.flags |= qcInfo(c & 0x3)
+               if v >= firstLeadingCCC {
+                       p.nLead = c & 0x3
+                       if v >= firstStarterWithNLead {
+                               // We were tricked. Remove the decomposition.
+                               p.flags &= 0x03
+                               p.index = 0
+                               return p
+                       }
+                       p.ccc = decomps[v+1]
+               }
+       }
+       return p
+}
diff --git a/src/vendor/golang_org/x/text/unicode/norm/input.go b/src/vendor/golang_org/x/text/unicode/norm/input.go
new file mode 100644 (file)
index 0000000..045d4cc
--- /dev/null
@@ -0,0 +1,105 @@
+// Copyright 2011 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 norm
+
+import "unicode/utf8"
+
+type input struct {
+       str   string
+       bytes []byte
+}
+
+func inputBytes(str []byte) input {
+       return input{bytes: str}
+}
+
+func inputString(str string) input {
+       return input{str: str}
+}
+
+func (in *input) setBytes(str []byte) {
+       in.str = ""
+       in.bytes = str
+}
+
+func (in *input) setString(str string) {
+       in.str = str
+       in.bytes = nil
+}
+
+func (in *input) _byte(p int) byte {
+       if in.bytes == nil {
+               return in.str[p]
+       }
+       return in.bytes[p]
+}
+
+func (in *input) skipASCII(p, max int) int {
+       if in.bytes == nil {
+               for ; p < max && in.str[p] < utf8.RuneSelf; p++ {
+               }
+       } else {
+               for ; p < max && in.bytes[p] < utf8.RuneSelf; p++ {
+               }
+       }
+       return p
+}
+
+func (in *input) skipContinuationBytes(p int) int {
+       if in.bytes == nil {
+               for ; p < len(in.str) && !utf8.RuneStart(in.str[p]); p++ {
+               }
+       } else {
+               for ; p < len(in.bytes) && !utf8.RuneStart(in.bytes[p]); p++ {
+               }
+       }
+       return p
+}
+
+func (in *input) appendSlice(buf []byte, b, e int) []byte {
+       if in.bytes != nil {
+               return append(buf, in.bytes[b:e]...)
+       }
+       for i := b; i < e; i++ {
+               buf = append(buf, in.str[i])
+       }
+       return buf
+}
+
+func (in *input) copySlice(buf []byte, b, e int) int {
+       if in.bytes == nil {
+               return copy(buf, in.str[b:e])
+       }
+       return copy(buf, in.bytes[b:e])
+}
+
+func (in *input) charinfoNFC(p int) (uint16, int) {
+       if in.bytes == nil {
+               return nfcData.lookupString(in.str[p:])
+       }
+       return nfcData.lookup(in.bytes[p:])
+}
+
+func (in *input) charinfoNFKC(p int) (uint16, int) {
+       if in.bytes == nil {
+               return nfkcData.lookupString(in.str[p:])
+       }
+       return nfkcData.lookup(in.bytes[p:])
+}
+
+func (in *input) hangul(p int) (r rune) {
+       if in.bytes == nil {
+               if !isHangulString(in.str[p:]) {
+                       return 0
+               }
+               r, _ = utf8.DecodeRuneInString(in.str[p:])
+       } else {
+               if !isHangul(in.bytes[p:]) {
+                       return 0
+               }
+               r, _ = utf8.DecodeRune(in.bytes[p:])
+       }
+       return r
+}
diff --git a/src/vendor/golang_org/x/text/unicode/norm/iter.go b/src/vendor/golang_org/x/text/unicode/norm/iter.go
new file mode 100644 (file)
index 0000000..0a42a72
--- /dev/null
@@ -0,0 +1,450 @@
+// Copyright 2011 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 norm
+
+import (
+       "fmt"
+       "unicode/utf8"
+)
+
+// MaxSegmentSize is the maximum size of a byte buffer needed to consider any
+// sequence of starter and non-starter runes for the purpose of normalization.
+const MaxSegmentSize = maxByteBufferSize
+
+// An Iter iterates over a string or byte slice, while normalizing it
+// to a given Form.
+type Iter struct {
+       rb     reorderBuffer
+       buf    [maxByteBufferSize]byte
+       info   Properties // first character saved from previous iteration
+       next   iterFunc   // implementation of next depends on form
+       asciiF iterFunc
+
+       p        int    // current position in input source
+       multiSeg []byte // remainder of multi-segment decomposition
+}
+
+type iterFunc func(*Iter) []byte
+
+// Init initializes i to iterate over src after normalizing it to Form f.
+func (i *Iter) Init(f Form, src []byte) {
+       i.p = 0
+       if len(src) == 0 {
+               i.setDone()
+               i.rb.nsrc = 0
+               return
+       }
+       i.multiSeg = nil
+       i.rb.init(f, src)
+       i.next = i.rb.f.nextMain
+       i.asciiF = nextASCIIBytes
+       i.info = i.rb.f.info(i.rb.src, i.p)
+}
+
+// InitString initializes i to iterate over src after normalizing it to Form f.
+func (i *Iter) InitString(f Form, src string) {
+       i.p = 0
+       if len(src) == 0 {
+               i.setDone()
+               i.rb.nsrc = 0
+               return
+       }
+       i.multiSeg = nil
+       i.rb.initString(f, src)
+       i.next = i.rb.f.nextMain
+       i.asciiF = nextASCIIString
+       i.info = i.rb.f.info(i.rb.src, i.p)
+}
+
+// Seek sets the segment to be returned by the next call to Next to start
+// at position p.  It is the responsibility of the caller to set p to the
+// start of a UTF8 rune.
+func (i *Iter) Seek(offset int64, whence int) (int64, error) {
+       var abs int64
+       switch whence {
+       case 0:
+               abs = offset
+       case 1:
+               abs = int64(i.p) + offset
+       case 2:
+               abs = int64(i.rb.nsrc) + offset
+       default:
+               return 0, fmt.Errorf("norm: invalid whence")
+       }
+       if abs < 0 {
+               return 0, fmt.Errorf("norm: negative position")
+       }
+       if int(abs) >= i.rb.nsrc {
+               i.setDone()
+               return int64(i.p), nil
+       }
+       i.p = int(abs)
+       i.multiSeg = nil
+       i.next = i.rb.f.nextMain
+       i.info = i.rb.f.info(i.rb.src, i.p)
+       return abs, nil
+}
+
+// returnSlice returns a slice of the underlying input type as a byte slice.
+// If the underlying is of type []byte, it will simply return a slice.
+// If the underlying is of type string, it will copy the slice to the buffer
+// and return that.
+func (i *Iter) returnSlice(a, b int) []byte {
+       if i.rb.src.bytes == nil {
+               return i.buf[:copy(i.buf[:], i.rb.src.str[a:b])]
+       }
+       return i.rb.src.bytes[a:b]
+}
+
+// Pos returns the byte position at which the next call to Next will commence processing.
+func (i *Iter) Pos() int {
+       return i.p
+}
+
+func (i *Iter) setDone() {
+       i.next = nextDone
+       i.p = i.rb.nsrc
+}
+
+// Done returns true if there is no more input to process.
+func (i *Iter) Done() bool {
+       return i.p >= i.rb.nsrc
+}
+
+// Next returns f(i.input[i.Pos():n]), where n is a boundary of i.input.
+// For any input a and b for which f(a) == f(b), subsequent calls
+// to Next will return the same segments.
+// Modifying runes are grouped together with the preceding starter, if such a starter exists.
+// Although not guaranteed, n will typically be the smallest possible n.
+func (i *Iter) Next() []byte {
+       return i.next(i)
+}
+
+func nextASCIIBytes(i *Iter) []byte {
+       p := i.p + 1
+       if p >= i.rb.nsrc {
+               i.setDone()
+               return i.rb.src.bytes[i.p:p]
+       }
+       if i.rb.src.bytes[p] < utf8.RuneSelf {
+               p0 := i.p
+               i.p = p
+               return i.rb.src.bytes[p0:p]
+       }
+       i.info = i.rb.f.info(i.rb.src, i.p)
+       i.next = i.rb.f.nextMain
+       return i.next(i)
+}
+
+func nextASCIIString(i *Iter) []byte {
+       p := i.p + 1
+       if p >= i.rb.nsrc {
+               i.buf[0] = i.rb.src.str[i.p]
+               i.setDone()
+               return i.buf[:1]
+       }
+       if i.rb.src.str[p] < utf8.RuneSelf {
+               i.buf[0] = i.rb.src.str[i.p]
+               i.p = p
+               return i.buf[:1]
+       }
+       i.info = i.rb.f.info(i.rb.src, i.p)
+       i.next = i.rb.f.nextMain
+       return i.next(i)
+}
+
+func nextHangul(i *Iter) []byte {
+       p := i.p
+       next := p + hangulUTF8Size
+       if next >= i.rb.nsrc {
+               i.setDone()
+       } else if i.rb.src.hangul(next) == 0 {
+               i.info = i.rb.f.info(i.rb.src, i.p)
+               i.next = i.rb.f.nextMain
+               return i.next(i)
+       }
+       i.p = next
+       return i.buf[:decomposeHangul(i.buf[:], i.rb.src.hangul(p))]
+}
+
+func nextDone(i *Iter) []byte {
+       return nil
+}
+
+// nextMulti is used for iterating over multi-segment decompositions
+// for decomposing normal forms.
+func nextMulti(i *Iter) []byte {
+       j := 0
+       d := i.multiSeg
+       // skip first rune
+       for j = 1; j < len(d) && !utf8.RuneStart(d[j]); j++ {
+       }
+       for j < len(d) {
+               info := i.rb.f.info(input{bytes: d}, j)
+               if info.BoundaryBefore() {
+                       i.multiSeg = d[j:]
+                       return d[:j]
+               }
+               j += int(info.size)
+       }
+       // treat last segment as normal decomposition
+       i.next = i.rb.f.nextMain
+       return i.next(i)
+}
+
+// nextMultiNorm is used for iterating over multi-segment decompositions
+// for composing normal forms.
+func nextMultiNorm(i *Iter) []byte {
+       j := 0
+       d := i.multiSeg
+       for j < len(d) {
+               info := i.rb.f.info(input{bytes: d}, j)
+               if info.BoundaryBefore() {
+                       i.rb.compose()
+                       seg := i.buf[:i.rb.flushCopy(i.buf[:])]
+                       i.rb.ss.first(info)
+                       i.rb.insertUnsafe(input{bytes: d}, j, info)
+                       i.multiSeg = d[j+int(info.size):]
+                       return seg
+               }
+               i.rb.ss.next(info)
+               i.rb.insertUnsafe(input{bytes: d}, j, info)
+               j += int(info.size)
+       }
+       i.multiSeg = nil
+       i.next = nextComposed
+       return doNormComposed(i)
+}
+
+// nextDecomposed is the implementation of Next for forms NFD and NFKD.
+func nextDecomposed(i *Iter) (next []byte) {
+       outp := 0
+       inCopyStart, outCopyStart := i.p, 0
+       ss := mkStreamSafe(i.info)
+       for {
+               if sz := int(i.info.size); sz <= 1 {
+                       p := i.p
+                       i.p++ // ASCII or illegal byte.  Either way, advance by 1.
+                       if i.p >= i.rb.nsrc {
+                               i.setDone()
+                               return i.returnSlice(p, i.p)
+                       } else if i.rb.src._byte(i.p) < utf8.RuneSelf {
+                               i.next = i.asciiF
+                               return i.returnSlice(p, i.p)
+                       }
+                       outp++
+               } else if d := i.info.Decomposition(); d != nil {
+                       // Note: If leading CCC != 0, then len(d) == 2 and last is also non-zero.
+                       // Case 1: there is a leftover to copy.  In this case the decomposition
+                       // must begin with a modifier and should always be appended.
+                       // Case 2: no leftover. Simply return d if followed by a ccc == 0 value.
+                       p := outp + len(d)
+                       if outp > 0 {
+                               i.rb.src.copySlice(i.buf[outCopyStart:], inCopyStart, i.p)
+                               if p > len(i.buf) {
+                                       return i.buf[:outp]
+                               }
+                       } else if i.info.multiSegment() {
+                               // outp must be 0 as multi-segment decompositions always
+                               // start a new segment.
+                               if i.multiSeg == nil {
+                                       i.multiSeg = d
+                                       i.next = nextMulti
+                                       return nextMulti(i)
+                               }
+                               // We are in the last segment.  Treat as normal decomposition.
+                               d = i.multiSeg
+                               i.multiSeg = nil
+                               p = len(d)
+                       }
+                       prevCC := i.info.tccc
+                       if i.p += sz; i.p >= i.rb.nsrc {
+                               i.setDone()
+                               i.info = Properties{} // Force BoundaryBefore to succeed.
+                       } else {
+                               i.info = i.rb.f.info(i.rb.src, i.p)
+                       }
+                       switch ss.next(i.info) {
+                       case ssOverflow:
+                               i.next = nextCGJDecompose
+                               fallthrough
+                       case ssStarter:
+                               if outp > 0 {
+                                       copy(i.buf[outp:], d)
+                                       return i.buf[:p]
+                               }
+                               return d
+                       }
+                       copy(i.buf[outp:], d)
+                       outp = p
+                       inCopyStart, outCopyStart = i.p, outp
+                       if i.info.ccc < prevCC {
+                               goto doNorm
+                       }
+                       continue
+               } else if r := i.rb.src.hangul(i.p); r != 0 {
+                       outp = decomposeHangul(i.buf[:], r)
+                       i.p += hangulUTF8Size
+                       inCopyStart, outCopyStart = i.p, outp
+                       if i.p >= i.rb.nsrc {
+                               i.setDone()
+                               break
+                       } else if i.rb.src.hangul(i.p) != 0 {
+                               i.next = nextHangul
+                               return i.buf[:outp]
+                       }
+               } else {
+                       p := outp + sz
+                       if p > len(i.buf) {
+                               break
+                       }
+                       outp = p
+                       i.p += sz
+               }
+               if i.p >= i.rb.nsrc {
+                       i.setDone()
+                       break
+               }
+               prevCC := i.info.tccc
+               i.info = i.rb.f.info(i.rb.src, i.p)
+               if v := ss.next(i.info); v == ssStarter {
+                       break
+               } else if v == ssOverflow {
+                       i.next = nextCGJDecompose
+                       break
+               }
+               if i.info.ccc < prevCC {
+                       goto doNorm
+               }
+       }
+       if outCopyStart == 0 {
+               return i.returnSlice(inCopyStart, i.p)
+       } else if inCopyStart < i.p {
+               i.rb.src.copySlice(i.buf[outCopyStart:], inCopyStart, i.p)
+       }
+       return i.buf[:outp]
+doNorm:
+       // Insert what we have decomposed so far in the reorderBuffer.
+       // As we will only reorder, there will always be enough room.
+       i.rb.src.copySlice(i.buf[outCopyStart:], inCopyStart, i.p)
+       i.rb.insertDecomposed(i.buf[0:outp])
+       return doNormDecomposed(i)
+}
+
+func doNormDecomposed(i *Iter) []byte {
+       for {
+               if s := i.rb.ss.next(i.info); s == ssOverflow {
+                       i.next = nextCGJDecompose
+                       break
+               }
+               i.rb.insertUnsafe(i.rb.src, i.p, i.info)
+               if i.p += int(i.info.size); i.p >= i.rb.nsrc {
+                       i.setDone()
+                       break
+               }
+               i.info = i.rb.f.info(i.rb.src, i.p)
+               if i.info.ccc == 0 {
+                       break
+               }
+       }
+       // new segment or too many combining characters: exit normalization
+       return i.buf[:i.rb.flushCopy(i.buf[:])]
+}
+
+func nextCGJDecompose(i *Iter) []byte {
+       i.rb.ss = 0
+       i.rb.insertCGJ()
+       i.next = nextDecomposed
+       buf := doNormDecomposed(i)
+       return buf
+}
+
+// nextComposed is the implementation of Next for forms NFC and NFKC.
+func nextComposed(i *Iter) []byte {
+       outp, startp := 0, i.p
+       var prevCC uint8
+       ss := mkStreamSafe(i.info)
+       for {
+               if !i.info.isYesC() {
+                       goto doNorm
+               }
+               prevCC = i.info.tccc
+               sz := int(i.info.size)
+               if sz == 0 {
+                       sz = 1 // illegal rune: copy byte-by-byte
+               }
+               p := outp + sz
+               if p > len(i.buf) {
+                       break
+               }
+               outp = p
+               i.p += sz
+               if i.p >= i.rb.nsrc {
+                       i.setDone()
+                       break
+               } else if i.rb.src._byte(i.p) < utf8.RuneSelf {
+                       i.next = i.asciiF
+                       break
+               }
+               i.info = i.rb.f.info(i.rb.src, i.p)
+               if v := ss.next(i.info); v == ssStarter {
+                       break
+               } else if v == ssOverflow {
+                       i.next = nextCGJCompose
+                       break
+               }
+               if i.info.ccc < prevCC {
+                       goto doNorm
+               }
+       }
+       return i.returnSlice(startp, i.p)
+doNorm:
+       i.p = startp
+       i.info = i.rb.f.info(i.rb.src, i.p)
+       if i.info.multiSegment() {
+               d := i.info.Decomposition()
+               info := i.rb.f.info(input{bytes: d}, 0)
+               i.rb.insertUnsafe(input{bytes: d}, 0, info)
+               i.multiSeg = d[int(info.size):]
+               i.next = nextMultiNorm
+               return nextMultiNorm(i)
+       }
+       i.rb.ss.first(i.info)
+       i.rb.insertUnsafe(i.rb.src, i.p, i.info)
+       return doNormComposed(i)
+}
+
+func doNormComposed(i *Iter) []byte {
+       // First rune should already be inserted.
+       for {
+               if i.p += int(i.info.size); i.p >= i.rb.nsrc {
+                       i.setDone()
+                       break
+               }
+               i.info = i.rb.f.info(i.rb.src, i.p)
+               if s := i.rb.ss.next(i.info); s == ssStarter {
+                       break
+               } else if s == ssOverflow {
+                       i.next = nextCGJCompose
+                       break
+               }
+               i.rb.insertUnsafe(i.rb.src, i.p, i.info)
+       }
+       i.rb.compose()
+       seg := i.buf[:i.rb.flushCopy(i.buf[:])]
+       return seg
+}
+
+func nextCGJCompose(i *Iter) []byte {
+       i.rb.ss = 0 // instead of first
+       i.rb.insertCGJ()
+       i.next = nextComposed
+       // Note that we treat any rune with nLeadingNonStarters > 0 as a non-starter,
+       // even if they are not. This is particularly dubious for U+FF9E and UFF9A.
+       // If we ever change that, insert a check here.
+       i.rb.ss.first(i.info)
+       i.rb.insertUnsafe(i.rb.src, i.p, i.info)
+       return doNormComposed(i)
+}
diff --git a/src/vendor/golang_org/x/text/unicode/norm/normalize.go b/src/vendor/golang_org/x/text/unicode/norm/normalize.go
new file mode 100644 (file)
index 0000000..15c962e
--- /dev/null
@@ -0,0 +1,608 @@
+// Copyright 2011 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 maketables.go triegen.go
+//go:generate go run maketables.go triegen.go -test
+
+// Package norm contains types and functions for normalizing Unicode strings.
+package norm // import "golang.org/x/text/unicode/norm"
+
+import (
+       "unicode/utf8"
+
+       "golang_org/x/text/transform"
+)
+
+// A Form denotes a canonical representation of Unicode code points.
+// The Unicode-defined normalization and equivalence forms are:
+//
+//   NFC   Unicode Normalization Form C
+//   NFD   Unicode Normalization Form D
+//   NFKC  Unicode Normalization Form KC
+//   NFKD  Unicode Normalization Form KD
+//
+// For a Form f, this documentation uses the notation f(x) to mean
+// the bytes or string x converted to the given form.
+// A position n in x is called a boundary if conversion to the form can
+// proceed independently on both sides:
+//   f(x) == append(f(x[0:n]), f(x[n:])...)
+//
+// References: http://unicode.org/reports/tr15/ and
+// http://unicode.org/notes/tn5/.
+type Form int
+
+const (
+       NFC Form = iota
+       NFD
+       NFKC
+       NFKD
+)
+
+// Bytes returns f(b). May return b if f(b) = b.
+func (f Form) Bytes(b []byte) []byte {
+       src := inputBytes(b)
+       ft := formTable[f]
+       n, ok := ft.quickSpan(src, 0, len(b), true)
+       if ok {
+               return b
+       }
+       out := make([]byte, n, len(b))
+       copy(out, b[0:n])
+       rb := reorderBuffer{f: *ft, src: src, nsrc: len(b), out: out, flushF: appendFlush}
+       return doAppendInner(&rb, n)
+}
+
+// String returns f(s).
+func (f Form) String(s string) string {
+       src := inputString(s)
+       ft := formTable[f]
+       n, ok := ft.quickSpan(src, 0, len(s), true)
+       if ok {
+               return s
+       }
+       out := make([]byte, n, len(s))
+       copy(out, s[0:n])
+       rb := reorderBuffer{f: *ft, src: src, nsrc: len(s), out: out, flushF: appendFlush}
+       return string(doAppendInner(&rb, n))
+}
+
+// IsNormal returns true if b == f(b).
+func (f Form) IsNormal(b []byte) bool {
+       src := inputBytes(b)
+       ft := formTable[f]
+       bp, ok := ft.quickSpan(src, 0, len(b), true)
+       if ok {
+               return true
+       }
+       rb := reorderBuffer{f: *ft, src: src, nsrc: len(b)}
+       rb.setFlusher(nil, cmpNormalBytes)
+       for bp < len(b) {
+               rb.out = b[bp:]
+               if bp = decomposeSegment(&rb, bp, true); bp < 0 {
+                       return false
+               }
+               bp, _ = rb.f.quickSpan(rb.src, bp, len(b), true)
+       }
+       return true
+}
+
+func cmpNormalBytes(rb *reorderBuffer) bool {
+       b := rb.out
+       for i := 0; i < rb.nrune; i++ {
+               info := rb.rune[i]
+               if int(info.size) > len(b) {
+                       return false
+               }
+               p := info.pos
+               pe := p + info.size
+               for ; p < pe; p++ {
+                       if b[0] != rb.byte[p] {
+                               return false
+                       }
+                       b = b[1:]
+               }
+       }
+       return true
+}
+
+// IsNormalString returns true if s == f(s).
+func (f Form) IsNormalString(s string) bool {
+       src := inputString(s)
+       ft := formTable[f]
+       bp, ok := ft.quickSpan(src, 0, len(s), true)
+       if ok {
+               return true
+       }
+       rb := reorderBuffer{f: *ft, src: src, nsrc: len(s)}
+       rb.setFlusher(nil, func(rb *reorderBuffer) bool {
+               for i := 0; i < rb.nrune; i++ {
+                       info := rb.rune[i]
+                       if bp+int(info.size) > len(s) {
+                               return false
+                       }
+                       p := info.pos
+                       pe := p + info.size
+                       for ; p < pe; p++ {
+                               if s[bp] != rb.byte[p] {
+                                       return false
+                               }
+                               bp++
+                       }
+               }
+               return true
+       })
+       for bp < len(s) {
+               if bp = decomposeSegment(&rb, bp, true); bp < 0 {
+                       return false
+               }
+               bp, _ = rb.f.quickSpan(rb.src, bp, len(s), true)
+       }
+       return true
+}
+
+// patchTail fixes a case where a rune may be incorrectly normalized
+// if it is followed by illegal continuation bytes. It returns the
+// patched buffer and whether the decomposition is still in progress.
+func patchTail(rb *reorderBuffer) bool {
+       info, p := lastRuneStart(&rb.f, rb.out)
+       if p == -1 || info.size == 0 {
+               return true
+       }
+       end := p + int(info.size)
+       extra := len(rb.out) - end
+       if extra > 0 {
+               // Potentially allocating memory. However, this only
+               // happens with ill-formed UTF-8.
+               x := make([]byte, 0)
+               x = append(x, rb.out[len(rb.out)-extra:]...)
+               rb.out = rb.out[:end]
+               decomposeToLastBoundary(rb)
+               rb.doFlush()
+               rb.out = append(rb.out, x...)
+               return false
+       }
+       buf := rb.out[p:]
+       rb.out = rb.out[:p]
+       decomposeToLastBoundary(rb)
+       if s := rb.ss.next(info); s == ssStarter {
+               rb.doFlush()
+               rb.ss.first(info)
+       } else if s == ssOverflow {
+               rb.doFlush()
+               rb.insertCGJ()
+               rb.ss = 0
+       }
+       rb.insertUnsafe(inputBytes(buf), 0, info)
+       return true
+}
+
+func appendQuick(rb *reorderBuffer, i int) int {
+       if rb.nsrc == i {
+               return i
+       }
+       end, _ := rb.f.quickSpan(rb.src, i, rb.nsrc, true)
+       rb.out = rb.src.appendSlice(rb.out, i, end)
+       return end
+}
+
+// Append returns f(append(out, b...)).
+// The buffer out must be nil, empty, or equal to f(out).
+func (f Form) Append(out []byte, src ...byte) []byte {
+       return f.doAppend(out, inputBytes(src), len(src))
+}
+
+func (f Form) doAppend(out []byte, src input, n int) []byte {
+       if n == 0 {
+               return out
+       }
+       ft := formTable[f]
+       // Attempt to do a quickSpan first so we can avoid initializing the reorderBuffer.
+       if len(out) == 0 {
+               p, _ := ft.quickSpan(src, 0, n, true)
+               out = src.appendSlice(out, 0, p)
+               if p == n {
+                       return out
+               }
+               rb := reorderBuffer{f: *ft, src: src, nsrc: n, out: out, flushF: appendFlush}
+               return doAppendInner(&rb, p)
+       }
+       rb := reorderBuffer{f: *ft, src: src, nsrc: n}
+       return doAppend(&rb, out, 0)
+}
+
+func doAppend(rb *reorderBuffer, out []byte, p int) []byte {
+       rb.setFlusher(out, appendFlush)
+       src, n := rb.src, rb.nsrc
+       doMerge := len(out) > 0
+       if q := src.skipContinuationBytes(p); q > p {
+               // Move leading non-starters to destination.
+               rb.out = src.appendSlice(rb.out, p, q)
+               p = q
+               doMerge = patchTail(rb)
+       }
+       fd := &rb.f
+       if doMerge {
+               var info Properties
+               if p < n {
+                       info = fd.info(src, p)
+                       if !info.BoundaryBefore() || info.nLeadingNonStarters() > 0 {
+                               if p == 0 {
+                                       decomposeToLastBoundary(rb)
+                               }
+                               p = decomposeSegment(rb, p, true)
+                       }
+               }
+               if info.size == 0 {
+                       rb.doFlush()
+                       // Append incomplete UTF-8 encoding.
+                       return src.appendSlice(rb.out, p, n)
+               }
+               if rb.nrune > 0 {
+                       return doAppendInner(rb, p)
+               }
+       }
+       p = appendQuick(rb, p)
+       return doAppendInner(rb, p)
+}
+
+func doAppendInner(rb *reorderBuffer, p int) []byte {
+       for n := rb.nsrc; p < n; {
+               p = decomposeSegment(rb, p, true)
+               p = appendQuick(rb, p)
+       }
+       return rb.out
+}
+
+// AppendString returns f(append(out, []byte(s))).
+// The buffer out must be nil, empty, or equal to f(out).
+func (f Form) AppendString(out []byte, src string) []byte {
+       return f.doAppend(out, inputString(src), len(src))
+}
+
+// QuickSpan returns a boundary n such that b[0:n] == f(b[0:n]).
+// It is not guaranteed to return the largest such n.
+func (f Form) QuickSpan(b []byte) int {
+       n, _ := formTable[f].quickSpan(inputBytes(b), 0, len(b), true)
+       return n
+}
+
+// Span implements transform.SpanningTransformer. It returns a boundary n such
+// that b[0:n] == f(b[0:n]). It is not guaranteed to return the largest such n.
+func (f Form) Span(b []byte, atEOF bool) (n int, err error) {
+       n, ok := formTable[f].quickSpan(inputBytes(b), 0, len(b), atEOF)
+       if n < len(b) {
+               if !ok {
+                       err = transform.ErrEndOfSpan
+               } else {
+                       err = transform.ErrShortSrc
+               }
+       }
+       return n, err
+}
+
+// SpanString returns a boundary n such that s[0:n] == f(s[0:n]).
+// It is not guaranteed to return the largest such n.
+func (f Form) SpanString(s string, atEOF bool) (n int, err error) {
+       n, ok := formTable[f].quickSpan(inputString(s), 0, len(s), atEOF)
+       if n < len(s) {
+               if !ok {
+                       err = transform.ErrEndOfSpan
+               } else {
+                       err = transform.ErrShortSrc
+               }
+       }
+       return n, err
+}
+
+// quickSpan returns a boundary n such that src[0:n] == f(src[0:n]) and
+// whether any non-normalized parts were found. If atEOF is false, n will
+// not point past the last segment if this segment might be become
+// non-normalized by appending other runes.
+func (f *formInfo) quickSpan(src input, i, end int, atEOF bool) (n int, ok bool) {
+       var lastCC uint8
+       ss := streamSafe(0)
+       lastSegStart := i
+       for n = end; i < n; {
+               if j := src.skipASCII(i, n); i != j {
+                       i = j
+                       lastSegStart = i - 1
+                       lastCC = 0
+                       ss = 0
+                       continue
+               }
+               info := f.info(src, i)
+               if info.size == 0 {
+                       if atEOF {
+                               // include incomplete runes
+                               return n, true
+                       }
+                       return lastSegStart, true
+               }
+               // This block needs to be before the next, because it is possible to
+               // have an overflow for runes that are starters (e.g. with U+FF9E).
+               switch ss.next(info) {
+               case ssStarter:
+                       ss.first(info)
+                       lastSegStart = i
+               case ssOverflow:
+                       return lastSegStart, false
+               case ssSuccess:
+                       if lastCC > info.ccc {
+                               return lastSegStart, false
+                       }
+               }
+               if f.composing {
+                       if !info.isYesC() {
+                               break
+                       }
+               } else {
+                       if !info.isYesD() {
+                               break
+                       }
+               }
+               lastCC = info.ccc
+               i += int(info.size)
+       }
+       if i == n {
+               if !atEOF {
+                       n = lastSegStart
+               }
+               return n, true
+       }
+       return lastSegStart, false
+}
+
+// QuickSpanString returns a boundary n such that s[0:n] == f(s[0:n]).
+// It is not guaranteed to return the largest such n.
+func (f Form) QuickSpanString(s string) int {
+       n, _ := formTable[f].quickSpan(inputString(s), 0, len(s), true)
+       return n
+}
+
+// FirstBoundary returns the position i of the first boundary in b
+// or -1 if b contains no boundary.
+func (f Form) FirstBoundary(b []byte) int {
+       return f.firstBoundary(inputBytes(b), len(b))
+}
+
+func (f Form) firstBoundary(src input, nsrc int) int {
+       i := src.skipContinuationBytes(0)
+       if i >= nsrc {
+               return -1
+       }
+       fd := formTable[f]
+       ss := streamSafe(0)
+       // We should call ss.first here, but we can't as the first rune is
+       // skipped already. This means FirstBoundary can't really determine
+       // CGJ insertion points correctly. Luckily it doesn't have to.
+       for {
+               info := fd.info(src, i)
+               if info.size == 0 {
+                       return -1
+               }
+               if s := ss.next(info); s != ssSuccess {
+                       return i
+               }
+               i += int(info.size)
+               if i >= nsrc {
+                       if !info.BoundaryAfter() && !ss.isMax() {
+                               return -1
+                       }
+                       return nsrc
+               }
+       }
+}
+
+// FirstBoundaryInString returns the position i of the first boundary in s
+// or -1 if s contains no boundary.
+func (f Form) FirstBoundaryInString(s string) int {
+       return f.firstBoundary(inputString(s), len(s))
+}
+
+// NextBoundary reports the index of the boundary between the first and next
+// segment in b or -1 if atEOF is false and there are not enough bytes to
+// determine this boundary.
+func (f Form) NextBoundary(b []byte, atEOF bool) int {
+       return f.nextBoundary(inputBytes(b), len(b), atEOF)
+}
+
+// NextBoundaryInString reports the index of the boundary between the first and
+// next segment in b or -1 if atEOF is false and there are not enough bytes to
+// determine this boundary.
+func (f Form) NextBoundaryInString(s string, atEOF bool) int {
+       return f.nextBoundary(inputString(s), len(s), atEOF)
+}
+
+func (f Form) nextBoundary(src input, nsrc int, atEOF bool) int {
+       if nsrc == 0 {
+               if atEOF {
+                       return 0
+               }
+               return -1
+       }
+       fd := formTable[f]
+       info := fd.info(src, 0)
+       if info.size == 0 {
+               if atEOF {
+                       return 1
+               }
+               return -1
+       }
+       ss := streamSafe(0)
+       ss.first(info)
+
+       for i := int(info.size); i < nsrc; i += int(info.size) {
+               info = fd.info(src, i)
+               if info.size == 0 {
+                       if atEOF {
+                               return i
+                       }
+                       return -1
+               }
+               if s := ss.next(info); s != ssSuccess {
+                       return i
+               }
+       }
+       if !atEOF && !info.BoundaryAfter() && !ss.isMax() {
+               return -1
+       }
+       return nsrc
+}
+
+// LastBoundary returns the position i of the last boundary in b
+// or -1 if b contains no boundary.
+func (f Form) LastBoundary(b []byte) int {
+       return lastBoundary(formTable[f], b)
+}
+
+func lastBoundary(fd *formInfo, b []byte) int {
+       i := len(b)
+       info, p := lastRuneStart(fd, b)
+       if p == -1 {
+               return -1
+       }
+       if info.size == 0 { // ends with incomplete rune
+               if p == 0 { // starts with incomplete rune
+                       return -1
+               }
+               i = p
+               info, p = lastRuneStart(fd, b[:i])
+               if p == -1 { // incomplete UTF-8 encoding or non-starter bytes without a starter
+                       return i
+               }
+       }
+       if p+int(info.size) != i { // trailing non-starter bytes: illegal UTF-8
+               return i
+       }
+       if info.BoundaryAfter() {
+               return i
+       }
+       ss := streamSafe(0)
+       v := ss.backwards(info)
+       for i = p; i >= 0 && v != ssStarter; i = p {
+               info, p = lastRuneStart(fd, b[:i])
+               if v = ss.backwards(info); v == ssOverflow {
+                       break
+               }
+               if p+int(info.size) != i {
+                       if p == -1 { // no boundary found
+                               return -1
+                       }
+                       return i // boundary after an illegal UTF-8 encoding
+               }
+       }
+       return i
+}
+
+// decomposeSegment scans the first segment in src into rb. It inserts 0x034f
+// (Grapheme Joiner) when it encounters a sequence of more than 30 non-starters
+// and returns the number of bytes consumed from src or iShortDst or iShortSrc.
+func decomposeSegment(rb *reorderBuffer, sp int, atEOF bool) int {
+       // Force one character to be consumed.
+       info := rb.f.info(rb.src, sp)
+       if info.size == 0 {
+               return 0
+       }
+       if rb.nrune > 0 {
+               if s := rb.ss.next(info); s == ssStarter {
+                       goto end
+               } else if s == ssOverflow {
+                       rb.insertCGJ()
+                       goto end
+               }
+       } else {
+               rb.ss.first(info)
+       }
+       if err := rb.insertFlush(rb.src, sp, info); err != iSuccess {
+               return int(err)
+       }
+       for {
+               sp += int(info.size)
+               if sp >= rb.nsrc {
+                       if !atEOF && !info.BoundaryAfter() {
+                               return int(iShortSrc)
+                       }
+                       break
+               }
+               info = rb.f.info(rb.src, sp)
+               if info.size == 0 {
+                       if !atEOF {
+                               return int(iShortSrc)
+                       }
+                       break
+               }
+               if s := rb.ss.next(info); s == ssStarter {
+                       break
+               } else if s == ssOverflow {
+                       rb.insertCGJ()
+                       break
+               }
+               if err := rb.insertFlush(rb.src, sp, info); err != iSuccess {
+                       return int(err)
+               }
+       }
+end:
+       if !rb.doFlush() {
+               return int(iShortDst)
+       }
+       return sp
+}
+
+// lastRuneStart returns the runeInfo and position of the last
+// rune in buf or the zero runeInfo and -1 if no rune was found.
+func lastRuneStart(fd *formInfo, buf []byte) (Properties, int) {
+       p := len(buf) - 1
+       for ; p >= 0 && !utf8.RuneStart(buf[p]); p-- {
+       }
+       if p < 0 {
+               return Properties{}, -1
+       }
+       return fd.info(inputBytes(buf), p), p
+}
+
+// decomposeToLastBoundary finds an open segment at the end of the buffer
+// and scans it into rb. Returns the buffer minus the last segment.
+func decomposeToLastBoundary(rb *reorderBuffer) {
+       fd := &rb.f
+       info, i := lastRuneStart(fd, rb.out)
+       if int(info.size) != len(rb.out)-i {
+               // illegal trailing continuation bytes
+               return
+       }
+       if info.BoundaryAfter() {
+               return
+       }
+       var add [maxNonStarters + 1]Properties // stores runeInfo in reverse order
+       padd := 0
+       ss := streamSafe(0)
+       p := len(rb.out)
+       for {
+               add[padd] = info
+               v := ss.backwards(info)
+               if v == ssOverflow {
+                       // Note that if we have an overflow, it the string we are appending to
+                       // is not correctly normalized. In this case the behavior is undefined.
+                       break
+               }
+               padd++
+               p -= int(info.size)
+               if v == ssStarter || p < 0 {
+                       break
+               }
+               info, i = lastRuneStart(fd, rb.out[:p])
+               if int(info.size) != p-i {
+                       break
+               }
+       }
+       rb.ss = ss
+       // Copy bytes for insertion as we may need to overwrite rb.out.
+       var buf [maxBufferSize * utf8.UTFMax]byte
+       cp := buf[:copy(buf[:], rb.out[p:])]
+       rb.out = rb.out[:p]
+       for padd--; padd >= 0; padd-- {
+               info = add[padd]
+               rb.insertUnsafe(inputBytes(cp), 0, info)
+               cp = cp[info.size:]
+       }
+}
diff --git a/src/vendor/golang_org/x/text/unicode/norm/readwriter.go b/src/vendor/golang_org/x/text/unicode/norm/readwriter.go
new file mode 100644 (file)
index 0000000..4fa0e04
--- /dev/null
@@ -0,0 +1,126 @@
+// Copyright 2011 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 norm
+
+import "io"
+
+type normWriter struct {
+       rb  reorderBuffer
+       w   io.Writer
+       buf []byte
+}
+
+// Write implements the standard write interface.  If the last characters are
+// not at a normalization boundary, the bytes will be buffered for the next
+// write. The remaining bytes will be written on close.
+func (w *normWriter) Write(data []byte) (n int, err error) {
+       // Process data in pieces to keep w.buf size bounded.
+       const chunk = 4000
+
+       for len(data) > 0 {
+               // Normalize into w.buf.
+               m := len(data)
+               if m > chunk {
+                       m = chunk
+               }
+               w.rb.src = inputBytes(data[:m])
+               w.rb.nsrc = m
+               w.buf = doAppend(&w.rb, w.buf, 0)
+               data = data[m:]
+               n += m
+
+               // Write out complete prefix, save remainder.
+               // Note that lastBoundary looks back at most 31 runes.
+               i := lastBoundary(&w.rb.f, w.buf)
+               if i == -1 {
+                       i = 0
+               }
+               if i > 0 {
+                       if _, err = w.w.Write(w.buf[:i]); err != nil {
+                               break
+                       }
+                       bn := copy(w.buf, w.buf[i:])
+                       w.buf = w.buf[:bn]
+               }
+       }
+       return n, err
+}
+
+// Close forces data that remains in the buffer to be written.
+func (w *normWriter) Close() error {
+       if len(w.buf) > 0 {
+               _, err := w.w.Write(w.buf)
+               if err != nil {
+                       return err
+               }
+       }
+       return nil
+}
+
+// Writer returns a new writer that implements Write(b)
+// by writing f(b) to w.  The returned writer may use an
+// an internal buffer to maintain state across Write calls.
+// Calling its Close method writes any buffered data to w.
+func (f Form) Writer(w io.Writer) io.WriteCloser {
+       wr := &normWriter{rb: reorderBuffer{}, w: w}
+       wr.rb.init(f, nil)
+       return wr
+}
+
+type normReader struct {
+       rb           reorderBuffer
+       r            io.Reader
+       inbuf        []byte
+       outbuf       []byte
+       bufStart     int
+       lastBoundary int
+       err          error
+}
+
+// Read implements the standard read interface.
+func (r *normReader) Read(p []byte) (int, error) {
+       for {
+               if r.lastBoundary-r.bufStart > 0 {
+                       n := copy(p, r.outbuf[r.bufStart:r.lastBoundary])
+                       r.bufStart += n
+                       if r.lastBoundary-r.bufStart > 0 {
+                               return n, nil
+                       }
+                       return n, r.err
+               }
+               if r.err != nil {
+                       return 0, r.err
+               }
+               outn := copy(r.outbuf, r.outbuf[r.lastBoundary:])
+               r.outbuf = r.outbuf[0:outn]
+               r.bufStart = 0
+
+               n, err := r.r.Read(r.inbuf)
+               r.rb.src = inputBytes(r.inbuf[0:n])
+               r.rb.nsrc, r.err = n, err
+               if n > 0 {
+                       r.outbuf = doAppend(&r.rb, r.outbuf, 0)
+               }
+               if err == io.EOF {
+                       r.lastBoundary = len(r.outbuf)
+               } else {
+                       r.lastBoundary = lastBoundary(&r.rb.f, r.outbuf)
+                       if r.lastBoundary == -1 {
+                               r.lastBoundary = 0
+                       }
+               }
+       }
+       panic("should not reach here")
+}
+
+// Reader returns a new reader that implements Read
+// by reading data from r and returning f(data).
+func (f Form) Reader(r io.Reader) io.Reader {
+       const chunk = 4000
+       buf := make([]byte, chunk)
+       rr := &normReader{rb: reorderBuffer{}, r: r, inbuf: buf}
+       rr.rb.init(f, buf)
+       return rr
+}
diff --git a/src/vendor/golang_org/x/text/unicode/norm/tables.go b/src/vendor/golang_org/x/text/unicode/norm/tables.go
new file mode 100644 (file)
index 0000000..a56697b
--- /dev/null
@@ -0,0 +1,7627 @@
+// This file was generated by go generate; DO NOT EDIT
+
+package norm
+
+const (
+       // Version is the Unicode edition from which the tables are derived.
+       Version = "9.0.0"
+
+       // MaxTransformChunkSize indicates the maximum number of bytes that Transform
+       // may need to write atomically for any Form. Making a destination buffer at
+       // least this size ensures that Transform can always make progress and that
+       // the user does not need to grow the buffer on an ErrShortDst.
+       MaxTransformChunkSize = 35 + maxNonStarters*4
+)
+
+var ccc = [55]uint8{
+       0, 1, 7, 8, 9, 10, 11, 12,
+       13, 14, 15, 16, 17, 18, 19, 20,
+       21, 22, 23, 24, 25, 26, 27, 28,
+       29, 30, 31, 32, 33, 34, 35, 36,
+       84, 91, 103, 107, 118, 122, 129, 130,
+       132, 202, 214, 216, 218, 220, 222, 224,
+       226, 228, 230, 232, 233, 234, 240,
+}
+
+const (
+       firstMulti            = 0x186D
+       firstCCC              = 0x2C9E
+       endMulti              = 0x2F60
+       firstLeadingCCC       = 0x4A44
+       firstCCCZeroExcept    = 0x4A5A
+       firstStarterWithNLead = 0x4A81
+       lastDecomp            = 0x4A83
+       maxDecomp             = 0x8000
+)
+
+// decomps: 19075 bytes
+var decomps = [...]byte{
+       // Bytes 0 - 3f
+       0x00, 0x41, 0x20, 0x41, 0x21, 0x41, 0x22, 0x41,
+       0x23, 0x41, 0x24, 0x41, 0x25, 0x41, 0x26, 0x41,
+       0x27, 0x41, 0x28, 0x41, 0x29, 0x41, 0x2A, 0x41,
+       0x2B, 0x41, 0x2C, 0x41, 0x2D, 0x41, 0x2E, 0x41,
+       0x2F, 0x41, 0x30, 0x41, 0x31, 0x41, 0x32, 0x41,
+       0x33, 0x41, 0x34, 0x41, 0x35, 0x41, 0x36, 0x41,
+       0x37, 0x41, 0x38, 0x41, 0x39, 0x41, 0x3A, 0x41,
+       0x3B, 0x41, 0x3C, 0x41, 0x3D, 0x41, 0x3E, 0x41,
+       // Bytes 40 - 7f
+       0x3F, 0x41, 0x40, 0x41, 0x41, 0x41, 0x42, 0x41,
+       0x43, 0x41, 0x44, 0x41, 0x45, 0x41, 0x46, 0x41,
+       0x47, 0x41, 0x48, 0x41, 0x49, 0x41, 0x4A, 0x41,
+       0x4B, 0x41, 0x4C, 0x41, 0x4D, 0x41, 0x4E, 0x41,
+       0x4F, 0x41, 0x50, 0x41, 0x51, 0x41, 0x52, 0x41,
+       0x53, 0x41, 0x54, 0x41, 0x55, 0x41, 0x56, 0x41,
+       0x57, 0x41, 0x58, 0x41, 0x59, 0x41, 0x5A, 0x41,
+       0x5B, 0x41, 0x5C, 0x41, 0x5D, 0x41, 0x5E, 0x41,
+       // Bytes 80 - bf
+       0x5F, 0x41, 0x60, 0x41, 0x61, 0x41, 0x62, 0x41,
+       0x63, 0x41, 0x64, 0x41, 0x65, 0x41, 0x66, 0x41,
+       0x67, 0x41, 0x68, 0x41, 0x69, 0x41, 0x6A, 0x41,
+       0x6B, 0x41, 0x6C, 0x41, 0x6D, 0x41, 0x6E, 0x41,
+       0x6F, 0x41, 0x70, 0x41, 0x71, 0x41, 0x72, 0x41,
+       0x73, 0x41, 0x74, 0x41, 0x75, 0x41, 0x76, 0x41,
+       0x77, 0x41, 0x78, 0x41, 0x79, 0x41, 0x7A, 0x41,
+       0x7B, 0x41, 0x7C, 0x41, 0x7D, 0x41, 0x7E, 0x42,
+       // Bytes c0 - ff
+       0xC2, 0xA2, 0x42, 0xC2, 0xA3, 0x42, 0xC2, 0xA5,
+       0x42, 0xC2, 0xA6, 0x42, 0xC2, 0xAC, 0x42, 0xC2,
+       0xB7, 0x42, 0xC3, 0x86, 0x42, 0xC3, 0xB0, 0x42,
+       0xC4, 0xA6, 0x42, 0xC4, 0xA7, 0x42, 0xC4, 0xB1,
+       0x42, 0xC5, 0x8B, 0x42, 0xC5, 0x93, 0x42, 0xC6,
+       0x8E, 0x42, 0xC6, 0x90, 0x42, 0xC6, 0xAB, 0x42,
+       0xC8, 0xA2, 0x42, 0xC8, 0xB7, 0x42, 0xC9, 0x90,
+       0x42, 0xC9, 0x91, 0x42, 0xC9, 0x92, 0x42, 0xC9,
+       // Bytes 100 - 13f
+       0x94, 0x42, 0xC9, 0x95, 0x42, 0xC9, 0x99, 0x42,
+       0xC9, 0x9B, 0x42, 0xC9, 0x9C, 0x42, 0xC9, 0x9F,
+       0x42, 0xC9, 0xA1, 0x42, 0xC9, 0xA3, 0x42, 0xC9,
+       0xA5, 0x42, 0xC9, 0xA6, 0x42, 0xC9, 0xA8, 0x42,
+       0xC9, 0xA9, 0x42, 0xC9, 0xAA, 0x42, 0xC9, 0xAB,
+       0x42, 0xC9, 0xAD, 0x42, 0xC9, 0xAF, 0x42, 0xC9,
+       0xB0, 0x42, 0xC9, 0xB1, 0x42, 0xC9, 0xB2, 0x42,
+       0xC9, 0xB3, 0x42, 0xC9, 0xB4, 0x42, 0xC9, 0xB5,
+       // Bytes 140 - 17f
+       0x42, 0xC9, 0xB8, 0x42, 0xC9, 0xB9, 0x42, 0xC9,
+       0xBB, 0x42, 0xCA, 0x81, 0x42, 0xCA, 0x82, 0x42,
+       0xCA, 0x83, 0x42, 0xCA, 0x89, 0x42, 0xCA, 0x8A,
+       0x42, 0xCA, 0x8B, 0x42, 0xCA, 0x8C, 0x42, 0xCA,
+       0x90, 0x42, 0xCA, 0x91, 0x42, 0xCA, 0x92, 0x42,
+       0xCA, 0x95, 0x42, 0xCA, 0x9D, 0x42, 0xCA, 0x9F,
+       0x42, 0xCA, 0xB9, 0x42, 0xCE, 0x91, 0x42, 0xCE,
+       0x92, 0x42, 0xCE, 0x93, 0x42, 0xCE, 0x94, 0x42,
+       // Bytes 180 - 1bf
+       0xCE, 0x95, 0x42, 0xCE, 0x96, 0x42, 0xCE, 0x97,
+       0x42, 0xCE, 0x98, 0x42, 0xCE, 0x99, 0x42, 0xCE,
+       0x9A, 0x42, 0xCE, 0x9B, 0x42, 0xCE, 0x9C, 0x42,
+       0xCE, 0x9D, 0x42, 0xCE, 0x9E, 0x42, 0xCE, 0x9F,
+       0x42, 0xCE, 0xA0, 0x42, 0xCE, 0xA1, 0x42, 0xCE,
+       0xA3, 0x42, 0xCE, 0xA4, 0x42, 0xCE, 0xA5, 0x42,
+       0xCE, 0xA6, 0x42, 0xCE, 0xA7, 0x42, 0xCE, 0xA8,
+       0x42, 0xCE, 0xA9, 0x42, 0xCE, 0xB1, 0x42, 0xCE,
+       // Bytes 1c0 - 1ff
+       0xB2, 0x42, 0xCE, 0xB3, 0x42, 0xCE, 0xB4, 0x42,
+       0xCE, 0xB5, 0x42, 0xCE, 0xB6, 0x42, 0xCE, 0xB7,
+       0x42, 0xCE, 0xB8, 0x42, 0xCE, 0xB9, 0x42, 0xCE,
+       0xBA, 0x42, 0xCE, 0xBB, 0x42, 0xCE, 0xBC, 0x42,
+       0xCE, 0xBD, 0x42, 0xCE, 0xBE, 0x42, 0xCE, 0xBF,
+       0x42, 0xCF, 0x80, 0x42, 0xCF, 0x81, 0x42, 0xCF,
+       0x82, 0x42, 0xCF, 0x83, 0x42, 0xCF, 0x84, 0x42,
+       0xCF, 0x85, 0x42, 0xCF, 0x86, 0x42, 0xCF, 0x87,
+       // Bytes 200 - 23f
+       0x42, 0xCF, 0x88, 0x42, 0xCF, 0x89, 0x42, 0xCF,
+       0x9C, 0x42, 0xCF, 0x9D, 0x42, 0xD0, 0xBD, 0x42,
+       0xD1, 0x8A, 0x42, 0xD1, 0x8C, 0x42, 0xD7, 0x90,
+       0x42, 0xD7, 0x91, 0x42, 0xD7, 0x92, 0x42, 0xD7,
+       0x93, 0x42, 0xD7, 0x94, 0x42, 0xD7, 0x9B, 0x42,
+       0xD7, 0x9C, 0x42, 0xD7, 0x9D, 0x42, 0xD7, 0xA2,
+       0x42, 0xD7, 0xA8, 0x42, 0xD7, 0xAA, 0x42, 0xD8,
+       0xA1, 0x42, 0xD8, 0xA7, 0x42, 0xD8, 0xA8, 0x42,
+       // Bytes 240 - 27f
+       0xD8, 0xA9, 0x42, 0xD8, 0xAA, 0x42, 0xD8, 0xAB,
+       0x42, 0xD8, 0xAC, 0x42, 0xD8, 0xAD, 0x42, 0xD8,
+       0xAE, 0x42, 0xD8, 0xAF, 0x42, 0xD8, 0xB0, 0x42,
+       0xD8, 0xB1, 0x42, 0xD8, 0xB2, 0x42, 0xD8, 0xB3,
+       0x42, 0xD8, 0xB4, 0x42, 0xD8, 0xB5, 0x42, 0xD8,
+       0xB6, 0x42, 0xD8, 0xB7, 0x42, 0xD8, 0xB8, 0x42,
+       0xD8, 0xB9, 0x42, 0xD8, 0xBA, 0x42, 0xD9, 0x81,
+       0x42, 0xD9, 0x82, 0x42, 0xD9, 0x83, 0x42, 0xD9,
+       // Bytes 280 - 2bf
+       0x84, 0x42, 0xD9, 0x85, 0x42, 0xD9, 0x86, 0x42,
+       0xD9, 0x87, 0x42, 0xD9, 0x88, 0x42, 0xD9, 0x89,
+       0x42, 0xD9, 0x8A, 0x42, 0xD9, 0xAE, 0x42, 0xD9,
+       0xAF, 0x42, 0xD9, 0xB1, 0x42, 0xD9, 0xB9, 0x42,
+       0xD9, 0xBA, 0x42, 0xD9, 0xBB, 0x42, 0xD9, 0xBE,
+       0x42, 0xD9, 0xBF, 0x42, 0xDA, 0x80, 0x42, 0xDA,
+       0x83, 0x42, 0xDA, 0x84, 0x42, 0xDA, 0x86, 0x42,
+       0xDA, 0x87, 0x42, 0xDA, 0x88, 0x42, 0xDA, 0x8C,
+       // Bytes 2c0 - 2ff
+       0x42, 0xDA, 0x8D, 0x42, 0xDA, 0x8E, 0x42, 0xDA,
+       0x91, 0x42, 0xDA, 0x98, 0x42, 0xDA, 0xA1, 0x42,
+       0xDA, 0xA4, 0x42, 0xDA, 0xA6, 0x42, 0xDA, 0xA9,
+       0x42, 0xDA, 0xAD, 0x42, 0xDA, 0xAF, 0x42, 0xDA,
+       0xB1, 0x42, 0xDA, 0xB3, 0x42, 0xDA, 0xBA, 0x42,
+       0xDA, 0xBB, 0x42, 0xDA, 0xBE, 0x42, 0xDB, 0x81,
+       0x42, 0xDB, 0x85, 0x42, 0xDB, 0x86, 0x42, 0xDB,
+       0x87, 0x42, 0xDB, 0x88, 0x42, 0xDB, 0x89, 0x42,
+       // Bytes 300 - 33f
+       0xDB, 0x8B, 0x42, 0xDB, 0x8C, 0x42, 0xDB, 0x90,
+       0x42, 0xDB, 0x92, 0x43, 0xE0, 0xBC, 0x8B, 0x43,
+       0xE1, 0x83, 0x9C, 0x43, 0xE1, 0x84, 0x80, 0x43,
+       0xE1, 0x84, 0x81, 0x43, 0xE1, 0x84, 0x82, 0x43,
+       0xE1, 0x84, 0x83, 0x43, 0xE1, 0x84, 0x84, 0x43,
+       0xE1, 0x84, 0x85, 0x43, 0xE1, 0x84, 0x86, 0x43,
+       0xE1, 0x84, 0x87, 0x43, 0xE1, 0x84, 0x88, 0x43,
+       0xE1, 0x84, 0x89, 0x43, 0xE1, 0x84, 0x8A, 0x43,
+       // Bytes 340 - 37f
+       0xE1, 0x84, 0x8B, 0x43, 0xE1, 0x84, 0x8C, 0x43,
+       0xE1, 0x84, 0x8D, 0x43, 0xE1, 0x84, 0x8E, 0x43,
+       0xE1, 0x84, 0x8F, 0x43, 0xE1, 0x84, 0x90, 0x43,
+       0xE1, 0x84, 0x91, 0x43, 0xE1, 0x84, 0x92, 0x43,
+       0xE1, 0x84, 0x94, 0x43, 0xE1, 0x84, 0x95, 0x43,
+       0xE1, 0x84, 0x9A, 0x43, 0xE1, 0x84, 0x9C, 0x43,
+       0xE1, 0x84, 0x9D, 0x43, 0xE1, 0x84, 0x9E, 0x43,
+       0xE1, 0x84, 0xA0, 0x43, 0xE1, 0x84, 0xA1, 0x43,
+       // Bytes 380 - 3bf
+       0xE1, 0x84, 0xA2, 0x43, 0xE1, 0x84, 0xA3, 0x43,
+       0xE1, 0x84, 0xA7, 0x43, 0xE1, 0x84, 0xA9, 0x43,
+       0xE1, 0x84, 0xAB, 0x43, 0xE1, 0x84, 0xAC, 0x43,
+       0xE1, 0x84, 0xAD, 0x43, 0xE1, 0x84, 0xAE, 0x43,
+       0xE1, 0x84, 0xAF, 0x43, 0xE1, 0x84, 0xB2, 0x43,
+       0xE1, 0x84, 0xB6, 0x43, 0xE1, 0x85, 0x80, 0x43,
+       0xE1, 0x85, 0x87, 0x43, 0xE1, 0x85, 0x8C, 0x43,
+       0xE1, 0x85, 0x97, 0x43, 0xE1, 0x85, 0x98, 0x43,
+       // Bytes 3c0 - 3ff
+       0xE1, 0x85, 0x99, 0x43, 0xE1, 0x85, 0xA0, 0x43,
+       0xE1, 0x86, 0x84, 0x43, 0xE1, 0x86, 0x85, 0x43,
+       0xE1, 0x86, 0x88, 0x43, 0xE1, 0x86, 0x91, 0x43,
+       0xE1, 0x86, 0x92, 0x43, 0xE1, 0x86, 0x94, 0x43,
+       0xE1, 0x86, 0x9E, 0x43, 0xE1, 0x86, 0xA1, 0x43,
+       0xE1, 0x87, 0x87, 0x43, 0xE1, 0x87, 0x88, 0x43,
+       0xE1, 0x87, 0x8C, 0x43, 0xE1, 0x87, 0x8E, 0x43,
+       0xE1, 0x87, 0x93, 0x43, 0xE1, 0x87, 0x97, 0x43,
+       // Bytes 400 - 43f
+       0xE1, 0x87, 0x99, 0x43, 0xE1, 0x87, 0x9D, 0x43,
+       0xE1, 0x87, 0x9F, 0x43, 0xE1, 0x87, 0xB1, 0x43,
+       0xE1, 0x87, 0xB2, 0x43, 0xE1, 0xB4, 0x82, 0x43,
+       0xE1, 0xB4, 0x96, 0x43, 0xE1, 0xB4, 0x97, 0x43,
+       0xE1, 0xB4, 0x9C, 0x43, 0xE1, 0xB4, 0x9D, 0x43,
+       0xE1, 0xB4, 0xA5, 0x43, 0xE1, 0xB5, 0xBB, 0x43,
+       0xE1, 0xB6, 0x85, 0x43, 0xE2, 0x80, 0x82, 0x43,
+       0xE2, 0x80, 0x83, 0x43, 0xE2, 0x80, 0x90, 0x43,
+       // Bytes 440 - 47f
+       0xE2, 0x80, 0x93, 0x43, 0xE2, 0x80, 0x94, 0x43,
+       0xE2, 0x82, 0xA9, 0x43, 0xE2, 0x86, 0x90, 0x43,
+       0xE2, 0x86, 0x91, 0x43, 0xE2, 0x86, 0x92, 0x43,
+       0xE2, 0x86, 0x93, 0x43, 0xE2, 0x88, 0x82, 0x43,
+       0xE2, 0x88, 0x87, 0x43, 0xE2, 0x88, 0x91, 0x43,
+       0xE2, 0x88, 0x92, 0x43, 0xE2, 0x94, 0x82, 0x43,
+       0xE2, 0x96, 0xA0, 0x43, 0xE2, 0x97, 0x8B, 0x43,
+       0xE2, 0xA6, 0x85, 0x43, 0xE2, 0xA6, 0x86, 0x43,
+       // Bytes 480 - 4bf
+       0xE2, 0xB5, 0xA1, 0x43, 0xE3, 0x80, 0x81, 0x43,
+       0xE3, 0x80, 0x82, 0x43, 0xE3, 0x80, 0x88, 0x43,
+       0xE3, 0x80, 0x89, 0x43, 0xE3, 0x80, 0x8A, 0x43,
+       0xE3, 0x80, 0x8B, 0x43, 0xE3, 0x80, 0x8C, 0x43,
+       0xE3, 0x80, 0x8D, 0x43, 0xE3, 0x80, 0x8E, 0x43,
+       0xE3, 0x80, 0x8F, 0x43, 0xE3, 0x80, 0x90, 0x43,
+       0xE3, 0x80, 0x91, 0x43, 0xE3, 0x80, 0x92, 0x43,
+       0xE3, 0x80, 0x94, 0x43, 0xE3, 0x80, 0x95, 0x43,
+       // Bytes 4c0 - 4ff
+       0xE3, 0x80, 0x96, 0x43, 0xE3, 0x80, 0x97, 0x43,
+       0xE3, 0x82, 0xA1, 0x43, 0xE3, 0x82, 0xA2, 0x43,
+       0xE3, 0x82, 0xA3, 0x43, 0xE3, 0x82, 0xA4, 0x43,
+       0xE3, 0x82, 0xA5, 0x43, 0xE3, 0x82, 0xA6, 0x43,
+       0xE3, 0x82, 0xA7, 0x43, 0xE3, 0x82, 0xA8, 0x43,
+       0xE3, 0x82, 0xA9, 0x43, 0xE3, 0x82, 0xAA, 0x43,
+       0xE3, 0x82, 0xAB, 0x43, 0xE3, 0x82, 0xAD, 0x43,
+       0xE3, 0x82, 0xAF, 0x43, 0xE3, 0x82, 0xB1, 0x43,
+       // Bytes 500 - 53f
+       0xE3, 0x82, 0xB3, 0x43, 0xE3, 0x82, 0xB5, 0x43,
+       0xE3, 0x82, 0xB7, 0x43, 0xE3, 0x82, 0xB9, 0x43,
+       0xE3, 0x82, 0xBB, 0x43, 0xE3, 0x82, 0xBD, 0x43,
+       0xE3, 0x82, 0xBF, 0x43, 0xE3, 0x83, 0x81, 0x43,
+       0xE3, 0x83, 0x83, 0x43, 0xE3, 0x83, 0x84, 0x43,
+       0xE3, 0x83, 0x86, 0x43, 0xE3, 0x83, 0x88, 0x43,
+       0xE3, 0x83, 0x8A, 0x43, 0xE3, 0x83, 0x8B, 0x43,
+       0xE3, 0x83, 0x8C, 0x43, 0xE3, 0x83, 0x8D, 0x43,
+       // Bytes 540 - 57f
+       0xE3, 0x83, 0x8E, 0x43, 0xE3, 0x83, 0x8F, 0x43,
+       0xE3, 0x83, 0x92, 0x43, 0xE3, 0x83, 0x95, 0x43,
+       0xE3, 0x83, 0x98, 0x43, 0xE3, 0x83, 0x9B, 0x43,
+       0xE3, 0x83, 0x9E, 0x43, 0xE3, 0x83, 0x9F, 0x43,
+       0xE3, 0x83, 0xA0, 0x43, 0xE3, 0x83, 0xA1, 0x43,
+       0xE3, 0x83, 0xA2, 0x43, 0xE3, 0x83, 0xA3, 0x43,
+       0xE3, 0x83, 0xA4, 0x43, 0xE3, 0x83, 0xA5, 0x43,
+       0xE3, 0x83, 0xA6, 0x43, 0xE3, 0x83, 0xA7, 0x43,
+       // Bytes 580 - 5bf
+       0xE3, 0x83, 0xA8, 0x43, 0xE3, 0x83, 0xA9, 0x43,
+       0xE3, 0x83, 0xAA, 0x43, 0xE3, 0x83, 0xAB, 0x43,
+       0xE3, 0x83, 0xAC, 0x43, 0xE3, 0x83, 0xAD, 0x43,
+       0xE3, 0x83, 0xAF, 0x43, 0xE3, 0x83, 0xB0, 0x43,
+       0xE3, 0x83, 0xB1, 0x43, 0xE3, 0x83, 0xB2, 0x43,
+       0xE3, 0x83, 0xB3, 0x43, 0xE3, 0x83, 0xBB, 0x43,
+       0xE3, 0x83, 0xBC, 0x43, 0xE3, 0x92, 0x9E, 0x43,
+       0xE3, 0x92, 0xB9, 0x43, 0xE3, 0x92, 0xBB, 0x43,
+       // Bytes 5c0 - 5ff
+       0xE3, 0x93, 0x9F, 0x43, 0xE3, 0x94, 0x95, 0x43,
+       0xE3, 0x9B, 0xAE, 0x43, 0xE3, 0x9B, 0xBC, 0x43,
+       0xE3, 0x9E, 0x81, 0x43, 0xE3, 0xA0, 0xAF, 0x43,
+       0xE3, 0xA1, 0xA2, 0x43, 0xE3, 0xA1, 0xBC, 0x43,
+       0xE3, 0xA3, 0x87, 0x43, 0xE3, 0xA3, 0xA3, 0x43,
+       0xE3, 0xA4, 0x9C, 0x43, 0xE3, 0xA4, 0xBA, 0x43,
+       0xE3, 0xA8, 0xAE, 0x43, 0xE3, 0xA9, 0xAC, 0x43,
+       0xE3, 0xAB, 0xA4, 0x43, 0xE3, 0xAC, 0x88, 0x43,
+       // Bytes 600 - 63f
+       0xE3, 0xAC, 0x99, 0x43, 0xE3, 0xAD, 0x89, 0x43,
+       0xE3, 0xAE, 0x9D, 0x43, 0xE3, 0xB0, 0x98, 0x43,
+       0xE3, 0xB1, 0x8E, 0x43, 0xE3, 0xB4, 0xB3, 0x43,
+       0xE3, 0xB6, 0x96, 0x43, 0xE3, 0xBA, 0xAC, 0x43,
+       0xE3, 0xBA, 0xB8, 0x43, 0xE3, 0xBC, 0x9B, 0x43,
+       0xE3, 0xBF, 0xBC, 0x43, 0xE4, 0x80, 0x88, 0x43,
+       0xE4, 0x80, 0x98, 0x43, 0xE4, 0x80, 0xB9, 0x43,
+       0xE4, 0x81, 0x86, 0x43, 0xE4, 0x82, 0x96, 0x43,
+       // Bytes 640 - 67f
+       0xE4, 0x83, 0xA3, 0x43, 0xE4, 0x84, 0xAF, 0x43,
+       0xE4, 0x88, 0x82, 0x43, 0xE4, 0x88, 0xA7, 0x43,
+       0xE4, 0x8A, 0xA0, 0x43, 0xE4, 0x8C, 0x81, 0x43,
+       0xE4, 0x8C, 0xB4, 0x43, 0xE4, 0x8D, 0x99, 0x43,
+       0xE4, 0x8F, 0x95, 0x43, 0xE4, 0x8F, 0x99, 0x43,
+       0xE4, 0x90, 0x8B, 0x43, 0xE4, 0x91, 0xAB, 0x43,
+       0xE4, 0x94, 0xAB, 0x43, 0xE4, 0x95, 0x9D, 0x43,
+       0xE4, 0x95, 0xA1, 0x43, 0xE4, 0x95, 0xAB, 0x43,
+       // Bytes 680 - 6bf
+       0xE4, 0x97, 0x97, 0x43, 0xE4, 0x97, 0xB9, 0x43,
+       0xE4, 0x98, 0xB5, 0x43, 0xE4, 0x9A, 0xBE, 0x43,
+       0xE4, 0x9B, 0x87, 0x43, 0xE4, 0xA6, 0x95, 0x43,
+       0xE4, 0xA7, 0xA6, 0x43, 0xE4, 0xA9, 0xAE, 0x43,
+       0xE4, 0xA9, 0xB6, 0x43, 0xE4, 0xAA, 0xB2, 0x43,
+       0xE4, 0xAC, 0xB3, 0x43, 0xE4, 0xAF, 0x8E, 0x43,
+       0xE4, 0xB3, 0x8E, 0x43, 0xE4, 0xB3, 0xAD, 0x43,
+       0xE4, 0xB3, 0xB8, 0x43, 0xE4, 0xB5, 0x96, 0x43,
+       // Bytes 6c0 - 6ff
+       0xE4, 0xB8, 0x80, 0x43, 0xE4, 0xB8, 0x81, 0x43,
+       0xE4, 0xB8, 0x83, 0x43, 0xE4, 0xB8, 0x89, 0x43,
+       0xE4, 0xB8, 0x8A, 0x43, 0xE4, 0xB8, 0x8B, 0x43,
+       0xE4, 0xB8, 0x8D, 0x43, 0xE4, 0xB8, 0x99, 0x43,
+       0xE4, 0xB8, 0xA6, 0x43, 0xE4, 0xB8, 0xA8, 0x43,
+       0xE4, 0xB8, 0xAD, 0x43, 0xE4, 0xB8, 0xB2, 0x43,
+       0xE4, 0xB8, 0xB6, 0x43, 0xE4, 0xB8, 0xB8, 0x43,
+       0xE4, 0xB8, 0xB9, 0x43, 0xE4, 0xB8, 0xBD, 0x43,
+       // Bytes 700 - 73f
+       0xE4, 0xB8, 0xBF, 0x43, 0xE4, 0xB9, 0x81, 0x43,
+       0xE4, 0xB9, 0x99, 0x43, 0xE4, 0xB9, 0x9D, 0x43,
+       0xE4, 0xBA, 0x82, 0x43, 0xE4, 0xBA, 0x85, 0x43,
+       0xE4, 0xBA, 0x86, 0x43, 0xE4, 0xBA, 0x8C, 0x43,
+       0xE4, 0xBA, 0x94, 0x43, 0xE4, 0xBA, 0xA0, 0x43,
+       0xE4, 0xBA, 0xA4, 0x43, 0xE4, 0xBA, 0xAE, 0x43,
+       0xE4, 0xBA, 0xBA, 0x43, 0xE4, 0xBB, 0x80, 0x43,
+       0xE4, 0xBB, 0x8C, 0x43, 0xE4, 0xBB, 0xA4, 0x43,
+       // Bytes 740 - 77f
+       0xE4, 0xBC, 0x81, 0x43, 0xE4, 0xBC, 0x91, 0x43,
+       0xE4, 0xBD, 0xA0, 0x43, 0xE4, 0xBE, 0x80, 0x43,
+       0xE4, 0xBE, 0x86, 0x43, 0xE4, 0xBE, 0x8B, 0x43,
+       0xE4, 0xBE, 0xAE, 0x43, 0xE4, 0xBE, 0xBB, 0x43,
+       0xE4, 0xBE, 0xBF, 0x43, 0xE5, 0x80, 0x82, 0x43,
+       0xE5, 0x80, 0xAB, 0x43, 0xE5, 0x81, 0xBA, 0x43,
+       0xE5, 0x82, 0x99, 0x43, 0xE5, 0x83, 0x8F, 0x43,
+       0xE5, 0x83, 0x9A, 0x43, 0xE5, 0x83, 0xA7, 0x43,
+       // Bytes 780 - 7bf
+       0xE5, 0x84, 0xAA, 0x43, 0xE5, 0x84, 0xBF, 0x43,
+       0xE5, 0x85, 0x80, 0x43, 0xE5, 0x85, 0x85, 0x43,
+       0xE5, 0x85, 0x8D, 0x43, 0xE5, 0x85, 0x94, 0x43,
+       0xE5, 0x85, 0xA4, 0x43, 0xE5, 0x85, 0xA5, 0x43,
+       0xE5, 0x85, 0xA7, 0x43, 0xE5, 0x85, 0xA8, 0x43,
+       0xE5, 0x85, 0xA9, 0x43, 0xE5, 0x85, 0xAB, 0x43,
+       0xE5, 0x85, 0xAD, 0x43, 0xE5, 0x85, 0xB7, 0x43,
+       0xE5, 0x86, 0x80, 0x43, 0xE5, 0x86, 0x82, 0x43,
+       // Bytes 7c0 - 7ff
+       0xE5, 0x86, 0x8D, 0x43, 0xE5, 0x86, 0x92, 0x43,
+       0xE5, 0x86, 0x95, 0x43, 0xE5, 0x86, 0x96, 0x43,
+       0xE5, 0x86, 0x97, 0x43, 0xE5, 0x86, 0x99, 0x43,
+       0xE5, 0x86, 0xA4, 0x43, 0xE5, 0x86, 0xAB, 0x43,
+       0xE5, 0x86, 0xAC, 0x43, 0xE5, 0x86, 0xB5, 0x43,
+       0xE5, 0x86, 0xB7, 0x43, 0xE5, 0x87, 0x89, 0x43,
+       0xE5, 0x87, 0x8C, 0x43, 0xE5, 0x87, 0x9C, 0x43,
+       0xE5, 0x87, 0x9E, 0x43, 0xE5, 0x87, 0xA0, 0x43,
+       // Bytes 800 - 83f
+       0xE5, 0x87, 0xB5, 0x43, 0xE5, 0x88, 0x80, 0x43,
+       0xE5, 0x88, 0x83, 0x43, 0xE5, 0x88, 0x87, 0x43,
+       0xE5, 0x88, 0x97, 0x43, 0xE5, 0x88, 0x9D, 0x43,
+       0xE5, 0x88, 0xA9, 0x43, 0xE5, 0x88, 0xBA, 0x43,
+       0xE5, 0x88, 0xBB, 0x43, 0xE5, 0x89, 0x86, 0x43,
+       0xE5, 0x89, 0x8D, 0x43, 0xE5, 0x89, 0xB2, 0x43,
+       0xE5, 0x89, 0xB7, 0x43, 0xE5, 0x8A, 0x89, 0x43,
+       0xE5, 0x8A, 0x9B, 0x43, 0xE5, 0x8A, 0xA3, 0x43,
+       // Bytes 840 - 87f
+       0xE5, 0x8A, 0xB3, 0x43, 0xE5, 0x8A, 0xB4, 0x43,
+       0xE5, 0x8B, 0x87, 0x43, 0xE5, 0x8B, 0x89, 0x43,
+       0xE5, 0x8B, 0x92, 0x43, 0xE5, 0x8B, 0x9E, 0x43,
+       0xE5, 0x8B, 0xA4, 0x43, 0xE5, 0x8B, 0xB5, 0x43,
+       0xE5, 0x8B, 0xB9, 0x43, 0xE5, 0x8B, 0xBA, 0x43,
+       0xE5, 0x8C, 0x85, 0x43, 0xE5, 0x8C, 0x86, 0x43,
+       0xE5, 0x8C, 0x95, 0x43, 0xE5, 0x8C, 0x97, 0x43,
+       0xE5, 0x8C, 0x9A, 0x43, 0xE5, 0x8C, 0xB8, 0x43,
+       // Bytes 880 - 8bf
+       0xE5, 0x8C, 0xBB, 0x43, 0xE5, 0x8C, 0xBF, 0x43,
+       0xE5, 0x8D, 0x81, 0x43, 0xE5, 0x8D, 0x84, 0x43,
+       0xE5, 0x8D, 0x85, 0x43, 0xE5, 0x8D, 0x89, 0x43,
+       0xE5, 0x8D, 0x91, 0x43, 0xE5, 0x8D, 0x94, 0x43,
+       0xE5, 0x8D, 0x9A, 0x43, 0xE5, 0x8D, 0x9C, 0x43,
+       0xE5, 0x8D, 0xA9, 0x43, 0xE5, 0x8D, 0xB0, 0x43,
+       0xE5, 0x8D, 0xB3, 0x43, 0xE5, 0x8D, 0xB5, 0x43,
+       0xE5, 0x8D, 0xBD, 0x43, 0xE5, 0x8D, 0xBF, 0x43,
+       // Bytes 8c0 - 8ff
+       0xE5, 0x8E, 0x82, 0x43, 0xE5, 0x8E, 0xB6, 0x43,
+       0xE5, 0x8F, 0x83, 0x43, 0xE5, 0x8F, 0x88, 0x43,
+       0xE5, 0x8F, 0x8A, 0x43, 0xE5, 0x8F, 0x8C, 0x43,
+       0xE5, 0x8F, 0x9F, 0x43, 0xE5, 0x8F, 0xA3, 0x43,
+       0xE5, 0x8F, 0xA5, 0x43, 0xE5, 0x8F, 0xAB, 0x43,
+       0xE5, 0x8F, 0xAF, 0x43, 0xE5, 0x8F, 0xB1, 0x43,
+       0xE5, 0x8F, 0xB3, 0x43, 0xE5, 0x90, 0x86, 0x43,
+       0xE5, 0x90, 0x88, 0x43, 0xE5, 0x90, 0x8D, 0x43,
+       // Bytes 900 - 93f
+       0xE5, 0x90, 0x8F, 0x43, 0xE5, 0x90, 0x9D, 0x43,
+       0xE5, 0x90, 0xB8, 0x43, 0xE5, 0x90, 0xB9, 0x43,
+       0xE5, 0x91, 0x82, 0x43, 0xE5, 0x91, 0x88, 0x43,
+       0xE5, 0x91, 0xA8, 0x43, 0xE5, 0x92, 0x9E, 0x43,
+       0xE5, 0x92, 0xA2, 0x43, 0xE5, 0x92, 0xBD, 0x43,
+       0xE5, 0x93, 0xB6, 0x43, 0xE5, 0x94, 0x90, 0x43,
+       0xE5, 0x95, 0x8F, 0x43, 0xE5, 0x95, 0x93, 0x43,
+       0xE5, 0x95, 0x95, 0x43, 0xE5, 0x95, 0xA3, 0x43,
+       // Bytes 940 - 97f
+       0xE5, 0x96, 0x84, 0x43, 0xE5, 0x96, 0x87, 0x43,
+       0xE5, 0x96, 0x99, 0x43, 0xE5, 0x96, 0x9D, 0x43,
+       0xE5, 0x96, 0xAB, 0x43, 0xE5, 0x96, 0xB3, 0x43,
+       0xE5, 0x96, 0xB6, 0x43, 0xE5, 0x97, 0x80, 0x43,
+       0xE5, 0x97, 0x82, 0x43, 0xE5, 0x97, 0xA2, 0x43,
+       0xE5, 0x98, 0x86, 0x43, 0xE5, 0x99, 0x91, 0x43,
+       0xE5, 0x99, 0xA8, 0x43, 0xE5, 0x99, 0xB4, 0x43,
+       0xE5, 0x9B, 0x97, 0x43, 0xE5, 0x9B, 0x9B, 0x43,
+       // Bytes 980 - 9bf
+       0xE5, 0x9B, 0xB9, 0x43, 0xE5, 0x9C, 0x96, 0x43,
+       0xE5, 0x9C, 0x97, 0x43, 0xE5, 0x9C, 0x9F, 0x43,
+       0xE5, 0x9C, 0xB0, 0x43, 0xE5, 0x9E, 0x8B, 0x43,
+       0xE5, 0x9F, 0x8E, 0x43, 0xE5, 0x9F, 0xB4, 0x43,
+       0xE5, 0xA0, 0x8D, 0x43, 0xE5, 0xA0, 0xB1, 0x43,
+       0xE5, 0xA0, 0xB2, 0x43, 0xE5, 0xA1, 0x80, 0x43,
+       0xE5, 0xA1, 0x9A, 0x43, 0xE5, 0xA1, 0x9E, 0x43,
+       0xE5, 0xA2, 0xA8, 0x43, 0xE5, 0xA2, 0xAC, 0x43,
+       // Bytes 9c0 - 9ff
+       0xE5, 0xA2, 0xB3, 0x43, 0xE5, 0xA3, 0x98, 0x43,
+       0xE5, 0xA3, 0x9F, 0x43, 0xE5, 0xA3, 0xAB, 0x43,
+       0xE5, 0xA3, 0xAE, 0x43, 0xE5, 0xA3, 0xB0, 0x43,
+       0xE5, 0xA3, 0xB2, 0x43, 0xE5, 0xA3, 0xB7, 0x43,
+       0xE5, 0xA4, 0x82, 0x43, 0xE5, 0xA4, 0x86, 0x43,
+       0xE5, 0xA4, 0x8A, 0x43, 0xE5, 0xA4, 0x95, 0x43,
+       0xE5, 0xA4, 0x9A, 0x43, 0xE5, 0xA4, 0x9C, 0x43,
+       0xE5, 0xA4, 0xA2, 0x43, 0xE5, 0xA4, 0xA7, 0x43,
+       // Bytes a00 - a3f
+       0xE5, 0xA4, 0xA9, 0x43, 0xE5, 0xA5, 0x84, 0x43,
+       0xE5, 0xA5, 0x88, 0x43, 0xE5, 0xA5, 0x91, 0x43,
+       0xE5, 0xA5, 0x94, 0x43, 0xE5, 0xA5, 0xA2, 0x43,
+       0xE5, 0xA5, 0xB3, 0x43, 0xE5, 0xA7, 0x98, 0x43,
+       0xE5, 0xA7, 0xAC, 0x43, 0xE5, 0xA8, 0x9B, 0x43,
+       0xE5, 0xA8, 0xA7, 0x43, 0xE5, 0xA9, 0xA2, 0x43,
+       0xE5, 0xA9, 0xA6, 0x43, 0xE5, 0xAA, 0xB5, 0x43,
+       0xE5, 0xAC, 0x88, 0x43, 0xE5, 0xAC, 0xA8, 0x43,
+       // Bytes a40 - a7f
+       0xE5, 0xAC, 0xBE, 0x43, 0xE5, 0xAD, 0x90, 0x43,
+       0xE5, 0xAD, 0x97, 0x43, 0xE5, 0xAD, 0xA6, 0x43,
+       0xE5, 0xAE, 0x80, 0x43, 0xE5, 0xAE, 0x85, 0x43,
+       0xE5, 0xAE, 0x97, 0x43, 0xE5, 0xAF, 0x83, 0x43,
+       0xE5, 0xAF, 0x98, 0x43, 0xE5, 0xAF, 0xA7, 0x43,
+       0xE5, 0xAF, 0xAE, 0x43, 0xE5, 0xAF, 0xB3, 0x43,
+       0xE5, 0xAF, 0xB8, 0x43, 0xE5, 0xAF, 0xBF, 0x43,
+       0xE5, 0xB0, 0x86, 0x43, 0xE5, 0xB0, 0x8F, 0x43,
+       // Bytes a80 - abf
+       0xE5, 0xB0, 0xA2, 0x43, 0xE5, 0xB0, 0xB8, 0x43,
+       0xE5, 0xB0, 0xBF, 0x43, 0xE5, 0xB1, 0xA0, 0x43,
+       0xE5, 0xB1, 0xA2, 0x43, 0xE5, 0xB1, 0xA4, 0x43,
+       0xE5, 0xB1, 0xA5, 0x43, 0xE5, 0xB1, 0xAE, 0x43,
+       0xE5, 0xB1, 0xB1, 0x43, 0xE5, 0xB2, 0x8D, 0x43,
+       0xE5, 0xB3, 0x80, 0x43, 0xE5, 0xB4, 0x99, 0x43,
+       0xE5, 0xB5, 0x83, 0x43, 0xE5, 0xB5, 0x90, 0x43,
+       0xE5, 0xB5, 0xAB, 0x43, 0xE5, 0xB5, 0xAE, 0x43,
+       // Bytes ac0 - aff
+       0xE5, 0xB5, 0xBC, 0x43, 0xE5, 0xB6, 0xB2, 0x43,
+       0xE5, 0xB6, 0xBA, 0x43, 0xE5, 0xB7, 0x9B, 0x43,
+       0xE5, 0xB7, 0xA1, 0x43, 0xE5, 0xB7, 0xA2, 0x43,
+       0xE5, 0xB7, 0xA5, 0x43, 0xE5, 0xB7, 0xA6, 0x43,
+       0xE5, 0xB7, 0xB1, 0x43, 0xE5, 0xB7, 0xBD, 0x43,
+       0xE5, 0xB7, 0xBE, 0x43, 0xE5, 0xB8, 0xA8, 0x43,
+       0xE5, 0xB8, 0xBD, 0x43, 0xE5, 0xB9, 0xA9, 0x43,
+       0xE5, 0xB9, 0xB2, 0x43, 0xE5, 0xB9, 0xB4, 0x43,
+       // Bytes b00 - b3f
+       0xE5, 0xB9, 0xBA, 0x43, 0xE5, 0xB9, 0xBC, 0x43,
+       0xE5, 0xB9, 0xBF, 0x43, 0xE5, 0xBA, 0xA6, 0x43,
+       0xE5, 0xBA, 0xB0, 0x43, 0xE5, 0xBA, 0xB3, 0x43,
+       0xE5, 0xBA, 0xB6, 0x43, 0xE5, 0xBB, 0x89, 0x43,
+       0xE5, 0xBB, 0x8A, 0x43, 0xE5, 0xBB, 0x92, 0x43,
+       0xE5, 0xBB, 0x93, 0x43, 0xE5, 0xBB, 0x99, 0x43,
+       0xE5, 0xBB, 0xAC, 0x43, 0xE5, 0xBB, 0xB4, 0x43,
+       0xE5, 0xBB, 0xBE, 0x43, 0xE5, 0xBC, 0x84, 0x43,
+       // Bytes b40 - b7f
+       0xE5, 0xBC, 0x8B, 0x43, 0xE5, 0xBC, 0x93, 0x43,
+       0xE5, 0xBC, 0xA2, 0x43, 0xE5, 0xBD, 0x90, 0x43,
+       0xE5, 0xBD, 0x93, 0x43, 0xE5, 0xBD, 0xA1, 0x43,
+       0xE5, 0xBD, 0xA2, 0x43, 0xE5, 0xBD, 0xA9, 0x43,
+       0xE5, 0xBD, 0xAB, 0x43, 0xE5, 0xBD, 0xB3, 0x43,
+       0xE5, 0xBE, 0x8B, 0x43, 0xE5, 0xBE, 0x8C, 0x43,
+       0xE5, 0xBE, 0x97, 0x43, 0xE5, 0xBE, 0x9A, 0x43,
+       0xE5, 0xBE, 0xA9, 0x43, 0xE5, 0xBE, 0xAD, 0x43,
+       // Bytes b80 - bbf
+       0xE5, 0xBF, 0x83, 0x43, 0xE5, 0xBF, 0x8D, 0x43,
+       0xE5, 0xBF, 0x97, 0x43, 0xE5, 0xBF, 0xB5, 0x43,
+       0xE5, 0xBF, 0xB9, 0x43, 0xE6, 0x80, 0x92, 0x43,
+       0xE6, 0x80, 0x9C, 0x43, 0xE6, 0x81, 0xB5, 0x43,
+       0xE6, 0x82, 0x81, 0x43, 0xE6, 0x82, 0x94, 0x43,
+       0xE6, 0x83, 0x87, 0x43, 0xE6, 0x83, 0x98, 0x43,
+       0xE6, 0x83, 0xA1, 0x43, 0xE6, 0x84, 0x88, 0x43,
+       0xE6, 0x85, 0x84, 0x43, 0xE6, 0x85, 0x88, 0x43,
+       // Bytes bc0 - bff
+       0xE6, 0x85, 0x8C, 0x43, 0xE6, 0x85, 0x8E, 0x43,
+       0xE6, 0x85, 0xA0, 0x43, 0xE6, 0x85, 0xA8, 0x43,
+       0xE6, 0x85, 0xBA, 0x43, 0xE6, 0x86, 0x8E, 0x43,
+       0xE6, 0x86, 0x90, 0x43, 0xE6, 0x86, 0xA4, 0x43,
+       0xE6, 0x86, 0xAF, 0x43, 0xE6, 0x86, 0xB2, 0x43,
+       0xE6, 0x87, 0x9E, 0x43, 0xE6, 0x87, 0xB2, 0x43,
+       0xE6, 0x87, 0xB6, 0x43, 0xE6, 0x88, 0x80, 0x43,
+       0xE6, 0x88, 0x88, 0x43, 0xE6, 0x88, 0x90, 0x43,
+       // Bytes c00 - c3f
+       0xE6, 0x88, 0x9B, 0x43, 0xE6, 0x88, 0xAE, 0x43,
+       0xE6, 0x88, 0xB4, 0x43, 0xE6, 0x88, 0xB6, 0x43,
+       0xE6, 0x89, 0x8B, 0x43, 0xE6, 0x89, 0x93, 0x43,
+       0xE6, 0x89, 0x9D, 0x43, 0xE6, 0x8A, 0x95, 0x43,
+       0xE6, 0x8A, 0xB1, 0x43, 0xE6, 0x8B, 0x89, 0x43,
+       0xE6, 0x8B, 0x8F, 0x43, 0xE6, 0x8B, 0x93, 0x43,
+       0xE6, 0x8B, 0x94, 0x43, 0xE6, 0x8B, 0xBC, 0x43,
+       0xE6, 0x8B, 0xBE, 0x43, 0xE6, 0x8C, 0x87, 0x43,
+       // Bytes c40 - c7f
+       0xE6, 0x8C, 0xBD, 0x43, 0xE6, 0x8D, 0x90, 0x43,
+       0xE6, 0x8D, 0x95, 0x43, 0xE6, 0x8D, 0xA8, 0x43,
+       0xE6, 0x8D, 0xBB, 0x43, 0xE6, 0x8E, 0x83, 0x43,
+       0xE6, 0x8E, 0xA0, 0x43, 0xE6, 0x8E, 0xA9, 0x43,
+       0xE6, 0x8F, 0x84, 0x43, 0xE6, 0x8F, 0x85, 0x43,
+       0xE6, 0x8F, 0xA4, 0x43, 0xE6, 0x90, 0x9C, 0x43,
+       0xE6, 0x90, 0xA2, 0x43, 0xE6, 0x91, 0x92, 0x43,
+       0xE6, 0x91, 0xA9, 0x43, 0xE6, 0x91, 0xB7, 0x43,
+       // Bytes c80 - cbf
+       0xE6, 0x91, 0xBE, 0x43, 0xE6, 0x92, 0x9A, 0x43,
+       0xE6, 0x92, 0x9D, 0x43, 0xE6, 0x93, 0x84, 0x43,
+       0xE6, 0x94, 0xAF, 0x43, 0xE6, 0x94, 0xB4, 0x43,
+       0xE6, 0x95, 0x8F, 0x43, 0xE6, 0x95, 0x96, 0x43,
+       0xE6, 0x95, 0xAC, 0x43, 0xE6, 0x95, 0xB8, 0x43,
+       0xE6, 0x96, 0x87, 0x43, 0xE6, 0x96, 0x97, 0x43,
+       0xE6, 0x96, 0x99, 0x43, 0xE6, 0x96, 0xA4, 0x43,
+       0xE6, 0x96, 0xB0, 0x43, 0xE6, 0x96, 0xB9, 0x43,
+       // Bytes cc0 - cff
+       0xE6, 0x97, 0x85, 0x43, 0xE6, 0x97, 0xA0, 0x43,
+       0xE6, 0x97, 0xA2, 0x43, 0xE6, 0x97, 0xA3, 0x43,
+       0xE6, 0x97, 0xA5, 0x43, 0xE6, 0x98, 0x93, 0x43,
+       0xE6, 0x98, 0xA0, 0x43, 0xE6, 0x99, 0x89, 0x43,
+       0xE6, 0x99, 0xB4, 0x43, 0xE6, 0x9A, 0x88, 0x43,
+       0xE6, 0x9A, 0x91, 0x43, 0xE6, 0x9A, 0x9C, 0x43,
+       0xE6, 0x9A, 0xB4, 0x43, 0xE6, 0x9B, 0x86, 0x43,
+       0xE6, 0x9B, 0xB0, 0x43, 0xE6, 0x9B, 0xB4, 0x43,
+       // Bytes d00 - d3f
+       0xE6, 0x9B, 0xB8, 0x43, 0xE6, 0x9C, 0x80, 0x43,
+       0xE6, 0x9C, 0x88, 0x43, 0xE6, 0x9C, 0x89, 0x43,
+       0xE6, 0x9C, 0x97, 0x43, 0xE6, 0x9C, 0x9B, 0x43,
+       0xE6, 0x9C, 0xA1, 0x43, 0xE6, 0x9C, 0xA8, 0x43,
+       0xE6, 0x9D, 0x8E, 0x43, 0xE6, 0x9D, 0x93, 0x43,
+       0xE6, 0x9D, 0x96, 0x43, 0xE6, 0x9D, 0x9E, 0x43,
+       0xE6, 0x9D, 0xBB, 0x43, 0xE6, 0x9E, 0x85, 0x43,
+       0xE6, 0x9E, 0x97, 0x43, 0xE6, 0x9F, 0xB3, 0x43,
+       // Bytes d40 - d7f
+       0xE6, 0x9F, 0xBA, 0x43, 0xE6, 0xA0, 0x97, 0x43,
+       0xE6, 0xA0, 0x9F, 0x43, 0xE6, 0xA0, 0xAA, 0x43,
+       0xE6, 0xA1, 0x92, 0x43, 0xE6, 0xA2, 0x81, 0x43,
+       0xE6, 0xA2, 0x85, 0x43, 0xE6, 0xA2, 0x8E, 0x43,
+       0xE6, 0xA2, 0xA8, 0x43, 0xE6, 0xA4, 0x94, 0x43,
+       0xE6, 0xA5, 0x82, 0x43, 0xE6, 0xA6, 0xA3, 0x43,
+       0xE6, 0xA7, 0xAA, 0x43, 0xE6, 0xA8, 0x82, 0x43,
+       0xE6, 0xA8, 0x93, 0x43, 0xE6, 0xAA, 0xA8, 0x43,
+       // Bytes d80 - dbf
+       0xE6, 0xAB, 0x93, 0x43, 0xE6, 0xAB, 0x9B, 0x43,
+       0xE6, 0xAC, 0x84, 0x43, 0xE6, 0xAC, 0xA0, 0x43,
+       0xE6, 0xAC, 0xA1, 0x43, 0xE6, 0xAD, 0x94, 0x43,
+       0xE6, 0xAD, 0xA2, 0x43, 0xE6, 0xAD, 0xA3, 0x43,
+       0xE6, 0xAD, 0xB2, 0x43, 0xE6, 0xAD, 0xB7, 0x43,
+       0xE6, 0xAD, 0xB9, 0x43, 0xE6, 0xAE, 0x9F, 0x43,
+       0xE6, 0xAE, 0xAE, 0x43, 0xE6, 0xAE, 0xB3, 0x43,
+       0xE6, 0xAE, 0xBA, 0x43, 0xE6, 0xAE, 0xBB, 0x43,
+       // Bytes dc0 - dff
+       0xE6, 0xAF, 0x8B, 0x43, 0xE6, 0xAF, 0x8D, 0x43,
+       0xE6, 0xAF, 0x94, 0x43, 0xE6, 0xAF, 0x9B, 0x43,
+       0xE6, 0xB0, 0x8F, 0x43, 0xE6, 0xB0, 0x94, 0x43,
+       0xE6, 0xB0, 0xB4, 0x43, 0xE6, 0xB1, 0x8E, 0x43,
+       0xE6, 0xB1, 0xA7, 0x43, 0xE6, 0xB2, 0x88, 0x43,
+       0xE6, 0xB2, 0xBF, 0x43, 0xE6, 0xB3, 0x8C, 0x43,
+       0xE6, 0xB3, 0x8D, 0x43, 0xE6, 0xB3, 0xA5, 0x43,
+       0xE6, 0xB3, 0xA8, 0x43, 0xE6, 0xB4, 0x96, 0x43,
+       // Bytes e00 - e3f
+       0xE6, 0xB4, 0x9B, 0x43, 0xE6, 0xB4, 0x9E, 0x43,
+       0xE6, 0xB4, 0xB4, 0x43, 0xE6, 0xB4, 0xBE, 0x43,
+       0xE6, 0xB5, 0x81, 0x43, 0xE6, 0xB5, 0xA9, 0x43,
+       0xE6, 0xB5, 0xAA, 0x43, 0xE6, 0xB5, 0xB7, 0x43,
+       0xE6, 0xB5, 0xB8, 0x43, 0xE6, 0xB6, 0x85, 0x43,
+       0xE6, 0xB7, 0x8B, 0x43, 0xE6, 0xB7, 0x9A, 0x43,
+       0xE6, 0xB7, 0xAA, 0x43, 0xE6, 0xB7, 0xB9, 0x43,
+       0xE6, 0xB8, 0x9A, 0x43, 0xE6, 0xB8, 0xAF, 0x43,
+       // Bytes e40 - e7f
+       0xE6, 0xB9, 0xAE, 0x43, 0xE6, 0xBA, 0x80, 0x43,
+       0xE6, 0xBA, 0x9C, 0x43, 0xE6, 0xBA, 0xBA, 0x43,
+       0xE6, 0xBB, 0x87, 0x43, 0xE6, 0xBB, 0x8B, 0x43,
+       0xE6, 0xBB, 0x91, 0x43, 0xE6, 0xBB, 0x9B, 0x43,
+       0xE6, 0xBC, 0x8F, 0x43, 0xE6, 0xBC, 0x94, 0x43,
+       0xE6, 0xBC, 0xA2, 0x43, 0xE6, 0xBC, 0xA3, 0x43,
+       0xE6, 0xBD, 0xAE, 0x43, 0xE6, 0xBF, 0x86, 0x43,
+       0xE6, 0xBF, 0xAB, 0x43, 0xE6, 0xBF, 0xBE, 0x43,
+       // Bytes e80 - ebf
+       0xE7, 0x80, 0x9B, 0x43, 0xE7, 0x80, 0x9E, 0x43,
+       0xE7, 0x80, 0xB9, 0x43, 0xE7, 0x81, 0x8A, 0x43,
+       0xE7, 0x81, 0xAB, 0x43, 0xE7, 0x81, 0xB0, 0x43,
+       0xE7, 0x81, 0xB7, 0x43, 0xE7, 0x81, 0xBD, 0x43,
+       0xE7, 0x82, 0x99, 0x43, 0xE7, 0x82, 0xAD, 0x43,
+       0xE7, 0x83, 0x88, 0x43, 0xE7, 0x83, 0x99, 0x43,
+       0xE7, 0x84, 0xA1, 0x43, 0xE7, 0x85, 0x85, 0x43,
+       0xE7, 0x85, 0x89, 0x43, 0xE7, 0x85, 0xAE, 0x43,
+       // Bytes ec0 - eff
+       0xE7, 0x86, 0x9C, 0x43, 0xE7, 0x87, 0x8E, 0x43,
+       0xE7, 0x87, 0x90, 0x43, 0xE7, 0x88, 0x90, 0x43,
+       0xE7, 0x88, 0x9B, 0x43, 0xE7, 0x88, 0xA8, 0x43,
+       0xE7, 0x88, 0xAA, 0x43, 0xE7, 0x88, 0xAB, 0x43,
+       0xE7, 0x88, 0xB5, 0x43, 0xE7, 0x88, 0xB6, 0x43,
+       0xE7, 0x88, 0xBB, 0x43, 0xE7, 0x88, 0xBF, 0x43,
+       0xE7, 0x89, 0x87, 0x43, 0xE7, 0x89, 0x90, 0x43,
+       0xE7, 0x89, 0x99, 0x43, 0xE7, 0x89, 0x9B, 0x43,
+       // Bytes f00 - f3f
+       0xE7, 0x89, 0xA2, 0x43, 0xE7, 0x89, 0xB9, 0x43,
+       0xE7, 0x8A, 0x80, 0x43, 0xE7, 0x8A, 0x95, 0x43,
+       0xE7, 0x8A, 0xAC, 0x43, 0xE7, 0x8A, 0xAF, 0x43,
+       0xE7, 0x8B, 0x80, 0x43, 0xE7, 0x8B, 0xBC, 0x43,
+       0xE7, 0x8C, 0xAA, 0x43, 0xE7, 0x8D, 0xB5, 0x43,
+       0xE7, 0x8D, 0xBA, 0x43, 0xE7, 0x8E, 0x84, 0x43,
+       0xE7, 0x8E, 0x87, 0x43, 0xE7, 0x8E, 0x89, 0x43,
+       0xE7, 0x8E, 0x8B, 0x43, 0xE7, 0x8E, 0xA5, 0x43,
+       // Bytes f40 - f7f
+       0xE7, 0x8E, 0xB2, 0x43, 0xE7, 0x8F, 0x9E, 0x43,
+       0xE7, 0x90, 0x86, 0x43, 0xE7, 0x90, 0x89, 0x43,
+       0xE7, 0x90, 0xA2, 0x43, 0xE7, 0x91, 0x87, 0x43,
+       0xE7, 0x91, 0x9C, 0x43, 0xE7, 0x91, 0xA9, 0x43,
+       0xE7, 0x91, 0xB1, 0x43, 0xE7, 0x92, 0x85, 0x43,
+       0xE7, 0x92, 0x89, 0x43, 0xE7, 0x92, 0x98, 0x43,
+       0xE7, 0x93, 0x8A, 0x43, 0xE7, 0x93, 0x9C, 0x43,
+       0xE7, 0x93, 0xA6, 0x43, 0xE7, 0x94, 0x86, 0x43,
+       // Bytes f80 - fbf
+       0xE7, 0x94, 0x98, 0x43, 0xE7, 0x94, 0x9F, 0x43,
+       0xE7, 0x94, 0xA4, 0x43, 0xE7, 0x94, 0xA8, 0x43,
+       0xE7, 0x94, 0xB0, 0x43, 0xE7, 0x94, 0xB2, 0x43,
+       0xE7, 0x94, 0xB3, 0x43, 0xE7, 0x94, 0xB7, 0x43,
+       0xE7, 0x94, 0xBB, 0x43, 0xE7, 0x94, 0xBE, 0x43,
+       0xE7, 0x95, 0x99, 0x43, 0xE7, 0x95, 0xA5, 0x43,
+       0xE7, 0x95, 0xB0, 0x43, 0xE7, 0x96, 0x8B, 0x43,
+       0xE7, 0x96, 0x92, 0x43, 0xE7, 0x97, 0xA2, 0x43,
+       // Bytes fc0 - fff
+       0xE7, 0x98, 0x90, 0x43, 0xE7, 0x98, 0x9D, 0x43,
+       0xE7, 0x98, 0x9F, 0x43, 0xE7, 0x99, 0x82, 0x43,
+       0xE7, 0x99, 0xA9, 0x43, 0xE7, 0x99, 0xB6, 0x43,
+       0xE7, 0x99, 0xBD, 0x43, 0xE7, 0x9A, 0xAE, 0x43,
+       0xE7, 0x9A, 0xBF, 0x43, 0xE7, 0x9B, 0x8A, 0x43,
+       0xE7, 0x9B, 0x9B, 0x43, 0xE7, 0x9B, 0xA3, 0x43,
+       0xE7, 0x9B, 0xA7, 0x43, 0xE7, 0x9B, 0xAE, 0x43,
+       0xE7, 0x9B, 0xB4, 0x43, 0xE7, 0x9C, 0x81, 0x43,
+       // Bytes 1000 - 103f
+       0xE7, 0x9C, 0x9E, 0x43, 0xE7, 0x9C, 0x9F, 0x43,
+       0xE7, 0x9D, 0x80, 0x43, 0xE7, 0x9D, 0x8A, 0x43,
+       0xE7, 0x9E, 0x8B, 0x43, 0xE7, 0x9E, 0xA7, 0x43,
+       0xE7, 0x9F, 0x9B, 0x43, 0xE7, 0x9F, 0xA2, 0x43,
+       0xE7, 0x9F, 0xB3, 0x43, 0xE7, 0xA1, 0x8E, 0x43,
+       0xE7, 0xA1, 0xAB, 0x43, 0xE7, 0xA2, 0x8C, 0x43,
+       0xE7, 0xA2, 0x91, 0x43, 0xE7, 0xA3, 0x8A, 0x43,
+       0xE7, 0xA3, 0x8C, 0x43, 0xE7, 0xA3, 0xBB, 0x43,
+       // Bytes 1040 - 107f
+       0xE7, 0xA4, 0xAA, 0x43, 0xE7, 0xA4, 0xBA, 0x43,
+       0xE7, 0xA4, 0xBC, 0x43, 0xE7, 0xA4, 0xBE, 0x43,
+       0xE7, 0xA5, 0x88, 0x43, 0xE7, 0xA5, 0x89, 0x43,
+       0xE7, 0xA5, 0x90, 0x43, 0xE7, 0xA5, 0x96, 0x43,
+       0xE7, 0xA5, 0x9D, 0x43, 0xE7, 0xA5, 0x9E, 0x43,
+       0xE7, 0xA5, 0xA5, 0x43, 0xE7, 0xA5, 0xBF, 0x43,
+       0xE7, 0xA6, 0x81, 0x43, 0xE7, 0xA6, 0x8D, 0x43,
+       0xE7, 0xA6, 0x8E, 0x43, 0xE7, 0xA6, 0x8F, 0x43,
+       // Bytes 1080 - 10bf
+       0xE7, 0xA6, 0xAE, 0x43, 0xE7, 0xA6, 0xB8, 0x43,
+       0xE7, 0xA6, 0xBE, 0x43, 0xE7, 0xA7, 0x8A, 0x43,
+       0xE7, 0xA7, 0x98, 0x43, 0xE7, 0xA7, 0xAB, 0x43,
+       0xE7, 0xA8, 0x9C, 0x43, 0xE7, 0xA9, 0x80, 0x43,
+       0xE7, 0xA9, 0x8A, 0x43, 0xE7, 0xA9, 0x8F, 0x43,
+       0xE7, 0xA9, 0xB4, 0x43, 0xE7, 0xA9, 0xBA, 0x43,
+       0xE7, 0xAA, 0x81, 0x43, 0xE7, 0xAA, 0xB1, 0x43,
+       0xE7, 0xAB, 0x8B, 0x43, 0xE7, 0xAB, 0xAE, 0x43,
+       // Bytes 10c0 - 10ff
+       0xE7, 0xAB, 0xB9, 0x43, 0xE7, 0xAC, 0xA0, 0x43,
+       0xE7, 0xAE, 0x8F, 0x43, 0xE7, 0xAF, 0x80, 0x43,
+       0xE7, 0xAF, 0x86, 0x43, 0xE7, 0xAF, 0x89, 0x43,
+       0xE7, 0xB0, 0xBE, 0x43, 0xE7, 0xB1, 0xA0, 0x43,
+       0xE7, 0xB1, 0xB3, 0x43, 0xE7, 0xB1, 0xBB, 0x43,
+       0xE7, 0xB2, 0x92, 0x43, 0xE7, 0xB2, 0xBE, 0x43,
+       0xE7, 0xB3, 0x92, 0x43, 0xE7, 0xB3, 0x96, 0x43,
+       0xE7, 0xB3, 0xA3, 0x43, 0xE7, 0xB3, 0xA7, 0x43,
+       // Bytes 1100 - 113f
+       0xE7, 0xB3, 0xA8, 0x43, 0xE7, 0xB3, 0xB8, 0x43,
+       0xE7, 0xB4, 0x80, 0x43, 0xE7, 0xB4, 0x90, 0x43,
+       0xE7, 0xB4, 0xA2, 0x43, 0xE7, 0xB4, 0xAF, 0x43,
+       0xE7, 0xB5, 0x82, 0x43, 0xE7, 0xB5, 0x9B, 0x43,
+       0xE7, 0xB5, 0xA3, 0x43, 0xE7, 0xB6, 0xA0, 0x43,
+       0xE7, 0xB6, 0xBE, 0x43, 0xE7, 0xB7, 0x87, 0x43,
+       0xE7, 0xB7, 0xB4, 0x43, 0xE7, 0xB8, 0x82, 0x43,
+       0xE7, 0xB8, 0x89, 0x43, 0xE7, 0xB8, 0xB7, 0x43,
+       // Bytes 1140 - 117f
+       0xE7, 0xB9, 0x81, 0x43, 0xE7, 0xB9, 0x85, 0x43,
+       0xE7, 0xBC, 0xB6, 0x43, 0xE7, 0xBC, 0xBE, 0x43,
+       0xE7, 0xBD, 0x91, 0x43, 0xE7, 0xBD, 0xB2, 0x43,
+       0xE7, 0xBD, 0xB9, 0x43, 0xE7, 0xBD, 0xBA, 0x43,
+       0xE7, 0xBE, 0x85, 0x43, 0xE7, 0xBE, 0x8A, 0x43,
+       0xE7, 0xBE, 0x95, 0x43, 0xE7, 0xBE, 0x9A, 0x43,
+       0xE7, 0xBE, 0xBD, 0x43, 0xE7, 0xBF, 0xBA, 0x43,
+       0xE8, 0x80, 0x81, 0x43, 0xE8, 0x80, 0x85, 0x43,
+       // Bytes 1180 - 11bf
+       0xE8, 0x80, 0x8C, 0x43, 0xE8, 0x80, 0x92, 0x43,
+       0xE8, 0x80, 0xB3, 0x43, 0xE8, 0x81, 0x86, 0x43,
+       0xE8, 0x81, 0xA0, 0x43, 0xE8, 0x81, 0xAF, 0x43,
+       0xE8, 0x81, 0xB0, 0x43, 0xE8, 0x81, 0xBE, 0x43,
+       0xE8, 0x81, 0xBF, 0x43, 0xE8, 0x82, 0x89, 0x43,
+       0xE8, 0x82, 0x8B, 0x43, 0xE8, 0x82, 0xAD, 0x43,
+       0xE8, 0x82, 0xB2, 0x43, 0xE8, 0x84, 0x83, 0x43,
+       0xE8, 0x84, 0xBE, 0x43, 0xE8, 0x87, 0x98, 0x43,
+       // Bytes 11c0 - 11ff
+       0xE8, 0x87, 0xA3, 0x43, 0xE8, 0x87, 0xA8, 0x43,
+       0xE8, 0x87, 0xAA, 0x43, 0xE8, 0x87, 0xAD, 0x43,
+       0xE8, 0x87, 0xB3, 0x43, 0xE8, 0x87, 0xBC, 0x43,
+       0xE8, 0x88, 0x81, 0x43, 0xE8, 0x88, 0x84, 0x43,
+       0xE8, 0x88, 0x8C, 0x43, 0xE8, 0x88, 0x98, 0x43,
+       0xE8, 0x88, 0x9B, 0x43, 0xE8, 0x88, 0x9F, 0x43,
+       0xE8, 0x89, 0xAE, 0x43, 0xE8, 0x89, 0xAF, 0x43,
+       0xE8, 0x89, 0xB2, 0x43, 0xE8, 0x89, 0xB8, 0x43,
+       // Bytes 1200 - 123f
+       0xE8, 0x89, 0xB9, 0x43, 0xE8, 0x8A, 0x8B, 0x43,
+       0xE8, 0x8A, 0x91, 0x43, 0xE8, 0x8A, 0x9D, 0x43,
+       0xE8, 0x8A, 0xB1, 0x43, 0xE8, 0x8A, 0xB3, 0x43,
+       0xE8, 0x8A, 0xBD, 0x43, 0xE8, 0x8B, 0xA5, 0x43,
+       0xE8, 0x8B, 0xA6, 0x43, 0xE8, 0x8C, 0x9D, 0x43,
+       0xE8, 0x8C, 0xA3, 0x43, 0xE8, 0x8C, 0xB6, 0x43,
+       0xE8, 0x8D, 0x92, 0x43, 0xE8, 0x8D, 0x93, 0x43,
+       0xE8, 0x8D, 0xA3, 0x43, 0xE8, 0x8E, 0xAD, 0x43,
+       // Bytes 1240 - 127f
+       0xE8, 0x8E, 0xBD, 0x43, 0xE8, 0x8F, 0x89, 0x43,
+       0xE8, 0x8F, 0x8A, 0x43, 0xE8, 0x8F, 0x8C, 0x43,
+       0xE8, 0x8F, 0x9C, 0x43, 0xE8, 0x8F, 0xA7, 0x43,
+       0xE8, 0x8F, 0xAF, 0x43, 0xE8, 0x8F, 0xB1, 0x43,
+       0xE8, 0x90, 0xBD, 0x43, 0xE8, 0x91, 0x89, 0x43,
+       0xE8, 0x91, 0x97, 0x43, 0xE8, 0x93, 0xAE, 0x43,
+       0xE8, 0x93, 0xB1, 0x43, 0xE8, 0x93, 0xB3, 0x43,
+       0xE8, 0x93, 0xBC, 0x43, 0xE8, 0x94, 0x96, 0x43,
+       // Bytes 1280 - 12bf
+       0xE8, 0x95, 0xA4, 0x43, 0xE8, 0x97, 0x8D, 0x43,
+       0xE8, 0x97, 0xBA, 0x43, 0xE8, 0x98, 0x86, 0x43,
+       0xE8, 0x98, 0x92, 0x43, 0xE8, 0x98, 0xAD, 0x43,
+       0xE8, 0x98, 0xBF, 0x43, 0xE8, 0x99, 0x8D, 0x43,
+       0xE8, 0x99, 0x90, 0x43, 0xE8, 0x99, 0x9C, 0x43,
+       0xE8, 0x99, 0xA7, 0x43, 0xE8, 0x99, 0xA9, 0x43,
+       0xE8, 0x99, 0xAB, 0x43, 0xE8, 0x9A, 0x88, 0x43,
+       0xE8, 0x9A, 0xA9, 0x43, 0xE8, 0x9B, 0xA2, 0x43,
+       // Bytes 12c0 - 12ff
+       0xE8, 0x9C, 0x8E, 0x43, 0xE8, 0x9C, 0xA8, 0x43,
+       0xE8, 0x9D, 0xAB, 0x43, 0xE8, 0x9D, 0xB9, 0x43,
+       0xE8, 0x9E, 0x86, 0x43, 0xE8, 0x9E, 0xBA, 0x43,
+       0xE8, 0x9F, 0xA1, 0x43, 0xE8, 0xA0, 0x81, 0x43,
+       0xE8, 0xA0, 0x9F, 0x43, 0xE8, 0xA1, 0x80, 0x43,
+       0xE8, 0xA1, 0x8C, 0x43, 0xE8, 0xA1, 0xA0, 0x43,
+       0xE8, 0xA1, 0xA3, 0x43, 0xE8, 0xA3, 0x82, 0x43,
+       0xE8, 0xA3, 0x8F, 0x43, 0xE8, 0xA3, 0x97, 0x43,
+       // Bytes 1300 - 133f
+       0xE8, 0xA3, 0x9E, 0x43, 0xE8, 0xA3, 0xA1, 0x43,
+       0xE8, 0xA3, 0xB8, 0x43, 0xE8, 0xA3, 0xBA, 0x43,
+       0xE8, 0xA4, 0x90, 0x43, 0xE8, 0xA5, 0x81, 0x43,
+       0xE8, 0xA5, 0xA4, 0x43, 0xE8, 0xA5, 0xBE, 0x43,
+       0xE8, 0xA6, 0x86, 0x43, 0xE8, 0xA6, 0x8B, 0x43,
+       0xE8, 0xA6, 0x96, 0x43, 0xE8, 0xA7, 0x92, 0x43,
+       0xE8, 0xA7, 0xA3, 0x43, 0xE8, 0xA8, 0x80, 0x43,
+       0xE8, 0xAA, 0xA0, 0x43, 0xE8, 0xAA, 0xAA, 0x43,
+       // Bytes 1340 - 137f
+       0xE8, 0xAA, 0xBF, 0x43, 0xE8, 0xAB, 0x8B, 0x43,
+       0xE8, 0xAB, 0x92, 0x43, 0xE8, 0xAB, 0x96, 0x43,
+       0xE8, 0xAB, 0xAD, 0x43, 0xE8, 0xAB, 0xB8, 0x43,
+       0xE8, 0xAB, 0xBE, 0x43, 0xE8, 0xAC, 0x81, 0x43,
+       0xE8, 0xAC, 0xB9, 0x43, 0xE8, 0xAD, 0x98, 0x43,
+       0xE8, 0xAE, 0x80, 0x43, 0xE8, 0xAE, 0x8A, 0x43,
+       0xE8, 0xB0, 0xB7, 0x43, 0xE8, 0xB1, 0x86, 0x43,
+       0xE8, 0xB1, 0x88, 0x43, 0xE8, 0xB1, 0x95, 0x43,
+       // Bytes 1380 - 13bf
+       0xE8, 0xB1, 0xB8, 0x43, 0xE8, 0xB2, 0x9D, 0x43,
+       0xE8, 0xB2, 0xA1, 0x43, 0xE8, 0xB2, 0xA9, 0x43,
+       0xE8, 0xB2, 0xAB, 0x43, 0xE8, 0xB3, 0x81, 0x43,
+       0xE8, 0xB3, 0x82, 0x43, 0xE8, 0xB3, 0x87, 0x43,
+       0xE8, 0xB3, 0x88, 0x43, 0xE8, 0xB3, 0x93, 0x43,
+       0xE8, 0xB4, 0x88, 0x43, 0xE8, 0xB4, 0x9B, 0x43,
+       0xE8, 0xB5, 0xA4, 0x43, 0xE8, 0xB5, 0xB0, 0x43,
+       0xE8, 0xB5, 0xB7, 0x43, 0xE8, 0xB6, 0xB3, 0x43,
+       // Bytes 13c0 - 13ff
+       0xE8, 0xB6, 0xBC, 0x43, 0xE8, 0xB7, 0x8B, 0x43,
+       0xE8, 0xB7, 0xAF, 0x43, 0xE8, 0xB7, 0xB0, 0x43,
+       0xE8, 0xBA, 0xAB, 0x43, 0xE8, 0xBB, 0x8A, 0x43,
+       0xE8, 0xBB, 0x94, 0x43, 0xE8, 0xBC, 0xA6, 0x43,
+       0xE8, 0xBC, 0xAA, 0x43, 0xE8, 0xBC, 0xB8, 0x43,
+       0xE8, 0xBC, 0xBB, 0x43, 0xE8, 0xBD, 0xA2, 0x43,
+       0xE8, 0xBE, 0x9B, 0x43, 0xE8, 0xBE, 0x9E, 0x43,
+       0xE8, 0xBE, 0xB0, 0x43, 0xE8, 0xBE, 0xB5, 0x43,
+       // Bytes 1400 - 143f
+       0xE8, 0xBE, 0xB6, 0x43, 0xE9, 0x80, 0xA3, 0x43,
+       0xE9, 0x80, 0xB8, 0x43, 0xE9, 0x81, 0x8A, 0x43,
+       0xE9, 0x81, 0xA9, 0x43, 0xE9, 0x81, 0xB2, 0x43,
+       0xE9, 0x81, 0xBC, 0x43, 0xE9, 0x82, 0x8F, 0x43,
+       0xE9, 0x82, 0x91, 0x43, 0xE9, 0x82, 0x94, 0x43,
+       0xE9, 0x83, 0x8E, 0x43, 0xE9, 0x83, 0x9E, 0x43,
+       0xE9, 0x83, 0xB1, 0x43, 0xE9, 0x83, 0xBD, 0x43,
+       0xE9, 0x84, 0x91, 0x43, 0xE9, 0x84, 0x9B, 0x43,
+       // Bytes 1440 - 147f
+       0xE9, 0x85, 0x89, 0x43, 0xE9, 0x85, 0x8D, 0x43,
+       0xE9, 0x85, 0xAA, 0x43, 0xE9, 0x86, 0x99, 0x43,
+       0xE9, 0x86, 0xB4, 0x43, 0xE9, 0x87, 0x86, 0x43,
+       0xE9, 0x87, 0x8C, 0x43, 0xE9, 0x87, 0x8F, 0x43,
+       0xE9, 0x87, 0x91, 0x43, 0xE9, 0x88, 0xB4, 0x43,
+       0xE9, 0x88, 0xB8, 0x43, 0xE9, 0x89, 0xB6, 0x43,
+       0xE9, 0x89, 0xBC, 0x43, 0xE9, 0x8B, 0x97, 0x43,
+       0xE9, 0x8B, 0x98, 0x43, 0xE9, 0x8C, 0x84, 0x43,
+       // Bytes 1480 - 14bf
+       0xE9, 0x8D, 0x8A, 0x43, 0xE9, 0x8F, 0xB9, 0x43,
+       0xE9, 0x90, 0x95, 0x43, 0xE9, 0x95, 0xB7, 0x43,
+       0xE9, 0x96, 0x80, 0x43, 0xE9, 0x96, 0x8B, 0x43,
+       0xE9, 0x96, 0xAD, 0x43, 0xE9, 0x96, 0xB7, 0x43,
+       0xE9, 0x98, 0x9C, 0x43, 0xE9, 0x98, 0xAE, 0x43,
+       0xE9, 0x99, 0x8B, 0x43, 0xE9, 0x99, 0x8D, 0x43,
+       0xE9, 0x99, 0xB5, 0x43, 0xE9, 0x99, 0xB8, 0x43,
+       0xE9, 0x99, 0xBC, 0x43, 0xE9, 0x9A, 0x86, 0x43,
+       // Bytes 14c0 - 14ff
+       0xE9, 0x9A, 0xA3, 0x43, 0xE9, 0x9A, 0xB6, 0x43,
+       0xE9, 0x9A, 0xB7, 0x43, 0xE9, 0x9A, 0xB8, 0x43,
+       0xE9, 0x9A, 0xB9, 0x43, 0xE9, 0x9B, 0x83, 0x43,
+       0xE9, 0x9B, 0xA2, 0x43, 0xE9, 0x9B, 0xA3, 0x43,
+       0xE9, 0x9B, 0xA8, 0x43, 0xE9, 0x9B, 0xB6, 0x43,
+       0xE9, 0x9B, 0xB7, 0x43, 0xE9, 0x9C, 0xA3, 0x43,
+       0xE9, 0x9C, 0xB2, 0x43, 0xE9, 0x9D, 0x88, 0x43,
+       0xE9, 0x9D, 0x91, 0x43, 0xE9, 0x9D, 0x96, 0x43,
+       // Bytes 1500 - 153f
+       0xE9, 0x9D, 0x9E, 0x43, 0xE9, 0x9D, 0xA2, 0x43,
+       0xE9, 0x9D, 0xA9, 0x43, 0xE9, 0x9F, 0x8B, 0x43,
+       0xE9, 0x9F, 0x9B, 0x43, 0xE9, 0x9F, 0xA0, 0x43,
+       0xE9, 0x9F, 0xAD, 0x43, 0xE9, 0x9F, 0xB3, 0x43,
+       0xE9, 0x9F, 0xBF, 0x43, 0xE9, 0xA0, 0x81, 0x43,
+       0xE9, 0xA0, 0x85, 0x43, 0xE9, 0xA0, 0x8B, 0x43,
+       0xE9, 0xA0, 0x98, 0x43, 0xE9, 0xA0, 0xA9, 0x43,
+       0xE9, 0xA0, 0xBB, 0x43, 0xE9, 0xA1, 0x9E, 0x43,
+       // Bytes 1540 - 157f
+       0xE9, 0xA2, 0xA8, 0x43, 0xE9, 0xA3, 0x9B, 0x43,
+       0xE9, 0xA3, 0x9F, 0x43, 0xE9, 0xA3, 0xA2, 0x43,
+       0xE9, 0xA3, 0xAF, 0x43, 0xE9, 0xA3, 0xBC, 0x43,
+       0xE9, 0xA4, 0xA8, 0x43, 0xE9, 0xA4, 0xA9, 0x43,
+       0xE9, 0xA6, 0x96, 0x43, 0xE9, 0xA6, 0x99, 0x43,
+       0xE9, 0xA6, 0xA7, 0x43, 0xE9, 0xA6, 0xAC, 0x43,
+       0xE9, 0xA7, 0x82, 0x43, 0xE9, 0xA7, 0xB1, 0x43,
+       0xE9, 0xA7, 0xBE, 0x43, 0xE9, 0xA9, 0xAA, 0x43,
+       // Bytes 1580 - 15bf
+       0xE9, 0xAA, 0xA8, 0x43, 0xE9, 0xAB, 0x98, 0x43,
+       0xE9, 0xAB, 0x9F, 0x43, 0xE9, 0xAC, 0x92, 0x43,
+       0xE9, 0xAC, 0xA5, 0x43, 0xE9, 0xAC, 0xAF, 0x43,
+       0xE9, 0xAC, 0xB2, 0x43, 0xE9, 0xAC, 0xBC, 0x43,
+       0xE9, 0xAD, 0x9A, 0x43, 0xE9, 0xAD, 0xAF, 0x43,
+       0xE9, 0xB1, 0x80, 0x43, 0xE9, 0xB1, 0x97, 0x43,
+       0xE9, 0xB3, 0xA5, 0x43, 0xE9, 0xB3, 0xBD, 0x43,
+       0xE9, 0xB5, 0xA7, 0x43, 0xE9, 0xB6, 0xB4, 0x43,
+       // Bytes 15c0 - 15ff
+       0xE9, 0xB7, 0xBA, 0x43, 0xE9, 0xB8, 0x9E, 0x43,
+       0xE9, 0xB9, 0xB5, 0x43, 0xE9, 0xB9, 0xBF, 0x43,
+       0xE9, 0xBA, 0x97, 0x43, 0xE9, 0xBA, 0x9F, 0x43,
+       0xE9, 0xBA, 0xA5, 0x43, 0xE9, 0xBA, 0xBB, 0x43,
+       0xE9, 0xBB, 0x83, 0x43, 0xE9, 0xBB, 0x8D, 0x43,
+       0xE9, 0xBB, 0x8E, 0x43, 0xE9, 0xBB, 0x91, 0x43,
+       0xE9, 0xBB, 0xB9, 0x43, 0xE9, 0xBB, 0xBD, 0x43,
+       0xE9, 0xBB, 0xBE, 0x43, 0xE9, 0xBC, 0x85, 0x43,
+       // Bytes 1600 - 163f
+       0xE9, 0xBC, 0x8E, 0x43, 0xE9, 0xBC, 0x8F, 0x43,
+       0xE9, 0xBC, 0x93, 0x43, 0xE9, 0xBC, 0x96, 0x43,
+       0xE9, 0xBC, 0xA0, 0x43, 0xE9, 0xBC, 0xBB, 0x43,
+       0xE9, 0xBD, 0x83, 0x43, 0xE9, 0xBD, 0x8A, 0x43,
+       0xE9, 0xBD, 0x92, 0x43, 0xE9, 0xBE, 0x8D, 0x43,
+       0xE9, 0xBE, 0x8E, 0x43, 0xE9, 0xBE, 0x9C, 0x43,
+       0xE9, 0xBE, 0x9F, 0x43, 0xE9, 0xBE, 0xA0, 0x43,
+       0xEA, 0x9C, 0xA7, 0x43, 0xEA, 0x9D, 0xAF, 0x43,
+       // Bytes 1640 - 167f
+       0xEA, 0xAC, 0xB7, 0x43, 0xEA, 0xAD, 0x92, 0x44,
+       0xF0, 0xA0, 0x84, 0xA2, 0x44, 0xF0, 0xA0, 0x94,
+       0x9C, 0x44, 0xF0, 0xA0, 0x94, 0xA5, 0x44, 0xF0,
+       0xA0, 0x95, 0x8B, 0x44, 0xF0, 0xA0, 0x98, 0xBA,
+       0x44, 0xF0, 0xA0, 0xA0, 0x84, 0x44, 0xF0, 0xA0,
+       0xA3, 0x9E, 0x44, 0xF0, 0xA0, 0xA8, 0xAC, 0x44,
+       0xF0, 0xA0, 0xAD, 0xA3, 0x44, 0xF0, 0xA1, 0x93,
+       0xA4, 0x44, 0xF0, 0xA1, 0x9A, 0xA8, 0x44, 0xF0,
+       // Bytes 1680 - 16bf
+       0xA1, 0x9B, 0xAA, 0x44, 0xF0, 0xA1, 0xA7, 0x88,
+       0x44, 0xF0, 0xA1, 0xAC, 0x98, 0x44, 0xF0, 0xA1,
+       0xB4, 0x8B, 0x44, 0xF0, 0xA1, 0xB7, 0xA4, 0x44,
+       0xF0, 0xA1, 0xB7, 0xA6, 0x44, 0xF0, 0xA2, 0x86,
+       0x83, 0x44, 0xF0, 0xA2, 0x86, 0x9F, 0x44, 0xF0,
+       0xA2, 0x8C, 0xB1, 0x44, 0xF0, 0xA2, 0x9B, 0x94,
+       0x44, 0xF0, 0xA2, 0xA1, 0x84, 0x44, 0xF0, 0xA2,
+       0xA1, 0x8A, 0x44, 0xF0, 0xA2, 0xAC, 0x8C, 0x44,
+       // Bytes 16c0 - 16ff
+       0xF0, 0xA2, 0xAF, 0xB1, 0x44, 0xF0, 0xA3, 0x80,
+       0x8A, 0x44, 0xF0, 0xA3, 0x8A, 0xB8, 0x44, 0xF0,
+       0xA3, 0x8D, 0x9F, 0x44, 0xF0, 0xA3, 0x8E, 0x93,
+       0x44, 0xF0, 0xA3, 0x8E, 0x9C, 0x44, 0xF0, 0xA3,
+       0x8F, 0x83, 0x44, 0xF0, 0xA3, 0x8F, 0x95, 0x44,
+       0xF0, 0xA3, 0x91, 0xAD, 0x44, 0xF0, 0xA3, 0x9A,
+       0xA3, 0x44, 0xF0, 0xA3, 0xA2, 0xA7, 0x44, 0xF0,
+       0xA3, 0xAA, 0x8D, 0x44, 0xF0, 0xA3, 0xAB, 0xBA,
+       // Bytes 1700 - 173f
+       0x44, 0xF0, 0xA3, 0xB2, 0xBC, 0x44, 0xF0, 0xA3,
+       0xB4, 0x9E, 0x44, 0xF0, 0xA3, 0xBB, 0x91, 0x44,
+       0xF0, 0xA3, 0xBD, 0x9E, 0x44, 0xF0, 0xA3, 0xBE,
+       0x8E, 0x44, 0xF0, 0xA4, 0x89, 0xA3, 0x44, 0xF0,
+       0xA4, 0x8B, 0xAE, 0x44, 0xF0, 0xA4, 0x8E, 0xAB,
+       0x44, 0xF0, 0xA4, 0x98, 0x88, 0x44, 0xF0, 0xA4,
+       0x9C, 0xB5, 0x44, 0xF0, 0xA4, 0xA0, 0x94, 0x44,
+       0xF0, 0xA4, 0xB0, 0xB6, 0x44, 0xF0, 0xA4, 0xB2,
+       // Bytes 1740 - 177f
+       0x92, 0x44, 0xF0, 0xA4, 0xBE, 0xA1, 0x44, 0xF0,
+       0xA4, 0xBE, 0xB8, 0x44, 0xF0, 0xA5, 0x81, 0x84,
+       0x44, 0xF0, 0xA5, 0x83, 0xB2, 0x44, 0xF0, 0xA5,
+       0x83, 0xB3, 0x44, 0xF0, 0xA5, 0x84, 0x99, 0x44,
+       0xF0, 0xA5, 0x84, 0xB3, 0x44, 0xF0, 0xA5, 0x89,
+       0x89, 0x44, 0xF0, 0xA5, 0x90, 0x9D, 0x44, 0xF0,
+       0xA5, 0x98, 0xA6, 0x44, 0xF0, 0xA5, 0x9A, 0x9A,
+       0x44, 0xF0, 0xA5, 0x9B, 0x85, 0x44, 0xF0, 0xA5,
+       // Bytes 1780 - 17bf
+       0xA5, 0xBC, 0x44, 0xF0, 0xA5, 0xAA, 0xA7, 0x44,
+       0xF0, 0xA5, 0xAE, 0xAB, 0x44, 0xF0, 0xA5, 0xB2,
+       0x80, 0x44, 0xF0, 0xA5, 0xB3, 0x90, 0x44, 0xF0,
+       0xA5, 0xBE, 0x86, 0x44, 0xF0, 0xA6, 0x87, 0x9A,
+       0x44, 0xF0, 0xA6, 0x88, 0xA8, 0x44, 0xF0, 0xA6,
+       0x89, 0x87, 0x44, 0xF0, 0xA6, 0x8B, 0x99, 0x44,
+       0xF0, 0xA6, 0x8C, 0xBE, 0x44, 0xF0, 0xA6, 0x93,
+       0x9A, 0x44, 0xF0, 0xA6, 0x94, 0xA3, 0x44, 0xF0,
+       // Bytes 17c0 - 17ff
+       0xA6, 0x96, 0xA8, 0x44, 0xF0, 0xA6, 0x9E, 0xA7,
+       0x44, 0xF0, 0xA6, 0x9E, 0xB5, 0x44, 0xF0, 0xA6,
+       0xAC, 0xBC, 0x44, 0xF0, 0xA6, 0xB0, 0xB6, 0x44,
+       0xF0, 0xA6, 0xB3, 0x95, 0x44, 0xF0, 0xA6, 0xB5,
+       0xAB, 0x44, 0xF0, 0xA6, 0xBC, 0xAC, 0x44, 0xF0,
+       0xA6, 0xBE, 0xB1, 0x44, 0xF0, 0xA7, 0x83, 0x92,
+       0x44, 0xF0, 0xA7, 0x8F, 0x8A, 0x44, 0xF0, 0xA7,
+       0x99, 0xA7, 0x44, 0xF0, 0xA7, 0xA2, 0xAE, 0x44,
+       // Bytes 1800 - 183f
+       0xF0, 0xA7, 0xA5, 0xA6, 0x44, 0xF0, 0xA7, 0xB2,
+       0xA8, 0x44, 0xF0, 0xA7, 0xBB, 0x93, 0x44, 0xF0,
+       0xA7, 0xBC, 0xAF, 0x44, 0xF0, 0xA8, 0x97, 0x92,
+       0x44, 0xF0, 0xA8, 0x97, 0xAD, 0x44, 0xF0, 0xA8,
+       0x9C, 0xAE, 0x44, 0xF0, 0xA8, 0xAF, 0xBA, 0x44,
+       0xF0, 0xA8, 0xB5, 0xB7, 0x44, 0xF0, 0xA9, 0x85,
+       0x85, 0x44, 0xF0, 0xA9, 0x87, 0x9F, 0x44, 0xF0,
+       0xA9, 0x88, 0x9A, 0x44, 0xF0, 0xA9, 0x90, 0x8A,
+       // Bytes 1840 - 187f
+       0x44, 0xF0, 0xA9, 0x92, 0x96, 0x44, 0xF0, 0xA9,
+       0x96, 0xB6, 0x44, 0xF0, 0xA9, 0xAC, 0xB0, 0x44,
+       0xF0, 0xAA, 0x83, 0x8E, 0x44, 0xF0, 0xAA, 0x84,
+       0x85, 0x44, 0xF0, 0xAA, 0x88, 0x8E, 0x44, 0xF0,
+       0xAA, 0x8A, 0x91, 0x44, 0xF0, 0xAA, 0x8E, 0x92,
+       0x44, 0xF0, 0xAA, 0x98, 0x80, 0x42, 0x21, 0x21,
+       0x42, 0x21, 0x3F, 0x42, 0x2E, 0x2E, 0x42, 0x30,
+       0x2C, 0x42, 0x30, 0x2E, 0x42, 0x31, 0x2C, 0x42,
+       // Bytes 1880 - 18bf
+       0x31, 0x2E, 0x42, 0x31, 0x30, 0x42, 0x31, 0x31,
+       0x42, 0x31, 0x32, 0x42, 0x31, 0x33, 0x42, 0x31,
+       0x34, 0x42, 0x31, 0x35, 0x42, 0x31, 0x36, 0x42,
+       0x31, 0x37, 0x42, 0x31, 0x38, 0x42, 0x31, 0x39,
+       0x42, 0x32, 0x2C, 0x42, 0x32, 0x2E, 0x42, 0x32,
+       0x30, 0x42, 0x32, 0x31, 0x42, 0x32, 0x32, 0x42,
+       0x32, 0x33, 0x42, 0x32, 0x34, 0x42, 0x32, 0x35,
+       0x42, 0x32, 0x36, 0x42, 0x32, 0x37, 0x42, 0x32,
+       // Bytes 18c0 - 18ff
+       0x38, 0x42, 0x32, 0x39, 0x42, 0x33, 0x2C, 0x42,
+       0x33, 0x2E, 0x42, 0x33, 0x30, 0x42, 0x33, 0x31,
+       0x42, 0x33, 0x32, 0x42, 0x33, 0x33, 0x42, 0x33,
+       0x34, 0x42, 0x33, 0x35, 0x42, 0x33, 0x36, 0x42,
+       0x33, 0x37, 0x42, 0x33, 0x38, 0x42, 0x33, 0x39,
+       0x42, 0x34, 0x2C, 0x42, 0x34, 0x2E, 0x42, 0x34,
+       0x30, 0x42, 0x34, 0x31, 0x42, 0x34, 0x32, 0x42,
+       0x34, 0x33, 0x42, 0x34, 0x34, 0x42, 0x34, 0x35,
+       // Bytes 1900 - 193f
+       0x42, 0x34, 0x36, 0x42, 0x34, 0x37, 0x42, 0x34,
+       0x38, 0x42, 0x34, 0x39, 0x42, 0x35, 0x2C, 0x42,
+       0x35, 0x2E, 0x42, 0x35, 0x30, 0x42, 0x36, 0x2C,
+       0x42, 0x36, 0x2E, 0x42, 0x37, 0x2C, 0x42, 0x37,
+       0x2E, 0x42, 0x38, 0x2C, 0x42, 0x38, 0x2E, 0x42,
+       0x39, 0x2C, 0x42, 0x39, 0x2E, 0x42, 0x3D, 0x3D,
+       0x42, 0x3F, 0x21, 0x42, 0x3F, 0x3F, 0x42, 0x41,
+       0x55, 0x42, 0x42, 0x71, 0x42, 0x43, 0x44, 0x42,
+       // Bytes 1940 - 197f
+       0x44, 0x4A, 0x42, 0x44, 0x5A, 0x42, 0x44, 0x7A,
+       0x42, 0x47, 0x42, 0x42, 0x47, 0x79, 0x42, 0x48,
+       0x50, 0x42, 0x48, 0x56, 0x42, 0x48, 0x67, 0x42,
+       0x48, 0x7A, 0x42, 0x49, 0x49, 0x42, 0x49, 0x4A,
+       0x42, 0x49, 0x55, 0x42, 0x49, 0x56, 0x42, 0x49,
+       0x58, 0x42, 0x4B, 0x42, 0x42, 0x4B, 0x4B, 0x42,
+       0x4B, 0x4D, 0x42, 0x4C, 0x4A, 0x42, 0x4C, 0x6A,
+       0x42, 0x4D, 0x42, 0x42, 0x4D, 0x43, 0x42, 0x4D,
+       // Bytes 1980 - 19bf
+       0x44, 0x42, 0x4D, 0x56, 0x42, 0x4D, 0x57, 0x42,
+       0x4E, 0x4A, 0x42, 0x4E, 0x6A, 0x42, 0x4E, 0x6F,
+       0x42, 0x50, 0x48, 0x42, 0x50, 0x52, 0x42, 0x50,
+       0x61, 0x42, 0x52, 0x73, 0x42, 0x53, 0x44, 0x42,
+       0x53, 0x4D, 0x42, 0x53, 0x53, 0x42, 0x53, 0x76,
+       0x42, 0x54, 0x4D, 0x42, 0x56, 0x49, 0x42, 0x57,
+       0x43, 0x42, 0x57, 0x5A, 0x42, 0x57, 0x62, 0x42,
+       0x58, 0x49, 0x42, 0x63, 0x63, 0x42, 0x63, 0x64,
+       // Bytes 19c0 - 19ff
+       0x42, 0x63, 0x6D, 0x42, 0x64, 0x42, 0x42, 0x64,
+       0x61, 0x42, 0x64, 0x6C, 0x42, 0x64, 0x6D, 0x42,
+       0x64, 0x7A, 0x42, 0x65, 0x56, 0x42, 0x66, 0x66,
+       0x42, 0x66, 0x69, 0x42, 0x66, 0x6C, 0x42, 0x66,
+       0x6D, 0x42, 0x68, 0x61, 0x42, 0x69, 0x69, 0x42,
+       0x69, 0x6A, 0x42, 0x69, 0x6E, 0x42, 0x69, 0x76,
+       0x42, 0x69, 0x78, 0x42, 0x6B, 0x41, 0x42, 0x6B,
+       0x56, 0x42, 0x6B, 0x57, 0x42, 0x6B, 0x67, 0x42,
+       // Bytes 1a00 - 1a3f
+       0x6B, 0x6C, 0x42, 0x6B, 0x6D, 0x42, 0x6B, 0x74,
+       0x42, 0x6C, 0x6A, 0x42, 0x6C, 0x6D, 0x42, 0x6C,
+       0x6E, 0x42, 0x6C, 0x78, 0x42, 0x6D, 0x32, 0x42,
+       0x6D, 0x33, 0x42, 0x6D, 0x41, 0x42, 0x6D, 0x56,
+       0x42, 0x6D, 0x57, 0x42, 0x6D, 0x62, 0x42, 0x6D,
+       0x67, 0x42, 0x6D, 0x6C, 0x42, 0x6D, 0x6D, 0x42,
+       0x6D, 0x73, 0x42, 0x6E, 0x41, 0x42, 0x6E, 0x46,
+       0x42, 0x6E, 0x56, 0x42, 0x6E, 0x57, 0x42, 0x6E,
+       // Bytes 1a40 - 1a7f
+       0x6A, 0x42, 0x6E, 0x6D, 0x42, 0x6E, 0x73, 0x42,
+       0x6F, 0x56, 0x42, 0x70, 0x41, 0x42, 0x70, 0x46,
+       0x42, 0x70, 0x56, 0x42, 0x70, 0x57, 0x42, 0x70,
+       0x63, 0x42, 0x70, 0x73, 0x42, 0x73, 0x72, 0x42,
+       0x73, 0x74, 0x42, 0x76, 0x69, 0x42, 0x78, 0x69,
+       0x43, 0x28, 0x31, 0x29, 0x43, 0x28, 0x32, 0x29,
+       0x43, 0x28, 0x33, 0x29, 0x43, 0x28, 0x34, 0x29,
+       0x43, 0x28, 0x35, 0x29, 0x43, 0x28, 0x36, 0x29,
+       // Bytes 1a80 - 1abf
+       0x43, 0x28, 0x37, 0x29, 0x43, 0x28, 0x38, 0x29,
+       0x43, 0x28, 0x39, 0x29, 0x43, 0x28, 0x41, 0x29,
+       0x43, 0x28, 0x42, 0x29, 0x43, 0x28, 0x43, 0x29,
+       0x43, 0x28, 0x44, 0x29, 0x43, 0x28, 0x45, 0x29,
+       0x43, 0x28, 0x46, 0x29, 0x43, 0x28, 0x47, 0x29,
+       0x43, 0x28, 0x48, 0x29, 0x43, 0x28, 0x49, 0x29,
+       0x43, 0x28, 0x4A, 0x29, 0x43, 0x28, 0x4B, 0x29,
+       0x43, 0x28, 0x4C, 0x29, 0x43, 0x28, 0x4D, 0x29,
+       // Bytes 1ac0 - 1aff
+       0x43, 0x28, 0x4E, 0x29, 0x43, 0x28, 0x4F, 0x29,
+       0x43, 0x28, 0x50, 0x29, 0x43, 0x28, 0x51, 0x29,
+       0x43, 0x28, 0x52, 0x29, 0x43, 0x28, 0x53, 0x29,
+       0x43, 0x28, 0x54, 0x29, 0x43, 0x28, 0x55, 0x29,
+       0x43, 0x28, 0x56, 0x29, 0x43, 0x28, 0x57, 0x29,
+       0x43, 0x28, 0x58, 0x29, 0x43, 0x28, 0x59, 0x29,
+       0x43, 0x28, 0x5A, 0x29, 0x43, 0x28, 0x61, 0x29,
+       0x43, 0x28, 0x62, 0x29, 0x43, 0x28, 0x63, 0x29,
+       // Bytes 1b00 - 1b3f
+       0x43, 0x28, 0x64, 0x29, 0x43, 0x28, 0x65, 0x29,
+       0x43, 0x28, 0x66, 0x29, 0x43, 0x28, 0x67, 0x29,
+       0x43, 0x28, 0x68, 0x29, 0x43, 0x28, 0x69, 0x29,
+       0x43, 0x28, 0x6A, 0x29, 0x43, 0x28, 0x6B, 0x29,
+       0x43, 0x28, 0x6C, 0x29, 0x43, 0x28, 0x6D, 0x29,
+       0x43, 0x28, 0x6E, 0x29, 0x43, 0x28, 0x6F, 0x29,
+       0x43, 0x28, 0x70, 0x29, 0x43, 0x28, 0x71, 0x29,
+       0x43, 0x28, 0x72, 0x29, 0x43, 0x28, 0x73, 0x29,
+       // Bytes 1b40 - 1b7f
+       0x43, 0x28, 0x74, 0x29, 0x43, 0x28, 0x75, 0x29,
+       0x43, 0x28, 0x76, 0x29, 0x43, 0x28, 0x77, 0x29,
+       0x43, 0x28, 0x78, 0x29, 0x43, 0x28, 0x79, 0x29,
+       0x43, 0x28, 0x7A, 0x29, 0x43, 0x2E, 0x2E, 0x2E,
+       0x43, 0x31, 0x30, 0x2E, 0x43, 0x31, 0x31, 0x2E,
+       0x43, 0x31, 0x32, 0x2E, 0x43, 0x31, 0x33, 0x2E,
+       0x43, 0x31, 0x34, 0x2E, 0x43, 0x31, 0x35, 0x2E,
+       0x43, 0x31, 0x36, 0x2E, 0x43, 0x31, 0x37, 0x2E,
+       // Bytes 1b80 - 1bbf
+       0x43, 0x31, 0x38, 0x2E, 0x43, 0x31, 0x39, 0x2E,
+       0x43, 0x32, 0x30, 0x2E, 0x43, 0x3A, 0x3A, 0x3D,
+       0x43, 0x3D, 0x3D, 0x3D, 0x43, 0x43, 0x6F, 0x2E,
+       0x43, 0x46, 0x41, 0x58, 0x43, 0x47, 0x48, 0x7A,
+       0x43, 0x47, 0x50, 0x61, 0x43, 0x49, 0x49, 0x49,
+       0x43, 0x4C, 0x54, 0x44, 0x43, 0x4C, 0xC2, 0xB7,
+       0x43, 0x4D, 0x48, 0x7A, 0x43, 0x4D, 0x50, 0x61,
+       0x43, 0x4D, 0xCE, 0xA9, 0x43, 0x50, 0x50, 0x4D,
+       // Bytes 1bc0 - 1bff
+       0x43, 0x50, 0x50, 0x56, 0x43, 0x50, 0x54, 0x45,
+       0x43, 0x54, 0x45, 0x4C, 0x43, 0x54, 0x48, 0x7A,
+       0x43, 0x56, 0x49, 0x49, 0x43, 0x58, 0x49, 0x49,
+       0x43, 0x61, 0x2F, 0x63, 0x43, 0x61, 0x2F, 0x73,
+       0x43, 0x61, 0xCA, 0xBE, 0x43, 0x62, 0x61, 0x72,
+       0x43, 0x63, 0x2F, 0x6F, 0x43, 0x63, 0x2F, 0x75,
+       0x43, 0x63, 0x61, 0x6C, 0x43, 0x63, 0x6D, 0x32,
+       0x43, 0x63, 0x6D, 0x33, 0x43, 0x64, 0x6D, 0x32,
+       // Bytes 1c00 - 1c3f
+       0x43, 0x64, 0x6D, 0x33, 0x43, 0x65, 0x72, 0x67,
+       0x43, 0x66, 0x66, 0x69, 0x43, 0x66, 0x66, 0x6C,
+       0x43, 0x67, 0x61, 0x6C, 0x43, 0x68, 0x50, 0x61,
+       0x43, 0x69, 0x69, 0x69, 0x43, 0x6B, 0x48, 0x7A,
+       0x43, 0x6B, 0x50, 0x61, 0x43, 0x6B, 0x6D, 0x32,
+       0x43, 0x6B, 0x6D, 0x33, 0x43, 0x6B, 0xCE, 0xA9,
+       0x43, 0x6C, 0x6F, 0x67, 0x43, 0x6C, 0xC2, 0xB7,
+       0x43, 0x6D, 0x69, 0x6C, 0x43, 0x6D, 0x6D, 0x32,
+       // Bytes 1c40 - 1c7f
+       0x43, 0x6D, 0x6D, 0x33, 0x43, 0x6D, 0x6F, 0x6C,
+       0x43, 0x72, 0x61, 0x64, 0x43, 0x76, 0x69, 0x69,
+       0x43, 0x78, 0x69, 0x69, 0x43, 0xC2, 0xB0, 0x43,
+       0x43, 0xC2, 0xB0, 0x46, 0x43, 0xCA, 0xBC, 0x6E,
+       0x43, 0xCE, 0xBC, 0x41, 0x43, 0xCE, 0xBC, 0x46,
+       0x43, 0xCE, 0xBC, 0x56, 0x43, 0xCE, 0xBC, 0x57,
+       0x43, 0xCE, 0xBC, 0x67, 0x43, 0xCE, 0xBC, 0x6C,
+       0x43, 0xCE, 0xBC, 0x6D, 0x43, 0xCE, 0xBC, 0x73,
+       // Bytes 1c80 - 1cbf
+       0x44, 0x28, 0x31, 0x30, 0x29, 0x44, 0x28, 0x31,
+       0x31, 0x29, 0x44, 0x28, 0x31, 0x32, 0x29, 0x44,
+       0x28, 0x31, 0x33, 0x29, 0x44, 0x28, 0x31, 0x34,
+       0x29, 0x44, 0x28, 0x31, 0x35, 0x29, 0x44, 0x28,
+       0x31, 0x36, 0x29, 0x44, 0x28, 0x31, 0x37, 0x29,
+       0x44, 0x28, 0x31, 0x38, 0x29, 0x44, 0x28, 0x31,
+       0x39, 0x29, 0x44, 0x28, 0x32, 0x30, 0x29, 0x44,
+       0x30, 0xE7, 0x82, 0xB9, 0x44, 0x31, 0xE2, 0x81,
+       // Bytes 1cc0 - 1cff
+       0x84, 0x44, 0x31, 0xE6, 0x97, 0xA5, 0x44, 0x31,
+       0xE6, 0x9C, 0x88, 0x44, 0x31, 0xE7, 0x82, 0xB9,
+       0x44, 0x32, 0xE6, 0x97, 0xA5, 0x44, 0x32, 0xE6,
+       0x9C, 0x88, 0x44, 0x32, 0xE7, 0x82, 0xB9, 0x44,
+       0x33, 0xE6, 0x97, 0xA5, 0x44, 0x33, 0xE6, 0x9C,
+       0x88, 0x44, 0x33, 0xE7, 0x82, 0xB9, 0x44, 0x34,
+       0xE6, 0x97, 0xA5, 0x44, 0x34, 0xE6, 0x9C, 0x88,
+       0x44, 0x34, 0xE7, 0x82, 0xB9, 0x44, 0x35, 0xE6,
+       // Bytes 1d00 - 1d3f
+       0x97, 0xA5, 0x44, 0x35, 0xE6, 0x9C, 0x88, 0x44,
+       0x35, 0xE7, 0x82, 0xB9, 0x44, 0x36, 0xE6, 0x97,
+       0xA5, 0x44, 0x36, 0xE6, 0x9C, 0x88, 0x44, 0x36,
+       0xE7, 0x82, 0xB9, 0x44, 0x37, 0xE6, 0x97, 0xA5,
+       0x44, 0x37, 0xE6, 0x9C, 0x88, 0x44, 0x37, 0xE7,
+       0x82, 0xB9, 0x44, 0x38, 0xE6, 0x97, 0xA5, 0x44,
+       0x38, 0xE6, 0x9C, 0x88, 0x44, 0x38, 0xE7, 0x82,
+       0xB9, 0x44, 0x39, 0xE6, 0x97, 0xA5, 0x44, 0x39,
+       // Bytes 1d40 - 1d7f
+       0xE6, 0x9C, 0x88, 0x44, 0x39, 0xE7, 0x82, 0xB9,
+       0x44, 0x56, 0x49, 0x49, 0x49, 0x44, 0x61, 0x2E,
+       0x6D, 0x2E, 0x44, 0x6B, 0x63, 0x61, 0x6C, 0x44,
+       0x70, 0x2E, 0x6D, 0x2E, 0x44, 0x76, 0x69, 0x69,
+       0x69, 0x44, 0xD5, 0xA5, 0xD6, 0x82, 0x44, 0xD5,
+       0xB4, 0xD5, 0xA5, 0x44, 0xD5, 0xB4, 0xD5, 0xAB,
+       0x44, 0xD5, 0xB4, 0xD5, 0xAD, 0x44, 0xD5, 0xB4,
+       0xD5, 0xB6, 0x44, 0xD5, 0xBE, 0xD5, 0xB6, 0x44,
+       // Bytes 1d80 - 1dbf
+       0xD7, 0x90, 0xD7, 0x9C, 0x44, 0xD8, 0xA7, 0xD9,
+       0xB4, 0x44, 0xD8, 0xA8, 0xD8, 0xAC, 0x44, 0xD8,
+       0xA8, 0xD8, 0xAD, 0x44, 0xD8, 0xA8, 0xD8, 0xAE,
+       0x44, 0xD8, 0xA8, 0xD8, 0xB1, 0x44, 0xD8, 0xA8,
+       0xD8, 0xB2, 0x44, 0xD8, 0xA8, 0xD9, 0x85, 0x44,
+       0xD8, 0xA8, 0xD9, 0x86, 0x44, 0xD8, 0xA8, 0xD9,
+       0x87, 0x44, 0xD8, 0xA8, 0xD9, 0x89, 0x44, 0xD8,
+       0xA8, 0xD9, 0x8A, 0x44, 0xD8, 0xAA, 0xD8, 0xAC,
+       // Bytes 1dc0 - 1dff
+       0x44, 0xD8, 0xAA, 0xD8, 0xAD, 0x44, 0xD8, 0xAA,
+       0xD8, 0xAE, 0x44, 0xD8, 0xAA, 0xD8, 0xB1, 0x44,
+       0xD8, 0xAA, 0xD8, 0xB2, 0x44, 0xD8, 0xAA, 0xD9,
+       0x85, 0x44, 0xD8, 0xAA, 0xD9, 0x86, 0x44, 0xD8,
+       0xAA, 0xD9, 0x87, 0x44, 0xD8, 0xAA, 0xD9, 0x89,
+       0x44, 0xD8, 0xAA, 0xD9, 0x8A, 0x44, 0xD8, 0xAB,
+       0xD8, 0xAC, 0x44, 0xD8, 0xAB, 0xD8, 0xB1, 0x44,
+       0xD8, 0xAB, 0xD8, 0xB2, 0x44, 0xD8, 0xAB, 0xD9,
+       // Bytes 1e00 - 1e3f
+       0x85, 0x44, 0xD8, 0xAB, 0xD9, 0x86, 0x44, 0xD8,
+       0xAB, 0xD9, 0x87, 0x44, 0xD8, 0xAB, 0xD9, 0x89,
+       0x44, 0xD8, 0xAB, 0xD9, 0x8A, 0x44, 0xD8, 0xAC,
+       0xD8, 0xAD, 0x44, 0xD8, 0xAC, 0xD9, 0x85, 0x44,
+       0xD8, 0xAC, 0xD9, 0x89, 0x44, 0xD8, 0xAC, 0xD9,
+       0x8A, 0x44, 0xD8, 0xAD, 0xD8, 0xAC, 0x44, 0xD8,
+       0xAD, 0xD9, 0x85, 0x44, 0xD8, 0xAD, 0xD9, 0x89,
+       0x44, 0xD8, 0xAD, 0xD9, 0x8A, 0x44, 0xD8, 0xAE,
+       // Bytes 1e40 - 1e7f
+       0xD8, 0xAC, 0x44, 0xD8, 0xAE, 0xD8, 0xAD, 0x44,
+       0xD8, 0xAE, 0xD9, 0x85, 0x44, 0xD8, 0xAE, 0xD9,
+       0x89, 0x44, 0xD8, 0xAE, 0xD9, 0x8A, 0x44, 0xD8,
+       0xB3, 0xD8, 0xAC, 0x44, 0xD8, 0xB3, 0xD8, 0xAD,
+       0x44, 0xD8, 0xB3, 0xD8, 0xAE, 0x44, 0xD8, 0xB3,
+       0xD8, 0xB1, 0x44, 0xD8, 0xB3, 0xD9, 0x85, 0x44,
+       0xD8, 0xB3, 0xD9, 0x87, 0x44, 0xD8, 0xB3, 0xD9,
+       0x89, 0x44, 0xD8, 0xB3, 0xD9, 0x8A, 0x44, 0xD8,
+       // Bytes 1e80 - 1ebf
+       0xB4, 0xD8, 0xAC, 0x44, 0xD8, 0xB4, 0xD8, 0xAD,
+       0x44, 0xD8, 0xB4, 0xD8, 0xAE, 0x44, 0xD8, 0xB4,
+       0xD8, 0xB1, 0x44, 0xD8, 0xB4, 0xD9, 0x85, 0x44,
+       0xD8, 0xB4, 0xD9, 0x87, 0x44, 0xD8, 0xB4, 0xD9,
+       0x89, 0x44, 0xD8, 0xB4, 0xD9, 0x8A, 0x44, 0xD8,
+       0xB5, 0xD8, 0xAD, 0x44, 0xD8, 0xB5, 0xD8, 0xAE,
+       0x44, 0xD8, 0xB5, 0xD8, 0xB1, 0x44, 0xD8, 0xB5,
+       0xD9, 0x85, 0x44, 0xD8, 0xB5, 0xD9, 0x89, 0x44,
+       // Bytes 1ec0 - 1eff
+       0xD8, 0xB5, 0xD9, 0x8A, 0x44, 0xD8, 0xB6, 0xD8,
+       0xAC, 0x44, 0xD8, 0xB6, 0xD8, 0xAD, 0x44, 0xD8,
+       0xB6, 0xD8, 0xAE, 0x44, 0xD8, 0xB6, 0xD8, 0xB1,
+       0x44, 0xD8, 0xB6, 0xD9, 0x85, 0x44, 0xD8, 0xB6,
+       0xD9, 0x89, 0x44, 0xD8, 0xB6, 0xD9, 0x8A, 0x44,
+       0xD8, 0xB7, 0xD8, 0xAD, 0x44, 0xD8, 0xB7, 0xD9,
+       0x85, 0x44, 0xD8, 0xB7, 0xD9, 0x89, 0x44, 0xD8,
+       0xB7, 0xD9, 0x8A, 0x44, 0xD8, 0xB8, 0xD9, 0x85,
+       // Bytes 1f00 - 1f3f
+       0x44, 0xD8, 0xB9, 0xD8, 0xAC, 0x44, 0xD8, 0xB9,
+       0xD9, 0x85, 0x44, 0xD8, 0xB9, 0xD9, 0x89, 0x44,
+       0xD8, 0xB9, 0xD9, 0x8A, 0x44, 0xD8, 0xBA, 0xD8,
+       0xAC, 0x44, 0xD8, 0xBA, 0xD9, 0x85, 0x44, 0xD8,
+       0xBA, 0xD9, 0x89, 0x44, 0xD8, 0xBA, 0xD9, 0x8A,
+       0x44, 0xD9, 0x81, 0xD8, 0xAC, 0x44, 0xD9, 0x81,
+       0xD8, 0xAD, 0x44, 0xD9, 0x81, 0xD8, 0xAE, 0x44,
+       0xD9, 0x81, 0xD9, 0x85, 0x44, 0xD9, 0x81, 0xD9,
+       // Bytes 1f40 - 1f7f
+       0x89, 0x44, 0xD9, 0x81, 0xD9, 0x8A, 0x44, 0xD9,
+       0x82, 0xD8, 0xAD, 0x44, 0xD9, 0x82, 0xD9, 0x85,
+       0x44, 0xD9, 0x82, 0xD9, 0x89, 0x44, 0xD9, 0x82,
+       0xD9, 0x8A, 0x44, 0xD9, 0x83, 0xD8, 0xA7, 0x44,
+       0xD9, 0x83, 0xD8, 0xAC, 0x44, 0xD9, 0x83, 0xD8,
+       0xAD, 0x44, 0xD9, 0x83, 0xD8, 0xAE, 0x44, 0xD9,
+       0x83, 0xD9, 0x84, 0x44, 0xD9, 0x83, 0xD9, 0x85,
+       0x44, 0xD9, 0x83, 0xD9, 0x89, 0x44, 0xD9, 0x83,
+       // Bytes 1f80 - 1fbf
+       0xD9, 0x8A, 0x44, 0xD9, 0x84, 0xD8, 0xA7, 0x44,
+       0xD9, 0x84, 0xD8, 0xAC, 0x44, 0xD9, 0x84, 0xD8,
+       0xAD, 0x44, 0xD9, 0x84, 0xD8, 0xAE, 0x44, 0xD9,
+       0x84, 0xD9, 0x85, 0x44, 0xD9, 0x84, 0xD9, 0x87,
+       0x44, 0xD9, 0x84, 0xD9, 0x89, 0x44, 0xD9, 0x84,
+       0xD9, 0x8A, 0x44, 0xD9, 0x85, 0xD8, 0xA7, 0x44,
+       0xD9, 0x85, 0xD8, 0xAC, 0x44, 0xD9, 0x85, 0xD8,
+       0xAD, 0x44, 0xD9, 0x85, 0xD8, 0xAE, 0x44, 0xD9,
+       // Bytes 1fc0 - 1fff
+       0x85, 0xD9, 0x85, 0x44, 0xD9, 0x85, 0xD9, 0x89,
+       0x44, 0xD9, 0x85, 0xD9, 0x8A, 0x44, 0xD9, 0x86,
+       0xD8, 0xAC, 0x44, 0xD9, 0x86, 0xD8, 0xAD, 0x44,
+       0xD9, 0x86, 0xD8, 0xAE, 0x44, 0xD9, 0x86, 0xD8,
+       0xB1, 0x44, 0xD9, 0x86, 0xD8, 0xB2, 0x44, 0xD9,
+       0x86, 0xD9, 0x85, 0x44, 0xD9, 0x86, 0xD9, 0x86,
+       0x44, 0xD9, 0x86, 0xD9, 0x87, 0x44, 0xD9, 0x86,
+       0xD9, 0x89, 0x44, 0xD9, 0x86, 0xD9, 0x8A, 0x44,
+       // Bytes 2000 - 203f
+       0xD9, 0x87, 0xD8, 0xAC, 0x44, 0xD9, 0x87, 0xD9,
+       0x85, 0x44, 0xD9, 0x87, 0xD9, 0x89, 0x44, 0xD9,
+       0x87, 0xD9, 0x8A, 0x44, 0xD9, 0x88, 0xD9, 0xB4,
+       0x44, 0xD9, 0x8A, 0xD8, 0xAC, 0x44, 0xD9, 0x8A,
+       0xD8, 0xAD, 0x44, 0xD9, 0x8A, 0xD8, 0xAE, 0x44,
+       0xD9, 0x8A, 0xD8, 0xB1, 0x44, 0xD9, 0x8A, 0xD8,
+       0xB2, 0x44, 0xD9, 0x8A, 0xD9, 0x85, 0x44, 0xD9,
+       0x8A, 0xD9, 0x86, 0x44, 0xD9, 0x8A, 0xD9, 0x87,
+       // Bytes 2040 - 207f
+       0x44, 0xD9, 0x8A, 0xD9, 0x89, 0x44, 0xD9, 0x8A,
+       0xD9, 0x8A, 0x44, 0xD9, 0x8A, 0xD9, 0xB4, 0x44,
+       0xDB, 0x87, 0xD9, 0xB4, 0x45, 0x28, 0xE1, 0x84,
+       0x80, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x82, 0x29,
+       0x45, 0x28, 0xE1, 0x84, 0x83, 0x29, 0x45, 0x28,
+       0xE1, 0x84, 0x85, 0x29, 0x45, 0x28, 0xE1, 0x84,
+       0x86, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x87, 0x29,
+       0x45, 0x28, 0xE1, 0x84, 0x89, 0x29, 0x45, 0x28,
+       // Bytes 2080 - 20bf
+       0xE1, 0x84, 0x8B, 0x29, 0x45, 0x28, 0xE1, 0x84,
+       0x8C, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x8E, 0x29,
+       0x45, 0x28, 0xE1, 0x84, 0x8F, 0x29, 0x45, 0x28,
+       0xE1, 0x84, 0x90, 0x29, 0x45, 0x28, 0xE1, 0x84,
+       0x91, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x92, 0x29,
+       0x45, 0x28, 0xE4, 0xB8, 0x80, 0x29, 0x45, 0x28,
+       0xE4, 0xB8, 0x83, 0x29, 0x45, 0x28, 0xE4, 0xB8,
+       0x89, 0x29, 0x45, 0x28, 0xE4, 0xB9, 0x9D, 0x29,
+       // Bytes 20c0 - 20ff
+       0x45, 0x28, 0xE4, 0xBA, 0x8C, 0x29, 0x45, 0x28,
+       0xE4, 0xBA, 0x94, 0x29, 0x45, 0x28, 0xE4, 0xBB,
+       0xA3, 0x29, 0x45, 0x28, 0xE4, 0xBC, 0x81, 0x29,
+       0x45, 0x28, 0xE4, 0xBC, 0x91, 0x29, 0x45, 0x28,
+       0xE5, 0x85, 0xAB, 0x29, 0x45, 0x28, 0xE5, 0x85,
+       0xAD, 0x29, 0x45, 0x28, 0xE5, 0x8A, 0xB4, 0x29,
+       0x45, 0x28, 0xE5, 0x8D, 0x81, 0x29, 0x45, 0x28,
+       0xE5, 0x8D, 0x94, 0x29, 0x45, 0x28, 0xE5, 0x90,
+       // Bytes 2100 - 213f
+       0x8D, 0x29, 0x45, 0x28, 0xE5, 0x91, 0xBC, 0x29,
+       0x45, 0x28, 0xE5, 0x9B, 0x9B, 0x29, 0x45, 0x28,
+       0xE5, 0x9C, 0x9F, 0x29, 0x45, 0x28, 0xE5, 0xAD,
+       0xA6, 0x29, 0x45, 0x28, 0xE6, 0x97, 0xA5, 0x29,
+       0x45, 0x28, 0xE6, 0x9C, 0x88, 0x29, 0x45, 0x28,
+       0xE6, 0x9C, 0x89, 0x29, 0x45, 0x28, 0xE6, 0x9C,
+       0xA8, 0x29, 0x45, 0x28, 0xE6, 0xA0, 0xAA, 0x29,
+       0x45, 0x28, 0xE6, 0xB0, 0xB4, 0x29, 0x45, 0x28,
+       // Bytes 2140 - 217f
+       0xE7, 0x81, 0xAB, 0x29, 0x45, 0x28, 0xE7, 0x89,
+       0xB9, 0x29, 0x45, 0x28, 0xE7, 0x9B, 0xA3, 0x29,
+       0x45, 0x28, 0xE7, 0xA4, 0xBE, 0x29, 0x45, 0x28,
+       0xE7, 0xA5, 0x9D, 0x29, 0x45, 0x28, 0xE7, 0xA5,
+       0xAD, 0x29, 0x45, 0x28, 0xE8, 0x87, 0xAA, 0x29,
+       0x45, 0x28, 0xE8, 0x87, 0xB3, 0x29, 0x45, 0x28,
+       0xE8, 0xB2, 0xA1, 0x29, 0x45, 0x28, 0xE8, 0xB3,
+       0x87, 0x29, 0x45, 0x28, 0xE9, 0x87, 0x91, 0x29,
+       // Bytes 2180 - 21bf
+       0x45, 0x30, 0xE2, 0x81, 0x84, 0x33, 0x45, 0x31,
+       0x30, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x30, 0xE6,
+       0x9C, 0x88, 0x45, 0x31, 0x30, 0xE7, 0x82, 0xB9,
+       0x45, 0x31, 0x31, 0xE6, 0x97, 0xA5, 0x45, 0x31,
+       0x31, 0xE6, 0x9C, 0x88, 0x45, 0x31, 0x31, 0xE7,
+       0x82, 0xB9, 0x45, 0x31, 0x32, 0xE6, 0x97, 0xA5,
+       0x45, 0x31, 0x32, 0xE6, 0x9C, 0x88, 0x45, 0x31,
+       0x32, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x33, 0xE6,
+       // Bytes 21c0 - 21ff
+       0x97, 0xA5, 0x45, 0x31, 0x33, 0xE7, 0x82, 0xB9,
+       0x45, 0x31, 0x34, 0xE6, 0x97, 0xA5, 0x45, 0x31,
+       0x34, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x35, 0xE6,
+       0x97, 0xA5, 0x45, 0x31, 0x35, 0xE7, 0x82, 0xB9,
+       0x45, 0x31, 0x36, 0xE6, 0x97, 0xA5, 0x45, 0x31,
+       0x36, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x37, 0xE6,
+       0x97, 0xA5, 0x45, 0x31, 0x37, 0xE7, 0x82, 0xB9,
+       0x45, 0x31, 0x38, 0xE6, 0x97, 0xA5, 0x45, 0x31,
+       // Bytes 2200 - 223f
+       0x38, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x39, 0xE6,
+       0x97, 0xA5, 0x45, 0x31, 0x39, 0xE7, 0x82, 0xB9,
+       0x45, 0x31, 0xE2, 0x81, 0x84, 0x32, 0x45, 0x31,
+       0xE2, 0x81, 0x84, 0x33, 0x45, 0x31, 0xE2, 0x81,
+       0x84, 0x34, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x35,
+       0x45, 0x31, 0xE2, 0x81, 0x84, 0x36, 0x45, 0x31,
+       0xE2, 0x81, 0x84, 0x37, 0x45, 0x31, 0xE2, 0x81,
+       0x84, 0x38, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x39,
+       // Bytes 2240 - 227f
+       0x45, 0x32, 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x32,
+       0x30, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x31, 0xE6,
+       0x97, 0xA5, 0x45, 0x32, 0x31, 0xE7, 0x82, 0xB9,
+       0x45, 0x32, 0x32, 0xE6, 0x97, 0xA5, 0x45, 0x32,
+       0x32, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x33, 0xE6,
+       0x97, 0xA5, 0x45, 0x32, 0x33, 0xE7, 0x82, 0xB9,
+       0x45, 0x32, 0x34, 0xE6, 0x97, 0xA5, 0x45, 0x32,
+       0x34, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x35, 0xE6,
+       // Bytes 2280 - 22bf
+       0x97, 0xA5, 0x45, 0x32, 0x36, 0xE6, 0x97, 0xA5,
+       0x45, 0x32, 0x37, 0xE6, 0x97, 0xA5, 0x45, 0x32,
+       0x38, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x39, 0xE6,
+       0x97, 0xA5, 0x45, 0x32, 0xE2, 0x81, 0x84, 0x33,
+       0x45, 0x32, 0xE2, 0x81, 0x84, 0x35, 0x45, 0x33,
+       0x30, 0xE6, 0x97, 0xA5, 0x45, 0x33, 0x31, 0xE6,
+       0x97, 0xA5, 0x45, 0x33, 0xE2, 0x81, 0x84, 0x34,
+       0x45, 0x33, 0xE2, 0x81, 0x84, 0x35, 0x45, 0x33,
+       // Bytes 22c0 - 22ff
+       0xE2, 0x81, 0x84, 0x38, 0x45, 0x34, 0xE2, 0x81,
+       0x84, 0x35, 0x45, 0x35, 0xE2, 0x81, 0x84, 0x36,
+       0x45, 0x35, 0xE2, 0x81, 0x84, 0x38, 0x45, 0x37,
+       0xE2, 0x81, 0x84, 0x38, 0x45, 0x41, 0xE2, 0x88,
+       0x95, 0x6D, 0x45, 0x56, 0xE2, 0x88, 0x95, 0x6D,
+       0x45, 0x6D, 0xE2, 0x88, 0x95, 0x73, 0x46, 0x31,
+       0xE2, 0x81, 0x84, 0x31, 0x30, 0x46, 0x43, 0xE2,
+       0x88, 0x95, 0x6B, 0x67, 0x46, 0x6D, 0xE2, 0x88,
+       // Bytes 2300 - 233f
+       0x95, 0x73, 0x32, 0x46, 0xD8, 0xA8, 0xD8, 0xAD,
+       0xD9, 0x8A, 0x46, 0xD8, 0xA8, 0xD8, 0xAE, 0xD9,
+       0x8A, 0x46, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x85,
+       0x46, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x89, 0x46,
+       0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8,
+       0xAA, 0xD8, 0xAD, 0xD8, 0xAC, 0x46, 0xD8, 0xAA,
+       0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8,
+       0xAE, 0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8, 0xAE,
+       // Bytes 2340 - 237f
+       0xD9, 0x89, 0x46, 0xD8, 0xAA, 0xD8, 0xAE, 0xD9,
+       0x8A, 0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAC,
+       0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAD, 0x46,
+       0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAE, 0x46, 0xD8,
+       0xAA, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAA,
+       0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xAC, 0xD8,
+       0xAD, 0xD9, 0x89, 0x46, 0xD8, 0xAC, 0xD8, 0xAD,
+       0xD9, 0x8A, 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD8,
+       // Bytes 2380 - 23bf
+       0xAD, 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x89,
+       0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x8A, 0x46,
+       0xD8, 0xAD, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8,
+       0xAD, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAD,
+       0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xB3, 0xD8,
+       0xAC, 0xD8, 0xAD, 0x46, 0xD8, 0xB3, 0xD8, 0xAC,
+       0xD9, 0x89, 0x46, 0xD8, 0xB3, 0xD8, 0xAD, 0xD8,
+       0xAC, 0x46, 0xD8, 0xB3, 0xD8, 0xAE, 0xD9, 0x89,
+       // Bytes 23c0 - 23ff
+       0x46, 0xD8, 0xB3, 0xD8, 0xAE, 0xD9, 0x8A, 0x46,
+       0xD8, 0xB3, 0xD9, 0x85, 0xD8, 0xAC, 0x46, 0xD8,
+       0xB3, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8, 0xB3,
+       0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB4, 0xD8,
+       0xAC, 0xD9, 0x8A, 0x46, 0xD8, 0xB4, 0xD8, 0xAD,
+       0xD9, 0x85, 0x46, 0xD8, 0xB4, 0xD8, 0xAD, 0xD9,
+       0x8A, 0x46, 0xD8, 0xB4, 0xD9, 0x85, 0xD8, 0xAE,
+       0x46, 0xD8, 0xB4, 0xD9, 0x85, 0xD9, 0x85, 0x46,
+       // Bytes 2400 - 243f
+       0xD8, 0xB5, 0xD8, 0xAD, 0xD8, 0xAD, 0x46, 0xD8,
+       0xB5, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD8, 0xB5,
+       0xD9, 0x84, 0xD9, 0x89, 0x46, 0xD8, 0xB5, 0xD9,
+       0x84, 0xDB, 0x92, 0x46, 0xD8, 0xB5, 0xD9, 0x85,
+       0xD9, 0x85, 0x46, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9,
+       0x89, 0x46, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9, 0x8A,
+       0x46, 0xD8, 0xB6, 0xD8, 0xAE, 0xD9, 0x85, 0x46,
+       0xD8, 0xB7, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8,
+       // Bytes 2440 - 247f
+       0xB7, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB7,
+       0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xB9, 0xD8,
+       0xAC, 0xD9, 0x85, 0x46, 0xD8, 0xB9, 0xD9, 0x85,
+       0xD9, 0x85, 0x46, 0xD8, 0xB9, 0xD9, 0x85, 0xD9,
+       0x89, 0x46, 0xD8, 0xB9, 0xD9, 0x85, 0xD9, 0x8A,
+       0x46, 0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x85, 0x46,
+       0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8,
+       0xBA, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x81,
+       // Bytes 2480 - 24bf
+       0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9, 0x81, 0xD9,
+       0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x82, 0xD9, 0x84,
+       0xDB, 0x92, 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD8,
+       0xAD, 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD9, 0x85,
+       0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD9, 0x8A, 0x46,
+       0xD9, 0x83, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9,
+       0x83, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x84,
+       0xD8, 0xAC, 0xD8, 0xAC, 0x46, 0xD9, 0x84, 0xD8,
+       // Bytes 24c0 - 24ff
+       0xAC, 0xD9, 0x85, 0x46, 0xD9, 0x84, 0xD8, 0xAC,
+       0xD9, 0x8A, 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9,
+       0x85, 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x89,
+       0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x8A, 0x46,
+       0xD9, 0x84, 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9,
+       0x84, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD9, 0x84,
+       0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD8,
+       0xAC, 0xD8, 0xAD, 0x46, 0xD9, 0x85, 0xD8, 0xAC,
+       // Bytes 2500 - 253f
+       0xD8, 0xAE, 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD9,
+       0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD9, 0x8A,
+       0x46, 0xD9, 0x85, 0xD8, 0xAD, 0xD8, 0xAC, 0x46,
+       0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9,
+       0x85, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x85,
+       0xD8, 0xAE, 0xD8, 0xAC, 0x46, 0xD9, 0x85, 0xD8,
+       0xAE, 0xD9, 0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAE,
+       0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD9, 0x85, 0xD9,
+       // Bytes 2540 - 257f
+       0x8A, 0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD8, 0xAD,
+       0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x85, 0x46,
+       0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x89, 0x46, 0xD9,
+       0x86, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x86,
+       0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9, 0x86, 0xD8,
+       0xAD, 0xD9, 0x89, 0x46, 0xD9, 0x86, 0xD8, 0xAD,
+       0xD9, 0x8A, 0x46, 0xD9, 0x86, 0xD9, 0x85, 0xD9,
+       0x89, 0x46, 0xD9, 0x86, 0xD9, 0x85, 0xD9, 0x8A,
+       // Bytes 2580 - 25bf
+       0x46, 0xD9, 0x87, 0xD9, 0x85, 0xD8, 0xAC, 0x46,
+       0xD9, 0x87, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9,
+       0x8A, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x8A,
+       0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD9,
+       0x85, 0xD9, 0x85, 0x46, 0xD9, 0x8A, 0xD9, 0x85,
+       0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8,
+       0xA7, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAC,
+       0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAD, 0x46,
+       // Bytes 25c0 - 25ff
+       0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAE, 0x46, 0xD9,
+       0x8A, 0xD9, 0x94, 0xD8, 0xB1, 0x46, 0xD9, 0x8A,
+       0xD9, 0x94, 0xD8, 0xB2, 0x46, 0xD9, 0x8A, 0xD9,
+       0x94, 0xD9, 0x85, 0x46, 0xD9, 0x8A, 0xD9, 0x94,
+       0xD9, 0x86, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9,
+       0x87, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x88,
+       0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x89, 0x46,
+       0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x8A, 0x46, 0xD9,
+       // Bytes 2600 - 263f
+       0x8A, 0xD9, 0x94, 0xDB, 0x86, 0x46, 0xD9, 0x8A,
+       0xD9, 0x94, 0xDB, 0x87, 0x46, 0xD9, 0x8A, 0xD9,
+       0x94, 0xDB, 0x88, 0x46, 0xD9, 0x8A, 0xD9, 0x94,
+       0xDB, 0x90, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xDB,
+       0x95, 0x46, 0xE0, 0xB9, 0x8D, 0xE0, 0xB8, 0xB2,
+       0x46, 0xE0, 0xBA, 0xAB, 0xE0, 0xBA, 0x99, 0x46,
+       0xE0, 0xBA, 0xAB, 0xE0, 0xBA, 0xA1, 0x46, 0xE0,
+       0xBB, 0x8D, 0xE0, 0xBA, 0xB2, 0x46, 0xE0, 0xBD,
+       // Bytes 2640 - 267f
+       0x80, 0xE0, 0xBE, 0xB5, 0x46, 0xE0, 0xBD, 0x82,
+       0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x8C, 0xE0,
+       0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x91, 0xE0, 0xBE,
+       0xB7, 0x46, 0xE0, 0xBD, 0x96, 0xE0, 0xBE, 0xB7,
+       0x46, 0xE0, 0xBD, 0x9B, 0xE0, 0xBE, 0xB7, 0x46,
+       0xE0, 0xBE, 0x90, 0xE0, 0xBE, 0xB5, 0x46, 0xE0,
+       0xBE, 0x92, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE,
+       0x9C, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xA1,
+       // Bytes 2680 - 26bf
+       0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xA6, 0xE0,
+       0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xAB, 0xE0, 0xBE,
+       0xB7, 0x46, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2,
+       0x46, 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0x46,
+       0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0x46, 0xE2,
+       0x88, 0xAE, 0xE2, 0x88, 0xAE, 0x46, 0xE3, 0x81,
+       0xBB, 0xE3, 0x81, 0x8B, 0x46, 0xE3, 0x82, 0x88,
+       0xE3, 0x82, 0x8A, 0x46, 0xE3, 0x82, 0xAD, 0xE3,
+       // Bytes 26c0 - 26ff
+       0x83, 0xAD, 0x46, 0xE3, 0x82, 0xB3, 0xE3, 0x82,
+       0xB3, 0x46, 0xE3, 0x82, 0xB3, 0xE3, 0x83, 0x88,
+       0x46, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xB3, 0x46,
+       0xE3, 0x83, 0x8A, 0xE3, 0x83, 0x8E, 0x46, 0xE3,
+       0x83, 0x9B, 0xE3, 0x83, 0xB3, 0x46, 0xE3, 0x83,
+       0x9F, 0xE3, 0x83, 0xAA, 0x46, 0xE3, 0x83, 0xAA,
+       0xE3, 0x83, 0xA9, 0x46, 0xE3, 0x83, 0xAC, 0xE3,
+       0x83, 0xA0, 0x46, 0xE5, 0xA4, 0xA7, 0xE6, 0xAD,
+       // Bytes 2700 - 273f
+       0xA3, 0x46, 0xE5, 0xB9, 0xB3, 0xE6, 0x88, 0x90,
+       0x46, 0xE6, 0x98, 0x8E, 0xE6, 0xB2, 0xBB, 0x46,
+       0xE6, 0x98, 0xAD, 0xE5, 0x92, 0x8C, 0x47, 0x72,
+       0x61, 0x64, 0xE2, 0x88, 0x95, 0x73, 0x47, 0xE3,
+       0x80, 0x94, 0x53, 0xE3, 0x80, 0x95, 0x48, 0x28,
+       0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA1, 0x29, 0x48,
+       0x28, 0xE1, 0x84, 0x82, 0xE1, 0x85, 0xA1, 0x29,
+       0x48, 0x28, 0xE1, 0x84, 0x83, 0xE1, 0x85, 0xA1,
+       // Bytes 2740 - 277f
+       0x29, 0x48, 0x28, 0xE1, 0x84, 0x85, 0xE1, 0x85,
+       0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x86, 0xE1,
+       0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x87,
+       0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84,
+       0x89, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1,
+       0x84, 0x8B, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28,
+       0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xA1, 0x29, 0x48,
+       0x28, 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xAE, 0x29,
+       // Bytes 2780 - 27bf
+       0x48, 0x28, 0xE1, 0x84, 0x8E, 0xE1, 0x85, 0xA1,
+       0x29, 0x48, 0x28, 0xE1, 0x84, 0x8F, 0xE1, 0x85,
+       0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x90, 0xE1,
+       0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x91,
+       0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84,
+       0x92, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x72, 0x61,
+       0x64, 0xE2, 0x88, 0x95, 0x73, 0x32, 0x48, 0xD8,
+       0xA7, 0xD9, 0x83, 0xD8, 0xA8, 0xD8, 0xB1, 0x48,
+       // Bytes 27c0 - 27ff
+       0xD8, 0xA7, 0xD9, 0x84, 0xD9, 0x84, 0xD9, 0x87,
+       0x48, 0xD8, 0xB1, 0xD8, 0xB3, 0xD9, 0x88, 0xD9,
+       0x84, 0x48, 0xD8, 0xB1, 0xDB, 0x8C, 0xD8, 0xA7,
+       0xD9, 0x84, 0x48, 0xD8, 0xB5, 0xD9, 0x84, 0xD8,
+       0xB9, 0xD9, 0x85, 0x48, 0xD8, 0xB9, 0xD9, 0x84,
+       0xD9, 0x8A, 0xD9, 0x87, 0x48, 0xD9, 0x85, 0xD8,
+       0xAD, 0xD9, 0x85, 0xD8, 0xAF, 0x48, 0xD9, 0x88,
+       0xD8, 0xB3, 0xD9, 0x84, 0xD9, 0x85, 0x49, 0xE2,
+       // Bytes 2800 - 283f
+       0x80, 0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2,
+       0x49, 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0xE2,
+       0x80, 0xB5, 0x49, 0xE2, 0x88, 0xAB, 0xE2, 0x88,
+       0xAB, 0xE2, 0x88, 0xAB, 0x49, 0xE2, 0x88, 0xAE,
+       0xE2, 0x88, 0xAE, 0xE2, 0x88, 0xAE, 0x49, 0xE3,
+       0x80, 0x94, 0xE4, 0xB8, 0x89, 0xE3, 0x80, 0x95,
+       0x49, 0xE3, 0x80, 0x94, 0xE4, 0xBA, 0x8C, 0xE3,
+       0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE5, 0x8B,
+       // Bytes 2840 - 287f
+       0x9D, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94,
+       0xE5, 0xAE, 0x89, 0xE3, 0x80, 0x95, 0x49, 0xE3,
+       0x80, 0x94, 0xE6, 0x89, 0x93, 0xE3, 0x80, 0x95,
+       0x49, 0xE3, 0x80, 0x94, 0xE6, 0x95, 0x97, 0xE3,
+       0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE6, 0x9C,
+       0xAC, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94,
+       0xE7, 0x82, 0xB9, 0xE3, 0x80, 0x95, 0x49, 0xE3,
+       0x80, 0x94, 0xE7, 0x9B, 0x97, 0xE3, 0x80, 0x95,
+       // Bytes 2880 - 28bf
+       0x49, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xBC, 0xE3,
+       0x83, 0xAB, 0x49, 0xE3, 0x82, 0xA4, 0xE3, 0x83,
+       0xB3, 0xE3, 0x83, 0x81, 0x49, 0xE3, 0x82, 0xA6,
+       0xE3, 0x82, 0xA9, 0xE3, 0x83, 0xB3, 0x49, 0xE3,
+       0x82, 0xAA, 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xB9,
+       0x49, 0xE3, 0x82, 0xAA, 0xE3, 0x83, 0xBC, 0xE3,
+       0x83, 0xA0, 0x49, 0xE3, 0x82, 0xAB, 0xE3, 0x82,
+       0xA4, 0xE3, 0x83, 0xAA, 0x49, 0xE3, 0x82, 0xB1,
+       // Bytes 28c0 - 28ff
+       0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xB9, 0x49, 0xE3,
+       0x82, 0xB3, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x8A,
+       0x49, 0xE3, 0x82, 0xBB, 0xE3, 0x83, 0xB3, 0xE3,
+       0x83, 0x81, 0x49, 0xE3, 0x82, 0xBB, 0xE3, 0x83,
+       0xB3, 0xE3, 0x83, 0x88, 0x49, 0xE3, 0x83, 0x86,
+       0xE3, 0x82, 0x99, 0xE3, 0x82, 0xB7, 0x49, 0xE3,
+       0x83, 0x88, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB,
+       0x49, 0xE3, 0x83, 0x8E, 0xE3, 0x83, 0x83, 0xE3,
+       // Bytes 2900 - 293f
+       0x83, 0x88, 0x49, 0xE3, 0x83, 0x8F, 0xE3, 0x82,
+       0xA4, 0xE3, 0x83, 0x84, 0x49, 0xE3, 0x83, 0x92,
+       0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, 0x49, 0xE3,
+       0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xB3,
+       0x49, 0xE3, 0x83, 0x95, 0xE3, 0x83, 0xA9, 0xE3,
+       0x83, 0xB3, 0x49, 0xE3, 0x83, 0x98, 0xE3, 0x82,
+       0x9A, 0xE3, 0x82, 0xBD, 0x49, 0xE3, 0x83, 0x98,
+       0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x84, 0x49, 0xE3,
+       // Bytes 2940 - 297f
+       0x83, 0x9B, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAB,
+       0x49, 0xE3, 0x83, 0x9B, 0xE3, 0x83, 0xBC, 0xE3,
+       0x83, 0xB3, 0x49, 0xE3, 0x83, 0x9E, 0xE3, 0x82,
+       0xA4, 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83, 0x9E,
+       0xE3, 0x83, 0x83, 0xE3, 0x83, 0x8F, 0x49, 0xE3,
+       0x83, 0x9E, 0xE3, 0x83, 0xAB, 0xE3, 0x82, 0xAF,
+       0x49, 0xE3, 0x83, 0xA4, 0xE3, 0x83, 0xBC, 0xE3,
+       0x83, 0xAB, 0x49, 0xE3, 0x83, 0xA6, 0xE3, 0x82,
+       // Bytes 2980 - 29bf
+       0xA2, 0xE3, 0x83, 0xB3, 0x49, 0xE3, 0x83, 0xAF,
+       0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, 0x4C, 0xE2,
+       0x80, 0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2,
+       0xE2, 0x80, 0xB2, 0x4C, 0xE2, 0x88, 0xAB, 0xE2,
+       0x88, 0xAB, 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB,
+       0x4C, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xAB, 0xE3,
+       0x83, 0x95, 0xE3, 0x82, 0xA1, 0x4C, 0xE3, 0x82,
+       0xA8, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xAB, 0xE3,
+       // Bytes 29c0 - 29ff
+       0x83, 0xBC, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x82,
+       0x99, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xB3, 0x4C,
+       0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83,
+       0xB3, 0xE3, 0x83, 0x9E, 0x4C, 0xE3, 0x82, 0xAB,
+       0xE3, 0x83, 0xA9, 0xE3, 0x83, 0x83, 0xE3, 0x83,
+       0x88, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x83, 0xAD,
+       0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xBC, 0x4C, 0xE3,
+       0x82, 0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0x8B,
+       // Bytes 2a00 - 2a3f
+       0xE3, 0x83, 0xBC, 0x4C, 0xE3, 0x82, 0xAD, 0xE3,
+       0x83, 0xA5, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xBC,
+       0x4C, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3,
+       0x83, 0xA9, 0xE3, 0x83, 0xA0, 0x4C, 0xE3, 0x82,
+       0xAF, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xBC, 0xE3,
+       0x83, 0x8D, 0x4C, 0xE3, 0x82, 0xB5, 0xE3, 0x82,
+       0xA4, 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0x4C,
+       0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0xE3, 0x83,
+       // Bytes 2a40 - 2a7f
+       0xBC, 0xE3, 0x82, 0xB9, 0x4C, 0xE3, 0x83, 0x8F,
+       0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3, 0x83,
+       0x84, 0x4C, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A,
+       0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0x4C, 0xE3,
+       0x83, 0x95, 0xE3, 0x82, 0xA3, 0xE3, 0x83, 0xBC,
+       0xE3, 0x83, 0x88, 0x4C, 0xE3, 0x83, 0x98, 0xE3,
+       0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xBF,
+       0x4C, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3,
+       // Bytes 2a80 - 2abf
+       0x83, 0x8B, 0xE3, 0x83, 0x92, 0x4C, 0xE3, 0x83,
+       0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xB3, 0xE3,
+       0x82, 0xB9, 0x4C, 0xE3, 0x83, 0x9B, 0xE3, 0x82,
+       0x99, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x88, 0x4C,
+       0xE3, 0x83, 0x9E, 0xE3, 0x82, 0xA4, 0xE3, 0x82,
+       0xAF, 0xE3, 0x83, 0xAD, 0x4C, 0xE3, 0x83, 0x9F,
+       0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAD, 0xE3, 0x83,
+       0xB3, 0x4C, 0xE3, 0x83, 0xA1, 0xE3, 0x83, 0xBC,
+       // Bytes 2ac0 - 2aff
+       0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x4C, 0xE3,
+       0x83, 0xAA, 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88,
+       0xE3, 0x83, 0xAB, 0x4C, 0xE3, 0x83, 0xAB, 0xE3,
+       0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC,
+       0x4C, 0xE6, 0xA0, 0xAA, 0xE5, 0xBC, 0x8F, 0xE4,
+       0xBC, 0x9A, 0xE7, 0xA4, 0xBE, 0x4E, 0x28, 0xE1,
+       0x84, 0x8B, 0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x92,
+       0xE1, 0x85, 0xAE, 0x29, 0x4F, 0xD8, 0xAC, 0xD9,
+       // Bytes 2b00 - 2b3f
+       0x84, 0x20, 0xD8, 0xAC, 0xD9, 0x84, 0xD8, 0xA7,
+       0xD9, 0x84, 0xD9, 0x87, 0x4F, 0xE3, 0x82, 0xA2,
+       0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83,
+       0xBC, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x82, 0xA2,
+       0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x98, 0xE3, 0x82,
+       0x9A, 0xE3, 0x82, 0xA2, 0x4F, 0xE3, 0x82, 0xAD,
+       0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xAF, 0xE3, 0x83,
+       0x83, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x82, 0xB5,
+       // Bytes 2b40 - 2b7f
+       0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x81, 0xE3, 0x83,
+       0xBC, 0xE3, 0x83, 0xA0, 0x4F, 0xE3, 0x83, 0x8F,
+       0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x83,
+       0xAC, 0xE3, 0x83, 0xAB, 0x4F, 0xE3, 0x83, 0x98,
+       0xE3, 0x82, 0xAF, 0xE3, 0x82, 0xBF, 0xE3, 0x83,
+       0xBC, 0xE3, 0x83, 0xAB, 0x4F, 0xE3, 0x83, 0x9B,
+       0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xA4, 0xE3, 0x83,
+       0xB3, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x83, 0x9E,
+       // Bytes 2b80 - 2bbf
+       0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xB7, 0xE3, 0x83,
+       0xA7, 0xE3, 0x83, 0xB3, 0x4F, 0xE3, 0x83, 0xA1,
+       0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83,
+       0x88, 0xE3, 0x83, 0xB3, 0x4F, 0xE3, 0x83, 0xAB,
+       0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x95, 0xE3, 0x82,
+       0x99, 0xE3, 0x83, 0xAB, 0x51, 0x28, 0xE1, 0x84,
+       0x8B, 0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x8C, 0xE1,
+       0x85, 0xA5, 0xE1, 0x86, 0xAB, 0x29, 0x52, 0xE3,
+       // Bytes 2bc0 - 2bff
+       0x82, 0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB,
+       0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0xE3, 0x83,
+       0xBC, 0x52, 0xE3, 0x82, 0xAD, 0xE3, 0x83, 0xAD,
+       0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83,
+       0xA9, 0xE3, 0x83, 0xA0, 0x52, 0xE3, 0x82, 0xAD,
+       0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xA1, 0xE3, 0x83,
+       0xBC, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x52,
+       0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83,
+       // Bytes 2c00 - 2c3f
+       0xA9, 0xE3, 0x83, 0xA0, 0xE3, 0x83, 0x88, 0xE3,
+       0x83, 0xB3, 0x52, 0xE3, 0x82, 0xAF, 0xE3, 0x83,
+       0xAB, 0xE3, 0x82, 0xBB, 0xE3, 0x82, 0x99, 0xE3,
+       0x82, 0xA4, 0xE3, 0x83, 0xAD, 0x52, 0xE3, 0x83,
+       0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3,
+       0x82, 0xBB, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88,
+       0x52, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3,
+       0x82, 0xA2, 0xE3, 0x82, 0xB9, 0xE3, 0x83, 0x88,
+       // Bytes 2c40 - 2c7f
+       0xE3, 0x83, 0xAB, 0x52, 0xE3, 0x83, 0x95, 0xE3,
+       0x82, 0x99, 0xE3, 0x83, 0x83, 0xE3, 0x82, 0xB7,
+       0xE3, 0x82, 0xA7, 0xE3, 0x83, 0xAB, 0x52, 0xE3,
+       0x83, 0x9F, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0x8F,
+       0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x83,
+       0xAB, 0x52, 0xE3, 0x83, 0xAC, 0xE3, 0x83, 0xB3,
+       0xE3, 0x83, 0x88, 0xE3, 0x82, 0xB1, 0xE3, 0x82,
+       0x99, 0xE3, 0x83, 0xB3, 0x61, 0xD8, 0xB5, 0xD9,
+       // Bytes 2c80 - 2cbf
+       0x84, 0xD9, 0x89, 0x20, 0xD8, 0xA7, 0xD9, 0x84,
+       0xD9, 0x84, 0xD9, 0x87, 0x20, 0xD8, 0xB9, 0xD9,
+       0x84, 0xD9, 0x8A, 0xD9, 0x87, 0x20, 0xD9, 0x88,
+       0xD8, 0xB3, 0xD9, 0x84, 0xD9, 0x85, 0x06, 0xE0,
+       0xA7, 0x87, 0xE0, 0xA6, 0xBE, 0x01, 0x06, 0xE0,
+       0xA7, 0x87, 0xE0, 0xA7, 0x97, 0x01, 0x06, 0xE0,
+       0xAD, 0x87, 0xE0, 0xAC, 0xBE, 0x01, 0x06, 0xE0,
+       0xAD, 0x87, 0xE0, 0xAD, 0x96, 0x01, 0x06, 0xE0,
+       // Bytes 2cc0 - 2cff
+       0xAD, 0x87, 0xE0, 0xAD, 0x97, 0x01, 0x06, 0xE0,
+       0xAE, 0x92, 0xE0, 0xAF, 0x97, 0x01, 0x06, 0xE0,
+       0xAF, 0x86, 0xE0, 0xAE, 0xBE, 0x01, 0x06, 0xE0,
+       0xAF, 0x86, 0xE0, 0xAF, 0x97, 0x01, 0x06, 0xE0,
+       0xAF, 0x87, 0xE0, 0xAE, 0xBE, 0x01, 0x06, 0xE0,
+       0xB2, 0xBF, 0xE0, 0xB3, 0x95, 0x01, 0x06, 0xE0,
+       0xB3, 0x86, 0xE0, 0xB3, 0x95, 0x01, 0x06, 0xE0,
+       0xB3, 0x86, 0xE0, 0xB3, 0x96, 0x01, 0x06, 0xE0,
+       // Bytes 2d00 - 2d3f
+       0xB5, 0x86, 0xE0, 0xB4, 0xBE, 0x01, 0x06, 0xE0,
+       0xB5, 0x86, 0xE0, 0xB5, 0x97, 0x01, 0x06, 0xE0,
+       0xB5, 0x87, 0xE0, 0xB4, 0xBE, 0x01, 0x06, 0xE0,
+       0xB7, 0x99, 0xE0, 0xB7, 0x9F, 0x01, 0x06, 0xE1,
+       0x80, 0xA5, 0xE1, 0x80, 0xAE, 0x01, 0x06, 0xE1,
+       0xAC, 0x85, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,
+       0xAC, 0x87, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,
+       0xAC, 0x89, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,
+       // Bytes 2d40 - 2d7f
+       0xAC, 0x8B, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,
+       0xAC, 0x8D, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,
+       0xAC, 0x91, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,
+       0xAC, 0xBA, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,
+       0xAC, 0xBC, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,
+       0xAC, 0xBE, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,
+       0xAC, 0xBF, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,
+       0xAD, 0x82, 0xE1, 0xAC, 0xB5, 0x01, 0x08, 0xF0,
+       // Bytes 2d80 - 2dbf
+       0x91, 0x84, 0xB1, 0xF0, 0x91, 0x84, 0xA7, 0x01,
+       0x08, 0xF0, 0x91, 0x84, 0xB2, 0xF0, 0x91, 0x84,
+       0xA7, 0x01, 0x08, 0xF0, 0x91, 0x8D, 0x87, 0xF0,
+       0x91, 0x8C, 0xBE, 0x01, 0x08, 0xF0, 0x91, 0x8D,
+       0x87, 0xF0, 0x91, 0x8D, 0x97, 0x01, 0x08, 0xF0,
+       0x91, 0x92, 0xB9, 0xF0, 0x91, 0x92, 0xB0, 0x01,
+       0x08, 0xF0, 0x91, 0x92, 0xB9, 0xF0, 0x91, 0x92,
+       0xBA, 0x01, 0x08, 0xF0, 0x91, 0x92, 0xB9, 0xF0,
+       // Bytes 2dc0 - 2dff
+       0x91, 0x92, 0xBD, 0x01, 0x08, 0xF0, 0x91, 0x96,
+       0xB8, 0xF0, 0x91, 0x96, 0xAF, 0x01, 0x08, 0xF0,
+       0x91, 0x96, 0xB9, 0xF0, 0x91, 0x96, 0xAF, 0x01,
+       0x09, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82, 0xE0,
+       0xB3, 0x95, 0x02, 0x09, 0xE0, 0xB7, 0x99, 0xE0,
+       0xB7, 0x8F, 0xE0, 0xB7, 0x8A, 0x12, 0x44, 0x44,
+       0x5A, 0xCC, 0x8C, 0xC9, 0x44, 0x44, 0x7A, 0xCC,
+       0x8C, 0xC9, 0x44, 0x64, 0x7A, 0xCC, 0x8C, 0xC9,
+       // Bytes 2e00 - 2e3f
+       0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x93, 0xC9,
+       0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x94, 0xC9,
+       0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x95, 0xB5,
+       0x46, 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA1, 0x01,
+       0x46, 0xE1, 0x84, 0x82, 0xE1, 0x85, 0xA1, 0x01,
+       0x46, 0xE1, 0x84, 0x83, 0xE1, 0x85, 0xA1, 0x01,
+       0x46, 0xE1, 0x84, 0x85, 0xE1, 0x85, 0xA1, 0x01,
+       0x46, 0xE1, 0x84, 0x86, 0xE1, 0x85, 0xA1, 0x01,
+       // Bytes 2e40 - 2e7f
+       0x46, 0xE1, 0x84, 0x87, 0xE1, 0x85, 0xA1, 0x01,
+       0x46, 0xE1, 0x84, 0x89, 0xE1, 0x85, 0xA1, 0x01,
+       0x46, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xA1, 0x01,
+       0x46, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xAE, 0x01,
+       0x46, 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xA1, 0x01,
+       0x46, 0xE1, 0x84, 0x8E, 0xE1, 0x85, 0xA1, 0x01,
+       0x46, 0xE1, 0x84, 0x8F, 0xE1, 0x85, 0xA1, 0x01,
+       0x46, 0xE1, 0x84, 0x90, 0xE1, 0x85, 0xA1, 0x01,
+       // Bytes 2e80 - 2ebf
+       0x46, 0xE1, 0x84, 0x91, 0xE1, 0x85, 0xA1, 0x01,
+       0x46, 0xE1, 0x84, 0x92, 0xE1, 0x85, 0xA1, 0x01,
+       0x49, 0xE3, 0x83, 0xA1, 0xE3, 0x82, 0xAB, 0xE3,
+       0x82, 0x99, 0x0D, 0x4C, 0xE1, 0x84, 0x8C, 0xE1,
+       0x85, 0xAE, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xB4,
+       0x01, 0x4C, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99,
+       0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0x0D, 0x4C,
+       0xE3, 0x82, 0xB3, 0xE3, 0x83, 0xBC, 0xE3, 0x83,
+       // Bytes 2ec0 - 2eff
+       0x9B, 0xE3, 0x82, 0x9A, 0x0D, 0x4C, 0xE3, 0x83,
+       0xA4, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0xE3,
+       0x82, 0x99, 0x0D, 0x4F, 0xE1, 0x84, 0x8E, 0xE1,
+       0x85, 0xA1, 0xE1, 0x86, 0xB7, 0xE1, 0x84, 0x80,
+       0xE1, 0x85, 0xA9, 0x01, 0x4F, 0xE3, 0x82, 0xA4,
+       0xE3, 0x83, 0x8B, 0xE3, 0x83, 0xB3, 0xE3, 0x82,
+       0xAF, 0xE3, 0x82, 0x99, 0x0D, 0x4F, 0xE3, 0x82,
+       0xB7, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xB3, 0xE3,
+       // Bytes 2f00 - 2f3f
+       0x82, 0xAF, 0xE3, 0x82, 0x99, 0x0D, 0x4F, 0xE3,
+       0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC,
+       0xE3, 0x82, 0xB7, 0xE3, 0x82, 0x99, 0x0D, 0x4F,
+       0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0xE3, 0x83,
+       0xB3, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D,
+       0x52, 0xE3, 0x82, 0xA8, 0xE3, 0x82, 0xB9, 0xE3,
+       0x82, 0xAF, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88,
+       0xE3, 0x82, 0x99, 0x0D, 0x52, 0xE3, 0x83, 0x95,
+       // Bytes 2f40 - 2f7f
+       0xE3, 0x82, 0xA1, 0xE3, 0x83, 0xA9, 0xE3, 0x83,
+       0x83, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D,
+       0x86, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82, 0x01,
+       0x86, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8F, 0x01,
+       0x03, 0x3C, 0xCC, 0xB8, 0x05, 0x03, 0x3D, 0xCC,
+       0xB8, 0x05, 0x03, 0x3E, 0xCC, 0xB8, 0x05, 0x03,
+       0x41, 0xCC, 0x80, 0xC9, 0x03, 0x41, 0xCC, 0x81,
+       0xC9, 0x03, 0x41, 0xCC, 0x83, 0xC9, 0x03, 0x41,
+       // Bytes 2f80 - 2fbf
+       0xCC, 0x84, 0xC9, 0x03, 0x41, 0xCC, 0x89, 0xC9,
+       0x03, 0x41, 0xCC, 0x8C, 0xC9, 0x03, 0x41, 0xCC,
+       0x8F, 0xC9, 0x03, 0x41, 0xCC, 0x91, 0xC9, 0x03,
+       0x41, 0xCC, 0xA5, 0xB5, 0x03, 0x41, 0xCC, 0xA8,
+       0xA5, 0x03, 0x42, 0xCC, 0x87, 0xC9, 0x03, 0x42,
+       0xCC, 0xA3, 0xB5, 0x03, 0x42, 0xCC, 0xB1, 0xB5,
+       0x03, 0x43, 0xCC, 0x81, 0xC9, 0x03, 0x43, 0xCC,
+       0x82, 0xC9, 0x03, 0x43, 0xCC, 0x87, 0xC9, 0x03,
+       // Bytes 2fc0 - 2fff
+       0x43, 0xCC, 0x8C, 0xC9, 0x03, 0x44, 0xCC, 0x87,
+       0xC9, 0x03, 0x44, 0xCC, 0x8C, 0xC9, 0x03, 0x44,
+       0xCC, 0xA3, 0xB5, 0x03, 0x44, 0xCC, 0xA7, 0xA5,
+       0x03, 0x44, 0xCC, 0xAD, 0xB5, 0x03, 0x44, 0xCC,
+       0xB1, 0xB5, 0x03, 0x45, 0xCC, 0x80, 0xC9, 0x03,
+       0x45, 0xCC, 0x81, 0xC9, 0x03, 0x45, 0xCC, 0x83,
+       0xC9, 0x03, 0x45, 0xCC, 0x86, 0xC9, 0x03, 0x45,
+       0xCC, 0x87, 0xC9, 0x03, 0x45, 0xCC, 0x88, 0xC9,
+       // Bytes 3000 - 303f
+       0x03, 0x45, 0xCC, 0x89, 0xC9, 0x03, 0x45, 0xCC,
+       0x8C, 0xC9, 0x03, 0x45, 0xCC, 0x8F, 0xC9, 0x03,
+       0x45, 0xCC, 0x91, 0xC9, 0x03, 0x45, 0xCC, 0xA8,
+       0xA5, 0x03, 0x45, 0xCC, 0xAD, 0xB5, 0x03, 0x45,
+       0xCC, 0xB0, 0xB5, 0x03, 0x46, 0xCC, 0x87, 0xC9,
+       0x03, 0x47, 0xCC, 0x81, 0xC9, 0x03, 0x47, 0xCC,
+       0x82, 0xC9, 0x03, 0x47, 0xCC, 0x84, 0xC9, 0x03,
+       0x47, 0xCC, 0x86, 0xC9, 0x03, 0x47, 0xCC, 0x87,
+       // Bytes 3040 - 307f
+       0xC9, 0x03, 0x47, 0xCC, 0x8C, 0xC9, 0x03, 0x47,
+       0xCC, 0xA7, 0xA5, 0x03, 0x48, 0xCC, 0x82, 0xC9,
+       0x03, 0x48, 0xCC, 0x87, 0xC9, 0x03, 0x48, 0xCC,
+       0x88, 0xC9, 0x03, 0x48, 0xCC, 0x8C, 0xC9, 0x03,
+       0x48, 0xCC, 0xA3, 0xB5, 0x03, 0x48, 0xCC, 0xA7,
+       0xA5, 0x03, 0x48, 0xCC, 0xAE, 0xB5, 0x03, 0x49,
+       0xCC, 0x80, 0xC9, 0x03, 0x49, 0xCC, 0x81, 0xC9,
+       0x03, 0x49, 0xCC, 0x82, 0xC9, 0x03, 0x49, 0xCC,
+       // Bytes 3080 - 30bf
+       0x83, 0xC9, 0x03, 0x49, 0xCC, 0x84, 0xC9, 0x03,
+       0x49, 0xCC, 0x86, 0xC9, 0x03, 0x49, 0xCC, 0x87,
+       0xC9, 0x03, 0x49, 0xCC, 0x89, 0xC9, 0x03, 0x49,
+       0xCC, 0x8C, 0xC9, 0x03, 0x49, 0xCC, 0x8F, 0xC9,
+       0x03, 0x49, 0xCC, 0x91, 0xC9, 0x03, 0x49, 0xCC,
+       0xA3, 0xB5, 0x03, 0x49, 0xCC, 0xA8, 0xA5, 0x03,
+       0x49, 0xCC, 0xB0, 0xB5, 0x03, 0x4A, 0xCC, 0x82,
+       0xC9, 0x03, 0x4B, 0xCC, 0x81, 0xC9, 0x03, 0x4B,
+       // Bytes 30c0 - 30ff
+       0xCC, 0x8C, 0xC9, 0x03, 0x4B, 0xCC, 0xA3, 0xB5,
+       0x03, 0x4B, 0xCC, 0xA7, 0xA5, 0x03, 0x4B, 0xCC,
+       0xB1, 0xB5, 0x03, 0x4C, 0xCC, 0x81, 0xC9, 0x03,
+       0x4C, 0xCC, 0x8C, 0xC9, 0x03, 0x4C, 0xCC, 0xA7,
+       0xA5, 0x03, 0x4C, 0xCC, 0xAD, 0xB5, 0x03, 0x4C,
+       0xCC, 0xB1, 0xB5, 0x03, 0x4D, 0xCC, 0x81, 0xC9,
+       0x03, 0x4D, 0xCC, 0x87, 0xC9, 0x03, 0x4D, 0xCC,
+       0xA3, 0xB5, 0x03, 0x4E, 0xCC, 0x80, 0xC9, 0x03,
+       // Bytes 3100 - 313f
+       0x4E, 0xCC, 0x81, 0xC9, 0x03, 0x4E, 0xCC, 0x83,
+       0xC9, 0x03, 0x4E, 0xCC, 0x87, 0xC9, 0x03, 0x4E,
+       0xCC, 0x8C, 0xC9, 0x03, 0x4E, 0xCC, 0xA3, 0xB5,
+       0x03, 0x4E, 0xCC, 0xA7, 0xA5, 0x03, 0x4E, 0xCC,
+       0xAD, 0xB5, 0x03, 0x4E, 0xCC, 0xB1, 0xB5, 0x03,
+       0x4F, 0xCC, 0x80, 0xC9, 0x03, 0x4F, 0xCC, 0x81,
+       0xC9, 0x03, 0x4F, 0xCC, 0x86, 0xC9, 0x03, 0x4F,
+       0xCC, 0x89, 0xC9, 0x03, 0x4F, 0xCC, 0x8B, 0xC9,
+       // Bytes 3140 - 317f
+       0x03, 0x4F, 0xCC, 0x8C, 0xC9, 0x03, 0x4F, 0xCC,
+       0x8F, 0xC9, 0x03, 0x4F, 0xCC, 0x91, 0xC9, 0x03,
+       0x50, 0xCC, 0x81, 0xC9, 0x03, 0x50, 0xCC, 0x87,
+       0xC9, 0x03, 0x52, 0xCC, 0x81, 0xC9, 0x03, 0x52,
+       0xCC, 0x87, 0xC9, 0x03, 0x52, 0xCC, 0x8C, 0xC9,
+       0x03, 0x52, 0xCC, 0x8F, 0xC9, 0x03, 0x52, 0xCC,
+       0x91, 0xC9, 0x03, 0x52, 0xCC, 0xA7, 0xA5, 0x03,
+       0x52, 0xCC, 0xB1, 0xB5, 0x03, 0x53, 0xCC, 0x82,
+       // Bytes 3180 - 31bf
+       0xC9, 0x03, 0x53, 0xCC, 0x87, 0xC9, 0x03, 0x53,
+       0xCC, 0xA6, 0xB5, 0x03, 0x53, 0xCC, 0xA7, 0xA5,
+       0x03, 0x54, 0xCC, 0x87, 0xC9, 0x03, 0x54, 0xCC,
+       0x8C, 0xC9, 0x03, 0x54, 0xCC, 0xA3, 0xB5, 0x03,
+       0x54, 0xCC, 0xA6, 0xB5, 0x03, 0x54, 0xCC, 0xA7,
+       0xA5, 0x03, 0x54, 0xCC, 0xAD, 0xB5, 0x03, 0x54,
+       0xCC, 0xB1, 0xB5, 0x03, 0x55, 0xCC, 0x80, 0xC9,
+       0x03, 0x55, 0xCC, 0x81, 0xC9, 0x03, 0x55, 0xCC,
+       // Bytes 31c0 - 31ff
+       0x82, 0xC9, 0x03, 0x55, 0xCC, 0x86, 0xC9, 0x03,
+       0x55, 0xCC, 0x89, 0xC9, 0x03, 0x55, 0xCC, 0x8A,
+       0xC9, 0x03, 0x55, 0xCC, 0x8B, 0xC9, 0x03, 0x55,
+       0xCC, 0x8C, 0xC9, 0x03, 0x55, 0xCC, 0x8F, 0xC9,
+       0x03, 0x55, 0xCC, 0x91, 0xC9, 0x03, 0x55, 0xCC,
+       0xA3, 0xB5, 0x03, 0x55, 0xCC, 0xA4, 0xB5, 0x03,
+       0x55, 0xCC, 0xA8, 0xA5, 0x03, 0x55, 0xCC, 0xAD,
+       0xB5, 0x03, 0x55, 0xCC, 0xB0, 0xB5, 0x03, 0x56,
+       // Bytes 3200 - 323f
+       0xCC, 0x83, 0xC9, 0x03, 0x56, 0xCC, 0xA3, 0xB5,
+       0x03, 0x57, 0xCC, 0x80, 0xC9, 0x03, 0x57, 0xCC,
+       0x81, 0xC9, 0x03, 0x57, 0xCC, 0x82, 0xC9, 0x03,
+       0x57, 0xCC, 0x87, 0xC9, 0x03, 0x57, 0xCC, 0x88,
+       0xC9, 0x03, 0x57, 0xCC, 0xA3, 0xB5, 0x03, 0x58,
+       0xCC, 0x87, 0xC9, 0x03, 0x58, 0xCC, 0x88, 0xC9,
+       0x03, 0x59, 0xCC, 0x80, 0xC9, 0x03, 0x59, 0xCC,
+       0x81, 0xC9, 0x03, 0x59, 0xCC, 0x82, 0xC9, 0x03,
+       // Bytes 3240 - 327f
+       0x59, 0xCC, 0x83, 0xC9, 0x03, 0x59, 0xCC, 0x84,
+       0xC9, 0x03, 0x59, 0xCC, 0x87, 0xC9, 0x03, 0x59,
+       0xCC, 0x88, 0xC9, 0x03, 0x59, 0xCC, 0x89, 0xC9,
+       0x03, 0x59, 0xCC, 0xA3, 0xB5, 0x03, 0x5A, 0xCC,
+       0x81, 0xC9, 0x03, 0x5A, 0xCC, 0x82, 0xC9, 0x03,
+       0x5A, 0xCC, 0x87, 0xC9, 0x03, 0x5A, 0xCC, 0x8C,
+       0xC9, 0x03, 0x5A, 0xCC, 0xA3, 0xB5, 0x03, 0x5A,
+       0xCC, 0xB1, 0xB5, 0x03, 0x61, 0xCC, 0x80, 0xC9,
+       // Bytes 3280 - 32bf
+       0x03, 0x61, 0xCC, 0x81, 0xC9, 0x03, 0x61, 0xCC,
+       0x83, 0xC9, 0x03, 0x61, 0xCC, 0x84, 0xC9, 0x03,
+       0x61, 0xCC, 0x89, 0xC9, 0x03, 0x61, 0xCC, 0x8C,
+       0xC9, 0x03, 0x61, 0xCC, 0x8F, 0xC9, 0x03, 0x61,
+       0xCC, 0x91, 0xC9, 0x03, 0x61, 0xCC, 0xA5, 0xB5,
+       0x03, 0x61, 0xCC, 0xA8, 0xA5, 0x03, 0x62, 0xCC,
+       0x87, 0xC9, 0x03, 0x62, 0xCC, 0xA3, 0xB5, 0x03,
+       0x62, 0xCC, 0xB1, 0xB5, 0x03, 0x63, 0xCC, 0x81,
+       // Bytes 32c0 - 32ff
+       0xC9, 0x03, 0x63, 0xCC, 0x82, 0xC9, 0x03, 0x63,
+       0xCC, 0x87, 0xC9, 0x03, 0x63, 0xCC, 0x8C, 0xC9,
+       0x03, 0x64, 0xCC, 0x87, 0xC9, 0x03, 0x64, 0xCC,
+       0x8C, 0xC9, 0x03, 0x64, 0xCC, 0xA3, 0xB5, 0x03,
+       0x64, 0xCC, 0xA7, 0xA5, 0x03, 0x64, 0xCC, 0xAD,
+       0xB5, 0x03, 0x64, 0xCC, 0xB1, 0xB5, 0x03, 0x65,
+       0xCC, 0x80, 0xC9, 0x03, 0x65, 0xCC, 0x81, 0xC9,
+       0x03, 0x65, 0xCC, 0x83, 0xC9, 0x03, 0x65, 0xCC,
+       // Bytes 3300 - 333f
+       0x86, 0xC9, 0x03, 0x65, 0xCC, 0x87, 0xC9, 0x03,
+       0x65, 0xCC, 0x88, 0xC9, 0x03, 0x65, 0xCC, 0x89,
+       0xC9, 0x03, 0x65, 0xCC, 0x8C, 0xC9, 0x03, 0x65,
+       0xCC, 0x8F, 0xC9, 0x03, 0x65, 0xCC, 0x91, 0xC9,
+       0x03, 0x65, 0xCC, 0xA8, 0xA5, 0x03, 0x65, 0xCC,
+       0xAD, 0xB5, 0x03, 0x65, 0xCC, 0xB0, 0xB5, 0x03,
+       0x66, 0xCC, 0x87, 0xC9, 0x03, 0x67, 0xCC, 0x81,
+       0xC9, 0x03, 0x67, 0xCC, 0x82, 0xC9, 0x03, 0x67,
+       // Bytes 3340 - 337f
+       0xCC, 0x84, 0xC9, 0x03, 0x67, 0xCC, 0x86, 0xC9,
+       0x03, 0x67, 0xCC, 0x87, 0xC9, 0x03, 0x67, 0xCC,
+       0x8C, 0xC9, 0x03, 0x67, 0xCC, 0xA7, 0xA5, 0x03,
+       0x68, 0xCC, 0x82, 0xC9, 0x03, 0x68, 0xCC, 0x87,
+       0xC9, 0x03, 0x68, 0xCC, 0x88, 0xC9, 0x03, 0x68,
+       0xCC, 0x8C, 0xC9, 0x03, 0x68, 0xCC, 0xA3, 0xB5,
+       0x03, 0x68, 0xCC, 0xA7, 0xA5, 0x03, 0x68, 0xCC,
+       0xAE, 0xB5, 0x03, 0x68, 0xCC, 0xB1, 0xB5, 0x03,
+       // Bytes 3380 - 33bf
+       0x69, 0xCC, 0x80, 0xC9, 0x03, 0x69, 0xCC, 0x81,
+       0xC9, 0x03, 0x69, 0xCC, 0x82, 0xC9, 0x03, 0x69,
+       0xCC, 0x83, 0xC9, 0x03, 0x69, 0xCC, 0x84, 0xC9,
+       0x03, 0x69, 0xCC, 0x86, 0xC9, 0x03, 0x69, 0xCC,
+       0x89, 0xC9, 0x03, 0x69, 0xCC, 0x8C, 0xC9, 0x03,
+       0x69, 0xCC, 0x8F, 0xC9, 0x03, 0x69, 0xCC, 0x91,
+       0xC9, 0x03, 0x69, 0xCC, 0xA3, 0xB5, 0x03, 0x69,
+       0xCC, 0xA8, 0xA5, 0x03, 0x69, 0xCC, 0xB0, 0xB5,
+       // Bytes 33c0 - 33ff
+       0x03, 0x6A, 0xCC, 0x82, 0xC9, 0x03, 0x6A, 0xCC,
+       0x8C, 0xC9, 0x03, 0x6B, 0xCC, 0x81, 0xC9, 0x03,
+       0x6B, 0xCC, 0x8C, 0xC9, 0x03, 0x6B, 0xCC, 0xA3,
+       0xB5, 0x03, 0x6B, 0xCC, 0xA7, 0xA5, 0x03, 0x6B,
+       0xCC, 0xB1, 0xB5, 0x03, 0x6C, 0xCC, 0x81, 0xC9,
+       0x03, 0x6C, 0xCC, 0x8C, 0xC9, 0x03, 0x6C, 0xCC,
+       0xA7, 0xA5, 0x03, 0x6C, 0xCC, 0xAD, 0xB5, 0x03,
+       0x6C, 0xCC, 0xB1, 0xB5, 0x03, 0x6D, 0xCC, 0x81,
+       // Bytes 3400 - 343f
+       0xC9, 0x03, 0x6D, 0xCC, 0x87, 0xC9, 0x03, 0x6D,
+       0xCC, 0xA3, 0xB5, 0x03, 0x6E, 0xCC, 0x80, 0xC9,
+       0x03, 0x6E, 0xCC, 0x81, 0xC9, 0x03, 0x6E, 0xCC,
+       0x83, 0xC9, 0x03, 0x6E, 0xCC, 0x87, 0xC9, 0x03,
+       0x6E, 0xCC, 0x8C, 0xC9, 0x03, 0x6E, 0xCC, 0xA3,
+       0xB5, 0x03, 0x6E, 0xCC, 0xA7, 0xA5, 0x03, 0x6E,
+       0xCC, 0xAD, 0xB5, 0x03, 0x6E, 0xCC, 0xB1, 0xB5,
+       0x03, 0x6F, 0xCC, 0x80, 0xC9, 0x03, 0x6F, 0xCC,
+       // Bytes 3440 - 347f
+       0x81, 0xC9, 0x03, 0x6F, 0xCC, 0x86, 0xC9, 0x03,
+       0x6F, 0xCC, 0x89, 0xC9, 0x03, 0x6F, 0xCC, 0x8B,
+       0xC9, 0x03, 0x6F, 0xCC, 0x8C, 0xC9, 0x03, 0x6F,
+       0xCC, 0x8F, 0xC9, 0x03, 0x6F, 0xCC, 0x91, 0xC9,
+       0x03, 0x70, 0xCC, 0x81, 0xC9, 0x03, 0x70, 0xCC,
+       0x87, 0xC9, 0x03, 0x72, 0xCC, 0x81, 0xC9, 0x03,
+       0x72, 0xCC, 0x87, 0xC9, 0x03, 0x72, 0xCC, 0x8C,
+       0xC9, 0x03, 0x72, 0xCC, 0x8F, 0xC9, 0x03, 0x72,
+       // Bytes 3480 - 34bf
+       0xCC, 0x91, 0xC9, 0x03, 0x72, 0xCC, 0xA7, 0xA5,
+       0x03, 0x72, 0xCC, 0xB1, 0xB5, 0x03, 0x73, 0xCC,
+       0x82, 0xC9, 0x03, 0x73, 0xCC, 0x87, 0xC9, 0x03,
+       0x73, 0xCC, 0xA6, 0xB5, 0x03, 0x73, 0xCC, 0xA7,
+       0xA5, 0x03, 0x74, 0xCC, 0x87, 0xC9, 0x03, 0x74,
+       0xCC, 0x88, 0xC9, 0x03, 0x74, 0xCC, 0x8C, 0xC9,
+       0x03, 0x74, 0xCC, 0xA3, 0xB5, 0x03, 0x74, 0xCC,
+       0xA6, 0xB5, 0x03, 0x74, 0xCC, 0xA7, 0xA5, 0x03,
+       // Bytes 34c0 - 34ff
+       0x74, 0xCC, 0xAD, 0xB5, 0x03, 0x74, 0xCC, 0xB1,
+       0xB5, 0x03, 0x75, 0xCC, 0x80, 0xC9, 0x03, 0x75,
+       0xCC, 0x81, 0xC9, 0x03, 0x75, 0xCC, 0x82, 0xC9,
+       0x03, 0x75, 0xCC, 0x86, 0xC9, 0x03, 0x75, 0xCC,
+       0x89, 0xC9, 0x03, 0x75, 0xCC, 0x8A, 0xC9, 0x03,
+       0x75, 0xCC, 0x8B, 0xC9, 0x03, 0x75, 0xCC, 0x8C,
+       0xC9, 0x03, 0x75, 0xCC, 0x8F, 0xC9, 0x03, 0x75,
+       0xCC, 0x91, 0xC9, 0x03, 0x75, 0xCC, 0xA3, 0xB5,
+       // Bytes 3500 - 353f
+       0x03, 0x75, 0xCC, 0xA4, 0xB5, 0x03, 0x75, 0xCC,
+       0xA8, 0xA5, 0x03, 0x75, 0xCC, 0xAD, 0xB5, 0x03,
+       0x75, 0xCC, 0xB0, 0xB5, 0x03, 0x76, 0xCC, 0x83,
+       0xC9, 0x03, 0x76, 0xCC, 0xA3, 0xB5, 0x03, 0x77,
+       0xCC, 0x80, 0xC9, 0x03, 0x77, 0xCC, 0x81, 0xC9,
+       0x03, 0x77, 0xCC, 0x82, 0xC9, 0x03, 0x77, 0xCC,
+       0x87, 0xC9, 0x03, 0x77, 0xCC, 0x88, 0xC9, 0x03,
+       0x77, 0xCC, 0x8A, 0xC9, 0x03, 0x77, 0xCC, 0xA3,
+       // Bytes 3540 - 357f
+       0xB5, 0x03, 0x78, 0xCC, 0x87, 0xC9, 0x03, 0x78,
+       0xCC, 0x88, 0xC9, 0x03, 0x79, 0xCC, 0x80, 0xC9,
+       0x03, 0x79, 0xCC, 0x81, 0xC9, 0x03, 0x79, 0xCC,
+       0x82, 0xC9, 0x03, 0x79, 0xCC, 0x83, 0xC9, 0x03,
+       0x79, 0xCC, 0x84, 0xC9, 0x03, 0x79, 0xCC, 0x87,
+       0xC9, 0x03, 0x79, 0xCC, 0x88, 0xC9, 0x03, 0x79,
+       0xCC, 0x89, 0xC9, 0x03, 0x79, 0xCC, 0x8A, 0xC9,
+       0x03, 0x79, 0xCC, 0xA3, 0xB5, 0x03, 0x7A, 0xCC,
+       // Bytes 3580 - 35bf
+       0x81, 0xC9, 0x03, 0x7A, 0xCC, 0x82, 0xC9, 0x03,
+       0x7A, 0xCC, 0x87, 0xC9, 0x03, 0x7A, 0xCC, 0x8C,
+       0xC9, 0x03, 0x7A, 0xCC, 0xA3, 0xB5, 0x03, 0x7A,
+       0xCC, 0xB1, 0xB5, 0x04, 0xC2, 0xA8, 0xCC, 0x80,
+       0xCA, 0x04, 0xC2, 0xA8, 0xCC, 0x81, 0xCA, 0x04,
+       0xC2, 0xA8, 0xCD, 0x82, 0xCA, 0x04, 0xC3, 0x86,
+       0xCC, 0x81, 0xC9, 0x04, 0xC3, 0x86, 0xCC, 0x84,
+       0xC9, 0x04, 0xC3, 0x98, 0xCC, 0x81, 0xC9, 0x04,
+       // Bytes 35c0 - 35ff
+       0xC3, 0xA6, 0xCC, 0x81, 0xC9, 0x04, 0xC3, 0xA6,
+       0xCC, 0x84, 0xC9, 0x04, 0xC3, 0xB8, 0xCC, 0x81,
+       0xC9, 0x04, 0xC5, 0xBF, 0xCC, 0x87, 0xC9, 0x04,
+       0xC6, 0xB7, 0xCC, 0x8C, 0xC9, 0x04, 0xCA, 0x92,
+       0xCC, 0x8C, 0xC9, 0x04, 0xCE, 0x91, 0xCC, 0x80,
+       0xC9, 0x04, 0xCE, 0x91, 0xCC, 0x81, 0xC9, 0x04,
+       0xCE, 0x91, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0x91,
+       0xCC, 0x86, 0xC9, 0x04, 0xCE, 0x91, 0xCD, 0x85,
+       // Bytes 3600 - 363f
+       0xD9, 0x04, 0xCE, 0x95, 0xCC, 0x80, 0xC9, 0x04,
+       0xCE, 0x95, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0x97,
+       0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x97, 0xCC, 0x81,
+       0xC9, 0x04, 0xCE, 0x97, 0xCD, 0x85, 0xD9, 0x04,
+       0xCE, 0x99, 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x99,
+       0xCC, 0x81, 0xC9, 0x04, 0xCE, 0x99, 0xCC, 0x84,
+       0xC9, 0x04, 0xCE, 0x99, 0xCC, 0x86, 0xC9, 0x04,
+       0xCE, 0x99, 0xCC, 0x88, 0xC9, 0x04, 0xCE, 0x9F,
+       // Bytes 3640 - 367f
+       0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x9F, 0xCC, 0x81,
+       0xC9, 0x04, 0xCE, 0xA1, 0xCC, 0x94, 0xC9, 0x04,
+       0xCE, 0xA5, 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0xA5,
+       0xCC, 0x81, 0xC9, 0x04, 0xCE, 0xA5, 0xCC, 0x84,
+       0xC9, 0x04, 0xCE, 0xA5, 0xCC, 0x86, 0xC9, 0x04,
+       0xCE, 0xA5, 0xCC, 0x88, 0xC9, 0x04, 0xCE, 0xA9,
+       0xCC, 0x80, 0xC9, 0x04, 0xCE, 0xA9, 0xCC, 0x81,
+       0xC9, 0x04, 0xCE, 0xA9, 0xCD, 0x85, 0xD9, 0x04,
+       // Bytes 3680 - 36bf
+       0xCE, 0xB1, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0xB1,
+       0xCC, 0x86, 0xC9, 0x04, 0xCE, 0xB1, 0xCD, 0x85,
+       0xD9, 0x04, 0xCE, 0xB5, 0xCC, 0x80, 0xC9, 0x04,
+       0xCE, 0xB5, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0xB7,
+       0xCD, 0x85, 0xD9, 0x04, 0xCE, 0xB9, 0xCC, 0x80,
+       0xC9, 0x04, 0xCE, 0xB9, 0xCC, 0x81, 0xC9, 0x04,
+       0xCE, 0xB9, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0xB9,
+       0xCC, 0x86, 0xC9, 0x04, 0xCE, 0xB9, 0xCD, 0x82,
+       // Bytes 36c0 - 36ff
+       0xC9, 0x04, 0xCE, 0xBF, 0xCC, 0x80, 0xC9, 0x04,
+       0xCE, 0xBF, 0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x81,
+       0xCC, 0x93, 0xC9, 0x04, 0xCF, 0x81, 0xCC, 0x94,
+       0xC9, 0x04, 0xCF, 0x85, 0xCC, 0x80, 0xC9, 0x04,
+       0xCF, 0x85, 0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x85,
+       0xCC, 0x84, 0xC9, 0x04, 0xCF, 0x85, 0xCC, 0x86,
+       0xC9, 0x04, 0xCF, 0x85, 0xCD, 0x82, 0xC9, 0x04,
+       0xCF, 0x89, 0xCD, 0x85, 0xD9, 0x04, 0xCF, 0x92,
+       // Bytes 3700 - 373f
+       0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x92, 0xCC, 0x88,
+       0xC9, 0x04, 0xD0, 0x86, 0xCC, 0x88, 0xC9, 0x04,
+       0xD0, 0x90, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0x90,
+       0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x93, 0xCC, 0x81,
+       0xC9, 0x04, 0xD0, 0x95, 0xCC, 0x80, 0xC9, 0x04,
+       0xD0, 0x95, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0x95,
+       0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x96, 0xCC, 0x86,
+       0xC9, 0x04, 0xD0, 0x96, 0xCC, 0x88, 0xC9, 0x04,
+       // Bytes 3740 - 377f
+       0xD0, 0x97, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x98,
+       0xCC, 0x80, 0xC9, 0x04, 0xD0, 0x98, 0xCC, 0x84,
+       0xC9, 0x04, 0xD0, 0x98, 0xCC, 0x86, 0xC9, 0x04,
+       0xD0, 0x98, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x9A,
+       0xCC, 0x81, 0xC9, 0x04, 0xD0, 0x9E, 0xCC, 0x88,
+       0xC9, 0x04, 0xD0, 0xA3, 0xCC, 0x84, 0xC9, 0x04,
+       0xD0, 0xA3, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xA3,
+       0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xA3, 0xCC, 0x8B,
+       // Bytes 3780 - 37bf
+       0xC9, 0x04, 0xD0, 0xA7, 0xCC, 0x88, 0xC9, 0x04,
+       0xD0, 0xAB, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xAD,
+       0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xB0, 0xCC, 0x86,
+       0xC9, 0x04, 0xD0, 0xB0, 0xCC, 0x88, 0xC9, 0x04,
+       0xD0, 0xB3, 0xCC, 0x81, 0xC9, 0x04, 0xD0, 0xB5,
+       0xCC, 0x80, 0xC9, 0x04, 0xD0, 0xB5, 0xCC, 0x86,
+       0xC9, 0x04, 0xD0, 0xB5, 0xCC, 0x88, 0xC9, 0x04,
+       0xD0, 0xB6, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xB6,
+       // Bytes 37c0 - 37ff
+       0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xB7, 0xCC, 0x88,
+       0xC9, 0x04, 0xD0, 0xB8, 0xCC, 0x80, 0xC9, 0x04,
+       0xD0, 0xB8, 0xCC, 0x84, 0xC9, 0x04, 0xD0, 0xB8,
+       0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xB8, 0xCC, 0x88,
+       0xC9, 0x04, 0xD0, 0xBA, 0xCC, 0x81, 0xC9, 0x04,
+       0xD0, 0xBE, 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0x83,
+       0xCC, 0x84, 0xC9, 0x04, 0xD1, 0x83, 0xCC, 0x86,
+       0xC9, 0x04, 0xD1, 0x83, 0xCC, 0x88, 0xC9, 0x04,
+       // Bytes 3800 - 383f
+       0xD1, 0x83, 0xCC, 0x8B, 0xC9, 0x04, 0xD1, 0x87,
+       0xCC, 0x88, 0xC9, 0x04, 0xD1, 0x8B, 0xCC, 0x88,
+       0xC9, 0x04, 0xD1, 0x8D, 0xCC, 0x88, 0xC9, 0x04,
+       0xD1, 0x96, 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0xB4,
+       0xCC, 0x8F, 0xC9, 0x04, 0xD1, 0xB5, 0xCC, 0x8F,
+       0xC9, 0x04, 0xD3, 0x98, 0xCC, 0x88, 0xC9, 0x04,
+       0xD3, 0x99, 0xCC, 0x88, 0xC9, 0x04, 0xD3, 0xA8,
+       0xCC, 0x88, 0xC9, 0x04, 0xD3, 0xA9, 0xCC, 0x88,
+       // Bytes 3840 - 387f
+       0xC9, 0x04, 0xD8, 0xA7, 0xD9, 0x93, 0xC9, 0x04,
+       0xD8, 0xA7, 0xD9, 0x94, 0xC9, 0x04, 0xD8, 0xA7,
+       0xD9, 0x95, 0xB5, 0x04, 0xD9, 0x88, 0xD9, 0x94,
+       0xC9, 0x04, 0xD9, 0x8A, 0xD9, 0x94, 0xC9, 0x04,
+       0xDB, 0x81, 0xD9, 0x94, 0xC9, 0x04, 0xDB, 0x92,
+       0xD9, 0x94, 0xC9, 0x04, 0xDB, 0x95, 0xD9, 0x94,
+       0xC9, 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x80, 0xCA,
+       0x05, 0x41, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05,
+       // Bytes 3880 - 38bf
+       0x41, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x41,
+       0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x41, 0xCC,
+       0x86, 0xCC, 0x80, 0xCA, 0x05, 0x41, 0xCC, 0x86,
+       0xCC, 0x81, 0xCA, 0x05, 0x41, 0xCC, 0x86, 0xCC,
+       0x83, 0xCA, 0x05, 0x41, 0xCC, 0x86, 0xCC, 0x89,
+       0xCA, 0x05, 0x41, 0xCC, 0x87, 0xCC, 0x84, 0xCA,
+       0x05, 0x41, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05,
+       0x41, 0xCC, 0x8A, 0xCC, 0x81, 0xCA, 0x05, 0x41,
+       // Bytes 38c0 - 38ff
+       0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x41, 0xCC,
+       0xA3, 0xCC, 0x86, 0xCA, 0x05, 0x43, 0xCC, 0xA7,
+       0xCC, 0x81, 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC,
+       0x80, 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x81,
+       0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x83, 0xCA,
+       0x05, 0x45, 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05,
+       0x45, 0xCC, 0x84, 0xCC, 0x80, 0xCA, 0x05, 0x45,
+       0xCC, 0x84, 0xCC, 0x81, 0xCA, 0x05, 0x45, 0xCC,
+       // Bytes 3900 - 393f
+       0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x45, 0xCC, 0xA7,
+       0xCC, 0x86, 0xCA, 0x05, 0x49, 0xCC, 0x88, 0xCC,
+       0x81, 0xCA, 0x05, 0x4C, 0xCC, 0xA3, 0xCC, 0x84,
+       0xCA, 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x80, 0xCA,
+       0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05,
+       0x4F, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x4F,
+       0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x4F, 0xCC,
+       0x83, 0xCC, 0x81, 0xCA, 0x05, 0x4F, 0xCC, 0x83,
+       // Bytes 3940 - 397f
+       0xCC, 0x84, 0xCA, 0x05, 0x4F, 0xCC, 0x83, 0xCC,
+       0x88, 0xCA, 0x05, 0x4F, 0xCC, 0x84, 0xCC, 0x80,
+       0xCA, 0x05, 0x4F, 0xCC, 0x84, 0xCC, 0x81, 0xCA,
+       0x05, 0x4F, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05,
+       0x4F, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x4F,
+       0xCC, 0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x4F, 0xCC,
+       0x9B, 0xCC, 0x81, 0xCA, 0x05, 0x4F, 0xCC, 0x9B,
+       0xCC, 0x83, 0xCA, 0x05, 0x4F, 0xCC, 0x9B, 0xCC,
+       // Bytes 3980 - 39bf
+       0x89, 0xCA, 0x05, 0x4F, 0xCC, 0x9B, 0xCC, 0xA3,
+       0xB6, 0x05, 0x4F, 0xCC, 0xA3, 0xCC, 0x82, 0xCA,
+       0x05, 0x4F, 0xCC, 0xA8, 0xCC, 0x84, 0xCA, 0x05,
+       0x52, 0xCC, 0xA3, 0xCC, 0x84, 0xCA, 0x05, 0x53,
+       0xCC, 0x81, 0xCC, 0x87, 0xCA, 0x05, 0x53, 0xCC,
+       0x8C, 0xCC, 0x87, 0xCA, 0x05, 0x53, 0xCC, 0xA3,
+       0xCC, 0x87, 0xCA, 0x05, 0x55, 0xCC, 0x83, 0xCC,
+       0x81, 0xCA, 0x05, 0x55, 0xCC, 0x84, 0xCC, 0x88,
+       // Bytes 39c0 - 39ff
+       0xCA, 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x80, 0xCA,
+       0x05, 0x55, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x05,
+       0x55, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x55,
+       0xCC, 0x88, 0xCC, 0x8C, 0xCA, 0x05, 0x55, 0xCC,
+       0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x55, 0xCC, 0x9B,
+       0xCC, 0x81, 0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC,
+       0x83, 0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0x89,
+       0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6,
+       // Bytes 3a00 - 3a3f
+       0x05, 0x61, 0xCC, 0x82, 0xCC, 0x80, 0xCA, 0x05,
+       0x61, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, 0x61,
+       0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x61, 0xCC,
+       0x82, 0xCC, 0x89, 0xCA, 0x05, 0x61, 0xCC, 0x86,
+       0xCC, 0x80, 0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC,
+       0x81, 0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC, 0x83,
+       0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC, 0x89, 0xCA,
+       0x05, 0x61, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05,
+       // Bytes 3a40 - 3a7f
+       0x61, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x61,
+       0xCC, 0x8A, 0xCC, 0x81, 0xCA, 0x05, 0x61, 0xCC,
+       0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x61, 0xCC, 0xA3,
+       0xCC, 0x86, 0xCA, 0x05, 0x63, 0xCC, 0xA7, 0xCC,
+       0x81, 0xCA, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x80,
+       0xCA, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x81, 0xCA,
+       0x05, 0x65, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05,
+       0x65, 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x65,
+       // Bytes 3a80 - 3abf
+       0xCC, 0x84, 0xCC, 0x80, 0xCA, 0x05, 0x65, 0xCC,
+       0x84, 0xCC, 0x81, 0xCA, 0x05, 0x65, 0xCC, 0xA3,
+       0xCC, 0x82, 0xCA, 0x05, 0x65, 0xCC, 0xA7, 0xCC,
+       0x86, 0xCA, 0x05, 0x69, 0xCC, 0x88, 0xCC, 0x81,
+       0xCA, 0x05, 0x6C, 0xCC, 0xA3, 0xCC, 0x84, 0xCA,
+       0x05, 0x6F, 0xCC, 0x82, 0xCC, 0x80, 0xCA, 0x05,
+       0x6F, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, 0x6F,
+       0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x6F, 0xCC,
+       // Bytes 3ac0 - 3aff
+       0x82, 0xCC, 0x89, 0xCA, 0x05, 0x6F, 0xCC, 0x83,
+       0xCC, 0x81, 0xCA, 0x05, 0x6F, 0xCC, 0x83, 0xCC,
+       0x84, 0xCA, 0x05, 0x6F, 0xCC, 0x83, 0xCC, 0x88,
+       0xCA, 0x05, 0x6F, 0xCC, 0x84, 0xCC, 0x80, 0xCA,
+       0x05, 0x6F, 0xCC, 0x84, 0xCC, 0x81, 0xCA, 0x05,
+       0x6F, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05, 0x6F,
+       0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x6F, 0xCC,
+       0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x6F, 0xCC, 0x9B,
+       // Bytes 3b00 - 3b3f
+       0xCC, 0x81, 0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC,
+       0x83, 0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0x89,
+       0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6,
+       0x05, 0x6F, 0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05,
+       0x6F, 0xCC, 0xA8, 0xCC, 0x84, 0xCA, 0x05, 0x72,
+       0xCC, 0xA3, 0xCC, 0x84, 0xCA, 0x05, 0x73, 0xCC,
+       0x81, 0xCC, 0x87, 0xCA, 0x05, 0x73, 0xCC, 0x8C,
+       0xCC, 0x87, 0xCA, 0x05, 0x73, 0xCC, 0xA3, 0xCC,
+       // Bytes 3b40 - 3b7f
+       0x87, 0xCA, 0x05, 0x75, 0xCC, 0x83, 0xCC, 0x81,
+       0xCA, 0x05, 0x75, 0xCC, 0x84, 0xCC, 0x88, 0xCA,
+       0x05, 0x75, 0xCC, 0x88, 0xCC, 0x80, 0xCA, 0x05,
+       0x75, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x05, 0x75,
+       0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x75, 0xCC,
+       0x88, 0xCC, 0x8C, 0xCA, 0x05, 0x75, 0xCC, 0x9B,
+       0xCC, 0x80, 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC,
+       0x81, 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x83,
+       // Bytes 3b80 - 3bbf
+       0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x89, 0xCA,
+       0x05, 0x75, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6, 0x05,
+       0xE1, 0xBE, 0xBF, 0xCC, 0x80, 0xCA, 0x05, 0xE1,
+       0xBE, 0xBF, 0xCC, 0x81, 0xCA, 0x05, 0xE1, 0xBE,
+       0xBF, 0xCD, 0x82, 0xCA, 0x05, 0xE1, 0xBF, 0xBE,
+       0xCC, 0x80, 0xCA, 0x05, 0xE1, 0xBF, 0xBE, 0xCC,
+       0x81, 0xCA, 0x05, 0xE1, 0xBF, 0xBE, 0xCD, 0x82,
+       0xCA, 0x05, 0xE2, 0x86, 0x90, 0xCC, 0xB8, 0x05,
+       // Bytes 3bc0 - 3bff
+       0x05, 0xE2, 0x86, 0x92, 0xCC, 0xB8, 0x05, 0x05,
+       0xE2, 0x86, 0x94, 0xCC, 0xB8, 0x05, 0x05, 0xE2,
+       0x87, 0x90, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87,
+       0x92, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87, 0x94,
+       0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x88, 0x83, 0xCC,
+       0xB8, 0x05, 0x05, 0xE2, 0x88, 0x88, 0xCC, 0xB8,
+       0x05, 0x05, 0xE2, 0x88, 0x8B, 0xCC, 0xB8, 0x05,
+       0x05, 0xE2, 0x88, 0xA3, 0xCC, 0xB8, 0x05, 0x05,
+       // Bytes 3c00 - 3c3f
+       0xE2, 0x88, 0xA5, 0xCC, 0xB8, 0x05, 0x05, 0xE2,
+       0x88, 0xBC, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89,
+       0x83, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x85,
+       0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x88, 0xCC,
+       0xB8, 0x05, 0x05, 0xE2, 0x89, 0x8D, 0xCC, 0xB8,
+       0x05, 0x05, 0xE2, 0x89, 0xA1, 0xCC, 0xB8, 0x05,
+       0x05, 0xE2, 0x89, 0xA4, 0xCC, 0xB8, 0x05, 0x05,
+       0xE2, 0x89, 0xA5, 0xCC, 0xB8, 0x05, 0x05, 0xE2,
+       // Bytes 3c40 - 3c7f
+       0x89, 0xB2, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89,
+       0xB3, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB6,
+       0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB7, 0xCC,
+       0xB8, 0x05, 0x05, 0xE2, 0x89, 0xBA, 0xCC, 0xB8,
+       0x05, 0x05, 0xE2, 0x89, 0xBB, 0xCC, 0xB8, 0x05,
+       0x05, 0xE2, 0x89, 0xBC, 0xCC, 0xB8, 0x05, 0x05,
+       0xE2, 0x89, 0xBD, 0xCC, 0xB8, 0x05, 0x05, 0xE2,
+       0x8A, 0x82, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A,
+       // Bytes 3c80 - 3cbf
+       0x83, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x86,
+       0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x87, 0xCC,
+       0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x91, 0xCC, 0xB8,
+       0x05, 0x05, 0xE2, 0x8A, 0x92, 0xCC, 0xB8, 0x05,
+       0x05, 0xE2, 0x8A, 0xA2, 0xCC, 0xB8, 0x05, 0x05,
+       0xE2, 0x8A, 0xA8, 0xCC, 0xB8, 0x05, 0x05, 0xE2,
+       0x8A, 0xA9, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A,
+       0xAB, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB2,
+       // Bytes 3cc0 - 3cff
+       0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB3, 0xCC,
+       0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB4, 0xCC, 0xB8,
+       0x05, 0x05, 0xE2, 0x8A, 0xB5, 0xCC, 0xB8, 0x05,
+       0x06, 0xCE, 0x91, 0xCC, 0x93, 0xCD, 0x85, 0xDA,
+       0x06, 0xCE, 0x91, 0xCC, 0x94, 0xCD, 0x85, 0xDA,
+       0x06, 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x80, 0xCA,
+       0x06, 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x81, 0xCA,
+       0x06, 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x80, 0xCA,
+       // Bytes 3d00 - 3d3f
+       0x06, 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x81, 0xCA,
+       0x06, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x85, 0xDA,
+       0x06, 0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x85, 0xDA,
+       0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x80, 0xCA,
+       0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x81, 0xCA,
+       0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCD, 0x82, 0xCA,
+       0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x80, 0xCA,
+       0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x81, 0xCA,
+       // Bytes 3d40 - 3d7f
+       0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCD, 0x82, 0xCA,
+       0x06, 0xCE, 0x9F, 0xCC, 0x93, 0xCC, 0x80, 0xCA,
+       0x06, 0xCE, 0x9F, 0xCC, 0x93, 0xCC, 0x81, 0xCA,
+       0x06, 0xCE, 0x9F, 0xCC, 0x94, 0xCC, 0x80, 0xCA,
+       0x06, 0xCE, 0x9F, 0xCC, 0x94, 0xCC, 0x81, 0xCA,
+       0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x80, 0xCA,
+       0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x81, 0xCA,
+       0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCD, 0x82, 0xCA,
+       // Bytes 3d80 - 3dbf
+       0x06, 0xCE, 0xA9, 0xCC, 0x93, 0xCD, 0x85, 0xDA,
+       0x06, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, 0x85, 0xDA,
+       0x06, 0xCE, 0xB1, 0xCC, 0x80, 0xCD, 0x85, 0xDA,
+       0x06, 0xCE, 0xB1, 0xCC, 0x81, 0xCD, 0x85, 0xDA,
+       0x06, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x85, 0xDA,
+       0x06, 0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x85, 0xDA,
+       0x06, 0xCE, 0xB1, 0xCD, 0x82, 0xCD, 0x85, 0xDA,
+       0x06, 0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x80, 0xCA,
+       // Bytes 3dc0 - 3dff
+       0x06, 0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x81, 0xCA,
+       0x06, 0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x80, 0xCA,
+       0x06, 0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x81, 0xCA,
+       0x06, 0xCE, 0xB7, 0xCC, 0x80, 0xCD, 0x85, 0xDA,
+       0x06, 0xCE, 0xB7, 0xCC, 0x81, 0xCD, 0x85, 0xDA,
+       0x06, 0xCE, 0xB7, 0xCC, 0x93, 0xCD, 0x85, 0xDA,
+       0x06, 0xCE, 0xB7, 0xCC, 0x94, 0xCD, 0x85, 0xDA,
+       0x06, 0xCE, 0xB7, 0xCD, 0x82, 0xCD, 0x85, 0xDA,
+       // Bytes 3e00 - 3e3f
+       0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x80, 0xCA,
+       0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x81, 0xCA,
+       0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCD, 0x82, 0xCA,
+       0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x80, 0xCA,
+       0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x81, 0xCA,
+       0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCD, 0x82, 0xCA,
+       0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x80, 0xCA,
+       0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x81, 0xCA,
+       // Bytes 3e40 - 3e7f
+       0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCD, 0x82, 0xCA,
+       0x06, 0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x80, 0xCA,
+       0x06, 0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x81, 0xCA,
+       0x06, 0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x80, 0xCA,
+       0x06, 0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x81, 0xCA,
+       0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x80, 0xCA,
+       0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x81, 0xCA,
+       0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCD, 0x82, 0xCA,
+       // Bytes 3e80 - 3ebf
+       0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x80, 0xCA,
+       0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x81, 0xCA,
+       0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCD, 0x82, 0xCA,
+       0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x80, 0xCA,
+       0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x81, 0xCA,
+       0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCD, 0x82, 0xCA,
+       0x06, 0xCF, 0x89, 0xCC, 0x80, 0xCD, 0x85, 0xDA,
+       0x06, 0xCF, 0x89, 0xCC, 0x81, 0xCD, 0x85, 0xDA,
+       // Bytes 3ec0 - 3eff
+       0x06, 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x85, 0xDA,
+       0x06, 0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x85, 0xDA,
+       0x06, 0xCF, 0x89, 0xCD, 0x82, 0xCD, 0x85, 0xDA,
+       0x06, 0xE0, 0xA4, 0xA8, 0xE0, 0xA4, 0xBC, 0x09,
+       0x06, 0xE0, 0xA4, 0xB0, 0xE0, 0xA4, 0xBC, 0x09,
+       0x06, 0xE0, 0xA4, 0xB3, 0xE0, 0xA4, 0xBC, 0x09,
+       0x06, 0xE0, 0xB1, 0x86, 0xE0, 0xB1, 0x96, 0x85,
+       0x06, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8A, 0x11,
+       // Bytes 3f00 - 3f3f
+       0x06, 0xE3, 0x81, 0x86, 0xE3, 0x82, 0x99, 0x0D,
+       0x06, 0xE3, 0x81, 0x8B, 0xE3, 0x82, 0x99, 0x0D,
+       0x06, 0xE3, 0x81, 0x8D, 0xE3, 0x82, 0x99, 0x0D,
+       0x06, 0xE3, 0x81, 0x8F, 0xE3, 0x82, 0x99, 0x0D,
+       0x06, 0xE3, 0x81, 0x91, 0xE3, 0x82, 0x99, 0x0D,
+       0x06, 0xE3, 0x81, 0x93, 0xE3, 0x82, 0x99, 0x0D,
+       0x06, 0xE3, 0x81, 0x95, 0xE3, 0x82, 0x99, 0x0D,
+       0x06, 0xE3, 0x81, 0x97, 0xE3, 0x82, 0x99, 0x0D,
+       // Bytes 3f40 - 3f7f
+       0x06, 0xE3, 0x81, 0x99, 0xE3, 0x82, 0x99, 0x0D,
+       0x06, 0xE3, 0x81, 0x9B, 0xE3, 0x82, 0x99, 0x0D,
+       0x06, 0xE3, 0x81, 0x9D, 0xE3, 0x82, 0x99, 0x0D,
+       0x06, 0xE3, 0x81, 0x9F, 0xE3, 0x82, 0x99, 0x0D,
+       0x06, 0xE3, 0x81, 0xA1, 0xE3, 0x82, 0x99, 0x0D,
+       0x06, 0xE3, 0x81, 0xA4, 0xE3, 0x82, 0x99, 0x0D,
+       0x06, 0xE3, 0x81, 0xA6, 0xE3, 0x82, 0x99, 0x0D,
+       0x06, 0xE3, 0x81, 0xA8, 0xE3, 0x82, 0x99, 0x0D,
+       // Bytes 3f80 - 3fbf
+       0x06, 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x99, 0x0D,
+       0x06, 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x9A, 0x0D,
+       0x06, 0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x99, 0x0D,
+       0x06, 0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x9A, 0x0D,
+       0x06, 0xE3, 0x81, 0xB5, 0xE3, 0x82, 0x99, 0x0D,
+       0x06, 0xE3, 0x81, 0xB5, 0xE3, 0x82, 0x9A, 0x0D,
+       0x06, 0xE3, 0x81, 0xB8, 0xE3, 0x82, 0x99, 0x0D,
+       0x06, 0xE3, 0x81, 0xB8, 0xE3, 0x82, 0x9A, 0x0D,
+       // Bytes 3fc0 - 3fff
+       0x06, 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x99, 0x0D,
+       0x06, 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x9A, 0x0D,
+       0x06, 0xE3, 0x82, 0x9D, 0xE3, 0x82, 0x99, 0x0D,
+       0x06, 0xE3, 0x82, 0xA6, 0xE3, 0x82, 0x99, 0x0D,
+       0x06, 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0x0D,
+       0x06, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99, 0x0D,
+       0x06, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0x0D,
+       0x06, 0xE3, 0x82, 0xB1, 0xE3, 0x82, 0x99, 0x0D,
+       // Bytes 4000 - 403f
+       0x06, 0xE3, 0x82, 0xB3, 0xE3, 0x82, 0x99, 0x0D,
+       0x06, 0xE3, 0x82, 0xB5, 0xE3, 0x82, 0x99, 0x0D,
+       0x06, 0xE3, 0x82, 0xB7, 0xE3, 0x82, 0x99, 0x0D,
+       0x06, 0xE3, 0x82, 0xB9, 0xE3, 0x82, 0x99, 0x0D,
+       0x06, 0xE3, 0x82, 0xBB, 0xE3, 0x82, 0x99, 0x0D,
+       0x06, 0xE3, 0x82, 0xBD, 0xE3, 0x82, 0x99, 0x0D,
+       0x06, 0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0x0D,
+       0x06, 0xE3, 0x83, 0x81, 0xE3, 0x82, 0x99, 0x0D,
+       // Bytes 4040 - 407f
+       0x06, 0xE3, 0x83, 0x84, 0xE3, 0x82, 0x99, 0x0D,
+       0x06, 0xE3, 0x83, 0x86, 0xE3, 0x82, 0x99, 0x0D,
+       0x06, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D,
+       0x06, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x99, 0x0D,
+       0x06, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0x0D,
+       0x06, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x99, 0x0D,
+       0x06, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0x0D,
+       0x06, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x99, 0x0D,
+       // Bytes 4080 - 40bf
+       0x06, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x9A, 0x0D,
+       0x06, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x99, 0x0D,
+       0x06, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0x0D,
+       0x06, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x99, 0x0D,
+       0x06, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0x0D,
+       0x06, 0xE3, 0x83, 0xAF, 0xE3, 0x82, 0x99, 0x0D,
+       0x06, 0xE3, 0x83, 0xB0, 0xE3, 0x82, 0x99, 0x0D,
+       0x06, 0xE3, 0x83, 0xB1, 0xE3, 0x82, 0x99, 0x0D,
+       // Bytes 40c0 - 40ff
+       0x06, 0xE3, 0x83, 0xB2, 0xE3, 0x82, 0x99, 0x0D,
+       0x06, 0xE3, 0x83, 0xBD, 0xE3, 0x82, 0x99, 0x0D,
+       0x08, 0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x80, 0xCD,
+       0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC, 0x93, 0xCC,
+       0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC,
+       0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE,
+       0x91, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB,
+       0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x81, 0xCD,
+       // Bytes 4100 - 413f
+       0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCD,
+       0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC,
+       0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE,
+       0x97, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB,
+       0x08, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x82, 0xCD,
+       0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC, 0x94, 0xCC,
+       0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC,
+       0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE,
+       // Bytes 4140 - 417f
+       0x97, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB,
+       0x08, 0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x80, 0xCD,
+       0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x93, 0xCC,
+       0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC,
+       0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE,
+       0xA9, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB,
+       0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x81, 0xCD,
+       0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCD,
+       // Bytes 4180 - 41bf
+       0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC,
+       0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE,
+       0xB1, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB,
+       0x08, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xCD,
+       0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC, 0x94, 0xCC,
+       0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC,
+       0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE,
+       0xB1, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB,
+       // Bytes 41c0 - 41ff
+       0x08, 0xCE, 0xB7, 0xCC, 0x93, 0xCC, 0x80, 0xCD,
+       0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x93, 0xCC,
+       0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC,
+       0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE,
+       0xB7, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB,
+       0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x81, 0xCD,
+       0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCD,
+       0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC,
+       // Bytes 4200 - 423f
+       0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCF,
+       0x89, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB,
+       0x08, 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x82, 0xCD,
+       0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC, 0x94, 0xCC,
+       0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC,
+       0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCF,
+       0x89, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB,
+       0x08, 0xF0, 0x91, 0x82, 0x99, 0xF0, 0x91, 0x82,
+       // Bytes 4240 - 427f
+       0xBA, 0x09, 0x08, 0xF0, 0x91, 0x82, 0x9B, 0xF0,
+       0x91, 0x82, 0xBA, 0x09, 0x08, 0xF0, 0x91, 0x82,
+       0xA5, 0xF0, 0x91, 0x82, 0xBA, 0x09, 0x42, 0xC2,
+       0xB4, 0x01, 0x43, 0x20, 0xCC, 0x81, 0xC9, 0x43,
+       0x20, 0xCC, 0x83, 0xC9, 0x43, 0x20, 0xCC, 0x84,
+       0xC9, 0x43, 0x20, 0xCC, 0x85, 0xC9, 0x43, 0x20,
+       0xCC, 0x86, 0xC9, 0x43, 0x20, 0xCC, 0x87, 0xC9,
+       0x43, 0x20, 0xCC, 0x88, 0xC9, 0x43, 0x20, 0xCC,
+       // Bytes 4280 - 42bf
+       0x8A, 0xC9, 0x43, 0x20, 0xCC, 0x8B, 0xC9, 0x43,
+       0x20, 0xCC, 0x93, 0xC9, 0x43, 0x20, 0xCC, 0x94,
+       0xC9, 0x43, 0x20, 0xCC, 0xA7, 0xA5, 0x43, 0x20,
+       0xCC, 0xA8, 0xA5, 0x43, 0x20, 0xCC, 0xB3, 0xB5,
+       0x43, 0x20, 0xCD, 0x82, 0xC9, 0x43, 0x20, 0xCD,
+       0x85, 0xD9, 0x43, 0x20, 0xD9, 0x8B, 0x59, 0x43,
+       0x20, 0xD9, 0x8C, 0x5D, 0x43, 0x20, 0xD9, 0x8D,
+       0x61, 0x43, 0x20, 0xD9, 0x8E, 0x65, 0x43, 0x20,
+       // Bytes 42c0 - 42ff
+       0xD9, 0x8F, 0x69, 0x43, 0x20, 0xD9, 0x90, 0x6D,
+       0x43, 0x20, 0xD9, 0x91, 0x71, 0x43, 0x20, 0xD9,
+       0x92, 0x75, 0x43, 0x41, 0xCC, 0x8A, 0xC9, 0x43,
+       0x73, 0xCC, 0x87, 0xC9, 0x43, 0xE1, 0x85, 0xA1,
+       0x01, 0x43, 0xE1, 0x85, 0xA2, 0x01, 0x43, 0xE1,
+       0x85, 0xA3, 0x01, 0x43, 0xE1, 0x85, 0xA4, 0x01,
+       0x43, 0xE1, 0x85, 0xA5, 0x01, 0x43, 0xE1, 0x85,
+       0xA6, 0x01, 0x43, 0xE1, 0x85, 0xA7, 0x01, 0x43,
+       // Bytes 4300 - 433f
+       0xE1, 0x85, 0xA8, 0x01, 0x43, 0xE1, 0x85, 0xA9,
+       0x01, 0x43, 0xE1, 0x85, 0xAA, 0x01, 0x43, 0xE1,
+       0x85, 0xAB, 0x01, 0x43, 0xE1, 0x85, 0xAC, 0x01,
+       0x43, 0xE1, 0x85, 0xAD, 0x01, 0x43, 0xE1, 0x85,
+       0xAE, 0x01, 0x43, 0xE1, 0x85, 0xAF, 0x01, 0x43,
+       0xE1, 0x85, 0xB0, 0x01, 0x43, 0xE1, 0x85, 0xB1,
+       0x01, 0x43, 0xE1, 0x85, 0xB2, 0x01, 0x43, 0xE1,
+       0x85, 0xB3, 0x01, 0x43, 0xE1, 0x85, 0xB4, 0x01,
+       // Bytes 4340 - 437f
+       0x43, 0xE1, 0x85, 0xB5, 0x01, 0x43, 0xE1, 0x86,
+       0xAA, 0x01, 0x43, 0xE1, 0x86, 0xAC, 0x01, 0x43,
+       0xE1, 0x86, 0xAD, 0x01, 0x43, 0xE1, 0x86, 0xB0,
+       0x01, 0x43, 0xE1, 0x86, 0xB1, 0x01, 0x43, 0xE1,
+       0x86, 0xB2, 0x01, 0x43, 0xE1, 0x86, 0xB3, 0x01,
+       0x43, 0xE1, 0x86, 0xB4, 0x01, 0x43, 0xE1, 0x86,
+       0xB5, 0x01, 0x44, 0x20, 0xE3, 0x82, 0x99, 0x0D,
+       0x44, 0x20, 0xE3, 0x82, 0x9A, 0x0D, 0x44, 0xC2,
+       // Bytes 4380 - 43bf
+       0xA8, 0xCC, 0x81, 0xCA, 0x44, 0xCE, 0x91, 0xCC,
+       0x81, 0xC9, 0x44, 0xCE, 0x95, 0xCC, 0x81, 0xC9,
+       0x44, 0xCE, 0x97, 0xCC, 0x81, 0xC9, 0x44, 0xCE,
+       0x99, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0x9F, 0xCC,
+       0x81, 0xC9, 0x44, 0xCE, 0xA5, 0xCC, 0x81, 0xC9,
+       0x44, 0xCE, 0xA5, 0xCC, 0x88, 0xC9, 0x44, 0xCE,
+       0xA9, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xB1, 0xCC,
+       0x81, 0xC9, 0x44, 0xCE, 0xB5, 0xCC, 0x81, 0xC9,
+       // Bytes 43c0 - 43ff
+       0x44, 0xCE, 0xB7, 0xCC, 0x81, 0xC9, 0x44, 0xCE,
+       0xB9, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xBF, 0xCC,
+       0x81, 0xC9, 0x44, 0xCF, 0x85, 0xCC, 0x81, 0xC9,
+       0x44, 0xCF, 0x89, 0xCC, 0x81, 0xC9, 0x44, 0xD7,
+       0x90, 0xD6, 0xB7, 0x31, 0x44, 0xD7, 0x90, 0xD6,
+       0xB8, 0x35, 0x44, 0xD7, 0x90, 0xD6, 0xBC, 0x41,
+       0x44, 0xD7, 0x91, 0xD6, 0xBC, 0x41, 0x44, 0xD7,
+       0x91, 0xD6, 0xBF, 0x49, 0x44, 0xD7, 0x92, 0xD6,
+       // Bytes 4400 - 443f
+       0xBC, 0x41, 0x44, 0xD7, 0x93, 0xD6, 0xBC, 0x41,
+       0x44, 0xD7, 0x94, 0xD6, 0xBC, 0x41, 0x44, 0xD7,
+       0x95, 0xD6, 0xB9, 0x39, 0x44, 0xD7, 0x95, 0xD6,
+       0xBC, 0x41, 0x44, 0xD7, 0x96, 0xD6, 0xBC, 0x41,
+       0x44, 0xD7, 0x98, 0xD6, 0xBC, 0x41, 0x44, 0xD7,
+       0x99, 0xD6, 0xB4, 0x25, 0x44, 0xD7, 0x99, 0xD6,
+       0xBC, 0x41, 0x44, 0xD7, 0x9A, 0xD6, 0xBC, 0x41,
+       0x44, 0xD7, 0x9B, 0xD6, 0xBC, 0x41, 0x44, 0xD7,
+       // Bytes 4440 - 447f
+       0x9B, 0xD6, 0xBF, 0x49, 0x44, 0xD7, 0x9C, 0xD6,
+       0xBC, 0x41, 0x44, 0xD7, 0x9E, 0xD6, 0xBC, 0x41,
+       0x44, 0xD7, 0xA0, 0xD6, 0xBC, 0x41, 0x44, 0xD7,
+       0xA1, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA3, 0xD6,
+       0xBC, 0x41, 0x44, 0xD7, 0xA4, 0xD6, 0xBC, 0x41,
+       0x44, 0xD7, 0xA4, 0xD6, 0xBF, 0x49, 0x44, 0xD7,
+       0xA6, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA7, 0xD6,
+       0xBC, 0x41, 0x44, 0xD7, 0xA8, 0xD6, 0xBC, 0x41,
+       // Bytes 4480 - 44bf
+       0x44, 0xD7, 0xA9, 0xD6, 0xBC, 0x41, 0x44, 0xD7,
+       0xA9, 0xD7, 0x81, 0x4D, 0x44, 0xD7, 0xA9, 0xD7,
+       0x82, 0x51, 0x44, 0xD7, 0xAA, 0xD6, 0xBC, 0x41,
+       0x44, 0xD7, 0xB2, 0xD6, 0xB7, 0x31, 0x44, 0xD8,
+       0xA7, 0xD9, 0x8B, 0x59, 0x44, 0xD8, 0xA7, 0xD9,
+       0x93, 0xC9, 0x44, 0xD8, 0xA7, 0xD9, 0x94, 0xC9,
+       0x44, 0xD8, 0xA7, 0xD9, 0x95, 0xB5, 0x44, 0xD8,
+       0xB0, 0xD9, 0xB0, 0x79, 0x44, 0xD8, 0xB1, 0xD9,
+       // Bytes 44c0 - 44ff
+       0xB0, 0x79, 0x44, 0xD9, 0x80, 0xD9, 0x8B, 0x59,
+       0x44, 0xD9, 0x80, 0xD9, 0x8E, 0x65, 0x44, 0xD9,
+       0x80, 0xD9, 0x8F, 0x69, 0x44, 0xD9, 0x80, 0xD9,
+       0x90, 0x6D, 0x44, 0xD9, 0x80, 0xD9, 0x91, 0x71,
+       0x44, 0xD9, 0x80, 0xD9, 0x92, 0x75, 0x44, 0xD9,
+       0x87, 0xD9, 0xB0, 0x79, 0x44, 0xD9, 0x88, 0xD9,
+       0x94, 0xC9, 0x44, 0xD9, 0x89, 0xD9, 0xB0, 0x79,
+       0x44, 0xD9, 0x8A, 0xD9, 0x94, 0xC9, 0x44, 0xDB,
+       // Bytes 4500 - 453f
+       0x92, 0xD9, 0x94, 0xC9, 0x44, 0xDB, 0x95, 0xD9,
+       0x94, 0xC9, 0x45, 0x20, 0xCC, 0x88, 0xCC, 0x80,
+       0xCA, 0x45, 0x20, 0xCC, 0x88, 0xCC, 0x81, 0xCA,
+       0x45, 0x20, 0xCC, 0x88, 0xCD, 0x82, 0xCA, 0x45,
+       0x20, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x45, 0x20,
+       0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x45, 0x20, 0xCC,
+       0x93, 0xCD, 0x82, 0xCA, 0x45, 0x20, 0xCC, 0x94,
+       0xCC, 0x80, 0xCA, 0x45, 0x20, 0xCC, 0x94, 0xCC,
+       // Bytes 4540 - 457f
+       0x81, 0xCA, 0x45, 0x20, 0xCC, 0x94, 0xCD, 0x82,
+       0xCA, 0x45, 0x20, 0xD9, 0x8C, 0xD9, 0x91, 0x72,
+       0x45, 0x20, 0xD9, 0x8D, 0xD9, 0x91, 0x72, 0x45,
+       0x20, 0xD9, 0x8E, 0xD9, 0x91, 0x72, 0x45, 0x20,
+       0xD9, 0x8F, 0xD9, 0x91, 0x72, 0x45, 0x20, 0xD9,
+       0x90, 0xD9, 0x91, 0x72, 0x45, 0x20, 0xD9, 0x91,
+       0xD9, 0xB0, 0x7A, 0x45, 0xE2, 0xAB, 0x9D, 0xCC,
+       0xB8, 0x05, 0x46, 0xCE, 0xB9, 0xCC, 0x88, 0xCC,
+       // Bytes 4580 - 45bf
+       0x81, 0xCA, 0x46, 0xCF, 0x85, 0xCC, 0x88, 0xCC,
+       0x81, 0xCA, 0x46, 0xD7, 0xA9, 0xD6, 0xBC, 0xD7,
+       0x81, 0x4E, 0x46, 0xD7, 0xA9, 0xD6, 0xBC, 0xD7,
+       0x82, 0x52, 0x46, 0xD9, 0x80, 0xD9, 0x8E, 0xD9,
+       0x91, 0x72, 0x46, 0xD9, 0x80, 0xD9, 0x8F, 0xD9,
+       0x91, 0x72, 0x46, 0xD9, 0x80, 0xD9, 0x90, 0xD9,
+       0x91, 0x72, 0x46, 0xE0, 0xA4, 0x95, 0xE0, 0xA4,
+       0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x96, 0xE0, 0xA4,
+       // Bytes 45c0 - 45ff
+       0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x97, 0xE0, 0xA4,
+       0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x9C, 0xE0, 0xA4,
+       0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xA1, 0xE0, 0xA4,
+       0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xA2, 0xE0, 0xA4,
+       0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xAB, 0xE0, 0xA4,
+       0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xAF, 0xE0, 0xA4,
+       0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xA1, 0xE0, 0xA6,
+       0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xA2, 0xE0, 0xA6,
+       // Bytes 4600 - 463f
+       0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xAF, 0xE0, 0xA6,
+       0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x96, 0xE0, 0xA8,
+       0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x97, 0xE0, 0xA8,
+       0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x9C, 0xE0, 0xA8,
+       0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xAB, 0xE0, 0xA8,
+       0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xB2, 0xE0, 0xA8,
+       0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xB8, 0xE0, 0xA8,
+       0xBC, 0x09, 0x46, 0xE0, 0xAC, 0xA1, 0xE0, 0xAC,
+       // Bytes 4640 - 467f
+       0xBC, 0x09, 0x46, 0xE0, 0xAC, 0xA2, 0xE0, 0xAC,
+       0xBC, 0x09, 0x46, 0xE0, 0xBE, 0xB2, 0xE0, 0xBE,
+       0x80, 0x9D, 0x46, 0xE0, 0xBE, 0xB3, 0xE0, 0xBE,
+       0x80, 0x9D, 0x46, 0xE3, 0x83, 0x86, 0xE3, 0x82,
+       0x99, 0x0D, 0x48, 0xF0, 0x9D, 0x85, 0x97, 0xF0,
+       0x9D, 0x85, 0xA5, 0xAD, 0x48, 0xF0, 0x9D, 0x85,
+       0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xAD, 0x48, 0xF0,
+       0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, 0xA5, 0xAD,
+       // Bytes 4680 - 46bf
+       0x48, 0xF0, 0x9D, 0x86, 0xBA, 0xF0, 0x9D, 0x85,
+       0xA5, 0xAD, 0x49, 0xE0, 0xBE, 0xB2, 0xE0, 0xBD,
+       0xB1, 0xE0, 0xBE, 0x80, 0x9E, 0x49, 0xE0, 0xBE,
+       0xB3, 0xE0, 0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0x9E,
+       0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85,
+       0xA5, 0xF0, 0x9D, 0x85, 0xAE, 0xAE, 0x4C, 0xF0,
+       0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0,
+       0x9D, 0x85, 0xAF, 0xAE, 0x4C, 0xF0, 0x9D, 0x85,
+       // Bytes 46c0 - 46ff
+       0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85,
+       0xB0, 0xAE, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0,
+       0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xB1, 0xAE,
+       0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85,
+       0xA5, 0xF0, 0x9D, 0x85, 0xB2, 0xAE, 0x4C, 0xF0,
+       0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, 0xA5, 0xF0,
+       0x9D, 0x85, 0xAE, 0xAE, 0x4C, 0xF0, 0x9D, 0x86,
+       0xB9, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85,
+       // Bytes 4700 - 473f
+       0xAF, 0xAE, 0x4C, 0xF0, 0x9D, 0x86, 0xBA, 0xF0,
+       0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAE, 0xAE,
+       0x4C, 0xF0, 0x9D, 0x86, 0xBA, 0xF0, 0x9D, 0x85,
+       0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0xAE, 0x83, 0x41,
+       0xCC, 0x82, 0xC9, 0x83, 0x41, 0xCC, 0x86, 0xC9,
+       0x83, 0x41, 0xCC, 0x87, 0xC9, 0x83, 0x41, 0xCC,
+       0x88, 0xC9, 0x83, 0x41, 0xCC, 0x8A, 0xC9, 0x83,
+       0x41, 0xCC, 0xA3, 0xB5, 0x83, 0x43, 0xCC, 0xA7,
+       // Bytes 4740 - 477f
+       0xA5, 0x83, 0x45, 0xCC, 0x82, 0xC9, 0x83, 0x45,
+       0xCC, 0x84, 0xC9, 0x83, 0x45, 0xCC, 0xA3, 0xB5,
+       0x83, 0x45, 0xCC, 0xA7, 0xA5, 0x83, 0x49, 0xCC,
+       0x88, 0xC9, 0x83, 0x4C, 0xCC, 0xA3, 0xB5, 0x83,
+       0x4F, 0xCC, 0x82, 0xC9, 0x83, 0x4F, 0xCC, 0x83,
+       0xC9, 0x83, 0x4F, 0xCC, 0x84, 0xC9, 0x83, 0x4F,
+       0xCC, 0x87, 0xC9, 0x83, 0x4F, 0xCC, 0x88, 0xC9,
+       0x83, 0x4F, 0xCC, 0x9B, 0xAD, 0x83, 0x4F, 0xCC,
+       // Bytes 4780 - 47bf
+       0xA3, 0xB5, 0x83, 0x4F, 0xCC, 0xA8, 0xA5, 0x83,
+       0x52, 0xCC, 0xA3, 0xB5, 0x83, 0x53, 0xCC, 0x81,
+       0xC9, 0x83, 0x53, 0xCC, 0x8C, 0xC9, 0x83, 0x53,
+       0xCC, 0xA3, 0xB5, 0x83, 0x55, 0xCC, 0x83, 0xC9,
+       0x83, 0x55, 0xCC, 0x84, 0xC9, 0x83, 0x55, 0xCC,
+       0x88, 0xC9, 0x83, 0x55, 0xCC, 0x9B, 0xAD, 0x83,
+       0x61, 0xCC, 0x82, 0xC9, 0x83, 0x61, 0xCC, 0x86,
+       0xC9, 0x83, 0x61, 0xCC, 0x87, 0xC9, 0x83, 0x61,
+       // Bytes 47c0 - 47ff
+       0xCC, 0x88, 0xC9, 0x83, 0x61, 0xCC, 0x8A, 0xC9,
+       0x83, 0x61, 0xCC, 0xA3, 0xB5, 0x83, 0x63, 0xCC,
+       0xA7, 0xA5, 0x83, 0x65, 0xCC, 0x82, 0xC9, 0x83,
+       0x65, 0xCC, 0x84, 0xC9, 0x83, 0x65, 0xCC, 0xA3,
+       0xB5, 0x83, 0x65, 0xCC, 0xA7, 0xA5, 0x83, 0x69,
+       0xCC, 0x88, 0xC9, 0x83, 0x6C, 0xCC, 0xA3, 0xB5,
+       0x83, 0x6F, 0xCC, 0x82, 0xC9, 0x83, 0x6F, 0xCC,
+       0x83, 0xC9, 0x83, 0x6F, 0xCC, 0x84, 0xC9, 0x83,
+       // Bytes 4800 - 483f
+       0x6F, 0xCC, 0x87, 0xC9, 0x83, 0x6F, 0xCC, 0x88,
+       0xC9, 0x83, 0x6F, 0xCC, 0x9B, 0xAD, 0x83, 0x6F,
+       0xCC, 0xA3, 0xB5, 0x83, 0x6F, 0xCC, 0xA8, 0xA5,
+       0x83, 0x72, 0xCC, 0xA3, 0xB5, 0x83, 0x73, 0xCC,
+       0x81, 0xC9, 0x83, 0x73, 0xCC, 0x8C, 0xC9, 0x83,
+       0x73, 0xCC, 0xA3, 0xB5, 0x83, 0x75, 0xCC, 0x83,
+       0xC9, 0x83, 0x75, 0xCC, 0x84, 0xC9, 0x83, 0x75,
+       0xCC, 0x88, 0xC9, 0x83, 0x75, 0xCC, 0x9B, 0xAD,
+       // Bytes 4840 - 487f
+       0x84, 0xCE, 0x91, 0xCC, 0x93, 0xC9, 0x84, 0xCE,
+       0x91, 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0x95, 0xCC,
+       0x93, 0xC9, 0x84, 0xCE, 0x95, 0xCC, 0x94, 0xC9,
+       0x84, 0xCE, 0x97, 0xCC, 0x93, 0xC9, 0x84, 0xCE,
+       0x97, 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0x99, 0xCC,
+       0x93, 0xC9, 0x84, 0xCE, 0x99, 0xCC, 0x94, 0xC9,
+       0x84, 0xCE, 0x9F, 0xCC, 0x93, 0xC9, 0x84, 0xCE,
+       0x9F, 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0xA5, 0xCC,
+       // Bytes 4880 - 48bf
+       0x94, 0xC9, 0x84, 0xCE, 0xA9, 0xCC, 0x93, 0xC9,
+       0x84, 0xCE, 0xA9, 0xCC, 0x94, 0xC9, 0x84, 0xCE,
+       0xB1, 0xCC, 0x80, 0xC9, 0x84, 0xCE, 0xB1, 0xCC,
+       0x81, 0xC9, 0x84, 0xCE, 0xB1, 0xCC, 0x93, 0xC9,
+       0x84, 0xCE, 0xB1, 0xCC, 0x94, 0xC9, 0x84, 0xCE,
+       0xB1, 0xCD, 0x82, 0xC9, 0x84, 0xCE, 0xB5, 0xCC,
+       0x93, 0xC9, 0x84, 0xCE, 0xB5, 0xCC, 0x94, 0xC9,
+       0x84, 0xCE, 0xB7, 0xCC, 0x80, 0xC9, 0x84, 0xCE,
+       // Bytes 48c0 - 48ff
+       0xB7, 0xCC, 0x81, 0xC9, 0x84, 0xCE, 0xB7, 0xCC,
+       0x93, 0xC9, 0x84, 0xCE, 0xB7, 0xCC, 0x94, 0xC9,
+       0x84, 0xCE, 0xB7, 0xCD, 0x82, 0xC9, 0x84, 0xCE,
+       0xB9, 0xCC, 0x88, 0xC9, 0x84, 0xCE, 0xB9, 0xCC,
+       0x93, 0xC9, 0x84, 0xCE, 0xB9, 0xCC, 0x94, 0xC9,
+       0x84, 0xCE, 0xBF, 0xCC, 0x93, 0xC9, 0x84, 0xCE,
+       0xBF, 0xCC, 0x94, 0xC9, 0x84, 0xCF, 0x85, 0xCC,
+       0x88, 0xC9, 0x84, 0xCF, 0x85, 0xCC, 0x93, 0xC9,
+       // Bytes 4900 - 493f
+       0x84, 0xCF, 0x85, 0xCC, 0x94, 0xC9, 0x84, 0xCF,
+       0x89, 0xCC, 0x80, 0xC9, 0x84, 0xCF, 0x89, 0xCC,
+       0x81, 0xC9, 0x84, 0xCF, 0x89, 0xCC, 0x93, 0xC9,
+       0x84, 0xCF, 0x89, 0xCC, 0x94, 0xC9, 0x84, 0xCF,
+       0x89, 0xCD, 0x82, 0xC9, 0x86, 0xCE, 0x91, 0xCC,
+       0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE, 0x91, 0xCC,
+       0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE, 0x91, 0xCC,
+       0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE, 0x91, 0xCC,
+       // Bytes 4940 - 497f
+       0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE, 0x91, 0xCC,
+       0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE, 0x91, 0xCC,
+       0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE, 0x97, 0xCC,
+       0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE, 0x97, 0xCC,
+       0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE, 0x97, 0xCC,
+       0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE, 0x97, 0xCC,
+       0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE, 0x97, 0xCC,
+       0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE, 0x97, 0xCC,
+       // Bytes 4980 - 49bf
+       0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE, 0xA9, 0xCC,
+       0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE, 0xA9, 0xCC,
+       0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE, 0xA9, 0xCC,
+       0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE, 0xA9, 0xCC,
+       0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE, 0xA9, 0xCC,
+       0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE, 0xA9, 0xCC,
+       0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE, 0xB1, 0xCC,
+       0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE, 0xB1, 0xCC,
+       // Bytes 49c0 - 49ff
+       0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE, 0xB1, 0xCC,
+       0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE, 0xB1, 0xCC,
+       0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE, 0xB1, 0xCC,
+       0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE, 0xB1, 0xCC,
+       0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE, 0xB7, 0xCC,
+       0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE, 0xB7, 0xCC,
+       0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE, 0xB7, 0xCC,
+       0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE, 0xB7, 0xCC,
+       // Bytes 4a00 - 4a3f
+       0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE, 0xB7, 0xCC,
+       0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE, 0xB7, 0xCC,
+       0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCF, 0x89, 0xCC,
+       0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCF, 0x89, 0xCC,
+       0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCF, 0x89, 0xCC,
+       0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCF, 0x89, 0xCC,
+       0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCF, 0x89, 0xCC,
+       0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCF, 0x89, 0xCC,
+       // Bytes 4a40 - 4a7f
+       0x94, 0xCD, 0x82, 0xCA, 0x42, 0xCC, 0x80, 0xC9,
+       0x32, 0x42, 0xCC, 0x81, 0xC9, 0x32, 0x42, 0xCC,
+       0x93, 0xC9, 0x32, 0x44, 0xCC, 0x88, 0xCC, 0x81,
+       0xCA, 0x32, 0x43, 0xE3, 0x82, 0x99, 0x0D, 0x03,
+       0x43, 0xE3, 0x82, 0x9A, 0x0D, 0x03, 0x46, 0xE0,
+       0xBD, 0xB1, 0xE0, 0xBD, 0xB2, 0x9E, 0x26, 0x46,
+       0xE0, 0xBD, 0xB1, 0xE0, 0xBD, 0xB4, 0xA2, 0x26,
+       0x46, 0xE0, 0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0x9E,
+       // Bytes 4a80 - 4abf
+       0x26, 0x00, 0x01,
+}
+
+// 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 *nfcTrie) lookup(s []byte) (v uint16, sz int) {
+       c0 := s[0]
+       switch {
+       case c0 < 0x80: // is ASCII
+               return nfcValues[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 := nfcIndex[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 := nfcIndex[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 = nfcIndex[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 := nfcIndex[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 = nfcIndex[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 = nfcIndex[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 *nfcTrie) lookupUnsafe(s []byte) uint16 {
+       c0 := s[0]
+       if c0 < 0x80 { // is ASCII
+               return nfcValues[c0]
+       }
+       i := nfcIndex[c0]
+       if c0 < 0xE0 { // 2-byte UTF-8
+               return t.lookupValue(uint32(i), s[1])
+       }
+       i = nfcIndex[uint32(i)<<6+uint32(s[1])]
+       if c0 < 0xF0 { // 3-byte UTF-8
+               return t.lookupValue(uint32(i), s[2])
+       }
+       i = nfcIndex[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 *nfcTrie) lookupString(s string) (v uint16, sz int) {
+       c0 := s[0]
+       switch {
+       case c0 < 0x80: // is ASCII
+               return nfcValues[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 := nfcIndex[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 := nfcIndex[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 = nfcIndex[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 := nfcIndex[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 = nfcIndex[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 = nfcIndex[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 *nfcTrie) lookupStringUnsafe(s string) uint16 {
+       c0 := s[0]
+       if c0 < 0x80 { // is ASCII
+               return nfcValues[c0]
+       }
+       i := nfcIndex[c0]
+       if c0 < 0xE0 { // 2-byte UTF-8
+               return t.lookupValue(uint32(i), s[1])
+       }
+       i = nfcIndex[uint32(i)<<6+uint32(s[1])]
+       if c0 < 0xF0 { // 3-byte UTF-8
+               return t.lookupValue(uint32(i), s[2])
+       }
+       i = nfcIndex[uint32(i)<<6+uint32(s[2])]
+       if c0 < 0xF8 { // 4-byte UTF-8
+               return t.lookupValue(uint32(i), s[3])
+       }
+       return 0
+}
+
+// nfcTrie. Total size: 10332 bytes (10.09 KiB). Checksum: ad355b768fddb1b6.
+type nfcTrie struct{}
+
+func newNfcTrie(i int) *nfcTrie {
+       return &nfcTrie{}
+}
+
+// lookupValue determines the type of block n and looks up the value for b.
+func (t *nfcTrie) lookupValue(n uint32, b byte) uint16 {
+       switch {
+       case n < 44:
+               return uint16(nfcValues[n<<6+uint32(b)])
+       default:
+               n -= 44
+               return uint16(nfcSparse.lookup(n, b))
+       }
+}
+
+// nfcValues: 46 blocks, 2944 entries, 5888 bytes
+// The third block is the zero block.
+var nfcValues = [2944]uint16{
+       // Block 0x0, offset 0x0
+       0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000,
+       // Block 0x1, offset 0x40
+       0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000,
+       0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000,
+       0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000,
+       0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000,
+       0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000,
+       0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000,
+       0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000,
+       0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000,
+       0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000,
+       0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000,
+       // Block 0x2, offset 0x80
+       // Block 0x3, offset 0xc0
+       0xc0: 0x2f6f, 0xc1: 0x2f74, 0xc2: 0x471e, 0xc3: 0x2f79, 0xc4: 0x472d, 0xc5: 0x4732,
+       0xc6: 0xa000, 0xc7: 0x473c, 0xc8: 0x2fe2, 0xc9: 0x2fe7, 0xca: 0x4741, 0xcb: 0x2ffb,
+       0xcc: 0x306e, 0xcd: 0x3073, 0xce: 0x3078, 0xcf: 0x4755, 0xd1: 0x3104,
+       0xd2: 0x3127, 0xd3: 0x312c, 0xd4: 0x475f, 0xd5: 0x4764, 0xd6: 0x4773,
+       0xd8: 0xa000, 0xd9: 0x31b3, 0xda: 0x31b8, 0xdb: 0x31bd, 0xdc: 0x47a5, 0xdd: 0x3235,
+       0xe0: 0x327b, 0xe1: 0x3280, 0xe2: 0x47af, 0xe3: 0x3285,
+       0xe4: 0x47be, 0xe5: 0x47c3, 0xe6: 0xa000, 0xe7: 0x47cd, 0xe8: 0x32ee, 0xe9: 0x32f3,
+       0xea: 0x47d2, 0xeb: 0x3307, 0xec: 0x337f, 0xed: 0x3384, 0xee: 0x3389, 0xef: 0x47e6,
+       0xf1: 0x3415, 0xf2: 0x3438, 0xf3: 0x343d, 0xf4: 0x47f0, 0xf5: 0x47f5,
+       0xf6: 0x4804, 0xf8: 0xa000, 0xf9: 0x34c9, 0xfa: 0x34ce, 0xfb: 0x34d3,
+       0xfc: 0x4836, 0xfd: 0x3550, 0xff: 0x3569,
+       // Block 0x4, offset 0x100
+       0x100: 0x2f7e, 0x101: 0x328a, 0x102: 0x4723, 0x103: 0x47b4, 0x104: 0x2f9c, 0x105: 0x32a8,
+       0x106: 0x2fb0, 0x107: 0x32bc, 0x108: 0x2fb5, 0x109: 0x32c1, 0x10a: 0x2fba, 0x10b: 0x32c6,
+       0x10c: 0x2fbf, 0x10d: 0x32cb, 0x10e: 0x2fc9, 0x10f: 0x32d5,
+       0x112: 0x4746, 0x113: 0x47d7, 0x114: 0x2ff1, 0x115: 0x32fd, 0x116: 0x2ff6, 0x117: 0x3302,
+       0x118: 0x3014, 0x119: 0x3320, 0x11a: 0x3005, 0x11b: 0x3311, 0x11c: 0x302d, 0x11d: 0x3339,
+       0x11e: 0x3037, 0x11f: 0x3343, 0x120: 0x303c, 0x121: 0x3348, 0x122: 0x3046, 0x123: 0x3352,
+       0x124: 0x304b, 0x125: 0x3357, 0x128: 0x307d, 0x129: 0x338e,
+       0x12a: 0x3082, 0x12b: 0x3393, 0x12c: 0x3087, 0x12d: 0x3398, 0x12e: 0x30aa, 0x12f: 0x33b6,
+       0x130: 0x308c, 0x134: 0x30b4, 0x135: 0x33c0,
+       0x136: 0x30c8, 0x137: 0x33d9, 0x139: 0x30d2, 0x13a: 0x33e3, 0x13b: 0x30dc,
+       0x13c: 0x33ed, 0x13d: 0x30d7, 0x13e: 0x33e8,
+       // Block 0x5, offset 0x140
+       0x143: 0x30ff, 0x144: 0x3410, 0x145: 0x3118,
+       0x146: 0x3429, 0x147: 0x310e, 0x148: 0x341f,
+       0x14c: 0x4769, 0x14d: 0x47fa, 0x14e: 0x3131, 0x14f: 0x3442, 0x150: 0x313b, 0x151: 0x344c,
+       0x154: 0x3159, 0x155: 0x346a, 0x156: 0x3172, 0x157: 0x3483,
+       0x158: 0x3163, 0x159: 0x3474, 0x15a: 0x478c, 0x15b: 0x481d, 0x15c: 0x317c, 0x15d: 0x348d,
+       0x15e: 0x318b, 0x15f: 0x349c, 0x160: 0x4791, 0x161: 0x4822, 0x162: 0x31a4, 0x163: 0x34ba,
+       0x164: 0x3195, 0x165: 0x34ab, 0x168: 0x479b, 0x169: 0x482c,
+       0x16a: 0x47a0, 0x16b: 0x4831, 0x16c: 0x31c2, 0x16d: 0x34d8, 0x16e: 0x31cc, 0x16f: 0x34e2,
+       0x170: 0x31d1, 0x171: 0x34e7, 0x172: 0x31ef, 0x173: 0x3505, 0x174: 0x3212, 0x175: 0x3528,
+       0x176: 0x323a, 0x177: 0x3555, 0x178: 0x324e, 0x179: 0x325d, 0x17a: 0x357d, 0x17b: 0x3267,
+       0x17c: 0x3587, 0x17d: 0x326c, 0x17e: 0x358c, 0x17f: 0xa000,
+       // Block 0x6, offset 0x180
+       0x184: 0x8100, 0x185: 0x8100,
+       0x186: 0x8100,
+       0x18d: 0x2f88, 0x18e: 0x3294, 0x18f: 0x3096, 0x190: 0x33a2, 0x191: 0x3140,
+       0x192: 0x3451, 0x193: 0x31d6, 0x194: 0x34ec, 0x195: 0x39cf, 0x196: 0x3b5e, 0x197: 0x39c8,
+       0x198: 0x3b57, 0x199: 0x39d6, 0x19a: 0x3b65, 0x19b: 0x39c1, 0x19c: 0x3b50,
+       0x19e: 0x38b0, 0x19f: 0x3a3f, 0x1a0: 0x38a9, 0x1a1: 0x3a38, 0x1a2: 0x35b3, 0x1a3: 0x35c5,
+       0x1a6: 0x3041, 0x1a7: 0x334d, 0x1a8: 0x30be, 0x1a9: 0x33cf,
+       0x1aa: 0x4782, 0x1ab: 0x4813, 0x1ac: 0x3990, 0x1ad: 0x3b1f, 0x1ae: 0x35d7, 0x1af: 0x35dd,
+       0x1b0: 0x33c5, 0x1b4: 0x3028, 0x1b5: 0x3334,
+       0x1b8: 0x30fa, 0x1b9: 0x340b, 0x1ba: 0x38b7, 0x1bb: 0x3a46,
+       0x1bc: 0x35ad, 0x1bd: 0x35bf, 0x1be: 0x35b9, 0x1bf: 0x35cb,
+       // Block 0x7, offset 0x1c0
+       0x1c0: 0x2f8d, 0x1c1: 0x3299, 0x1c2: 0x2f92, 0x1c3: 0x329e, 0x1c4: 0x300a, 0x1c5: 0x3316,
+       0x1c6: 0x300f, 0x1c7: 0x331b, 0x1c8: 0x309b, 0x1c9: 0x33a7, 0x1ca: 0x30a0, 0x1cb: 0x33ac,
+       0x1cc: 0x3145, 0x1cd: 0x3456, 0x1ce: 0x314a, 0x1cf: 0x345b, 0x1d0: 0x3168, 0x1d1: 0x3479,
+       0x1d2: 0x316d, 0x1d3: 0x347e, 0x1d4: 0x31db, 0x1d5: 0x34f1, 0x1d6: 0x31e0, 0x1d7: 0x34f6,
+       0x1d8: 0x3186, 0x1d9: 0x3497, 0x1da: 0x319f, 0x1db: 0x34b5,
+       0x1de: 0x305a, 0x1df: 0x3366,
+       0x1e6: 0x4728, 0x1e7: 0x47b9, 0x1e8: 0x4750, 0x1e9: 0x47e1,
+       0x1ea: 0x395f, 0x1eb: 0x3aee, 0x1ec: 0x393c, 0x1ed: 0x3acb, 0x1ee: 0x476e, 0x1ef: 0x47ff,
+       0x1f0: 0x3958, 0x1f1: 0x3ae7, 0x1f2: 0x3244, 0x1f3: 0x355f,
+       // Block 0x8, offset 0x200
+       0x200: 0x9932, 0x201: 0x9932, 0x202: 0x9932, 0x203: 0x9932, 0x204: 0x9932, 0x205: 0x8132,
+       0x206: 0x9932, 0x207: 0x9932, 0x208: 0x9932, 0x209: 0x9932, 0x20a: 0x9932, 0x20b: 0x9932,
+       0x20c: 0x9932, 0x20d: 0x8132, 0x20e: 0x8132, 0x20f: 0x9932, 0x210: 0x8132, 0x211: 0x9932,
+       0x212: 0x8132, 0x213: 0x9932, 0x214: 0x9932, 0x215: 0x8133, 0x216: 0x812d, 0x217: 0x812d,
+       0x218: 0x812d, 0x219: 0x812d, 0x21a: 0x8133, 0x21b: 0x992b, 0x21c: 0x812d, 0x21d: 0x812d,
+       0x21e: 0x812d, 0x21f: 0x812d, 0x220: 0x812d, 0x221: 0x8129, 0x222: 0x8129, 0x223: 0x992d,
+       0x224: 0x992d, 0x225: 0x992d, 0x226: 0x992d, 0x227: 0x9929, 0x228: 0x9929, 0x229: 0x812d,
+       0x22a: 0x812d, 0x22b: 0x812d, 0x22c: 0x812d, 0x22d: 0x992d, 0x22e: 0x992d, 0x22f: 0x812d,
+       0x230: 0x992d, 0x231: 0x992d, 0x232: 0x812d, 0x233: 0x812d, 0x234: 0x8101, 0x235: 0x8101,
+       0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812d, 0x23a: 0x812d, 0x23b: 0x812d,
+       0x23c: 0x812d, 0x23d: 0x8132, 0x23e: 0x8132, 0x23f: 0x8132,
+       // Block 0x9, offset 0x240
+       0x240: 0x4a44, 0x241: 0x4a49, 0x242: 0x9932, 0x243: 0x4a4e, 0x244: 0x4a53, 0x245: 0x9936,
+       0x246: 0x8132, 0x247: 0x812d, 0x248: 0x812d, 0x249: 0x812d, 0x24a: 0x8132, 0x24b: 0x8132,
+       0x24c: 0x8132, 0x24d: 0x812d, 0x24e: 0x812d, 0x250: 0x8132, 0x251: 0x8132,
+       0x252: 0x8132, 0x253: 0x812d, 0x254: 0x812d, 0x255: 0x812d, 0x256: 0x812d, 0x257: 0x8132,
+       0x258: 0x8133, 0x259: 0x812d, 0x25a: 0x812d, 0x25b: 0x8132, 0x25c: 0x8134, 0x25d: 0x8135,
+       0x25e: 0x8135, 0x25f: 0x8134, 0x260: 0x8135, 0x261: 0x8135, 0x262: 0x8134, 0x263: 0x8132,
+       0x264: 0x8132, 0x265: 0x8132, 0x266: 0x8132, 0x267: 0x8132, 0x268: 0x8132, 0x269: 0x8132,
+       0x26a: 0x8132, 0x26b: 0x8132, 0x26c: 0x8132, 0x26d: 0x8132, 0x26e: 0x8132, 0x26f: 0x8132,
+       0x274: 0x0170,
+       0x27a: 0x8100,
+       0x27e: 0x0037,
+       // Block 0xa, offset 0x280
+       0x284: 0x8100, 0x285: 0x35a1,
+       0x286: 0x35e9, 0x287: 0x00ce, 0x288: 0x3607, 0x289: 0x3613, 0x28a: 0x3625,
+       0x28c: 0x3643, 0x28e: 0x3655, 0x28f: 0x3673, 0x290: 0x3e08, 0x291: 0xa000,
+       0x295: 0xa000, 0x297: 0xa000,
+       0x299: 0xa000,
+       0x29f: 0xa000, 0x2a1: 0xa000,
+       0x2a5: 0xa000, 0x2a9: 0xa000,
+       0x2aa: 0x3637, 0x2ab: 0x3667, 0x2ac: 0x4894, 0x2ad: 0x3697, 0x2ae: 0x48be, 0x2af: 0x36a9,
+       0x2b0: 0x3e70, 0x2b1: 0xa000, 0x2b5: 0xa000,
+       0x2b7: 0xa000, 0x2b9: 0xa000,
+       0x2bf: 0xa000,
+       // Block 0xb, offset 0x2c0
+       0x2c0: 0x3721, 0x2c1: 0x372d, 0x2c3: 0x371b,
+       0x2c6: 0xa000, 0x2c7: 0x3709,
+       0x2cc: 0x375d, 0x2cd: 0x3745, 0x2ce: 0x376f, 0x2d0: 0xa000,
+       0x2d3: 0xa000, 0x2d5: 0xa000, 0x2d6: 0xa000, 0x2d7: 0xa000,
+       0x2d8: 0xa000, 0x2d9: 0x3751, 0x2da: 0xa000,
+       0x2de: 0xa000, 0x2e3: 0xa000,
+       0x2e7: 0xa000,
+       0x2eb: 0xa000, 0x2ed: 0xa000,
+       0x2f0: 0xa000, 0x2f3: 0xa000, 0x2f5: 0xa000,
+       0x2f6: 0xa000, 0x2f7: 0xa000, 0x2f8: 0xa000, 0x2f9: 0x37d5, 0x2fa: 0xa000,
+       0x2fe: 0xa000,
+       // Block 0xc, offset 0x300
+       0x301: 0x3733, 0x302: 0x37b7,
+       0x310: 0x370f, 0x311: 0x3793,
+       0x312: 0x3715, 0x313: 0x3799, 0x316: 0x3727, 0x317: 0x37ab,
+       0x318: 0xa000, 0x319: 0xa000, 0x31a: 0x3829, 0x31b: 0x382f, 0x31c: 0x3739, 0x31d: 0x37bd,
+       0x31e: 0x373f, 0x31f: 0x37c3, 0x322: 0x374b, 0x323: 0x37cf,
+       0x324: 0x3757, 0x325: 0x37db, 0x326: 0x3763, 0x327: 0x37e7, 0x328: 0xa000, 0x329: 0xa000,
+       0x32a: 0x3835, 0x32b: 0x383b, 0x32c: 0x378d, 0x32d: 0x3811, 0x32e: 0x3769, 0x32f: 0x37ed,
+       0x330: 0x3775, 0x331: 0x37f9, 0x332: 0x377b, 0x333: 0x37ff, 0x334: 0x3781, 0x335: 0x3805,
+       0x338: 0x3787, 0x339: 0x380b,
+       // Block 0xd, offset 0x340
+       0x351: 0x812d,
+       0x352: 0x8132, 0x353: 0x8132, 0x354: 0x8132, 0x355: 0x8132, 0x356: 0x812d, 0x357: 0x8132,
+       0x358: 0x8132, 0x359: 0x8132, 0x35a: 0x812e, 0x35b: 0x812d, 0x35c: 0x8132, 0x35d: 0x8132,
+       0x35e: 0x8132, 0x35f: 0x8132, 0x360: 0x8132, 0x361: 0x8132, 0x362: 0x812d, 0x363: 0x812d,
+       0x364: 0x812d, 0x365: 0x812d, 0x366: 0x812d, 0x367: 0x812d, 0x368: 0x8132, 0x369: 0x8132,
+       0x36a: 0x812d, 0x36b: 0x8132, 0x36c: 0x8132, 0x36d: 0x812e, 0x36e: 0x8131, 0x36f: 0x8132,
+       0x370: 0x8105, 0x371: 0x8106, 0x372: 0x8107, 0x373: 0x8108, 0x374: 0x8109, 0x375: 0x810a,
+       0x376: 0x810b, 0x377: 0x810c, 0x378: 0x810d, 0x379: 0x810e, 0x37a: 0x810e, 0x37b: 0x810f,
+       0x37c: 0x8110, 0x37d: 0x8111, 0x37f: 0x8112,
+       // Block 0xe, offset 0x380
+       0x388: 0xa000, 0x38a: 0xa000, 0x38b: 0x8116,
+       0x38c: 0x8117, 0x38d: 0x8118, 0x38e: 0x8119, 0x38f: 0x811a, 0x390: 0x811b, 0x391: 0x811c,
+       0x392: 0x811d, 0x393: 0x9932, 0x394: 0x9932, 0x395: 0x992d, 0x396: 0x812d, 0x397: 0x8132,
+       0x398: 0x8132, 0x399: 0x8132, 0x39a: 0x8132, 0x39b: 0x8132, 0x39c: 0x812d, 0x39d: 0x8132,
+       0x39e: 0x8132, 0x39f: 0x812d,
+       0x3b0: 0x811e,
+       // Block 0xf, offset 0x3c0
+       0x3c5: 0xa000,
+       0x3c6: 0x2d26, 0x3c7: 0xa000, 0x3c8: 0x2d2e, 0x3c9: 0xa000, 0x3ca: 0x2d36, 0x3cb: 0xa000,
+       0x3cc: 0x2d3e, 0x3cd: 0xa000, 0x3ce: 0x2d46, 0x3d1: 0xa000,
+       0x3d2: 0x2d4e,
+       0x3f4: 0x8102, 0x3f5: 0x9900,
+       0x3fa: 0xa000, 0x3fb: 0x2d56,
+       0x3fc: 0xa000, 0x3fd: 0x2d5e, 0x3fe: 0xa000, 0x3ff: 0xa000,
+       // Block 0x10, offset 0x400
+       0x400: 0x2f97, 0x401: 0x32a3, 0x402: 0x2fa1, 0x403: 0x32ad, 0x404: 0x2fa6, 0x405: 0x32b2,
+       0x406: 0x2fab, 0x407: 0x32b7, 0x408: 0x38cc, 0x409: 0x3a5b, 0x40a: 0x2fc4, 0x40b: 0x32d0,
+       0x40c: 0x2fce, 0x40d: 0x32da, 0x40e: 0x2fdd, 0x40f: 0x32e9, 0x410: 0x2fd3, 0x411: 0x32df,
+       0x412: 0x2fd8, 0x413: 0x32e4, 0x414: 0x38ef, 0x415: 0x3a7e, 0x416: 0x38f6, 0x417: 0x3a85,
+       0x418: 0x3019, 0x419: 0x3325, 0x41a: 0x301e, 0x41b: 0x332a, 0x41c: 0x3904, 0x41d: 0x3a93,
+       0x41e: 0x3023, 0x41f: 0x332f, 0x420: 0x3032, 0x421: 0x333e, 0x422: 0x3050, 0x423: 0x335c,
+       0x424: 0x305f, 0x425: 0x336b, 0x426: 0x3055, 0x427: 0x3361, 0x428: 0x3064, 0x429: 0x3370,
+       0x42a: 0x3069, 0x42b: 0x3375, 0x42c: 0x30af, 0x42d: 0x33bb, 0x42e: 0x390b, 0x42f: 0x3a9a,
+       0x430: 0x30b9, 0x431: 0x33ca, 0x432: 0x30c3, 0x433: 0x33d4, 0x434: 0x30cd, 0x435: 0x33de,
+       0x436: 0x475a, 0x437: 0x47eb, 0x438: 0x3912, 0x439: 0x3aa1, 0x43a: 0x30e6, 0x43b: 0x33f7,
+       0x43c: 0x30e1, 0x43d: 0x33f2, 0x43e: 0x30eb, 0x43f: 0x33fc,
+       // Block 0x11, offset 0x440
+       0x440: 0x30f0, 0x441: 0x3401, 0x442: 0x30f5, 0x443: 0x3406, 0x444: 0x3109, 0x445: 0x341a,
+       0x446: 0x3113, 0x447: 0x3424, 0x448: 0x3122, 0x449: 0x3433, 0x44a: 0x311d, 0x44b: 0x342e,
+       0x44c: 0x3935, 0x44d: 0x3ac4, 0x44e: 0x3943, 0x44f: 0x3ad2, 0x450: 0x394a, 0x451: 0x3ad9,
+       0x452: 0x3951, 0x453: 0x3ae0, 0x454: 0x314f, 0x455: 0x3460, 0x456: 0x3154, 0x457: 0x3465,
+       0x458: 0x315e, 0x459: 0x346f, 0x45a: 0x4787, 0x45b: 0x4818, 0x45c: 0x3997, 0x45d: 0x3b26,
+       0x45e: 0x3177, 0x45f: 0x3488, 0x460: 0x3181, 0x461: 0x3492, 0x462: 0x4796, 0x463: 0x4827,
+       0x464: 0x399e, 0x465: 0x3b2d, 0x466: 0x39a5, 0x467: 0x3b34, 0x468: 0x39ac, 0x469: 0x3b3b,
+       0x46a: 0x3190, 0x46b: 0x34a1, 0x46c: 0x319a, 0x46d: 0x34b0, 0x46e: 0x31ae, 0x46f: 0x34c4,
+       0x470: 0x31a9, 0x471: 0x34bf, 0x472: 0x31ea, 0x473: 0x3500, 0x474: 0x31f9, 0x475: 0x350f,
+       0x476: 0x31f4, 0x477: 0x350a, 0x478: 0x39b3, 0x479: 0x3b42, 0x47a: 0x39ba, 0x47b: 0x3b49,
+       0x47c: 0x31fe, 0x47d: 0x3514, 0x47e: 0x3203, 0x47f: 0x3519,
+       // Block 0x12, offset 0x480
+       0x480: 0x3208, 0x481: 0x351e, 0x482: 0x320d, 0x483: 0x3523, 0x484: 0x321c, 0x485: 0x3532,
+       0x486: 0x3217, 0x487: 0x352d, 0x488: 0x3221, 0x489: 0x353c, 0x48a: 0x3226, 0x48b: 0x3541,
+       0x48c: 0x322b, 0x48d: 0x3546, 0x48e: 0x3249, 0x48f: 0x3564, 0x490: 0x3262, 0x491: 0x3582,
+       0x492: 0x3271, 0x493: 0x3591, 0x494: 0x3276, 0x495: 0x3596, 0x496: 0x337a, 0x497: 0x34a6,
+       0x498: 0x3537, 0x499: 0x3573, 0x49b: 0x35d1,
+       0x4a0: 0x4737, 0x4a1: 0x47c8, 0x4a2: 0x2f83, 0x4a3: 0x328f,
+       0x4a4: 0x3878, 0x4a5: 0x3a07, 0x4a6: 0x3871, 0x4a7: 0x3a00, 0x4a8: 0x3886, 0x4a9: 0x3a15,
+       0x4aa: 0x387f, 0x4ab: 0x3a0e, 0x4ac: 0x38be, 0x4ad: 0x3a4d, 0x4ae: 0x3894, 0x4af: 0x3a23,
+       0x4b0: 0x388d, 0x4b1: 0x3a1c, 0x4b2: 0x38a2, 0x4b3: 0x3a31, 0x4b4: 0x389b, 0x4b5: 0x3a2a,
+       0x4b6: 0x38c5, 0x4b7: 0x3a54, 0x4b8: 0x474b, 0x4b9: 0x47dc, 0x4ba: 0x3000, 0x4bb: 0x330c,
+       0x4bc: 0x2fec, 0x4bd: 0x32f8, 0x4be: 0x38da, 0x4bf: 0x3a69,
+       // Block 0x13, offset 0x4c0
+       0x4c0: 0x38d3, 0x4c1: 0x3a62, 0x4c2: 0x38e8, 0x4c3: 0x3a77, 0x4c4: 0x38e1, 0x4c5: 0x3a70,
+       0x4c6: 0x38fd, 0x4c7: 0x3a8c, 0x4c8: 0x3091, 0x4c9: 0x339d, 0x4ca: 0x30a5, 0x4cb: 0x33b1,
+       0x4cc: 0x477d, 0x4cd: 0x480e, 0x4ce: 0x3136, 0x4cf: 0x3447, 0x4d0: 0x3920, 0x4d1: 0x3aaf,
+       0x4d2: 0x3919, 0x4d3: 0x3aa8, 0x4d4: 0x392e, 0x4d5: 0x3abd, 0x4d6: 0x3927, 0x4d7: 0x3ab6,
+       0x4d8: 0x3989, 0x4d9: 0x3b18, 0x4da: 0x396d, 0x4db: 0x3afc, 0x4dc: 0x3966, 0x4dd: 0x3af5,
+       0x4de: 0x397b, 0x4df: 0x3b0a, 0x4e0: 0x3974, 0x4e1: 0x3b03, 0x4e2: 0x3982, 0x4e3: 0x3b11,
+       0x4e4: 0x31e5, 0x4e5: 0x34fb, 0x4e6: 0x31c7, 0x4e7: 0x34dd, 0x4e8: 0x39e4, 0x4e9: 0x3b73,
+       0x4ea: 0x39dd, 0x4eb: 0x3b6c, 0x4ec: 0x39f2, 0x4ed: 0x3b81, 0x4ee: 0x39eb, 0x4ef: 0x3b7a,
+       0x4f0: 0x39f9, 0x4f1: 0x3b88, 0x4f2: 0x3230, 0x4f3: 0x354b, 0x4f4: 0x3258, 0x4f5: 0x3578,
+       0x4f6: 0x3253, 0x4f7: 0x356e, 0x4f8: 0x323f, 0x4f9: 0x355a,
+       // Block 0x14, offset 0x500
+       0x500: 0x489a, 0x501: 0x48a0, 0x502: 0x49b4, 0x503: 0x49cc, 0x504: 0x49bc, 0x505: 0x49d4,
+       0x506: 0x49c4, 0x507: 0x49dc, 0x508: 0x4840, 0x509: 0x4846, 0x50a: 0x4924, 0x50b: 0x493c,
+       0x50c: 0x492c, 0x50d: 0x4944, 0x50e: 0x4934, 0x50f: 0x494c, 0x510: 0x48ac, 0x511: 0x48b2,
+       0x512: 0x3db8, 0x513: 0x3dc8, 0x514: 0x3dc0, 0x515: 0x3dd0,
+       0x518: 0x484c, 0x519: 0x4852, 0x51a: 0x3ce8, 0x51b: 0x3cf8, 0x51c: 0x3cf0, 0x51d: 0x3d00,
+       0x520: 0x48c4, 0x521: 0x48ca, 0x522: 0x49e4, 0x523: 0x49fc,
+       0x524: 0x49ec, 0x525: 0x4a04, 0x526: 0x49f4, 0x527: 0x4a0c, 0x528: 0x4858, 0x529: 0x485e,
+       0x52a: 0x4954, 0x52b: 0x496c, 0x52c: 0x495c, 0x52d: 0x4974, 0x52e: 0x4964, 0x52f: 0x497c,
+       0x530: 0x48dc, 0x531: 0x48e2, 0x532: 0x3e18, 0x533: 0x3e30, 0x534: 0x3e20, 0x535: 0x3e38,
+       0x536: 0x3e28, 0x537: 0x3e40, 0x538: 0x4864, 0x539: 0x486a, 0x53a: 0x3d18, 0x53b: 0x3d30,
+       0x53c: 0x3d20, 0x53d: 0x3d38, 0x53e: 0x3d28, 0x53f: 0x3d40,
+       // Block 0x15, offset 0x540
+       0x540: 0x48e8, 0x541: 0x48ee, 0x542: 0x3e48, 0x543: 0x3e58, 0x544: 0x3e50, 0x545: 0x3e60,
+       0x548: 0x4870, 0x549: 0x4876, 0x54a: 0x3d48, 0x54b: 0x3d58,
+       0x54c: 0x3d50, 0x54d: 0x3d60, 0x550: 0x48fa, 0x551: 0x4900,
+       0x552: 0x3e80, 0x553: 0x3e98, 0x554: 0x3e88, 0x555: 0x3ea0, 0x556: 0x3e90, 0x557: 0x3ea8,
+       0x559: 0x487c, 0x55b: 0x3d68, 0x55d: 0x3d70,
+       0x55f: 0x3d78, 0x560: 0x4912, 0x561: 0x4918, 0x562: 0x4a14, 0x563: 0x4a2c,
+       0x564: 0x4a1c, 0x565: 0x4a34, 0x566: 0x4a24, 0x567: 0x4a3c, 0x568: 0x4882, 0x569: 0x4888,
+       0x56a: 0x4984, 0x56b: 0x499c, 0x56c: 0x498c, 0x56d: 0x49a4, 0x56e: 0x4994, 0x56f: 0x49ac,
+       0x570: 0x488e, 0x571: 0x43b4, 0x572: 0x3691, 0x573: 0x43ba, 0x574: 0x48b8, 0x575: 0x43c0,
+       0x576: 0x36a3, 0x577: 0x43c6, 0x578: 0x36c1, 0x579: 0x43cc, 0x57a: 0x36d9, 0x57b: 0x43d2,
+       0x57c: 0x4906, 0x57d: 0x43d8,
+       // Block 0x16, offset 0x580
+       0x580: 0x3da0, 0x581: 0x3da8, 0x582: 0x4184, 0x583: 0x41a2, 0x584: 0x418e, 0x585: 0x41ac,
+       0x586: 0x4198, 0x587: 0x41b6, 0x588: 0x3cd8, 0x589: 0x3ce0, 0x58a: 0x40d0, 0x58b: 0x40ee,
+       0x58c: 0x40da, 0x58d: 0x40f8, 0x58e: 0x40e4, 0x58f: 0x4102, 0x590: 0x3de8, 0x591: 0x3df0,
+       0x592: 0x41c0, 0x593: 0x41de, 0x594: 0x41ca, 0x595: 0x41e8, 0x596: 0x41d4, 0x597: 0x41f2,
+       0x598: 0x3d08, 0x599: 0x3d10, 0x59a: 0x410c, 0x59b: 0x412a, 0x59c: 0x4116, 0x59d: 0x4134,
+       0x59e: 0x4120, 0x59f: 0x413e, 0x5a0: 0x3ec0, 0x5a1: 0x3ec8, 0x5a2: 0x41fc, 0x5a3: 0x421a,
+       0x5a4: 0x4206, 0x5a5: 0x4224, 0x5a6: 0x4210, 0x5a7: 0x422e, 0x5a8: 0x3d80, 0x5a9: 0x3d88,
+       0x5aa: 0x4148, 0x5ab: 0x4166, 0x5ac: 0x4152, 0x5ad: 0x4170, 0x5ae: 0x415c, 0x5af: 0x417a,
+       0x5b0: 0x3685, 0x5b1: 0x367f, 0x5b2: 0x3d90, 0x5b3: 0x368b, 0x5b4: 0x3d98,
+       0x5b6: 0x48a6, 0x5b7: 0x3db0, 0x5b8: 0x35f5, 0x5b9: 0x35ef, 0x5ba: 0x35e3, 0x5bb: 0x4384,
+       0x5bc: 0x35fb, 0x5bd: 0x8100, 0x5be: 0x01d3, 0x5bf: 0xa100,
+       // Block 0x17, offset 0x5c0
+       0x5c0: 0x8100, 0x5c1: 0x35a7, 0x5c2: 0x3dd8, 0x5c3: 0x369d, 0x5c4: 0x3de0,
+       0x5c6: 0x48d0, 0x5c7: 0x3df8, 0x5c8: 0x3601, 0x5c9: 0x438a, 0x5ca: 0x360d, 0x5cb: 0x4390,
+       0x5cc: 0x3619, 0x5cd: 0x3b8f, 0x5ce: 0x3b96, 0x5cf: 0x3b9d, 0x5d0: 0x36b5, 0x5d1: 0x36af,
+       0x5d2: 0x3e00, 0x5d3: 0x457a, 0x5d6: 0x36bb, 0x5d7: 0x3e10,
+       0x5d8: 0x3631, 0x5d9: 0x362b, 0x5da: 0x361f, 0x5db: 0x4396, 0x5dd: 0x3ba4,
+       0x5de: 0x3bab, 0x5df: 0x3bb2, 0x5e0: 0x36eb, 0x5e1: 0x36e5, 0x5e2: 0x3e68, 0x5e3: 0x4582,
+       0x5e4: 0x36cd, 0x5e5: 0x36d3, 0x5e6: 0x36f1, 0x5e7: 0x3e78, 0x5e8: 0x3661, 0x5e9: 0x365b,
+       0x5ea: 0x364f, 0x5eb: 0x43a2, 0x5ec: 0x3649, 0x5ed: 0x359b, 0x5ee: 0x437e, 0x5ef: 0x0081,
+       0x5f2: 0x3eb0, 0x5f3: 0x36f7, 0x5f4: 0x3eb8,
+       0x5f6: 0x491e, 0x5f7: 0x3ed0, 0x5f8: 0x363d, 0x5f9: 0x439c, 0x5fa: 0x366d, 0x5fb: 0x43ae,
+       0x5fc: 0x3679, 0x5fd: 0x4256, 0x5fe: 0xa100,
+       // Block 0x18, offset 0x600
+       0x601: 0x3c06, 0x603: 0xa000, 0x604: 0x3c0d, 0x605: 0xa000,
+       0x607: 0x3c14, 0x608: 0xa000, 0x609: 0x3c1b,
+       0x60d: 0xa000,
+       0x620: 0x2f65, 0x621: 0xa000, 0x622: 0x3c29,
+       0x624: 0xa000, 0x625: 0xa000,
+       0x62d: 0x3c22, 0x62e: 0x2f60, 0x62f: 0x2f6a,
+       0x630: 0x3c30, 0x631: 0x3c37, 0x632: 0xa000, 0x633: 0xa000, 0x634: 0x3c3e, 0x635: 0x3c45,
+       0x636: 0xa000, 0x637: 0xa000, 0x638: 0x3c4c, 0x639: 0x3c53, 0x63a: 0xa000, 0x63b: 0xa000,
+       0x63c: 0xa000, 0x63d: 0xa000,
+       // Block 0x19, offset 0x640
+       0x640: 0x3c5a, 0x641: 0x3c61, 0x642: 0xa000, 0x643: 0xa000, 0x644: 0x3c76, 0x645: 0x3c7d,
+       0x646: 0xa000, 0x647: 0xa000, 0x648: 0x3c84, 0x649: 0x3c8b,
+       0x651: 0xa000,
+       0x652: 0xa000,
+       0x662: 0xa000,
+       0x668: 0xa000, 0x669: 0xa000,
+       0x66b: 0xa000, 0x66c: 0x3ca0, 0x66d: 0x3ca7, 0x66e: 0x3cae, 0x66f: 0x3cb5,
+       0x672: 0xa000, 0x673: 0xa000, 0x674: 0xa000, 0x675: 0xa000,
+       // Block 0x1a, offset 0x680
+       0x686: 0xa000, 0x68b: 0xa000,
+       0x68c: 0x3f08, 0x68d: 0xa000, 0x68e: 0x3f10, 0x68f: 0xa000, 0x690: 0x3f18, 0x691: 0xa000,
+       0x692: 0x3f20, 0x693: 0xa000, 0x694: 0x3f28, 0x695: 0xa000, 0x696: 0x3f30, 0x697: 0xa000,
+       0x698: 0x3f38, 0x699: 0xa000, 0x69a: 0x3f40, 0x69b: 0xa000, 0x69c: 0x3f48, 0x69d: 0xa000,
+       0x69e: 0x3f50, 0x69f: 0xa000, 0x6a0: 0x3f58, 0x6a1: 0xa000, 0x6a2: 0x3f60,
+       0x6a4: 0xa000, 0x6a5: 0x3f68, 0x6a6: 0xa000, 0x6a7: 0x3f70, 0x6a8: 0xa000, 0x6a9: 0x3f78,
+       0x6af: 0xa000,
+       0x6b0: 0x3f80, 0x6b1: 0x3f88, 0x6b2: 0xa000, 0x6b3: 0x3f90, 0x6b4: 0x3f98, 0x6b5: 0xa000,
+       0x6b6: 0x3fa0, 0x6b7: 0x3fa8, 0x6b8: 0xa000, 0x6b9: 0x3fb0, 0x6ba: 0x3fb8, 0x6bb: 0xa000,
+       0x6bc: 0x3fc0, 0x6bd: 0x3fc8,
+       // Block 0x1b, offset 0x6c0
+       0x6d4: 0x3f00,
+       0x6d9: 0x9903, 0x6da: 0x9903, 0x6db: 0x8100, 0x6dc: 0x8100, 0x6dd: 0xa000,
+       0x6de: 0x3fd0,
+       0x6e6: 0xa000,
+       0x6eb: 0xa000, 0x6ec: 0x3fe0, 0x6ed: 0xa000, 0x6ee: 0x3fe8, 0x6ef: 0xa000,
+       0x6f0: 0x3ff0, 0x6f1: 0xa000, 0x6f2: 0x3ff8, 0x6f3: 0xa000, 0x6f4: 0x4000, 0x6f5: 0xa000,
+       0x6f6: 0x4008, 0x6f7: 0xa000, 0x6f8: 0x4010, 0x6f9: 0xa000, 0x6fa: 0x4018, 0x6fb: 0xa000,
+       0x6fc: 0x4020, 0x6fd: 0xa000, 0x6fe: 0x4028, 0x6ff: 0xa000,
+       // Block 0x1c, offset 0x700
+       0x700: 0x4030, 0x701: 0xa000, 0x702: 0x4038, 0x704: 0xa000, 0x705: 0x4040,
+       0x706: 0xa000, 0x707: 0x4048, 0x708: 0xa000, 0x709: 0x4050,
+       0x70f: 0xa000, 0x710: 0x4058, 0x711: 0x4060,
+       0x712: 0xa000, 0x713: 0x4068, 0x714: 0x4070, 0x715: 0xa000, 0x716: 0x4078, 0x717: 0x4080,
+       0x718: 0xa000, 0x719: 0x4088, 0x71a: 0x4090, 0x71b: 0xa000, 0x71c: 0x4098, 0x71d: 0x40a0,
+       0x72f: 0xa000,
+       0x730: 0xa000, 0x731: 0xa000, 0x732: 0xa000, 0x734: 0x3fd8,
+       0x737: 0x40a8, 0x738: 0x40b0, 0x739: 0x40b8, 0x73a: 0x40c0,
+       0x73d: 0xa000, 0x73e: 0x40c8,
+       // Block 0x1d, offset 0x740
+       0x740: 0x1377, 0x741: 0x0cfb, 0x742: 0x13d3, 0x743: 0x139f, 0x744: 0x0e57, 0x745: 0x06eb,
+       0x746: 0x08df, 0x747: 0x162b, 0x748: 0x162b, 0x749: 0x0a0b, 0x74a: 0x145f, 0x74b: 0x0943,
+       0x74c: 0x0a07, 0x74d: 0x0bef, 0x74e: 0x0fcf, 0x74f: 0x115f, 0x750: 0x1297, 0x751: 0x12d3,
+       0x752: 0x1307, 0x753: 0x141b, 0x754: 0x0d73, 0x755: 0x0dff, 0x756: 0x0eab, 0x757: 0x0f43,
+       0x758: 0x125f, 0x759: 0x1447, 0x75a: 0x1573, 0x75b: 0x070f, 0x75c: 0x08b3, 0x75d: 0x0d87,
+       0x75e: 0x0ecf, 0x75f: 0x1293, 0x760: 0x15c3, 0x761: 0x0ab3, 0x762: 0x0e77, 0x763: 0x1283,
+       0x764: 0x1317, 0x765: 0x0c23, 0x766: 0x11bb, 0x767: 0x12df, 0x768: 0x0b1f, 0x769: 0x0d0f,
+       0x76a: 0x0e17, 0x76b: 0x0f1b, 0x76c: 0x1427, 0x76d: 0x074f, 0x76e: 0x07e7, 0x76f: 0x0853,
+       0x770: 0x0c8b, 0x771: 0x0d7f, 0x772: 0x0ecb, 0x773: 0x0fef, 0x774: 0x1177, 0x775: 0x128b,
+       0x776: 0x12a3, 0x777: 0x13c7, 0x778: 0x14ef, 0x779: 0x15a3, 0x77a: 0x15bf, 0x77b: 0x102b,
+       0x77c: 0x106b, 0x77d: 0x1123, 0x77e: 0x1243, 0x77f: 0x147b,
+       // Block 0x1e, offset 0x780
+       0x780: 0x15cb, 0x781: 0x134b, 0x782: 0x09c7, 0x783: 0x0b3b, 0x784: 0x10db, 0x785: 0x119b,
+       0x786: 0x0eff, 0x787: 0x1033, 0x788: 0x1397, 0x789: 0x14e7, 0x78a: 0x09c3, 0x78b: 0x0a8f,
+       0x78c: 0x0d77, 0x78d: 0x0e2b, 0x78e: 0x0e5f, 0x78f: 0x1113, 0x790: 0x113b, 0x791: 0x14a7,
+       0x792: 0x084f, 0x793: 0x11a7, 0x794: 0x07f3, 0x795: 0x07ef, 0x796: 0x1097, 0x797: 0x1127,
+       0x798: 0x125b, 0x799: 0x14af, 0x79a: 0x1367, 0x79b: 0x0c27, 0x79c: 0x0d73, 0x79d: 0x1357,
+       0x79e: 0x06f7, 0x79f: 0x0a63, 0x7a0: 0x0b93, 0x7a1: 0x0f2f, 0x7a2: 0x0faf, 0x7a3: 0x0873,
+       0x7a4: 0x103b, 0x7a5: 0x075f, 0x7a6: 0x0b77, 0x7a7: 0x06d7, 0x7a8: 0x0deb, 0x7a9: 0x0ca3,
+       0x7aa: 0x110f, 0x7ab: 0x08c7, 0x7ac: 0x09b3, 0x7ad: 0x0ffb, 0x7ae: 0x1263, 0x7af: 0x133b,
+       0x7b0: 0x0db7, 0x7b1: 0x13f7, 0x7b2: 0x0de3, 0x7b3: 0x0c37, 0x7b4: 0x121b, 0x7b5: 0x0c57,
+       0x7b6: 0x0fab, 0x7b7: 0x072b, 0x7b8: 0x07a7, 0x7b9: 0x07eb, 0x7ba: 0x0d53, 0x7bb: 0x10fb,
+       0x7bc: 0x11f3, 0x7bd: 0x1347, 0x7be: 0x145b, 0x7bf: 0x085b,
+       // Block 0x1f, offset 0x7c0
+       0x7c0: 0x090f, 0x7c1: 0x0a17, 0x7c2: 0x0b2f, 0x7c3: 0x0cbf, 0x7c4: 0x0e7b, 0x7c5: 0x103f,
+       0x7c6: 0x1497, 0x7c7: 0x157b, 0x7c8: 0x15cf, 0x7c9: 0x15e7, 0x7ca: 0x0837, 0x7cb: 0x0cf3,
+       0x7cc: 0x0da3, 0x7cd: 0x13eb, 0x7ce: 0x0afb, 0x7cf: 0x0bd7, 0x7d0: 0x0bf3, 0x7d1: 0x0c83,
+       0x7d2: 0x0e6b, 0x7d3: 0x0eb7, 0x7d4: 0x0f67, 0x7d5: 0x108b, 0x7d6: 0x112f, 0x7d7: 0x1193,
+       0x7d8: 0x13db, 0x7d9: 0x126b, 0x7da: 0x1403, 0x7db: 0x147f, 0x7dc: 0x080f, 0x7dd: 0x083b,
+       0x7de: 0x0923, 0x7df: 0x0ea7, 0x7e0: 0x12f3, 0x7e1: 0x133b, 0x7e2: 0x0b1b, 0x7e3: 0x0b8b,
+       0x7e4: 0x0c4f, 0x7e5: 0x0daf, 0x7e6: 0x10d7, 0x7e7: 0x0f23, 0x7e8: 0x073b, 0x7e9: 0x097f,
+       0x7ea: 0x0a63, 0x7eb: 0x0ac7, 0x7ec: 0x0b97, 0x7ed: 0x0f3f, 0x7ee: 0x0f5b, 0x7ef: 0x116b,
+       0x7f0: 0x118b, 0x7f1: 0x1463, 0x7f2: 0x14e3, 0x7f3: 0x14f3, 0x7f4: 0x152f, 0x7f5: 0x0753,
+       0x7f6: 0x107f, 0x7f7: 0x144f, 0x7f8: 0x14cb, 0x7f9: 0x0baf, 0x7fa: 0x0717, 0x7fb: 0x0777,
+       0x7fc: 0x0a67, 0x7fd: 0x0a87, 0x7fe: 0x0caf, 0x7ff: 0x0d73,
+       // Block 0x20, offset 0x800
+       0x800: 0x0ec3, 0x801: 0x0fcb, 0x802: 0x1277, 0x803: 0x1417, 0x804: 0x1623, 0x805: 0x0ce3,
+       0x806: 0x14a3, 0x807: 0x0833, 0x808: 0x0d2f, 0x809: 0x0d3b, 0x80a: 0x0e0f, 0x80b: 0x0e47,
+       0x80c: 0x0f4b, 0x80d: 0x0fa7, 0x80e: 0x1027, 0x80f: 0x110b, 0x810: 0x153b, 0x811: 0x07af,
+       0x812: 0x0c03, 0x813: 0x14b3, 0x814: 0x0767, 0x815: 0x0aab, 0x816: 0x0e2f, 0x817: 0x13df,
+       0x818: 0x0b67, 0x819: 0x0bb7, 0x81a: 0x0d43, 0x81b: 0x0f2f, 0x81c: 0x14bb, 0x81d: 0x0817,
+       0x81e: 0x08ff, 0x81f: 0x0a97, 0x820: 0x0cd3, 0x821: 0x0d1f, 0x822: 0x0d5f, 0x823: 0x0df3,
+       0x824: 0x0f47, 0x825: 0x0fbb, 0x826: 0x1157, 0x827: 0x12f7, 0x828: 0x1303, 0x829: 0x1457,
+       0x82a: 0x14d7, 0x82b: 0x0883, 0x82c: 0x0e4b, 0x82d: 0x0903, 0x82e: 0x0ec7, 0x82f: 0x0f6b,
+       0x830: 0x1287, 0x831: 0x14bf, 0x832: 0x15ab, 0x833: 0x15d3, 0x834: 0x0d37, 0x835: 0x0e27,
+       0x836: 0x11c3, 0x837: 0x10b7, 0x838: 0x10c3, 0x839: 0x10e7, 0x83a: 0x0f17, 0x83b: 0x0e9f,
+       0x83c: 0x1363, 0x83d: 0x0733, 0x83e: 0x122b, 0x83f: 0x081b,
+       // Block 0x21, offset 0x840
+       0x840: 0x080b, 0x841: 0x0b0b, 0x842: 0x0c2b, 0x843: 0x10f3, 0x844: 0x0a53, 0x845: 0x0e03,
+       0x846: 0x0cef, 0x847: 0x13e7, 0x848: 0x12e7, 0x849: 0x14ab, 0x84a: 0x1323, 0x84b: 0x0b27,
+       0x84c: 0x0787, 0x84d: 0x095b, 0x850: 0x09af,
+       0x852: 0x0cdf, 0x855: 0x07f7, 0x856: 0x0f1f, 0x857: 0x0fe3,
+       0x858: 0x1047, 0x859: 0x1063, 0x85a: 0x1067, 0x85b: 0x107b, 0x85c: 0x14fb, 0x85d: 0x10eb,
+       0x85e: 0x116f, 0x860: 0x128f, 0x862: 0x1353,
+       0x865: 0x1407, 0x866: 0x1433,
+       0x86a: 0x154f, 0x86b: 0x1553, 0x86c: 0x1557, 0x86d: 0x15bb, 0x86e: 0x142b, 0x86f: 0x14c7,
+       0x870: 0x0757, 0x871: 0x077b, 0x872: 0x078f, 0x873: 0x084b, 0x874: 0x0857, 0x875: 0x0897,
+       0x876: 0x094b, 0x877: 0x0967, 0x878: 0x096f, 0x879: 0x09ab, 0x87a: 0x09b7, 0x87b: 0x0a93,
+       0x87c: 0x0a9b, 0x87d: 0x0ba3, 0x87e: 0x0bcb, 0x87f: 0x0bd3,
+       // Block 0x22, offset 0x880
+       0x880: 0x0beb, 0x881: 0x0c97, 0x882: 0x0cc7, 0x883: 0x0ce7, 0x884: 0x0d57, 0x885: 0x0e1b,
+       0x886: 0x0e37, 0x887: 0x0e67, 0x888: 0x0ebb, 0x889: 0x0edb, 0x88a: 0x0f4f, 0x88b: 0x102f,
+       0x88c: 0x104b, 0x88d: 0x1053, 0x88e: 0x104f, 0x88f: 0x1057, 0x890: 0x105b, 0x891: 0x105f,
+       0x892: 0x1073, 0x893: 0x1077, 0x894: 0x109b, 0x895: 0x10af, 0x896: 0x10cb, 0x897: 0x112f,
+       0x898: 0x1137, 0x899: 0x113f, 0x89a: 0x1153, 0x89b: 0x117b, 0x89c: 0x11cb, 0x89d: 0x11ff,
+       0x89e: 0x11ff, 0x89f: 0x1267, 0x8a0: 0x130f, 0x8a1: 0x1327, 0x8a2: 0x135b, 0x8a3: 0x135f,
+       0x8a4: 0x13a3, 0x8a5: 0x13a7, 0x8a6: 0x13ff, 0x8a7: 0x1407, 0x8a8: 0x14db, 0x8a9: 0x151f,
+       0x8aa: 0x1537, 0x8ab: 0x0b9b, 0x8ac: 0x171e, 0x8ad: 0x11e3,
+       0x8b0: 0x06df, 0x8b1: 0x07e3, 0x8b2: 0x07a3, 0x8b3: 0x074b, 0x8b4: 0x078b, 0x8b5: 0x07b7,
+       0x8b6: 0x0847, 0x8b7: 0x0863, 0x8b8: 0x094b, 0x8b9: 0x0937, 0x8ba: 0x0947, 0x8bb: 0x0963,
+       0x8bc: 0x09af, 0x8bd: 0x09bf, 0x8be: 0x0a03, 0x8bf: 0x0a0f,
+       // Block 0x23, offset 0x8c0
+       0x8c0: 0x0a2b, 0x8c1: 0x0a3b, 0x8c2: 0x0b23, 0x8c3: 0x0b2b, 0x8c4: 0x0b5b, 0x8c5: 0x0b7b,
+       0x8c6: 0x0bab, 0x8c7: 0x0bc3, 0x8c8: 0x0bb3, 0x8c9: 0x0bd3, 0x8ca: 0x0bc7, 0x8cb: 0x0beb,
+       0x8cc: 0x0c07, 0x8cd: 0x0c5f, 0x8ce: 0x0c6b, 0x8cf: 0x0c73, 0x8d0: 0x0c9b, 0x8d1: 0x0cdf,
+       0x8d2: 0x0d0f, 0x8d3: 0x0d13, 0x8d4: 0x0d27, 0x8d5: 0x0da7, 0x8d6: 0x0db7, 0x8d7: 0x0e0f,
+       0x8d8: 0x0e5b, 0x8d9: 0x0e53, 0x8da: 0x0e67, 0x8db: 0x0e83, 0x8dc: 0x0ebb, 0x8dd: 0x1013,
+       0x8de: 0x0edf, 0x8df: 0x0f13, 0x8e0: 0x0f1f, 0x8e1: 0x0f5f, 0x8e2: 0x0f7b, 0x8e3: 0x0f9f,
+       0x8e4: 0x0fc3, 0x8e5: 0x0fc7, 0x8e6: 0x0fe3, 0x8e7: 0x0fe7, 0x8e8: 0x0ff7, 0x8e9: 0x100b,
+       0x8ea: 0x1007, 0x8eb: 0x1037, 0x8ec: 0x10b3, 0x8ed: 0x10cb, 0x8ee: 0x10e3, 0x8ef: 0x111b,
+       0x8f0: 0x112f, 0x8f1: 0x114b, 0x8f2: 0x117b, 0x8f3: 0x122f, 0x8f4: 0x1257, 0x8f5: 0x12cb,
+       0x8f6: 0x1313, 0x8f7: 0x131f, 0x8f8: 0x1327, 0x8f9: 0x133f, 0x8fa: 0x1353, 0x8fb: 0x1343,
+       0x8fc: 0x135b, 0x8fd: 0x1357, 0x8fe: 0x134f, 0x8ff: 0x135f,
+       // Block 0x24, offset 0x900
+       0x900: 0x136b, 0x901: 0x13a7, 0x902: 0x13e3, 0x903: 0x1413, 0x904: 0x144b, 0x905: 0x146b,
+       0x906: 0x14b7, 0x907: 0x14db, 0x908: 0x14fb, 0x909: 0x150f, 0x90a: 0x151f, 0x90b: 0x152b,
+       0x90c: 0x1537, 0x90d: 0x158b, 0x90e: 0x162b, 0x90f: 0x16b5, 0x910: 0x16b0, 0x911: 0x16e2,
+       0x912: 0x0607, 0x913: 0x062f, 0x914: 0x0633, 0x915: 0x1764, 0x916: 0x1791, 0x917: 0x1809,
+       0x918: 0x1617, 0x919: 0x1627,
+       // Block 0x25, offset 0x940
+       0x940: 0x06fb, 0x941: 0x06f3, 0x942: 0x0703, 0x943: 0x1647, 0x944: 0x0747, 0x945: 0x0757,
+       0x946: 0x075b, 0x947: 0x0763, 0x948: 0x076b, 0x949: 0x076f, 0x94a: 0x077b, 0x94b: 0x0773,
+       0x94c: 0x05b3, 0x94d: 0x165b, 0x94e: 0x078f, 0x94f: 0x0793, 0x950: 0x0797, 0x951: 0x07b3,
+       0x952: 0x164c, 0x953: 0x05b7, 0x954: 0x079f, 0x955: 0x07bf, 0x956: 0x1656, 0x957: 0x07cf,
+       0x958: 0x07d7, 0x959: 0x0737, 0x95a: 0x07df, 0x95b: 0x07e3, 0x95c: 0x1831, 0x95d: 0x07ff,
+       0x95e: 0x0807, 0x95f: 0x05bf, 0x960: 0x081f, 0x961: 0x0823, 0x962: 0x082b, 0x963: 0x082f,
+       0x964: 0x05c3, 0x965: 0x0847, 0x966: 0x084b, 0x967: 0x0857, 0x968: 0x0863, 0x969: 0x0867,
+       0x96a: 0x086b, 0x96b: 0x0873, 0x96c: 0x0893, 0x96d: 0x0897, 0x96e: 0x089f, 0x96f: 0x08af,
+       0x970: 0x08b7, 0x971: 0x08bb, 0x972: 0x08bb, 0x973: 0x08bb, 0x974: 0x166a, 0x975: 0x0e93,
+       0x976: 0x08cf, 0x977: 0x08d7, 0x978: 0x166f, 0x979: 0x08e3, 0x97a: 0x08eb, 0x97b: 0x08f3,
+       0x97c: 0x091b, 0x97d: 0x0907, 0x97e: 0x0913, 0x97f: 0x0917,
+       // Block 0x26, offset 0x980
+       0x980: 0x091f, 0x981: 0x0927, 0x982: 0x092b, 0x983: 0x0933, 0x984: 0x093b, 0x985: 0x093f,
+       0x986: 0x093f, 0x987: 0x0947, 0x988: 0x094f, 0x989: 0x0953, 0x98a: 0x095f, 0x98b: 0x0983,
+       0x98c: 0x0967, 0x98d: 0x0987, 0x98e: 0x096b, 0x98f: 0x0973, 0x990: 0x080b, 0x991: 0x09cf,
+       0x992: 0x0997, 0x993: 0x099b, 0x994: 0x099f, 0x995: 0x0993, 0x996: 0x09a7, 0x997: 0x09a3,
+       0x998: 0x09bb, 0x999: 0x1674, 0x99a: 0x09d7, 0x99b: 0x09db, 0x99c: 0x09e3, 0x99d: 0x09ef,
+       0x99e: 0x09f7, 0x99f: 0x0a13, 0x9a0: 0x1679, 0x9a1: 0x167e, 0x9a2: 0x0a1f, 0x9a3: 0x0a23,
+       0x9a4: 0x0a27, 0x9a5: 0x0a1b, 0x9a6: 0x0a2f, 0x9a7: 0x05c7, 0x9a8: 0x05cb, 0x9a9: 0x0a37,
+       0x9aa: 0x0a3f, 0x9ab: 0x0a3f, 0x9ac: 0x1683, 0x9ad: 0x0a5b, 0x9ae: 0x0a5f, 0x9af: 0x0a63,
+       0x9b0: 0x0a6b, 0x9b1: 0x1688, 0x9b2: 0x0a73, 0x9b3: 0x0a77, 0x9b4: 0x0b4f, 0x9b5: 0x0a7f,
+       0x9b6: 0x05cf, 0x9b7: 0x0a8b, 0x9b8: 0x0a9b, 0x9b9: 0x0aa7, 0x9ba: 0x0aa3, 0x9bb: 0x1692,
+       0x9bc: 0x0aaf, 0x9bd: 0x1697, 0x9be: 0x0abb, 0x9bf: 0x0ab7,
+       // Block 0x27, offset 0x9c0
+       0x9c0: 0x0abf, 0x9c1: 0x0acf, 0x9c2: 0x0ad3, 0x9c3: 0x05d3, 0x9c4: 0x0ae3, 0x9c5: 0x0aeb,
+       0x9c6: 0x0aef, 0x9c7: 0x0af3, 0x9c8: 0x05d7, 0x9c9: 0x169c, 0x9ca: 0x05db, 0x9cb: 0x0b0f,
+       0x9cc: 0x0b13, 0x9cd: 0x0b17, 0x9ce: 0x0b1f, 0x9cf: 0x1863, 0x9d0: 0x0b37, 0x9d1: 0x16a6,
+       0x9d2: 0x16a6, 0x9d3: 0x11d7, 0x9d4: 0x0b47, 0x9d5: 0x0b47, 0x9d6: 0x05df, 0x9d7: 0x16c9,
+       0x9d8: 0x179b, 0x9d9: 0x0b57, 0x9da: 0x0b5f, 0x9db: 0x05e3, 0x9dc: 0x0b73, 0x9dd: 0x0b83,
+       0x9de: 0x0b87, 0x9df: 0x0b8f, 0x9e0: 0x0b9f, 0x9e1: 0x05eb, 0x9e2: 0x05e7, 0x9e3: 0x0ba3,
+       0x9e4: 0x16ab, 0x9e5: 0x0ba7, 0x9e6: 0x0bbb, 0x9e7: 0x0bbf, 0x9e8: 0x0bc3, 0x9e9: 0x0bbf,
+       0x9ea: 0x0bcf, 0x9eb: 0x0bd3, 0x9ec: 0x0be3, 0x9ed: 0x0bdb, 0x9ee: 0x0bdf, 0x9ef: 0x0be7,
+       0x9f0: 0x0beb, 0x9f1: 0x0bef, 0x9f2: 0x0bfb, 0x9f3: 0x0bff, 0x9f4: 0x0c17, 0x9f5: 0x0c1f,
+       0x9f6: 0x0c2f, 0x9f7: 0x0c43, 0x9f8: 0x16ba, 0x9f9: 0x0c3f, 0x9fa: 0x0c33, 0x9fb: 0x0c4b,
+       0x9fc: 0x0c53, 0x9fd: 0x0c67, 0x9fe: 0x16bf, 0x9ff: 0x0c6f,
+       // Block 0x28, offset 0xa00
+       0xa00: 0x0c63, 0xa01: 0x0c5b, 0xa02: 0x05ef, 0xa03: 0x0c77, 0xa04: 0x0c7f, 0xa05: 0x0c87,
+       0xa06: 0x0c7b, 0xa07: 0x05f3, 0xa08: 0x0c97, 0xa09: 0x0c9f, 0xa0a: 0x16c4, 0xa0b: 0x0ccb,
+       0xa0c: 0x0cff, 0xa0d: 0x0cdb, 0xa0e: 0x05ff, 0xa0f: 0x0ce7, 0xa10: 0x05fb, 0xa11: 0x05f7,
+       0xa12: 0x07c3, 0xa13: 0x07c7, 0xa14: 0x0d03, 0xa15: 0x0ceb, 0xa16: 0x11ab, 0xa17: 0x0663,
+       0xa18: 0x0d0f, 0xa19: 0x0d13, 0xa1a: 0x0d17, 0xa1b: 0x0d2b, 0xa1c: 0x0d23, 0xa1d: 0x16dd,
+       0xa1e: 0x0603, 0xa1f: 0x0d3f, 0xa20: 0x0d33, 0xa21: 0x0d4f, 0xa22: 0x0d57, 0xa23: 0x16e7,
+       0xa24: 0x0d5b, 0xa25: 0x0d47, 0xa26: 0x0d63, 0xa27: 0x0607, 0xa28: 0x0d67, 0xa29: 0x0d6b,
+       0xa2a: 0x0d6f, 0xa2b: 0x0d7b, 0xa2c: 0x16ec, 0xa2d: 0x0d83, 0xa2e: 0x060b, 0xa2f: 0x0d8f,
+       0xa30: 0x16f1, 0xa31: 0x0d93, 0xa32: 0x060f, 0xa33: 0x0d9f, 0xa34: 0x0dab, 0xa35: 0x0db7,
+       0xa36: 0x0dbb, 0xa37: 0x16f6, 0xa38: 0x168d, 0xa39: 0x16fb, 0xa3a: 0x0ddb, 0xa3b: 0x1700,
+       0xa3c: 0x0de7, 0xa3d: 0x0def, 0xa3e: 0x0ddf, 0xa3f: 0x0dfb,
+       // Block 0x29, offset 0xa40
+       0xa40: 0x0e0b, 0xa41: 0x0e1b, 0xa42: 0x0e0f, 0xa43: 0x0e13, 0xa44: 0x0e1f, 0xa45: 0x0e23,
+       0xa46: 0x1705, 0xa47: 0x0e07, 0xa48: 0x0e3b, 0xa49: 0x0e3f, 0xa4a: 0x0613, 0xa4b: 0x0e53,
+       0xa4c: 0x0e4f, 0xa4d: 0x170a, 0xa4e: 0x0e33, 0xa4f: 0x0e6f, 0xa50: 0x170f, 0xa51: 0x1714,
+       0xa52: 0x0e73, 0xa53: 0x0e87, 0xa54: 0x0e83, 0xa55: 0x0e7f, 0xa56: 0x0617, 0xa57: 0x0e8b,
+       0xa58: 0x0e9b, 0xa59: 0x0e97, 0xa5a: 0x0ea3, 0xa5b: 0x1651, 0xa5c: 0x0eb3, 0xa5d: 0x1719,
+       0xa5e: 0x0ebf, 0xa5f: 0x1723, 0xa60: 0x0ed3, 0xa61: 0x0edf, 0xa62: 0x0ef3, 0xa63: 0x1728,
+       0xa64: 0x0f07, 0xa65: 0x0f0b, 0xa66: 0x172d, 0xa67: 0x1732, 0xa68: 0x0f27, 0xa69: 0x0f37,
+       0xa6a: 0x061b, 0xa6b: 0x0f3b, 0xa6c: 0x061f, 0xa6d: 0x061f, 0xa6e: 0x0f53, 0xa6f: 0x0f57,
+       0xa70: 0x0f5f, 0xa71: 0x0f63, 0xa72: 0x0f6f, 0xa73: 0x0623, 0xa74: 0x0f87, 0xa75: 0x1737,
+       0xa76: 0x0fa3, 0xa77: 0x173c, 0xa78: 0x0faf, 0xa79: 0x16a1, 0xa7a: 0x0fbf, 0xa7b: 0x1741,
+       0xa7c: 0x1746, 0xa7d: 0x174b, 0xa7e: 0x0627, 0xa7f: 0x062b,
+       // Block 0x2a, offset 0xa80
+       0xa80: 0x0ff7, 0xa81: 0x1755, 0xa82: 0x1750, 0xa83: 0x175a, 0xa84: 0x175f, 0xa85: 0x0fff,
+       0xa86: 0x1003, 0xa87: 0x1003, 0xa88: 0x100b, 0xa89: 0x0633, 0xa8a: 0x100f, 0xa8b: 0x0637,
+       0xa8c: 0x063b, 0xa8d: 0x1769, 0xa8e: 0x1023, 0xa8f: 0x102b, 0xa90: 0x1037, 0xa91: 0x063f,
+       0xa92: 0x176e, 0xa93: 0x105b, 0xa94: 0x1773, 0xa95: 0x1778, 0xa96: 0x107b, 0xa97: 0x1093,
+       0xa98: 0x0643, 0xa99: 0x109b, 0xa9a: 0x109f, 0xa9b: 0x10a3, 0xa9c: 0x177d, 0xa9d: 0x1782,
+       0xa9e: 0x1782, 0xa9f: 0x10bb, 0xaa0: 0x0647, 0xaa1: 0x1787, 0xaa2: 0x10cf, 0xaa3: 0x10d3,
+       0xaa4: 0x064b, 0xaa5: 0x178c, 0xaa6: 0x10ef, 0xaa7: 0x064f, 0xaa8: 0x10ff, 0xaa9: 0x10f7,
+       0xaaa: 0x1107, 0xaab: 0x1796, 0xaac: 0x111f, 0xaad: 0x0653, 0xaae: 0x112b, 0xaaf: 0x1133,
+       0xab0: 0x1143, 0xab1: 0x0657, 0xab2: 0x17a0, 0xab3: 0x17a5, 0xab4: 0x065b, 0xab5: 0x17aa,
+       0xab6: 0x115b, 0xab7: 0x17af, 0xab8: 0x1167, 0xab9: 0x1173, 0xaba: 0x117b, 0xabb: 0x17b4,
+       0xabc: 0x17b9, 0xabd: 0x118f, 0xabe: 0x17be, 0xabf: 0x1197,
+       // Block 0x2b, offset 0xac0
+       0xac0: 0x16ce, 0xac1: 0x065f, 0xac2: 0x11af, 0xac3: 0x11b3, 0xac4: 0x0667, 0xac5: 0x11b7,
+       0xac6: 0x0a33, 0xac7: 0x17c3, 0xac8: 0x17c8, 0xac9: 0x16d3, 0xaca: 0x16d8, 0xacb: 0x11d7,
+       0xacc: 0x11db, 0xacd: 0x13f3, 0xace: 0x066b, 0xacf: 0x1207, 0xad0: 0x1203, 0xad1: 0x120b,
+       0xad2: 0x083f, 0xad3: 0x120f, 0xad4: 0x1213, 0xad5: 0x1217, 0xad6: 0x121f, 0xad7: 0x17cd,
+       0xad8: 0x121b, 0xad9: 0x1223, 0xada: 0x1237, 0xadb: 0x123b, 0xadc: 0x1227, 0xadd: 0x123f,
+       0xade: 0x1253, 0xadf: 0x1267, 0xae0: 0x1233, 0xae1: 0x1247, 0xae2: 0x124b, 0xae3: 0x124f,
+       0xae4: 0x17d2, 0xae5: 0x17dc, 0xae6: 0x17d7, 0xae7: 0x066f, 0xae8: 0x126f, 0xae9: 0x1273,
+       0xaea: 0x127b, 0xaeb: 0x17f0, 0xaec: 0x127f, 0xaed: 0x17e1, 0xaee: 0x0673, 0xaef: 0x0677,
+       0xaf0: 0x17e6, 0xaf1: 0x17eb, 0xaf2: 0x067b, 0xaf3: 0x129f, 0xaf4: 0x12a3, 0xaf5: 0x12a7,
+       0xaf6: 0x12ab, 0xaf7: 0x12b7, 0xaf8: 0x12b3, 0xaf9: 0x12bf, 0xafa: 0x12bb, 0xafb: 0x12cb,
+       0xafc: 0x12c3, 0xafd: 0x12c7, 0xafe: 0x12cf, 0xaff: 0x067f,
+       // Block 0x2c, offset 0xb00
+       0xb00: 0x12d7, 0xb01: 0x12db, 0xb02: 0x0683, 0xb03: 0x12eb, 0xb04: 0x12ef, 0xb05: 0x17f5,
+       0xb06: 0x12fb, 0xb07: 0x12ff, 0xb08: 0x0687, 0xb09: 0x130b, 0xb0a: 0x05bb, 0xb0b: 0x17fa,
+       0xb0c: 0x17ff, 0xb0d: 0x068b, 0xb0e: 0x068f, 0xb0f: 0x1337, 0xb10: 0x134f, 0xb11: 0x136b,
+       0xb12: 0x137b, 0xb13: 0x1804, 0xb14: 0x138f, 0xb15: 0x1393, 0xb16: 0x13ab, 0xb17: 0x13b7,
+       0xb18: 0x180e, 0xb19: 0x1660, 0xb1a: 0x13c3, 0xb1b: 0x13bf, 0xb1c: 0x13cb, 0xb1d: 0x1665,
+       0xb1e: 0x13d7, 0xb1f: 0x13e3, 0xb20: 0x1813, 0xb21: 0x1818, 0xb22: 0x1423, 0xb23: 0x142f,
+       0xb24: 0x1437, 0xb25: 0x181d, 0xb26: 0x143b, 0xb27: 0x1467, 0xb28: 0x1473, 0xb29: 0x1477,
+       0xb2a: 0x146f, 0xb2b: 0x1483, 0xb2c: 0x1487, 0xb2d: 0x1822, 0xb2e: 0x1493, 0xb2f: 0x0693,
+       0xb30: 0x149b, 0xb31: 0x1827, 0xb32: 0x0697, 0xb33: 0x14d3, 0xb34: 0x0ac3, 0xb35: 0x14eb,
+       0xb36: 0x182c, 0xb37: 0x1836, 0xb38: 0x069b, 0xb39: 0x069f, 0xb3a: 0x1513, 0xb3b: 0x183b,
+       0xb3c: 0x06a3, 0xb3d: 0x1840, 0xb3e: 0x152b, 0xb3f: 0x152b,
+       // Block 0x2d, offset 0xb40
+       0xb40: 0x1533, 0xb41: 0x1845, 0xb42: 0x154b, 0xb43: 0x06a7, 0xb44: 0x155b, 0xb45: 0x1567,
+       0xb46: 0x156f, 0xb47: 0x1577, 0xb48: 0x06ab, 0xb49: 0x184a, 0xb4a: 0x158b, 0xb4b: 0x15a7,
+       0xb4c: 0x15b3, 0xb4d: 0x06af, 0xb4e: 0x06b3, 0xb4f: 0x15b7, 0xb50: 0x184f, 0xb51: 0x06b7,
+       0xb52: 0x1854, 0xb53: 0x1859, 0xb54: 0x185e, 0xb55: 0x15db, 0xb56: 0x06bb, 0xb57: 0x15ef,
+       0xb58: 0x15f7, 0xb59: 0x15fb, 0xb5a: 0x1603, 0xb5b: 0x160b, 0xb5c: 0x1613, 0xb5d: 0x1868,
+}
+
+// nfcIndex: 22 blocks, 1408 entries, 1408 bytes
+// Block 0 is the zero block.
+var nfcIndex = [1408]uint8{
+       // Block 0x0, offset 0x0
+       // Block 0x1, offset 0x40
+       // Block 0x2, offset 0x80
+       // Block 0x3, offset 0xc0
+       0xc2: 0x2c, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x2d, 0xc7: 0x04,
+       0xc8: 0x05, 0xca: 0x2e, 0xcb: 0x2f, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x30,
+       0xd0: 0x09, 0xd1: 0x31, 0xd2: 0x32, 0xd3: 0x0a, 0xd6: 0x0b, 0xd7: 0x33,
+       0xd8: 0x34, 0xd9: 0x0c, 0xdb: 0x35, 0xdc: 0x36, 0xdd: 0x37, 0xdf: 0x38,
+       0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05,
+       0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a,
+       0xf0: 0x13,
+       // Block 0x4, offset 0x100
+       0x120: 0x39, 0x121: 0x3a, 0x123: 0x3b, 0x124: 0x3c, 0x125: 0x3d, 0x126: 0x3e, 0x127: 0x3f,
+       0x128: 0x40, 0x129: 0x41, 0x12a: 0x42, 0x12b: 0x43, 0x12c: 0x3e, 0x12d: 0x44, 0x12e: 0x45, 0x12f: 0x46,
+       0x131: 0x47, 0x132: 0x48, 0x133: 0x49, 0x134: 0x4a, 0x135: 0x4b, 0x137: 0x4c,
+       0x138: 0x4d, 0x139: 0x4e, 0x13a: 0x4f, 0x13b: 0x50, 0x13c: 0x51, 0x13d: 0x52, 0x13e: 0x53, 0x13f: 0x54,
+       // Block 0x5, offset 0x140
+       0x140: 0x55, 0x142: 0x56, 0x144: 0x57, 0x145: 0x58, 0x146: 0x59, 0x147: 0x5a,
+       0x14d: 0x5b,
+       0x15c: 0x5c, 0x15f: 0x5d,
+       0x162: 0x5e, 0x164: 0x5f,
+       0x168: 0x60, 0x169: 0x61, 0x16a: 0x62, 0x16c: 0x0d, 0x16d: 0x63, 0x16e: 0x64, 0x16f: 0x65,
+       0x170: 0x66, 0x173: 0x67, 0x177: 0x68,
+       0x178: 0x0e, 0x179: 0x0f, 0x17a: 0x10, 0x17b: 0x11, 0x17c: 0x12, 0x17d: 0x13, 0x17e: 0x14, 0x17f: 0x15,
+       // Block 0x6, offset 0x180
+       0x180: 0x69, 0x183: 0x6a, 0x184: 0x6b, 0x186: 0x6c, 0x187: 0x6d,
+       0x188: 0x6e, 0x189: 0x16, 0x18a: 0x17, 0x18b: 0x6f, 0x18c: 0x70,
+       0x1ab: 0x71,
+       0x1b3: 0x72, 0x1b5: 0x73, 0x1b7: 0x74,
+       // Block 0x7, offset 0x1c0
+       0x1c0: 0x75, 0x1c1: 0x18, 0x1c2: 0x19, 0x1c3: 0x1a, 0x1c4: 0x76, 0x1c5: 0x77,
+       0x1c9: 0x78, 0x1cc: 0x79, 0x1cd: 0x7a,
+       // Block 0x8, offset 0x200
+       0x219: 0x7b, 0x21a: 0x7c, 0x21b: 0x7d,
+       0x220: 0x7e, 0x223: 0x7f, 0x224: 0x80, 0x225: 0x81, 0x226: 0x82, 0x227: 0x83,
+       0x22a: 0x84, 0x22b: 0x85, 0x22f: 0x86,
+       0x230: 0x87, 0x231: 0x88, 0x232: 0x89, 0x233: 0x8a, 0x234: 0x8b, 0x235: 0x8c, 0x236: 0x8d, 0x237: 0x87,
+       0x238: 0x88, 0x239: 0x89, 0x23a: 0x8a, 0x23b: 0x8b, 0x23c: 0x8c, 0x23d: 0x8d, 0x23e: 0x87, 0x23f: 0x88,
+       // Block 0x9, offset 0x240
+       0x240: 0x89, 0x241: 0x8a, 0x242: 0x8b, 0x243: 0x8c, 0x244: 0x8d, 0x245: 0x87, 0x246: 0x88, 0x247: 0x89,
+       0x248: 0x8a, 0x249: 0x8b, 0x24a: 0x8c, 0x24b: 0x8d, 0x24c: 0x87, 0x24d: 0x88, 0x24e: 0x89, 0x24f: 0x8a,
+       0x250: 0x8b, 0x251: 0x8c, 0x252: 0x8d, 0x253: 0x87, 0x254: 0x88, 0x255: 0x89, 0x256: 0x8a, 0x257: 0x8b,
+       0x258: 0x8c, 0x259: 0x8d, 0x25a: 0x87, 0x25b: 0x88, 0x25c: 0x89, 0x25d: 0x8a, 0x25e: 0x8b, 0x25f: 0x8c,
+       0x260: 0x8d, 0x261: 0x87, 0x262: 0x88, 0x263: 0x89, 0x264: 0x8a, 0x265: 0x8b, 0x266: 0x8c, 0x267: 0x8d,
+       0x268: 0x87, 0x269: 0x88, 0x26a: 0x89, 0x26b: 0x8a, 0x26c: 0x8b, 0x26d: 0x8c, 0x26e: 0x8d, 0x26f: 0x87,
+       0x270: 0x88, 0x271: 0x89, 0x272: 0x8a, 0x273: 0x8b, 0x274: 0x8c, 0x275: 0x8d, 0x276: 0x87, 0x277: 0x88,
+       0x278: 0x89, 0x279: 0x8a, 0x27a: 0x8b, 0x27b: 0x8c, 0x27c: 0x8d, 0x27d: 0x87, 0x27e: 0x88, 0x27f: 0x89,
+       // Block 0xa, offset 0x280
+       0x280: 0x8a, 0x281: 0x8b, 0x282: 0x8c, 0x283: 0x8d, 0x284: 0x87, 0x285: 0x88, 0x286: 0x89, 0x287: 0x8a,
+       0x288: 0x8b, 0x289: 0x8c, 0x28a: 0x8d, 0x28b: 0x87, 0x28c: 0x88, 0x28d: 0x89, 0x28e: 0x8a, 0x28f: 0x8b,
+       0x290: 0x8c, 0x291: 0x8d, 0x292: 0x87, 0x293: 0x88, 0x294: 0x89, 0x295: 0x8a, 0x296: 0x8b, 0x297: 0x8c,
+       0x298: 0x8d, 0x299: 0x87, 0x29a: 0x88, 0x29b: 0x89, 0x29c: 0x8a, 0x29d: 0x8b, 0x29e: 0x8c, 0x29f: 0x8d,
+       0x2a0: 0x87, 0x2a1: 0x88, 0x2a2: 0x89, 0x2a3: 0x8a, 0x2a4: 0x8b, 0x2a5: 0x8c, 0x2a6: 0x8d, 0x2a7: 0x87,
+       0x2a8: 0x88, 0x2a9: 0x89, 0x2aa: 0x8a, 0x2ab: 0x8b, 0x2ac: 0x8c, 0x2ad: 0x8d, 0x2ae: 0x87, 0x2af: 0x88,
+       0x2b0: 0x89, 0x2b1: 0x8a, 0x2b2: 0x8b, 0x2b3: 0x8c, 0x2b4: 0x8d, 0x2b5: 0x87, 0x2b6: 0x88, 0x2b7: 0x89,
+       0x2b8: 0x8a, 0x2b9: 0x8b, 0x2ba: 0x8c, 0x2bb: 0x8d, 0x2bc: 0x87, 0x2bd: 0x88, 0x2be: 0x89, 0x2bf: 0x8a,
+       // Block 0xb, offset 0x2c0
+       0x2c0: 0x8b, 0x2c1: 0x8c, 0x2c2: 0x8d, 0x2c3: 0x87, 0x2c4: 0x88, 0x2c5: 0x89, 0x2c6: 0x8a, 0x2c7: 0x8b,
+       0x2c8: 0x8c, 0x2c9: 0x8d, 0x2ca: 0x87, 0x2cb: 0x88, 0x2cc: 0x89, 0x2cd: 0x8a, 0x2ce: 0x8b, 0x2cf: 0x8c,
+       0x2d0: 0x8d, 0x2d1: 0x87, 0x2d2: 0x88, 0x2d3: 0x89, 0x2d4: 0x8a, 0x2d5: 0x8b, 0x2d6: 0x8c, 0x2d7: 0x8d,
+       0x2d8: 0x87, 0x2d9: 0x88, 0x2da: 0x89, 0x2db: 0x8a, 0x2dc: 0x8b, 0x2dd: 0x8c, 0x2de: 0x8e,
+       // Block 0xc, offset 0x300
+       0x324: 0x1b, 0x325: 0x1c, 0x326: 0x1d, 0x327: 0x1e,
+       0x328: 0x1f, 0x329: 0x20, 0x32a: 0x21, 0x32b: 0x22, 0x32c: 0x8f, 0x32d: 0x90, 0x32e: 0x91,
+       0x331: 0x92, 0x332: 0x93, 0x333: 0x94, 0x334: 0x95,
+       0x338: 0x96, 0x339: 0x97, 0x33a: 0x98, 0x33b: 0x99, 0x33e: 0x9a, 0x33f: 0x9b,
+       // Block 0xd, offset 0x340
+       0x347: 0x9c,
+       0x34b: 0x9d, 0x34d: 0x9e,
+       0x368: 0x9f, 0x36b: 0xa0,
+       // Block 0xe, offset 0x380
+       0x381: 0xa1, 0x382: 0xa2, 0x384: 0xa3, 0x385: 0x82, 0x387: 0xa4,
+       0x388: 0xa5, 0x38b: 0xa6, 0x38c: 0x3e, 0x38d: 0xa7,
+       0x391: 0xa8, 0x392: 0xa9, 0x393: 0xaa, 0x396: 0xab, 0x397: 0xac,
+       0x398: 0x73, 0x39a: 0xad, 0x39c: 0xae,
+       0x3b0: 0x73,
+       // Block 0xf, offset 0x3c0
+       0x3eb: 0xaf, 0x3ec: 0xb0,
+       // Block 0x10, offset 0x400
+       0x432: 0xb1,
+       // Block 0x11, offset 0x440
+       0x445: 0xb2, 0x446: 0xb3, 0x447: 0xb4,
+       0x449: 0xb5,
+       // Block 0x12, offset 0x480
+       0x480: 0xb6,
+       0x4a3: 0xb7, 0x4a5: 0xb8,
+       // Block 0x13, offset 0x4c0
+       0x4c8: 0xb9,
+       // Block 0x14, offset 0x500
+       0x520: 0x23, 0x521: 0x24, 0x522: 0x25, 0x523: 0x26, 0x524: 0x27, 0x525: 0x28, 0x526: 0x29, 0x527: 0x2a,
+       0x528: 0x2b,
+       // Block 0x15, offset 0x540
+       0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d,
+       0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11,
+       0x56f: 0x12,
+}
+
+// nfcSparseOffset: 142 entries, 284 bytes
+var nfcSparseOffset = []uint16{0x0, 0x5, 0x9, 0xb, 0xd, 0x18, 0x28, 0x2a, 0x2f, 0x3a, 0x49, 0x56, 0x5e, 0x62, 0x67, 0x69, 0x7a, 0x82, 0x89, 0x8c, 0x93, 0x97, 0x9b, 0x9d, 0x9f, 0xa8, 0xac, 0xb3, 0xb8, 0xbb, 0xc5, 0xc7, 0xce, 0xd6, 0xd9, 0xdb, 0xdd, 0xdf, 0xe4, 0xf5, 0x101, 0x103, 0x109, 0x10b, 0x10d, 0x10f, 0x111, 0x113, 0x115, 0x118, 0x11b, 0x11d, 0x120, 0x123, 0x127, 0x12c, 0x135, 0x137, 0x13a, 0x13c, 0x147, 0x157, 0x15b, 0x169, 0x16c, 0x172, 0x178, 0x183, 0x187, 0x189, 0x18b, 0x18d, 0x18f, 0x191, 0x197, 0x19b, 0x19d, 0x19f, 0x1a7, 0x1ab, 0x1ae, 0x1b0, 0x1b2, 0x1b4, 0x1b7, 0x1b9, 0x1bb, 0x1bd, 0x1bf, 0x1c5, 0x1c8, 0x1ca, 0x1d1, 0x1d7, 0x1dd, 0x1e5, 0x1eb, 0x1f1, 0x1f7, 0x1fb, 0x209, 0x212, 0x215, 0x218, 0x21a, 0x21d, 0x21f, 0x223, 0x228, 0x22a, 0x22c, 0x231, 0x237, 0x239, 0x23b, 0x23d, 0x243, 0x246, 0x249, 0x251, 0x258, 0x25b, 0x25e, 0x260, 0x268, 0x26b, 0x272, 0x275, 0x27b, 0x27d, 0x280, 0x282, 0x284, 0x286, 0x288, 0x295, 0x29f, 0x2a1, 0x2a3, 0x2a9, 0x2ab, 0x2ae}
+
+// nfcSparseValues: 688 entries, 2752 bytes
+var nfcSparseValues = [688]valueRange{
+       // Block 0x0, offset 0x0
+       {value: 0x0000, lo: 0x04},
+       {value: 0xa100, lo: 0xa8, hi: 0xa8},
+       {value: 0x8100, lo: 0xaf, hi: 0xaf},
+       {value: 0x8100, lo: 0xb4, hi: 0xb4},
+       {value: 0x8100, lo: 0xb8, hi: 0xb8},
+       // Block 0x1, offset 0x5
+       {value: 0x0091, lo: 0x03},
+       {value: 0x4778, lo: 0xa0, hi: 0xa1},
+       {value: 0x47aa, lo: 0xaf, hi: 0xb0},
+       {value: 0xa000, lo: 0xb7, hi: 0xb7},
+       // Block 0x2, offset 0x9
+       {value: 0x0000, lo: 0x01},
+       {value: 0xa000, lo: 0x92, hi: 0x92},
+       // Block 0x3, offset 0xb
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8100, lo: 0x98, hi: 0x9d},
+       // Block 0x4, offset 0xd
+       {value: 0x0006, lo: 0x0a},
+       {value: 0xa000, lo: 0x81, hi: 0x81},
+       {value: 0xa000, lo: 0x85, hi: 0x85},
+       {value: 0xa000, lo: 0x89, hi: 0x89},
+       {value: 0x48d6, lo: 0x8a, hi: 0x8a},
+       {value: 0x48f4, lo: 0x8b, hi: 0x8b},
+       {value: 0x36c7, lo: 0x8c, hi: 0x8c},
+       {value: 0x36df, lo: 0x8d, hi: 0x8d},
+       {value: 0x490c, lo: 0x8e, hi: 0x8e},
+       {value: 0xa000, lo: 0x92, hi: 0x92},
+       {value: 0x36fd, lo: 0x93, hi: 0x94},
+       // Block 0x5, offset 0x18
+       {value: 0x0000, lo: 0x0f},
+       {value: 0xa000, lo: 0x83, hi: 0x83},
+       {value: 0xa000, lo: 0x87, hi: 0x87},
+       {value: 0xa000, lo: 0x8b, hi: 0x8b},
+       {value: 0xa000, lo: 0x8d, hi: 0x8d},
+       {value: 0x37a5, lo: 0x90, hi: 0x90},
+       {value: 0x37b1, lo: 0x91, hi: 0x91},
+       {value: 0x379f, lo: 0x93, hi: 0x93},
+       {value: 0xa000, lo: 0x96, hi: 0x96},
+       {value: 0x3817, lo: 0x97, hi: 0x97},
+       {value: 0x37e1, lo: 0x9c, hi: 0x9c},
+       {value: 0x37c9, lo: 0x9d, hi: 0x9d},
+       {value: 0x37f3, lo: 0x9e, hi: 0x9e},
+       {value: 0xa000, lo: 0xb4, hi: 0xb5},
+       {value: 0x381d, lo: 0xb6, hi: 0xb6},
+       {value: 0x3823, lo: 0xb7, hi: 0xb7},
+       // Block 0x6, offset 0x28
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8132, lo: 0x83, hi: 0x87},
+       // Block 0x7, offset 0x2a
+       {value: 0x0001, lo: 0x04},
+       {value: 0x8113, lo: 0x81, hi: 0x82},
+       {value: 0x8132, lo: 0x84, hi: 0x84},
+       {value: 0x812d, lo: 0x85, hi: 0x85},
+       {value: 0x810d, lo: 0x87, hi: 0x87},
+       // Block 0x8, offset 0x2f
+       {value: 0x0000, lo: 0x0a},
+       {value: 0x8132, lo: 0x90, hi: 0x97},
+       {value: 0x8119, lo: 0x98, hi: 0x98},
+       {value: 0x811a, lo: 0x99, hi: 0x99},
+       {value: 0x811b, lo: 0x9a, hi: 0x9a},
+       {value: 0x3841, lo: 0xa2, hi: 0xa2},
+       {value: 0x3847, lo: 0xa3, hi: 0xa3},
+       {value: 0x3853, lo: 0xa4, hi: 0xa4},
+       {value: 0x384d, lo: 0xa5, hi: 0xa5},
+       {value: 0x3859, lo: 0xa6, hi: 0xa6},
+       {value: 0xa000, lo: 0xa7, hi: 0xa7},
+       // Block 0x9, offset 0x3a
+       {value: 0x0000, lo: 0x0e},
+       {value: 0x386b, lo: 0x80, hi: 0x80},
+       {value: 0xa000, lo: 0x81, hi: 0x81},
+       {value: 0x385f, lo: 0x82, hi: 0x82},
+       {value: 0xa000, lo: 0x92, hi: 0x92},
+       {value: 0x3865, lo: 0x93, hi: 0x93},
+       {value: 0xa000, lo: 0x95, hi: 0x95},
+       {value: 0x8132, lo: 0x96, hi: 0x9c},
+       {value: 0x8132, lo: 0x9f, hi: 0xa2},
+       {value: 0x812d, lo: 0xa3, hi: 0xa3},
+       {value: 0x8132, lo: 0xa4, hi: 0xa4},
+       {value: 0x8132, lo: 0xa7, hi: 0xa8},
+       {value: 0x812d, lo: 0xaa, hi: 0xaa},
+       {value: 0x8132, lo: 0xab, hi: 0xac},
+       {value: 0x812d, lo: 0xad, hi: 0xad},
+       // Block 0xa, offset 0x49
+       {value: 0x0000, lo: 0x0c},
+       {value: 0x811f, lo: 0x91, hi: 0x91},
+       {value: 0x8132, lo: 0xb0, hi: 0xb0},
+       {value: 0x812d, lo: 0xb1, hi: 0xb1},
+       {value: 0x8132, lo: 0xb2, hi: 0xb3},
+       {value: 0x812d, lo: 0xb4, hi: 0xb4},
+       {value: 0x8132, lo: 0xb5, hi: 0xb6},
+       {value: 0x812d, lo: 0xb7, hi: 0xb9},
+       {value: 0x8132, lo: 0xba, hi: 0xba},
+       {value: 0x812d, lo: 0xbb, hi: 0xbc},
+       {value: 0x8132, lo: 0xbd, hi: 0xbd},
+       {value: 0x812d, lo: 0xbe, hi: 0xbe},
+       {value: 0x8132, lo: 0xbf, hi: 0xbf},
+       // Block 0xb, offset 0x56
+       {value: 0x0005, lo: 0x07},
+       {value: 0x8132, lo: 0x80, hi: 0x80},
+       {value: 0x8132, lo: 0x81, hi: 0x81},
+       {value: 0x812d, lo: 0x82, hi: 0x83},
+       {value: 0x812d, lo: 0x84, hi: 0x85},
+       {value: 0x812d, lo: 0x86, hi: 0x87},
+       {value: 0x812d, lo: 0x88, hi: 0x89},
+       {value: 0x8132, lo: 0x8a, hi: 0x8a},
+       // Block 0xc, offset 0x5e
+       {value: 0x0000, lo: 0x03},
+       {value: 0x8132, lo: 0xab, hi: 0xb1},
+       {value: 0x812d, lo: 0xb2, hi: 0xb2},
+       {value: 0x8132, lo: 0xb3, hi: 0xb3},
+       // Block 0xd, offset 0x62
+       {value: 0x0000, lo: 0x04},
+       {value: 0x8132, lo: 0x96, hi: 0x99},
+       {value: 0x8132, lo: 0x9b, hi: 0xa3},
+       {value: 0x8132, lo: 0xa5, hi: 0xa7},
+       {value: 0x8132, lo: 0xa9, hi: 0xad},
+       // Block 0xe, offset 0x67
+       {value: 0x0000, lo: 0x01},
+       {value: 0x812d, lo: 0x99, hi: 0x9b},
+       // Block 0xf, offset 0x69
+       {value: 0x0000, lo: 0x10},
+       {value: 0x8132, lo: 0x94, hi: 0xa1},
+       {value: 0x812d, lo: 0xa3, hi: 0xa3},
+       {value: 0x8132, lo: 0xa4, hi: 0xa5},
+       {value: 0x812d, lo: 0xa6, hi: 0xa6},
+       {value: 0x8132, lo: 0xa7, hi: 0xa8},
+       {value: 0x812d, lo: 0xa9, hi: 0xa9},
+       {value: 0x8132, lo: 0xaa, hi: 0xac},
+       {value: 0x812d, lo: 0xad, hi: 0xaf},
+       {value: 0x8116, lo: 0xb0, hi: 0xb0},
+       {value: 0x8117, lo: 0xb1, hi: 0xb1},
+       {value: 0x8118, lo: 0xb2, hi: 0xb2},
+       {value: 0x8132, lo: 0xb3, hi: 0xb5},
+       {value: 0x812d, lo: 0xb6, hi: 0xb6},
+       {value: 0x8132, lo: 0xb7, hi: 0xb8},
+       {value: 0x812d, lo: 0xb9, hi: 0xba},
+       {value: 0x8132, lo: 0xbb, hi: 0xbf},
+       // Block 0x10, offset 0x7a
+       {value: 0x0000, lo: 0x07},
+       {value: 0xa000, lo: 0xa8, hi: 0xa8},
+       {value: 0x3ed8, lo: 0xa9, hi: 0xa9},
+       {value: 0xa000, lo: 0xb0, hi: 0xb0},
+       {value: 0x3ee0, lo: 0xb1, hi: 0xb1},
+       {value: 0xa000, lo: 0xb3, hi: 0xb3},
+       {value: 0x3ee8, lo: 0xb4, hi: 0xb4},
+       {value: 0x9902, lo: 0xbc, hi: 0xbc},
+       // Block 0x11, offset 0x82
+       {value: 0x0008, lo: 0x06},
+       {value: 0x8104, lo: 0x8d, hi: 0x8d},
+       {value: 0x8132, lo: 0x91, hi: 0x91},
+       {value: 0x812d, lo: 0x92, hi: 0x92},
+       {value: 0x8132, lo: 0x93, hi: 0x93},
+       {value: 0x8132, lo: 0x94, hi: 0x94},
+       {value: 0x45b2, lo: 0x98, hi: 0x9f},
+       // Block 0x12, offset 0x89
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8102, lo: 0xbc, hi: 0xbc},
+       {value: 0x9900, lo: 0xbe, hi: 0xbe},
+       // Block 0x13, offset 0x8c
+       {value: 0x0008, lo: 0x06},
+       {value: 0xa000, lo: 0x87, hi: 0x87},
+       {value: 0x2c9e, lo: 0x8b, hi: 0x8c},
+       {value: 0x8104, lo: 0x8d, hi: 0x8d},
+       {value: 0x9900, lo: 0x97, hi: 0x97},
+       {value: 0x45f2, lo: 0x9c, hi: 0x9d},
+       {value: 0x4602, lo: 0x9f, hi: 0x9f},
+       // Block 0x14, offset 0x93
+       {value: 0x0000, lo: 0x03},
+       {value: 0x462a, lo: 0xb3, hi: 0xb3},
+       {value: 0x4632, lo: 0xb6, hi: 0xb6},
+       {value: 0x8102, lo: 0xbc, hi: 0xbc},
+       // Block 0x15, offset 0x97
+       {value: 0x0008, lo: 0x03},
+       {value: 0x8104, lo: 0x8d, hi: 0x8d},
+       {value: 0x460a, lo: 0x99, hi: 0x9b},
+       {value: 0x4622, lo: 0x9e, hi: 0x9e},
+       // Block 0x16, offset 0x9b
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8102, lo: 0xbc, hi: 0xbc},
+       // Block 0x17, offset 0x9d
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8104, lo: 0x8d, hi: 0x8d},
+       // Block 0x18, offset 0x9f
+       {value: 0x0000, lo: 0x08},
+       {value: 0xa000, lo: 0x87, hi: 0x87},
+       {value: 0x2cb6, lo: 0x88, hi: 0x88},
+       {value: 0x2cae, lo: 0x8b, hi: 0x8b},
+       {value: 0x2cbe, lo: 0x8c, hi: 0x8c},
+       {value: 0x8104, lo: 0x8d, hi: 0x8d},
+       {value: 0x9900, lo: 0x96, hi: 0x97},
+       {value: 0x463a, lo: 0x9c, hi: 0x9c},
+       {value: 0x4642, lo: 0x9d, hi: 0x9d},
+       // Block 0x19, offset 0xa8
+       {value: 0x0000, lo: 0x03},
+       {value: 0xa000, lo: 0x92, hi: 0x92},
+       {value: 0x2cc6, lo: 0x94, hi: 0x94},
+       {value: 0x9900, lo: 0xbe, hi: 0xbe},
+       // Block 0x1a, offset 0xac
+       {value: 0x0000, lo: 0x06},
+       {value: 0xa000, lo: 0x86, hi: 0x87},
+       {value: 0x2cce, lo: 0x8a, hi: 0x8a},
+       {value: 0x2cde, lo: 0x8b, hi: 0x8b},
+       {value: 0x2cd6, lo: 0x8c, hi: 0x8c},
+       {value: 0x8104, lo: 0x8d, hi: 0x8d},
+       {value: 0x9900, lo: 0x97, hi: 0x97},
+       // Block 0x1b, offset 0xb3
+       {value: 0x1801, lo: 0x04},
+       {value: 0xa000, lo: 0x86, hi: 0x86},
+       {value: 0x3ef0, lo: 0x88, hi: 0x88},
+       {value: 0x8104, lo: 0x8d, hi: 0x8d},
+       {value: 0x8120, lo: 0x95, hi: 0x96},
+       // Block 0x1c, offset 0xb8
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8102, lo: 0xbc, hi: 0xbc},
+       {value: 0xa000, lo: 0xbf, hi: 0xbf},
+       // Block 0x1d, offset 0xbb
+       {value: 0x0000, lo: 0x09},
+       {value: 0x2ce6, lo: 0x80, hi: 0x80},
+       {value: 0x9900, lo: 0x82, hi: 0x82},
+       {value: 0xa000, lo: 0x86, hi: 0x86},
+       {value: 0x2cee, lo: 0x87, hi: 0x87},
+       {value: 0x2cf6, lo: 0x88, hi: 0x88},
+       {value: 0x2f50, lo: 0x8a, hi: 0x8a},
+       {value: 0x2dd8, lo: 0x8b, hi: 0x8b},
+       {value: 0x8104, lo: 0x8d, hi: 0x8d},
+       {value: 0x9900, lo: 0x95, hi: 0x96},
+       // Block 0x1e, offset 0xc5
+       {value: 0x0000, lo: 0x01},
+       {value: 0x9900, lo: 0xbe, hi: 0xbe},
+       // Block 0x1f, offset 0xc7
+       {value: 0x0000, lo: 0x06},
+       {value: 0xa000, lo: 0x86, hi: 0x87},
+       {value: 0x2cfe, lo: 0x8a, hi: 0x8a},
+       {value: 0x2d0e, lo: 0x8b, hi: 0x8b},
+       {value: 0x2d06, lo: 0x8c, hi: 0x8c},
+       {value: 0x8104, lo: 0x8d, hi: 0x8d},
+       {value: 0x9900, lo: 0x97, hi: 0x97},
+       // Block 0x20, offset 0xce
+       {value: 0x6bea, lo: 0x07},
+       {value: 0x9904, lo: 0x8a, hi: 0x8a},
+       {value: 0x9900, lo: 0x8f, hi: 0x8f},
+       {value: 0xa000, lo: 0x99, hi: 0x99},
+       {value: 0x3ef8, lo: 0x9a, hi: 0x9a},
+       {value: 0x2f58, lo: 0x9c, hi: 0x9c},
+       {value: 0x2de3, lo: 0x9d, hi: 0x9d},
+       {value: 0x2d16, lo: 0x9e, hi: 0x9f},
+       // Block 0x21, offset 0xd6
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8122, lo: 0xb8, hi: 0xb9},
+       {value: 0x8104, lo: 0xba, hi: 0xba},
+       // Block 0x22, offset 0xd9
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8123, lo: 0x88, hi: 0x8b},
+       // Block 0x23, offset 0xdb
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8124, lo: 0xb8, hi: 0xb9},
+       // Block 0x24, offset 0xdd
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8125, lo: 0x88, hi: 0x8b},
+       // Block 0x25, offset 0xdf
+       {value: 0x0000, lo: 0x04},
+       {value: 0x812d, lo: 0x98, hi: 0x99},
+       {value: 0x812d, lo: 0xb5, hi: 0xb5},
+       {value: 0x812d, lo: 0xb7, hi: 0xb7},
+       {value: 0x812b, lo: 0xb9, hi: 0xb9},
+       // Block 0x26, offset 0xe4
+       {value: 0x0000, lo: 0x10},
+       {value: 0x2644, lo: 0x83, hi: 0x83},
+       {value: 0x264b, lo: 0x8d, hi: 0x8d},
+       {value: 0x2652, lo: 0x92, hi: 0x92},
+       {value: 0x2659, lo: 0x97, hi: 0x97},
+       {value: 0x2660, lo: 0x9c, hi: 0x9c},
+       {value: 0x263d, lo: 0xa9, hi: 0xa9},
+       {value: 0x8126, lo: 0xb1, hi: 0xb1},
+       {value: 0x8127, lo: 0xb2, hi: 0xb2},
+       {value: 0x4a66, lo: 0xb3, hi: 0xb3},
+       {value: 0x8128, lo: 0xb4, hi: 0xb4},
+       {value: 0x4a6f, lo: 0xb5, hi: 0xb5},
+       {value: 0x464a, lo: 0xb6, hi: 0xb6},
+       {value: 0x8200, lo: 0xb7, hi: 0xb7},
+       {value: 0x4652, lo: 0xb8, hi: 0xb8},
+       {value: 0x8200, lo: 0xb9, hi: 0xb9},
+       {value: 0x8127, lo: 0xba, hi: 0xbd},
+       // Block 0x27, offset 0xf5
+       {value: 0x0000, lo: 0x0b},
+       {value: 0x8127, lo: 0x80, hi: 0x80},
+       {value: 0x4a78, lo: 0x81, hi: 0x81},
+       {value: 0x8132, lo: 0x82, hi: 0x83},
+       {value: 0x8104, lo: 0x84, hi: 0x84},
+       {value: 0x8132, lo: 0x86, hi: 0x87},
+       {value: 0x266e, lo: 0x93, hi: 0x93},
+       {value: 0x2675, lo: 0x9d, hi: 0x9d},
+       {value: 0x267c, lo: 0xa2, hi: 0xa2},
+       {value: 0x2683, lo: 0xa7, hi: 0xa7},
+       {value: 0x268a, lo: 0xac, hi: 0xac},
+       {value: 0x2667, lo: 0xb9, hi: 0xb9},
+       // Block 0x28, offset 0x101
+       {value: 0x0000, lo: 0x01},
+       {value: 0x812d, lo: 0x86, hi: 0x86},
+       // Block 0x29, offset 0x103
+       {value: 0x0000, lo: 0x05},
+       {value: 0xa000, lo: 0xa5, hi: 0xa5},
+       {value: 0x2d1e, lo: 0xa6, hi: 0xa6},
+       {value: 0x9900, lo: 0xae, hi: 0xae},
+       {value: 0x8102, lo: 0xb7, hi: 0xb7},
+       {value: 0x8104, lo: 0xb9, hi: 0xba},
+       // Block 0x2a, offset 0x109
+       {value: 0x0000, lo: 0x01},
+       {value: 0x812d, lo: 0x8d, hi: 0x8d},
+       // Block 0x2b, offset 0x10b
+       {value: 0x0000, lo: 0x01},
+       {value: 0xa000, lo: 0x80, hi: 0x92},
+       // Block 0x2c, offset 0x10d
+       {value: 0x0000, lo: 0x01},
+       {value: 0xb900, lo: 0xa1, hi: 0xb5},
+       // Block 0x2d, offset 0x10f
+       {value: 0x0000, lo: 0x01},
+       {value: 0x9900, lo: 0xa8, hi: 0xbf},
+       // Block 0x2e, offset 0x111
+       {value: 0x0000, lo: 0x01},
+       {value: 0x9900, lo: 0x80, hi: 0x82},
+       // Block 0x2f, offset 0x113
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8132, lo: 0x9d, hi: 0x9f},
+       // Block 0x30, offset 0x115
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8104, lo: 0x94, hi: 0x94},
+       {value: 0x8104, lo: 0xb4, hi: 0xb4},
+       // Block 0x31, offset 0x118
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8104, lo: 0x92, hi: 0x92},
+       {value: 0x8132, lo: 0x9d, hi: 0x9d},
+       // Block 0x32, offset 0x11b
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8131, lo: 0xa9, hi: 0xa9},
+       // Block 0x33, offset 0x11d
+       {value: 0x0004, lo: 0x02},
+       {value: 0x812e, lo: 0xb9, hi: 0xba},
+       {value: 0x812d, lo: 0xbb, hi: 0xbb},
+       // Block 0x34, offset 0x120
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8132, lo: 0x97, hi: 0x97},
+       {value: 0x812d, lo: 0x98, hi: 0x98},
+       // Block 0x35, offset 0x123
+       {value: 0x0000, lo: 0x03},
+       {value: 0x8104, lo: 0xa0, hi: 0xa0},
+       {value: 0x8132, lo: 0xb5, hi: 0xbc},
+       {value: 0x812d, lo: 0xbf, hi: 0xbf},
+       // Block 0x36, offset 0x127
+       {value: 0x0000, lo: 0x04},
+       {value: 0x8132, lo: 0xb0, hi: 0xb4},
+       {value: 0x812d, lo: 0xb5, hi: 0xba},
+       {value: 0x8132, lo: 0xbb, hi: 0xbc},
+       {value: 0x812d, lo: 0xbd, hi: 0xbd},
+       // Block 0x37, offset 0x12c
+       {value: 0x0000, lo: 0x08},
+       {value: 0x2d66, lo: 0x80, hi: 0x80},
+       {value: 0x2d6e, lo: 0x81, hi: 0x81},
+       {value: 0xa000, lo: 0x82, hi: 0x82},
+       {value: 0x2d76, lo: 0x83, hi: 0x83},
+       {value: 0x8104, lo: 0x84, hi: 0x84},
+       {value: 0x8132, lo: 0xab, hi: 0xab},
+       {value: 0x812d, lo: 0xac, hi: 0xac},
+       {value: 0x8132, lo: 0xad, hi: 0xb3},
+       // Block 0x38, offset 0x135
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8104, lo: 0xaa, hi: 0xab},
+       // Block 0x39, offset 0x137
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8102, lo: 0xa6, hi: 0xa6},
+       {value: 0x8104, lo: 0xb2, hi: 0xb3},
+       // Block 0x3a, offset 0x13a
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8102, lo: 0xb7, hi: 0xb7},
+       // Block 0x3b, offset 0x13c
+       {value: 0x0000, lo: 0x0a},
+       {value: 0x8132, lo: 0x90, hi: 0x92},
+       {value: 0x8101, lo: 0x94, hi: 0x94},
+       {value: 0x812d, lo: 0x95, hi: 0x99},
+       {value: 0x8132, lo: 0x9a, hi: 0x9b},
+       {value: 0x812d, lo: 0x9c, hi: 0x9f},
+       {value: 0x8132, lo: 0xa0, hi: 0xa0},
+       {value: 0x8101, lo: 0xa2, hi: 0xa8},
+       {value: 0x812d, lo: 0xad, hi: 0xad},
+       {value: 0x8132, lo: 0xb4, hi: 0xb4},
+       {value: 0x8132, lo: 0xb8, hi: 0xb9},
+       // Block 0x3c, offset 0x147
+       {value: 0x0000, lo: 0x0f},
+       {value: 0x8132, lo: 0x80, hi: 0x81},
+       {value: 0x812d, lo: 0x82, hi: 0x82},
+       {value: 0x8132, lo: 0x83, hi: 0x89},
+       {value: 0x812d, lo: 0x8a, hi: 0x8a},
+       {value: 0x8132, lo: 0x8b, hi: 0x8c},
+       {value: 0x8135, lo: 0x8d, hi: 0x8d},
+       {value: 0x812a, lo: 0x8e, hi: 0x8e},
+       {value: 0x812d, lo: 0x8f, hi: 0x8f},
+       {value: 0x8129, lo: 0x90, hi: 0x90},
+       {value: 0x8132, lo: 0x91, hi: 0xb5},
+       {value: 0x8132, lo: 0xbb, hi: 0xbb},
+       {value: 0x8134, lo: 0xbc, hi: 0xbc},
+       {value: 0x812d, lo: 0xbd, hi: 0xbd},
+       {value: 0x8132, lo: 0xbe, hi: 0xbe},
+       {value: 0x812d, lo: 0xbf, hi: 0xbf},
+       // Block 0x3d, offset 0x157
+       {value: 0x0004, lo: 0x03},
+       {value: 0x0433, lo: 0x80, hi: 0x81},
+       {value: 0x8100, lo: 0x97, hi: 0x97},
+       {value: 0x8100, lo: 0xbe, hi: 0xbe},
+       // Block 0x3e, offset 0x15b
+       {value: 0x0000, lo: 0x0d},
+       {value: 0x8132, lo: 0x90, hi: 0x91},
+       {value: 0x8101, lo: 0x92, hi: 0x93},
+       {value: 0x8132, lo: 0x94, hi: 0x97},
+       {value: 0x8101, lo: 0x98, hi: 0x9a},
+       {value: 0x8132, lo: 0x9b, hi: 0x9c},
+       {value: 0x8132, lo: 0xa1, hi: 0xa1},
+       {value: 0x8101, lo: 0xa5, hi: 0xa6},
+       {value: 0x8132, lo: 0xa7, hi: 0xa7},
+       {value: 0x812d, lo: 0xa8, hi: 0xa8},
+       {value: 0x8132, lo: 0xa9, hi: 0xa9},
+       {value: 0x8101, lo: 0xaa, hi: 0xab},
+       {value: 0x812d, lo: 0xac, hi: 0xaf},
+       {value: 0x8132, lo: 0xb0, hi: 0xb0},
+       // Block 0x3f, offset 0x169
+       {value: 0x427b, lo: 0x02},
+       {value: 0x01b8, lo: 0xa6, hi: 0xa6},
+       {value: 0x0057, lo: 0xaa, hi: 0xab},
+       // Block 0x40, offset 0x16c
+       {value: 0x0007, lo: 0x05},
+       {value: 0xa000, lo: 0x90, hi: 0x90},
+       {value: 0xa000, lo: 0x92, hi: 0x92},
+       {value: 0xa000, lo: 0x94, hi: 0x94},
+       {value: 0x3bb9, lo: 0x9a, hi: 0x9b},
+       {value: 0x3bc7, lo: 0xae, hi: 0xae},
+       // Block 0x41, offset 0x172
+       {value: 0x000e, lo: 0x05},
+       {value: 0x3bce, lo: 0x8d, hi: 0x8e},
+       {value: 0x3bd5, lo: 0x8f, hi: 0x8f},
+       {value: 0xa000, lo: 0x90, hi: 0x90},
+       {value: 0xa000, lo: 0x92, hi: 0x92},
+       {value: 0xa000, lo: 0x94, hi: 0x94},
+       // Block 0x42, offset 0x178
+       {value: 0x6408, lo: 0x0a},
+       {value: 0xa000, lo: 0x83, hi: 0x83},
+       {value: 0x3be3, lo: 0x84, hi: 0x84},
+       {value: 0xa000, lo: 0x88, hi: 0x88},
+       {value: 0x3bea, lo: 0x89, hi: 0x89},
+       {value: 0xa000, lo: 0x8b, hi: 0x8b},
+       {value: 0x3bf1, lo: 0x8c, hi: 0x8c},
+       {value: 0xa000, lo: 0xa3, hi: 0xa3},
+       {value: 0x3bf8, lo: 0xa4, hi: 0xa5},
+       {value: 0x3bff, lo: 0xa6, hi: 0xa6},
+       {value: 0xa000, lo: 0xbc, hi: 0xbc},
+       // Block 0x43, offset 0x183
+       {value: 0x0007, lo: 0x03},
+       {value: 0x3c68, lo: 0xa0, hi: 0xa1},
+       {value: 0x3c92, lo: 0xa2, hi: 0xa3},
+       {value: 0x3cbc, lo: 0xaa, hi: 0xad},
+       // Block 0x44, offset 0x187
+       {value: 0x0004, lo: 0x01},
+       {value: 0x048b, lo: 0xa9, hi: 0xaa},
+       // Block 0x45, offset 0x189
+       {value: 0x0000, lo: 0x01},
+       {value: 0x4573, lo: 0x9c, hi: 0x9c},
+       // Block 0x46, offset 0x18b
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8132, lo: 0xaf, hi: 0xb1},
+       // Block 0x47, offset 0x18d
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8104, lo: 0xbf, hi: 0xbf},
+       // Block 0x48, offset 0x18f
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8132, lo: 0xa0, hi: 0xbf},
+       // Block 0x49, offset 0x191
+       {value: 0x0000, lo: 0x05},
+       {value: 0x812c, lo: 0xaa, hi: 0xaa},
+       {value: 0x8131, lo: 0xab, hi: 0xab},
+       {value: 0x8133, lo: 0xac, hi: 0xac},
+       {value: 0x812e, lo: 0xad, hi: 0xad},
+       {value: 0x812f, lo: 0xae, hi: 0xaf},
+       // Block 0x4a, offset 0x197
+       {value: 0x0000, lo: 0x03},
+       {value: 0x4a81, lo: 0xb3, hi: 0xb3},
+       {value: 0x4a81, lo: 0xb5, hi: 0xb6},
+       {value: 0x4a81, lo: 0xba, hi: 0xbf},
+       // Block 0x4b, offset 0x19b
+       {value: 0x0000, lo: 0x01},
+       {value: 0x4a81, lo: 0x8f, hi: 0xa3},
+       // Block 0x4c, offset 0x19d
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8100, lo: 0xae, hi: 0xbe},
+       // Block 0x4d, offset 0x19f
+       {value: 0x0000, lo: 0x07},
+       {value: 0x8100, lo: 0x84, hi: 0x84},
+       {value: 0x8100, lo: 0x87, hi: 0x87},
+       {value: 0x8100, lo: 0x90, hi: 0x90},
+       {value: 0x8100, lo: 0x9e, hi: 0x9e},
+       {value: 0x8100, lo: 0xa1, hi: 0xa1},
+       {value: 0x8100, lo: 0xb2, hi: 0xb2},
+       {value: 0x8100, lo: 0xbb, hi: 0xbb},
+       // Block 0x4e, offset 0x1a7
+       {value: 0x0000, lo: 0x03},
+       {value: 0x8100, lo: 0x80, hi: 0x80},
+       {value: 0x8100, lo: 0x8b, hi: 0x8b},
+       {value: 0x8100, lo: 0x8e, hi: 0x8e},
+       // Block 0x4f, offset 0x1ab
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8132, lo: 0xaf, hi: 0xaf},
+       {value: 0x8132, lo: 0xb4, hi: 0xbd},
+       // Block 0x50, offset 0x1ae
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8132, lo: 0x9e, hi: 0x9f},
+       // Block 0x51, offset 0x1b0
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8132, lo: 0xb0, hi: 0xb1},
+       // Block 0x52, offset 0x1b2
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8104, lo: 0x86, hi: 0x86},
+       // Block 0x53, offset 0x1b4
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8104, lo: 0x84, hi: 0x84},
+       {value: 0x8132, lo: 0xa0, hi: 0xb1},
+       // Block 0x54, offset 0x1b7
+       {value: 0x0000, lo: 0x01},
+       {value: 0x812d, lo: 0xab, hi: 0xad},
+       // Block 0x55, offset 0x1b9
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8104, lo: 0x93, hi: 0x93},
+       // Block 0x56, offset 0x1bb
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8102, lo: 0xb3, hi: 0xb3},
+       // Block 0x57, offset 0x1bd
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8104, lo: 0x80, hi: 0x80},
+       // Block 0x58, offset 0x1bf
+       {value: 0x0000, lo: 0x05},
+       {value: 0x8132, lo: 0xb0, hi: 0xb0},
+       {value: 0x8132, lo: 0xb2, hi: 0xb3},
+       {value: 0x812d, lo: 0xb4, hi: 0xb4},
+       {value: 0x8132, lo: 0xb7, hi: 0xb8},
+       {value: 0x8132, lo: 0xbe, hi: 0xbf},
+       // Block 0x59, offset 0x1c5
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8132, lo: 0x81, hi: 0x81},
+       {value: 0x8104, lo: 0xb6, hi: 0xb6},
+       // Block 0x5a, offset 0x1c8
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8104, lo: 0xad, hi: 0xad},
+       // Block 0x5b, offset 0x1ca
+       {value: 0x0000, lo: 0x06},
+       {value: 0xe500, lo: 0x80, hi: 0x80},
+       {value: 0xc600, lo: 0x81, hi: 0x9b},
+       {value: 0xe500, lo: 0x9c, hi: 0x9c},
+       {value: 0xc600, lo: 0x9d, hi: 0xb7},
+       {value: 0xe500, lo: 0xb8, hi: 0xb8},
+       {value: 0xc600, lo: 0xb9, hi: 0xbf},
+       // Block 0x5c, offset 0x1d1
+       {value: 0x0000, lo: 0x05},
+       {value: 0xc600, lo: 0x80, hi: 0x93},
+       {value: 0xe500, lo: 0x94, hi: 0x94},
+       {value: 0xc600, lo: 0x95, hi: 0xaf},
+       {value: 0xe500, lo: 0xb0, hi: 0xb0},
+       {value: 0xc600, lo: 0xb1, hi: 0xbf},
+       // Block 0x5d, offset 0x1d7
+       {value: 0x0000, lo: 0x05},
+       {value: 0xc600, lo: 0x80, hi: 0x8b},
+       {value: 0xe500, lo: 0x8c, hi: 0x8c},
+       {value: 0xc600, lo: 0x8d, hi: 0xa7},
+       {value: 0xe500, lo: 0xa8, hi: 0xa8},
+       {value: 0xc600, lo: 0xa9, hi: 0xbf},
+       // Block 0x5e, offset 0x1dd
+       {value: 0x0000, lo: 0x07},
+       {value: 0xc600, lo: 0x80, hi: 0x83},
+       {value: 0xe500, lo: 0x84, hi: 0x84},
+       {value: 0xc600, lo: 0x85, hi: 0x9f},
+       {value: 0xe500, lo: 0xa0, hi: 0xa0},
+       {value: 0xc600, lo: 0xa1, hi: 0xbb},
+       {value: 0xe500, lo: 0xbc, hi: 0xbc},
+       {value: 0xc600, lo: 0xbd, hi: 0xbf},
+       // Block 0x5f, offset 0x1e5
+       {value: 0x0000, lo: 0x05},
+       {value: 0xc600, lo: 0x80, hi: 0x97},
+       {value: 0xe500, lo: 0x98, hi: 0x98},
+       {value: 0xc600, lo: 0x99, hi: 0xb3},
+       {value: 0xe500, lo: 0xb4, hi: 0xb4},
+       {value: 0xc600, lo: 0xb5, hi: 0xbf},
+       // Block 0x60, offset 0x1eb
+       {value: 0x0000, lo: 0x05},
+       {value: 0xc600, lo: 0x80, hi: 0x8f},
+       {value: 0xe500, lo: 0x90, hi: 0x90},
+       {value: 0xc600, lo: 0x91, hi: 0xab},
+       {value: 0xe500, lo: 0xac, hi: 0xac},
+       {value: 0xc600, lo: 0xad, hi: 0xbf},
+       // Block 0x61, offset 0x1f1
+       {value: 0x0000, lo: 0x05},
+       {value: 0xc600, lo: 0x80, hi: 0x87},
+       {value: 0xe500, lo: 0x88, hi: 0x88},
+       {value: 0xc600, lo: 0x89, hi: 0xa3},
+       {value: 0xe500, lo: 0xa4, hi: 0xa4},
+       {value: 0xc600, lo: 0xa5, hi: 0xbf},
+       // Block 0x62, offset 0x1f7
+       {value: 0x0000, lo: 0x03},
+       {value: 0xc600, lo: 0x80, hi: 0x87},
+       {value: 0xe500, lo: 0x88, hi: 0x88},
+       {value: 0xc600, lo: 0x89, hi: 0xa3},
+       // Block 0x63, offset 0x1fb
+       {value: 0x0006, lo: 0x0d},
+       {value: 0x4426, lo: 0x9d, hi: 0x9d},
+       {value: 0x8115, lo: 0x9e, hi: 0x9e},
+       {value: 0x4498, lo: 0x9f, hi: 0x9f},
+       {value: 0x4486, lo: 0xaa, hi: 0xab},
+       {value: 0x458a, lo: 0xac, hi: 0xac},
+       {value: 0x4592, lo: 0xad, hi: 0xad},
+       {value: 0x43de, lo: 0xae, hi: 0xb1},
+       {value: 0x43fc, lo: 0xb2, hi: 0xb4},
+       {value: 0x4414, lo: 0xb5, hi: 0xb6},
+       {value: 0x4420, lo: 0xb8, hi: 0xb8},
+       {value: 0x442c, lo: 0xb9, hi: 0xbb},
+       {value: 0x4444, lo: 0xbc, hi: 0xbc},
+       {value: 0x444a, lo: 0xbe, hi: 0xbe},
+       // Block 0x64, offset 0x209
+       {value: 0x0006, lo: 0x08},
+       {value: 0x4450, lo: 0x80, hi: 0x81},
+       {value: 0x445c, lo: 0x83, hi: 0x84},
+       {value: 0x446e, lo: 0x86, hi: 0x89},
+       {value: 0x4492, lo: 0x8a, hi: 0x8a},
+       {value: 0x440e, lo: 0x8b, hi: 0x8b},
+       {value: 0x43f6, lo: 0x8c, hi: 0x8c},
+       {value: 0x443e, lo: 0x8d, hi: 0x8d},
+       {value: 0x4468, lo: 0x8e, hi: 0x8e},
+       // Block 0x65, offset 0x212
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8100, lo: 0xa4, hi: 0xa5},
+       {value: 0x8100, lo: 0xb0, hi: 0xb1},
+       // Block 0x66, offset 0x215
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8100, lo: 0x9b, hi: 0x9d},
+       {value: 0x8200, lo: 0x9e, hi: 0xa3},
+       // Block 0x67, offset 0x218
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8100, lo: 0x90, hi: 0x90},
+       // Block 0x68, offset 0x21a
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8100, lo: 0x99, hi: 0x99},
+       {value: 0x8200, lo: 0xb2, hi: 0xb4},
+       // Block 0x69, offset 0x21d
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8100, lo: 0xbc, hi: 0xbd},
+       // Block 0x6a, offset 0x21f
+       {value: 0x0000, lo: 0x03},
+       {value: 0x8132, lo: 0xa0, hi: 0xa6},
+       {value: 0x812d, lo: 0xa7, hi: 0xad},
+       {value: 0x8132, lo: 0xae, hi: 0xaf},
+       // Block 0x6b, offset 0x223
+       {value: 0x0000, lo: 0x04},
+       {value: 0x8100, lo: 0x89, hi: 0x8c},
+       {value: 0x8100, lo: 0xb0, hi: 0xb2},
+       {value: 0x8100, lo: 0xb4, hi: 0xb4},
+       {value: 0x8100, lo: 0xb6, hi: 0xbf},
+       // Block 0x6c, offset 0x228
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8100, lo: 0x81, hi: 0x8c},
+       // Block 0x6d, offset 0x22a
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8100, lo: 0xb5, hi: 0xba},
+       // Block 0x6e, offset 0x22c
+       {value: 0x0000, lo: 0x04},
+       {value: 0x4a81, lo: 0x9e, hi: 0x9f},
+       {value: 0x4a81, lo: 0xa3, hi: 0xa3},
+       {value: 0x4a81, lo: 0xa5, hi: 0xa6},
+       {value: 0x4a81, lo: 0xaa, hi: 0xaf},
+       // Block 0x6f, offset 0x231
+       {value: 0x0000, lo: 0x05},
+       {value: 0x4a81, lo: 0x82, hi: 0x87},
+       {value: 0x4a81, lo: 0x8a, hi: 0x8f},
+       {value: 0x4a81, lo: 0x92, hi: 0x97},
+       {value: 0x4a81, lo: 0x9a, hi: 0x9c},
+       {value: 0x8100, lo: 0xa3, hi: 0xa3},
+       // Block 0x70, offset 0x237
+       {value: 0x0000, lo: 0x01},
+       {value: 0x812d, lo: 0xbd, hi: 0xbd},
+       // Block 0x71, offset 0x239
+       {value: 0x0000, lo: 0x01},
+       {value: 0x812d, lo: 0xa0, hi: 0xa0},
+       // Block 0x72, offset 0x23b
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8132, lo: 0xb6, hi: 0xba},
+       // Block 0x73, offset 0x23d
+       {value: 0x002c, lo: 0x05},
+       {value: 0x812d, lo: 0x8d, hi: 0x8d},
+       {value: 0x8132, lo: 0x8f, hi: 0x8f},
+       {value: 0x8132, lo: 0xb8, hi: 0xb8},
+       {value: 0x8101, lo: 0xb9, hi: 0xba},
+       {value: 0x8104, lo: 0xbf, hi: 0xbf},
+       // Block 0x74, offset 0x243
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8132, lo: 0xa5, hi: 0xa5},
+       {value: 0x812d, lo: 0xa6, hi: 0xa6},
+       // Block 0x75, offset 0x246
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8104, lo: 0x86, hi: 0x86},
+       {value: 0x8104, lo: 0xbf, hi: 0xbf},
+       // Block 0x76, offset 0x249
+       {value: 0x17fe, lo: 0x07},
+       {value: 0xa000, lo: 0x99, hi: 0x99},
+       {value: 0x4238, lo: 0x9a, hi: 0x9a},
+       {value: 0xa000, lo: 0x9b, hi: 0x9b},
+       {value: 0x4242, lo: 0x9c, hi: 0x9c},
+       {value: 0xa000, lo: 0xa5, hi: 0xa5},
+       {value: 0x424c, lo: 0xab, hi: 0xab},
+       {value: 0x8104, lo: 0xb9, hi: 0xba},
+       // Block 0x77, offset 0x251
+       {value: 0x0000, lo: 0x06},
+       {value: 0x8132, lo: 0x80, hi: 0x82},
+       {value: 0x9900, lo: 0xa7, hi: 0xa7},
+       {value: 0x2d7e, lo: 0xae, hi: 0xae},
+       {value: 0x2d88, lo: 0xaf, hi: 0xaf},
+       {value: 0xa000, lo: 0xb1, hi: 0xb2},
+       {value: 0x8104, lo: 0xb3, hi: 0xb4},
+       // Block 0x78, offset 0x258
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8104, lo: 0x80, hi: 0x80},
+       {value: 0x8102, lo: 0x8a, hi: 0x8a},
+       // Block 0x79, offset 0x25b
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8104, lo: 0xb5, hi: 0xb5},
+       {value: 0x8102, lo: 0xb6, hi: 0xb6},
+       // Block 0x7a, offset 0x25e
+       {value: 0x0002, lo: 0x01},
+       {value: 0x8102, lo: 0xa9, hi: 0xaa},
+       // Block 0x7b, offset 0x260
+       {value: 0x0000, lo: 0x07},
+       {value: 0xa000, lo: 0x87, hi: 0x87},
+       {value: 0x2d92, lo: 0x8b, hi: 0x8b},
+       {value: 0x2d9c, lo: 0x8c, hi: 0x8c},
+       {value: 0x8104, lo: 0x8d, hi: 0x8d},
+       {value: 0x9900, lo: 0x97, hi: 0x97},
+       {value: 0x8132, lo: 0xa6, hi: 0xac},
+       {value: 0x8132, lo: 0xb0, hi: 0xb4},
+       // Block 0x7c, offset 0x268
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8104, lo: 0x82, hi: 0x82},
+       {value: 0x8102, lo: 0x86, hi: 0x86},
+       // Block 0x7d, offset 0x26b
+       {value: 0x6b5a, lo: 0x06},
+       {value: 0x9900, lo: 0xb0, hi: 0xb0},
+       {value: 0xa000, lo: 0xb9, hi: 0xb9},
+       {value: 0x9900, lo: 0xba, hi: 0xba},
+       {value: 0x2db0, lo: 0xbb, hi: 0xbb},
+       {value: 0x2da6, lo: 0xbc, hi: 0xbd},
+       {value: 0x2dba, lo: 0xbe, hi: 0xbe},
+       // Block 0x7e, offset 0x272
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8104, lo: 0x82, hi: 0x82},
+       {value: 0x8102, lo: 0x83, hi: 0x83},
+       // Block 0x7f, offset 0x275
+       {value: 0x0000, lo: 0x05},
+       {value: 0x9900, lo: 0xaf, hi: 0xaf},
+       {value: 0xa000, lo: 0xb8, hi: 0xb9},
+       {value: 0x2dc4, lo: 0xba, hi: 0xba},
+       {value: 0x2dce, lo: 0xbb, hi: 0xbb},
+       {value: 0x8104, lo: 0xbf, hi: 0xbf},
+       // Block 0x80, offset 0x27b
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8102, lo: 0x80, hi: 0x80},
+       // Block 0x81, offset 0x27d
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8104, lo: 0xb6, hi: 0xb6},
+       {value: 0x8102, lo: 0xb7, hi: 0xb7},
+       // Block 0x82, offset 0x280
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8104, lo: 0xab, hi: 0xab},
+       // Block 0x83, offset 0x282
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8101, lo: 0xb0, hi: 0xb4},
+       // Block 0x84, offset 0x284
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8132, lo: 0xb0, hi: 0xb6},
+       // Block 0x85, offset 0x286
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8101, lo: 0x9e, hi: 0x9e},
+       // Block 0x86, offset 0x288
+       {value: 0x0000, lo: 0x0c},
+       {value: 0x4662, lo: 0x9e, hi: 0x9e},
+       {value: 0x466c, lo: 0x9f, hi: 0x9f},
+       {value: 0x46a0, lo: 0xa0, hi: 0xa0},
+       {value: 0x46ae, lo: 0xa1, hi: 0xa1},
+       {value: 0x46bc, lo: 0xa2, hi: 0xa2},
+       {value: 0x46ca, lo: 0xa3, hi: 0xa3},
+       {value: 0x46d8, lo: 0xa4, hi: 0xa4},
+       {value: 0x812b, lo: 0xa5, hi: 0xa6},
+       {value: 0x8101, lo: 0xa7, hi: 0xa9},
+       {value: 0x8130, lo: 0xad, hi: 0xad},
+       {value: 0x812b, lo: 0xae, hi: 0xb2},
+       {value: 0x812d, lo: 0xbb, hi: 0xbf},
+       // Block 0x87, offset 0x295
+       {value: 0x0000, lo: 0x09},
+       {value: 0x812d, lo: 0x80, hi: 0x82},
+       {value: 0x8132, lo: 0x85, hi: 0x89},
+       {value: 0x812d, lo: 0x8a, hi: 0x8b},
+       {value: 0x8132, lo: 0xaa, hi: 0xad},
+       {value: 0x4676, lo: 0xbb, hi: 0xbb},
+       {value: 0x4680, lo: 0xbc, hi: 0xbc},
+       {value: 0x46e6, lo: 0xbd, hi: 0xbd},
+       {value: 0x4702, lo: 0xbe, hi: 0xbe},
+       {value: 0x46f4, lo: 0xbf, hi: 0xbf},
+       // Block 0x88, offset 0x29f
+       {value: 0x0000, lo: 0x01},
+       {value: 0x4710, lo: 0x80, hi: 0x80},
+       // Block 0x89, offset 0x2a1
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8132, lo: 0x82, hi: 0x84},
+       // Block 0x8a, offset 0x2a3
+       {value: 0x0000, lo: 0x05},
+       {value: 0x8132, lo: 0x80, hi: 0x86},
+       {value: 0x8132, lo: 0x88, hi: 0x98},
+       {value: 0x8132, lo: 0x9b, hi: 0xa1},
+       {value: 0x8132, lo: 0xa3, hi: 0xa4},
+       {value: 0x8132, lo: 0xa6, hi: 0xaa},
+       // Block 0x8b, offset 0x2a9
+       {value: 0x0000, lo: 0x01},
+       {value: 0x812d, lo: 0x90, hi: 0x96},
+       // Block 0x8c, offset 0x2ab
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8132, lo: 0x84, hi: 0x89},
+       {value: 0x8102, lo: 0x8a, hi: 0x8a},
+       // Block 0x8d, offset 0x2ae
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8100, lo: 0x93, hi: 0x93},
+}
+
+// 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 *nfkcTrie) lookup(s []byte) (v uint16, sz int) {
+       c0 := s[0]
+       switch {
+       case c0 < 0x80: // is ASCII
+               return nfkcValues[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 := nfkcIndex[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 := nfkcIndex[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 = nfkcIndex[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 := nfkcIndex[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 = nfkcIndex[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 = nfkcIndex[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 *nfkcTrie) lookupUnsafe(s []byte) uint16 {
+       c0 := s[0]
+       if c0 < 0x80 { // is ASCII
+               return nfkcValues[c0]
+       }
+       i := nfkcIndex[c0]
+       if c0 < 0xE0 { // 2-byte UTF-8
+               return t.lookupValue(uint32(i), s[1])
+       }
+       i = nfkcIndex[uint32(i)<<6+uint32(s[1])]
+       if c0 < 0xF0 { // 3-byte UTF-8
+               return t.lookupValue(uint32(i), s[2])
+       }
+       i = nfkcIndex[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 *nfkcTrie) lookupString(s string) (v uint16, sz int) {
+       c0 := s[0]
+       switch {
+       case c0 < 0x80: // is ASCII
+               return nfkcValues[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 := nfkcIndex[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 := nfkcIndex[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 = nfkcIndex[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 := nfkcIndex[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 = nfkcIndex[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 = nfkcIndex[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 *nfkcTrie) lookupStringUnsafe(s string) uint16 {
+       c0 := s[0]
+       if c0 < 0x80 { // is ASCII
+               return nfkcValues[c0]
+       }
+       i := nfkcIndex[c0]
+       if c0 < 0xE0 { // 2-byte UTF-8
+               return t.lookupValue(uint32(i), s[1])
+       }
+       i = nfkcIndex[uint32(i)<<6+uint32(s[1])]
+       if c0 < 0xF0 { // 3-byte UTF-8
+               return t.lookupValue(uint32(i), s[2])
+       }
+       i = nfkcIndex[uint32(i)<<6+uint32(s[2])]
+       if c0 < 0xF8 { // 4-byte UTF-8
+               return t.lookupValue(uint32(i), s[3])
+       }
+       return 0
+}
+
+// nfkcTrie. Total size: 16994 bytes (16.60 KiB). Checksum: 146925fc21092b17.
+type nfkcTrie struct{}
+
+func newNfkcTrie(i int) *nfkcTrie {
+       return &nfkcTrie{}
+}
+
+// lookupValue determines the type of block n and looks up the value for b.
+func (t *nfkcTrie) lookupValue(n uint32, b byte) uint16 {
+       switch {
+       case n < 90:
+               return uint16(nfkcValues[n<<6+uint32(b)])
+       default:
+               n -= 90
+               return uint16(nfkcSparse.lookup(n, b))
+       }
+}
+
+// nfkcValues: 92 blocks, 5888 entries, 11776 bytes
+// The third block is the zero block.
+var nfkcValues = [5888]uint16{
+       // Block 0x0, offset 0x0
+       0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000,
+       // Block 0x1, offset 0x40
+       0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000,
+       0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000,
+       0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000,
+       0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000,
+       0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000,
+       0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000,
+       0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000,
+       0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000,
+       0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000,
+       0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000,
+       // Block 0x2, offset 0x80
+       // Block 0x3, offset 0xc0
+       0xc0: 0x2f6f, 0xc1: 0x2f74, 0xc2: 0x471e, 0xc3: 0x2f79, 0xc4: 0x472d, 0xc5: 0x4732,
+       0xc6: 0xa000, 0xc7: 0x473c, 0xc8: 0x2fe2, 0xc9: 0x2fe7, 0xca: 0x4741, 0xcb: 0x2ffb,
+       0xcc: 0x306e, 0xcd: 0x3073, 0xce: 0x3078, 0xcf: 0x4755, 0xd1: 0x3104,
+       0xd2: 0x3127, 0xd3: 0x312c, 0xd4: 0x475f, 0xd5: 0x4764, 0xd6: 0x4773,
+       0xd8: 0xa000, 0xd9: 0x31b3, 0xda: 0x31b8, 0xdb: 0x31bd, 0xdc: 0x47a5, 0xdd: 0x3235,
+       0xe0: 0x327b, 0xe1: 0x3280, 0xe2: 0x47af, 0xe3: 0x3285,
+       0xe4: 0x47be, 0xe5: 0x47c3, 0xe6: 0xa000, 0xe7: 0x47cd, 0xe8: 0x32ee, 0xe9: 0x32f3,
+       0xea: 0x47d2, 0xeb: 0x3307, 0xec: 0x337f, 0xed: 0x3384, 0xee: 0x3389, 0xef: 0x47e6,
+       0xf1: 0x3415, 0xf2: 0x3438, 0xf3: 0x343d, 0xf4: 0x47f0, 0xf5: 0x47f5,
+       0xf6: 0x4804, 0xf8: 0xa000, 0xf9: 0x34c9, 0xfa: 0x34ce, 0xfb: 0x34d3,
+       0xfc: 0x4836, 0xfd: 0x3550, 0xff: 0x3569,
+       // Block 0x4, offset 0x100
+       0x100: 0x2f7e, 0x101: 0x328a, 0x102: 0x4723, 0x103: 0x47b4, 0x104: 0x2f9c, 0x105: 0x32a8,
+       0x106: 0x2fb0, 0x107: 0x32bc, 0x108: 0x2fb5, 0x109: 0x32c1, 0x10a: 0x2fba, 0x10b: 0x32c6,
+       0x10c: 0x2fbf, 0x10d: 0x32cb, 0x10e: 0x2fc9, 0x10f: 0x32d5,
+       0x112: 0x4746, 0x113: 0x47d7, 0x114: 0x2ff1, 0x115: 0x32fd, 0x116: 0x2ff6, 0x117: 0x3302,
+       0x118: 0x3014, 0x119: 0x3320, 0x11a: 0x3005, 0x11b: 0x3311, 0x11c: 0x302d, 0x11d: 0x3339,
+       0x11e: 0x3037, 0x11f: 0x3343, 0x120: 0x303c, 0x121: 0x3348, 0x122: 0x3046, 0x123: 0x3352,
+       0x124: 0x304b, 0x125: 0x3357, 0x128: 0x307d, 0x129: 0x338e,
+       0x12a: 0x3082, 0x12b: 0x3393, 0x12c: 0x3087, 0x12d: 0x3398, 0x12e: 0x30aa, 0x12f: 0x33b6,
+       0x130: 0x308c, 0x132: 0x195d, 0x133: 0x19e7, 0x134: 0x30b4, 0x135: 0x33c0,
+       0x136: 0x30c8, 0x137: 0x33d9, 0x139: 0x30d2, 0x13a: 0x33e3, 0x13b: 0x30dc,
+       0x13c: 0x33ed, 0x13d: 0x30d7, 0x13e: 0x33e8, 0x13f: 0x1bac,
+       // Block 0x5, offset 0x140
+       0x140: 0x1c34, 0x143: 0x30ff, 0x144: 0x3410, 0x145: 0x3118,
+       0x146: 0x3429, 0x147: 0x310e, 0x148: 0x341f, 0x149: 0x1c5c,
+       0x14c: 0x4769, 0x14d: 0x47fa, 0x14e: 0x3131, 0x14f: 0x3442, 0x150: 0x313b, 0x151: 0x344c,
+       0x154: 0x3159, 0x155: 0x346a, 0x156: 0x3172, 0x157: 0x3483,
+       0x158: 0x3163, 0x159: 0x3474, 0x15a: 0x478c, 0x15b: 0x481d, 0x15c: 0x317c, 0x15d: 0x348d,
+       0x15e: 0x318b, 0x15f: 0x349c, 0x160: 0x4791, 0x161: 0x4822, 0x162: 0x31a4, 0x163: 0x34ba,
+       0x164: 0x3195, 0x165: 0x34ab, 0x168: 0x479b, 0x169: 0x482c,
+       0x16a: 0x47a0, 0x16b: 0x4831, 0x16c: 0x31c2, 0x16d: 0x34d8, 0x16e: 0x31cc, 0x16f: 0x34e2,
+       0x170: 0x31d1, 0x171: 0x34e7, 0x172: 0x31ef, 0x173: 0x3505, 0x174: 0x3212, 0x175: 0x3528,
+       0x176: 0x323a, 0x177: 0x3555, 0x178: 0x324e, 0x179: 0x325d, 0x17a: 0x357d, 0x17b: 0x3267,
+       0x17c: 0x3587, 0x17d: 0x326c, 0x17e: 0x358c, 0x17f: 0x00a7,
+       // Block 0x6, offset 0x180
+       0x184: 0x2dee, 0x185: 0x2df4,
+       0x186: 0x2dfa, 0x187: 0x1972, 0x188: 0x1975, 0x189: 0x1a08, 0x18a: 0x1987, 0x18b: 0x198a,
+       0x18c: 0x1a3e, 0x18d: 0x2f88, 0x18e: 0x3294, 0x18f: 0x3096, 0x190: 0x33a2, 0x191: 0x3140,
+       0x192: 0x3451, 0x193: 0x31d6, 0x194: 0x34ec, 0x195: 0x39cf, 0x196: 0x3b5e, 0x197: 0x39c8,
+       0x198: 0x3b57, 0x199: 0x39d6, 0x19a: 0x3b65, 0x19b: 0x39c1, 0x19c: 0x3b50,
+       0x19e: 0x38b0, 0x19f: 0x3a3f, 0x1a0: 0x38a9, 0x1a1: 0x3a38, 0x1a2: 0x35b3, 0x1a3: 0x35c5,
+       0x1a6: 0x3041, 0x1a7: 0x334d, 0x1a8: 0x30be, 0x1a9: 0x33cf,
+       0x1aa: 0x4782, 0x1ab: 0x4813, 0x1ac: 0x3990, 0x1ad: 0x3b1f, 0x1ae: 0x35d7, 0x1af: 0x35dd,
+       0x1b0: 0x33c5, 0x1b1: 0x1942, 0x1b2: 0x1945, 0x1b3: 0x19cf, 0x1b4: 0x3028, 0x1b5: 0x3334,
+       0x1b8: 0x30fa, 0x1b9: 0x340b, 0x1ba: 0x38b7, 0x1bb: 0x3a46,
+       0x1bc: 0x35ad, 0x1bd: 0x35bf, 0x1be: 0x35b9, 0x1bf: 0x35cb,
+       // Block 0x7, offset 0x1c0
+       0x1c0: 0x2f8d, 0x1c1: 0x3299, 0x1c2: 0x2f92, 0x1c3: 0x329e, 0x1c4: 0x300a, 0x1c5: 0x3316,
+       0x1c6: 0x300f, 0x1c7: 0x331b, 0x1c8: 0x309b, 0x1c9: 0x33a7, 0x1ca: 0x30a0, 0x1cb: 0x33ac,
+       0x1cc: 0x3145, 0x1cd: 0x3456, 0x1ce: 0x314a, 0x1cf: 0x345b, 0x1d0: 0x3168, 0x1d1: 0x3479,
+       0x1d2: 0x316d, 0x1d3: 0x347e, 0x1d4: 0x31db, 0x1d5: 0x34f1, 0x1d6: 0x31e0, 0x1d7: 0x34f6,
+       0x1d8: 0x3186, 0x1d9: 0x3497, 0x1da: 0x319f, 0x1db: 0x34b5,
+       0x1de: 0x305a, 0x1df: 0x3366,
+       0x1e6: 0x4728, 0x1e7: 0x47b9, 0x1e8: 0x4750, 0x1e9: 0x47e1,
+       0x1ea: 0x395f, 0x1eb: 0x3aee, 0x1ec: 0x393c, 0x1ed: 0x3acb, 0x1ee: 0x476e, 0x1ef: 0x47ff,
+       0x1f0: 0x3958, 0x1f1: 0x3ae7, 0x1f2: 0x3244, 0x1f3: 0x355f,
+       // Block 0x8, offset 0x200
+       0x200: 0x9932, 0x201: 0x9932, 0x202: 0x9932, 0x203: 0x9932, 0x204: 0x9932, 0x205: 0x8132,
+       0x206: 0x9932, 0x207: 0x9932, 0x208: 0x9932, 0x209: 0x9932, 0x20a: 0x9932, 0x20b: 0x9932,
+       0x20c: 0x9932, 0x20d: 0x8132, 0x20e: 0x8132, 0x20f: 0x9932, 0x210: 0x8132, 0x211: 0x9932,
+       0x212: 0x8132, 0x213: 0x9932, 0x214: 0x9932, 0x215: 0x8133, 0x216: 0x812d, 0x217: 0x812d,
+       0x218: 0x812d, 0x219: 0x812d, 0x21a: 0x8133, 0x21b: 0x992b, 0x21c: 0x812d, 0x21d: 0x812d,
+       0x21e: 0x812d, 0x21f: 0x812d, 0x220: 0x812d, 0x221: 0x8129, 0x222: 0x8129, 0x223: 0x992d,
+       0x224: 0x992d, 0x225: 0x992d, 0x226: 0x992d, 0x227: 0x9929, 0x228: 0x9929, 0x229: 0x812d,
+       0x22a: 0x812d, 0x22b: 0x812d, 0x22c: 0x812d, 0x22d: 0x992d, 0x22e: 0x992d, 0x22f: 0x812d,
+       0x230: 0x992d, 0x231: 0x992d, 0x232: 0x812d, 0x233: 0x812d, 0x234: 0x8101, 0x235: 0x8101,
+       0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812d, 0x23a: 0x812d, 0x23b: 0x812d,
+       0x23c: 0x812d, 0x23d: 0x8132, 0x23e: 0x8132, 0x23f: 0x8132,
+       // Block 0x9, offset 0x240
+       0x240: 0x4a44, 0x241: 0x4a49, 0x242: 0x9932, 0x243: 0x4a4e, 0x244: 0x4a53, 0x245: 0x9936,
+       0x246: 0x8132, 0x247: 0x812d, 0x248: 0x812d, 0x249: 0x812d, 0x24a: 0x8132, 0x24b: 0x8132,
+       0x24c: 0x8132, 0x24d: 0x812d, 0x24e: 0x812d, 0x250: 0x8132, 0x251: 0x8132,
+       0x252: 0x8132, 0x253: 0x812d, 0x254: 0x812d, 0x255: 0x812d, 0x256: 0x812d, 0x257: 0x8132,
+       0x258: 0x8133, 0x259: 0x812d, 0x25a: 0x812d, 0x25b: 0x8132, 0x25c: 0x8134, 0x25d: 0x8135,
+       0x25e: 0x8135, 0x25f: 0x8134, 0x260: 0x8135, 0x261: 0x8135, 0x262: 0x8134, 0x263: 0x8132,
+       0x264: 0x8132, 0x265: 0x8132, 0x266: 0x8132, 0x267: 0x8132, 0x268: 0x8132, 0x269: 0x8132,
+       0x26a: 0x8132, 0x26b: 0x8132, 0x26c: 0x8132, 0x26d: 0x8132, 0x26e: 0x8132, 0x26f: 0x8132,
+       0x274: 0x0170,
+       0x27a: 0x42a5,
+       0x27e: 0x0037,
+       // Block 0xa, offset 0x280
+       0x284: 0x425a, 0x285: 0x4511,
+       0x286: 0x35e9, 0x287: 0x00ce, 0x288: 0x3607, 0x289: 0x3613, 0x28a: 0x3625,
+       0x28c: 0x3643, 0x28e: 0x3655, 0x28f: 0x3673, 0x290: 0x3e08, 0x291: 0xa000,
+       0x295: 0xa000, 0x297: 0xa000,
+       0x299: 0xa000,
+       0x29f: 0xa000, 0x2a1: 0xa000,
+       0x2a5: 0xa000, 0x2a9: 0xa000,
+       0x2aa: 0x3637, 0x2ab: 0x3667, 0x2ac: 0x4894, 0x2ad: 0x3697, 0x2ae: 0x48be, 0x2af: 0x36a9,
+       0x2b0: 0x3e70, 0x2b1: 0xa000, 0x2b5: 0xa000,
+       0x2b7: 0xa000, 0x2b9: 0xa000,
+       0x2bf: 0xa000,
+       // Block 0xb, offset 0x2c0
+       0x2c1: 0xa000, 0x2c5: 0xa000,
+       0x2c9: 0xa000, 0x2ca: 0x48d6, 0x2cb: 0x48f4,
+       0x2cc: 0x36c7, 0x2cd: 0x36df, 0x2ce: 0x490c, 0x2d0: 0x01be, 0x2d1: 0x01d0,
+       0x2d2: 0x01ac, 0x2d3: 0x43a2, 0x2d4: 0x43a8, 0x2d5: 0x01fa, 0x2d6: 0x01e8,
+       0x2f0: 0x01d6, 0x2f1: 0x01eb, 0x2f2: 0x01ee, 0x2f4: 0x0188, 0x2f5: 0x01c7,
+       0x2f9: 0x01a6,
+       // Block 0xc, offset 0x300
+       0x300: 0x3721, 0x301: 0x372d, 0x303: 0x371b,
+       0x306: 0xa000, 0x307: 0x3709,
+       0x30c: 0x375d, 0x30d: 0x3745, 0x30e: 0x376f, 0x310: 0xa000,
+       0x313: 0xa000, 0x315: 0xa000, 0x316: 0xa000, 0x317: 0xa000,
+       0x318: 0xa000, 0x319: 0x3751, 0x31a: 0xa000,
+       0x31e: 0xa000, 0x323: 0xa000,
+       0x327: 0xa000,
+       0x32b: 0xa000, 0x32d: 0xa000,
+       0x330: 0xa000, 0x333: 0xa000, 0x335: 0xa000,
+       0x336: 0xa000, 0x337: 0xa000, 0x338: 0xa000, 0x339: 0x37d5, 0x33a: 0xa000,
+       0x33e: 0xa000,
+       // Block 0xd, offset 0x340
+       0x341: 0x3733, 0x342: 0x37b7,
+       0x350: 0x370f, 0x351: 0x3793,
+       0x352: 0x3715, 0x353: 0x3799, 0x356: 0x3727, 0x357: 0x37ab,
+       0x358: 0xa000, 0x359: 0xa000, 0x35a: 0x3829, 0x35b: 0x382f, 0x35c: 0x3739, 0x35d: 0x37bd,
+       0x35e: 0x373f, 0x35f: 0x37c3, 0x362: 0x374b, 0x363: 0x37cf,
+       0x364: 0x3757, 0x365: 0x37db, 0x366: 0x3763, 0x367: 0x37e7, 0x368: 0xa000, 0x369: 0xa000,
+       0x36a: 0x3835, 0x36b: 0x383b, 0x36c: 0x378d, 0x36d: 0x3811, 0x36e: 0x3769, 0x36f: 0x37ed,
+       0x370: 0x3775, 0x371: 0x37f9, 0x372: 0x377b, 0x373: 0x37ff, 0x374: 0x3781, 0x375: 0x3805,
+       0x378: 0x3787, 0x379: 0x380b,
+       // Block 0xe, offset 0x380
+       0x387: 0x1d61,
+       0x391: 0x812d,
+       0x392: 0x8132, 0x393: 0x8132, 0x394: 0x8132, 0x395: 0x8132, 0x396: 0x812d, 0x397: 0x8132,
+       0x398: 0x8132, 0x399: 0x8132, 0x39a: 0x812e, 0x39b: 0x812d, 0x39c: 0x8132, 0x39d: 0x8132,
+       0x39e: 0x8132, 0x39f: 0x8132, 0x3a0: 0x8132, 0x3a1: 0x8132, 0x3a2: 0x812d, 0x3a3: 0x812d,
+       0x3a4: 0x812d, 0x3a5: 0x812d, 0x3a6: 0x812d, 0x3a7: 0x812d, 0x3a8: 0x8132, 0x3a9: 0x8132,
+       0x3aa: 0x812d, 0x3ab: 0x8132, 0x3ac: 0x8132, 0x3ad: 0x812e, 0x3ae: 0x8131, 0x3af: 0x8132,
+       0x3b0: 0x8105, 0x3b1: 0x8106, 0x3b2: 0x8107, 0x3b3: 0x8108, 0x3b4: 0x8109, 0x3b5: 0x810a,
+       0x3b6: 0x810b, 0x3b7: 0x810c, 0x3b8: 0x810d, 0x3b9: 0x810e, 0x3ba: 0x810e, 0x3bb: 0x810f,
+       0x3bc: 0x8110, 0x3bd: 0x8111, 0x3bf: 0x8112,
+       // Block 0xf, offset 0x3c0
+       0x3c8: 0xa000, 0x3ca: 0xa000, 0x3cb: 0x8116,
+       0x3cc: 0x8117, 0x3cd: 0x8118, 0x3ce: 0x8119, 0x3cf: 0x811a, 0x3d0: 0x811b, 0x3d1: 0x811c,
+       0x3d2: 0x811d, 0x3d3: 0x9932, 0x3d4: 0x9932, 0x3d5: 0x992d, 0x3d6: 0x812d, 0x3d7: 0x8132,
+       0x3d8: 0x8132, 0x3d9: 0x8132, 0x3da: 0x8132, 0x3db: 0x8132, 0x3dc: 0x812d, 0x3dd: 0x8132,
+       0x3de: 0x8132, 0x3df: 0x812d,
+       0x3f0: 0x811e, 0x3f5: 0x1d84,
+       0x3f6: 0x2013, 0x3f7: 0x204f, 0x3f8: 0x204a,
+       // Block 0x10, offset 0x400
+       0x405: 0xa000,
+       0x406: 0x2d26, 0x407: 0xa000, 0x408: 0x2d2e, 0x409: 0xa000, 0x40a: 0x2d36, 0x40b: 0xa000,
+       0x40c: 0x2d3e, 0x40d: 0xa000, 0x40e: 0x2d46, 0x411: 0xa000,
+       0x412: 0x2d4e,
+       0x434: 0x8102, 0x435: 0x9900,
+       0x43a: 0xa000, 0x43b: 0x2d56,
+       0x43c: 0xa000, 0x43d: 0x2d5e, 0x43e: 0xa000, 0x43f: 0xa000,
+       // Block 0x11, offset 0x440
+       0x440: 0x0069, 0x441: 0x006b, 0x442: 0x006f, 0x443: 0x0083, 0x444: 0x00f5, 0x445: 0x00f8,
+       0x446: 0x0413, 0x447: 0x0085, 0x448: 0x0089, 0x449: 0x008b, 0x44a: 0x0104, 0x44b: 0x0107,
+       0x44c: 0x010a, 0x44d: 0x008f, 0x44f: 0x0097, 0x450: 0x009b, 0x451: 0x00e0,
+       0x452: 0x009f, 0x453: 0x00fe, 0x454: 0x0417, 0x455: 0x041b, 0x456: 0x00a1, 0x457: 0x00a9,
+       0x458: 0x00ab, 0x459: 0x0423, 0x45a: 0x012b, 0x45b: 0x00ad, 0x45c: 0x0427, 0x45d: 0x01be,
+       0x45e: 0x01c1, 0x45f: 0x01c4, 0x460: 0x01fa, 0x461: 0x01fd, 0x462: 0x0093, 0x463: 0x00a5,
+       0x464: 0x00ab, 0x465: 0x00ad, 0x466: 0x01be, 0x467: 0x01c1, 0x468: 0x01eb, 0x469: 0x01fa,
+       0x46a: 0x01fd,
+       0x478: 0x020c,
+       // Block 0x12, offset 0x480
+       0x49b: 0x00fb, 0x49c: 0x0087, 0x49d: 0x0101,
+       0x49e: 0x00d4, 0x49f: 0x010a, 0x4a0: 0x008d, 0x4a1: 0x010d, 0x4a2: 0x0110, 0x4a3: 0x0116,
+       0x4a4: 0x011c, 0x4a5: 0x011f, 0x4a6: 0x0122, 0x4a7: 0x042b, 0x4a8: 0x016a, 0x4a9: 0x0128,
+       0x4aa: 0x042f, 0x4ab: 0x016d, 0x4ac: 0x0131, 0x4ad: 0x012e, 0x4ae: 0x0134, 0x4af: 0x0137,
+       0x4b0: 0x013a, 0x4b1: 0x013d, 0x4b2: 0x0140, 0x4b3: 0x014c, 0x4b4: 0x014f, 0x4b5: 0x00ec,
+       0x4b6: 0x0152, 0x4b7: 0x0155, 0x4b8: 0x041f, 0x4b9: 0x0158, 0x4ba: 0x015b, 0x4bb: 0x00b5,
+       0x4bc: 0x015e, 0x4bd: 0x0161, 0x4be: 0x0164, 0x4bf: 0x01d0,
+       // Block 0x13, offset 0x4c0
+       0x4c0: 0x2f97, 0x4c1: 0x32a3, 0x4c2: 0x2fa1, 0x4c3: 0x32ad, 0x4c4: 0x2fa6, 0x4c5: 0x32b2,
+       0x4c6: 0x2fab, 0x4c7: 0x32b7, 0x4c8: 0x38cc, 0x4c9: 0x3a5b, 0x4ca: 0x2fc4, 0x4cb: 0x32d0,
+       0x4cc: 0x2fce, 0x4cd: 0x32da, 0x4ce: 0x2fdd, 0x4cf: 0x32e9, 0x4d0: 0x2fd3, 0x4d1: 0x32df,
+       0x4d2: 0x2fd8, 0x4d3: 0x32e4, 0x4d4: 0x38ef, 0x4d5: 0x3a7e, 0x4d6: 0x38f6, 0x4d7: 0x3a85,
+       0x4d8: 0x3019, 0x4d9: 0x3325, 0x4da: 0x301e, 0x4db: 0x332a, 0x4dc: 0x3904, 0x4dd: 0x3a93,
+       0x4de: 0x3023, 0x4df: 0x332f, 0x4e0: 0x3032, 0x4e1: 0x333e, 0x4e2: 0x3050, 0x4e3: 0x335c,
+       0x4e4: 0x305f, 0x4e5: 0x336b, 0x4e6: 0x3055, 0x4e7: 0x3361, 0x4e8: 0x3064, 0x4e9: 0x3370,
+       0x4ea: 0x3069, 0x4eb: 0x3375, 0x4ec: 0x30af, 0x4ed: 0x33bb, 0x4ee: 0x390b, 0x4ef: 0x3a9a,
+       0x4f0: 0x30b9, 0x4f1: 0x33ca, 0x4f2: 0x30c3, 0x4f3: 0x33d4, 0x4f4: 0x30cd, 0x4f5: 0x33de,
+       0x4f6: 0x475a, 0x4f7: 0x47eb, 0x4f8: 0x3912, 0x4f9: 0x3aa1, 0x4fa: 0x30e6, 0x4fb: 0x33f7,
+       0x4fc: 0x30e1, 0x4fd: 0x33f2, 0x4fe: 0x30eb, 0x4ff: 0x33fc,
+       // Block 0x14, offset 0x500
+       0x500: 0x30f0, 0x501: 0x3401, 0x502: 0x30f5, 0x503: 0x3406, 0x504: 0x3109, 0x505: 0x341a,
+       0x506: 0x3113, 0x507: 0x3424, 0x508: 0x3122, 0x509: 0x3433, 0x50a: 0x311d, 0x50b: 0x342e,
+       0x50c: 0x3935, 0x50d: 0x3ac4, 0x50e: 0x3943, 0x50f: 0x3ad2, 0x510: 0x394a, 0x511: 0x3ad9,
+       0x512: 0x3951, 0x513: 0x3ae0, 0x514: 0x314f, 0x515: 0x3460, 0x516: 0x3154, 0x517: 0x3465,
+       0x518: 0x315e, 0x519: 0x346f, 0x51a: 0x4787, 0x51b: 0x4818, 0x51c: 0x3997, 0x51d: 0x3b26,
+       0x51e: 0x3177, 0x51f: 0x3488, 0x520: 0x3181, 0x521: 0x3492, 0x522: 0x4796, 0x523: 0x4827,
+       0x524: 0x399e, 0x525: 0x3b2d, 0x526: 0x39a5, 0x527: 0x3b34, 0x528: 0x39ac, 0x529: 0x3b3b,
+       0x52a: 0x3190, 0x52b: 0x34a1, 0x52c: 0x319a, 0x52d: 0x34b0, 0x52e: 0x31ae, 0x52f: 0x34c4,
+       0x530: 0x31a9, 0x531: 0x34bf, 0x532: 0x31ea, 0x533: 0x3500, 0x534: 0x31f9, 0x535: 0x350f,
+       0x536: 0x31f4, 0x537: 0x350a, 0x538: 0x39b3, 0x539: 0x3b42, 0x53a: 0x39ba, 0x53b: 0x3b49,
+       0x53c: 0x31fe, 0x53d: 0x3514, 0x53e: 0x3203, 0x53f: 0x3519,
+       // Block 0x15, offset 0x540
+       0x540: 0x3208, 0x541: 0x351e, 0x542: 0x320d, 0x543: 0x3523, 0x544: 0x321c, 0x545: 0x3532,
+       0x546: 0x3217, 0x547: 0x352d, 0x548: 0x3221, 0x549: 0x353c, 0x54a: 0x3226, 0x54b: 0x3541,
+       0x54c: 0x322b, 0x54d: 0x3546, 0x54e: 0x3249, 0x54f: 0x3564, 0x550: 0x3262, 0x551: 0x3582,
+       0x552: 0x3271, 0x553: 0x3591, 0x554: 0x3276, 0x555: 0x3596, 0x556: 0x337a, 0x557: 0x34a6,
+       0x558: 0x3537, 0x559: 0x3573, 0x55a: 0x1be0, 0x55b: 0x42d7,
+       0x560: 0x4737, 0x561: 0x47c8, 0x562: 0x2f83, 0x563: 0x328f,
+       0x564: 0x3878, 0x565: 0x3a07, 0x566: 0x3871, 0x567: 0x3a00, 0x568: 0x3886, 0x569: 0x3a15,
+       0x56a: 0x387f, 0x56b: 0x3a0e, 0x56c: 0x38be, 0x56d: 0x3a4d, 0x56e: 0x3894, 0x56f: 0x3a23,
+       0x570: 0x388d, 0x571: 0x3a1c, 0x572: 0x38a2, 0x573: 0x3a31, 0x574: 0x389b, 0x575: 0x3a2a,
+       0x576: 0x38c5, 0x577: 0x3a54, 0x578: 0x474b, 0x579: 0x47dc, 0x57a: 0x3000, 0x57b: 0x330c,
+       0x57c: 0x2fec, 0x57d: 0x32f8, 0x57e: 0x38da, 0x57f: 0x3a69,
+       // Block 0x16, offset 0x580
+       0x580: 0x38d3, 0x581: 0x3a62, 0x582: 0x38e8, 0x583: 0x3a77, 0x584: 0x38e1, 0x585: 0x3a70,
+       0x586: 0x38fd, 0x587: 0x3a8c, 0x588: 0x3091, 0x589: 0x339d, 0x58a: 0x30a5, 0x58b: 0x33b1,
+       0x58c: 0x477d, 0x58d: 0x480e, 0x58e: 0x3136, 0x58f: 0x3447, 0x590: 0x3920, 0x591: 0x3aaf,
+       0x592: 0x3919, 0x593: 0x3aa8, 0x594: 0x392e, 0x595: 0x3abd, 0x596: 0x3927, 0x597: 0x3ab6,
+       0x598: 0x3989, 0x599: 0x3b18, 0x59a: 0x396d, 0x59b: 0x3afc, 0x59c: 0x3966, 0x59d: 0x3af5,
+       0x59e: 0x397b, 0x59f: 0x3b0a, 0x5a0: 0x3974, 0x5a1: 0x3b03, 0x5a2: 0x3982, 0x5a3: 0x3b11,
+       0x5a4: 0x31e5, 0x5a5: 0x34fb, 0x5a6: 0x31c7, 0x5a7: 0x34dd, 0x5a8: 0x39e4, 0x5a9: 0x3b73,
+       0x5aa: 0x39dd, 0x5ab: 0x3b6c, 0x5ac: 0x39f2, 0x5ad: 0x3b81, 0x5ae: 0x39eb, 0x5af: 0x3b7a,
+       0x5b0: 0x39f9, 0x5b1: 0x3b88, 0x5b2: 0x3230, 0x5b3: 0x354b, 0x5b4: 0x3258, 0x5b5: 0x3578,
+       0x5b6: 0x3253, 0x5b7: 0x356e, 0x5b8: 0x323f, 0x5b9: 0x355a,
+       // Block 0x17, offset 0x5c0
+       0x5c0: 0x489a, 0x5c1: 0x48a0, 0x5c2: 0x49b4, 0x5c3: 0x49cc, 0x5c4: 0x49bc, 0x5c5: 0x49d4,
+       0x5c6: 0x49c4, 0x5c7: 0x49dc, 0x5c8: 0x4840, 0x5c9: 0x4846, 0x5ca: 0x4924, 0x5cb: 0x493c,
+       0x5cc: 0x492c, 0x5cd: 0x4944, 0x5ce: 0x4934, 0x5cf: 0x494c, 0x5d0: 0x48ac, 0x5d1: 0x48b2,
+       0x5d2: 0x3db8, 0x5d3: 0x3dc8, 0x5d4: 0x3dc0, 0x5d5: 0x3dd0,
+       0x5d8: 0x484c, 0x5d9: 0x4852, 0x5da: 0x3ce8, 0x5db: 0x3cf8, 0x5dc: 0x3cf0, 0x5dd: 0x3d00,
+       0x5e0: 0x48c4, 0x5e1: 0x48ca, 0x5e2: 0x49e4, 0x5e3: 0x49fc,
+       0x5e4: 0x49ec, 0x5e5: 0x4a04, 0x5e6: 0x49f4, 0x5e7: 0x4a0c, 0x5e8: 0x4858, 0x5e9: 0x485e,
+       0x5ea: 0x4954, 0x5eb: 0x496c, 0x5ec: 0x495c, 0x5ed: 0x4974, 0x5ee: 0x4964, 0x5ef: 0x497c,
+       0x5f0: 0x48dc, 0x5f1: 0x48e2, 0x5f2: 0x3e18, 0x5f3: 0x3e30, 0x5f4: 0x3e20, 0x5f5: 0x3e38,
+       0x5f6: 0x3e28, 0x5f7: 0x3e40, 0x5f8: 0x4864, 0x5f9: 0x486a, 0x5fa: 0x3d18, 0x5fb: 0x3d30,
+       0x5fc: 0x3d20, 0x5fd: 0x3d38, 0x5fe: 0x3d28, 0x5ff: 0x3d40,
+       // Block 0x18, offset 0x600
+       0x600: 0x48e8, 0x601: 0x48ee, 0x602: 0x3e48, 0x603: 0x3e58, 0x604: 0x3e50, 0x605: 0x3e60,
+       0x608: 0x4870, 0x609: 0x4876, 0x60a: 0x3d48, 0x60b: 0x3d58,
+       0x60c: 0x3d50, 0x60d: 0x3d60, 0x610: 0x48fa, 0x611: 0x4900,
+       0x612: 0x3e80, 0x613: 0x3e98, 0x614: 0x3e88, 0x615: 0x3ea0, 0x616: 0x3e90, 0x617: 0x3ea8,
+       0x619: 0x487c, 0x61b: 0x3d68, 0x61d: 0x3d70,
+       0x61f: 0x3d78, 0x620: 0x4912, 0x621: 0x4918, 0x622: 0x4a14, 0x623: 0x4a2c,
+       0x624: 0x4a1c, 0x625: 0x4a34, 0x626: 0x4a24, 0x627: 0x4a3c, 0x628: 0x4882, 0x629: 0x4888,
+       0x62a: 0x4984, 0x62b: 0x499c, 0x62c: 0x498c, 0x62d: 0x49a4, 0x62e: 0x4994, 0x62f: 0x49ac,
+       0x630: 0x488e, 0x631: 0x43b4, 0x632: 0x3691, 0x633: 0x43ba, 0x634: 0x48b8, 0x635: 0x43c0,
+       0x636: 0x36a3, 0x637: 0x43c6, 0x638: 0x36c1, 0x639: 0x43cc, 0x63a: 0x36d9, 0x63b: 0x43d2,
+       0x63c: 0x4906, 0x63d: 0x43d8,
+       // Block 0x19, offset 0x640
+       0x640: 0x3da0, 0x641: 0x3da8, 0x642: 0x4184, 0x643: 0x41a2, 0x644: 0x418e, 0x645: 0x41ac,
+       0x646: 0x4198, 0x647: 0x41b6, 0x648: 0x3cd8, 0x649: 0x3ce0, 0x64a: 0x40d0, 0x64b: 0x40ee,
+       0x64c: 0x40da, 0x64d: 0x40f8, 0x64e: 0x40e4, 0x64f: 0x4102, 0x650: 0x3de8, 0x651: 0x3df0,
+       0x652: 0x41c0, 0x653: 0x41de, 0x654: 0x41ca, 0x655: 0x41e8, 0x656: 0x41d4, 0x657: 0x41f2,
+       0x658: 0x3d08, 0x659: 0x3d10, 0x65a: 0x410c, 0x65b: 0x412a, 0x65c: 0x4116, 0x65d: 0x4134,
+       0x65e: 0x4120, 0x65f: 0x413e, 0x660: 0x3ec0, 0x661: 0x3ec8, 0x662: 0x41fc, 0x663: 0x421a,
+       0x664: 0x4206, 0x665: 0x4224, 0x666: 0x4210, 0x667: 0x422e, 0x668: 0x3d80, 0x669: 0x3d88,
+       0x66a: 0x4148, 0x66b: 0x4166, 0x66c: 0x4152, 0x66d: 0x4170, 0x66e: 0x415c, 0x66f: 0x417a,
+       0x670: 0x3685, 0x671: 0x367f, 0x672: 0x3d90, 0x673: 0x368b, 0x674: 0x3d98,
+       0x676: 0x48a6, 0x677: 0x3db0, 0x678: 0x35f5, 0x679: 0x35ef, 0x67a: 0x35e3, 0x67b: 0x4384,
+       0x67c: 0x35fb, 0x67d: 0x4287, 0x67e: 0x01d3, 0x67f: 0x4287,
+       // Block 0x1a, offset 0x680
+       0x680: 0x42a0, 0x681: 0x4518, 0x682: 0x3dd8, 0x683: 0x369d, 0x684: 0x3de0,
+       0x686: 0x48d0, 0x687: 0x3df8, 0x688: 0x3601, 0x689: 0x438a, 0x68a: 0x360d, 0x68b: 0x4390,
+       0x68c: 0x3619, 0x68d: 0x451f, 0x68e: 0x4526, 0x68f: 0x452d, 0x690: 0x36b5, 0x691: 0x36af,
+       0x692: 0x3e00, 0x693: 0x457a, 0x696: 0x36bb, 0x697: 0x3e10,
+       0x698: 0x3631, 0x699: 0x362b, 0x69a: 0x361f, 0x69b: 0x4396, 0x69d: 0x4534,
+       0x69e: 0x453b, 0x69f: 0x4542, 0x6a0: 0x36eb, 0x6a1: 0x36e5, 0x6a2: 0x3e68, 0x6a3: 0x4582,
+       0x6a4: 0x36cd, 0x6a5: 0x36d3, 0x6a6: 0x36f1, 0x6a7: 0x3e78, 0x6a8: 0x3661, 0x6a9: 0x365b,
+       0x6aa: 0x364f, 0x6ab: 0x43a2, 0x6ac: 0x3649, 0x6ad: 0x450a, 0x6ae: 0x4511, 0x6af: 0x0081,
+       0x6b2: 0x3eb0, 0x6b3: 0x36f7, 0x6b4: 0x3eb8,
+       0x6b6: 0x491e, 0x6b7: 0x3ed0, 0x6b8: 0x363d, 0x6b9: 0x439c, 0x6ba: 0x366d, 0x6bb: 0x43ae,
+       0x6bc: 0x3679, 0x6bd: 0x425a, 0x6be: 0x428c,
+       // Block 0x1b, offset 0x6c0
+       0x6c0: 0x1bd8, 0x6c1: 0x1bdc, 0x6c2: 0x0047, 0x6c3: 0x1c54, 0x6c5: 0x1be8,
+       0x6c6: 0x1bec, 0x6c7: 0x00e9, 0x6c9: 0x1c58, 0x6ca: 0x008f, 0x6cb: 0x0051,
+       0x6cc: 0x0051, 0x6cd: 0x0051, 0x6ce: 0x0091, 0x6cf: 0x00da, 0x6d0: 0x0053, 0x6d1: 0x0053,
+       0x6d2: 0x0059, 0x6d3: 0x0099, 0x6d5: 0x005d, 0x6d6: 0x198d,
+       0x6d9: 0x0061, 0x6da: 0x0063, 0x6db: 0x0065, 0x6dc: 0x0065, 0x6dd: 0x0065,
+       0x6e0: 0x199f, 0x6e1: 0x1bc8, 0x6e2: 0x19a8,
+       0x6e4: 0x0075, 0x6e6: 0x01b8, 0x6e8: 0x0075,
+       0x6ea: 0x0057, 0x6eb: 0x42d2, 0x6ec: 0x0045, 0x6ed: 0x0047, 0x6ef: 0x008b,
+       0x6f0: 0x004b, 0x6f1: 0x004d, 0x6f3: 0x005b, 0x6f4: 0x009f, 0x6f5: 0x0215,
+       0x6f6: 0x0218, 0x6f7: 0x021b, 0x6f8: 0x021e, 0x6f9: 0x0093, 0x6fb: 0x1b98,
+       0x6fc: 0x01e8, 0x6fd: 0x01c1, 0x6fe: 0x0179, 0x6ff: 0x01a0,
+       // Block 0x1c, offset 0x700
+       0x700: 0x0463, 0x705: 0x0049,
+       0x706: 0x0089, 0x707: 0x008b, 0x708: 0x0093, 0x709: 0x0095,
+       0x710: 0x222e, 0x711: 0x223a,
+       0x712: 0x22ee, 0x713: 0x2216, 0x714: 0x229a, 0x715: 0x2222, 0x716: 0x22a0, 0x717: 0x22b8,
+       0x718: 0x22c4, 0x719: 0x2228, 0x71a: 0x22ca, 0x71b: 0x2234, 0x71c: 0x22be, 0x71d: 0x22d0,
+       0x71e: 0x22d6, 0x71f: 0x1cbc, 0x720: 0x0053, 0x721: 0x195a, 0x722: 0x1ba4, 0x723: 0x1963,
+       0x724: 0x006d, 0x725: 0x19ab, 0x726: 0x1bd0, 0x727: 0x1d48, 0x728: 0x1966, 0x729: 0x0071,
+       0x72a: 0x19b7, 0x72b: 0x1bd4, 0x72c: 0x0059, 0x72d: 0x0047, 0x72e: 0x0049, 0x72f: 0x005b,
+       0x730: 0x0093, 0x731: 0x19e4, 0x732: 0x1c18, 0x733: 0x19ed, 0x734: 0x00ad, 0x735: 0x1a62,
+       0x736: 0x1c4c, 0x737: 0x1d5c, 0x738: 0x19f0, 0x739: 0x00b1, 0x73a: 0x1a65, 0x73b: 0x1c50,
+       0x73c: 0x0099, 0x73d: 0x0087, 0x73e: 0x0089, 0x73f: 0x009b,
+       // Block 0x1d, offset 0x740
+       0x741: 0x3c06, 0x743: 0xa000, 0x744: 0x3c0d, 0x745: 0xa000,
+       0x747: 0x3c14, 0x748: 0xa000, 0x749: 0x3c1b,
+       0x74d: 0xa000,
+       0x760: 0x2f65, 0x761: 0xa000, 0x762: 0x3c29,
+       0x764: 0xa000, 0x765: 0xa000,
+       0x76d: 0x3c22, 0x76e: 0x2f60, 0x76f: 0x2f6a,
+       0x770: 0x3c30, 0x771: 0x3c37, 0x772: 0xa000, 0x773: 0xa000, 0x774: 0x3c3e, 0x775: 0x3c45,
+       0x776: 0xa000, 0x777: 0xa000, 0x778: 0x3c4c, 0x779: 0x3c53, 0x77a: 0xa000, 0x77b: 0xa000,
+       0x77c: 0xa000, 0x77d: 0xa000,
+       // Block 0x1e, offset 0x780
+       0x780: 0x3c5a, 0x781: 0x3c61, 0x782: 0xa000, 0x783: 0xa000, 0x784: 0x3c76, 0x785: 0x3c7d,
+       0x786: 0xa000, 0x787: 0xa000, 0x788: 0x3c84, 0x789: 0x3c8b,
+       0x791: 0xa000,
+       0x792: 0xa000,
+       0x7a2: 0xa000,
+       0x7a8: 0xa000, 0x7a9: 0xa000,
+       0x7ab: 0xa000, 0x7ac: 0x3ca0, 0x7ad: 0x3ca7, 0x7ae: 0x3cae, 0x7af: 0x3cb5,
+       0x7b2: 0xa000, 0x7b3: 0xa000, 0x7b4: 0xa000, 0x7b5: 0xa000,
+       // Block 0x1f, offset 0x7c0
+       0x7e0: 0x0023, 0x7e1: 0x0025, 0x7e2: 0x0027, 0x7e3: 0x0029,
+       0x7e4: 0x002b, 0x7e5: 0x002d, 0x7e6: 0x002f, 0x7e7: 0x0031, 0x7e8: 0x0033, 0x7e9: 0x1882,
+       0x7ea: 0x1885, 0x7eb: 0x1888, 0x7ec: 0x188b, 0x7ed: 0x188e, 0x7ee: 0x1891, 0x7ef: 0x1894,
+       0x7f0: 0x1897, 0x7f1: 0x189a, 0x7f2: 0x189d, 0x7f3: 0x18a6, 0x7f4: 0x1a68, 0x7f5: 0x1a6c,
+       0x7f6: 0x1a70, 0x7f7: 0x1a74, 0x7f8: 0x1a78, 0x7f9: 0x1a7c, 0x7fa: 0x1a80, 0x7fb: 0x1a84,
+       0x7fc: 0x1a88, 0x7fd: 0x1c80, 0x7fe: 0x1c85, 0x7ff: 0x1c8a,
+       // Block 0x20, offset 0x800
+       0x800: 0x1c8f, 0x801: 0x1c94, 0x802: 0x1c99, 0x803: 0x1c9e, 0x804: 0x1ca3, 0x805: 0x1ca8,
+       0x806: 0x1cad, 0x807: 0x1cb2, 0x808: 0x187f, 0x809: 0x18a3, 0x80a: 0x18c7, 0x80b: 0x18eb,
+       0x80c: 0x190f, 0x80d: 0x1918, 0x80e: 0x191e, 0x80f: 0x1924, 0x810: 0x192a, 0x811: 0x1b60,
+       0x812: 0x1b64, 0x813: 0x1b68, 0x814: 0x1b6c, 0x815: 0x1b70, 0x816: 0x1b74, 0x817: 0x1b78,
+       0x818: 0x1b7c, 0x819: 0x1b80, 0x81a: 0x1b84, 0x81b: 0x1b88, 0x81c: 0x1af4, 0x81d: 0x1af8,
+       0x81e: 0x1afc, 0x81f: 0x1b00, 0x820: 0x1b04, 0x821: 0x1b08, 0x822: 0x1b0c, 0x823: 0x1b10,
+       0x824: 0x1b14, 0x825: 0x1b18, 0x826: 0x1b1c, 0x827: 0x1b20, 0x828: 0x1b24, 0x829: 0x1b28,
+       0x82a: 0x1b2c, 0x82b: 0x1b30, 0x82c: 0x1b34, 0x82d: 0x1b38, 0x82e: 0x1b3c, 0x82f: 0x1b40,
+       0x830: 0x1b44, 0x831: 0x1b48, 0x832: 0x1b4c, 0x833: 0x1b50, 0x834: 0x1b54, 0x835: 0x1b58,
+       0x836: 0x0043, 0x837: 0x0045, 0x838: 0x0047, 0x839: 0x0049, 0x83a: 0x004b, 0x83b: 0x004d,
+       0x83c: 0x004f, 0x83d: 0x0051, 0x83e: 0x0053, 0x83f: 0x0055,
+       // Block 0x21, offset 0x840
+       0x840: 0x06bf, 0x841: 0x06e3, 0x842: 0x06ef, 0x843: 0x06ff, 0x844: 0x0707, 0x845: 0x0713,
+       0x846: 0x071b, 0x847: 0x0723, 0x848: 0x072f, 0x849: 0x0783, 0x84a: 0x079b, 0x84b: 0x07ab,
+       0x84c: 0x07bb, 0x84d: 0x07cb, 0x84e: 0x07db, 0x84f: 0x07fb, 0x850: 0x07ff, 0x851: 0x0803,
+       0x852: 0x0837, 0x853: 0x085f, 0x854: 0x086f, 0x855: 0x0877, 0x856: 0x087b, 0x857: 0x0887,
+       0x858: 0x08a3, 0x859: 0x08a7, 0x85a: 0x08bf, 0x85b: 0x08c3, 0x85c: 0x08cb, 0x85d: 0x08db,
+       0x85e: 0x0977, 0x85f: 0x098b, 0x860: 0x09cb, 0x861: 0x09df, 0x862: 0x09e7, 0x863: 0x09eb,
+       0x864: 0x09fb, 0x865: 0x0a17, 0x866: 0x0a43, 0x867: 0x0a4f, 0x868: 0x0a6f, 0x869: 0x0a7b,
+       0x86a: 0x0a7f, 0x86b: 0x0a83, 0x86c: 0x0a9b, 0x86d: 0x0a9f, 0x86e: 0x0acb, 0x86f: 0x0ad7,
+       0x870: 0x0adf, 0x871: 0x0ae7, 0x872: 0x0af7, 0x873: 0x0aff, 0x874: 0x0b07, 0x875: 0x0b33,
+       0x876: 0x0b37, 0x877: 0x0b3f, 0x878: 0x0b43, 0x879: 0x0b4b, 0x87a: 0x0b53, 0x87b: 0x0b63,
+       0x87c: 0x0b7f, 0x87d: 0x0bf7, 0x87e: 0x0c0b, 0x87f: 0x0c0f,
+       // Block 0x22, offset 0x880
+       0x880: 0x0c8f, 0x881: 0x0c93, 0x882: 0x0ca7, 0x883: 0x0cab, 0x884: 0x0cb3, 0x885: 0x0cbb,
+       0x886: 0x0cc3, 0x887: 0x0ccf, 0x888: 0x0cf7, 0x889: 0x0d07, 0x88a: 0x0d1b, 0x88b: 0x0d8b,
+       0x88c: 0x0d97, 0x88d: 0x0da7, 0x88e: 0x0db3, 0x88f: 0x0dbf, 0x890: 0x0dc7, 0x891: 0x0dcb,
+       0x892: 0x0dcf, 0x893: 0x0dd3, 0x894: 0x0dd7, 0x895: 0x0e8f, 0x896: 0x0ed7, 0x897: 0x0ee3,
+       0x898: 0x0ee7, 0x899: 0x0eeb, 0x89a: 0x0eef, 0x89b: 0x0ef7, 0x89c: 0x0efb, 0x89d: 0x0f0f,
+       0x89e: 0x0f2b, 0x89f: 0x0f33, 0x8a0: 0x0f73, 0x8a1: 0x0f77, 0x8a2: 0x0f7f, 0x8a3: 0x0f83,
+       0x8a4: 0x0f8b, 0x8a5: 0x0f8f, 0x8a6: 0x0fb3, 0x8a7: 0x0fb7, 0x8a8: 0x0fd3, 0x8a9: 0x0fd7,
+       0x8aa: 0x0fdb, 0x8ab: 0x0fdf, 0x8ac: 0x0ff3, 0x8ad: 0x1017, 0x8ae: 0x101b, 0x8af: 0x101f,
+       0x8b0: 0x1043, 0x8b1: 0x1083, 0x8b2: 0x1087, 0x8b3: 0x10a7, 0x8b4: 0x10b7, 0x8b5: 0x10bf,
+       0x8b6: 0x10df, 0x8b7: 0x1103, 0x8b8: 0x1147, 0x8b9: 0x114f, 0x8ba: 0x1163, 0x8bb: 0x116f,
+       0x8bc: 0x1177, 0x8bd: 0x117f, 0x8be: 0x1183, 0x8bf: 0x1187,
+       // Block 0x23, offset 0x8c0
+       0x8c0: 0x119f, 0x8c1: 0x11a3, 0x8c2: 0x11bf, 0x8c3: 0x11c7, 0x8c4: 0x11cf, 0x8c5: 0x11d3,
+       0x8c6: 0x11df, 0x8c7: 0x11e7, 0x8c8: 0x11eb, 0x8c9: 0x11ef, 0x8ca: 0x11f7, 0x8cb: 0x11fb,
+       0x8cc: 0x129b, 0x8cd: 0x12af, 0x8ce: 0x12e3, 0x8cf: 0x12e7, 0x8d0: 0x12ef, 0x8d1: 0x131b,
+       0x8d2: 0x1323, 0x8d3: 0x132b, 0x8d4: 0x1333, 0x8d5: 0x136f, 0x8d6: 0x1373, 0x8d7: 0x137b,
+       0x8d8: 0x137f, 0x8d9: 0x1383, 0x8da: 0x13af, 0x8db: 0x13b3, 0x8dc: 0x13bb, 0x8dd: 0x13cf,
+       0x8de: 0x13d3, 0x8df: 0x13ef, 0x8e0: 0x13f7, 0x8e1: 0x13fb, 0x8e2: 0x141f, 0x8e3: 0x143f,
+       0x8e4: 0x1453, 0x8e5: 0x1457, 0x8e6: 0x145f, 0x8e7: 0x148b, 0x8e8: 0x148f, 0x8e9: 0x149f,
+       0x8ea: 0x14c3, 0x8eb: 0x14cf, 0x8ec: 0x14df, 0x8ed: 0x14f7, 0x8ee: 0x14ff, 0x8ef: 0x1503,
+       0x8f0: 0x1507, 0x8f1: 0x150b, 0x8f2: 0x1517, 0x8f3: 0x151b, 0x8f4: 0x1523, 0x8f5: 0x153f,
+       0x8f6: 0x1543, 0x8f7: 0x1547, 0x8f8: 0x155f, 0x8f9: 0x1563, 0x8fa: 0x156b, 0x8fb: 0x157f,
+       0x8fc: 0x1583, 0x8fd: 0x1587, 0x8fe: 0x158f, 0x8ff: 0x1593,
+       // Block 0x24, offset 0x900
+       0x906: 0xa000, 0x90b: 0xa000,
+       0x90c: 0x3f08, 0x90d: 0xa000, 0x90e: 0x3f10, 0x90f: 0xa000, 0x910: 0x3f18, 0x911: 0xa000,
+       0x912: 0x3f20, 0x913: 0xa000, 0x914: 0x3f28, 0x915: 0xa000, 0x916: 0x3f30, 0x917: 0xa000,
+       0x918: 0x3f38, 0x919: 0xa000, 0x91a: 0x3f40, 0x91b: 0xa000, 0x91c: 0x3f48, 0x91d: 0xa000,
+       0x91e: 0x3f50, 0x91f: 0xa000, 0x920: 0x3f58, 0x921: 0xa000, 0x922: 0x3f60,
+       0x924: 0xa000, 0x925: 0x3f68, 0x926: 0xa000, 0x927: 0x3f70, 0x928: 0xa000, 0x929: 0x3f78,
+       0x92f: 0xa000,
+       0x930: 0x3f80, 0x931: 0x3f88, 0x932: 0xa000, 0x933: 0x3f90, 0x934: 0x3f98, 0x935: 0xa000,
+       0x936: 0x3fa0, 0x937: 0x3fa8, 0x938: 0xa000, 0x939: 0x3fb0, 0x93a: 0x3fb8, 0x93b: 0xa000,
+       0x93c: 0x3fc0, 0x93d: 0x3fc8,
+       // Block 0x25, offset 0x940
+       0x954: 0x3f00,
+       0x959: 0x9903, 0x95a: 0x9903, 0x95b: 0x4372, 0x95c: 0x4378, 0x95d: 0xa000,
+       0x95e: 0x3fd0, 0x95f: 0x26b4,
+       0x966: 0xa000,
+       0x96b: 0xa000, 0x96c: 0x3fe0, 0x96d: 0xa000, 0x96e: 0x3fe8, 0x96f: 0xa000,
+       0x970: 0x3ff0, 0x971: 0xa000, 0x972: 0x3ff8, 0x973: 0xa000, 0x974: 0x4000, 0x975: 0xa000,
+       0x976: 0x4008, 0x977: 0xa000, 0x978: 0x4010, 0x979: 0xa000, 0x97a: 0x4018, 0x97b: 0xa000,
+       0x97c: 0x4020, 0x97d: 0xa000, 0x97e: 0x4028, 0x97f: 0xa000,
+       // Block 0x26, offset 0x980
+       0x980: 0x4030, 0x981: 0xa000, 0x982: 0x4038, 0x984: 0xa000, 0x985: 0x4040,
+       0x986: 0xa000, 0x987: 0x4048, 0x988: 0xa000, 0x989: 0x4050,
+       0x98f: 0xa000, 0x990: 0x4058, 0x991: 0x4060,
+       0x992: 0xa000, 0x993: 0x4068, 0x994: 0x4070, 0x995: 0xa000, 0x996: 0x4078, 0x997: 0x4080,
+       0x998: 0xa000, 0x999: 0x4088, 0x99a: 0x4090, 0x99b: 0xa000, 0x99c: 0x4098, 0x99d: 0x40a0,
+       0x9af: 0xa000,
+       0x9b0: 0xa000, 0x9b1: 0xa000, 0x9b2: 0xa000, 0x9b4: 0x3fd8,
+       0x9b7: 0x40a8, 0x9b8: 0x40b0, 0x9b9: 0x40b8, 0x9ba: 0x40c0,
+       0x9bd: 0xa000, 0x9be: 0x40c8, 0x9bf: 0x26c9,
+       // Block 0x27, offset 0x9c0
+       0x9c0: 0x0367, 0x9c1: 0x032b, 0x9c2: 0x032f, 0x9c3: 0x0333, 0x9c4: 0x037b, 0x9c5: 0x0337,
+       0x9c6: 0x033b, 0x9c7: 0x033f, 0x9c8: 0x0343, 0x9c9: 0x0347, 0x9ca: 0x034b, 0x9cb: 0x034f,
+       0x9cc: 0x0353, 0x9cd: 0x0357, 0x9ce: 0x035b, 0x9cf: 0x42dc, 0x9d0: 0x42e1, 0x9d1: 0x42e6,
+       0x9d2: 0x42eb, 0x9d3: 0x42f0, 0x9d4: 0x42f5, 0x9d5: 0x42fa, 0x9d6: 0x42ff, 0x9d7: 0x4304,
+       0x9d8: 0x4309, 0x9d9: 0x430e, 0x9da: 0x4313, 0x9db: 0x4318, 0x9dc: 0x431d, 0x9dd: 0x4322,
+       0x9de: 0x4327, 0x9df: 0x432c, 0x9e0: 0x4331, 0x9e1: 0x4336, 0x9e2: 0x433b, 0x9e3: 0x4340,
+       0x9e4: 0x03c3, 0x9e5: 0x035f, 0x9e6: 0x0363, 0x9e7: 0x03e7, 0x9e8: 0x03eb, 0x9e9: 0x03ef,
+       0x9ea: 0x03f3, 0x9eb: 0x03f7, 0x9ec: 0x03fb, 0x9ed: 0x03ff, 0x9ee: 0x036b, 0x9ef: 0x0403,
+       0x9f0: 0x0407, 0x9f1: 0x036f, 0x9f2: 0x0373, 0x9f3: 0x0377, 0x9f4: 0x037f, 0x9f5: 0x0383,
+       0x9f6: 0x0387, 0x9f7: 0x038b, 0x9f8: 0x038f, 0x9f9: 0x0393, 0x9fa: 0x0397, 0x9fb: 0x039b,
+       0x9fc: 0x039f, 0x9fd: 0x03a3, 0x9fe: 0x03a7, 0x9ff: 0x03ab,
+       // Block 0x28, offset 0xa00
+       0xa00: 0x03af, 0xa01: 0x03b3, 0xa02: 0x040b, 0xa03: 0x040f, 0xa04: 0x03b7, 0xa05: 0x03bb,
+       0xa06: 0x03bf, 0xa07: 0x03c7, 0xa08: 0x03cb, 0xa09: 0x03cf, 0xa0a: 0x03d3, 0xa0b: 0x03d7,
+       0xa0c: 0x03db, 0xa0d: 0x03df, 0xa0e: 0x03e3,
+       0xa12: 0x06bf, 0xa13: 0x071b, 0xa14: 0x06cb, 0xa15: 0x097b, 0xa16: 0x06cf, 0xa17: 0x06e7,
+       0xa18: 0x06d3, 0xa19: 0x0f93, 0xa1a: 0x0707, 0xa1b: 0x06db, 0xa1c: 0x06c3, 0xa1d: 0x09ff,
+       0xa1e: 0x098f, 0xa1f: 0x072f,
+       // Block 0x29, offset 0xa40
+       0xa40: 0x2054, 0xa41: 0x205a, 0xa42: 0x2060, 0xa43: 0x2066, 0xa44: 0x206c, 0xa45: 0x2072,
+       0xa46: 0x2078, 0xa47: 0x207e, 0xa48: 0x2084, 0xa49: 0x208a, 0xa4a: 0x2090, 0xa4b: 0x2096,
+       0xa4c: 0x209c, 0xa4d: 0x20a2, 0xa4e: 0x2726, 0xa4f: 0x272f, 0xa50: 0x2738, 0xa51: 0x2741,
+       0xa52: 0x274a, 0xa53: 0x2753, 0xa54: 0x275c, 0xa55: 0x2765, 0xa56: 0x276e, 0xa57: 0x2780,
+       0xa58: 0x2789, 0xa59: 0x2792, 0xa5a: 0x279b, 0xa5b: 0x27a4, 0xa5c: 0x2777, 0xa5d: 0x2bac,
+       0xa5e: 0x2aed, 0xa60: 0x20a8, 0xa61: 0x20c0, 0xa62: 0x20b4, 0xa63: 0x2108,
+       0xa64: 0x20c6, 0xa65: 0x20e4, 0xa66: 0x20ae, 0xa67: 0x20de, 0xa68: 0x20ba, 0xa69: 0x20f0,
+       0xa6a: 0x2120, 0xa6b: 0x213e, 0xa6c: 0x2138, 0xa6d: 0x212c, 0xa6e: 0x217a, 0xa6f: 0x210e,
+       0xa70: 0x211a, 0xa71: 0x2132, 0xa72: 0x2126, 0xa73: 0x2150, 0xa74: 0x20fc, 0xa75: 0x2144,
+       0xa76: 0x216e, 0xa77: 0x2156, 0xa78: 0x20ea, 0xa79: 0x20cc, 0xa7a: 0x2102, 0xa7b: 0x2114,
+       0xa7c: 0x214a, 0xa7d: 0x20d2, 0xa7e: 0x2174, 0xa7f: 0x20f6,
+       // Block 0x2a, offset 0xa80
+       0xa80: 0x215c, 0xa81: 0x20d8, 0xa82: 0x2162, 0xa83: 0x2168, 0xa84: 0x092f, 0xa85: 0x0b03,
+       0xa86: 0x0ca7, 0xa87: 0x10c7,
+       0xa90: 0x1bc4, 0xa91: 0x18a9,
+       0xa92: 0x18ac, 0xa93: 0x18af, 0xa94: 0x18b2, 0xa95: 0x18b5, 0xa96: 0x18b8, 0xa97: 0x18bb,
+       0xa98: 0x18be, 0xa99: 0x18c1, 0xa9a: 0x18ca, 0xa9b: 0x18cd, 0xa9c: 0x18d0, 0xa9d: 0x18d3,
+       0xa9e: 0x18d6, 0xa9f: 0x18d9, 0xaa0: 0x0313, 0xaa1: 0x031b, 0xaa2: 0x031f, 0xaa3: 0x0327,
+       0xaa4: 0x032b, 0xaa5: 0x032f, 0xaa6: 0x0337, 0xaa7: 0x033f, 0xaa8: 0x0343, 0xaa9: 0x034b,
+       0xaaa: 0x034f, 0xaab: 0x0353, 0xaac: 0x0357, 0xaad: 0x035b, 0xaae: 0x2e18, 0xaaf: 0x2e20,
+       0xab0: 0x2e28, 0xab1: 0x2e30, 0xab2: 0x2e38, 0xab3: 0x2e40, 0xab4: 0x2e48, 0xab5: 0x2e50,
+       0xab6: 0x2e60, 0xab7: 0x2e68, 0xab8: 0x2e70, 0xab9: 0x2e78, 0xaba: 0x2e80, 0xabb: 0x2e88,
+       0xabc: 0x2ed3, 0xabd: 0x2e9b, 0xabe: 0x2e58,
+       // Block 0x2b, offset 0xac0
+       0xac0: 0x06bf, 0xac1: 0x071b, 0xac2: 0x06cb, 0xac3: 0x097b, 0xac4: 0x071f, 0xac5: 0x07af,
+       0xac6: 0x06c7, 0xac7: 0x07ab, 0xac8: 0x070b, 0xac9: 0x0887, 0xaca: 0x0d07, 0xacb: 0x0e8f,
+       0xacc: 0x0dd7, 0xacd: 0x0d1b, 0xace: 0x145f, 0xacf: 0x098b, 0xad0: 0x0ccf, 0xad1: 0x0d4b,
+       0xad2: 0x0d0b, 0xad3: 0x104b, 0xad4: 0x08fb, 0xad5: 0x0f03, 0xad6: 0x1387, 0xad7: 0x105f,
+       0xad8: 0x0843, 0xad9: 0x108f, 0xada: 0x0f9b, 0xadb: 0x0a17, 0xadc: 0x140f, 0xadd: 0x077f,
+       0xade: 0x08ab, 0xadf: 0x0df7, 0xae0: 0x1527, 0xae1: 0x0743, 0xae2: 0x07d3, 0xae3: 0x0d9b,
+       0xae4: 0x06cf, 0xae5: 0x06e7, 0xae6: 0x06d3, 0xae7: 0x0adb, 0xae8: 0x08ef, 0xae9: 0x087f,
+       0xaea: 0x0a57, 0xaeb: 0x0a4b, 0xaec: 0x0feb, 0xaed: 0x073f, 0xaee: 0x139b, 0xaef: 0x089b,
+       0xaf0: 0x09f3, 0xaf1: 0x18dc, 0xaf2: 0x18df, 0xaf3: 0x18e2, 0xaf4: 0x18e5, 0xaf5: 0x18ee,
+       0xaf6: 0x18f1, 0xaf7: 0x18f4, 0xaf8: 0x18f7, 0xaf9: 0x18fa, 0xafa: 0x18fd, 0xafb: 0x1900,
+       0xafc: 0x1903, 0xafd: 0x1906, 0xafe: 0x1909, 0xaff: 0x1912,
+       // Block 0x2c, offset 0xb00
+       0xb00: 0x1cc6, 0xb01: 0x1cd5, 0xb02: 0x1ce4, 0xb03: 0x1cf3, 0xb04: 0x1d02, 0xb05: 0x1d11,
+       0xb06: 0x1d20, 0xb07: 0x1d2f, 0xb08: 0x1d3e, 0xb09: 0x218c, 0xb0a: 0x219e, 0xb0b: 0x21b0,
+       0xb0c: 0x1954, 0xb0d: 0x1c04, 0xb0e: 0x19d2, 0xb0f: 0x1ba8, 0xb10: 0x04cb, 0xb11: 0x04d3,
+       0xb12: 0x04db, 0xb13: 0x04e3, 0xb14: 0x04eb, 0xb15: 0x04ef, 0xb16: 0x04f3, 0xb17: 0x04f7,
+       0xb18: 0x04fb, 0xb19: 0x04ff, 0xb1a: 0x0503, 0xb1b: 0x0507, 0xb1c: 0x050b, 0xb1d: 0x050f,
+       0xb1e: 0x0513, 0xb1f: 0x0517, 0xb20: 0x051b, 0xb21: 0x0523, 0xb22: 0x0527, 0xb23: 0x052b,
+       0xb24: 0x052f, 0xb25: 0x0533, 0xb26: 0x0537, 0xb27: 0x053b, 0xb28: 0x053f, 0xb29: 0x0543,
+       0xb2a: 0x0547, 0xb2b: 0x054b, 0xb2c: 0x054f, 0xb2d: 0x0553, 0xb2e: 0x0557, 0xb2f: 0x055b,
+       0xb30: 0x055f, 0xb31: 0x0563, 0xb32: 0x0567, 0xb33: 0x056f, 0xb34: 0x0577, 0xb35: 0x057f,
+       0xb36: 0x0583, 0xb37: 0x0587, 0xb38: 0x058b, 0xb39: 0x058f, 0xb3a: 0x0593, 0xb3b: 0x0597,
+       0xb3c: 0x059b, 0xb3d: 0x059f, 0xb3e: 0x05a3,
+       // Block 0x2d, offset 0xb40
+       0xb40: 0x2b0c, 0xb41: 0x29a8, 0xb42: 0x2b1c, 0xb43: 0x2880, 0xb44: 0x2ee4, 0xb45: 0x288a,
+       0xb46: 0x2894, 0xb47: 0x2f28, 0xb48: 0x29b5, 0xb49: 0x289e, 0xb4a: 0x28a8, 0xb4b: 0x28b2,
+       0xb4c: 0x29dc, 0xb4d: 0x29e9, 0xb4e: 0x29c2, 0xb4f: 0x29cf, 0xb50: 0x2ea9, 0xb51: 0x29f6,
+       0xb52: 0x2a03, 0xb53: 0x2bbe, 0xb54: 0x26bb, 0xb55: 0x2bd1, 0xb56: 0x2be4, 0xb57: 0x2b2c,
+       0xb58: 0x2a10, 0xb59: 0x2bf7, 0xb5a: 0x2c0a, 0xb5b: 0x2a1d, 0xb5c: 0x28bc, 0xb5d: 0x28c6,
+       0xb5e: 0x2eb7, 0xb5f: 0x2a2a, 0xb60: 0x2b3c, 0xb61: 0x2ef5, 0xb62: 0x28d0, 0xb63: 0x28da,
+       0xb64: 0x2a37, 0xb65: 0x28e4, 0xb66: 0x28ee, 0xb67: 0x26d0, 0xb68: 0x26d7, 0xb69: 0x28f8,
+       0xb6a: 0x2902, 0xb6b: 0x2c1d, 0xb6c: 0x2a44, 0xb6d: 0x2b4c, 0xb6e: 0x2c30, 0xb6f: 0x2a51,
+       0xb70: 0x2916, 0xb71: 0x290c, 0xb72: 0x2f3c, 0xb73: 0x2a5e, 0xb74: 0x2c43, 0xb75: 0x2920,
+       0xb76: 0x2b5c, 0xb77: 0x292a, 0xb78: 0x2a78, 0xb79: 0x2934, 0xb7a: 0x2a85, 0xb7b: 0x2f06,
+       0xb7c: 0x2a6b, 0xb7d: 0x2b6c, 0xb7e: 0x2a92, 0xb7f: 0x26de,
+       // Block 0x2e, offset 0xb80
+       0xb80: 0x2f17, 0xb81: 0x293e, 0xb82: 0x2948, 0xb83: 0x2a9f, 0xb84: 0x2952, 0xb85: 0x295c,
+       0xb86: 0x2966, 0xb87: 0x2b7c, 0xb88: 0x2aac, 0xb89: 0x26e5, 0xb8a: 0x2c56, 0xb8b: 0x2e90,
+       0xb8c: 0x2b8c, 0xb8d: 0x2ab9, 0xb8e: 0x2ec5, 0xb8f: 0x2970, 0xb90: 0x297a, 0xb91: 0x2ac6,
+       0xb92: 0x26ec, 0xb93: 0x2ad3, 0xb94: 0x2b9c, 0xb95: 0x26f3, 0xb96: 0x2c69, 0xb97: 0x2984,
+       0xb98: 0x1cb7, 0xb99: 0x1ccb, 0xb9a: 0x1cda, 0xb9b: 0x1ce9, 0xb9c: 0x1cf8, 0xb9d: 0x1d07,
+       0xb9e: 0x1d16, 0xb9f: 0x1d25, 0xba0: 0x1d34, 0xba1: 0x1d43, 0xba2: 0x2192, 0xba3: 0x21a4,
+       0xba4: 0x21b6, 0xba5: 0x21c2, 0xba6: 0x21ce, 0xba7: 0x21da, 0xba8: 0x21e6, 0xba9: 0x21f2,
+       0xbaa: 0x21fe, 0xbab: 0x220a, 0xbac: 0x2246, 0xbad: 0x2252, 0xbae: 0x225e, 0xbaf: 0x226a,
+       0xbb0: 0x2276, 0xbb1: 0x1c14, 0xbb2: 0x19c6, 0xbb3: 0x1936, 0xbb4: 0x1be4, 0xbb5: 0x1a47,
+       0xbb6: 0x1a56, 0xbb7: 0x19cc, 0xbb8: 0x1bfc, 0xbb9: 0x1c00, 0xbba: 0x1960, 0xbbb: 0x2701,
+       0xbbc: 0x270f, 0xbbd: 0x26fa, 0xbbe: 0x2708, 0xbbf: 0x2ae0,
+       // Block 0x2f, offset 0xbc0
+       0xbc0: 0x1a4a, 0xbc1: 0x1a32, 0xbc2: 0x1c60, 0xbc3: 0x1a1a, 0xbc4: 0x19f3, 0xbc5: 0x1969,
+       0xbc6: 0x1978, 0xbc7: 0x1948, 0xbc8: 0x1bf0, 0xbc9: 0x1d52, 0xbca: 0x1a4d, 0xbcb: 0x1a35,
+       0xbcc: 0x1c64, 0xbcd: 0x1c70, 0xbce: 0x1a26, 0xbcf: 0x19fc, 0xbd0: 0x1957, 0xbd1: 0x1c1c,
+       0xbd2: 0x1bb0, 0xbd3: 0x1b9c, 0xbd4: 0x1bcc, 0xbd5: 0x1c74, 0xbd6: 0x1a29, 0xbd7: 0x19c9,
+       0xbd8: 0x19ff, 0xbd9: 0x19de, 0xbda: 0x1a41, 0xbdb: 0x1c78, 0xbdc: 0x1a2c, 0xbdd: 0x19c0,
+       0xbde: 0x1a02, 0xbdf: 0x1c3c, 0xbe0: 0x1bf4, 0xbe1: 0x1a14, 0xbe2: 0x1c24, 0xbe3: 0x1c40,
+       0xbe4: 0x1bf8, 0xbe5: 0x1a17, 0xbe6: 0x1c28, 0xbe7: 0x22e8, 0xbe8: 0x22fc, 0xbe9: 0x1996,
+       0xbea: 0x1c20, 0xbeb: 0x1bb4, 0xbec: 0x1ba0, 0xbed: 0x1c48, 0xbee: 0x2716, 0xbef: 0x27ad,
+       0xbf0: 0x1a59, 0xbf1: 0x1a44, 0xbf2: 0x1c7c, 0xbf3: 0x1a2f, 0xbf4: 0x1a50, 0xbf5: 0x1a38,
+       0xbf6: 0x1c68, 0xbf7: 0x1a1d, 0xbf8: 0x19f6, 0xbf9: 0x1981, 0xbfa: 0x1a53, 0xbfb: 0x1a3b,
+       0xbfc: 0x1c6c, 0xbfd: 0x1a20, 0xbfe: 0x19f9, 0xbff: 0x1984,
+       // Block 0x30, offset 0xc00
+       0xc00: 0x1c2c, 0xc01: 0x1bb8, 0xc02: 0x1d4d, 0xc03: 0x1939, 0xc04: 0x19ba, 0xc05: 0x19bd,
+       0xc06: 0x22f5, 0xc07: 0x1b94, 0xc08: 0x19c3, 0xc09: 0x194b, 0xc0a: 0x19e1, 0xc0b: 0x194e,
+       0xc0c: 0x19ea, 0xc0d: 0x196c, 0xc0e: 0x196f, 0xc0f: 0x1a05, 0xc10: 0x1a0b, 0xc11: 0x1a0e,
+       0xc12: 0x1c30, 0xc13: 0x1a11, 0xc14: 0x1a23, 0xc15: 0x1c38, 0xc16: 0x1c44, 0xc17: 0x1990,
+       0xc18: 0x1d57, 0xc19: 0x1bbc, 0xc1a: 0x1993, 0xc1b: 0x1a5c, 0xc1c: 0x19a5, 0xc1d: 0x19b4,
+       0xc1e: 0x22e2, 0xc1f: 0x22dc, 0xc20: 0x1cc1, 0xc21: 0x1cd0, 0xc22: 0x1cdf, 0xc23: 0x1cee,
+       0xc24: 0x1cfd, 0xc25: 0x1d0c, 0xc26: 0x1d1b, 0xc27: 0x1d2a, 0xc28: 0x1d39, 0xc29: 0x2186,
+       0xc2a: 0x2198, 0xc2b: 0x21aa, 0xc2c: 0x21bc, 0xc2d: 0x21c8, 0xc2e: 0x21d4, 0xc2f: 0x21e0,
+       0xc30: 0x21ec, 0xc31: 0x21f8, 0xc32: 0x2204, 0xc33: 0x2240, 0xc34: 0x224c, 0xc35: 0x2258,
+       0xc36: 0x2264, 0xc37: 0x2270, 0xc38: 0x227c, 0xc39: 0x2282, 0xc3a: 0x2288, 0xc3b: 0x228e,
+       0xc3c: 0x2294, 0xc3d: 0x22a6, 0xc3e: 0x22ac, 0xc3f: 0x1c10,
+       // Block 0x31, offset 0xc40
+       0xc40: 0x1377, 0xc41: 0x0cfb, 0xc42: 0x13d3, 0xc43: 0x139f, 0xc44: 0x0e57, 0xc45: 0x06eb,
+       0xc46: 0x08df, 0xc47: 0x162b, 0xc48: 0x162b, 0xc49: 0x0a0b, 0xc4a: 0x145f, 0xc4b: 0x0943,
+       0xc4c: 0x0a07, 0xc4d: 0x0bef, 0xc4e: 0x0fcf, 0xc4f: 0x115f, 0xc50: 0x1297, 0xc51: 0x12d3,
+       0xc52: 0x1307, 0xc53: 0x141b, 0xc54: 0x0d73, 0xc55: 0x0dff, 0xc56: 0x0eab, 0xc57: 0x0f43,
+       0xc58: 0x125f, 0xc59: 0x1447, 0xc5a: 0x1573, 0xc5b: 0x070f, 0xc5c: 0x08b3, 0xc5d: 0x0d87,
+       0xc5e: 0x0ecf, 0xc5f: 0x1293, 0xc60: 0x15c3, 0xc61: 0x0ab3, 0xc62: 0x0e77, 0xc63: 0x1283,
+       0xc64: 0x1317, 0xc65: 0x0c23, 0xc66: 0x11bb, 0xc67: 0x12df, 0xc68: 0x0b1f, 0xc69: 0x0d0f,
+       0xc6a: 0x0e17, 0xc6b: 0x0f1b, 0xc6c: 0x1427, 0xc6d: 0x074f, 0xc6e: 0x07e7, 0xc6f: 0x0853,
+       0xc70: 0x0c8b, 0xc71: 0x0d7f, 0xc72: 0x0ecb, 0xc73: 0x0fef, 0xc74: 0x1177, 0xc75: 0x128b,
+       0xc76: 0x12a3, 0xc77: 0x13c7, 0xc78: 0x14ef, 0xc79: 0x15a3, 0xc7a: 0x15bf, 0xc7b: 0x102b,
+       0xc7c: 0x106b, 0xc7d: 0x1123, 0xc7e: 0x1243, 0xc7f: 0x147b,
+       // Block 0x32, offset 0xc80
+       0xc80: 0x15cb, 0xc81: 0x134b, 0xc82: 0x09c7, 0xc83: 0x0b3b, 0xc84: 0x10db, 0xc85: 0x119b,
+       0xc86: 0x0eff, 0xc87: 0x1033, 0xc88: 0x1397, 0xc89: 0x14e7, 0xc8a: 0x09c3, 0xc8b: 0x0a8f,
+       0xc8c: 0x0d77, 0xc8d: 0x0e2b, 0xc8e: 0x0e5f, 0xc8f: 0x1113, 0xc90: 0x113b, 0xc91: 0x14a7,
+       0xc92: 0x084f, 0xc93: 0x11a7, 0xc94: 0x07f3, 0xc95: 0x07ef, 0xc96: 0x1097, 0xc97: 0x1127,
+       0xc98: 0x125b, 0xc99: 0x14af, 0xc9a: 0x1367, 0xc9b: 0x0c27, 0xc9c: 0x0d73, 0xc9d: 0x1357,
+       0xc9e: 0x06f7, 0xc9f: 0x0a63, 0xca0: 0x0b93, 0xca1: 0x0f2f, 0xca2: 0x0faf, 0xca3: 0x0873,
+       0xca4: 0x103b, 0xca5: 0x075f, 0xca6: 0x0b77, 0xca7: 0x06d7, 0xca8: 0x0deb, 0xca9: 0x0ca3,
+       0xcaa: 0x110f, 0xcab: 0x08c7, 0xcac: 0x09b3, 0xcad: 0x0ffb, 0xcae: 0x1263, 0xcaf: 0x133b,
+       0xcb0: 0x0db7, 0xcb1: 0x13f7, 0xcb2: 0x0de3, 0xcb3: 0x0c37, 0xcb4: 0x121b, 0xcb5: 0x0c57,
+       0xcb6: 0x0fab, 0xcb7: 0x072b, 0xcb8: 0x07a7, 0xcb9: 0x07eb, 0xcba: 0x0d53, 0xcbb: 0x10fb,
+       0xcbc: 0x11f3, 0xcbd: 0x1347, 0xcbe: 0x145b, 0xcbf: 0x085b,
+       // Block 0x33, offset 0xcc0
+       0xcc0: 0x090f, 0xcc1: 0x0a17, 0xcc2: 0x0b2f, 0xcc3: 0x0cbf, 0xcc4: 0x0e7b, 0xcc5: 0x103f,
+       0xcc6: 0x1497, 0xcc7: 0x157b, 0xcc8: 0x15cf, 0xcc9: 0x15e7, 0xcca: 0x0837, 0xccb: 0x0cf3,
+       0xccc: 0x0da3, 0xccd: 0x13eb, 0xcce: 0x0afb, 0xccf: 0x0bd7, 0xcd0: 0x0bf3, 0xcd1: 0x0c83,
+       0xcd2: 0x0e6b, 0xcd3: 0x0eb7, 0xcd4: 0x0f67, 0xcd5: 0x108b, 0xcd6: 0x112f, 0xcd7: 0x1193,
+       0xcd8: 0x13db, 0xcd9: 0x126b, 0xcda: 0x1403, 0xcdb: 0x147f, 0xcdc: 0x080f, 0xcdd: 0x083b,
+       0xcde: 0x0923, 0xcdf: 0x0ea7, 0xce0: 0x12f3, 0xce1: 0x133b, 0xce2: 0x0b1b, 0xce3: 0x0b8b,
+       0xce4: 0x0c4f, 0xce5: 0x0daf, 0xce6: 0x10d7, 0xce7: 0x0f23, 0xce8: 0x073b, 0xce9: 0x097f,
+       0xcea: 0x0a63, 0xceb: 0x0ac7, 0xcec: 0x0b97, 0xced: 0x0f3f, 0xcee: 0x0f5b, 0xcef: 0x116b,
+       0xcf0: 0x118b, 0xcf1: 0x1463, 0xcf2: 0x14e3, 0xcf3: 0x14f3, 0xcf4: 0x152f, 0xcf5: 0x0753,
+       0xcf6: 0x107f, 0xcf7: 0x144f, 0xcf8: 0x14cb, 0xcf9: 0x0baf, 0xcfa: 0x0717, 0xcfb: 0x0777,
+       0xcfc: 0x0a67, 0xcfd: 0x0a87, 0xcfe: 0x0caf, 0xcff: 0x0d73,
+       // Block 0x34, offset 0xd00
+       0xd00: 0x0ec3, 0xd01: 0x0fcb, 0xd02: 0x1277, 0xd03: 0x1417, 0xd04: 0x1623, 0xd05: 0x0ce3,
+       0xd06: 0x14a3, 0xd07: 0x0833, 0xd08: 0x0d2f, 0xd09: 0x0d3b, 0xd0a: 0x0e0f, 0xd0b: 0x0e47,
+       0xd0c: 0x0f4b, 0xd0d: 0x0fa7, 0xd0e: 0x1027, 0xd0f: 0x110b, 0xd10: 0x153b, 0xd11: 0x07af,
+       0xd12: 0x0c03, 0xd13: 0x14b3, 0xd14: 0x0767, 0xd15: 0x0aab, 0xd16: 0x0e2f, 0xd17: 0x13df,
+       0xd18: 0x0b67, 0xd19: 0x0bb7, 0xd1a: 0x0d43, 0xd1b: 0x0f2f, 0xd1c: 0x14bb, 0xd1d: 0x0817,
+       0xd1e: 0x08ff, 0xd1f: 0x0a97, 0xd20: 0x0cd3, 0xd21: 0x0d1f, 0xd22: 0x0d5f, 0xd23: 0x0df3,
+       0xd24: 0x0f47, 0xd25: 0x0fbb, 0xd26: 0x1157, 0xd27: 0x12f7, 0xd28: 0x1303, 0xd29: 0x1457,
+       0xd2a: 0x14d7, 0xd2b: 0x0883, 0xd2c: 0x0e4b, 0xd2d: 0x0903, 0xd2e: 0x0ec7, 0xd2f: 0x0f6b,
+       0xd30: 0x1287, 0xd31: 0x14bf, 0xd32: 0x15ab, 0xd33: 0x15d3, 0xd34: 0x0d37, 0xd35: 0x0e27,
+       0xd36: 0x11c3, 0xd37: 0x10b7, 0xd38: 0x10c3, 0xd39: 0x10e7, 0xd3a: 0x0f17, 0xd3b: 0x0e9f,
+       0xd3c: 0x1363, 0xd3d: 0x0733, 0xd3e: 0x122b, 0xd3f: 0x081b,
+       // Block 0x35, offset 0xd40
+       0xd40: 0x080b, 0xd41: 0x0b0b, 0xd42: 0x0c2b, 0xd43: 0x10f3, 0xd44: 0x0a53, 0xd45: 0x0e03,
+       0xd46: 0x0cef, 0xd47: 0x13e7, 0xd48: 0x12e7, 0xd49: 0x14ab, 0xd4a: 0x1323, 0xd4b: 0x0b27,
+       0xd4c: 0x0787, 0xd4d: 0x095b, 0xd50: 0x09af,
+       0xd52: 0x0cdf, 0xd55: 0x07f7, 0xd56: 0x0f1f, 0xd57: 0x0fe3,
+       0xd58: 0x1047, 0xd59: 0x1063, 0xd5a: 0x1067, 0xd5b: 0x107b, 0xd5c: 0x14fb, 0xd5d: 0x10eb,
+       0xd5e: 0x116f, 0xd60: 0x128f, 0xd62: 0x1353,
+       0xd65: 0x1407, 0xd66: 0x1433,
+       0xd6a: 0x154f, 0xd6b: 0x1553, 0xd6c: 0x1557, 0xd6d: 0x15bb, 0xd6e: 0x142b, 0xd6f: 0x14c7,
+       0xd70: 0x0757, 0xd71: 0x077b, 0xd72: 0x078f, 0xd73: 0x084b, 0xd74: 0x0857, 0xd75: 0x0897,
+       0xd76: 0x094b, 0xd77: 0x0967, 0xd78: 0x096f, 0xd79: 0x09ab, 0xd7a: 0x09b7, 0xd7b: 0x0a93,
+       0xd7c: 0x0a9b, 0xd7d: 0x0ba3, 0xd7e: 0x0bcb, 0xd7f: 0x0bd3,
+       // Block 0x36, offset 0xd80
+       0xd80: 0x0beb, 0xd81: 0x0c97, 0xd82: 0x0cc7, 0xd83: 0x0ce7, 0xd84: 0x0d57, 0xd85: 0x0e1b,
+       0xd86: 0x0e37, 0xd87: 0x0e67, 0xd88: 0x0ebb, 0xd89: 0x0edb, 0xd8a: 0x0f4f, 0xd8b: 0x102f,
+       0xd8c: 0x104b, 0xd8d: 0x1053, 0xd8e: 0x104f, 0xd8f: 0x1057, 0xd90: 0x105b, 0xd91: 0x105f,
+       0xd92: 0x1073, 0xd93: 0x1077, 0xd94: 0x109b, 0xd95: 0x10af, 0xd96: 0x10cb, 0xd97: 0x112f,
+       0xd98: 0x1137, 0xd99: 0x113f, 0xd9a: 0x1153, 0xd9b: 0x117b, 0xd9c: 0x11cb, 0xd9d: 0x11ff,
+       0xd9e: 0x11ff, 0xd9f: 0x1267, 0xda0: 0x130f, 0xda1: 0x1327, 0xda2: 0x135b, 0xda3: 0x135f,
+       0xda4: 0x13a3, 0xda5: 0x13a7, 0xda6: 0x13ff, 0xda7: 0x1407, 0xda8: 0x14db, 0xda9: 0x151f,
+       0xdaa: 0x1537, 0xdab: 0x0b9b, 0xdac: 0x171e, 0xdad: 0x11e3,
+       0xdb0: 0x06df, 0xdb1: 0x07e3, 0xdb2: 0x07a3, 0xdb3: 0x074b, 0xdb4: 0x078b, 0xdb5: 0x07b7,
+       0xdb6: 0x0847, 0xdb7: 0x0863, 0xdb8: 0x094b, 0xdb9: 0x0937, 0xdba: 0x0947, 0xdbb: 0x0963,
+       0xdbc: 0x09af, 0xdbd: 0x09bf, 0xdbe: 0x0a03, 0xdbf: 0x0a0f,
+       // Block 0x37, offset 0xdc0
+       0xdc0: 0x0a2b, 0xdc1: 0x0a3b, 0xdc2: 0x0b23, 0xdc3: 0x0b2b, 0xdc4: 0x0b5b, 0xdc5: 0x0b7b,
+       0xdc6: 0x0bab, 0xdc7: 0x0bc3, 0xdc8: 0x0bb3, 0xdc9: 0x0bd3, 0xdca: 0x0bc7, 0xdcb: 0x0beb,
+       0xdcc: 0x0c07, 0xdcd: 0x0c5f, 0xdce: 0x0c6b, 0xdcf: 0x0c73, 0xdd0: 0x0c9b, 0xdd1: 0x0cdf,
+       0xdd2: 0x0d0f, 0xdd3: 0x0d13, 0xdd4: 0x0d27, 0xdd5: 0x0da7, 0xdd6: 0x0db7, 0xdd7: 0x0e0f,
+       0xdd8: 0x0e5b, 0xdd9: 0x0e53, 0xdda: 0x0e67, 0xddb: 0x0e83, 0xddc: 0x0ebb, 0xddd: 0x1013,
+       0xdde: 0x0edf, 0xddf: 0x0f13, 0xde0: 0x0f1f, 0xde1: 0x0f5f, 0xde2: 0x0f7b, 0xde3: 0x0f9f,
+       0xde4: 0x0fc3, 0xde5: 0x0fc7, 0xde6: 0x0fe3, 0xde7: 0x0fe7, 0xde8: 0x0ff7, 0xde9: 0x100b,
+       0xdea: 0x1007, 0xdeb: 0x1037, 0xdec: 0x10b3, 0xded: 0x10cb, 0xdee: 0x10e3, 0xdef: 0x111b,
+       0xdf0: 0x112f, 0xdf1: 0x114b, 0xdf2: 0x117b, 0xdf3: 0x122f, 0xdf4: 0x1257, 0xdf5: 0x12cb,
+       0xdf6: 0x1313, 0xdf7: 0x131f, 0xdf8: 0x1327, 0xdf9: 0x133f, 0xdfa: 0x1353, 0xdfb: 0x1343,
+       0xdfc: 0x135b, 0xdfd: 0x1357, 0xdfe: 0x134f, 0xdff: 0x135f,
+       // Block 0x38, offset 0xe00
+       0xe00: 0x136b, 0xe01: 0x13a7, 0xe02: 0x13e3, 0xe03: 0x1413, 0xe04: 0x144b, 0xe05: 0x146b,
+       0xe06: 0x14b7, 0xe07: 0x14db, 0xe08: 0x14fb, 0xe09: 0x150f, 0xe0a: 0x151f, 0xe0b: 0x152b,
+       0xe0c: 0x1537, 0xe0d: 0x158b, 0xe0e: 0x162b, 0xe0f: 0x16b5, 0xe10: 0x16b0, 0xe11: 0x16e2,
+       0xe12: 0x0607, 0xe13: 0x062f, 0xe14: 0x0633, 0xe15: 0x1764, 0xe16: 0x1791, 0xe17: 0x1809,
+       0xe18: 0x1617, 0xe19: 0x1627,
+       // Block 0x39, offset 0xe40
+       0xe40: 0x19d5, 0xe41: 0x19d8, 0xe42: 0x19db, 0xe43: 0x1c08, 0xe44: 0x1c0c, 0xe45: 0x1a5f,
+       0xe46: 0x1a5f,
+       0xe53: 0x1d75, 0xe54: 0x1d66, 0xe55: 0x1d6b, 0xe56: 0x1d7a, 0xe57: 0x1d70,
+       0xe5d: 0x4426,
+       0xe5e: 0x8115, 0xe5f: 0x4498, 0xe60: 0x022d, 0xe61: 0x0215, 0xe62: 0x021e, 0xe63: 0x0221,
+       0xe64: 0x0224, 0xe65: 0x0227, 0xe66: 0x022a, 0xe67: 0x0230, 0xe68: 0x0233, 0xe69: 0x0017,
+       0xe6a: 0x4486, 0xe6b: 0x448c, 0xe6c: 0x458a, 0xe6d: 0x4592, 0xe6e: 0x43de, 0xe6f: 0x43e4,
+       0xe70: 0x43ea, 0xe71: 0x43f0, 0xe72: 0x43fc, 0xe73: 0x4402, 0xe74: 0x4408, 0xe75: 0x4414,
+       0xe76: 0x441a, 0xe78: 0x4420, 0xe79: 0x442c, 0xe7a: 0x4432, 0xe7b: 0x4438,
+       0xe7c: 0x4444, 0xe7e: 0x444a,
+       // Block 0x3a, offset 0xe80
+       0xe80: 0x4450, 0xe81: 0x4456, 0xe83: 0x445c, 0xe84: 0x4462,
+       0xe86: 0x446e, 0xe87: 0x4474, 0xe88: 0x447a, 0xe89: 0x4480, 0xe8a: 0x4492, 0xe8b: 0x440e,
+       0xe8c: 0x43f6, 0xe8d: 0x443e, 0xe8e: 0x4468, 0xe8f: 0x1d7f, 0xe90: 0x0299, 0xe91: 0x0299,
+       0xe92: 0x02a2, 0xe93: 0x02a2, 0xe94: 0x02a2, 0xe95: 0x02a2, 0xe96: 0x02a5, 0xe97: 0x02a5,
+       0xe98: 0x02a5, 0xe99: 0x02a5, 0xe9a: 0x02ab, 0xe9b: 0x02ab, 0xe9c: 0x02ab, 0xe9d: 0x02ab,
+       0xe9e: 0x029f, 0xe9f: 0x029f, 0xea0: 0x029f, 0xea1: 0x029f, 0xea2: 0x02a8, 0xea3: 0x02a8,
+       0xea4: 0x02a8, 0xea5: 0x02a8, 0xea6: 0x029c, 0xea7: 0x029c, 0xea8: 0x029c, 0xea9: 0x029c,
+       0xeaa: 0x02cf, 0xeab: 0x02cf, 0xeac: 0x02cf, 0xead: 0x02cf, 0xeae: 0x02d2, 0xeaf: 0x02d2,
+       0xeb0: 0x02d2, 0xeb1: 0x02d2, 0xeb2: 0x02b1, 0xeb3: 0x02b1, 0xeb4: 0x02b1, 0xeb5: 0x02b1,
+       0xeb6: 0x02ae, 0xeb7: 0x02ae, 0xeb8: 0x02ae, 0xeb9: 0x02ae, 0xeba: 0x02b4, 0xebb: 0x02b4,
+       0xebc: 0x02b4, 0xebd: 0x02b4, 0xebe: 0x02b7, 0xebf: 0x02b7,
+       // Block 0x3b, offset 0xec0
+       0xec0: 0x02b7, 0xec1: 0x02b7, 0xec2: 0x02c0, 0xec3: 0x02c0, 0xec4: 0x02bd, 0xec5: 0x02bd,
+       0xec6: 0x02c3, 0xec7: 0x02c3, 0xec8: 0x02ba, 0xec9: 0x02ba, 0xeca: 0x02c9, 0xecb: 0x02c9,
+       0xecc: 0x02c6, 0xecd: 0x02c6, 0xece: 0x02d5, 0xecf: 0x02d5, 0xed0: 0x02d5, 0xed1: 0x02d5,
+       0xed2: 0x02db, 0xed3: 0x02db, 0xed4: 0x02db, 0xed5: 0x02db, 0xed6: 0x02e1, 0xed7: 0x02e1,
+       0xed8: 0x02e1, 0xed9: 0x02e1, 0xeda: 0x02de, 0xedb: 0x02de, 0xedc: 0x02de, 0xedd: 0x02de,
+       0xede: 0x02e4, 0xedf: 0x02e4, 0xee0: 0x02e7, 0xee1: 0x02e7, 0xee2: 0x02e7, 0xee3: 0x02e7,
+       0xee4: 0x4504, 0xee5: 0x4504, 0xee6: 0x02ed, 0xee7: 0x02ed, 0xee8: 0x02ed, 0xee9: 0x02ed,
+       0xeea: 0x02ea, 0xeeb: 0x02ea, 0xeec: 0x02ea, 0xeed: 0x02ea, 0xeee: 0x0308, 0xeef: 0x0308,
+       0xef0: 0x44fe, 0xef1: 0x44fe,
+       // Block 0x3c, offset 0xf00
+       0xf13: 0x02d8, 0xf14: 0x02d8, 0xf15: 0x02d8, 0xf16: 0x02d8, 0xf17: 0x02f6,
+       0xf18: 0x02f6, 0xf19: 0x02f3, 0xf1a: 0x02f3, 0xf1b: 0x02f9, 0xf1c: 0x02f9, 0xf1d: 0x204f,
+       0xf1e: 0x02ff, 0xf1f: 0x02ff, 0xf20: 0x02f0, 0xf21: 0x02f0, 0xf22: 0x02fc, 0xf23: 0x02fc,
+       0xf24: 0x0305, 0xf25: 0x0305, 0xf26: 0x0305, 0xf27: 0x0305, 0xf28: 0x028d, 0xf29: 0x028d,
+       0xf2a: 0x25aa, 0xf2b: 0x25aa, 0xf2c: 0x261a, 0xf2d: 0x261a, 0xf2e: 0x25e9, 0xf2f: 0x25e9,
+       0xf30: 0x2605, 0xf31: 0x2605, 0xf32: 0x25fe, 0xf33: 0x25fe, 0xf34: 0x260c, 0xf35: 0x260c,
+       0xf36: 0x2613, 0xf37: 0x2613, 0xf38: 0x2613, 0xf39: 0x25f0, 0xf3a: 0x25f0, 0xf3b: 0x25f0,
+       0xf3c: 0x0302, 0xf3d: 0x0302, 0xf3e: 0x0302, 0xf3f: 0x0302,
+       // Block 0x3d, offset 0xf40
+       0xf40: 0x25b1, 0xf41: 0x25b8, 0xf42: 0x25d4, 0xf43: 0x25f0, 0xf44: 0x25f7, 0xf45: 0x1d89,
+       0xf46: 0x1d8e, 0xf47: 0x1d93, 0xf48: 0x1da2, 0xf49: 0x1db1, 0xf4a: 0x1db6, 0xf4b: 0x1dbb,
+       0xf4c: 0x1dc0, 0xf4d: 0x1dc5, 0xf4e: 0x1dd4, 0xf4f: 0x1de3, 0xf50: 0x1de8, 0xf51: 0x1ded,
+       0xf52: 0x1dfc, 0xf53: 0x1e0b, 0xf54: 0x1e10, 0xf55: 0x1e15, 0xf56: 0x1e1a, 0xf57: 0x1e29,
+       0xf58: 0x1e2e, 0xf59: 0x1e3d, 0xf5a: 0x1e42, 0xf5b: 0x1e47, 0xf5c: 0x1e56, 0xf5d: 0x1e5b,
+       0xf5e: 0x1e60, 0xf5f: 0x1e6a, 0xf60: 0x1ea6, 0xf61: 0x1eb5, 0xf62: 0x1ec4, 0xf63: 0x1ec9,
+       0xf64: 0x1ece, 0xf65: 0x1ed8, 0xf66: 0x1ee7, 0xf67: 0x1eec, 0xf68: 0x1efb, 0xf69: 0x1f00,
+       0xf6a: 0x1f05, 0xf6b: 0x1f14, 0xf6c: 0x1f19, 0xf6d: 0x1f28, 0xf6e: 0x1f2d, 0xf6f: 0x1f32,
+       0xf70: 0x1f37, 0xf71: 0x1f3c, 0xf72: 0x1f41, 0xf73: 0x1f46, 0xf74: 0x1f4b, 0xf75: 0x1f50,
+       0xf76: 0x1f55, 0xf77: 0x1f5a, 0xf78: 0x1f5f, 0xf79: 0x1f64, 0xf7a: 0x1f69, 0xf7b: 0x1f6e,
+       0xf7c: 0x1f73, 0xf7d: 0x1f78, 0xf7e: 0x1f7d, 0xf7f: 0x1f87,
+       // Block 0x3e, offset 0xf80
+       0xf80: 0x1f8c, 0xf81: 0x1f91, 0xf82: 0x1f96, 0xf83: 0x1fa0, 0xf84: 0x1fa5, 0xf85: 0x1faf,
+       0xf86: 0x1fb4, 0xf87: 0x1fb9, 0xf88: 0x1fbe, 0xf89: 0x1fc3, 0xf8a: 0x1fc8, 0xf8b: 0x1fcd,
+       0xf8c: 0x1fd2, 0xf8d: 0x1fd7, 0xf8e: 0x1fe6, 0xf8f: 0x1ff5, 0xf90: 0x1ffa, 0xf91: 0x1fff,
+       0xf92: 0x2004, 0xf93: 0x2009, 0xf94: 0x200e, 0xf95: 0x2018, 0xf96: 0x201d, 0xf97: 0x2022,
+       0xf98: 0x2031, 0xf99: 0x2040, 0xf9a: 0x2045, 0xf9b: 0x44b6, 0xf9c: 0x44bc, 0xf9d: 0x44f2,
+       0xf9e: 0x4549, 0xf9f: 0x4550, 0xfa0: 0x4557, 0xfa1: 0x455e, 0xfa2: 0x4565, 0xfa3: 0x456c,
+       0xfa4: 0x25c6, 0xfa5: 0x25cd, 0xfa6: 0x25d4, 0xfa7: 0x25db, 0xfa8: 0x25f0, 0xfa9: 0x25f7,
+       0xfaa: 0x1d98, 0xfab: 0x1d9d, 0xfac: 0x1da2, 0xfad: 0x1da7, 0xfae: 0x1db1, 0xfaf: 0x1db6,
+       0xfb0: 0x1dca, 0xfb1: 0x1dcf, 0xfb2: 0x1dd4, 0xfb3: 0x1dd9, 0xfb4: 0x1de3, 0xfb5: 0x1de8,
+       0xfb6: 0x1df2, 0xfb7: 0x1df7, 0xfb8: 0x1dfc, 0xfb9: 0x1e01, 0xfba: 0x1e0b, 0xfbb: 0x1e10,
+       0xfbc: 0x1f3c, 0xfbd: 0x1f41, 0xfbe: 0x1f50, 0xfbf: 0x1f55,
+       // Block 0x3f, offset 0xfc0
+       0xfc0: 0x1f5a, 0xfc1: 0x1f6e, 0xfc2: 0x1f73, 0xfc3: 0x1f78, 0xfc4: 0x1f7d, 0xfc5: 0x1f96,
+       0xfc6: 0x1fa0, 0xfc7: 0x1fa5, 0xfc8: 0x1faa, 0xfc9: 0x1fbe, 0xfca: 0x1fdc, 0xfcb: 0x1fe1,
+       0xfcc: 0x1fe6, 0xfcd: 0x1feb, 0xfce: 0x1ff5, 0xfcf: 0x1ffa, 0xfd0: 0x44f2, 0xfd1: 0x2027,
+       0xfd2: 0x202c, 0xfd3: 0x2031, 0xfd4: 0x2036, 0xfd5: 0x2040, 0xfd6: 0x2045, 0xfd7: 0x25b1,
+       0xfd8: 0x25b8, 0xfd9: 0x25bf, 0xfda: 0x25d4, 0xfdb: 0x25e2, 0xfdc: 0x1d89, 0xfdd: 0x1d8e,
+       0xfde: 0x1d93, 0xfdf: 0x1da2, 0xfe0: 0x1dac, 0xfe1: 0x1dbb, 0xfe2: 0x1dc0, 0xfe3: 0x1dc5,
+       0xfe4: 0x1dd4, 0xfe5: 0x1dde, 0xfe6: 0x1dfc, 0xfe7: 0x1e15, 0xfe8: 0x1e1a, 0xfe9: 0x1e29,
+       0xfea: 0x1e2e, 0xfeb: 0x1e3d, 0xfec: 0x1e47, 0xfed: 0x1e56, 0xfee: 0x1e5b, 0xfef: 0x1e60,
+       0xff0: 0x1e6a, 0xff1: 0x1ea6, 0xff2: 0x1eab, 0xff3: 0x1eb5, 0xff4: 0x1ec4, 0xff5: 0x1ec9,
+       0xff6: 0x1ece, 0xff7: 0x1ed8, 0xff8: 0x1ee7, 0xff9: 0x1efb, 0xffa: 0x1f00, 0xffb: 0x1f05,
+       0xffc: 0x1f14, 0xffd: 0x1f19, 0xffe: 0x1f28, 0xfff: 0x1f2d,
+       // Block 0x40, offset 0x1000
+       0x1000: 0x1f32, 0x1001: 0x1f37, 0x1002: 0x1f46, 0x1003: 0x1f4b, 0x1004: 0x1f5f, 0x1005: 0x1f64,
+       0x1006: 0x1f69, 0x1007: 0x1f6e, 0x1008: 0x1f73, 0x1009: 0x1f87, 0x100a: 0x1f8c, 0x100b: 0x1f91,
+       0x100c: 0x1f96, 0x100d: 0x1f9b, 0x100e: 0x1faf, 0x100f: 0x1fb4, 0x1010: 0x1fb9, 0x1011: 0x1fbe,
+       0x1012: 0x1fcd, 0x1013: 0x1fd2, 0x1014: 0x1fd7, 0x1015: 0x1fe6, 0x1016: 0x1ff0, 0x1017: 0x1fff,
+       0x1018: 0x2004, 0x1019: 0x44e6, 0x101a: 0x2018, 0x101b: 0x201d, 0x101c: 0x2022, 0x101d: 0x2031,
+       0x101e: 0x203b, 0x101f: 0x25d4, 0x1020: 0x25e2, 0x1021: 0x1da2, 0x1022: 0x1dac, 0x1023: 0x1dd4,
+       0x1024: 0x1dde, 0x1025: 0x1dfc, 0x1026: 0x1e06, 0x1027: 0x1e6a, 0x1028: 0x1e6f, 0x1029: 0x1e92,
+       0x102a: 0x1e97, 0x102b: 0x1f6e, 0x102c: 0x1f73, 0x102d: 0x1f96, 0x102e: 0x1fe6, 0x102f: 0x1ff0,
+       0x1030: 0x2031, 0x1031: 0x203b, 0x1032: 0x459a, 0x1033: 0x45a2, 0x1034: 0x45aa, 0x1035: 0x1ef1,
+       0x1036: 0x1ef6, 0x1037: 0x1f0a, 0x1038: 0x1f0f, 0x1039: 0x1f1e, 0x103a: 0x1f23, 0x103b: 0x1e74,
+       0x103c: 0x1e79, 0x103d: 0x1e9c, 0x103e: 0x1ea1, 0x103f: 0x1e33,
+       // Block 0x41, offset 0x1040
+       0x1040: 0x1e38, 0x1041: 0x1e1f, 0x1042: 0x1e24, 0x1043: 0x1e4c, 0x1044: 0x1e51, 0x1045: 0x1eba,
+       0x1046: 0x1ebf, 0x1047: 0x1edd, 0x1048: 0x1ee2, 0x1049: 0x1e7e, 0x104a: 0x1e83, 0x104b: 0x1e88,
+       0x104c: 0x1e92, 0x104d: 0x1e8d, 0x104e: 0x1e65, 0x104f: 0x1eb0, 0x1050: 0x1ed3, 0x1051: 0x1ef1,
+       0x1052: 0x1ef6, 0x1053: 0x1f0a, 0x1054: 0x1f0f, 0x1055: 0x1f1e, 0x1056: 0x1f23, 0x1057: 0x1e74,
+       0x1058: 0x1e79, 0x1059: 0x1e9c, 0x105a: 0x1ea1, 0x105b: 0x1e33, 0x105c: 0x1e38, 0x105d: 0x1e1f,
+       0x105e: 0x1e24, 0x105f: 0x1e4c, 0x1060: 0x1e51, 0x1061: 0x1eba, 0x1062: 0x1ebf, 0x1063: 0x1edd,
+       0x1064: 0x1ee2, 0x1065: 0x1e7e, 0x1066: 0x1e83, 0x1067: 0x1e88, 0x1068: 0x1e92, 0x1069: 0x1e8d,
+       0x106a: 0x1e65, 0x106b: 0x1eb0, 0x106c: 0x1ed3, 0x106d: 0x1e7e, 0x106e: 0x1e83, 0x106f: 0x1e88,
+       0x1070: 0x1e92, 0x1071: 0x1e6f, 0x1072: 0x1e97, 0x1073: 0x1eec, 0x1074: 0x1e56, 0x1075: 0x1e5b,
+       0x1076: 0x1e60, 0x1077: 0x1e7e, 0x1078: 0x1e83, 0x1079: 0x1e88, 0x107a: 0x1eec, 0x107b: 0x1efb,
+       0x107c: 0x449e, 0x107d: 0x449e,
+       // Block 0x42, offset 0x1080
+       0x1090: 0x2311, 0x1091: 0x2326,
+       0x1092: 0x2326, 0x1093: 0x232d, 0x1094: 0x2334, 0x1095: 0x2349, 0x1096: 0x2350, 0x1097: 0x2357,
+       0x1098: 0x237a, 0x1099: 0x237a, 0x109a: 0x239d, 0x109b: 0x2396, 0x109c: 0x23b2, 0x109d: 0x23a4,
+       0x109e: 0x23ab, 0x109f: 0x23ce, 0x10a0: 0x23ce, 0x10a1: 0x23c7, 0x10a2: 0x23d5, 0x10a3: 0x23d5,
+       0x10a4: 0x23ff, 0x10a5: 0x23ff, 0x10a6: 0x241b, 0x10a7: 0x23e3, 0x10a8: 0x23e3, 0x10a9: 0x23dc,
+       0x10aa: 0x23f1, 0x10ab: 0x23f1, 0x10ac: 0x23f8, 0x10ad: 0x23f8, 0x10ae: 0x2422, 0x10af: 0x2430,
+       0x10b0: 0x2430, 0x10b1: 0x2437, 0x10b2: 0x2437, 0x10b3: 0x243e, 0x10b4: 0x2445, 0x10b5: 0x244c,
+       0x10b6: 0x2453, 0x10b7: 0x2453, 0x10b8: 0x245a, 0x10b9: 0x2468, 0x10ba: 0x2476, 0x10bb: 0x246f,
+       0x10bc: 0x247d, 0x10bd: 0x247d, 0x10be: 0x2492, 0x10bf: 0x2499,
+       // Block 0x43, offset 0x10c0
+       0x10c0: 0x24ca, 0x10c1: 0x24d8, 0x10c2: 0x24d1, 0x10c3: 0x24b5, 0x10c4: 0x24b5, 0x10c5: 0x24df,
+       0x10c6: 0x24df, 0x10c7: 0x24e6, 0x10c8: 0x24e6, 0x10c9: 0x2510, 0x10ca: 0x2517, 0x10cb: 0x251e,
+       0x10cc: 0x24f4, 0x10cd: 0x2502, 0x10ce: 0x2525, 0x10cf: 0x252c,
+       0x10d2: 0x24fb, 0x10d3: 0x2580, 0x10d4: 0x2587, 0x10d5: 0x255d, 0x10d6: 0x2564, 0x10d7: 0x2548,
+       0x10d8: 0x2548, 0x10d9: 0x254f, 0x10da: 0x2579, 0x10db: 0x2572, 0x10dc: 0x259c, 0x10dd: 0x259c,
+       0x10de: 0x230a, 0x10df: 0x231f, 0x10e0: 0x2318, 0x10e1: 0x2342, 0x10e2: 0x233b, 0x10e3: 0x2365,
+       0x10e4: 0x235e, 0x10e5: 0x2388, 0x10e6: 0x236c, 0x10e7: 0x2381, 0x10e8: 0x23b9, 0x10e9: 0x2406,
+       0x10ea: 0x23ea, 0x10eb: 0x2429, 0x10ec: 0x24c3, 0x10ed: 0x24ed, 0x10ee: 0x2595, 0x10ef: 0x258e,
+       0x10f0: 0x25a3, 0x10f1: 0x253a, 0x10f2: 0x24a0, 0x10f3: 0x256b, 0x10f4: 0x2492, 0x10f5: 0x24ca,
+       0x10f6: 0x2461, 0x10f7: 0x24ae, 0x10f8: 0x2541, 0x10f9: 0x2533, 0x10fa: 0x24bc, 0x10fb: 0x24a7,
+       0x10fc: 0x24bc, 0x10fd: 0x2541, 0x10fe: 0x2373, 0x10ff: 0x238f,
+       // Block 0x44, offset 0x1100
+       0x1100: 0x2509, 0x1101: 0x2484, 0x1102: 0x2303, 0x1103: 0x24a7, 0x1104: 0x244c, 0x1105: 0x241b,
+       0x1106: 0x23c0, 0x1107: 0x2556,
+       0x1130: 0x2414, 0x1131: 0x248b, 0x1132: 0x27bf, 0x1133: 0x27b6, 0x1134: 0x27ec, 0x1135: 0x27da,
+       0x1136: 0x27c8, 0x1137: 0x27e3, 0x1138: 0x27f5, 0x1139: 0x240d, 0x113a: 0x2c7c, 0x113b: 0x2afc,
+       0x113c: 0x27d1,
+       // Block 0x45, offset 0x1140
+       0x1150: 0x0019, 0x1151: 0x0483,
+       0x1152: 0x0487, 0x1153: 0x0035, 0x1154: 0x0037, 0x1155: 0x0003, 0x1156: 0x003f, 0x1157: 0x04bf,
+       0x1158: 0x04c3, 0x1159: 0x1b5c,
+       0x1160: 0x8132, 0x1161: 0x8132, 0x1162: 0x8132, 0x1163: 0x8132,
+       0x1164: 0x8132, 0x1165: 0x8132, 0x1166: 0x8132, 0x1167: 0x812d, 0x1168: 0x812d, 0x1169: 0x812d,
+       0x116a: 0x812d, 0x116b: 0x812d, 0x116c: 0x812d, 0x116d: 0x812d, 0x116e: 0x8132, 0x116f: 0x8132,
+       0x1170: 0x1873, 0x1171: 0x0443, 0x1172: 0x043f, 0x1173: 0x007f, 0x1174: 0x007f, 0x1175: 0x0011,
+       0x1176: 0x0013, 0x1177: 0x00b7, 0x1178: 0x00bb, 0x1179: 0x04b7, 0x117a: 0x04bb, 0x117b: 0x04ab,
+       0x117c: 0x04af, 0x117d: 0x0493, 0x117e: 0x0497, 0x117f: 0x048b,
+       // Block 0x46, offset 0x1180
+       0x1180: 0x048f, 0x1181: 0x049b, 0x1182: 0x049f, 0x1183: 0x04a3, 0x1184: 0x04a7,
+       0x1187: 0x0077, 0x1188: 0x007b, 0x1189: 0x4269, 0x118a: 0x4269, 0x118b: 0x4269,
+       0x118c: 0x4269, 0x118d: 0x007f, 0x118e: 0x007f, 0x118f: 0x007f, 0x1190: 0x0019, 0x1191: 0x0483,
+       0x1192: 0x001d, 0x1194: 0x0037, 0x1195: 0x0035, 0x1196: 0x003f, 0x1197: 0x0003,
+       0x1198: 0x0443, 0x1199: 0x0011, 0x119a: 0x0013, 0x119b: 0x00b7, 0x119c: 0x00bb, 0x119d: 0x04b7,
+       0x119e: 0x04bb, 0x119f: 0x0007, 0x11a0: 0x000d, 0x11a1: 0x0015, 0x11a2: 0x0017, 0x11a3: 0x001b,
+       0x11a4: 0x0039, 0x11a5: 0x003d, 0x11a6: 0x003b, 0x11a8: 0x0079, 0x11a9: 0x0009,
+       0x11aa: 0x000b, 0x11ab: 0x0041,
+       0x11b0: 0x42aa, 0x11b1: 0x44c2, 0x11b2: 0x42af, 0x11b4: 0x42b4,
+       0x11b6: 0x42b9, 0x11b7: 0x44c8, 0x11b8: 0x42be, 0x11b9: 0x44ce, 0x11ba: 0x42c3, 0x11bb: 0x44d4,
+       0x11bc: 0x42c8, 0x11bd: 0x44da, 0x11be: 0x42cd, 0x11bf: 0x44e0,
+       // Block 0x47, offset 0x11c0
+       0x11c0: 0x0236, 0x11c1: 0x44a4, 0x11c2: 0x44a4, 0x11c3: 0x44aa, 0x11c4: 0x44aa, 0x11c5: 0x44ec,
+       0x11c6: 0x44ec, 0x11c7: 0x44b0, 0x11c8: 0x44b0, 0x11c9: 0x44f8, 0x11ca: 0x44f8, 0x11cb: 0x44f8,
+       0x11cc: 0x44f8, 0x11cd: 0x0239, 0x11ce: 0x0239, 0x11cf: 0x023c, 0x11d0: 0x023c, 0x11d1: 0x023c,
+       0x11d2: 0x023c, 0x11d3: 0x023f, 0x11d4: 0x023f, 0x11d5: 0x0242, 0x11d6: 0x0242, 0x11d7: 0x0242,
+       0x11d8: 0x0242, 0x11d9: 0x0245, 0x11da: 0x0245, 0x11db: 0x0245, 0x11dc: 0x0245, 0x11dd: 0x0248,
+       0x11de: 0x0248, 0x11df: 0x0248, 0x11e0: 0x0248, 0x11e1: 0x024b, 0x11e2: 0x024b, 0x11e3: 0x024b,
+       0x11e4: 0x024b, 0x11e5: 0x024e, 0x11e6: 0x024e, 0x11e7: 0x024e, 0x11e8: 0x024e, 0x11e9: 0x0251,
+       0x11ea: 0x0251, 0x11eb: 0x0254, 0x11ec: 0x0254, 0x11ed: 0x0257, 0x11ee: 0x0257, 0x11ef: 0x025a,
+       0x11f0: 0x025a, 0x11f1: 0x025d, 0x11f2: 0x025d, 0x11f3: 0x025d, 0x11f4: 0x025d, 0x11f5: 0x0260,
+       0x11f6: 0x0260, 0x11f7: 0x0260, 0x11f8: 0x0260, 0x11f9: 0x0263, 0x11fa: 0x0263, 0x11fb: 0x0263,
+       0x11fc: 0x0263, 0x11fd: 0x0266, 0x11fe: 0x0266, 0x11ff: 0x0266,
+       // Block 0x48, offset 0x1200
+       0x1200: 0x0266, 0x1201: 0x0269, 0x1202: 0x0269, 0x1203: 0x0269, 0x1204: 0x0269, 0x1205: 0x026c,
+       0x1206: 0x026c, 0x1207: 0x026c, 0x1208: 0x026c, 0x1209: 0x026f, 0x120a: 0x026f, 0x120b: 0x026f,
+       0x120c: 0x026f, 0x120d: 0x0272, 0x120e: 0x0272, 0x120f: 0x0272, 0x1210: 0x0272, 0x1211: 0x0275,
+       0x1212: 0x0275, 0x1213: 0x0275, 0x1214: 0x0275, 0x1215: 0x0278, 0x1216: 0x0278, 0x1217: 0x0278,
+       0x1218: 0x0278, 0x1219: 0x027b, 0x121a: 0x027b, 0x121b: 0x027b, 0x121c: 0x027b, 0x121d: 0x027e,
+       0x121e: 0x027e, 0x121f: 0x027e, 0x1220: 0x027e, 0x1221: 0x0281, 0x1222: 0x0281, 0x1223: 0x0281,
+       0x1224: 0x0281, 0x1225: 0x0284, 0x1226: 0x0284, 0x1227: 0x0284, 0x1228: 0x0284, 0x1229: 0x0287,
+       0x122a: 0x0287, 0x122b: 0x0287, 0x122c: 0x0287, 0x122d: 0x028a, 0x122e: 0x028a, 0x122f: 0x028d,
+       0x1230: 0x028d, 0x1231: 0x0290, 0x1232: 0x0290, 0x1233: 0x0290, 0x1234: 0x0290, 0x1235: 0x2e00,
+       0x1236: 0x2e00, 0x1237: 0x2e08, 0x1238: 0x2e08, 0x1239: 0x2e10, 0x123a: 0x2e10, 0x123b: 0x1f82,
+       0x123c: 0x1f82,
+       // Block 0x49, offset 0x1240
+       0x1240: 0x0081, 0x1241: 0x0083, 0x1242: 0x0085, 0x1243: 0x0087, 0x1244: 0x0089, 0x1245: 0x008b,
+       0x1246: 0x008d, 0x1247: 0x008f, 0x1248: 0x0091, 0x1249: 0x0093, 0x124a: 0x0095, 0x124b: 0x0097,
+       0x124c: 0x0099, 0x124d: 0x009b, 0x124e: 0x009d, 0x124f: 0x009f, 0x1250: 0x00a1, 0x1251: 0x00a3,
+       0x1252: 0x00a5, 0x1253: 0x00a7, 0x1254: 0x00a9, 0x1255: 0x00ab, 0x1256: 0x00ad, 0x1257: 0x00af,
+       0x1258: 0x00b1, 0x1259: 0x00b3, 0x125a: 0x00b5, 0x125b: 0x00b7, 0x125c: 0x00b9, 0x125d: 0x00bb,
+       0x125e: 0x00bd, 0x125f: 0x0477, 0x1260: 0x047b, 0x1261: 0x0487, 0x1262: 0x049b, 0x1263: 0x049f,
+       0x1264: 0x0483, 0x1265: 0x05ab, 0x1266: 0x05a3, 0x1267: 0x04c7, 0x1268: 0x04cf, 0x1269: 0x04d7,
+       0x126a: 0x04df, 0x126b: 0x04e7, 0x126c: 0x056b, 0x126d: 0x0573, 0x126e: 0x057b, 0x126f: 0x051f,
+       0x1270: 0x05af, 0x1271: 0x04cb, 0x1272: 0x04d3, 0x1273: 0x04db, 0x1274: 0x04e3, 0x1275: 0x04eb,
+       0x1276: 0x04ef, 0x1277: 0x04f3, 0x1278: 0x04f7, 0x1279: 0x04fb, 0x127a: 0x04ff, 0x127b: 0x0503,
+       0x127c: 0x0507, 0x127d: 0x050b, 0x127e: 0x050f, 0x127f: 0x0513,
+       // Block 0x4a, offset 0x1280
+       0x1280: 0x0517, 0x1281: 0x051b, 0x1282: 0x0523, 0x1283: 0x0527, 0x1284: 0x052b, 0x1285: 0x052f,
+       0x1286: 0x0533, 0x1287: 0x0537, 0x1288: 0x053b, 0x1289: 0x053f, 0x128a: 0x0543, 0x128b: 0x0547,
+       0x128c: 0x054b, 0x128d: 0x054f, 0x128e: 0x0553, 0x128f: 0x0557, 0x1290: 0x055b, 0x1291: 0x055f,
+       0x1292: 0x0563, 0x1293: 0x0567, 0x1294: 0x056f, 0x1295: 0x0577, 0x1296: 0x057f, 0x1297: 0x0583,
+       0x1298: 0x0587, 0x1299: 0x058b, 0x129a: 0x058f, 0x129b: 0x0593, 0x129c: 0x0597, 0x129d: 0x05a7,
+       0x129e: 0x4a5a, 0x129f: 0x4a60, 0x12a0: 0x03c3, 0x12a1: 0x0313, 0x12a2: 0x0317, 0x12a3: 0x4345,
+       0x12a4: 0x031b, 0x12a5: 0x434a, 0x12a6: 0x434f, 0x12a7: 0x031f, 0x12a8: 0x0323, 0x12a9: 0x0327,
+       0x12aa: 0x4354, 0x12ab: 0x4359, 0x12ac: 0x435e, 0x12ad: 0x4363, 0x12ae: 0x4368, 0x12af: 0x436d,
+       0x12b0: 0x0367, 0x12b1: 0x032b, 0x12b2: 0x032f, 0x12b3: 0x0333, 0x12b4: 0x037b, 0x12b5: 0x0337,
+       0x12b6: 0x033b, 0x12b7: 0x033f, 0x12b8: 0x0343, 0x12b9: 0x0347, 0x12ba: 0x034b, 0x12bb: 0x034f,
+       0x12bc: 0x0353, 0x12bd: 0x0357, 0x12be: 0x035b,
+       // Block 0x4b, offset 0x12c0
+       0x12c2: 0x42dc, 0x12c3: 0x42e1, 0x12c4: 0x42e6, 0x12c5: 0x42eb,
+       0x12c6: 0x42f0, 0x12c7: 0x42f5, 0x12ca: 0x42fa, 0x12cb: 0x42ff,
+       0x12cc: 0x4304, 0x12cd: 0x4309, 0x12ce: 0x430e, 0x12cf: 0x4313,
+       0x12d2: 0x4318, 0x12d3: 0x431d, 0x12d4: 0x4322, 0x12d5: 0x4327, 0x12d6: 0x432c, 0x12d7: 0x4331,
+       0x12da: 0x4336, 0x12db: 0x433b, 0x12dc: 0x4340,
+       0x12e0: 0x00bf, 0x12e1: 0x00c2, 0x12e2: 0x00cb, 0x12e3: 0x4264,
+       0x12e4: 0x00c8, 0x12e5: 0x00c5, 0x12e6: 0x0447, 0x12e8: 0x046b, 0x12e9: 0x044b,
+       0x12ea: 0x044f, 0x12eb: 0x0453, 0x12ec: 0x0457, 0x12ed: 0x046f, 0x12ee: 0x0473,
+       // Block 0x4c, offset 0x1300
+       0x1300: 0x0063, 0x1301: 0x0065, 0x1302: 0x0067, 0x1303: 0x0069, 0x1304: 0x006b, 0x1305: 0x006d,
+       0x1306: 0x006f, 0x1307: 0x0071, 0x1308: 0x0073, 0x1309: 0x0075, 0x130a: 0x0083, 0x130b: 0x0085,
+       0x130c: 0x0087, 0x130d: 0x0089, 0x130e: 0x008b, 0x130f: 0x008d, 0x1310: 0x008f, 0x1311: 0x0091,
+       0x1312: 0x0093, 0x1313: 0x0095, 0x1314: 0x0097, 0x1315: 0x0099, 0x1316: 0x009b, 0x1317: 0x009d,
+       0x1318: 0x009f, 0x1319: 0x00a1, 0x131a: 0x00a3, 0x131b: 0x00a5, 0x131c: 0x00a7, 0x131d: 0x00a9,
+       0x131e: 0x00ab, 0x131f: 0x00ad, 0x1320: 0x00af, 0x1321: 0x00b1, 0x1322: 0x00b3, 0x1323: 0x00b5,
+       0x1324: 0x00dd, 0x1325: 0x00f2, 0x1328: 0x0173, 0x1329: 0x0176,
+       0x132a: 0x0179, 0x132b: 0x017c, 0x132c: 0x017f, 0x132d: 0x0182, 0x132e: 0x0185, 0x132f: 0x0188,
+       0x1330: 0x018b, 0x1331: 0x018e, 0x1332: 0x0191, 0x1333: 0x0194, 0x1334: 0x0197, 0x1335: 0x019a,
+       0x1336: 0x019d, 0x1337: 0x01a0, 0x1338: 0x01a3, 0x1339: 0x0188, 0x133a: 0x01a6, 0x133b: 0x01a9,
+       0x133c: 0x01ac, 0x133d: 0x01af, 0x133e: 0x01b2, 0x133f: 0x01b5,
+       // Block 0x4d, offset 0x1340
+       0x1340: 0x01fd, 0x1341: 0x0200, 0x1342: 0x0203, 0x1343: 0x045b, 0x1344: 0x01c7, 0x1345: 0x01d0,
+       0x1346: 0x01d6, 0x1347: 0x01fa, 0x1348: 0x01eb, 0x1349: 0x01e8, 0x134a: 0x0206, 0x134b: 0x0209,
+       0x134e: 0x0021, 0x134f: 0x0023, 0x1350: 0x0025, 0x1351: 0x0027,
+       0x1352: 0x0029, 0x1353: 0x002b, 0x1354: 0x002d, 0x1355: 0x002f, 0x1356: 0x0031, 0x1357: 0x0033,
+       0x1358: 0x0021, 0x1359: 0x0023, 0x135a: 0x0025, 0x135b: 0x0027, 0x135c: 0x0029, 0x135d: 0x002b,
+       0x135e: 0x002d, 0x135f: 0x002f, 0x1360: 0x0031, 0x1361: 0x0033, 0x1362: 0x0021, 0x1363: 0x0023,
+       0x1364: 0x0025, 0x1365: 0x0027, 0x1366: 0x0029, 0x1367: 0x002b, 0x1368: 0x002d, 0x1369: 0x002f,
+       0x136a: 0x0031, 0x136b: 0x0033, 0x136c: 0x0021, 0x136d: 0x0023, 0x136e: 0x0025, 0x136f: 0x0027,
+       0x1370: 0x0029, 0x1371: 0x002b, 0x1372: 0x002d, 0x1373: 0x002f, 0x1374: 0x0031, 0x1375: 0x0033,
+       0x1376: 0x0021, 0x1377: 0x0023, 0x1378: 0x0025, 0x1379: 0x0027, 0x137a: 0x0029, 0x137b: 0x002b,
+       0x137c: 0x002d, 0x137d: 0x002f, 0x137e: 0x0031, 0x137f: 0x0033,
+       // Block 0x4e, offset 0x1380
+       0x1380: 0x0239, 0x1381: 0x023c, 0x1382: 0x0248, 0x1383: 0x0251, 0x1385: 0x028a,
+       0x1386: 0x025a, 0x1387: 0x024b, 0x1388: 0x0269, 0x1389: 0x0290, 0x138a: 0x027b, 0x138b: 0x027e,
+       0x138c: 0x0281, 0x138d: 0x0284, 0x138e: 0x025d, 0x138f: 0x026f, 0x1390: 0x0275, 0x1391: 0x0263,
+       0x1392: 0x0278, 0x1393: 0x0257, 0x1394: 0x0260, 0x1395: 0x0242, 0x1396: 0x0245, 0x1397: 0x024e,
+       0x1398: 0x0254, 0x1399: 0x0266, 0x139a: 0x026c, 0x139b: 0x0272, 0x139c: 0x0293, 0x139d: 0x02e4,
+       0x139e: 0x02cc, 0x139f: 0x0296, 0x13a1: 0x023c, 0x13a2: 0x0248,
+       0x13a4: 0x0287, 0x13a7: 0x024b, 0x13a9: 0x0290,
+       0x13aa: 0x027b, 0x13ab: 0x027e, 0x13ac: 0x0281, 0x13ad: 0x0284, 0x13ae: 0x025d, 0x13af: 0x026f,
+       0x13b0: 0x0275, 0x13b1: 0x0263, 0x13b2: 0x0278, 0x13b4: 0x0260, 0x13b5: 0x0242,
+       0x13b6: 0x0245, 0x13b7: 0x024e, 0x13b9: 0x0266, 0x13bb: 0x0272,
+       // Block 0x4f, offset 0x13c0
+       0x13c2: 0x0248,
+       0x13c7: 0x024b, 0x13c9: 0x0290, 0x13cb: 0x027e,
+       0x13cd: 0x0284, 0x13ce: 0x025d, 0x13cf: 0x026f, 0x13d1: 0x0263,
+       0x13d2: 0x0278, 0x13d4: 0x0260, 0x13d7: 0x024e,
+       0x13d9: 0x0266, 0x13db: 0x0272, 0x13dd: 0x02e4,
+       0x13df: 0x0296, 0x13e1: 0x023c, 0x13e2: 0x0248,
+       0x13e4: 0x0287, 0x13e7: 0x024b, 0x13e8: 0x0269, 0x13e9: 0x0290,
+       0x13ea: 0x027b, 0x13ec: 0x0281, 0x13ed: 0x0284, 0x13ee: 0x025d, 0x13ef: 0x026f,
+       0x13f0: 0x0275, 0x13f1: 0x0263, 0x13f2: 0x0278, 0x13f4: 0x0260, 0x13f5: 0x0242,
+       0x13f6: 0x0245, 0x13f7: 0x024e, 0x13f9: 0x0266, 0x13fa: 0x026c, 0x13fb: 0x0272,
+       0x13fc: 0x0293, 0x13fe: 0x02cc,
+       // Block 0x50, offset 0x1400
+       0x1400: 0x0239, 0x1401: 0x023c, 0x1402: 0x0248, 0x1403: 0x0251, 0x1404: 0x0287, 0x1405: 0x028a,
+       0x1406: 0x025a, 0x1407: 0x024b, 0x1408: 0x0269, 0x1409: 0x0290, 0x140b: 0x027e,
+       0x140c: 0x0281, 0x140d: 0x0284, 0x140e: 0x025d, 0x140f: 0x026f, 0x1410: 0x0275, 0x1411: 0x0263,
+       0x1412: 0x0278, 0x1413: 0x0257, 0x1414: 0x0260, 0x1415: 0x0242, 0x1416: 0x0245, 0x1417: 0x024e,
+       0x1418: 0x0254, 0x1419: 0x0266, 0x141a: 0x026c, 0x141b: 0x0272,
+       0x1421: 0x023c, 0x1422: 0x0248, 0x1423: 0x0251,
+       0x1425: 0x028a, 0x1426: 0x025a, 0x1427: 0x024b, 0x1428: 0x0269, 0x1429: 0x0290,
+       0x142b: 0x027e, 0x142c: 0x0281, 0x142d: 0x0284, 0x142e: 0x025d, 0x142f: 0x026f,
+       0x1430: 0x0275, 0x1431: 0x0263, 0x1432: 0x0278, 0x1433: 0x0257, 0x1434: 0x0260, 0x1435: 0x0242,
+       0x1436: 0x0245, 0x1437: 0x024e, 0x1438: 0x0254, 0x1439: 0x0266, 0x143a: 0x026c, 0x143b: 0x0272,
+       // Block 0x51, offset 0x1440
+       0x1440: 0x1879, 0x1441: 0x1876, 0x1442: 0x187c, 0x1443: 0x18a0, 0x1444: 0x18c4, 0x1445: 0x18e8,
+       0x1446: 0x190c, 0x1447: 0x1915, 0x1448: 0x191b, 0x1449: 0x1921, 0x144a: 0x1927,
+       0x1450: 0x1a8c, 0x1451: 0x1a90,
+       0x1452: 0x1a94, 0x1453: 0x1a98, 0x1454: 0x1a9c, 0x1455: 0x1aa0, 0x1456: 0x1aa4, 0x1457: 0x1aa8,
+       0x1458: 0x1aac, 0x1459: 0x1ab0, 0x145a: 0x1ab4, 0x145b: 0x1ab8, 0x145c: 0x1abc, 0x145d: 0x1ac0,
+       0x145e: 0x1ac4, 0x145f: 0x1ac8, 0x1460: 0x1acc, 0x1461: 0x1ad0, 0x1462: 0x1ad4, 0x1463: 0x1ad8,
+       0x1464: 0x1adc, 0x1465: 0x1ae0, 0x1466: 0x1ae4, 0x1467: 0x1ae8, 0x1468: 0x1aec, 0x1469: 0x1af0,
+       0x146a: 0x271e, 0x146b: 0x0047, 0x146c: 0x0065, 0x146d: 0x193c, 0x146e: 0x19b1,
+       0x1470: 0x0043, 0x1471: 0x0045, 0x1472: 0x0047, 0x1473: 0x0049, 0x1474: 0x004b, 0x1475: 0x004d,
+       0x1476: 0x004f, 0x1477: 0x0051, 0x1478: 0x0053, 0x1479: 0x0055, 0x147a: 0x0057, 0x147b: 0x0059,
+       0x147c: 0x005b, 0x147d: 0x005d, 0x147e: 0x005f, 0x147f: 0x0061,
+       // Block 0x52, offset 0x1480
+       0x1480: 0x26ad, 0x1481: 0x26c2, 0x1482: 0x0503,
+       0x1490: 0x0c0f, 0x1491: 0x0a47,
+       0x1492: 0x08d3, 0x1493: 0x465a, 0x1494: 0x071b, 0x1495: 0x09ef, 0x1496: 0x132f, 0x1497: 0x09ff,
+       0x1498: 0x0727, 0x1499: 0x0cd7, 0x149a: 0x0eaf, 0x149b: 0x0caf, 0x149c: 0x0827, 0x149d: 0x0b6b,
+       0x149e: 0x07bf, 0x149f: 0x0cb7, 0x14a0: 0x0813, 0x14a1: 0x1117, 0x14a2: 0x0f83, 0x14a3: 0x138b,
+       0x14a4: 0x09d3, 0x14a5: 0x090b, 0x14a6: 0x0e63, 0x14a7: 0x0c1b, 0x14a8: 0x0c47, 0x14a9: 0x06bf,
+       0x14aa: 0x06cb, 0x14ab: 0x140b, 0x14ac: 0x0adb, 0x14ad: 0x06e7, 0x14ae: 0x08ef, 0x14af: 0x0c3b,
+       0x14b0: 0x13b3, 0x14b1: 0x0c13, 0x14b2: 0x106f, 0x14b3: 0x10ab, 0x14b4: 0x08f7, 0x14b5: 0x0e43,
+       0x14b6: 0x0d0b, 0x14b7: 0x0d07, 0x14b8: 0x0f97, 0x14b9: 0x082b, 0x14ba: 0x0957, 0x14bb: 0x1443,
+       // Block 0x53, offset 0x14c0
+       0x14c0: 0x06fb, 0x14c1: 0x06f3, 0x14c2: 0x0703, 0x14c3: 0x1647, 0x14c4: 0x0747, 0x14c5: 0x0757,
+       0x14c6: 0x075b, 0x14c7: 0x0763, 0x14c8: 0x076b, 0x14c9: 0x076f, 0x14ca: 0x077b, 0x14cb: 0x0773,
+       0x14cc: 0x05b3, 0x14cd: 0x165b, 0x14ce: 0x078f, 0x14cf: 0x0793, 0x14d0: 0x0797, 0x14d1: 0x07b3,
+       0x14d2: 0x164c, 0x14d3: 0x05b7, 0x14d4: 0x079f, 0x14d5: 0x07bf, 0x14d6: 0x1656, 0x14d7: 0x07cf,
+       0x14d8: 0x07d7, 0x14d9: 0x0737, 0x14da: 0x07df, 0x14db: 0x07e3, 0x14dc: 0x1831, 0x14dd: 0x07ff,
+       0x14de: 0x0807, 0x14df: 0x05bf, 0x14e0: 0x081f, 0x14e1: 0x0823, 0x14e2: 0x082b, 0x14e3: 0x082f,
+       0x14e4: 0x05c3, 0x14e5: 0x0847, 0x14e6: 0x084b, 0x14e7: 0x0857, 0x14e8: 0x0863, 0x14e9: 0x0867,
+       0x14ea: 0x086b, 0x14eb: 0x0873, 0x14ec: 0x0893, 0x14ed: 0x0897, 0x14ee: 0x089f, 0x14ef: 0x08af,
+       0x14f0: 0x08b7, 0x14f1: 0x08bb, 0x14f2: 0x08bb, 0x14f3: 0x08bb, 0x14f4: 0x166a, 0x14f5: 0x0e93,
+       0x14f6: 0x08cf, 0x14f7: 0x08d7, 0x14f8: 0x166f, 0x14f9: 0x08e3, 0x14fa: 0x08eb, 0x14fb: 0x08f3,
+       0x14fc: 0x091b, 0x14fd: 0x0907, 0x14fe: 0x0913, 0x14ff: 0x0917,
+       // Block 0x54, offset 0x1500
+       0x1500: 0x091f, 0x1501: 0x0927, 0x1502: 0x092b, 0x1503: 0x0933, 0x1504: 0x093b, 0x1505: 0x093f,
+       0x1506: 0x093f, 0x1507: 0x0947, 0x1508: 0x094f, 0x1509: 0x0953, 0x150a: 0x095f, 0x150b: 0x0983,
+       0x150c: 0x0967, 0x150d: 0x0987, 0x150e: 0x096b, 0x150f: 0x0973, 0x1510: 0x080b, 0x1511: 0x09cf,
+       0x1512: 0x0997, 0x1513: 0x099b, 0x1514: 0x099f, 0x1515: 0x0993, 0x1516: 0x09a7, 0x1517: 0x09a3,
+       0x1518: 0x09bb, 0x1519: 0x1674, 0x151a: 0x09d7, 0x151b: 0x09db, 0x151c: 0x09e3, 0x151d: 0x09ef,
+       0x151e: 0x09f7, 0x151f: 0x0a13, 0x1520: 0x1679, 0x1521: 0x167e, 0x1522: 0x0a1f, 0x1523: 0x0a23,
+       0x1524: 0x0a27, 0x1525: 0x0a1b, 0x1526: 0x0a2f, 0x1527: 0x05c7, 0x1528: 0x05cb, 0x1529: 0x0a37,
+       0x152a: 0x0a3f, 0x152b: 0x0a3f, 0x152c: 0x1683, 0x152d: 0x0a5b, 0x152e: 0x0a5f, 0x152f: 0x0a63,
+       0x1530: 0x0a6b, 0x1531: 0x1688, 0x1532: 0x0a73, 0x1533: 0x0a77, 0x1534: 0x0b4f, 0x1535: 0x0a7f,
+       0x1536: 0x05cf, 0x1537: 0x0a8b, 0x1538: 0x0a9b, 0x1539: 0x0aa7, 0x153a: 0x0aa3, 0x153b: 0x1692,
+       0x153c: 0x0aaf, 0x153d: 0x1697, 0x153e: 0x0abb, 0x153f: 0x0ab7,
+       // Block 0x55, offset 0x1540
+       0x1540: 0x0abf, 0x1541: 0x0acf, 0x1542: 0x0ad3, 0x1543: 0x05d3, 0x1544: 0x0ae3, 0x1545: 0x0aeb,
+       0x1546: 0x0aef, 0x1547: 0x0af3, 0x1548: 0x05d7, 0x1549: 0x169c, 0x154a: 0x05db, 0x154b: 0x0b0f,
+       0x154c: 0x0b13, 0x154d: 0x0b17, 0x154e: 0x0b1f, 0x154f: 0x1863, 0x1550: 0x0b37, 0x1551: 0x16a6,
+       0x1552: 0x16a6, 0x1553: 0x11d7, 0x1554: 0x0b47, 0x1555: 0x0b47, 0x1556: 0x05df, 0x1557: 0x16c9,
+       0x1558: 0x179b, 0x1559: 0x0b57, 0x155a: 0x0b5f, 0x155b: 0x05e3, 0x155c: 0x0b73, 0x155d: 0x0b83,
+       0x155e: 0x0b87, 0x155f: 0x0b8f, 0x1560: 0x0b9f, 0x1561: 0x05eb, 0x1562: 0x05e7, 0x1563: 0x0ba3,
+       0x1564: 0x16ab, 0x1565: 0x0ba7, 0x1566: 0x0bbb, 0x1567: 0x0bbf, 0x1568: 0x0bc3, 0x1569: 0x0bbf,
+       0x156a: 0x0bcf, 0x156b: 0x0bd3, 0x156c: 0x0be3, 0x156d: 0x0bdb, 0x156e: 0x0bdf, 0x156f: 0x0be7,
+       0x1570: 0x0beb, 0x1571: 0x0bef, 0x1572: 0x0bfb, 0x1573: 0x0bff, 0x1574: 0x0c17, 0x1575: 0x0c1f,
+       0x1576: 0x0c2f, 0x1577: 0x0c43, 0x1578: 0x16ba, 0x1579: 0x0c3f, 0x157a: 0x0c33, 0x157b: 0x0c4b,
+       0x157c: 0x0c53, 0x157d: 0x0c67, 0x157e: 0x16bf, 0x157f: 0x0c6f,
+       // Block 0x56, offset 0x1580
+       0x1580: 0x0c63, 0x1581: 0x0c5b, 0x1582: 0x05ef, 0x1583: 0x0c77, 0x1584: 0x0c7f, 0x1585: 0x0c87,
+       0x1586: 0x0c7b, 0x1587: 0x05f3, 0x1588: 0x0c97, 0x1589: 0x0c9f, 0x158a: 0x16c4, 0x158b: 0x0ccb,
+       0x158c: 0x0cff, 0x158d: 0x0cdb, 0x158e: 0x05ff, 0x158f: 0x0ce7, 0x1590: 0x05fb, 0x1591: 0x05f7,
+       0x1592: 0x07c3, 0x1593: 0x07c7, 0x1594: 0x0d03, 0x1595: 0x0ceb, 0x1596: 0x11ab, 0x1597: 0x0663,
+       0x1598: 0x0d0f, 0x1599: 0x0d13, 0x159a: 0x0d17, 0x159b: 0x0d2b, 0x159c: 0x0d23, 0x159d: 0x16dd,
+       0x159e: 0x0603, 0x159f: 0x0d3f, 0x15a0: 0x0d33, 0x15a1: 0x0d4f, 0x15a2: 0x0d57, 0x15a3: 0x16e7,
+       0x15a4: 0x0d5b, 0x15a5: 0x0d47, 0x15a6: 0x0d63, 0x15a7: 0x0607, 0x15a8: 0x0d67, 0x15a9: 0x0d6b,
+       0x15aa: 0x0d6f, 0x15ab: 0x0d7b, 0x15ac: 0x16ec, 0x15ad: 0x0d83, 0x15ae: 0x060b, 0x15af: 0x0d8f,
+       0x15b0: 0x16f1, 0x15b1: 0x0d93, 0x15b2: 0x060f, 0x15b3: 0x0d9f, 0x15b4: 0x0dab, 0x15b5: 0x0db7,
+       0x15b6: 0x0dbb, 0x15b7: 0x16f6, 0x15b8: 0x168d, 0x15b9: 0x16fb, 0x15ba: 0x0ddb, 0x15bb: 0x1700,
+       0x15bc: 0x0de7, 0x15bd: 0x0def, 0x15be: 0x0ddf, 0x15bf: 0x0dfb,
+       // Block 0x57, offset 0x15c0
+       0x15c0: 0x0e0b, 0x15c1: 0x0e1b, 0x15c2: 0x0e0f, 0x15c3: 0x0e13, 0x15c4: 0x0e1f, 0x15c5: 0x0e23,
+       0x15c6: 0x1705, 0x15c7: 0x0e07, 0x15c8: 0x0e3b, 0x15c9: 0x0e3f, 0x15ca: 0x0613, 0x15cb: 0x0e53,
+       0x15cc: 0x0e4f, 0x15cd: 0x170a, 0x15ce: 0x0e33, 0x15cf: 0x0e6f, 0x15d0: 0x170f, 0x15d1: 0x1714,
+       0x15d2: 0x0e73, 0x15d3: 0x0e87, 0x15d4: 0x0e83, 0x15d5: 0x0e7f, 0x15d6: 0x0617, 0x15d7: 0x0e8b,
+       0x15d8: 0x0e9b, 0x15d9: 0x0e97, 0x15da: 0x0ea3, 0x15db: 0x1651, 0x15dc: 0x0eb3, 0x15dd: 0x1719,
+       0x15de: 0x0ebf, 0x15df: 0x1723, 0x15e0: 0x0ed3, 0x15e1: 0x0edf, 0x15e2: 0x0ef3, 0x15e3: 0x1728,
+       0x15e4: 0x0f07, 0x15e5: 0x0f0b, 0x15e6: 0x172d, 0x15e7: 0x1732, 0x15e8: 0x0f27, 0x15e9: 0x0f37,
+       0x15ea: 0x061b, 0x15eb: 0x0f3b, 0x15ec: 0x061f, 0x15ed: 0x061f, 0x15ee: 0x0f53, 0x15ef: 0x0f57,
+       0x15f0: 0x0f5f, 0x15f1: 0x0f63, 0x15f2: 0x0f6f, 0x15f3: 0x0623, 0x15f4: 0x0f87, 0x15f5: 0x1737,
+       0x15f6: 0x0fa3, 0x15f7: 0x173c, 0x15f8: 0x0faf, 0x15f9: 0x16a1, 0x15fa: 0x0fbf, 0x15fb: 0x1741,
+       0x15fc: 0x1746, 0x15fd: 0x174b, 0x15fe: 0x0627, 0x15ff: 0x062b,
+       // Block 0x58, offset 0x1600
+       0x1600: 0x0ff7, 0x1601: 0x1755, 0x1602: 0x1750, 0x1603: 0x175a, 0x1604: 0x175f, 0x1605: 0x0fff,
+       0x1606: 0x1003, 0x1607: 0x1003, 0x1608: 0x100b, 0x1609: 0x0633, 0x160a: 0x100f, 0x160b: 0x0637,
+       0x160c: 0x063b, 0x160d: 0x1769, 0x160e: 0x1023, 0x160f: 0x102b, 0x1610: 0x1037, 0x1611: 0x063f,
+       0x1612: 0x176e, 0x1613: 0x105b, 0x1614: 0x1773, 0x1615: 0x1778, 0x1616: 0x107b, 0x1617: 0x1093,
+       0x1618: 0x0643, 0x1619: 0x109b, 0x161a: 0x109f, 0x161b: 0x10a3, 0x161c: 0x177d, 0x161d: 0x1782,
+       0x161e: 0x1782, 0x161f: 0x10bb, 0x1620: 0x0647, 0x1621: 0x1787, 0x1622: 0x10cf, 0x1623: 0x10d3,
+       0x1624: 0x064b, 0x1625: 0x178c, 0x1626: 0x10ef, 0x1627: 0x064f, 0x1628: 0x10ff, 0x1629: 0x10f7,
+       0x162a: 0x1107, 0x162b: 0x1796, 0x162c: 0x111f, 0x162d: 0x0653, 0x162e: 0x112b, 0x162f: 0x1133,
+       0x1630: 0x1143, 0x1631: 0x0657, 0x1632: 0x17a0, 0x1633: 0x17a5, 0x1634: 0x065b, 0x1635: 0x17aa,
+       0x1636: 0x115b, 0x1637: 0x17af, 0x1638: 0x1167, 0x1639: 0x1173, 0x163a: 0x117b, 0x163b: 0x17b4,
+       0x163c: 0x17b9, 0x163d: 0x118f, 0x163e: 0x17be, 0x163f: 0x1197,
+       // Block 0x59, offset 0x1640
+       0x1640: 0x16ce, 0x1641: 0x065f, 0x1642: 0x11af, 0x1643: 0x11b3, 0x1644: 0x0667, 0x1645: 0x11b7,
+       0x1646: 0x0a33, 0x1647: 0x17c3, 0x1648: 0x17c8, 0x1649: 0x16d3, 0x164a: 0x16d8, 0x164b: 0x11d7,
+       0x164c: 0x11db, 0x164d: 0x13f3, 0x164e: 0x066b, 0x164f: 0x1207, 0x1650: 0x1203, 0x1651: 0x120b,
+       0x1652: 0x083f, 0x1653: 0x120f, 0x1654: 0x1213, 0x1655: 0x1217, 0x1656: 0x121f, 0x1657: 0x17cd,
+       0x1658: 0x121b, 0x1659: 0x1223, 0x165a: 0x1237, 0x165b: 0x123b, 0x165c: 0x1227, 0x165d: 0x123f,
+       0x165e: 0x1253, 0x165f: 0x1267, 0x1660: 0x1233, 0x1661: 0x1247, 0x1662: 0x124b, 0x1663: 0x124f,
+       0x1664: 0x17d2, 0x1665: 0x17dc, 0x1666: 0x17d7, 0x1667: 0x066f, 0x1668: 0x126f, 0x1669: 0x1273,
+       0x166a: 0x127b, 0x166b: 0x17f0, 0x166c: 0x127f, 0x166d: 0x17e1, 0x166e: 0x0673, 0x166f: 0x0677,
+       0x1670: 0x17e6, 0x1671: 0x17eb, 0x1672: 0x067b, 0x1673: 0x129f, 0x1674: 0x12a3, 0x1675: 0x12a7,
+       0x1676: 0x12ab, 0x1677: 0x12b7, 0x1678: 0x12b3, 0x1679: 0x12bf, 0x167a: 0x12bb, 0x167b: 0x12cb,
+       0x167c: 0x12c3, 0x167d: 0x12c7, 0x167e: 0x12cf, 0x167f: 0x067f,
+       // Block 0x5a, offset 0x1680
+       0x1680: 0x12d7, 0x1681: 0x12db, 0x1682: 0x0683, 0x1683: 0x12eb, 0x1684: 0x12ef, 0x1685: 0x17f5,
+       0x1686: 0x12fb, 0x1687: 0x12ff, 0x1688: 0x0687, 0x1689: 0x130b, 0x168a: 0x05bb, 0x168b: 0x17fa,
+       0x168c: 0x17ff, 0x168d: 0x068b, 0x168e: 0x068f, 0x168f: 0x1337, 0x1690: 0x134f, 0x1691: 0x136b,
+       0x1692: 0x137b, 0x1693: 0x1804, 0x1694: 0x138f, 0x1695: 0x1393, 0x1696: 0x13ab, 0x1697: 0x13b7,
+       0x1698: 0x180e, 0x1699: 0x1660, 0x169a: 0x13c3, 0x169b: 0x13bf, 0x169c: 0x13cb, 0x169d: 0x1665,
+       0x169e: 0x13d7, 0x169f: 0x13e3, 0x16a0: 0x1813, 0x16a1: 0x1818, 0x16a2: 0x1423, 0x16a3: 0x142f,
+       0x16a4: 0x1437, 0x16a5: 0x181d, 0x16a6: 0x143b, 0x16a7: 0x1467, 0x16a8: 0x1473, 0x16a9: 0x1477,
+       0x16aa: 0x146f, 0x16ab: 0x1483, 0x16ac: 0x1487, 0x16ad: 0x1822, 0x16ae: 0x1493, 0x16af: 0x0693,
+       0x16b0: 0x149b, 0x16b1: 0x1827, 0x16b2: 0x0697, 0x16b3: 0x14d3, 0x16b4: 0x0ac3, 0x16b5: 0x14eb,
+       0x16b6: 0x182c, 0x16b7: 0x1836, 0x16b8: 0x069b, 0x16b9: 0x069f, 0x16ba: 0x1513, 0x16bb: 0x183b,
+       0x16bc: 0x06a3, 0x16bd: 0x1840, 0x16be: 0x152b, 0x16bf: 0x152b,
+       // Block 0x5b, offset 0x16c0
+       0x16c0: 0x1533, 0x16c1: 0x1845, 0x16c2: 0x154b, 0x16c3: 0x06a7, 0x16c4: 0x155b, 0x16c5: 0x1567,
+       0x16c6: 0x156f, 0x16c7: 0x1577, 0x16c8: 0x06ab, 0x16c9: 0x184a, 0x16ca: 0x158b, 0x16cb: 0x15a7,
+       0x16cc: 0x15b3, 0x16cd: 0x06af, 0x16ce: 0x06b3, 0x16cf: 0x15b7, 0x16d0: 0x184f, 0x16d1: 0x06b7,
+       0x16d2: 0x1854, 0x16d3: 0x1859, 0x16d4: 0x185e, 0x16d5: 0x15db, 0x16d6: 0x06bb, 0x16d7: 0x15ef,
+       0x16d8: 0x15f7, 0x16d9: 0x15fb, 0x16da: 0x1603, 0x16db: 0x160b, 0x16dc: 0x1613, 0x16dd: 0x1868,
+}
+
+// nfkcIndex: 22 blocks, 1408 entries, 1408 bytes
+// Block 0 is the zero block.
+var nfkcIndex = [1408]uint8{
+       // Block 0x0, offset 0x0
+       // Block 0x1, offset 0x40
+       // Block 0x2, offset 0x80
+       // Block 0x3, offset 0xc0
+       0xc2: 0x5a, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x5b, 0xc7: 0x04,
+       0xc8: 0x05, 0xca: 0x5c, 0xcb: 0x5d, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x09,
+       0xd0: 0x0a, 0xd1: 0x5e, 0xd2: 0x5f, 0xd3: 0x0b, 0xd6: 0x0c, 0xd7: 0x60,
+       0xd8: 0x61, 0xd9: 0x0d, 0xdb: 0x62, 0xdc: 0x63, 0xdd: 0x64, 0xdf: 0x65,
+       0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05,
+       0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a,
+       0xf0: 0x13,
+       // Block 0x4, offset 0x100
+       0x120: 0x66, 0x121: 0x67, 0x123: 0x68, 0x124: 0x69, 0x125: 0x6a, 0x126: 0x6b, 0x127: 0x6c,
+       0x128: 0x6d, 0x129: 0x6e, 0x12a: 0x6f, 0x12b: 0x70, 0x12c: 0x6b, 0x12d: 0x71, 0x12e: 0x72, 0x12f: 0x73,
+       0x131: 0x74, 0x132: 0x75, 0x133: 0x76, 0x134: 0x77, 0x135: 0x78, 0x137: 0x79,
+       0x138: 0x7a, 0x139: 0x7b, 0x13a: 0x7c, 0x13b: 0x7d, 0x13c: 0x7e, 0x13d: 0x7f, 0x13e: 0x80, 0x13f: 0x81,
+       // Block 0x5, offset 0x140
+       0x140: 0x82, 0x142: 0x83, 0x143: 0x84, 0x144: 0x85, 0x145: 0x86, 0x146: 0x87, 0x147: 0x88,
+       0x14d: 0x89,
+       0x15c: 0x8a, 0x15f: 0x8b,
+       0x162: 0x8c, 0x164: 0x8d,
+       0x168: 0x8e, 0x169: 0x8f, 0x16a: 0x90, 0x16c: 0x0e, 0x16d: 0x91, 0x16e: 0x92, 0x16f: 0x93,
+       0x170: 0x94, 0x173: 0x95, 0x174: 0x96, 0x175: 0x0f, 0x176: 0x10, 0x177: 0x97,
+       0x178: 0x11, 0x179: 0x12, 0x17a: 0x13, 0x17b: 0x14, 0x17c: 0x15, 0x17d: 0x16, 0x17e: 0x17, 0x17f: 0x18,
+       // Block 0x6, offset 0x180
+       0x180: 0x98, 0x181: 0x99, 0x182: 0x9a, 0x183: 0x9b, 0x184: 0x19, 0x185: 0x1a, 0x186: 0x9c, 0x187: 0x9d,
+       0x188: 0x9e, 0x189: 0x1b, 0x18a: 0x1c, 0x18b: 0x9f, 0x18c: 0xa0,
+       0x191: 0x1d, 0x192: 0x1e, 0x193: 0xa1,
+       0x1a8: 0xa2, 0x1a9: 0xa3, 0x1ab: 0xa4,
+       0x1b1: 0xa5, 0x1b3: 0xa6, 0x1b5: 0xa7, 0x1b7: 0xa8,
+       0x1ba: 0xa9, 0x1bb: 0xaa, 0x1bc: 0x1f, 0x1bd: 0x20, 0x1be: 0x21, 0x1bf: 0xab,
+       // Block 0x7, offset 0x1c0
+       0x1c0: 0xac, 0x1c1: 0x22, 0x1c2: 0x23, 0x1c3: 0x24, 0x1c4: 0xad, 0x1c5: 0x25, 0x1c6: 0x26,
+       0x1c8: 0x27, 0x1c9: 0x28, 0x1ca: 0x29, 0x1cb: 0x2a, 0x1cc: 0x2b, 0x1cd: 0x2c, 0x1ce: 0x2d, 0x1cf: 0x2e,
+       // Block 0x8, offset 0x200
+       0x219: 0xae, 0x21a: 0xaf, 0x21b: 0xb0, 0x21d: 0xb1, 0x21f: 0xb2,
+       0x220: 0xb3, 0x223: 0xb4, 0x224: 0xb5, 0x225: 0xb6, 0x226: 0xb7, 0x227: 0xb8,
+       0x22a: 0xb9, 0x22b: 0xba, 0x22d: 0xbb, 0x22f: 0xbc,
+       0x230: 0xbd, 0x231: 0xbe, 0x232: 0xbf, 0x233: 0xc0, 0x234: 0xc1, 0x235: 0xc2, 0x236: 0xc3, 0x237: 0xbd,
+       0x238: 0xbe, 0x239: 0xbf, 0x23a: 0xc0, 0x23b: 0xc1, 0x23c: 0xc2, 0x23d: 0xc3, 0x23e: 0xbd, 0x23f: 0xbe,
+       // Block 0x9, offset 0x240
+       0x240: 0xbf, 0x241: 0xc0, 0x242: 0xc1, 0x243: 0xc2, 0x244: 0xc3, 0x245: 0xbd, 0x246: 0xbe, 0x247: 0xbf,
+       0x248: 0xc0, 0x249: 0xc1, 0x24a: 0xc2, 0x24b: 0xc3, 0x24c: 0xbd, 0x24d: 0xbe, 0x24e: 0xbf, 0x24f: 0xc0,
+       0x250: 0xc1, 0x251: 0xc2, 0x252: 0xc3, 0x253: 0xbd, 0x254: 0xbe, 0x255: 0xbf, 0x256: 0xc0, 0x257: 0xc1,
+       0x258: 0xc2, 0x259: 0xc3, 0x25a: 0xbd, 0x25b: 0xbe, 0x25c: 0xbf, 0x25d: 0xc0, 0x25e: 0xc1, 0x25f: 0xc2,
+       0x260: 0xc3, 0x261: 0xbd, 0x262: 0xbe, 0x263: 0xbf, 0x264: 0xc0, 0x265: 0xc1, 0x266: 0xc2, 0x267: 0xc3,
+       0x268: 0xbd, 0x269: 0xbe, 0x26a: 0xbf, 0x26b: 0xc0, 0x26c: 0xc1, 0x26d: 0xc2, 0x26e: 0xc3, 0x26f: 0xbd,
+       0x270: 0xbe, 0x271: 0xbf, 0x272: 0xc0, 0x273: 0xc1, 0x274: 0xc2, 0x275: 0xc3, 0x276: 0xbd, 0x277: 0xbe,
+       0x278: 0xbf, 0x279: 0xc0, 0x27a: 0xc1, 0x27b: 0xc2, 0x27c: 0xc3, 0x27d: 0xbd, 0x27e: 0xbe, 0x27f: 0xbf,
+       // Block 0xa, offset 0x280
+       0x280: 0xc0, 0x281: 0xc1, 0x282: 0xc2, 0x283: 0xc3, 0x284: 0xbd, 0x285: 0xbe, 0x286: 0xbf, 0x287: 0xc0,
+       0x288: 0xc1, 0x289: 0xc2, 0x28a: 0xc3, 0x28b: 0xbd, 0x28c: 0xbe, 0x28d: 0xbf, 0x28e: 0xc0, 0x28f: 0xc1,
+       0x290: 0xc2, 0x291: 0xc3, 0x292: 0xbd, 0x293: 0xbe, 0x294: 0xbf, 0x295: 0xc0, 0x296: 0xc1, 0x297: 0xc2,
+       0x298: 0xc3, 0x299: 0xbd, 0x29a: 0xbe, 0x29b: 0xbf, 0x29c: 0xc0, 0x29d: 0xc1, 0x29e: 0xc2, 0x29f: 0xc3,
+       0x2a0: 0xbd, 0x2a1: 0xbe, 0x2a2: 0xbf, 0x2a3: 0xc0, 0x2a4: 0xc1, 0x2a5: 0xc2, 0x2a6: 0xc3, 0x2a7: 0xbd,
+       0x2a8: 0xbe, 0x2a9: 0xbf, 0x2aa: 0xc0, 0x2ab: 0xc1, 0x2ac: 0xc2, 0x2ad: 0xc3, 0x2ae: 0xbd, 0x2af: 0xbe,
+       0x2b0: 0xbf, 0x2b1: 0xc0, 0x2b2: 0xc1, 0x2b3: 0xc2, 0x2b4: 0xc3, 0x2b5: 0xbd, 0x2b6: 0xbe, 0x2b7: 0xbf,
+       0x2b8: 0xc0, 0x2b9: 0xc1, 0x2ba: 0xc2, 0x2bb: 0xc3, 0x2bc: 0xbd, 0x2bd: 0xbe, 0x2be: 0xbf, 0x2bf: 0xc0,
+       // Block 0xb, offset 0x2c0
+       0x2c0: 0xc1, 0x2c1: 0xc2, 0x2c2: 0xc3, 0x2c3: 0xbd, 0x2c4: 0xbe, 0x2c5: 0xbf, 0x2c6: 0xc0, 0x2c7: 0xc1,
+       0x2c8: 0xc2, 0x2c9: 0xc3, 0x2ca: 0xbd, 0x2cb: 0xbe, 0x2cc: 0xbf, 0x2cd: 0xc0, 0x2ce: 0xc1, 0x2cf: 0xc2,
+       0x2d0: 0xc3, 0x2d1: 0xbd, 0x2d2: 0xbe, 0x2d3: 0xbf, 0x2d4: 0xc0, 0x2d5: 0xc1, 0x2d6: 0xc2, 0x2d7: 0xc3,
+       0x2d8: 0xbd, 0x2d9: 0xbe, 0x2da: 0xbf, 0x2db: 0xc0, 0x2dc: 0xc1, 0x2dd: 0xc2, 0x2de: 0xc4,
+       // Block 0xc, offset 0x300
+       0x324: 0x2f, 0x325: 0x30, 0x326: 0x31, 0x327: 0x32,
+       0x328: 0x33, 0x329: 0x34, 0x32a: 0x35, 0x32b: 0x36, 0x32c: 0x37, 0x32d: 0x38, 0x32e: 0x39, 0x32f: 0x3a,
+       0x330: 0x3b, 0x331: 0x3c, 0x332: 0x3d, 0x333: 0x3e, 0x334: 0x3f, 0x335: 0x40, 0x336: 0x41, 0x337: 0x42,
+       0x338: 0x43, 0x339: 0x44, 0x33a: 0x45, 0x33b: 0x46, 0x33c: 0xc5, 0x33d: 0x47, 0x33e: 0x48, 0x33f: 0x49,
+       // Block 0xd, offset 0x340
+       0x347: 0xc6,
+       0x34b: 0xc7, 0x34d: 0xc8,
+       0x368: 0xc9, 0x36b: 0xca,
+       // Block 0xe, offset 0x380
+       0x381: 0xcb, 0x382: 0xcc, 0x384: 0xcd, 0x385: 0xb7, 0x387: 0xce,
+       0x388: 0xcf, 0x38b: 0xd0, 0x38c: 0x6b, 0x38d: 0xd1,
+       0x391: 0xd2, 0x392: 0xd3, 0x393: 0xd4, 0x396: 0xd5, 0x397: 0xd6,
+       0x398: 0xd7, 0x39a: 0xd8, 0x39c: 0xd9,
+       0x3b0: 0xd7,
+       // Block 0xf, offset 0x3c0
+       0x3eb: 0xda, 0x3ec: 0xdb,
+       // Block 0x10, offset 0x400
+       0x432: 0xdc,
+       // Block 0x11, offset 0x440
+       0x445: 0xdd, 0x446: 0xde, 0x447: 0xdf,
+       0x449: 0xe0,
+       0x450: 0xe1, 0x451: 0xe2, 0x452: 0xe3, 0x453: 0xe4, 0x454: 0xe5, 0x455: 0xe6, 0x456: 0xe7, 0x457: 0xe8,
+       0x458: 0xe9, 0x459: 0xea, 0x45a: 0x4a, 0x45b: 0xeb, 0x45c: 0xec, 0x45d: 0xed, 0x45e: 0xee, 0x45f: 0x4b,
+       // Block 0x12, offset 0x480
+       0x480: 0xef,
+       0x4a3: 0xf0, 0x4a5: 0xf1,
+       0x4b8: 0x4c, 0x4b9: 0x4d, 0x4ba: 0x4e,
+       // Block 0x13, offset 0x4c0
+       0x4c4: 0x4f, 0x4c5: 0xf2, 0x4c6: 0xf3,
+       0x4c8: 0x50, 0x4c9: 0xf4,
+       // Block 0x14, offset 0x500
+       0x520: 0x51, 0x521: 0x52, 0x522: 0x53, 0x523: 0x54, 0x524: 0x55, 0x525: 0x56, 0x526: 0x57, 0x527: 0x58,
+       0x528: 0x59,
+       // Block 0x15, offset 0x540
+       0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d,
+       0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11,
+       0x56f: 0x12,
+}
+
+// nfkcSparseOffset: 155 entries, 310 bytes
+var nfkcSparseOffset = []uint16{0x0, 0xe, 0x12, 0x1b, 0x25, 0x35, 0x37, 0x3c, 0x47, 0x56, 0x63, 0x6b, 0x6f, 0x74, 0x76, 0x87, 0x8f, 0x96, 0x99, 0xa0, 0xa4, 0xa8, 0xaa, 0xac, 0xb5, 0xb9, 0xc0, 0xc5, 0xc8, 0xd2, 0xd4, 0xdb, 0xe3, 0xe7, 0xe9, 0xec, 0xf0, 0xf6, 0x107, 0x113, 0x115, 0x11b, 0x11d, 0x11f, 0x121, 0x123, 0x125, 0x127, 0x129, 0x12c, 0x12f, 0x131, 0x134, 0x137, 0x13b, 0x140, 0x149, 0x14b, 0x14e, 0x150, 0x15b, 0x166, 0x176, 0x184, 0x192, 0x1a2, 0x1b0, 0x1b7, 0x1bd, 0x1cc, 0x1d0, 0x1d2, 0x1d6, 0x1d8, 0x1db, 0x1dd, 0x1e0, 0x1e2, 0x1e5, 0x1e7, 0x1e9, 0x1eb, 0x1f7, 0x201, 0x20b, 0x20e, 0x212, 0x214, 0x216, 0x218, 0x21a, 0x21d, 0x21f, 0x221, 0x223, 0x225, 0x22b, 0x22e, 0x232, 0x234, 0x23b, 0x241, 0x247, 0x24f, 0x255, 0x25b, 0x261, 0x265, 0x267, 0x269, 0x26b, 0x26d, 0x273, 0x276, 0x279, 0x281, 0x288, 0x28b, 0x28e, 0x290, 0x298, 0x29b, 0x2a2, 0x2a5, 0x2ab, 0x2ad, 0x2af, 0x2b2, 0x2b4, 0x2b6, 0x2b8, 0x2ba, 0x2c7, 0x2d1, 0x2d3, 0x2d5, 0x2d9, 0x2de, 0x2ea, 0x2ef, 0x2f8, 0x2fe, 0x303, 0x307, 0x30c, 0x310, 0x320, 0x32e, 0x33c, 0x34a, 0x350, 0x352, 0x355, 0x35f, 0x361}
+
+// nfkcSparseValues: 875 entries, 3500 bytes
+var nfkcSparseValues = [875]valueRange{
+       // Block 0x0, offset 0x0
+       {value: 0x0002, lo: 0x0d},
+       {value: 0x0001, lo: 0xa0, hi: 0xa0},
+       {value: 0x4278, lo: 0xa8, hi: 0xa8},
+       {value: 0x0083, lo: 0xaa, hi: 0xaa},
+       {value: 0x4264, lo: 0xaf, hi: 0xaf},
+       {value: 0x0025, lo: 0xb2, hi: 0xb3},
+       {value: 0x425a, lo: 0xb4, hi: 0xb4},
+       {value: 0x01dc, lo: 0xb5, hi: 0xb5},
+       {value: 0x4291, lo: 0xb8, hi: 0xb8},
+       {value: 0x0023, lo: 0xb9, hi: 0xb9},
+       {value: 0x009f, lo: 0xba, hi: 0xba},
+       {value: 0x221c, lo: 0xbc, hi: 0xbc},
+       {value: 0x2210, lo: 0xbd, hi: 0xbd},
+       {value: 0x22b2, lo: 0xbe, hi: 0xbe},
+       // Block 0x1, offset 0xe
+       {value: 0x0091, lo: 0x03},
+       {value: 0x4778, lo: 0xa0, hi: 0xa1},
+       {value: 0x47aa, lo: 0xaf, hi: 0xb0},
+       {value: 0xa000, lo: 0xb7, hi: 0xb7},
+       // Block 0x2, offset 0x12
+       {value: 0x0003, lo: 0x08},
+       {value: 0xa000, lo: 0x92, hi: 0x92},
+       {value: 0x0091, lo: 0xb0, hi: 0xb0},
+       {value: 0x0119, lo: 0xb1, hi: 0xb1},
+       {value: 0x0095, lo: 0xb2, hi: 0xb2},
+       {value: 0x00a5, lo: 0xb3, hi: 0xb3},
+       {value: 0x0143, lo: 0xb4, hi: 0xb6},
+       {value: 0x00af, lo: 0xb7, hi: 0xb7},
+       {value: 0x00b3, lo: 0xb8, hi: 0xb8},
+       // Block 0x3, offset 0x1b
+       {value: 0x000a, lo: 0x09},
+       {value: 0x426e, lo: 0x98, hi: 0x98},
+       {value: 0x4273, lo: 0x99, hi: 0x9a},
+       {value: 0x4296, lo: 0x9b, hi: 0x9b},
+       {value: 0x425f, lo: 0x9c, hi: 0x9c},
+       {value: 0x4282, lo: 0x9d, hi: 0x9d},
+       {value: 0x0113, lo: 0xa0, hi: 0xa0},
+       {value: 0x0099, lo: 0xa1, hi: 0xa1},
+       {value: 0x00a7, lo: 0xa2, hi: 0xa3},
+       {value: 0x0167, lo: 0xa4, hi: 0xa4},
+       // Block 0x4, offset 0x25
+       {value: 0x0000, lo: 0x0f},
+       {value: 0xa000, lo: 0x83, hi: 0x83},
+       {value: 0xa000, lo: 0x87, hi: 0x87},
+       {value: 0xa000, lo: 0x8b, hi: 0x8b},
+       {value: 0xa000, lo: 0x8d, hi: 0x8d},
+       {value: 0x37a5, lo: 0x90, hi: 0x90},
+       {value: 0x37b1, lo: 0x91, hi: 0x91},
+       {value: 0x379f, lo: 0x93, hi: 0x93},
+       {value: 0xa000, lo: 0x96, hi: 0x96},
+       {value: 0x3817, lo: 0x97, hi: 0x97},
+       {value: 0x37e1, lo: 0x9c, hi: 0x9c},
+       {value: 0x37c9, lo: 0x9d, hi: 0x9d},
+       {value: 0x37f3, lo: 0x9e, hi: 0x9e},
+       {value: 0xa000, lo: 0xb4, hi: 0xb5},
+       {value: 0x381d, lo: 0xb6, hi: 0xb6},
+       {value: 0x3823, lo: 0xb7, hi: 0xb7},
+       // Block 0x5, offset 0x35
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8132, lo: 0x83, hi: 0x87},
+       // Block 0x6, offset 0x37
+       {value: 0x0001, lo: 0x04},
+       {value: 0x8113, lo: 0x81, hi: 0x82},
+       {value: 0x8132, lo: 0x84, hi: 0x84},
+       {value: 0x812d, lo: 0x85, hi: 0x85},
+       {value: 0x810d, lo: 0x87, hi: 0x87},
+       // Block 0x7, offset 0x3c
+       {value: 0x0000, lo: 0x0a},
+       {value: 0x8132, lo: 0x90, hi: 0x97},
+       {value: 0x8119, lo: 0x98, hi: 0x98},
+       {value: 0x811a, lo: 0x99, hi: 0x99},
+       {value: 0x811b, lo: 0x9a, hi: 0x9a},
+       {value: 0x3841, lo: 0xa2, hi: 0xa2},
+       {value: 0x3847, lo: 0xa3, hi: 0xa3},
+       {value: 0x3853, lo: 0xa4, hi: 0xa4},
+       {value: 0x384d, lo: 0xa5, hi: 0xa5},
+       {value: 0x3859, lo: 0xa6, hi: 0xa6},
+       {value: 0xa000, lo: 0xa7, hi: 0xa7},
+       // Block 0x8, offset 0x47
+       {value: 0x0000, lo: 0x0e},
+       {value: 0x386b, lo: 0x80, hi: 0x80},
+       {value: 0xa000, lo: 0x81, hi: 0x81},
+       {value: 0x385f, lo: 0x82, hi: 0x82},
+       {value: 0xa000, lo: 0x92, hi: 0x92},
+       {value: 0x3865, lo: 0x93, hi: 0x93},
+       {value: 0xa000, lo: 0x95, hi: 0x95},
+       {value: 0x8132, lo: 0x96, hi: 0x9c},
+       {value: 0x8132, lo: 0x9f, hi: 0xa2},
+       {value: 0x812d, lo: 0xa3, hi: 0xa3},
+       {value: 0x8132, lo: 0xa4, hi: 0xa4},
+       {value: 0x8132, lo: 0xa7, hi: 0xa8},
+       {value: 0x812d, lo: 0xaa, hi: 0xaa},
+       {value: 0x8132, lo: 0xab, hi: 0xac},
+       {value: 0x812d, lo: 0xad, hi: 0xad},
+       // Block 0x9, offset 0x56
+       {value: 0x0000, lo: 0x0c},
+       {value: 0x811f, lo: 0x91, hi: 0x91},
+       {value: 0x8132, lo: 0xb0, hi: 0xb0},
+       {value: 0x812d, lo: 0xb1, hi: 0xb1},
+       {value: 0x8132, lo: 0xb2, hi: 0xb3},
+       {value: 0x812d, lo: 0xb4, hi: 0xb4},
+       {value: 0x8132, lo: 0xb5, hi: 0xb6},
+       {value: 0x812d, lo: 0xb7, hi: 0xb9},
+       {value: 0x8132, lo: 0xba, hi: 0xba},
+       {value: 0x812d, lo: 0xbb, hi: 0xbc},
+       {value: 0x8132, lo: 0xbd, hi: 0xbd},
+       {value: 0x812d, lo: 0xbe, hi: 0xbe},
+       {value: 0x8132, lo: 0xbf, hi: 0xbf},
+       // Block 0xa, offset 0x63
+       {value: 0x0005, lo: 0x07},
+       {value: 0x8132, lo: 0x80, hi: 0x80},
+       {value: 0x8132, lo: 0x81, hi: 0x81},
+       {value: 0x812d, lo: 0x82, hi: 0x83},
+       {value: 0x812d, lo: 0x84, hi: 0x85},
+       {value: 0x812d, lo: 0x86, hi: 0x87},
+       {value: 0x812d, lo: 0x88, hi: 0x89},
+       {value: 0x8132, lo: 0x8a, hi: 0x8a},
+       // Block 0xb, offset 0x6b
+       {value: 0x0000, lo: 0x03},
+       {value: 0x8132, lo: 0xab, hi: 0xb1},
+       {value: 0x812d, lo: 0xb2, hi: 0xb2},
+       {value: 0x8132, lo: 0xb3, hi: 0xb3},
+       // Block 0xc, offset 0x6f
+       {value: 0x0000, lo: 0x04},
+       {value: 0x8132, lo: 0x96, hi: 0x99},
+       {value: 0x8132, lo: 0x9b, hi: 0xa3},
+       {value: 0x8132, lo: 0xa5, hi: 0xa7},
+       {value: 0x8132, lo: 0xa9, hi: 0xad},
+       // Block 0xd, offset 0x74
+       {value: 0x0000, lo: 0x01},
+       {value: 0x812d, lo: 0x99, hi: 0x9b},
+       // Block 0xe, offset 0x76
+       {value: 0x0000, lo: 0x10},
+       {value: 0x8132, lo: 0x94, hi: 0xa1},
+       {value: 0x812d, lo: 0xa3, hi: 0xa3},
+       {value: 0x8132, lo: 0xa4, hi: 0xa5},
+       {value: 0x812d, lo: 0xa6, hi: 0xa6},
+       {value: 0x8132, lo: 0xa7, hi: 0xa8},
+       {value: 0x812d, lo: 0xa9, hi: 0xa9},
+       {value: 0x8132, lo: 0xaa, hi: 0xac},
+       {value: 0x812d, lo: 0xad, hi: 0xaf},
+       {value: 0x8116, lo: 0xb0, hi: 0xb0},
+       {value: 0x8117, lo: 0xb1, hi: 0xb1},
+       {value: 0x8118, lo: 0xb2, hi: 0xb2},
+       {value: 0x8132, lo: 0xb3, hi: 0xb5},
+       {value: 0x812d, lo: 0xb6, hi: 0xb6},
+       {value: 0x8132, lo: 0xb7, hi: 0xb8},
+       {value: 0x812d, lo: 0xb9, hi: 0xba},
+       {value: 0x8132, lo: 0xbb, hi: 0xbf},
+       // Block 0xf, offset 0x87
+       {value: 0x0000, lo: 0x07},
+       {value: 0xa000, lo: 0xa8, hi: 0xa8},
+       {value: 0x3ed8, lo: 0xa9, hi: 0xa9},
+       {value: 0xa000, lo: 0xb0, hi: 0xb0},
+       {value: 0x3ee0, lo: 0xb1, hi: 0xb1},
+       {value: 0xa000, lo: 0xb3, hi: 0xb3},
+       {value: 0x3ee8, lo: 0xb4, hi: 0xb4},
+       {value: 0x9902, lo: 0xbc, hi: 0xbc},
+       // Block 0x10, offset 0x8f
+       {value: 0x0008, lo: 0x06},
+       {value: 0x8104, lo: 0x8d, hi: 0x8d},
+       {value: 0x8132, lo: 0x91, hi: 0x91},
+       {value: 0x812d, lo: 0x92, hi: 0x92},
+       {value: 0x8132, lo: 0x93, hi: 0x93},
+       {value: 0x8132, lo: 0x94, hi: 0x94},
+       {value: 0x45b2, lo: 0x98, hi: 0x9f},
+       // Block 0x11, offset 0x96
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8102, lo: 0xbc, hi: 0xbc},
+       {value: 0x9900, lo: 0xbe, hi: 0xbe},
+       // Block 0x12, offset 0x99
+       {value: 0x0008, lo: 0x06},
+       {value: 0xa000, lo: 0x87, hi: 0x87},
+       {value: 0x2c9e, lo: 0x8b, hi: 0x8c},
+       {value: 0x8104, lo: 0x8d, hi: 0x8d},
+       {value: 0x9900, lo: 0x97, hi: 0x97},
+       {value: 0x45f2, lo: 0x9c, hi: 0x9d},
+       {value: 0x4602, lo: 0x9f, hi: 0x9f},
+       // Block 0x13, offset 0xa0
+       {value: 0x0000, lo: 0x03},
+       {value: 0x462a, lo: 0xb3, hi: 0xb3},
+       {value: 0x4632, lo: 0xb6, hi: 0xb6},
+       {value: 0x8102, lo: 0xbc, hi: 0xbc},
+       // Block 0x14, offset 0xa4
+       {value: 0x0008, lo: 0x03},
+       {value: 0x8104, lo: 0x8d, hi: 0x8d},
+       {value: 0x460a, lo: 0x99, hi: 0x9b},
+       {value: 0x4622, lo: 0x9e, hi: 0x9e},
+       // Block 0x15, offset 0xa8
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8102, lo: 0xbc, hi: 0xbc},
+       // Block 0x16, offset 0xaa
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8104, lo: 0x8d, hi: 0x8d},
+       // Block 0x17, offset 0xac
+       {value: 0x0000, lo: 0x08},
+       {value: 0xa000, lo: 0x87, hi: 0x87},
+       {value: 0x2cb6, lo: 0x88, hi: 0x88},
+       {value: 0x2cae, lo: 0x8b, hi: 0x8b},
+       {value: 0x2cbe, lo: 0x8c, hi: 0x8c},
+       {value: 0x8104, lo: 0x8d, hi: 0x8d},
+       {value: 0x9900, lo: 0x96, hi: 0x97},
+       {value: 0x463a, lo: 0x9c, hi: 0x9c},
+       {value: 0x4642, lo: 0x9d, hi: 0x9d},
+       // Block 0x18, offset 0xb5
+       {value: 0x0000, lo: 0x03},
+       {value: 0xa000, lo: 0x92, hi: 0x92},
+       {value: 0x2cc6, lo: 0x94, hi: 0x94},
+       {value: 0x9900, lo: 0xbe, hi: 0xbe},
+       // Block 0x19, offset 0xb9
+       {value: 0x0000, lo: 0x06},
+       {value: 0xa000, lo: 0x86, hi: 0x87},
+       {value: 0x2cce, lo: 0x8a, hi: 0x8a},
+       {value: 0x2cde, lo: 0x8b, hi: 0x8b},
+       {value: 0x2cd6, lo: 0x8c, hi: 0x8c},
+       {value: 0x8104, lo: 0x8d, hi: 0x8d},
+       {value: 0x9900, lo: 0x97, hi: 0x97},
+       // Block 0x1a, offset 0xc0
+       {value: 0x1801, lo: 0x04},
+       {value: 0xa000, lo: 0x86, hi: 0x86},
+       {value: 0x3ef0, lo: 0x88, hi: 0x88},
+       {value: 0x8104, lo: 0x8d, hi: 0x8d},
+       {value: 0x8120, lo: 0x95, hi: 0x96},
+       // Block 0x1b, offset 0xc5
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8102, lo: 0xbc, hi: 0xbc},
+       {value: 0xa000, lo: 0xbf, hi: 0xbf},
+       // Block 0x1c, offset 0xc8
+       {value: 0x0000, lo: 0x09},
+       {value: 0x2ce6, lo: 0x80, hi: 0x80},
+       {value: 0x9900, lo: 0x82, hi: 0x82},
+       {value: 0xa000, lo: 0x86, hi: 0x86},
+       {value: 0x2cee, lo: 0x87, hi: 0x87},
+       {value: 0x2cf6, lo: 0x88, hi: 0x88},
+       {value: 0x2f50, lo: 0x8a, hi: 0x8a},
+       {value: 0x2dd8, lo: 0x8b, hi: 0x8b},
+       {value: 0x8104, lo: 0x8d, hi: 0x8d},
+       {value: 0x9900, lo: 0x95, hi: 0x96},
+       // Block 0x1d, offset 0xd2
+       {value: 0x0000, lo: 0x01},
+       {value: 0x9900, lo: 0xbe, hi: 0xbe},
+       // Block 0x1e, offset 0xd4
+       {value: 0x0000, lo: 0x06},
+       {value: 0xa000, lo: 0x86, hi: 0x87},
+       {value: 0x2cfe, lo: 0x8a, hi: 0x8a},
+       {value: 0x2d0e, lo: 0x8b, hi: 0x8b},
+       {value: 0x2d06, lo: 0x8c, hi: 0x8c},
+       {value: 0x8104, lo: 0x8d, hi: 0x8d},
+       {value: 0x9900, lo: 0x97, hi: 0x97},
+       // Block 0x1f, offset 0xdb
+       {value: 0x6bea, lo: 0x07},
+       {value: 0x9904, lo: 0x8a, hi: 0x8a},
+       {value: 0x9900, lo: 0x8f, hi: 0x8f},
+       {value: 0xa000, lo: 0x99, hi: 0x99},
+       {value: 0x3ef8, lo: 0x9a, hi: 0x9a},
+       {value: 0x2f58, lo: 0x9c, hi: 0x9c},
+       {value: 0x2de3, lo: 0x9d, hi: 0x9d},
+       {value: 0x2d16, lo: 0x9e, hi: 0x9f},
+       // Block 0x20, offset 0xe3
+       {value: 0x0000, lo: 0x03},
+       {value: 0x2621, lo: 0xb3, hi: 0xb3},
+       {value: 0x8122, lo: 0xb8, hi: 0xb9},
+       {value: 0x8104, lo: 0xba, hi: 0xba},
+       // Block 0x21, offset 0xe7
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8123, lo: 0x88, hi: 0x8b},
+       // Block 0x22, offset 0xe9
+       {value: 0x0000, lo: 0x02},
+       {value: 0x2636, lo: 0xb3, hi: 0xb3},
+       {value: 0x8124, lo: 0xb8, hi: 0xb9},
+       // Block 0x23, offset 0xec
+       {value: 0x0000, lo: 0x03},
+       {value: 0x8125, lo: 0x88, hi: 0x8b},
+       {value: 0x2628, lo: 0x9c, hi: 0x9c},
+       {value: 0x262f, lo: 0x9d, hi: 0x9d},
+       // Block 0x24, offset 0xf0
+       {value: 0x0000, lo: 0x05},
+       {value: 0x030b, lo: 0x8c, hi: 0x8c},
+       {value: 0x812d, lo: 0x98, hi: 0x99},
+       {value: 0x812d, lo: 0xb5, hi: 0xb5},
+       {value: 0x812d, lo: 0xb7, hi: 0xb7},
+       {value: 0x812b, lo: 0xb9, hi: 0xb9},
+       // Block 0x25, offset 0xf6
+       {value: 0x0000, lo: 0x10},
+       {value: 0x2644, lo: 0x83, hi: 0x83},
+       {value: 0x264b, lo: 0x8d, hi: 0x8d},
+       {value: 0x2652, lo: 0x92, hi: 0x92},
+       {value: 0x2659, lo: 0x97, hi: 0x97},
+       {value: 0x2660, lo: 0x9c, hi: 0x9c},
+       {value: 0x263d, lo: 0xa9, hi: 0xa9},
+       {value: 0x8126, lo: 0xb1, hi: 0xb1},
+       {value: 0x8127, lo: 0xb2, hi: 0xb2},
+       {value: 0x4a66, lo: 0xb3, hi: 0xb3},
+       {value: 0x8128, lo: 0xb4, hi: 0xb4},
+       {value: 0x4a6f, lo: 0xb5, hi: 0xb5},
+       {value: 0x464a, lo: 0xb6, hi: 0xb6},
+       {value: 0x468a, lo: 0xb7, hi: 0xb7},
+       {value: 0x4652, lo: 0xb8, hi: 0xb8},
+       {value: 0x4695, lo: 0xb9, hi: 0xb9},
+       {value: 0x8127, lo: 0xba, hi: 0xbd},
+       // Block 0x26, offset 0x107
+       {value: 0x0000, lo: 0x0b},
+       {value: 0x8127, lo: 0x80, hi: 0x80},
+       {value: 0x4a78, lo: 0x81, hi: 0x81},
+       {value: 0x8132, lo: 0x82, hi: 0x83},
+       {value: 0x8104, lo: 0x84, hi: 0x84},
+       {value: 0x8132, lo: 0x86, hi: 0x87},
+       {value: 0x266e, lo: 0x93, hi: 0x93},
+       {value: 0x2675, lo: 0x9d, hi: 0x9d},
+       {value: 0x267c, lo: 0xa2, hi: 0xa2},
+       {value: 0x2683, lo: 0xa7, hi: 0xa7},
+       {value: 0x268a, lo: 0xac, hi: 0xac},
+       {value: 0x2667, lo: 0xb9, hi: 0xb9},
+       // Block 0x27, offset 0x113
+       {value: 0x0000, lo: 0x01},
+       {value: 0x812d, lo: 0x86, hi: 0x86},
+       // Block 0x28, offset 0x115
+       {value: 0x0000, lo: 0x05},
+       {value: 0xa000, lo: 0xa5, hi: 0xa5},
+       {value: 0x2d1e, lo: 0xa6, hi: 0xa6},
+       {value: 0x9900, lo: 0xae, hi: 0xae},
+       {value: 0x8102, lo: 0xb7, hi: 0xb7},
+       {value: 0x8104, lo: 0xb9, hi: 0xba},
+       // Block 0x29, offset 0x11b
+       {value: 0x0000, lo: 0x01},
+       {value: 0x812d, lo: 0x8d, hi: 0x8d},
+       // Block 0x2a, offset 0x11d
+       {value: 0x0000, lo: 0x01},
+       {value: 0x030f, lo: 0xbc, hi: 0xbc},
+       // Block 0x2b, offset 0x11f
+       {value: 0x0000, lo: 0x01},
+       {value: 0xa000, lo: 0x80, hi: 0x92},
+       // Block 0x2c, offset 0x121
+       {value: 0x0000, lo: 0x01},
+       {value: 0xb900, lo: 0xa1, hi: 0xb5},
+       // Block 0x2d, offset 0x123
+       {value: 0x0000, lo: 0x01},
+       {value: 0x9900, lo: 0xa8, hi: 0xbf},
+       // Block 0x2e, offset 0x125
+       {value: 0x0000, lo: 0x01},
+       {value: 0x9900, lo: 0x80, hi: 0x82},
+       // Block 0x2f, offset 0x127
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8132, lo: 0x9d, hi: 0x9f},
+       // Block 0x30, offset 0x129
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8104, lo: 0x94, hi: 0x94},
+       {value: 0x8104, lo: 0xb4, hi: 0xb4},
+       // Block 0x31, offset 0x12c
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8104, lo: 0x92, hi: 0x92},
+       {value: 0x8132, lo: 0x9d, hi: 0x9d},
+       // Block 0x32, offset 0x12f
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8131, lo: 0xa9, hi: 0xa9},
+       // Block 0x33, offset 0x131
+       {value: 0x0004, lo: 0x02},
+       {value: 0x812e, lo: 0xb9, hi: 0xba},
+       {value: 0x812d, lo: 0xbb, hi: 0xbb},
+       // Block 0x34, offset 0x134
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8132, lo: 0x97, hi: 0x97},
+       {value: 0x812d, lo: 0x98, hi: 0x98},
+       // Block 0x35, offset 0x137
+       {value: 0x0000, lo: 0x03},
+       {value: 0x8104, lo: 0xa0, hi: 0xa0},
+       {value: 0x8132, lo: 0xb5, hi: 0xbc},
+       {value: 0x812d, lo: 0xbf, hi: 0xbf},
+       // Block 0x36, offset 0x13b
+       {value: 0x0000, lo: 0x04},
+       {value: 0x8132, lo: 0xb0, hi: 0xb4},
+       {value: 0x812d, lo: 0xb5, hi: 0xba},
+       {value: 0x8132, lo: 0xbb, hi: 0xbc},
+       {value: 0x812d, lo: 0xbd, hi: 0xbd},
+       // Block 0x37, offset 0x140
+       {value: 0x0000, lo: 0x08},
+       {value: 0x2d66, lo: 0x80, hi: 0x80},
+       {value: 0x2d6e, lo: 0x81, hi: 0x81},
+       {value: 0xa000, lo: 0x82, hi: 0x82},
+       {value: 0x2d76, lo: 0x83, hi: 0x83},
+       {value: 0x8104, lo: 0x84, hi: 0x84},
+       {value: 0x8132, lo: 0xab, hi: 0xab},
+       {value: 0x812d, lo: 0xac, hi: 0xac},
+       {value: 0x8132, lo: 0xad, hi: 0xb3},
+       // Block 0x38, offset 0x149
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8104, lo: 0xaa, hi: 0xab},
+       // Block 0x39, offset 0x14b
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8102, lo: 0xa6, hi: 0xa6},
+       {value: 0x8104, lo: 0xb2, hi: 0xb3},
+       // Block 0x3a, offset 0x14e
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8102, lo: 0xb7, hi: 0xb7},
+       // Block 0x3b, offset 0x150
+       {value: 0x0000, lo: 0x0a},
+       {value: 0x8132, lo: 0x90, hi: 0x92},
+       {value: 0x8101, lo: 0x94, hi: 0x94},
+       {value: 0x812d, lo: 0x95, hi: 0x99},
+       {value: 0x8132, lo: 0x9a, hi: 0x9b},
+       {value: 0x812d, lo: 0x9c, hi: 0x9f},
+       {value: 0x8132, lo: 0xa0, hi: 0xa0},
+       {value: 0x8101, lo: 0xa2, hi: 0xa8},
+       {value: 0x812d, lo: 0xad, hi: 0xad},
+       {value: 0x8132, lo: 0xb4, hi: 0xb4},
+       {value: 0x8132, lo: 0xb8, hi: 0xb9},
+       // Block 0x3c, offset 0x15b
+       {value: 0x0002, lo: 0x0a},
+       {value: 0x0043, lo: 0xac, hi: 0xac},
+       {value: 0x00d1, lo: 0xad, hi: 0xad},
+       {value: 0x0045, lo: 0xae, hi: 0xae},
+       {value: 0x0049, lo: 0xb0, hi: 0xb1},
+       {value: 0x00e6, lo: 0xb2, hi: 0xb2},
+       {value: 0x004f, lo: 0xb3, hi: 0xba},
+       {value: 0x005f, lo: 0xbc, hi: 0xbc},
+       {value: 0x00ef, lo: 0xbd, hi: 0xbd},
+       {value: 0x0061, lo: 0xbe, hi: 0xbe},
+       {value: 0x0065, lo: 0xbf, hi: 0xbf},
+       // Block 0x3d, offset 0x166
+       {value: 0x0000, lo: 0x0f},
+       {value: 0x8132, lo: 0x80, hi: 0x81},
+       {value: 0x812d, lo: 0x82, hi: 0x82},
+       {value: 0x8132, lo: 0x83, hi: 0x89},
+       {value: 0x812d, lo: 0x8a, hi: 0x8a},
+       {value: 0x8132, lo: 0x8b, hi: 0x8c},
+       {value: 0x8135, lo: 0x8d, hi: 0x8d},
+       {value: 0x812a, lo: 0x8e, hi: 0x8e},
+       {value: 0x812d, lo: 0x8f, hi: 0x8f},
+       {value: 0x8129, lo: 0x90, hi: 0x90},
+       {value: 0x8132, lo: 0x91, hi: 0xb5},
+       {value: 0x8132, lo: 0xbb, hi: 0xbb},
+       {value: 0x8134, lo: 0xbc, hi: 0xbc},
+       {value: 0x812d, lo: 0xbd, hi: 0xbd},
+       {value: 0x8132, lo: 0xbe, hi: 0xbe},
+       {value: 0x812d, lo: 0xbf, hi: 0xbf},
+       // Block 0x3e, offset 0x176
+       {value: 0x0000, lo: 0x0d},
+       {value: 0x0001, lo: 0x80, hi: 0x8a},
+       {value: 0x043b, lo: 0x91, hi: 0x91},
+       {value: 0x429b, lo: 0x97, hi: 0x97},
+       {value: 0x001d, lo: 0xa4, hi: 0xa4},
+       {value: 0x1873, lo: 0xa5, hi: 0xa5},
+       {value: 0x1b5c, lo: 0xa6, hi: 0xa6},
+       {value: 0x0001, lo: 0xaf, hi: 0xaf},
+       {value: 0x2691, lo: 0xb3, hi: 0xb3},
+       {value: 0x27fe, lo: 0xb4, hi: 0xb4},
+       {value: 0x2698, lo: 0xb6, hi: 0xb6},
+       {value: 0x2808, lo: 0xb7, hi: 0xb7},
+       {value: 0x186d, lo: 0xbc, hi: 0xbc},
+       {value: 0x4269, lo: 0xbe, hi: 0xbe},
+       // Block 0x3f, offset 0x184
+       {value: 0x0002, lo: 0x0d},
+       {value: 0x1933, lo: 0x87, hi: 0x87},
+       {value: 0x1930, lo: 0x88, hi: 0x88},
+       {value: 0x1870, lo: 0x89, hi: 0x89},
+       {value: 0x298e, lo: 0x97, hi: 0x97},
+       {value: 0x0001, lo: 0x9f, hi: 0x9f},
+       {value: 0x0021, lo: 0xb0, hi: 0xb0},
+       {value: 0x0093, lo: 0xb1, hi: 0xb1},
+       {value: 0x0029, lo: 0xb4, hi: 0xb9},
+       {value: 0x0017, lo: 0xba, hi: 0xba},
+       {value: 0x0467, lo: 0xbb, hi: 0xbb},
+       {value: 0x003b, lo: 0xbc, hi: 0xbc},
+       {value: 0x0011, lo: 0xbd, hi: 0xbe},
+       {value: 0x009d, lo: 0xbf, hi: 0xbf},
+       // Block 0x40, offset 0x192
+       {value: 0x0002, lo: 0x0f},
+       {value: 0x0021, lo: 0x80, hi: 0x89},
+       {value: 0x0017, lo: 0x8a, hi: 0x8a},
+       {value: 0x0467, lo: 0x8b, hi: 0x8b},
+       {value: 0x003b, lo: 0x8c, hi: 0x8c},
+       {value: 0x0011, lo: 0x8d, hi: 0x8e},
+       {value: 0x0083, lo: 0x90, hi: 0x90},
+       {value: 0x008b, lo: 0x91, hi: 0x91},
+       {value: 0x009f, lo: 0x92, hi: 0x92},
+       {value: 0x00b1, lo: 0x93, hi: 0x93},
+       {value: 0x0104, lo: 0x94, hi: 0x94},
+       {value: 0x0091, lo: 0x95, hi: 0x95},
+       {value: 0x0097, lo: 0x96, hi: 0x99},
+       {value: 0x00a1, lo: 0x9a, hi: 0x9a},
+       {value: 0x00a7, lo: 0x9b, hi: 0x9c},
+       {value: 0x1999, lo: 0xa8, hi: 0xa8},
+       // Block 0x41, offset 0x1a2
+       {value: 0x0000, lo: 0x0d},
+       {value: 0x8132, lo: 0x90, hi: 0x91},
+       {value: 0x8101, lo: 0x92, hi: 0x93},
+       {value: 0x8132, lo: 0x94, hi: 0x97},
+       {value: 0x8101, lo: 0x98, hi: 0x9a},
+       {value: 0x8132, lo: 0x9b, hi: 0x9c},
+       {value: 0x8132, lo: 0xa1, hi: 0xa1},
+       {value: 0x8101, lo: 0xa5, hi: 0xa6},
+       {value: 0x8132, lo: 0xa7, hi: 0xa7},
+       {value: 0x812d, lo: 0xa8, hi: 0xa8},
+       {value: 0x8132, lo: 0xa9, hi: 0xa9},
+       {value: 0x8101, lo: 0xaa, hi: 0xab},
+       {value: 0x812d, lo: 0xac, hi: 0xaf},
+       {value: 0x8132, lo: 0xb0, hi: 0xb0},
+       // Block 0x42, offset 0x1b0
+       {value: 0x0007, lo: 0x06},
+       {value: 0x2180, lo: 0x89, hi: 0x89},
+       {value: 0xa000, lo: 0x90, hi: 0x90},
+       {value: 0xa000, lo: 0x92, hi: 0x92},
+       {value: 0xa000, lo: 0x94, hi: 0x94},
+       {value: 0x3bb9, lo: 0x9a, hi: 0x9b},
+       {value: 0x3bc7, lo: 0xae, hi: 0xae},
+       // Block 0x43, offset 0x1b7
+       {value: 0x000e, lo: 0x05},
+       {value: 0x3bce, lo: 0x8d, hi: 0x8e},
+       {value: 0x3bd5, lo: 0x8f, hi: 0x8f},
+       {value: 0xa000, lo: 0x90, hi: 0x90},
+       {value: 0xa000, lo: 0x92, hi: 0x92},
+       {value: 0xa000, lo: 0x94, hi: 0x94},
+       // Block 0x44, offset 0x1bd
+       {value: 0x0173, lo: 0x0e},
+       {value: 0xa000, lo: 0x83, hi: 0x83},
+       {value: 0x3be3, lo: 0x84, hi: 0x84},
+       {value: 0xa000, lo: 0x88, hi: 0x88},
+       {value: 0x3bea, lo: 0x89, hi: 0x89},
+       {value: 0xa000, lo: 0x8b, hi: 0x8b},
+       {value: 0x3bf1, lo: 0x8c, hi: 0x8c},
+       {value: 0xa000, lo: 0xa3, hi: 0xa3},
+       {value: 0x3bf8, lo: 0xa4, hi: 0xa4},
+       {value: 0xa000, lo: 0xa5, hi: 0xa5},
+       {value: 0x3bff, lo: 0xa6, hi: 0xa6},
+       {value: 0x269f, lo: 0xac, hi: 0xad},
+       {value: 0x26a6, lo: 0xaf, hi: 0xaf},
+       {value: 0x281c, lo: 0xb0, hi: 0xb0},
+       {value: 0xa000, lo: 0xbc, hi: 0xbc},
+       // Block 0x45, offset 0x1cc
+       {value: 0x0007, lo: 0x03},
+       {value: 0x3c68, lo: 0xa0, hi: 0xa1},
+       {value: 0x3c92, lo: 0xa2, hi: 0xa3},
+       {value: 0x3cbc, lo: 0xaa, hi: 0xad},
+       // Block 0x46, offset 0x1d0
+       {value: 0x0004, lo: 0x01},
+       {value: 0x048b, lo: 0xa9, hi: 0xaa},
+       // Block 0x47, offset 0x1d2
+       {value: 0x0002, lo: 0x03},
+       {value: 0x0057, lo: 0x80, hi: 0x8f},
+       {value: 0x0083, lo: 0x90, hi: 0xa9},
+       {value: 0x0021, lo: 0xaa, hi: 0xaa},
+       // Block 0x48, offset 0x1d6
+       {value: 0x0000, lo: 0x01},
+       {value: 0x299b, lo: 0x8c, hi: 0x8c},
+       // Block 0x49, offset 0x1d8
+       {value: 0x0263, lo: 0x02},
+       {value: 0x1b8c, lo: 0xb4, hi: 0xb4},
+       {value: 0x192d, lo: 0xb5, hi: 0xb6},
+       // Block 0x4a, offset 0x1db
+       {value: 0x0000, lo: 0x01},
+       {value: 0x4573, lo: 0x9c, hi: 0x9c},
+       // Block 0x4b, offset 0x1dd
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0095, lo: 0xbc, hi: 0xbc},
+       {value: 0x006d, lo: 0xbd, hi: 0xbd},
+       // Block 0x4c, offset 0x1e0
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8132, lo: 0xaf, hi: 0xb1},
+       // Block 0x4d, offset 0x1e2
+       {value: 0x0000, lo: 0x02},
+       {value: 0x047f, lo: 0xaf, hi: 0xaf},
+       {value: 0x8104, lo: 0xbf, hi: 0xbf},
+       // Block 0x4e, offset 0x1e5
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8132, lo: 0xa0, hi: 0xbf},
+       // Block 0x4f, offset 0x1e7
+       {value: 0x0000, lo: 0x01},
+       {value: 0x0dc3, lo: 0x9f, hi: 0x9f},
+       // Block 0x50, offset 0x1e9
+       {value: 0x0000, lo: 0x01},
+       {value: 0x162f, lo: 0xb3, hi: 0xb3},
+       // Block 0x51, offset 0x1eb
+       {value: 0x0004, lo: 0x0b},
+       {value: 0x1597, lo: 0x80, hi: 0x82},
+       {value: 0x15af, lo: 0x83, hi: 0x83},
+       {value: 0x15c7, lo: 0x84, hi: 0x85},
+       {value: 0x15d7, lo: 0x86, hi: 0x89},
+       {value: 0x15eb, lo: 0x8a, hi: 0x8c},
+       {value: 0x15ff, lo: 0x8d, hi: 0x8d},
+       {value: 0x1607, lo: 0x8e, hi: 0x8e},
+       {value: 0x160f, lo: 0x8f, hi: 0x90},
+       {value: 0x161b, lo: 0x91, hi: 0x93},
+       {value: 0x162b, lo: 0x94, hi: 0x94},
+       {value: 0x1633, lo: 0x95, hi: 0x95},
+       // Block 0x52, offset 0x1f7
+       {value: 0x0004, lo: 0x09},
+       {value: 0x0001, lo: 0x80, hi: 0x80},
+       {value: 0x812c, lo: 0xaa, hi: 0xaa},
+       {value: 0x8131, lo: 0xab, hi: 0xab},
+       {value: 0x8133, lo: 0xac, hi: 0xac},
+       {value: 0x812e, lo: 0xad, hi: 0xad},
+       {value: 0x812f, lo: 0xae, hi: 0xae},
+       {value: 0x812f, lo: 0xaf, hi: 0xaf},
+       {value: 0x04b3, lo: 0xb6, hi: 0xb6},
+       {value: 0x0887, lo: 0xb8, hi: 0xba},
+       // Block 0x53, offset 0x201
+       {value: 0x0005, lo: 0x09},
+       {value: 0x0313, lo: 0xb1, hi: 0xb1},
+       {value: 0x0317, lo: 0xb2, hi: 0xb2},
+       {value: 0x4345, lo: 0xb3, hi: 0xb3},
+       {value: 0x031b, lo: 0xb4, hi: 0xb4},
+       {value: 0x434a, lo: 0xb5, hi: 0xb6},
+       {value: 0x031f, lo: 0xb7, hi: 0xb7},
+       {value: 0x0323, lo: 0xb8, hi: 0xb8},
+       {value: 0x0327, lo: 0xb9, hi: 0xb9},
+       {value: 0x4354, lo: 0xba, hi: 0xbf},
+       // Block 0x54, offset 0x20b
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8132, lo: 0xaf, hi: 0xaf},
+       {value: 0x8132, lo: 0xb4, hi: 0xbd},
+       // Block 0x55, offset 0x20e
+       {value: 0x0000, lo: 0x03},
+       {value: 0x020f, lo: 0x9c, hi: 0x9c},
+       {value: 0x0212, lo: 0x9d, hi: 0x9d},
+       {value: 0x8132, lo: 0x9e, hi: 0x9f},
+       // Block 0x56, offset 0x212
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8132, lo: 0xb0, hi: 0xb1},
+       // Block 0x57, offset 0x214
+       {value: 0x0000, lo: 0x01},
+       {value: 0x163b, lo: 0xb0, hi: 0xb0},
+       // Block 0x58, offset 0x216
+       {value: 0x000c, lo: 0x01},
+       {value: 0x00d7, lo: 0xb8, hi: 0xb9},
+       // Block 0x59, offset 0x218
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8104, lo: 0x86, hi: 0x86},
+       // Block 0x5a, offset 0x21a
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8104, lo: 0x84, hi: 0x84},
+       {value: 0x8132, lo: 0xa0, hi: 0xb1},
+       // Block 0x5b, offset 0x21d
+       {value: 0x0000, lo: 0x01},
+       {value: 0x812d, lo: 0xab, hi: 0xad},
+       // Block 0x5c, offset 0x21f
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8104, lo: 0x93, hi: 0x93},
+       // Block 0x5d, offset 0x221
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8102, lo: 0xb3, hi: 0xb3},
+       // Block 0x5e, offset 0x223
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8104, lo: 0x80, hi: 0x80},
+       // Block 0x5f, offset 0x225
+       {value: 0x0000, lo: 0x05},
+       {value: 0x8132, lo: 0xb0, hi: 0xb0},
+       {value: 0x8132, lo: 0xb2, hi: 0xb3},
+       {value: 0x812d, lo: 0xb4, hi: 0xb4},
+       {value: 0x8132, lo: 0xb7, hi: 0xb8},
+       {value: 0x8132, lo: 0xbe, hi: 0xbf},
+       // Block 0x60, offset 0x22b
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8132, lo: 0x81, hi: 0x81},
+       {value: 0x8104, lo: 0xb6, hi: 0xb6},
+       // Block 0x61, offset 0x22e
+       {value: 0x0008, lo: 0x03},
+       {value: 0x1637, lo: 0x9c, hi: 0x9d},
+       {value: 0x0125, lo: 0x9e, hi: 0x9e},
+       {value: 0x1643, lo: 0x9f, hi: 0x9f},
+       // Block 0x62, offset 0x232
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8104, lo: 0xad, hi: 0xad},
+       // Block 0x63, offset 0x234
+       {value: 0x0000, lo: 0x06},
+       {value: 0xe500, lo: 0x80, hi: 0x80},
+       {value: 0xc600, lo: 0x81, hi: 0x9b},
+       {value: 0xe500, lo: 0x9c, hi: 0x9c},
+       {value: 0xc600, lo: 0x9d, hi: 0xb7},
+       {value: 0xe500, lo: 0xb8, hi: 0xb8},
+       {value: 0xc600, lo: 0xb9, hi: 0xbf},
+       // Block 0x64, offset 0x23b
+       {value: 0x0000, lo: 0x05},
+       {value: 0xc600, lo: 0x80, hi: 0x93},
+       {value: 0xe500, lo: 0x94, hi: 0x94},
+       {value: 0xc600, lo: 0x95, hi: 0xaf},
+       {value: 0xe500, lo: 0xb0, hi: 0xb0},
+       {value: 0xc600, lo: 0xb1, hi: 0xbf},
+       // Block 0x65, offset 0x241
+       {value: 0x0000, lo: 0x05},
+       {value: 0xc600, lo: 0x80, hi: 0x8b},
+       {value: 0xe500, lo: 0x8c, hi: 0x8c},
+       {value: 0xc600, lo: 0x8d, hi: 0xa7},
+       {value: 0xe500, lo: 0xa8, hi: 0xa8},
+       {value: 0xc600, lo: 0xa9, hi: 0xbf},
+       // Block 0x66, offset 0x247
+       {value: 0x0000, lo: 0x07},
+       {value: 0xc600, lo: 0x80, hi: 0x83},
+       {value: 0xe500, lo: 0x84, hi: 0x84},
+       {value: 0xc600, lo: 0x85, hi: 0x9f},
+       {value: 0xe500, lo: 0xa0, hi: 0xa0},
+       {value: 0xc600, lo: 0xa1, hi: 0xbb},
+       {value: 0xe500, lo: 0xbc, hi: 0xbc},
+       {value: 0xc600, lo: 0xbd, hi: 0xbf},
+       // Block 0x67, offset 0x24f
+       {value: 0x0000, lo: 0x05},
+       {value: 0xc600, lo: 0x80, hi: 0x97},
+       {value: 0xe500, lo: 0x98, hi: 0x98},
+       {value: 0xc600, lo: 0x99, hi: 0xb3},
+       {value: 0xe500, lo: 0xb4, hi: 0xb4},
+       {value: 0xc600, lo: 0xb5, hi: 0xbf},
+       // Block 0x68, offset 0x255
+       {value: 0x0000, lo: 0x05},
+       {value: 0xc600, lo: 0x80, hi: 0x8f},
+       {value: 0xe500, lo: 0x90, hi: 0x90},
+       {value: 0xc600, lo: 0x91, hi: 0xab},
+       {value: 0xe500, lo: 0xac, hi: 0xac},
+       {value: 0xc600, lo: 0xad, hi: 0xbf},
+       // Block 0x69, offset 0x25b
+       {value: 0x0000, lo: 0x05},
+       {value: 0xc600, lo: 0x80, hi: 0x87},
+       {value: 0xe500, lo: 0x88, hi: 0x88},
+       {value: 0xc600, lo: 0x89, hi: 0xa3},
+       {value: 0xe500, lo: 0xa4, hi: 0xa4},
+       {value: 0xc600, lo: 0xa5, hi: 0xbf},
+       // Block 0x6a, offset 0x261
+       {value: 0x0000, lo: 0x03},
+       {value: 0xc600, lo: 0x80, hi: 0x87},
+       {value: 0xe500, lo: 0x88, hi: 0x88},
+       {value: 0xc600, lo: 0x89, hi: 0xa3},
+       // Block 0x6b, offset 0x265
+       {value: 0x0002, lo: 0x01},
+       {value: 0x0003, lo: 0x81, hi: 0xbf},
+       // Block 0x6c, offset 0x267
+       {value: 0x0000, lo: 0x01},
+       {value: 0x812d, lo: 0xbd, hi: 0xbd},
+       // Block 0x6d, offset 0x269
+       {value: 0x0000, lo: 0x01},
+       {value: 0x812d, lo: 0xa0, hi: 0xa0},
+       // Block 0x6e, offset 0x26b
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8132, lo: 0xb6, hi: 0xba},
+       // Block 0x6f, offset 0x26d
+       {value: 0x002c, lo: 0x05},
+       {value: 0x812d, lo: 0x8d, hi: 0x8d},
+       {value: 0x8132, lo: 0x8f, hi: 0x8f},
+       {value: 0x8132, lo: 0xb8, hi: 0xb8},
+       {value: 0x8101, lo: 0xb9, hi: 0xba},
+       {value: 0x8104, lo: 0xbf, hi: 0xbf},
+       // Block 0x70, offset 0x273
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8132, lo: 0xa5, hi: 0xa5},
+       {value: 0x812d, lo: 0xa6, hi: 0xa6},
+       // Block 0x71, offset 0x276
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8104, lo: 0x86, hi: 0x86},
+       {value: 0x8104, lo: 0xbf, hi: 0xbf},
+       // Block 0x72, offset 0x279
+       {value: 0x17fe, lo: 0x07},
+       {value: 0xa000, lo: 0x99, hi: 0x99},
+       {value: 0x4238, lo: 0x9a, hi: 0x9a},
+       {value: 0xa000, lo: 0x9b, hi: 0x9b},
+       {value: 0x4242, lo: 0x9c, hi: 0x9c},
+       {value: 0xa000, lo: 0xa5, hi: 0xa5},
+       {value: 0x424c, lo: 0xab, hi: 0xab},
+       {value: 0x8104, lo: 0xb9, hi: 0xba},
+       // Block 0x73, offset 0x281
+       {value: 0x0000, lo: 0x06},
+       {value: 0x8132, lo: 0x80, hi: 0x82},
+       {value: 0x9900, lo: 0xa7, hi: 0xa7},
+       {value: 0x2d7e, lo: 0xae, hi: 0xae},
+       {value: 0x2d88, lo: 0xaf, hi: 0xaf},
+       {value: 0xa000, lo: 0xb1, hi: 0xb2},
+       {value: 0x8104, lo: 0xb3, hi: 0xb4},
+       // Block 0x74, offset 0x288
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8104, lo: 0x80, hi: 0x80},
+       {value: 0x8102, lo: 0x8a, hi: 0x8a},
+       // Block 0x75, offset 0x28b
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8104, lo: 0xb5, hi: 0xb5},
+       {value: 0x8102, lo: 0xb6, hi: 0xb6},
+       // Block 0x76, offset 0x28e
+       {value: 0x0002, lo: 0x01},
+       {value: 0x8102, lo: 0xa9, hi: 0xaa},
+       // Block 0x77, offset 0x290
+       {value: 0x0000, lo: 0x07},
+       {value: 0xa000, lo: 0x87, hi: 0x87},
+       {value: 0x2d92, lo: 0x8b, hi: 0x8b},
+       {value: 0x2d9c, lo: 0x8c, hi: 0x8c},
+       {value: 0x8104, lo: 0x8d, hi: 0x8d},
+       {value: 0x9900, lo: 0x97, hi: 0x97},
+       {value: 0x8132, lo: 0xa6, hi: 0xac},
+       {value: 0x8132, lo: 0xb0, hi: 0xb4},
+       // Block 0x78, offset 0x298
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8104, lo: 0x82, hi: 0x82},
+       {value: 0x8102, lo: 0x86, hi: 0x86},
+       // Block 0x79, offset 0x29b
+       {value: 0x6b5a, lo: 0x06},
+       {value: 0x9900, lo: 0xb0, hi: 0xb0},
+       {value: 0xa000, lo: 0xb9, hi: 0xb9},
+       {value: 0x9900, lo: 0xba, hi: 0xba},
+       {value: 0x2db0, lo: 0xbb, hi: 0xbb},
+       {value: 0x2da6, lo: 0xbc, hi: 0xbd},
+       {value: 0x2dba, lo: 0xbe, hi: 0xbe},
+       // Block 0x7a, offset 0x2a2
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8104, lo: 0x82, hi: 0x82},
+       {value: 0x8102, lo: 0x83, hi: 0x83},
+       // Block 0x7b, offset 0x2a5
+       {value: 0x0000, lo: 0x05},
+       {value: 0x9900, lo: 0xaf, hi: 0xaf},
+       {value: 0xa000, lo: 0xb8, hi: 0xb9},
+       {value: 0x2dc4, lo: 0xba, hi: 0xba},
+       {value: 0x2dce, lo: 0xbb, hi: 0xbb},
+       {value: 0x8104, lo: 0xbf, hi: 0xbf},
+       // Block 0x7c, offset 0x2ab
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8102, lo: 0x80, hi: 0x80},
+       // Block 0x7d, offset 0x2ad
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8104, lo: 0xbf, hi: 0xbf},
+       // Block 0x7e, offset 0x2af
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8104, lo: 0xb6, hi: 0xb6},
+       {value: 0x8102, lo: 0xb7, hi: 0xb7},
+       // Block 0x7f, offset 0x2b2
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8104, lo: 0xab, hi: 0xab},
+       // Block 0x80, offset 0x2b4
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8101, lo: 0xb0, hi: 0xb4},
+       // Block 0x81, offset 0x2b6
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8132, lo: 0xb0, hi: 0xb6},
+       // Block 0x82, offset 0x2b8
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8101, lo: 0x9e, hi: 0x9e},
+       // Block 0x83, offset 0x2ba
+       {value: 0x0000, lo: 0x0c},
+       {value: 0x4662, lo: 0x9e, hi: 0x9e},
+       {value: 0x466c, lo: 0x9f, hi: 0x9f},
+       {value: 0x46a0, lo: 0xa0, hi: 0xa0},
+       {value: 0x46ae, lo: 0xa1, hi: 0xa1},
+       {value: 0x46bc, lo: 0xa2, hi: 0xa2},
+       {value: 0x46ca, lo: 0xa3, hi: 0xa3},
+       {value: 0x46d8, lo: 0xa4, hi: 0xa4},
+       {value: 0x812b, lo: 0xa5, hi: 0xa6},
+       {value: 0x8101, lo: 0xa7, hi: 0xa9},
+       {value: 0x8130, lo: 0xad, hi: 0xad},
+       {value: 0x812b, lo: 0xae, hi: 0xb2},
+       {value: 0x812d, lo: 0xbb, hi: 0xbf},
+       // Block 0x84, offset 0x2c7
+       {value: 0x0000, lo: 0x09},
+       {value: 0x812d, lo: 0x80, hi: 0x82},
+       {value: 0x8132, lo: 0x85, hi: 0x89},
+       {value: 0x812d, lo: 0x8a, hi: 0x8b},
+       {value: 0x8132, lo: 0xaa, hi: 0xad},
+       {value: 0x4676, lo: 0xbb, hi: 0xbb},
+       {value: 0x4680, lo: 0xbc, hi: 0xbc},
+       {value: 0x46e6, lo: 0xbd, hi: 0xbd},
+       {value: 0x4702, lo: 0xbe, hi: 0xbe},
+       {value: 0x46f4, lo: 0xbf, hi: 0xbf},
+       // Block 0x85, offset 0x2d1
+       {value: 0x0000, lo: 0x01},
+       {value: 0x4710, lo: 0x80, hi: 0x80},
+       // Block 0x86, offset 0x2d3
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8132, lo: 0x82, hi: 0x84},
+       // Block 0x87, offset 0x2d5
+       {value: 0x0002, lo: 0x03},
+       {value: 0x0043, lo: 0x80, hi: 0x99},
+       {value: 0x0083, lo: 0x9a, hi: 0xb3},
+       {value: 0x0043, lo: 0xb4, hi: 0xbf},
+       // Block 0x88, offset 0x2d9
+       {value: 0x0002, lo: 0x04},
+       {value: 0x005b, lo: 0x80, hi: 0x8d},
+       {value: 0x0083, lo: 0x8e, hi: 0x94},
+       {value: 0x0093, lo: 0x96, hi: 0xa7},
+       {value: 0x0043, lo: 0xa8, hi: 0xbf},
+       // Block 0x89, offset 0x2de
+       {value: 0x0002, lo: 0x0b},
+       {value: 0x0073, lo: 0x80, hi: 0x81},
+       {value: 0x0083, lo: 0x82, hi: 0x9b},
+       {value: 0x0043, lo: 0x9c, hi: 0x9c},
+       {value: 0x0047, lo: 0x9e, hi: 0x9f},
+       {value: 0x004f, lo: 0xa2, hi: 0xa2},
+       {value: 0x0055, lo: 0xa5, hi: 0xa6},
+       {value: 0x005d, lo: 0xa9, hi: 0xac},
+       {value: 0x0067, lo: 0xae, hi: 0xb5},
+       {value: 0x0083, lo: 0xb6, hi: 0xb9},
+       {value: 0x008d, lo: 0xbb, hi: 0xbb},
+       {value: 0x0091, lo: 0xbd, hi: 0xbf},
+       // Block 0x8a, offset 0x2ea
+       {value: 0x0002, lo: 0x04},
+       {value: 0x0097, lo: 0x80, hi: 0x83},
+       {value: 0x00a1, lo: 0x85, hi: 0x8f},
+       {value: 0x0043, lo: 0x90, hi: 0xa9},
+       {value: 0x0083, lo: 0xaa, hi: 0xbf},
+       // Block 0x8b, offset 0x2ef
+       {value: 0x0002, lo: 0x08},
+       {value: 0x00af, lo: 0x80, hi: 0x83},
+       {value: 0x0043, lo: 0x84, hi: 0x85},
+       {value: 0x0049, lo: 0x87, hi: 0x8a},
+       {value: 0x0055, lo: 0x8d, hi: 0x94},
+       {value: 0x0067, lo: 0x96, hi: 0x9c},
+       {value: 0x0083, lo: 0x9e, hi: 0xb7},
+       {value: 0x0043, lo: 0xb8, hi: 0xb9},
+       {value: 0x0049, lo: 0xbb, hi: 0xbe},
+       // Block 0x8c, offset 0x2f8
+       {value: 0x0002, lo: 0x05},
+       {value: 0x0053, lo: 0x80, hi: 0x84},
+       {value: 0x005f, lo: 0x86, hi: 0x86},
+       {value: 0x0067, lo: 0x8a, hi: 0x90},
+       {value: 0x0083, lo: 0x92, hi: 0xab},
+       {value: 0x0043, lo: 0xac, hi: 0xbf},
+       // Block 0x8d, offset 0x2fe
+       {value: 0x0002, lo: 0x04},
+       {value: 0x006b, lo: 0x80, hi: 0x85},
+       {value: 0x0083, lo: 0x86, hi: 0x9f},
+       {value: 0x0043, lo: 0xa0, hi: 0xb9},
+       {value: 0x0083, lo: 0xba, hi: 0xbf},
+       // Block 0x8e, offset 0x303
+       {value: 0x0002, lo: 0x03},
+       {value: 0x008f, lo: 0x80, hi: 0x93},
+       {value: 0x0043, lo: 0x94, hi: 0xad},
+       {value: 0x0083, lo: 0xae, hi: 0xbf},
+       // Block 0x8f, offset 0x307
+       {value: 0x0002, lo: 0x04},
+       {value: 0x00a7, lo: 0x80, hi: 0x87},
+       {value: 0x0043, lo: 0x88, hi: 0xa1},
+       {value: 0x0083, lo: 0xa2, hi: 0xbb},
+       {value: 0x0043, lo: 0xbc, hi: 0xbf},
+       // Block 0x90, offset 0x30c
+       {value: 0x0002, lo: 0x03},
+       {value: 0x004b, lo: 0x80, hi: 0x95},
+       {value: 0x0083, lo: 0x96, hi: 0xaf},
+       {value: 0x0043, lo: 0xb0, hi: 0xbf},
+       // Block 0x91, offset 0x310
+       {value: 0x0003, lo: 0x0f},
+       {value: 0x01b8, lo: 0x80, hi: 0x80},
+       {value: 0x045f, lo: 0x81, hi: 0x81},
+       {value: 0x01bb, lo: 0x82, hi: 0x9a},
+       {value: 0x045b, lo: 0x9b, hi: 0x9b},
+       {value: 0x01c7, lo: 0x9c, hi: 0x9c},
+       {value: 0x01d0, lo: 0x9d, hi: 0x9d},
+       {value: 0x01d6, lo: 0x9e, hi: 0x9e},
+       {value: 0x01fa, lo: 0x9f, hi: 0x9f},
+       {value: 0x01eb, lo: 0xa0, hi: 0xa0},
+       {value: 0x01e8, lo: 0xa1, hi: 0xa1},
+       {value: 0x0173, lo: 0xa2, hi: 0xb2},
+       {value: 0x0188, lo: 0xb3, hi: 0xb3},
+       {value: 0x01a6, lo: 0xb4, hi: 0xba},
+       {value: 0x045f, lo: 0xbb, hi: 0xbb},
+       {value: 0x01bb, lo: 0xbc, hi: 0xbf},
+       // Block 0x92, offset 0x320
+       {value: 0x0003, lo: 0x0d},
+       {value: 0x01c7, lo: 0x80, hi: 0x94},
+       {value: 0x045b, lo: 0x95, hi: 0x95},
+       {value: 0x01c7, lo: 0x96, hi: 0x96},
+       {value: 0x01d0, lo: 0x97, hi: 0x97},
+       {value: 0x01d6, lo: 0x98, hi: 0x98},
+       {value: 0x01fa, lo: 0x99, hi: 0x99},
+       {value: 0x01eb, lo: 0x9a, hi: 0x9a},
+       {value: 0x01e8, lo: 0x9b, hi: 0x9b},
+       {value: 0x0173, lo: 0x9c, hi: 0xac},
+       {value: 0x0188, lo: 0xad, hi: 0xad},
+       {value: 0x01a6, lo: 0xae, hi: 0xb4},
+       {value: 0x045f, lo: 0xb5, hi: 0xb5},
+       {value: 0x01bb, lo: 0xb6, hi: 0xbf},
+       // Block 0x93, offset 0x32e
+       {value: 0x0003, lo: 0x0d},
+       {value: 0x01d9, lo: 0x80, hi: 0x8e},
+       {value: 0x045b, lo: 0x8f, hi: 0x8f},
+       {value: 0x01c7, lo: 0x90, hi: 0x90},
+       {value: 0x01d0, lo: 0x91, hi: 0x91},
+       {value: 0x01d6, lo: 0x92, hi: 0x92},
+       {value: 0x01fa, lo: 0x93, hi: 0x93},
+       {value: 0x01eb, lo: 0x94, hi: 0x94},
+       {value: 0x01e8, lo: 0x95, hi: 0x95},
+       {value: 0x0173, lo: 0x96, hi: 0xa6},
+       {value: 0x0188, lo: 0xa7, hi: 0xa7},
+       {value: 0x01a6, lo: 0xa8, hi: 0xae},
+       {value: 0x045f, lo: 0xaf, hi: 0xaf},
+       {value: 0x01bb, lo: 0xb0, hi: 0xbf},
+       // Block 0x94, offset 0x33c
+       {value: 0x0003, lo: 0x0d},
+       {value: 0x01eb, lo: 0x80, hi: 0x88},
+       {value: 0x045b, lo: 0x89, hi: 0x89},
+       {value: 0x01c7, lo: 0x8a, hi: 0x8a},
+       {value: 0x01d0, lo: 0x8b, hi: 0x8b},
+       {value: 0x01d6, lo: 0x8c, hi: 0x8c},
+       {value: 0x01fa, lo: 0x8d, hi: 0x8d},
+       {value: 0x01eb, lo: 0x8e, hi: 0x8e},
+       {value: 0x01e8, lo: 0x8f, hi: 0x8f},
+       {value: 0x0173, lo: 0x90, hi: 0xa0},
+       {value: 0x0188, lo: 0xa1, hi: 0xa1},
+       {value: 0x01a6, lo: 0xa2, hi: 0xa8},
+       {value: 0x045f, lo: 0xa9, hi: 0xa9},
+       {value: 0x01bb, lo: 0xaa, hi: 0xbf},
+       // Block 0x95, offset 0x34a
+       {value: 0x0000, lo: 0x05},
+       {value: 0x8132, lo: 0x80, hi: 0x86},
+       {value: 0x8132, lo: 0x88, hi: 0x98},
+       {value: 0x8132, lo: 0x9b, hi: 0xa1},
+       {value: 0x8132, lo: 0xa3, hi: 0xa4},
+       {value: 0x8132, lo: 0xa6, hi: 0xaa},
+       // Block 0x96, offset 0x350
+       {value: 0x0000, lo: 0x01},
+       {value: 0x812d, lo: 0x90, hi: 0x96},
+       // Block 0x97, offset 0x352
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8132, lo: 0x84, hi: 0x89},
+       {value: 0x8102, lo: 0x8a, hi: 0x8a},
+       // Block 0x98, offset 0x355
+       {value: 0x0002, lo: 0x09},
+       {value: 0x0063, lo: 0x80, hi: 0x89},
+       {value: 0x1951, lo: 0x8a, hi: 0x8a},
+       {value: 0x1981, lo: 0x8b, hi: 0x8b},
+       {value: 0x199c, lo: 0x8c, hi: 0x8c},
+       {value: 0x19a2, lo: 0x8d, hi: 0x8d},
+       {value: 0x1bc0, lo: 0x8e, hi: 0x8e},
+       {value: 0x19ae, lo: 0x8f, hi: 0x8f},
+       {value: 0x197b, lo: 0xaa, hi: 0xaa},
+       {value: 0x197e, lo: 0xab, hi: 0xab},
+       // Block 0x99, offset 0x35f
+       {value: 0x0000, lo: 0x01},
+       {value: 0x193f, lo: 0x90, hi: 0x90},
+       // Block 0x9a, offset 0x361
+       {value: 0x0028, lo: 0x09},
+       {value: 0x2862, lo: 0x80, hi: 0x80},
+       {value: 0x2826, lo: 0x81, hi: 0x81},
+       {value: 0x2830, lo: 0x82, hi: 0x82},
+       {value: 0x2844, lo: 0x83, hi: 0x84},
+       {value: 0x284e, lo: 0x85, hi: 0x86},
+       {value: 0x283a, lo: 0x87, hi: 0x87},
+       {value: 0x2858, lo: 0x88, hi: 0x88},
+       {value: 0x0b6f, lo: 0x90, hi: 0x90},
+       {value: 0x08e7, lo: 0x91, hi: 0x91},
+}
+
+// recompMap: 7520 bytes (entries only)
+var recompMap = map[uint32]rune{
+       0x00410300: 0x00C0,
+       0x00410301: 0x00C1,
+       0x00410302: 0x00C2,
+       0x00410303: 0x00C3,
+       0x00410308: 0x00C4,
+       0x0041030A: 0x00C5,
+       0x00430327: 0x00C7,
+       0x00450300: 0x00C8,
+       0x00450301: 0x00C9,
+       0x00450302: 0x00CA,
+       0x00450308: 0x00CB,
+       0x00490300: 0x00CC,
+       0x00490301: 0x00CD,
+       0x00490302: 0x00CE,
+       0x00490308: 0x00CF,
+       0x004E0303: 0x00D1,
+       0x004F0300: 0x00D2,
+       0x004F0301: 0x00D3,
+       0x004F0302: 0x00D4,
+       0x004F0303: 0x00D5,
+       0x004F0308: 0x00D6,
+       0x00550300: 0x00D9,
+       0x00550301: 0x00DA,
+       0x00550302: 0x00DB,
+       0x00550308: 0x00DC,
+       0x00590301: 0x00DD,
+       0x00610300: 0x00E0,
+       0x00610301: 0x00E1,
+       0x00610302: 0x00E2,
+       0x00610303: 0x00E3,
+       0x00610308: 0x00E4,
+       0x0061030A: 0x00E5,
+       0x00630327: 0x00E7,
+       0x00650300: 0x00E8,
+       0x00650301: 0x00E9,
+       0x00650302: 0x00EA,
+       0x00650308: 0x00EB,
+       0x00690300: 0x00EC,
+       0x00690301: 0x00ED,
+       0x00690302: 0x00EE,
+       0x00690308: 0x00EF,
+       0x006E0303: 0x00F1,
+       0x006F0300: 0x00F2,
+       0x006F0301: 0x00F3,
+       0x006F0302: 0x00F4,
+       0x006F0303: 0x00F5,
+       0x006F0308: 0x00F6,
+       0x00750300: 0x00F9,
+       0x00750301: 0x00FA,
+       0x00750302: 0x00FB,
+       0x00750308: 0x00FC,
+       0x00790301: 0x00FD,
+       0x00790308: 0x00FF,
+       0x00410304: 0x0100,
+       0x00610304: 0x0101,
+       0x00410306: 0x0102,
+       0x00610306: 0x0103,
+       0x00410328: 0x0104,
+       0x00610328: 0x0105,
+       0x00430301: 0x0106,
+       0x00630301: 0x0107,
+       0x00430302: 0x0108,
+       0x00630302: 0x0109,
+       0x00430307: 0x010A,
+       0x00630307: 0x010B,
+       0x0043030C: 0x010C,
+       0x0063030C: 0x010D,
+       0x0044030C: 0x010E,
+       0x0064030C: 0x010F,
+       0x00450304: 0x0112,
+       0x00650304: 0x0113,
+       0x00450306: 0x0114,
+       0x00650306: 0x0115,
+       0x00450307: 0x0116,
+       0x00650307: 0x0117,
+       0x00450328: 0x0118,
+       0x00650328: 0x0119,
+       0x0045030C: 0x011A,
+       0x0065030C: 0x011B,
+       0x00470302: 0x011C,
+       0x00670302: 0x011D,
+       0x00470306: 0x011E,
+       0x00670306: 0x011F,
+       0x00470307: 0x0120,
+       0x00670307: 0x0121,
+       0x00470327: 0x0122,
+       0x00670327: 0x0123,
+       0x00480302: 0x0124,
+       0x00680302: 0x0125,
+       0x00490303: 0x0128,
+       0x00690303: 0x0129,
+       0x00490304: 0x012A,
+       0x00690304: 0x012B,
+       0x00490306: 0x012C,
+       0x00690306: 0x012D,
+       0x00490328: 0x012E,
+       0x00690328: 0x012F,
+       0x00490307: 0x0130,
+       0x004A0302: 0x0134,
+       0x006A0302: 0x0135,
+       0x004B0327: 0x0136,
+       0x006B0327: 0x0137,
+       0x004C0301: 0x0139,
+       0x006C0301: 0x013A,
+       0x004C0327: 0x013B,
+       0x006C0327: 0x013C,
+       0x004C030C: 0x013D,
+       0x006C030C: 0x013E,
+       0x004E0301: 0x0143,
+       0x006E0301: 0x0144,
+       0x004E0327: 0x0145,
+       0x006E0327: 0x0146,
+       0x004E030C: 0x0147,
+       0x006E030C: 0x0148,
+       0x004F0304: 0x014C,
+       0x006F0304: 0x014D,
+       0x004F0306: 0x014E,
+       0x006F0306: 0x014F,
+       0x004F030B: 0x0150,
+       0x006F030B: 0x0151,
+       0x00520301: 0x0154,
+       0x00720301: 0x0155,
+       0x00520327: 0x0156,
+       0x00720327: 0x0157,
+       0x0052030C: 0x0158,
+       0x0072030C: 0x0159,
+       0x00530301: 0x015A,
+       0x00730301: 0x015B,
+       0x00530302: 0x015C,
+       0x00730302: 0x015D,
+       0x00530327: 0x015E,
+       0x00730327: 0x015F,
+       0x0053030C: 0x0160,
+       0x0073030C: 0x0161,
+       0x00540327: 0x0162,
+       0x00740327: 0x0163,
+       0x0054030C: 0x0164,
+       0x0074030C: 0x0165,
+       0x00550303: 0x0168,
+       0x00750303: 0x0169,
+       0x00550304: 0x016A,
+       0x00750304: 0x016B,
+       0x00550306: 0x016C,
+       0x00750306: 0x016D,
+       0x0055030A: 0x016E,
+       0x0075030A: 0x016F,
+       0x0055030B: 0x0170,
+       0x0075030B: 0x0171,
+       0x00550328: 0x0172,
+       0x00750328: 0x0173,
+       0x00570302: 0x0174,
+       0x00770302: 0x0175,
+       0x00590302: 0x0176,
+       0x00790302: 0x0177,
+       0x00590308: 0x0178,
+       0x005A0301: 0x0179,
+       0x007A0301: 0x017A,
+       0x005A0307: 0x017B,
+       0x007A0307: 0x017C,
+       0x005A030C: 0x017D,
+       0x007A030C: 0x017E,
+       0x004F031B: 0x01A0,
+       0x006F031B: 0x01A1,
+       0x0055031B: 0x01AF,
+       0x0075031B: 0x01B0,
+       0x0041030C: 0x01CD,
+       0x0061030C: 0x01CE,
+       0x0049030C: 0x01CF,
+       0x0069030C: 0x01D0,
+       0x004F030C: 0x01D1,
+       0x006F030C: 0x01D2,
+       0x0055030C: 0x01D3,
+       0x0075030C: 0x01D4,
+       0x00DC0304: 0x01D5,
+       0x00FC0304: 0x01D6,
+       0x00DC0301: 0x01D7,
+       0x00FC0301: 0x01D8,
+       0x00DC030C: 0x01D9,
+       0x00FC030C: 0x01DA,
+       0x00DC0300: 0x01DB,
+       0x00FC0300: 0x01DC,
+       0x00C40304: 0x01DE,
+       0x00E40304: 0x01DF,
+       0x02260304: 0x01E0,
+       0x02270304: 0x01E1,
+       0x00C60304: 0x01E2,
+       0x00E60304: 0x01E3,
+       0x0047030C: 0x01E6,
+       0x0067030C: 0x01E7,
+       0x004B030C: 0x01E8,
+       0x006B030C: 0x01E9,
+       0x004F0328: 0x01EA,
+       0x006F0328: 0x01EB,
+       0x01EA0304: 0x01EC,
+       0x01EB0304: 0x01ED,
+       0x01B7030C: 0x01EE,
+       0x0292030C: 0x01EF,
+       0x006A030C: 0x01F0,
+       0x00470301: 0x01F4,
+       0x00670301: 0x01F5,
+       0x004E0300: 0x01F8,
+       0x006E0300: 0x01F9,
+       0x00C50301: 0x01FA,
+       0x00E50301: 0x01FB,
+       0x00C60301: 0x01FC,
+       0x00E60301: 0x01FD,
+       0x00D80301: 0x01FE,
+       0x00F80301: 0x01FF,
+       0x0041030F: 0x0200,
+       0x0061030F: 0x0201,
+       0x00410311: 0x0202,
+       0x00610311: 0x0203,
+       0x0045030F: 0x0204,
+       0x0065030F: 0x0205,
+       0x00450311: 0x0206,
+       0x00650311: 0x0207,
+       0x0049030F: 0x0208,
+       0x0069030F: 0x0209,
+       0x00490311: 0x020A,
+       0x00690311: 0x020B,
+       0x004F030F: 0x020C,
+       0x006F030F: 0x020D,
+       0x004F0311: 0x020E,
+       0x006F0311: 0x020F,
+       0x0052030F: 0x0210,
+       0x0072030F: 0x0211,
+       0x00520311: 0x0212,
+       0x00720311: 0x0213,
+       0x0055030F: 0x0214,
+       0x0075030F: 0x0215,
+       0x00550311: 0x0216,
+       0x00750311: 0x0217,
+       0x00530326: 0x0218,
+       0x00730326: 0x0219,
+       0x00540326: 0x021A,
+       0x00740326: 0x021B,
+       0x0048030C: 0x021E,
+       0x0068030C: 0x021F,
+       0x00410307: 0x0226,
+       0x00610307: 0x0227,
+       0x00450327: 0x0228,
+       0x00650327: 0x0229,
+       0x00D60304: 0x022A,
+       0x00F60304: 0x022B,
+       0x00D50304: 0x022C,
+       0x00F50304: 0x022D,
+       0x004F0307: 0x022E,
+       0x006F0307: 0x022F,
+       0x022E0304: 0x0230,
+       0x022F0304: 0x0231,
+       0x00590304: 0x0232,
+       0x00790304: 0x0233,
+       0x00A80301: 0x0385,
+       0x03910301: 0x0386,
+       0x03950301: 0x0388,
+       0x03970301: 0x0389,
+       0x03990301: 0x038A,
+       0x039F0301: 0x038C,
+       0x03A50301: 0x038E,
+       0x03A90301: 0x038F,
+       0x03CA0301: 0x0390,
+       0x03990308: 0x03AA,
+       0x03A50308: 0x03AB,
+       0x03B10301: 0x03AC,
+       0x03B50301: 0x03AD,
+       0x03B70301: 0x03AE,
+       0x03B90301: 0x03AF,
+       0x03CB0301: 0x03B0,
+       0x03B90308: 0x03CA,
+       0x03C50308: 0x03CB,
+       0x03BF0301: 0x03CC,
+       0x03C50301: 0x03CD,
+       0x03C90301: 0x03CE,
+       0x03D20301: 0x03D3,
+       0x03D20308: 0x03D4,
+       0x04150300: 0x0400,
+       0x04150308: 0x0401,
+       0x04130301: 0x0403,
+       0x04060308: 0x0407,
+       0x041A0301: 0x040C,
+       0x04180300: 0x040D,
+       0x04230306: 0x040E,
+       0x04180306: 0x0419,
+       0x04380306: 0x0439,
+       0x04350300: 0x0450,
+       0x04350308: 0x0451,
+       0x04330301: 0x0453,
+       0x04560308: 0x0457,
+       0x043A0301: 0x045C,
+       0x04380300: 0x045D,
+       0x04430306: 0x045E,
+       0x0474030F: 0x0476,
+       0x0475030F: 0x0477,
+       0x04160306: 0x04C1,
+       0x04360306: 0x04C2,
+       0x04100306: 0x04D0,
+       0x04300306: 0x04D1,
+       0x04100308: 0x04D2,
+       0x04300308: 0x04D3,
+       0x04150306: 0x04D6,
+       0x04350306: 0x04D7,
+       0x04D80308: 0x04DA,
+       0x04D90308: 0x04DB,
+       0x04160308: 0x04DC,
+       0x04360308: 0x04DD,
+       0x04170308: 0x04DE,
+       0x04370308: 0x04DF,
+       0x04180304: 0x04E2,
+       0x04380304: 0x04E3,
+       0x04180308: 0x04E4,
+       0x04380308: 0x04E5,
+       0x041E0308: 0x04E6,
+       0x043E0308: 0x04E7,
+       0x04E80308: 0x04EA,
+       0x04E90308: 0x04EB,
+       0x042D0308: 0x04EC,
+       0x044D0308: 0x04ED,
+       0x04230304: 0x04EE,
+       0x04430304: 0x04EF,
+       0x04230308: 0x04F0,
+       0x04430308: 0x04F1,
+       0x0423030B: 0x04F2,
+       0x0443030B: 0x04F3,
+       0x04270308: 0x04F4,
+       0x04470308: 0x04F5,
+       0x042B0308: 0x04F8,
+       0x044B0308: 0x04F9,
+       0x06270653: 0x0622,
+       0x06270654: 0x0623,
+       0x06480654: 0x0624,
+       0x06270655: 0x0625,
+       0x064A0654: 0x0626,
+       0x06D50654: 0x06C0,
+       0x06C10654: 0x06C2,
+       0x06D20654: 0x06D3,
+       0x0928093C: 0x0929,
+       0x0930093C: 0x0931,
+       0x0933093C: 0x0934,
+       0x09C709BE: 0x09CB,
+       0x09C709D7: 0x09CC,
+       0x0B470B56: 0x0B48,
+       0x0B470B3E: 0x0B4B,
+       0x0B470B57: 0x0B4C,
+       0x0B920BD7: 0x0B94,
+       0x0BC60BBE: 0x0BCA,
+       0x0BC70BBE: 0x0BCB,
+       0x0BC60BD7: 0x0BCC,
+       0x0C460C56: 0x0C48,
+       0x0CBF0CD5: 0x0CC0,
+       0x0CC60CD5: 0x0CC7,
+       0x0CC60CD6: 0x0CC8,
+       0x0CC60CC2: 0x0CCA,
+       0x0CCA0CD5: 0x0CCB,
+       0x0D460D3E: 0x0D4A,
+       0x0D470D3E: 0x0D4B,
+       0x0D460D57: 0x0D4C,
+       0x0DD90DCA: 0x0DDA,
+       0x0DD90DCF: 0x0DDC,
+       0x0DDC0DCA: 0x0DDD,
+       0x0DD90DDF: 0x0DDE,
+       0x1025102E: 0x1026,
+       0x1B051B35: 0x1B06,
+       0x1B071B35: 0x1B08,
+       0x1B091B35: 0x1B0A,
+       0x1B0B1B35: 0x1B0C,
+       0x1B0D1B35: 0x1B0E,
+       0x1B111B35: 0x1B12,
+       0x1B3A1B35: 0x1B3B,
+       0x1B3C1B35: 0x1B3D,
+       0x1B3E1B35: 0x1B40,
+       0x1B3F1B35: 0x1B41,
+       0x1B421B35: 0x1B43,
+       0x00410325: 0x1E00,
+       0x00610325: 0x1E01,
+       0x00420307: 0x1E02,
+       0x00620307: 0x1E03,
+       0x00420323: 0x1E04,
+       0x00620323: 0x1E05,
+       0x00420331: 0x1E06,
+       0x00620331: 0x1E07,
+       0x00C70301: 0x1E08,
+       0x00E70301: 0x1E09,
+       0x00440307: 0x1E0A,
+       0x00640307: 0x1E0B,
+       0x00440323: 0x1E0C,
+       0x00640323: 0x1E0D,
+       0x00440331: 0x1E0E,
+       0x00640331: 0x1E0F,
+       0x00440327: 0x1E10,
+       0x00640327: 0x1E11,
+       0x0044032D: 0x1E12,
+       0x0064032D: 0x1E13,
+       0x01120300: 0x1E14,
+       0x01130300: 0x1E15,
+       0x01120301: 0x1E16,
+       0x01130301: 0x1E17,
+       0x0045032D: 0x1E18,
+       0x0065032D: 0x1E19,
+       0x00450330: 0x1E1A,
+       0x00650330: 0x1E1B,
+       0x02280306: 0x1E1C,
+       0x02290306: 0x1E1D,
+       0x00460307: 0x1E1E,
+       0x00660307: 0x1E1F,
+       0x00470304: 0x1E20,
+       0x00670304: 0x1E21,
+       0x00480307: 0x1E22,
+       0x00680307: 0x1E23,
+       0x00480323: 0x1E24,
+       0x00680323: 0x1E25,
+       0x00480308: 0x1E26,
+       0x00680308: 0x1E27,
+       0x00480327: 0x1E28,
+       0x00680327: 0x1E29,
+       0x0048032E: 0x1E2A,
+       0x0068032E: 0x1E2B,
+       0x00490330: 0x1E2C,
+       0x00690330: 0x1E2D,
+       0x00CF0301: 0x1E2E,
+       0x00EF0301: 0x1E2F,
+       0x004B0301: 0x1E30,
+       0x006B0301: 0x1E31,
+       0x004B0323: 0x1E32,
+       0x006B0323: 0x1E33,
+       0x004B0331: 0x1E34,
+       0x006B0331: 0x1E35,
+       0x004C0323: 0x1E36,
+       0x006C0323: 0x1E37,
+       0x1E360304: 0x1E38,
+       0x1E370304: 0x1E39,
+       0x004C0331: 0x1E3A,
+       0x006C0331: 0x1E3B,
+       0x004C032D: 0x1E3C,
+       0x006C032D: 0x1E3D,
+       0x004D0301: 0x1E3E,
+       0x006D0301: 0x1E3F,
+       0x004D0307: 0x1E40,
+       0x006D0307: 0x1E41,
+       0x004D0323: 0x1E42,
+       0x006D0323: 0x1E43,
+       0x004E0307: 0x1E44,
+       0x006E0307: 0x1E45,
+       0x004E0323: 0x1E46,
+       0x006E0323: 0x1E47,
+       0x004E0331: 0x1E48,
+       0x006E0331: 0x1E49,
+       0x004E032D: 0x1E4A,
+       0x006E032D: 0x1E4B,
+       0x00D50301: 0x1E4C,
+       0x00F50301: 0x1E4D,
+       0x00D50308: 0x1E4E,
+       0x00F50308: 0x1E4F,
+       0x014C0300: 0x1E50,
+       0x014D0300: 0x1E51,
+       0x014C0301: 0x1E52,
+       0x014D0301: 0x1E53,
+       0x00500301: 0x1E54,
+       0x00700301: 0x1E55,
+       0x00500307: 0x1E56,
+       0x00700307: 0x1E57,
+       0x00520307: 0x1E58,
+       0x00720307: 0x1E59,
+       0x00520323: 0x1E5A,
+       0x00720323: 0x1E5B,
+       0x1E5A0304: 0x1E5C,
+       0x1E5B0304: 0x1E5D,
+       0x00520331: 0x1E5E,
+       0x00720331: 0x1E5F,
+       0x00530307: 0x1E60,
+       0x00730307: 0x1E61,
+       0x00530323: 0x1E62,
+       0x00730323: 0x1E63,
+       0x015A0307: 0x1E64,
+       0x015B0307: 0x1E65,
+       0x01600307: 0x1E66,
+       0x01610307: 0x1E67,
+       0x1E620307: 0x1E68,
+       0x1E630307: 0x1E69,
+       0x00540307: 0x1E6A,
+       0x00740307: 0x1E6B,
+       0x00540323: 0x1E6C,
+       0x00740323: 0x1E6D,
+       0x00540331: 0x1E6E,
+       0x00740331: 0x1E6F,
+       0x0054032D: 0x1E70,
+       0x0074032D: 0x1E71,
+       0x00550324: 0x1E72,
+       0x00750324: 0x1E73,
+       0x00550330: 0x1E74,
+       0x00750330: 0x1E75,
+       0x0055032D: 0x1E76,
+       0x0075032D: 0x1E77,
+       0x01680301: 0x1E78,
+       0x01690301: 0x1E79,
+       0x016A0308: 0x1E7A,
+       0x016B0308: 0x1E7B,
+       0x00560303: 0x1E7C,
+       0x00760303: 0x1E7D,
+       0x00560323: 0x1E7E,
+       0x00760323: 0x1E7F,
+       0x00570300: 0x1E80,
+       0x00770300: 0x1E81,
+       0x00570301: 0x1E82,
+       0x00770301: 0x1E83,
+       0x00570308: 0x1E84,
+       0x00770308: 0x1E85,
+       0x00570307: 0x1E86,
+       0x00770307: 0x1E87,
+       0x00570323: 0x1E88,
+       0x00770323: 0x1E89,
+       0x00580307: 0x1E8A,
+       0x00780307: 0x1E8B,
+       0x00580308: 0x1E8C,
+       0x00780308: 0x1E8D,
+       0x00590307: 0x1E8E,
+       0x00790307: 0x1E8F,
+       0x005A0302: 0x1E90,
+       0x007A0302: 0x1E91,
+       0x005A0323: 0x1E92,
+       0x007A0323: 0x1E93,
+       0x005A0331: 0x1E94,
+       0x007A0331: 0x1E95,
+       0x00680331: 0x1E96,
+       0x00740308: 0x1E97,
+       0x0077030A: 0x1E98,
+       0x0079030A: 0x1E99,
+       0x017F0307: 0x1E9B,
+       0x00410323: 0x1EA0,
+       0x00610323: 0x1EA1,
+       0x00410309: 0x1EA2,
+       0x00610309: 0x1EA3,
+       0x00C20301: 0x1EA4,
+       0x00E20301: 0x1EA5,
+       0x00C20300: 0x1EA6,
+       0x00E20300: 0x1EA7,
+       0x00C20309: 0x1EA8,
+       0x00E20309: 0x1EA9,
+       0x00C20303: 0x1EAA,
+       0x00E20303: 0x1EAB,
+       0x1EA00302: 0x1EAC,
+       0x1EA10302: 0x1EAD,
+       0x01020301: 0x1EAE,
+       0x01030301: 0x1EAF,
+       0x01020300: 0x1EB0,
+       0x01030300: 0x1EB1,
+       0x01020309: 0x1EB2,
+       0x01030309: 0x1EB3,
+       0x01020303: 0x1EB4,
+       0x01030303: 0x1EB5,
+       0x1EA00306: 0x1EB6,
+       0x1EA10306: 0x1EB7,
+       0x00450323: 0x1EB8,
+       0x00650323: 0x1EB9,
+       0x00450309: 0x1EBA,
+       0x00650309: 0x1EBB,
+       0x00450303: 0x1EBC,
+       0x00650303: 0x1EBD,
+       0x00CA0301: 0x1EBE,
+       0x00EA0301: 0x1EBF,
+       0x00CA0300: 0x1EC0,
+       0x00EA0300: 0x1EC1,
+       0x00CA0309: 0x1EC2,
+       0x00EA0309: 0x1EC3,
+       0x00CA0303: 0x1EC4,
+       0x00EA0303: 0x1EC5,
+       0x1EB80302: 0x1EC6,
+       0x1EB90302: 0x1EC7,
+       0x00490309: 0x1EC8,
+       0x00690309: 0x1EC9,
+       0x00490323: 0x1ECA,
+       0x00690323: 0x1ECB,
+       0x004F0323: 0x1ECC,
+       0x006F0323: 0x1ECD,
+       0x004F0309: 0x1ECE,
+       0x006F0309: 0x1ECF,
+       0x00D40301: 0x1ED0,
+       0x00F40301: 0x1ED1,
+       0x00D40300: 0x1ED2,
+       0x00F40300: 0x1ED3,
+       0x00D40309: 0x1ED4,
+       0x00F40309: 0x1ED5,
+       0x00D40303: 0x1ED6,
+       0x00F40303: 0x1ED7,
+       0x1ECC0302: 0x1ED8,
+       0x1ECD0302: 0x1ED9,
+       0x01A00301: 0x1EDA,
+       0x01A10301: 0x1EDB,
+       0x01A00300: 0x1EDC,
+       0x01A10300: 0x1EDD,
+       0x01A00309: 0x1EDE,
+       0x01A10309: 0x1EDF,
+       0x01A00303: 0x1EE0,
+       0x01A10303: 0x1EE1,
+       0x01A00323: 0x1EE2,
+       0x01A10323: 0x1EE3,
+       0x00550323: 0x1EE4,
+       0x00750323: 0x1EE5,
+       0x00550309: 0x1EE6,
+       0x00750309: 0x1EE7,
+       0x01AF0301: 0x1EE8,
+       0x01B00301: 0x1EE9,
+       0x01AF0300: 0x1EEA,
+       0x01B00300: 0x1EEB,
+       0x01AF0309: 0x1EEC,
+       0x01B00309: 0x1EED,
+       0x01AF0303: 0x1EEE,
+       0x01B00303: 0x1EEF,
+       0x01AF0323: 0x1EF0,
+       0x01B00323: 0x1EF1,
+       0x00590300: 0x1EF2,
+       0x00790300: 0x1EF3,
+       0x00590323: 0x1EF4,
+       0x00790323: 0x1EF5,
+       0x00590309: 0x1EF6,
+       0x00790309: 0x1EF7,
+       0x00590303: 0x1EF8,
+       0x00790303: 0x1EF9,
+       0x03B10313: 0x1F00,
+       0x03B10314: 0x1F01,
+       0x1F000300: 0x1F02,
+       0x1F010300: 0x1F03,
+       0x1F000301: 0x1F04,
+       0x1F010301: 0x1F05,
+       0x1F000342: 0x1F06,
+       0x1F010342: 0x1F07,
+       0x03910313: 0x1F08,
+       0x03910314: 0x1F09,
+       0x1F080300: 0x1F0A,
+       0x1F090300: 0x1F0B,
+       0x1F080301: 0x1F0C,
+       0x1F090301: 0x1F0D,
+       0x1F080342: 0x1F0E,
+       0x1F090342: 0x1F0F,
+       0x03B50313: 0x1F10,
+       0x03B50314: 0x1F11,
+       0x1F100300: 0x1F12,
+       0x1F110300: 0x1F13,
+       0x1F100301: 0x1F14,
+       0x1F110301: 0x1F15,
+       0x03950313: 0x1F18,
+       0x03950314: 0x1F19,
+       0x1F180300: 0x1F1A,
+       0x1F190300: 0x1F1B,
+       0x1F180301: 0x1F1C,
+       0x1F190301: 0x1F1D,
+       0x03B70313: 0x1F20,
+       0x03B70314: 0x1F21,
+       0x1F200300: 0x1F22,
+       0x1F210300: 0x1F23,
+       0x1F200301: 0x1F24,
+       0x1F210301: 0x1F25,
+       0x1F200342: 0x1F26,
+       0x1F210342: 0x1F27,
+       0x03970313: 0x1F28,
+       0x03970314: 0x1F29,
+       0x1F280300: 0x1F2A,
+       0x1F290300: 0x1F2B,
+       0x1F280301: 0x1F2C,
+       0x1F290301: 0x1F2D,
+       0x1F280342: 0x1F2E,
+       0x1F290342: 0x1F2F,
+       0x03B90313: 0x1F30,
+       0x03B90314: 0x1F31,
+       0x1F300300: 0x1F32,
+       0x1F310300: 0x1F33,
+       0x1F300301: 0x1F34,
+       0x1F310301: 0x1F35,
+       0x1F300342: 0x1F36,
+       0x1F310342: 0x1F37,
+       0x03990313: 0x1F38,
+       0x03990314: 0x1F39,
+       0x1F380300: 0x1F3A,
+       0x1F390300: 0x1F3B,
+       0x1F380301: 0x1F3C,
+       0x1F390301: 0x1F3D,
+       0x1F380342: 0x1F3E,
+       0x1F390342: 0x1F3F,
+       0x03BF0313: 0x1F40,
+       0x03BF0314: 0x1F41,
+       0x1F400300: 0x1F42,
+       0x1F410300: 0x1F43,
+       0x1F400301: 0x1F44,
+       0x1F410301: 0x1F45,
+       0x039F0313: 0x1F48,
+       0x039F0314: 0x1F49,
+       0x1F480300: 0x1F4A,
+       0x1F490300: 0x1F4B,
+       0x1F480301: 0x1F4C,
+       0x1F490301: 0x1F4D,
+       0x03C50313: 0x1F50,
+       0x03C50314: 0x1F51,
+       0x1F500300: 0x1F52,
+       0x1F510300: 0x1F53,
+       0x1F500301: 0x1F54,
+       0x1F510301: 0x1F55,
+       0x1F500342: 0x1F56,
+       0x1F510342: 0x1F57,
+       0x03A50314: 0x1F59,
+       0x1F590300: 0x1F5B,
+       0x1F590301: 0x1F5D,
+       0x1F590342: 0x1F5F,
+       0x03C90313: 0x1F60,
+       0x03C90314: 0x1F61,
+       0x1F600300: 0x1F62,
+       0x1F610300: 0x1F63,
+       0x1F600301: 0x1F64,
+       0x1F610301: 0x1F65,
+       0x1F600342: 0x1F66,
+       0x1F610342: 0x1F67,
+       0x03A90313: 0x1F68,
+       0x03A90314: 0x1F69,
+       0x1F680300: 0x1F6A,
+       0x1F690300: 0x1F6B,
+       0x1F680301: 0x1F6C,
+       0x1F690301: 0x1F6D,
+       0x1F680342: 0x1F6E,
+       0x1F690342: 0x1F6F,
+       0x03B10300: 0x1F70,
+       0x03B50300: 0x1F72,
+       0x03B70300: 0x1F74,
+       0x03B90300: 0x1F76,
+       0x03BF0300: 0x1F78,
+       0x03C50300: 0x1F7A,
+       0x03C90300: 0x1F7C,
+       0x1F000345: 0x1F80,
+       0x1F010345: 0x1F81,
+       0x1F020345: 0x1F82,
+       0x1F030345: 0x1F83,
+       0x1F040345: 0x1F84,
+       0x1F050345: 0x1F85,
+       0x1F060345: 0x1F86,
+       0x1F070345: 0x1F87,
+       0x1F080345: 0x1F88,
+       0x1F090345: 0x1F89,
+       0x1F0A0345: 0x1F8A,
+       0x1F0B0345: 0x1F8B,
+       0x1F0C0345: 0x1F8C,
+       0x1F0D0345: 0x1F8D,
+       0x1F0E0345: 0x1F8E,
+       0x1F0F0345: 0x1F8F,
+       0x1F200345: 0x1F90,
+       0x1F210345: 0x1F91,
+       0x1F220345: 0x1F92,
+       0x1F230345: 0x1F93,
+       0x1F240345: 0x1F94,
+       0x1F250345: 0x1F95,
+       0x1F260345: 0x1F96,
+       0x1F270345: 0x1F97,
+       0x1F280345: 0x1F98,
+       0x1F290345: 0x1F99,
+       0x1F2A0345: 0x1F9A,
+       0x1F2B0345: 0x1F9B,
+       0x1F2C0345: 0x1F9C,
+       0x1F2D0345: 0x1F9D,
+       0x1F2E0345: 0x1F9E,
+       0x1F2F0345: 0x1F9F,
+       0x1F600345: 0x1FA0,
+       0x1F610345: 0x1FA1,
+       0x1F620345: 0x1FA2,
+       0x1F630345: 0x1FA3,
+       0x1F640345: 0x1FA4,
+       0x1F650345: 0x1FA5,
+       0x1F660345: 0x1FA6,
+       0x1F670345: 0x1FA7,
+       0x1F680345: 0x1FA8,
+       0x1F690345: 0x1FA9,
+       0x1F6A0345: 0x1FAA,
+       0x1F6B0345: 0x1FAB,
+       0x1F6C0345: 0x1FAC,
+       0x1F6D0345: 0x1FAD,
+       0x1F6E0345: 0x1FAE,
+       0x1F6F0345: 0x1FAF,
+       0x03B10306: 0x1FB0,
+       0x03B10304: 0x1FB1,
+       0x1F700345: 0x1FB2,
+       0x03B10345: 0x1FB3,
+       0x03AC0345: 0x1FB4,
+       0x03B10342: 0x1FB6,
+       0x1FB60345: 0x1FB7,
+       0x03910306: 0x1FB8,
+       0x03910304: 0x1FB9,
+       0x03910300: 0x1FBA,
+       0x03910345: 0x1FBC,
+       0x00A80342: 0x1FC1,
+       0x1F740345: 0x1FC2,
+       0x03B70345: 0x1FC3,
+       0x03AE0345: 0x1FC4,
+       0x03B70342: 0x1FC6,
+       0x1FC60345: 0x1FC7,
+       0x03950300: 0x1FC8,
+       0x03970300: 0x1FCA,
+       0x03970345: 0x1FCC,
+       0x1FBF0300: 0x1FCD,
+       0x1FBF0301: 0x1FCE,
+       0x1FBF0342: 0x1FCF,
+       0x03B90306: 0x1FD0,
+       0x03B90304: 0x1FD1,
+       0x03CA0300: 0x1FD2,
+       0x03B90342: 0x1FD6,
+       0x03CA0342: 0x1FD7,
+       0x03990306: 0x1FD8,
+       0x03990304: 0x1FD9,
+       0x03990300: 0x1FDA,
+       0x1FFE0300: 0x1FDD,
+       0x1FFE0301: 0x1FDE,
+       0x1FFE0342: 0x1FDF,
+       0x03C50306: 0x1FE0,
+       0x03C50304: 0x1FE1,
+       0x03CB0300: 0x1FE2,
+       0x03C10313: 0x1FE4,
+       0x03C10314: 0x1FE5,
+       0x03C50342: 0x1FE6,
+       0x03CB0342: 0x1FE7,
+       0x03A50306: 0x1FE8,
+       0x03A50304: 0x1FE9,
+       0x03A50300: 0x1FEA,
+       0x03A10314: 0x1FEC,
+       0x00A80300: 0x1FED,
+       0x1F7C0345: 0x1FF2,
+       0x03C90345: 0x1FF3,
+       0x03CE0345: 0x1FF4,
+       0x03C90342: 0x1FF6,
+       0x1FF60345: 0x1FF7,
+       0x039F0300: 0x1FF8,
+       0x03A90300: 0x1FFA,
+       0x03A90345: 0x1FFC,
+       0x21900338: 0x219A,
+       0x21920338: 0x219B,
+       0x21940338: 0x21AE,
+       0x21D00338: 0x21CD,
+       0x21D40338: 0x21CE,
+       0x21D20338: 0x21CF,
+       0x22030338: 0x2204,
+       0x22080338: 0x2209,
+       0x220B0338: 0x220C,
+       0x22230338: 0x2224,
+       0x22250338: 0x2226,
+       0x223C0338: 0x2241,
+       0x22430338: 0x2244,
+       0x22450338: 0x2247,
+       0x22480338: 0x2249,
+       0x003D0338: 0x2260,
+       0x22610338: 0x2262,
+       0x224D0338: 0x226D,
+       0x003C0338: 0x226E,
+       0x003E0338: 0x226F,
+       0x22640338: 0x2270,
+       0x22650338: 0x2271,
+       0x22720338: 0x2274,
+       0x22730338: 0x2275,
+       0x22760338: 0x2278,
+       0x22770338: 0x2279,
+       0x227A0338: 0x2280,
+       0x227B0338: 0x2281,
+       0x22820338: 0x2284,
+       0x22830338: 0x2285,
+       0x22860338: 0x2288,
+       0x22870338: 0x2289,
+       0x22A20338: 0x22AC,
+       0x22A80338: 0x22AD,
+       0x22A90338: 0x22AE,
+       0x22AB0338: 0x22AF,
+       0x227C0338: 0x22E0,
+       0x227D0338: 0x22E1,
+       0x22910338: 0x22E2,
+       0x22920338: 0x22E3,
+       0x22B20338: 0x22EA,
+       0x22B30338: 0x22EB,
+       0x22B40338: 0x22EC,
+       0x22B50338: 0x22ED,
+       0x304B3099: 0x304C,
+       0x304D3099: 0x304E,
+       0x304F3099: 0x3050,
+       0x30513099: 0x3052,
+       0x30533099: 0x3054,
+       0x30553099: 0x3056,
+       0x30573099: 0x3058,
+       0x30593099: 0x305A,
+       0x305B3099: 0x305C,
+       0x305D3099: 0x305E,
+       0x305F3099: 0x3060,
+       0x30613099: 0x3062,
+       0x30643099: 0x3065,
+       0x30663099: 0x3067,
+       0x30683099: 0x3069,
+       0x306F3099: 0x3070,
+       0x306F309A: 0x3071,
+       0x30723099: 0x3073,
+       0x3072309A: 0x3074,
+       0x30753099: 0x3076,
+       0x3075309A: 0x3077,
+       0x30783099: 0x3079,
+       0x3078309A: 0x307A,
+       0x307B3099: 0x307C,
+       0x307B309A: 0x307D,
+       0x30463099: 0x3094,
+       0x309D3099: 0x309E,
+       0x30AB3099: 0x30AC,
+       0x30AD3099: 0x30AE,
+       0x30AF3099: 0x30B0,
+       0x30B13099: 0x30B2,
+       0x30B33099: 0x30B4,
+       0x30B53099: 0x30B6,
+       0x30B73099: 0x30B8,
+       0x30B93099: 0x30BA,
+       0x30BB3099: 0x30BC,
+       0x30BD3099: 0x30BE,
+       0x30BF3099: 0x30C0,
+       0x30C13099: 0x30C2,
+       0x30C43099: 0x30C5,
+       0x30C63099: 0x30C7,
+       0x30C83099: 0x30C9,
+       0x30CF3099: 0x30D0,
+       0x30CF309A: 0x30D1,
+       0x30D23099: 0x30D3,
+       0x30D2309A: 0x30D4,
+       0x30D53099: 0x30D6,
+       0x30D5309A: 0x30D7,
+       0x30D83099: 0x30D9,
+       0x30D8309A: 0x30DA,
+       0x30DB3099: 0x30DC,
+       0x30DB309A: 0x30DD,
+       0x30A63099: 0x30F4,
+       0x30EF3099: 0x30F7,
+       0x30F03099: 0x30F8,
+       0x30F13099: 0x30F9,
+       0x30F23099: 0x30FA,
+       0x30FD3099: 0x30FE,
+       0x109910BA: 0x1109A,
+       0x109B10BA: 0x1109C,
+       0x10A510BA: 0x110AB,
+       0x11311127: 0x1112E,
+       0x11321127: 0x1112F,
+       0x1347133E: 0x1134B,
+       0x13471357: 0x1134C,
+       0x14B914BA: 0x114BB,
+       0x14B914B0: 0x114BC,
+       0x14B914BD: 0x114BE,
+       0x15B815AF: 0x115BA,
+       0x15B915AF: 0x115BB,
+}
+
+// Total size of tables: 53KB (53976 bytes)
diff --git a/src/vendor/golang_org/x/text/unicode/norm/transform.go b/src/vendor/golang_org/x/text/unicode/norm/transform.go
new file mode 100644 (file)
index 0000000..b341789
--- /dev/null
@@ -0,0 +1,88 @@
+// Copyright 2013 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 norm
+
+import (
+       "unicode/utf8"
+
+       "golang_org/x/text/transform"
+)
+
+// Reset implements the Reset method of the transform.Transformer interface.
+func (Form) Reset() {}
+
+// Transform implements the Transform method of the transform.Transformer
+// interface. It may need to write segments of up to MaxSegmentSize at once.
+// Users should either catch ErrShortDst and allow dst to grow or have dst be at
+// least of size MaxTransformChunkSize to be guaranteed of progress.
+func (f Form) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {
+       n := 0
+       // Cap the maximum number of src bytes to check.
+       b := src
+       eof := atEOF
+       if ns := len(dst); ns < len(b) {
+               err = transform.ErrShortDst
+               eof = false
+               b = b[:ns]
+       }
+       i, ok := formTable[f].quickSpan(inputBytes(b), n, len(b), eof)
+       n += copy(dst[n:], b[n:i])
+       if !ok {
+               nDst, nSrc, err = f.transform(dst[n:], src[n:], atEOF)
+               return nDst + n, nSrc + n, err
+       }
+       if n < len(src) && !atEOF {
+               err = transform.ErrShortSrc
+       }
+       return n, n, err
+}
+
+func flushTransform(rb *reorderBuffer) bool {
+       // Write out (must fully fit in dst, or else it is a ErrShortDst).
+       if len(rb.out) < rb.nrune*utf8.UTFMax {
+               return false
+       }
+       rb.out = rb.out[rb.flushCopy(rb.out):]
+       return true
+}
+
+var errs = []error{nil, transform.ErrShortDst, transform.ErrShortSrc}
+
+// transform implements the transform.Transformer interface. It is only called
+// when quickSpan does not pass for a given string.
+func (f Form) transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {
+       // TODO: get rid of reorderBuffer. See CL 23460044.
+       rb := reorderBuffer{}
+       rb.init(f, src)
+       for {
+               // Load segment into reorder buffer.
+               rb.setFlusher(dst[nDst:], flushTransform)
+               end := decomposeSegment(&rb, nSrc, atEOF)
+               if end < 0 {
+                       return nDst, nSrc, errs[-end]
+               }
+               nDst = len(dst) - len(rb.out)
+               nSrc = end
+
+               // Next quickSpan.
+               end = rb.nsrc
+               eof := atEOF
+               if n := nSrc + len(dst) - nDst; n < end {
+                       err = transform.ErrShortDst
+                       end = n
+                       eof = false
+               }
+               end, ok := rb.f.quickSpan(rb.src, nSrc, end, eof)
+               n := copy(dst[nDst:], rb.src.bytes[nSrc:end])
+               nSrc += n
+               nDst += n
+               if ok {
+                       if n < rb.nsrc && !atEOF {
+                               err = transform.ErrShortSrc
+                       }
+                       return nDst, nSrc, err
+               }
+       }
+}
diff --git a/src/vendor/golang_org/x/text/unicode/norm/trie.go b/src/vendor/golang_org/x/text/unicode/norm/trie.go
new file mode 100644 (file)
index 0000000..423386b
--- /dev/null
@@ -0,0 +1,54 @@
+// Copyright 2011 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 norm
+
+type valueRange struct {
+       value  uint16 // header: value:stride
+       lo, hi byte   // header: lo:n
+}
+
+type sparseBlocks struct {
+       values []valueRange
+       offset []uint16
+}
+
+var nfcSparse = sparseBlocks{
+       values: nfcSparseValues[:],
+       offset: nfcSparseOffset[:],
+}
+
+var nfkcSparse = sparseBlocks{
+       values: nfkcSparseValues[:],
+       offset: nfkcSparseOffset[:],
+}
+
+var (
+       nfcData  = newNfcTrie(0)
+       nfkcData = newNfkcTrie(0)
+)
+
+// lookupValue determines the type of block n and looks up the value for b.
+// For n < t.cutoff, the block is a simple lookup table. Otherwise, the block
+// is a list of ranges with an accompanying value. Given a matching range r,
+// the value for b is by r.value + (b - r.lo) * stride.
+func (t *sparseBlocks) lookup(n uint32, b byte) uint16 {
+       offset := t.offset[n]
+       header := t.values[offset]
+       lo := offset + 1
+       hi := lo + uint16(header.lo)
+       for lo < hi {
+               m := lo + (hi-lo)/2
+               r := t.values[m]
+               if r.lo <= b && b <= r.hi {
+                       return r.value + uint16(b-r.lo)*header.value
+               }
+               if b < r.lo {
+                       hi = m
+               } else {
+                       lo = m + 1
+               }
+       }
+       return 0
+}
diff --git a/src/vendor/golang_org/x/text/unicode/norm/triegen.go b/src/vendor/golang_org/x/text/unicode/norm/triegen.go
new file mode 100644 (file)
index 0000000..45d7119
--- /dev/null
@@ -0,0 +1,117 @@
+// Copyright 2011 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
+
+// Trie table generator.
+// Used by make*tables tools to generate a go file with trie data structures
+// for mapping UTF-8 to a 16-bit value. All but the last byte in a UTF-8 byte
+// sequence are used to lookup offsets in the index table to be used for the
+// next byte. The last byte is used to index into a table with 16-bit values.
+
+package main
+
+import (
+       "fmt"
+       "io"
+)
+
+const maxSparseEntries = 16
+
+type normCompacter struct {
+       sparseBlocks [][]uint64
+       sparseOffset []uint16
+       sparseCount  int
+       name         string
+}
+
+func mostFrequentStride(a []uint64) int {
+       counts := make(map[int]int)
+       var v int
+       for _, x := range a {
+               if stride := int(x) - v; v != 0 && stride >= 0 {
+                       counts[stride]++
+               }
+               v = int(x)
+       }
+       var maxs, maxc int
+       for stride, cnt := range counts {
+               if cnt > maxc || (cnt == maxc && stride < maxs) {
+                       maxs, maxc = stride, cnt
+               }
+       }
+       return maxs
+}
+
+func countSparseEntries(a []uint64) int {
+       stride := mostFrequentStride(a)
+       var v, count int
+       for _, tv := range a {
+               if int(tv)-v != stride {
+                       if tv != 0 {
+                               count++
+                       }
+               }
+               v = int(tv)
+       }
+       return count
+}
+
+func (c *normCompacter) Size(v []uint64) (sz int, ok bool) {
+       if n := countSparseEntries(v); n <= maxSparseEntries {
+               return (n+1)*4 + 2, true
+       }
+       return 0, false
+}
+
+func (c *normCompacter) Store(v []uint64) uint32 {
+       h := uint32(len(c.sparseOffset))
+       c.sparseBlocks = append(c.sparseBlocks, v)
+       c.sparseOffset = append(c.sparseOffset, uint16(c.sparseCount))
+       c.sparseCount += countSparseEntries(v) + 1
+       return h
+}
+
+func (c *normCompacter) Handler() string {
+       return c.name + "Sparse.lookup"
+}
+
+func (c *normCompacter) Print(w io.Writer) (retErr error) {
+       p := func(f string, x ...interface{}) {
+               if _, err := fmt.Fprintf(w, f, x...); retErr == nil && err != nil {
+                       retErr = err
+               }
+       }
+
+       ls := len(c.sparseBlocks)
+       p("// %sSparseOffset: %d entries, %d bytes\n", c.name, ls, ls*2)
+       p("var %sSparseOffset = %#v\n\n", c.name, c.sparseOffset)
+
+       ns := c.sparseCount
+       p("// %sSparseValues: %d entries, %d bytes\n", c.name, ns, ns*4)
+       p("var %sSparseValues = [%d]valueRange {", c.name, ns)
+       for i, b := range c.sparseBlocks {
+               p("\n// Block %#x, offset %#x", i, c.sparseOffset[i])
+               var v int
+               stride := mostFrequentStride(b)
+               n := countSparseEntries(b)
+               p("\n{value:%#04x,lo:%#02x},", stride, uint8(n))
+               for i, nv := range b {
+                       if int(nv)-v != stride {
+                               if v != 0 {
+                                       p(",hi:%#02x},", 0x80+i-1)
+                               }
+                               if nv != 0 {
+                                       p("\n{value:%#04x,lo:%#02x", nv, 0x80+i)
+                               }
+                       }
+                       v = int(nv)
+               }
+               if v != 0 {
+                       p(",hi:%#02x},", 0x80+len(b)-1)
+               }
+       }
+       p("\n}\n\n")
+       return
+}
diff --git a/src/vendor/golang_org/x/text/width/kind_string.go b/src/vendor/golang_org/x/text/width/kind_string.go
new file mode 100644 (file)
index 0000000..ab4fee5
--- /dev/null
@@ -0,0 +1,16 @@
+// Code generated by "stringer -type=Kind"; DO NOT EDIT
+
+package width
+
+import "fmt"
+
+const _Kind_name = "NeutralEastAsianAmbiguousEastAsianWideEastAsianNarrowEastAsianFullwidthEastAsianHalfwidth"
+
+var _Kind_index = [...]uint8{0, 7, 25, 38, 53, 71, 89}
+
+func (i Kind) String() string {
+       if i < 0 || i >= Kind(len(_Kind_index)-1) {
+               return fmt.Sprintf("Kind(%d)", i)
+       }
+       return _Kind_name[_Kind_index[i]:_Kind_index[i+1]]
+}
diff --git a/src/vendor/golang_org/x/text/width/tables.go b/src/vendor/golang_org/x/text/width/tables.go
new file mode 100644 (file)
index 0000000..242da0f
--- /dev/null
@@ -0,0 +1,1284 @@
+// This file was generated by go generate; DO NOT EDIT
+
+package width
+
+// UnicodeVersion is the Unicode version from which the tables in this package are derived.
+const UnicodeVersion = "9.0.0"
+
+// 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 *widthTrie) lookup(s []byte) (v uint16, sz int) {
+       c0 := s[0]
+       switch {
+       case c0 < 0x80: // is ASCII
+               return widthValues[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 := widthIndex[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 := widthIndex[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 = widthIndex[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 := widthIndex[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 = widthIndex[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 = widthIndex[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 *widthTrie) lookupUnsafe(s []byte) uint16 {
+       c0 := s[0]
+       if c0 < 0x80 { // is ASCII
+               return widthValues[c0]
+       }
+       i := widthIndex[c0]
+       if c0 < 0xE0 { // 2-byte UTF-8
+               return t.lookupValue(uint32(i), s[1])
+       }
+       i = widthIndex[uint32(i)<<6+uint32(s[1])]
+       if c0 < 0xF0 { // 3-byte UTF-8
+               return t.lookupValue(uint32(i), s[2])
+       }
+       i = widthIndex[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 *widthTrie) lookupString(s string) (v uint16, sz int) {
+       c0 := s[0]
+       switch {
+       case c0 < 0x80: // is ASCII
+               return widthValues[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 := widthIndex[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 := widthIndex[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 = widthIndex[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 := widthIndex[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 = widthIndex[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 = widthIndex[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 *widthTrie) lookupStringUnsafe(s string) uint16 {
+       c0 := s[0]
+       if c0 < 0x80 { // is ASCII
+               return widthValues[c0]
+       }
+       i := widthIndex[c0]
+       if c0 < 0xE0 { // 2-byte UTF-8
+               return t.lookupValue(uint32(i), s[1])
+       }
+       i = widthIndex[uint32(i)<<6+uint32(s[1])]
+       if c0 < 0xF0 { // 3-byte UTF-8
+               return t.lookupValue(uint32(i), s[2])
+       }
+       i = widthIndex[uint32(i)<<6+uint32(s[2])]
+       if c0 < 0xF8 { // 4-byte UTF-8
+               return t.lookupValue(uint32(i), s[3])
+       }
+       return 0
+}
+
+// widthTrie. Total size: 14080 bytes (13.75 KiB). Checksum: 3b8aeb3dc03667a3.
+type widthTrie struct{}
+
+func newWidthTrie(i int) *widthTrie {
+       return &widthTrie{}
+}
+
+// lookupValue determines the type of block n and looks up the value for b.
+func (t *widthTrie) lookupValue(n uint32, b byte) uint16 {
+       switch {
+       default:
+               return uint16(widthValues[n<<6+uint32(b)])
+       }
+}
+
+// widthValues: 99 blocks, 6336 entries, 12672 bytes
+// The third block is the zero block.
+var widthValues = [6336]uint16{
+       // Block 0x0, offset 0x0
+       0x20: 0x6001, 0x21: 0x6002, 0x22: 0x6002, 0x23: 0x6002,
+       0x24: 0x6002, 0x25: 0x6002, 0x26: 0x6002, 0x27: 0x6002, 0x28: 0x6002, 0x29: 0x6002,
+       0x2a: 0x6002, 0x2b: 0x6002, 0x2c: 0x6002, 0x2d: 0x6002, 0x2e: 0x6002, 0x2f: 0x6002,
+       0x30: 0x6002, 0x31: 0x6002, 0x32: 0x6002, 0x33: 0x6002, 0x34: 0x6002, 0x35: 0x6002,
+       0x36: 0x6002, 0x37: 0x6002, 0x38: 0x6002, 0x39: 0x6002, 0x3a: 0x6002, 0x3b: 0x6002,
+       0x3c: 0x6002, 0x3d: 0x6002, 0x3e: 0x6002, 0x3f: 0x6002,
+       // Block 0x1, offset 0x40
+       0x40: 0x6003, 0x41: 0x6003, 0x42: 0x6003, 0x43: 0x6003, 0x44: 0x6003, 0x45: 0x6003,
+       0x46: 0x6003, 0x47: 0x6003, 0x48: 0x6003, 0x49: 0x6003, 0x4a: 0x6003, 0x4b: 0x6003,
+       0x4c: 0x6003, 0x4d: 0x6003, 0x4e: 0x6003, 0x4f: 0x6003, 0x50: 0x6003, 0x51: 0x6003,
+       0x52: 0x6003, 0x53: 0x6003, 0x54: 0x6003, 0x55: 0x6003, 0x56: 0x6003, 0x57: 0x6003,
+       0x58: 0x6003, 0x59: 0x6003, 0x5a: 0x6003, 0x5b: 0x6003, 0x5c: 0x6003, 0x5d: 0x6003,
+       0x5e: 0x6003, 0x5f: 0x6003, 0x60: 0x6004, 0x61: 0x6004, 0x62: 0x6004, 0x63: 0x6004,
+       0x64: 0x6004, 0x65: 0x6004, 0x66: 0x6004, 0x67: 0x6004, 0x68: 0x6004, 0x69: 0x6004,
+       0x6a: 0x6004, 0x6b: 0x6004, 0x6c: 0x6004, 0x6d: 0x6004, 0x6e: 0x6004, 0x6f: 0x6004,
+       0x70: 0x6004, 0x71: 0x6004, 0x72: 0x6004, 0x73: 0x6004, 0x74: 0x6004, 0x75: 0x6004,
+       0x76: 0x6004, 0x77: 0x6004, 0x78: 0x6004, 0x79: 0x6004, 0x7a: 0x6004, 0x7b: 0x6004,
+       0x7c: 0x6004, 0x7d: 0x6004, 0x7e: 0x6004,
+       // Block 0x2, offset 0x80
+       // Block 0x3, offset 0xc0
+       0xe1: 0x2000, 0xe2: 0x6005, 0xe3: 0x6005,
+       0xe4: 0x2000, 0xe5: 0x6006, 0xe6: 0x6005, 0xe7: 0x2000, 0xe8: 0x2000,
+       0xea: 0x2000, 0xec: 0x6007, 0xed: 0x2000, 0xee: 0x2000, 0xef: 0x6008,
+       0xf0: 0x2000, 0xf1: 0x2000, 0xf2: 0x2000, 0xf3: 0x2000, 0xf4: 0x2000,
+       0xf6: 0x2000, 0xf7: 0x2000, 0xf8: 0x2000, 0xf9: 0x2000, 0xfa: 0x2000,
+       0xfc: 0x2000, 0xfd: 0x2000, 0xfe: 0x2000, 0xff: 0x2000,
+       // Block 0x4, offset 0x100
+       0x106: 0x2000,
+       0x110: 0x2000,
+       0x117: 0x2000,
+       0x118: 0x2000,
+       0x11e: 0x2000, 0x11f: 0x2000, 0x120: 0x2000, 0x121: 0x2000,
+       0x126: 0x2000, 0x128: 0x2000, 0x129: 0x2000,
+       0x12a: 0x2000, 0x12c: 0x2000, 0x12d: 0x2000,
+       0x130: 0x2000, 0x132: 0x2000, 0x133: 0x2000,
+       0x137: 0x2000, 0x138: 0x2000, 0x139: 0x2000, 0x13a: 0x2000,
+       0x13c: 0x2000, 0x13e: 0x2000,
+       // Block 0x5, offset 0x140
+       0x141: 0x2000,
+       0x151: 0x2000,
+       0x153: 0x2000,
+       0x15b: 0x2000,
+       0x166: 0x2000, 0x167: 0x2000,
+       0x16b: 0x2000,
+       0x171: 0x2000, 0x172: 0x2000, 0x173: 0x2000,
+       0x178: 0x2000,
+       0x17f: 0x2000,
+       // Block 0x6, offset 0x180
+       0x180: 0x2000, 0x181: 0x2000, 0x182: 0x2000, 0x184: 0x2000,
+       0x188: 0x2000, 0x189: 0x2000, 0x18a: 0x2000, 0x18b: 0x2000,
+       0x18d: 0x2000,
+       0x192: 0x2000, 0x193: 0x2000,
+       0x1a6: 0x2000, 0x1a7: 0x2000,
+       0x1ab: 0x2000,
+       // Block 0x7, offset 0x1c0
+       0x1ce: 0x2000, 0x1d0: 0x2000,
+       0x1d2: 0x2000, 0x1d4: 0x2000, 0x1d6: 0x2000,
+       0x1d8: 0x2000, 0x1da: 0x2000, 0x1dc: 0x2000,
+       // Block 0x8, offset 0x200
+       0x211: 0x2000,
+       0x221: 0x2000,
+       // Block 0x9, offset 0x240
+       0x244: 0x2000,
+       0x247: 0x2000, 0x249: 0x2000, 0x24a: 0x2000, 0x24b: 0x2000,
+       0x24d: 0x2000, 0x250: 0x2000,
+       0x258: 0x2000, 0x259: 0x2000, 0x25a: 0x2000, 0x25b: 0x2000, 0x25d: 0x2000,
+       0x25f: 0x2000,
+       // Block 0xa, offset 0x280
+       0x280: 0x2000, 0x281: 0x2000, 0x282: 0x2000, 0x283: 0x2000, 0x284: 0x2000, 0x285: 0x2000,
+       0x286: 0x2000, 0x287: 0x2000, 0x288: 0x2000, 0x289: 0x2000, 0x28a: 0x2000, 0x28b: 0x2000,
+       0x28c: 0x2000, 0x28d: 0x2000, 0x28e: 0x2000, 0x28f: 0x2000, 0x290: 0x2000, 0x291: 0x2000,
+       0x292: 0x2000, 0x293: 0x2000, 0x294: 0x2000, 0x295: 0x2000, 0x296: 0x2000, 0x297: 0x2000,
+       0x298: 0x2000, 0x299: 0x2000, 0x29a: 0x2000, 0x29b: 0x2000, 0x29c: 0x2000, 0x29d: 0x2000,
+       0x29e: 0x2000, 0x29f: 0x2000, 0x2a0: 0x2000, 0x2a1: 0x2000, 0x2a2: 0x2000, 0x2a3: 0x2000,
+       0x2a4: 0x2000, 0x2a5: 0x2000, 0x2a6: 0x2000, 0x2a7: 0x2000, 0x2a8: 0x2000, 0x2a9: 0x2000,
+       0x2aa: 0x2000, 0x2ab: 0x2000, 0x2ac: 0x2000, 0x2ad: 0x2000, 0x2ae: 0x2000, 0x2af: 0x2000,
+       0x2b0: 0x2000, 0x2b1: 0x2000, 0x2b2: 0x2000, 0x2b3: 0x2000, 0x2b4: 0x2000, 0x2b5: 0x2000,
+       0x2b6: 0x2000, 0x2b7: 0x2000, 0x2b8: 0x2000, 0x2b9: 0x2000, 0x2ba: 0x2000, 0x2bb: 0x2000,
+       0x2bc: 0x2000, 0x2bd: 0x2000, 0x2be: 0x2000, 0x2bf: 0x2000,
+       // Block 0xb, offset 0x2c0
+       0x2c0: 0x2000, 0x2c1: 0x2000, 0x2c2: 0x2000, 0x2c3: 0x2000, 0x2c4: 0x2000, 0x2c5: 0x2000,
+       0x2c6: 0x2000, 0x2c7: 0x2000, 0x2c8: 0x2000, 0x2c9: 0x2000, 0x2ca: 0x2000, 0x2cb: 0x2000,
+       0x2cc: 0x2000, 0x2cd: 0x2000, 0x2ce: 0x2000, 0x2cf: 0x2000, 0x2d0: 0x2000, 0x2d1: 0x2000,
+       0x2d2: 0x2000, 0x2d3: 0x2000, 0x2d4: 0x2000, 0x2d5: 0x2000, 0x2d6: 0x2000, 0x2d7: 0x2000,
+       0x2d8: 0x2000, 0x2d9: 0x2000, 0x2da: 0x2000, 0x2db: 0x2000, 0x2dc: 0x2000, 0x2dd: 0x2000,
+       0x2de: 0x2000, 0x2df: 0x2000, 0x2e0: 0x2000, 0x2e1: 0x2000, 0x2e2: 0x2000, 0x2e3: 0x2000,
+       0x2e4: 0x2000, 0x2e5: 0x2000, 0x2e6: 0x2000, 0x2e7: 0x2000, 0x2e8: 0x2000, 0x2e9: 0x2000,
+       0x2ea: 0x2000, 0x2eb: 0x2000, 0x2ec: 0x2000, 0x2ed: 0x2000, 0x2ee: 0x2000, 0x2ef: 0x2000,
+       // Block 0xc, offset 0x300
+       0x311: 0x2000,
+       0x312: 0x2000, 0x313: 0x2000, 0x314: 0x2000, 0x315: 0x2000, 0x316: 0x2000, 0x317: 0x2000,
+       0x318: 0x2000, 0x319: 0x2000, 0x31a: 0x2000, 0x31b: 0x2000, 0x31c: 0x2000, 0x31d: 0x2000,
+       0x31e: 0x2000, 0x31f: 0x2000, 0x320: 0x2000, 0x321: 0x2000, 0x323: 0x2000,
+       0x324: 0x2000, 0x325: 0x2000, 0x326: 0x2000, 0x327: 0x2000, 0x328: 0x2000, 0x329: 0x2000,
+       0x331: 0x2000, 0x332: 0x2000, 0x333: 0x2000, 0x334: 0x2000, 0x335: 0x2000,
+       0x336: 0x2000, 0x337: 0x2000, 0x338: 0x2000, 0x339: 0x2000, 0x33a: 0x2000, 0x33b: 0x2000,
+       0x33c: 0x2000, 0x33d: 0x2000, 0x33e: 0x2000, 0x33f: 0x2000,
+       // Block 0xd, offset 0x340
+       0x340: 0x2000, 0x341: 0x2000, 0x343: 0x2000, 0x344: 0x2000, 0x345: 0x2000,
+       0x346: 0x2000, 0x347: 0x2000, 0x348: 0x2000, 0x349: 0x2000,
+       // Block 0xe, offset 0x380
+       0x381: 0x2000,
+       0x390: 0x2000, 0x391: 0x2000,
+       0x392: 0x2000, 0x393: 0x2000, 0x394: 0x2000, 0x395: 0x2000, 0x396: 0x2000, 0x397: 0x2000,
+       0x398: 0x2000, 0x399: 0x2000, 0x39a: 0x2000, 0x39b: 0x2000, 0x39c: 0x2000, 0x39d: 0x2000,
+       0x39e: 0x2000, 0x39f: 0x2000, 0x3a0: 0x2000, 0x3a1: 0x2000, 0x3a2: 0x2000, 0x3a3: 0x2000,
+       0x3a4: 0x2000, 0x3a5: 0x2000, 0x3a6: 0x2000, 0x3a7: 0x2000, 0x3a8: 0x2000, 0x3a9: 0x2000,
+       0x3aa: 0x2000, 0x3ab: 0x2000, 0x3ac: 0x2000, 0x3ad: 0x2000, 0x3ae: 0x2000, 0x3af: 0x2000,
+       0x3b0: 0x2000, 0x3b1: 0x2000, 0x3b2: 0x2000, 0x3b3: 0x2000, 0x3b4: 0x2000, 0x3b5: 0x2000,
+       0x3b6: 0x2000, 0x3b7: 0x2000, 0x3b8: 0x2000, 0x3b9: 0x2000, 0x3ba: 0x2000, 0x3bb: 0x2000,
+       0x3bc: 0x2000, 0x3bd: 0x2000, 0x3be: 0x2000, 0x3bf: 0x2000,
+       // Block 0xf, offset 0x3c0
+       0x3c0: 0x2000, 0x3c1: 0x2000, 0x3c2: 0x2000, 0x3c3: 0x2000, 0x3c4: 0x2000, 0x3c5: 0x2000,
+       0x3c6: 0x2000, 0x3c7: 0x2000, 0x3c8: 0x2000, 0x3c9: 0x2000, 0x3ca: 0x2000, 0x3cb: 0x2000,
+       0x3cc: 0x2000, 0x3cd: 0x2000, 0x3ce: 0x2000, 0x3cf: 0x2000, 0x3d1: 0x2000,
+       // Block 0x10, offset 0x400
+       0x400: 0x4000, 0x401: 0x4000, 0x402: 0x4000, 0x403: 0x4000, 0x404: 0x4000, 0x405: 0x4000,
+       0x406: 0x4000, 0x407: 0x4000, 0x408: 0x4000, 0x409: 0x4000, 0x40a: 0x4000, 0x40b: 0x4000,
+       0x40c: 0x4000, 0x40d: 0x4000, 0x40e: 0x4000, 0x40f: 0x4000, 0x410: 0x4000, 0x411: 0x4000,
+       0x412: 0x4000, 0x413: 0x4000, 0x414: 0x4000, 0x415: 0x4000, 0x416: 0x4000, 0x417: 0x4000,
+       0x418: 0x4000, 0x419: 0x4000, 0x41a: 0x4000, 0x41b: 0x4000, 0x41c: 0x4000, 0x41d: 0x4000,
+       0x41e: 0x4000, 0x41f: 0x4000, 0x420: 0x4000, 0x421: 0x4000, 0x422: 0x4000, 0x423: 0x4000,
+       0x424: 0x4000, 0x425: 0x4000, 0x426: 0x4000, 0x427: 0x4000, 0x428: 0x4000, 0x429: 0x4000,
+       0x42a: 0x4000, 0x42b: 0x4000, 0x42c: 0x4000, 0x42d: 0x4000, 0x42e: 0x4000, 0x42f: 0x4000,
+       0x430: 0x4000, 0x431: 0x4000, 0x432: 0x4000, 0x433: 0x4000, 0x434: 0x4000, 0x435: 0x4000,
+       0x436: 0x4000, 0x437: 0x4000, 0x438: 0x4000, 0x439: 0x4000, 0x43a: 0x4000, 0x43b: 0x4000,
+       0x43c: 0x4000, 0x43d: 0x4000, 0x43e: 0x4000, 0x43f: 0x4000,
+       // Block 0x11, offset 0x440
+       0x440: 0x4000, 0x441: 0x4000, 0x442: 0x4000, 0x443: 0x4000, 0x444: 0x4000, 0x445: 0x4000,
+       0x446: 0x4000, 0x447: 0x4000, 0x448: 0x4000, 0x449: 0x4000, 0x44a: 0x4000, 0x44b: 0x4000,
+       0x44c: 0x4000, 0x44d: 0x4000, 0x44e: 0x4000, 0x44f: 0x4000, 0x450: 0x4000, 0x451: 0x4000,
+       0x452: 0x4000, 0x453: 0x4000, 0x454: 0x4000, 0x455: 0x4000, 0x456: 0x4000, 0x457: 0x4000,
+       0x458: 0x4000, 0x459: 0x4000, 0x45a: 0x4000, 0x45b: 0x4000, 0x45c: 0x4000, 0x45d: 0x4000,
+       0x45e: 0x4000, 0x45f: 0x4000,
+       // Block 0x12, offset 0x480
+       0x490: 0x2000,
+       0x493: 0x2000, 0x494: 0x2000, 0x495: 0x2000, 0x496: 0x2000,
+       0x498: 0x2000, 0x499: 0x2000, 0x49c: 0x2000, 0x49d: 0x2000,
+       0x4a0: 0x2000, 0x4a1: 0x2000, 0x4a2: 0x2000,
+       0x4a4: 0x2000, 0x4a5: 0x2000, 0x4a6: 0x2000, 0x4a7: 0x2000,
+       0x4b0: 0x2000, 0x4b2: 0x2000, 0x4b3: 0x2000, 0x4b5: 0x2000,
+       0x4bb: 0x2000,
+       0x4be: 0x2000,
+       // Block 0x13, offset 0x4c0
+       0x4f4: 0x2000,
+       0x4ff: 0x2000,
+       // Block 0x14, offset 0x500
+       0x501: 0x2000, 0x502: 0x2000, 0x503: 0x2000, 0x504: 0x2000,
+       0x529: 0xa009,
+       0x52c: 0x2000,
+       // Block 0x15, offset 0x540
+       0x543: 0x2000, 0x545: 0x2000,
+       0x549: 0x2000,
+       0x553: 0x2000, 0x556: 0x2000,
+       0x561: 0x2000, 0x562: 0x2000,
+       0x566: 0x2000,
+       0x56b: 0x2000,
+       // Block 0x16, offset 0x580
+       0x593: 0x2000, 0x594: 0x2000,
+       0x59b: 0x2000, 0x59c: 0x2000, 0x59d: 0x2000,
+       0x59e: 0x2000, 0x5a0: 0x2000, 0x5a1: 0x2000, 0x5a2: 0x2000, 0x5a3: 0x2000,
+       0x5a4: 0x2000, 0x5a5: 0x2000, 0x5a6: 0x2000, 0x5a7: 0x2000, 0x5a8: 0x2000, 0x5a9: 0x2000,
+       0x5aa: 0x2000, 0x5ab: 0x2000,
+       0x5b0: 0x2000, 0x5b1: 0x2000, 0x5b2: 0x2000, 0x5b3: 0x2000, 0x5b4: 0x2000, 0x5b5: 0x2000,
+       0x5b6: 0x2000, 0x5b7: 0x2000, 0x5b8: 0x2000, 0x5b9: 0x2000,
+       // Block 0x17, offset 0x5c0
+       0x5c9: 0x2000,
+       0x5d0: 0x200a, 0x5d1: 0x200b,
+       0x5d2: 0x200a, 0x5d3: 0x200c, 0x5d4: 0x2000, 0x5d5: 0x2000, 0x5d6: 0x2000, 0x5d7: 0x2000,
+       0x5d8: 0x2000, 0x5d9: 0x2000,
+       0x5f8: 0x2000, 0x5f9: 0x2000,
+       // Block 0x18, offset 0x600
+       0x612: 0x2000, 0x614: 0x2000,
+       0x627: 0x2000,
+       // Block 0x19, offset 0x640
+       0x640: 0x2000, 0x642: 0x2000, 0x643: 0x2000,
+       0x647: 0x2000, 0x648: 0x2000, 0x64b: 0x2000,
+       0x64f: 0x2000, 0x651: 0x2000,
+       0x655: 0x2000,
+       0x65a: 0x2000, 0x65d: 0x2000,
+       0x65e: 0x2000, 0x65f: 0x2000, 0x660: 0x2000, 0x663: 0x2000,
+       0x665: 0x2000, 0x667: 0x2000, 0x668: 0x2000, 0x669: 0x2000,
+       0x66a: 0x2000, 0x66b: 0x2000, 0x66c: 0x2000, 0x66e: 0x2000,
+       0x674: 0x2000, 0x675: 0x2000,
+       0x676: 0x2000, 0x677: 0x2000,
+       0x67c: 0x2000, 0x67d: 0x2000,
+       // Block 0x1a, offset 0x680
+       0x688: 0x2000,
+       0x68c: 0x2000,
+       0x692: 0x2000,
+       0x6a0: 0x2000, 0x6a1: 0x2000,
+       0x6a4: 0x2000, 0x6a5: 0x2000, 0x6a6: 0x2000, 0x6a7: 0x2000,
+       0x6aa: 0x2000, 0x6ab: 0x2000, 0x6ae: 0x2000, 0x6af: 0x2000,
+       // Block 0x1b, offset 0x6c0
+       0x6c2: 0x2000, 0x6c3: 0x2000,
+       0x6c6: 0x2000, 0x6c7: 0x2000,
+       0x6d5: 0x2000,
+       0x6d9: 0x2000,
+       0x6e5: 0x2000,
+       0x6ff: 0x2000,
+       // Block 0x1c, offset 0x700
+       0x712: 0x2000,
+       0x71a: 0x4000, 0x71b: 0x4000,
+       0x729: 0x4000,
+       0x72a: 0x4000,
+       // Block 0x1d, offset 0x740
+       0x769: 0x4000,
+       0x76a: 0x4000, 0x76b: 0x4000, 0x76c: 0x4000,
+       0x770: 0x4000, 0x773: 0x4000,
+       // Block 0x1e, offset 0x780
+       0x7a0: 0x2000, 0x7a1: 0x2000, 0x7a2: 0x2000, 0x7a3: 0x2000,
+       0x7a4: 0x2000, 0x7a5: 0x2000, 0x7a6: 0x2000, 0x7a7: 0x2000, 0x7a8: 0x2000, 0x7a9: 0x2000,
+       0x7aa: 0x2000, 0x7ab: 0x2000, 0x7ac: 0x2000, 0x7ad: 0x2000, 0x7ae: 0x2000, 0x7af: 0x2000,
+       0x7b0: 0x2000, 0x7b1: 0x2000, 0x7b2: 0x2000, 0x7b3: 0x2000, 0x7b4: 0x2000, 0x7b5: 0x2000,
+       0x7b6: 0x2000, 0x7b7: 0x2000, 0x7b8: 0x2000, 0x7b9: 0x2000, 0x7ba: 0x2000, 0x7bb: 0x2000,
+       0x7bc: 0x2000, 0x7bd: 0x2000, 0x7be: 0x2000, 0x7bf: 0x2000,
+       // Block 0x1f, offset 0x7c0
+       0x7c0: 0x2000, 0x7c1: 0x2000, 0x7c2: 0x2000, 0x7c3: 0x2000, 0x7c4: 0x2000, 0x7c5: 0x2000,
+       0x7c6: 0x2000, 0x7c7: 0x2000, 0x7c8: 0x2000, 0x7c9: 0x2000, 0x7ca: 0x2000, 0x7cb: 0x2000,
+       0x7cc: 0x2000, 0x7cd: 0x2000, 0x7ce: 0x2000, 0x7cf: 0x2000, 0x7d0: 0x2000, 0x7d1: 0x2000,
+       0x7d2: 0x2000, 0x7d3: 0x2000, 0x7d4: 0x2000, 0x7d5: 0x2000, 0x7d6: 0x2000, 0x7d7: 0x2000,
+       0x7d8: 0x2000, 0x7d9: 0x2000, 0x7da: 0x2000, 0x7db: 0x2000, 0x7dc: 0x2000, 0x7dd: 0x2000,
+       0x7de: 0x2000, 0x7df: 0x2000, 0x7e0: 0x2000, 0x7e1: 0x2000, 0x7e2: 0x2000, 0x7e3: 0x2000,
+       0x7e4: 0x2000, 0x7e5: 0x2000, 0x7e6: 0x2000, 0x7e7: 0x2000, 0x7e8: 0x2000, 0x7e9: 0x2000,
+       0x7eb: 0x2000, 0x7ec: 0x2000, 0x7ed: 0x2000, 0x7ee: 0x2000, 0x7ef: 0x2000,
+       0x7f0: 0x2000, 0x7f1: 0x2000, 0x7f2: 0x2000, 0x7f3: 0x2000, 0x7f4: 0x2000, 0x7f5: 0x2000,
+       0x7f6: 0x2000, 0x7f7: 0x2000, 0x7f8: 0x2000, 0x7f9: 0x2000, 0x7fa: 0x2000, 0x7fb: 0x2000,
+       0x7fc: 0x2000, 0x7fd: 0x2000, 0x7fe: 0x2000, 0x7ff: 0x2000,
+       // Block 0x20, offset 0x800
+       0x800: 0x2000, 0x801: 0x2000, 0x802: 0x200d, 0x803: 0x2000, 0x804: 0x2000, 0x805: 0x2000,
+       0x806: 0x2000, 0x807: 0x2000, 0x808: 0x2000, 0x809: 0x2000, 0x80a: 0x2000, 0x80b: 0x2000,
+       0x80c: 0x2000, 0x80d: 0x2000, 0x80e: 0x2000, 0x80f: 0x2000, 0x810: 0x2000, 0x811: 0x2000,
+       0x812: 0x2000, 0x813: 0x2000, 0x814: 0x2000, 0x815: 0x2000, 0x816: 0x2000, 0x817: 0x2000,
+       0x818: 0x2000, 0x819: 0x2000, 0x81a: 0x2000, 0x81b: 0x2000, 0x81c: 0x2000, 0x81d: 0x2000,
+       0x81e: 0x2000, 0x81f: 0x2000, 0x820: 0x2000, 0x821: 0x2000, 0x822: 0x2000, 0x823: 0x2000,
+       0x824: 0x2000, 0x825: 0x2000, 0x826: 0x2000, 0x827: 0x2000, 0x828: 0x2000, 0x829: 0x2000,
+       0x82a: 0x2000, 0x82b: 0x2000, 0x82c: 0x2000, 0x82d: 0x2000, 0x82e: 0x2000, 0x82f: 0x2000,
+       0x830: 0x2000, 0x831: 0x2000, 0x832: 0x2000, 0x833: 0x2000, 0x834: 0x2000, 0x835: 0x2000,
+       0x836: 0x2000, 0x837: 0x2000, 0x838: 0x2000, 0x839: 0x2000, 0x83a: 0x2000, 0x83b: 0x2000,
+       0x83c: 0x2000, 0x83d: 0x2000, 0x83e: 0x2000, 0x83f: 0x2000,
+       // Block 0x21, offset 0x840
+       0x840: 0x2000, 0x841: 0x2000, 0x842: 0x2000, 0x843: 0x2000, 0x844: 0x2000, 0x845: 0x2000,
+       0x846: 0x2000, 0x847: 0x2000, 0x848: 0x2000, 0x849: 0x2000, 0x84a: 0x2000, 0x84b: 0x2000,
+       0x850: 0x2000, 0x851: 0x2000,
+       0x852: 0x2000, 0x853: 0x2000, 0x854: 0x2000, 0x855: 0x2000, 0x856: 0x2000, 0x857: 0x2000,
+       0x858: 0x2000, 0x859: 0x2000, 0x85a: 0x2000, 0x85b: 0x2000, 0x85c: 0x2000, 0x85d: 0x2000,
+       0x85e: 0x2000, 0x85f: 0x2000, 0x860: 0x2000, 0x861: 0x2000, 0x862: 0x2000, 0x863: 0x2000,
+       0x864: 0x2000, 0x865: 0x2000, 0x866: 0x2000, 0x867: 0x2000, 0x868: 0x2000, 0x869: 0x2000,
+       0x86a: 0x2000, 0x86b: 0x2000, 0x86c: 0x2000, 0x86d: 0x2000, 0x86e: 0x2000, 0x86f: 0x2000,
+       0x870: 0x2000, 0x871: 0x2000, 0x872: 0x2000, 0x873: 0x2000,
+       // Block 0x22, offset 0x880
+       0x880: 0x2000, 0x881: 0x2000, 0x882: 0x2000, 0x883: 0x2000, 0x884: 0x2000, 0x885: 0x2000,
+       0x886: 0x2000, 0x887: 0x2000, 0x888: 0x2000, 0x889: 0x2000, 0x88a: 0x2000, 0x88b: 0x2000,
+       0x88c: 0x2000, 0x88d: 0x2000, 0x88e: 0x2000, 0x88f: 0x2000,
+       0x892: 0x2000, 0x893: 0x2000, 0x894: 0x2000, 0x895: 0x2000,
+       0x8a0: 0x200e, 0x8a1: 0x2000, 0x8a3: 0x2000,
+       0x8a4: 0x2000, 0x8a5: 0x2000, 0x8a6: 0x2000, 0x8a7: 0x2000, 0x8a8: 0x2000, 0x8a9: 0x2000,
+       0x8b2: 0x2000, 0x8b3: 0x2000,
+       0x8b6: 0x2000, 0x8b7: 0x2000,
+       0x8bc: 0x2000, 0x8bd: 0x2000,
+       // Block 0x23, offset 0x8c0
+       0x8c0: 0x2000, 0x8c1: 0x2000,
+       0x8c6: 0x2000, 0x8c7: 0x2000, 0x8c8: 0x2000, 0x8cb: 0x200f,
+       0x8ce: 0x2000, 0x8cf: 0x2000, 0x8d0: 0x2000, 0x8d1: 0x2000,
+       0x8e2: 0x2000, 0x8e3: 0x2000,
+       0x8e4: 0x2000, 0x8e5: 0x2000,
+       0x8ef: 0x2000,
+       0x8fd: 0x4000, 0x8fe: 0x4000,
+       // Block 0x24, offset 0x900
+       0x905: 0x2000,
+       0x906: 0x2000, 0x909: 0x2000,
+       0x90e: 0x2000, 0x90f: 0x2000,
+       0x914: 0x4000, 0x915: 0x4000,
+       0x91c: 0x2000,
+       0x91e: 0x2000,
+       // Block 0x25, offset 0x940
+       0x940: 0x2000, 0x942: 0x2000,
+       0x948: 0x4000, 0x949: 0x4000, 0x94a: 0x4000, 0x94b: 0x4000,
+       0x94c: 0x4000, 0x94d: 0x4000, 0x94e: 0x4000, 0x94f: 0x4000, 0x950: 0x4000, 0x951: 0x4000,
+       0x952: 0x4000, 0x953: 0x4000,
+       0x960: 0x2000, 0x961: 0x2000, 0x963: 0x2000,
+       0x964: 0x2000, 0x965: 0x2000, 0x967: 0x2000, 0x968: 0x2000, 0x969: 0x2000,
+       0x96a: 0x2000, 0x96c: 0x2000, 0x96d: 0x2000, 0x96f: 0x2000,
+       0x97f: 0x4000,
+       // Block 0x26, offset 0x980
+       0x993: 0x4000,
+       0x99e: 0x2000, 0x99f: 0x2000, 0x9a1: 0x4000,
+       0x9aa: 0x4000, 0x9ab: 0x4000,
+       0x9bd: 0x4000, 0x9be: 0x4000, 0x9bf: 0x2000,
+       // Block 0x27, offset 0x9c0
+       0x9c4: 0x4000, 0x9c5: 0x4000,
+       0x9c6: 0x2000, 0x9c7: 0x2000, 0x9c8: 0x2000, 0x9c9: 0x2000, 0x9ca: 0x2000, 0x9cb: 0x2000,
+       0x9cc: 0x2000, 0x9cd: 0x2000, 0x9ce: 0x4000, 0x9cf: 0x2000, 0x9d0: 0x2000, 0x9d1: 0x2000,
+       0x9d2: 0x2000, 0x9d3: 0x2000, 0x9d4: 0x4000, 0x9d5: 0x2000, 0x9d6: 0x2000, 0x9d7: 0x2000,
+       0x9d8: 0x2000, 0x9d9: 0x2000, 0x9da: 0x2000, 0x9db: 0x2000, 0x9dc: 0x2000, 0x9dd: 0x2000,
+       0x9de: 0x2000, 0x9df: 0x2000, 0x9e0: 0x2000, 0x9e1: 0x2000, 0x9e3: 0x2000,
+       0x9e8: 0x2000, 0x9e9: 0x2000,
+       0x9ea: 0x4000, 0x9eb: 0x2000, 0x9ec: 0x2000, 0x9ed: 0x2000, 0x9ee: 0x2000, 0x9ef: 0x2000,
+       0x9f0: 0x2000, 0x9f1: 0x2000, 0x9f2: 0x4000, 0x9f3: 0x4000, 0x9f4: 0x2000, 0x9f5: 0x4000,
+       0x9f6: 0x2000, 0x9f7: 0x2000, 0x9f8: 0x2000, 0x9f9: 0x2000, 0x9fa: 0x4000, 0x9fb: 0x2000,
+       0x9fc: 0x2000, 0x9fd: 0x4000, 0x9fe: 0x2000, 0x9ff: 0x2000,
+       // Block 0x28, offset 0xa00
+       0xa05: 0x4000,
+       0xa0a: 0x4000, 0xa0b: 0x4000,
+       0xa28: 0x4000,
+       0xa3d: 0x2000,
+       // Block 0x29, offset 0xa40
+       0xa4c: 0x4000, 0xa4e: 0x4000,
+       0xa53: 0x4000, 0xa54: 0x4000, 0xa55: 0x4000, 0xa57: 0x4000,
+       0xa76: 0x2000, 0xa77: 0x2000, 0xa78: 0x2000, 0xa79: 0x2000, 0xa7a: 0x2000, 0xa7b: 0x2000,
+       0xa7c: 0x2000, 0xa7d: 0x2000, 0xa7e: 0x2000, 0xa7f: 0x2000,
+       // Block 0x2a, offset 0xa80
+       0xa95: 0x4000, 0xa96: 0x4000, 0xa97: 0x4000,
+       0xab0: 0x4000,
+       0xabf: 0x4000,
+       // Block 0x2b, offset 0xac0
+       0xae6: 0x6000, 0xae7: 0x6000, 0xae8: 0x6000, 0xae9: 0x6000,
+       0xaea: 0x6000, 0xaeb: 0x6000, 0xaec: 0x6000, 0xaed: 0x6000,
+       // Block 0x2c, offset 0xb00
+       0xb05: 0x6010,
+       0xb06: 0x6011,
+       // Block 0x2d, offset 0xb40
+       0xb5b: 0x4000, 0xb5c: 0x4000,
+       // Block 0x2e, offset 0xb80
+       0xb90: 0x4000,
+       0xb95: 0x4000, 0xb96: 0x2000, 0xb97: 0x2000,
+       0xb98: 0x2000, 0xb99: 0x2000,
+       // Block 0x2f, offset 0xbc0
+       0xbc0: 0x4000, 0xbc1: 0x4000, 0xbc2: 0x4000, 0xbc3: 0x4000, 0xbc4: 0x4000, 0xbc5: 0x4000,
+       0xbc6: 0x4000, 0xbc7: 0x4000, 0xbc8: 0x4000, 0xbc9: 0x4000, 0xbca: 0x4000, 0xbcb: 0x4000,
+       0xbcc: 0x4000, 0xbcd: 0x4000, 0xbce: 0x4000, 0xbcf: 0x4000, 0xbd0: 0x4000, 0xbd1: 0x4000,
+       0xbd2: 0x4000, 0xbd3: 0x4000, 0xbd4: 0x4000, 0xbd5: 0x4000, 0xbd6: 0x4000, 0xbd7: 0x4000,
+       0xbd8: 0x4000, 0xbd9: 0x4000, 0xbdb: 0x4000, 0xbdc: 0x4000, 0xbdd: 0x4000,
+       0xbde: 0x4000, 0xbdf: 0x4000, 0xbe0: 0x4000, 0xbe1: 0x4000, 0xbe2: 0x4000, 0xbe3: 0x4000,
+       0xbe4: 0x4000, 0xbe5: 0x4000, 0xbe6: 0x4000, 0xbe7: 0x4000, 0xbe8: 0x4000, 0xbe9: 0x4000,
+       0xbea: 0x4000, 0xbeb: 0x4000, 0xbec: 0x4000, 0xbed: 0x4000, 0xbee: 0x4000, 0xbef: 0x4000,
+       0xbf0: 0x4000, 0xbf1: 0x4000, 0xbf2: 0x4000, 0xbf3: 0x4000, 0xbf4: 0x4000, 0xbf5: 0x4000,
+       0xbf6: 0x4000, 0xbf7: 0x4000, 0xbf8: 0x4000, 0xbf9: 0x4000, 0xbfa: 0x4000, 0xbfb: 0x4000,
+       0xbfc: 0x4000, 0xbfd: 0x4000, 0xbfe: 0x4000, 0xbff: 0x4000,
+       // Block 0x30, offset 0xc00
+       0xc00: 0x4000, 0xc01: 0x4000, 0xc02: 0x4000, 0xc03: 0x4000, 0xc04: 0x4000, 0xc05: 0x4000,
+       0xc06: 0x4000, 0xc07: 0x4000, 0xc08: 0x4000, 0xc09: 0x4000, 0xc0a: 0x4000, 0xc0b: 0x4000,
+       0xc0c: 0x4000, 0xc0d: 0x4000, 0xc0e: 0x4000, 0xc0f: 0x4000, 0xc10: 0x4000, 0xc11: 0x4000,
+       0xc12: 0x4000, 0xc13: 0x4000, 0xc14: 0x4000, 0xc15: 0x4000, 0xc16: 0x4000, 0xc17: 0x4000,
+       0xc18: 0x4000, 0xc19: 0x4000, 0xc1a: 0x4000, 0xc1b: 0x4000, 0xc1c: 0x4000, 0xc1d: 0x4000,
+       0xc1e: 0x4000, 0xc1f: 0x4000, 0xc20: 0x4000, 0xc21: 0x4000, 0xc22: 0x4000, 0xc23: 0x4000,
+       0xc24: 0x4000, 0xc25: 0x4000, 0xc26: 0x4000, 0xc27: 0x4000, 0xc28: 0x4000, 0xc29: 0x4000,
+       0xc2a: 0x4000, 0xc2b: 0x4000, 0xc2c: 0x4000, 0xc2d: 0x4000, 0xc2e: 0x4000, 0xc2f: 0x4000,
+       0xc30: 0x4000, 0xc31: 0x4000, 0xc32: 0x4000, 0xc33: 0x4000,
+       // Block 0x31, offset 0xc40
+       0xc40: 0x4000, 0xc41: 0x4000, 0xc42: 0x4000, 0xc43: 0x4000, 0xc44: 0x4000, 0xc45: 0x4000,
+       0xc46: 0x4000, 0xc47: 0x4000, 0xc48: 0x4000, 0xc49: 0x4000, 0xc4a: 0x4000, 0xc4b: 0x4000,
+       0xc4c: 0x4000, 0xc4d: 0x4000, 0xc4e: 0x4000, 0xc4f: 0x4000, 0xc50: 0x4000, 0xc51: 0x4000,
+       0xc52: 0x4000, 0xc53: 0x4000, 0xc54: 0x4000, 0xc55: 0x4000,
+       0xc70: 0x4000, 0xc71: 0x4000, 0xc72: 0x4000, 0xc73: 0x4000, 0xc74: 0x4000, 0xc75: 0x4000,
+       0xc76: 0x4000, 0xc77: 0x4000, 0xc78: 0x4000, 0xc79: 0x4000, 0xc7a: 0x4000, 0xc7b: 0x4000,
+       // Block 0x32, offset 0xc80
+       0xc80: 0x9012, 0xc81: 0x4013, 0xc82: 0x4014, 0xc83: 0x4000, 0xc84: 0x4000, 0xc85: 0x4000,
+       0xc86: 0x4000, 0xc87: 0x4000, 0xc88: 0x4000, 0xc89: 0x4000, 0xc8a: 0x4000, 0xc8b: 0x4000,
+       0xc8c: 0x4015, 0xc8d: 0x4015, 0xc8e: 0x4000, 0xc8f: 0x4000, 0xc90: 0x4000, 0xc91: 0x4000,
+       0xc92: 0x4000, 0xc93: 0x4000, 0xc94: 0x4000, 0xc95: 0x4000, 0xc96: 0x4000, 0xc97: 0x4000,
+       0xc98: 0x4000, 0xc99: 0x4000, 0xc9a: 0x4000, 0xc9b: 0x4000, 0xc9c: 0x4000, 0xc9d: 0x4000,
+       0xc9e: 0x4000, 0xc9f: 0x4000, 0xca0: 0x4000, 0xca1: 0x4000, 0xca2: 0x4000, 0xca3: 0x4000,
+       0xca4: 0x4000, 0xca5: 0x4000, 0xca6: 0x4000, 0xca7: 0x4000, 0xca8: 0x4000, 0xca9: 0x4000,
+       0xcaa: 0x4000, 0xcab: 0x4000, 0xcac: 0x4000, 0xcad: 0x4000, 0xcae: 0x4000, 0xcaf: 0x4000,
+       0xcb0: 0x4000, 0xcb1: 0x4000, 0xcb2: 0x4000, 0xcb3: 0x4000, 0xcb4: 0x4000, 0xcb5: 0x4000,
+       0xcb6: 0x4000, 0xcb7: 0x4000, 0xcb8: 0x4000, 0xcb9: 0x4000, 0xcba: 0x4000, 0xcbb: 0x4000,
+       0xcbc: 0x4000, 0xcbd: 0x4000, 0xcbe: 0x4000,
+       // Block 0x33, offset 0xcc0
+       0xcc1: 0x4000, 0xcc2: 0x4000, 0xcc3: 0x4000, 0xcc4: 0x4000, 0xcc5: 0x4000,
+       0xcc6: 0x4000, 0xcc7: 0x4000, 0xcc8: 0x4000, 0xcc9: 0x4000, 0xcca: 0x4000, 0xccb: 0x4000,
+       0xccc: 0x4000, 0xccd: 0x4000, 0xcce: 0x4000, 0xccf: 0x4000, 0xcd0: 0x4000, 0xcd1: 0x4000,
+       0xcd2: 0x4000, 0xcd3: 0x4000, 0xcd4: 0x4000, 0xcd5: 0x4000, 0xcd6: 0x4000, 0xcd7: 0x4000,
+       0xcd8: 0x4000, 0xcd9: 0x4000, 0xcda: 0x4000, 0xcdb: 0x4000, 0xcdc: 0x4000, 0xcdd: 0x4000,
+       0xcde: 0x4000, 0xcdf: 0x4000, 0xce0: 0x4000, 0xce1: 0x4000, 0xce2: 0x4000, 0xce3: 0x4000,
+       0xce4: 0x4000, 0xce5: 0x4000, 0xce6: 0x4000, 0xce7: 0x4000, 0xce8: 0x4000, 0xce9: 0x4000,
+       0xcea: 0x4000, 0xceb: 0x4000, 0xcec: 0x4000, 0xced: 0x4000, 0xcee: 0x4000, 0xcef: 0x4000,
+       0xcf0: 0x4000, 0xcf1: 0x4000, 0xcf2: 0x4000, 0xcf3: 0x4000, 0xcf4: 0x4000, 0xcf5: 0x4000,
+       0xcf6: 0x4000, 0xcf7: 0x4000, 0xcf8: 0x4000, 0xcf9: 0x4000, 0xcfa: 0x4000, 0xcfb: 0x4000,
+       0xcfc: 0x4000, 0xcfd: 0x4000, 0xcfe: 0x4000, 0xcff: 0x4000,
+       // Block 0x34, offset 0xd00
+       0xd00: 0x4000, 0xd01: 0x4000, 0xd02: 0x4000, 0xd03: 0x4000, 0xd04: 0x4000, 0xd05: 0x4000,
+       0xd06: 0x4000, 0xd07: 0x4000, 0xd08: 0x4000, 0xd09: 0x4000, 0xd0a: 0x4000, 0xd0b: 0x4000,
+       0xd0c: 0x4000, 0xd0d: 0x4000, 0xd0e: 0x4000, 0xd0f: 0x4000, 0xd10: 0x4000, 0xd11: 0x4000,
+       0xd12: 0x4000, 0xd13: 0x4000, 0xd14: 0x4000, 0xd15: 0x4000, 0xd16: 0x4000,
+       0xd19: 0x4016, 0xd1a: 0x4017, 0xd1b: 0x4000, 0xd1c: 0x4000, 0xd1d: 0x4000,
+       0xd1e: 0x4000, 0xd1f: 0x4000, 0xd20: 0x4000, 0xd21: 0x4018, 0xd22: 0x4019, 0xd23: 0x401a,
+       0xd24: 0x401b, 0xd25: 0x401c, 0xd26: 0x401d, 0xd27: 0x401e, 0xd28: 0x401f, 0xd29: 0x4020,
+       0xd2a: 0x4021, 0xd2b: 0x4022, 0xd2c: 0x4000, 0xd2d: 0x4010, 0xd2e: 0x4000, 0xd2f: 0x4023,
+       0xd30: 0x4000, 0xd31: 0x4024, 0xd32: 0x4000, 0xd33: 0x4025, 0xd34: 0x4000, 0xd35: 0x4026,
+       0xd36: 0x4000, 0xd37: 0x401a, 0xd38: 0x4000, 0xd39: 0x4027, 0xd3a: 0x4000, 0xd3b: 0x4028,
+       0xd3c: 0x4000, 0xd3d: 0x4020, 0xd3e: 0x4000, 0xd3f: 0x4029,
+       // Block 0x35, offset 0xd40
+       0xd40: 0x4000, 0xd41: 0x402a, 0xd42: 0x4000, 0xd43: 0x402b, 0xd44: 0x402c, 0xd45: 0x4000,
+       0xd46: 0x4017, 0xd47: 0x4000, 0xd48: 0x402d, 0xd49: 0x4000, 0xd4a: 0x402e, 0xd4b: 0x402f,
+       0xd4c: 0x4030, 0xd4d: 0x4017, 0xd4e: 0x4016, 0xd4f: 0x4017, 0xd50: 0x4000, 0xd51: 0x4000,
+       0xd52: 0x4031, 0xd53: 0x4000, 0xd54: 0x4000, 0xd55: 0x4031, 0xd56: 0x4000, 0xd57: 0x4000,
+       0xd58: 0x4032, 0xd59: 0x4000, 0xd5a: 0x4000, 0xd5b: 0x4032, 0xd5c: 0x4000, 0xd5d: 0x4000,
+       0xd5e: 0x4033, 0xd5f: 0x402e, 0xd60: 0x4034, 0xd61: 0x4035, 0xd62: 0x4034, 0xd63: 0x4036,
+       0xd64: 0x4037, 0xd65: 0x4024, 0xd66: 0x4035, 0xd67: 0x4025, 0xd68: 0x4038, 0xd69: 0x4038,
+       0xd6a: 0x4039, 0xd6b: 0x4039, 0xd6c: 0x403a, 0xd6d: 0x403a, 0xd6e: 0x4000, 0xd6f: 0x4035,
+       0xd70: 0x4000, 0xd71: 0x4000, 0xd72: 0x403b, 0xd73: 0x403c, 0xd74: 0x4000, 0xd75: 0x4000,
+       0xd76: 0x4000, 0xd77: 0x4000, 0xd78: 0x4000, 0xd79: 0x4000, 0xd7a: 0x4000, 0xd7b: 0x403d,
+       0xd7c: 0x401c, 0xd7d: 0x4000, 0xd7e: 0x4000, 0xd7f: 0x4000,
+       // Block 0x36, offset 0xd80
+       0xd85: 0x4000,
+       0xd86: 0x4000, 0xd87: 0x4000, 0xd88: 0x4000, 0xd89: 0x4000, 0xd8a: 0x4000, 0xd8b: 0x4000,
+       0xd8c: 0x4000, 0xd8d: 0x4000, 0xd8e: 0x4000, 0xd8f: 0x4000, 0xd90: 0x4000, 0xd91: 0x4000,
+       0xd92: 0x4000, 0xd93: 0x4000, 0xd94: 0x4000, 0xd95: 0x4000, 0xd96: 0x4000, 0xd97: 0x4000,
+       0xd98: 0x4000, 0xd99: 0x4000, 0xd9a: 0x4000, 0xd9b: 0x4000, 0xd9c: 0x4000, 0xd9d: 0x4000,
+       0xd9e: 0x4000, 0xd9f: 0x4000, 0xda0: 0x4000, 0xda1: 0x4000, 0xda2: 0x4000, 0xda3: 0x4000,
+       0xda4: 0x4000, 0xda5: 0x4000, 0xda6: 0x4000, 0xda7: 0x4000, 0xda8: 0x4000, 0xda9: 0x4000,
+       0xdaa: 0x4000, 0xdab: 0x4000, 0xdac: 0x4000, 0xdad: 0x4000,
+       0xdb1: 0x403e, 0xdb2: 0x403e, 0xdb3: 0x403e, 0xdb4: 0x403e, 0xdb5: 0x403e,
+       0xdb6: 0x403e, 0xdb7: 0x403e, 0xdb8: 0x403e, 0xdb9: 0x403e, 0xdba: 0x403e, 0xdbb: 0x403e,
+       0xdbc: 0x403e, 0xdbd: 0x403e, 0xdbe: 0x403e, 0xdbf: 0x403e,
+       // Block 0x37, offset 0xdc0
+       0xdc0: 0x4037, 0xdc1: 0x4037, 0xdc2: 0x4037, 0xdc3: 0x4037, 0xdc4: 0x4037, 0xdc5: 0x4037,
+       0xdc6: 0x4037, 0xdc7: 0x4037, 0xdc8: 0x4037, 0xdc9: 0x4037, 0xdca: 0x4037, 0xdcb: 0x4037,
+       0xdcc: 0x4037, 0xdcd: 0x4037, 0xdce: 0x4037, 0xdcf: 0x400e, 0xdd0: 0x403f, 0xdd1: 0x4040,
+       0xdd2: 0x4041, 0xdd3: 0x4040, 0xdd4: 0x403f, 0xdd5: 0x4042, 0xdd6: 0x4043, 0xdd7: 0x4044,
+       0xdd8: 0x4040, 0xdd9: 0x4041, 0xdda: 0x4040, 0xddb: 0x4045, 0xddc: 0x4009, 0xddd: 0x4045,
+       0xdde: 0x4046, 0xddf: 0x4045, 0xde0: 0x4047, 0xde1: 0x400b, 0xde2: 0x400a, 0xde3: 0x400c,
+       0xde4: 0x4048, 0xde5: 0x4000, 0xde6: 0x4000, 0xde7: 0x4000, 0xde8: 0x4000, 0xde9: 0x4000,
+       0xdea: 0x4000, 0xdeb: 0x4000, 0xdec: 0x4000, 0xded: 0x4000, 0xdee: 0x4000, 0xdef: 0x4000,
+       0xdf0: 0x4000, 0xdf1: 0x4000, 0xdf2: 0x4000, 0xdf3: 0x4000, 0xdf4: 0x4000, 0xdf5: 0x4000,
+       0xdf6: 0x4000, 0xdf7: 0x4000, 0xdf8: 0x4000, 0xdf9: 0x4000, 0xdfa: 0x4000, 0xdfb: 0x4000,
+       0xdfc: 0x4000, 0xdfd: 0x4000, 0xdfe: 0x4000, 0xdff: 0x4000,
+       // Block 0x38, offset 0xe00
+       0xe00: 0x4000, 0xe01: 0x4000, 0xe02: 0x4000, 0xe03: 0x4000, 0xe04: 0x4000, 0xe05: 0x4000,
+       0xe06: 0x4000, 0xe07: 0x4000, 0xe08: 0x4000, 0xe09: 0x4000, 0xe0a: 0x4000, 0xe0b: 0x4000,
+       0xe0c: 0x4000, 0xe0d: 0x4000, 0xe0e: 0x4000, 0xe10: 0x4000, 0xe11: 0x4000,
+       0xe12: 0x4000, 0xe13: 0x4000, 0xe14: 0x4000, 0xe15: 0x4000, 0xe16: 0x4000, 0xe17: 0x4000,
+       0xe18: 0x4000, 0xe19: 0x4000, 0xe1a: 0x4000, 0xe1b: 0x4000, 0xe1c: 0x4000, 0xe1d: 0x4000,
+       0xe1e: 0x4000, 0xe1f: 0x4000, 0xe20: 0x4000, 0xe21: 0x4000, 0xe22: 0x4000, 0xe23: 0x4000,
+       0xe24: 0x4000, 0xe25: 0x4000, 0xe26: 0x4000, 0xe27: 0x4000, 0xe28: 0x4000, 0xe29: 0x4000,
+       0xe2a: 0x4000, 0xe2b: 0x4000, 0xe2c: 0x4000, 0xe2d: 0x4000, 0xe2e: 0x4000, 0xe2f: 0x4000,
+       0xe30: 0x4000, 0xe31: 0x4000, 0xe32: 0x4000, 0xe33: 0x4000, 0xe34: 0x4000, 0xe35: 0x4000,
+       0xe36: 0x4000, 0xe37: 0x4000, 0xe38: 0x4000, 0xe39: 0x4000, 0xe3a: 0x4000,
+       // Block 0x39, offset 0xe40
+       0xe40: 0x4000, 0xe41: 0x4000, 0xe42: 0x4000, 0xe43: 0x4000, 0xe44: 0x4000, 0xe45: 0x4000,
+       0xe46: 0x4000, 0xe47: 0x4000, 0xe48: 0x4000, 0xe49: 0x4000, 0xe4a: 0x4000, 0xe4b: 0x4000,
+       0xe4c: 0x4000, 0xe4d: 0x4000, 0xe4e: 0x4000, 0xe4f: 0x4000, 0xe50: 0x4000, 0xe51: 0x4000,
+       0xe52: 0x4000, 0xe53: 0x4000, 0xe54: 0x4000, 0xe55: 0x4000, 0xe56: 0x4000, 0xe57: 0x4000,
+       0xe58: 0x4000, 0xe59: 0x4000, 0xe5a: 0x4000, 0xe5b: 0x4000, 0xe5c: 0x4000, 0xe5d: 0x4000,
+       0xe5e: 0x4000, 0xe5f: 0x4000, 0xe60: 0x4000, 0xe61: 0x4000, 0xe62: 0x4000, 0xe63: 0x4000,
+       0xe70: 0x4000, 0xe71: 0x4000, 0xe72: 0x4000, 0xe73: 0x4000, 0xe74: 0x4000, 0xe75: 0x4000,
+       0xe76: 0x4000, 0xe77: 0x4000, 0xe78: 0x4000, 0xe79: 0x4000, 0xe7a: 0x4000, 0xe7b: 0x4000,
+       0xe7c: 0x4000, 0xe7d: 0x4000, 0xe7e: 0x4000, 0xe7f: 0x4000,
+       // Block 0x3a, offset 0xe80
+       0xe80: 0x4000, 0xe81: 0x4000, 0xe82: 0x4000, 0xe83: 0x4000, 0xe84: 0x4000, 0xe85: 0x4000,
+       0xe86: 0x4000, 0xe87: 0x4000, 0xe88: 0x4000, 0xe89: 0x4000, 0xe8a: 0x4000, 0xe8b: 0x4000,
+       0xe8c: 0x4000, 0xe8d: 0x4000, 0xe8e: 0x4000, 0xe8f: 0x4000, 0xe90: 0x4000, 0xe91: 0x4000,
+       0xe92: 0x4000, 0xe93: 0x4000, 0xe94: 0x4000, 0xe95: 0x4000, 0xe96: 0x4000, 0xe97: 0x4000,
+       0xe98: 0x4000, 0xe99: 0x4000, 0xe9a: 0x4000, 0xe9b: 0x4000, 0xe9c: 0x4000, 0xe9d: 0x4000,
+       0xe9e: 0x4000, 0xea0: 0x4000, 0xea1: 0x4000, 0xea2: 0x4000, 0xea3: 0x4000,
+       0xea4: 0x4000, 0xea5: 0x4000, 0xea6: 0x4000, 0xea7: 0x4000, 0xea8: 0x4000, 0xea9: 0x4000,
+       0xeaa: 0x4000, 0xeab: 0x4000, 0xeac: 0x4000, 0xead: 0x4000, 0xeae: 0x4000, 0xeaf: 0x4000,
+       0xeb0: 0x4000, 0xeb1: 0x4000, 0xeb2: 0x4000, 0xeb3: 0x4000, 0xeb4: 0x4000, 0xeb5: 0x4000,
+       0xeb6: 0x4000, 0xeb7: 0x4000, 0xeb8: 0x4000, 0xeb9: 0x4000, 0xeba: 0x4000, 0xebb: 0x4000,
+       0xebc: 0x4000, 0xebd: 0x4000, 0xebe: 0x4000, 0xebf: 0x4000,
+       // Block 0x3b, offset 0xec0
+       0xec0: 0x4000, 0xec1: 0x4000, 0xec2: 0x4000, 0xec3: 0x4000, 0xec4: 0x4000, 0xec5: 0x4000,
+       0xec6: 0x4000, 0xec7: 0x4000, 0xec8: 0x2000, 0xec9: 0x2000, 0xeca: 0x2000, 0xecb: 0x2000,
+       0xecc: 0x2000, 0xecd: 0x2000, 0xece: 0x2000, 0xecf: 0x2000, 0xed0: 0x4000, 0xed1: 0x4000,
+       0xed2: 0x4000, 0xed3: 0x4000, 0xed4: 0x4000, 0xed5: 0x4000, 0xed6: 0x4000, 0xed7: 0x4000,
+       0xed8: 0x4000, 0xed9: 0x4000, 0xeda: 0x4000, 0xedb: 0x4000, 0xedc: 0x4000, 0xedd: 0x4000,
+       0xede: 0x4000, 0xedf: 0x4000, 0xee0: 0x4000, 0xee1: 0x4000, 0xee2: 0x4000, 0xee3: 0x4000,
+       0xee4: 0x4000, 0xee5: 0x4000, 0xee6: 0x4000, 0xee7: 0x4000, 0xee8: 0x4000, 0xee9: 0x4000,
+       0xeea: 0x4000, 0xeeb: 0x4000, 0xeec: 0x4000, 0xeed: 0x4000, 0xeee: 0x4000, 0xeef: 0x4000,
+       0xef0: 0x4000, 0xef1: 0x4000, 0xef2: 0x4000, 0xef3: 0x4000, 0xef4: 0x4000, 0xef5: 0x4000,
+       0xef6: 0x4000, 0xef7: 0x4000, 0xef8: 0x4000, 0xef9: 0x4000, 0xefa: 0x4000, 0xefb: 0x4000,
+       0xefc: 0x4000, 0xefd: 0x4000, 0xefe: 0x4000, 0xeff: 0x4000,
+       // Block 0x3c, offset 0xf00
+       0xf00: 0x4000, 0xf01: 0x4000, 0xf02: 0x4000, 0xf03: 0x4000, 0xf04: 0x4000, 0xf05: 0x4000,
+       0xf06: 0x4000, 0xf07: 0x4000, 0xf08: 0x4000, 0xf09: 0x4000, 0xf0a: 0x4000, 0xf0b: 0x4000,
+       0xf0c: 0x4000, 0xf0d: 0x4000, 0xf0e: 0x4000, 0xf0f: 0x4000, 0xf10: 0x4000, 0xf11: 0x4000,
+       0xf12: 0x4000, 0xf13: 0x4000, 0xf14: 0x4000, 0xf15: 0x4000, 0xf16: 0x4000, 0xf17: 0x4000,
+       0xf18: 0x4000, 0xf19: 0x4000, 0xf1a: 0x4000, 0xf1b: 0x4000, 0xf1c: 0x4000, 0xf1d: 0x4000,
+       0xf1e: 0x4000, 0xf1f: 0x4000, 0xf20: 0x4000, 0xf21: 0x4000, 0xf22: 0x4000, 0xf23: 0x4000,
+       0xf24: 0x4000, 0xf25: 0x4000, 0xf26: 0x4000, 0xf27: 0x4000, 0xf28: 0x4000, 0xf29: 0x4000,
+       0xf2a: 0x4000, 0xf2b: 0x4000, 0xf2c: 0x4000, 0xf2d: 0x4000, 0xf2e: 0x4000, 0xf2f: 0x4000,
+       0xf30: 0x4000, 0xf31: 0x4000, 0xf32: 0x4000, 0xf33: 0x4000, 0xf34: 0x4000, 0xf35: 0x4000,
+       0xf36: 0x4000, 0xf37: 0x4000, 0xf38: 0x4000, 0xf39: 0x4000, 0xf3a: 0x4000, 0xf3b: 0x4000,
+       0xf3c: 0x4000, 0xf3d: 0x4000, 0xf3e: 0x4000,
+       // Block 0x3d, offset 0xf40
+       0xf40: 0x4000, 0xf41: 0x4000, 0xf42: 0x4000, 0xf43: 0x4000, 0xf44: 0x4000, 0xf45: 0x4000,
+       0xf46: 0x4000, 0xf47: 0x4000, 0xf48: 0x4000, 0xf49: 0x4000, 0xf4a: 0x4000, 0xf4b: 0x4000,
+       0xf4c: 0x4000, 0xf50: 0x4000, 0xf51: 0x4000,
+       0xf52: 0x4000, 0xf53: 0x4000, 0xf54: 0x4000, 0xf55: 0x4000, 0xf56: 0x4000, 0xf57: 0x4000,
+       0xf58: 0x4000, 0xf59: 0x4000, 0xf5a: 0x4000, 0xf5b: 0x4000, 0xf5c: 0x4000, 0xf5d: 0x4000,
+       0xf5e: 0x4000, 0xf5f: 0x4000, 0xf60: 0x4000, 0xf61: 0x4000, 0xf62: 0x4000, 0xf63: 0x4000,
+       0xf64: 0x4000, 0xf65: 0x4000, 0xf66: 0x4000, 0xf67: 0x4000, 0xf68: 0x4000, 0xf69: 0x4000,
+       0xf6a: 0x4000, 0xf6b: 0x4000, 0xf6c: 0x4000, 0xf6d: 0x4000, 0xf6e: 0x4000, 0xf6f: 0x4000,
+       0xf70: 0x4000, 0xf71: 0x4000, 0xf72: 0x4000, 0xf73: 0x4000, 0xf74: 0x4000, 0xf75: 0x4000,
+       0xf76: 0x4000, 0xf77: 0x4000, 0xf78: 0x4000, 0xf79: 0x4000, 0xf7a: 0x4000, 0xf7b: 0x4000,
+       0xf7c: 0x4000, 0xf7d: 0x4000, 0xf7e: 0x4000, 0xf7f: 0x4000,
+       // Block 0x3e, offset 0xf80
+       0xf80: 0x4000, 0xf81: 0x4000, 0xf82: 0x4000, 0xf83: 0x4000, 0xf84: 0x4000, 0xf85: 0x4000,
+       0xf86: 0x4000,
+       // Block 0x3f, offset 0xfc0
+       0xfe0: 0x4000, 0xfe1: 0x4000, 0xfe2: 0x4000, 0xfe3: 0x4000,
+       0xfe4: 0x4000, 0xfe5: 0x4000, 0xfe6: 0x4000, 0xfe7: 0x4000, 0xfe8: 0x4000, 0xfe9: 0x4000,
+       0xfea: 0x4000, 0xfeb: 0x4000, 0xfec: 0x4000, 0xfed: 0x4000, 0xfee: 0x4000, 0xfef: 0x4000,
+       0xff0: 0x4000, 0xff1: 0x4000, 0xff2: 0x4000, 0xff3: 0x4000, 0xff4: 0x4000, 0xff5: 0x4000,
+       0xff6: 0x4000, 0xff7: 0x4000, 0xff8: 0x4000, 0xff9: 0x4000, 0xffa: 0x4000, 0xffb: 0x4000,
+       0xffc: 0x4000,
+       // Block 0x40, offset 0x1000
+       0x1000: 0x4000, 0x1001: 0x4000, 0x1002: 0x4000, 0x1003: 0x4000, 0x1004: 0x4000, 0x1005: 0x4000,
+       0x1006: 0x4000, 0x1007: 0x4000, 0x1008: 0x4000, 0x1009: 0x4000, 0x100a: 0x4000, 0x100b: 0x4000,
+       0x100c: 0x4000, 0x100d: 0x4000, 0x100e: 0x4000, 0x100f: 0x4000, 0x1010: 0x4000, 0x1011: 0x4000,
+       0x1012: 0x4000, 0x1013: 0x4000, 0x1014: 0x4000, 0x1015: 0x4000, 0x1016: 0x4000, 0x1017: 0x4000,
+       0x1018: 0x4000, 0x1019: 0x4000, 0x101a: 0x4000, 0x101b: 0x4000, 0x101c: 0x4000, 0x101d: 0x4000,
+       0x101e: 0x4000, 0x101f: 0x4000, 0x1020: 0x4000, 0x1021: 0x4000, 0x1022: 0x4000, 0x1023: 0x4000,
+       // Block 0x41, offset 0x1040
+       0x1040: 0x2000, 0x1041: 0x2000, 0x1042: 0x2000, 0x1043: 0x2000, 0x1044: 0x2000, 0x1045: 0x2000,
+       0x1046: 0x2000, 0x1047: 0x2000, 0x1048: 0x2000, 0x1049: 0x2000, 0x104a: 0x2000, 0x104b: 0x2000,
+       0x104c: 0x2000, 0x104d: 0x2000, 0x104e: 0x2000, 0x104f: 0x2000, 0x1050: 0x4000, 0x1051: 0x4000,
+       0x1052: 0x4000, 0x1053: 0x4000, 0x1054: 0x4000, 0x1055: 0x4000, 0x1056: 0x4000, 0x1057: 0x4000,
+       0x1058: 0x4000, 0x1059: 0x4000,
+       0x1070: 0x4000, 0x1071: 0x4000, 0x1072: 0x4000, 0x1073: 0x4000, 0x1074: 0x4000, 0x1075: 0x4000,
+       0x1076: 0x4000, 0x1077: 0x4000, 0x1078: 0x4000, 0x1079: 0x4000, 0x107a: 0x4000, 0x107b: 0x4000,
+       0x107c: 0x4000, 0x107d: 0x4000, 0x107e: 0x4000, 0x107f: 0x4000,
+       // Block 0x42, offset 0x1080
+       0x1080: 0x4000, 0x1081: 0x4000, 0x1082: 0x4000, 0x1083: 0x4000, 0x1084: 0x4000, 0x1085: 0x4000,
+       0x1086: 0x4000, 0x1087: 0x4000, 0x1088: 0x4000, 0x1089: 0x4000, 0x108a: 0x4000, 0x108b: 0x4000,
+       0x108c: 0x4000, 0x108d: 0x4000, 0x108e: 0x4000, 0x108f: 0x4000, 0x1090: 0x4000, 0x1091: 0x4000,
+       0x1092: 0x4000, 0x1094: 0x4000, 0x1095: 0x4000, 0x1096: 0x4000, 0x1097: 0x4000,
+       0x1098: 0x4000, 0x1099: 0x4000, 0x109a: 0x4000, 0x109b: 0x4000, 0x109c: 0x4000, 0x109d: 0x4000,
+       0x109e: 0x4000, 0x109f: 0x4000, 0x10a0: 0x4000, 0x10a1: 0x4000, 0x10a2: 0x4000, 0x10a3: 0x4000,
+       0x10a4: 0x4000, 0x10a5: 0x4000, 0x10a6: 0x4000, 0x10a8: 0x4000, 0x10a9: 0x4000,
+       0x10aa: 0x4000, 0x10ab: 0x4000,
+       // Block 0x43, offset 0x10c0
+       0x10c1: 0x9012, 0x10c2: 0x9012, 0x10c3: 0x9012, 0x10c4: 0x9012, 0x10c5: 0x9012,
+       0x10c6: 0x9012, 0x10c7: 0x9012, 0x10c8: 0x9012, 0x10c9: 0x9012, 0x10ca: 0x9012, 0x10cb: 0x9012,
+       0x10cc: 0x9012, 0x10cd: 0x9012, 0x10ce: 0x9012, 0x10cf: 0x9012, 0x10d0: 0x9012, 0x10d1: 0x9012,
+       0x10d2: 0x9012, 0x10d3: 0x9012, 0x10d4: 0x9012, 0x10d5: 0x9012, 0x10d6: 0x9012, 0x10d7: 0x9012,
+       0x10d8: 0x9012, 0x10d9: 0x9012, 0x10da: 0x9012, 0x10db: 0x9012, 0x10dc: 0x9012, 0x10dd: 0x9012,
+       0x10de: 0x9012, 0x10df: 0x9012, 0x10e0: 0x9049, 0x10e1: 0x9049, 0x10e2: 0x9049, 0x10e3: 0x9049,
+       0x10e4: 0x9049, 0x10e5: 0x9049, 0x10e6: 0x9049, 0x10e7: 0x9049, 0x10e8: 0x9049, 0x10e9: 0x9049,
+       0x10ea: 0x9049, 0x10eb: 0x9049, 0x10ec: 0x9049, 0x10ed: 0x9049, 0x10ee: 0x9049, 0x10ef: 0x9049,
+       0x10f0: 0x9049, 0x10f1: 0x9049, 0x10f2: 0x9049, 0x10f3: 0x9049, 0x10f4: 0x9049, 0x10f5: 0x9049,
+       0x10f6: 0x9049, 0x10f7: 0x9049, 0x10f8: 0x9049, 0x10f9: 0x9049, 0x10fa: 0x9049, 0x10fb: 0x9049,
+       0x10fc: 0x9049, 0x10fd: 0x9049, 0x10fe: 0x9049, 0x10ff: 0x9049,
+       // Block 0x44, offset 0x1100
+       0x1100: 0x9049, 0x1101: 0x9049, 0x1102: 0x9049, 0x1103: 0x9049, 0x1104: 0x9049, 0x1105: 0x9049,
+       0x1106: 0x9049, 0x1107: 0x9049, 0x1108: 0x9049, 0x1109: 0x9049, 0x110a: 0x9049, 0x110b: 0x9049,
+       0x110c: 0x9049, 0x110d: 0x9049, 0x110e: 0x9049, 0x110f: 0x9049, 0x1110: 0x9049, 0x1111: 0x9049,
+       0x1112: 0x9049, 0x1113: 0x9049, 0x1114: 0x9049, 0x1115: 0x9049, 0x1116: 0x9049, 0x1117: 0x9049,
+       0x1118: 0x9049, 0x1119: 0x9049, 0x111a: 0x9049, 0x111b: 0x9049, 0x111c: 0x9049, 0x111d: 0x9049,
+       0x111e: 0x9049, 0x111f: 0x904a, 0x1120: 0x904b, 0x1121: 0xb04c, 0x1122: 0xb04d, 0x1123: 0xb04d,
+       0x1124: 0xb04e, 0x1125: 0xb04f, 0x1126: 0xb050, 0x1127: 0xb051, 0x1128: 0xb052, 0x1129: 0xb053,
+       0x112a: 0xb054, 0x112b: 0xb055, 0x112c: 0xb056, 0x112d: 0xb057, 0x112e: 0xb058, 0x112f: 0xb059,
+       0x1130: 0xb05a, 0x1131: 0xb05b, 0x1132: 0xb05c, 0x1133: 0xb05d, 0x1134: 0xb05e, 0x1135: 0xb05f,
+       0x1136: 0xb060, 0x1137: 0xb061, 0x1138: 0xb062, 0x1139: 0xb063, 0x113a: 0xb064, 0x113b: 0xb065,
+       0x113c: 0xb052, 0x113d: 0xb066, 0x113e: 0xb067, 0x113f: 0xb055,
+       // Block 0x45, offset 0x1140
+       0x1140: 0xb068, 0x1141: 0xb069, 0x1142: 0xb06a, 0x1143: 0xb06b, 0x1144: 0xb05a, 0x1145: 0xb056,
+       0x1146: 0xb06c, 0x1147: 0xb06d, 0x1148: 0xb06b, 0x1149: 0xb06e, 0x114a: 0xb06b, 0x114b: 0xb06f,
+       0x114c: 0xb06f, 0x114d: 0xb070, 0x114e: 0xb070, 0x114f: 0xb071, 0x1150: 0xb056, 0x1151: 0xb072,
+       0x1152: 0xb073, 0x1153: 0xb072, 0x1154: 0xb074, 0x1155: 0xb073, 0x1156: 0xb075, 0x1157: 0xb075,
+       0x1158: 0xb076, 0x1159: 0xb076, 0x115a: 0xb077, 0x115b: 0xb077, 0x115c: 0xb073, 0x115d: 0xb078,
+       0x115e: 0xb079, 0x115f: 0xb067, 0x1160: 0xb07a, 0x1161: 0xb07b, 0x1162: 0xb07b, 0x1163: 0xb07b,
+       0x1164: 0xb07b, 0x1165: 0xb07b, 0x1166: 0xb07b, 0x1167: 0xb07b, 0x1168: 0xb07b, 0x1169: 0xb07b,
+       0x116a: 0xb07b, 0x116b: 0xb07b, 0x116c: 0xb07b, 0x116d: 0xb07b, 0x116e: 0xb07b, 0x116f: 0xb07b,
+       0x1170: 0xb07c, 0x1171: 0xb07c, 0x1172: 0xb07c, 0x1173: 0xb07c, 0x1174: 0xb07c, 0x1175: 0xb07c,
+       0x1176: 0xb07c, 0x1177: 0xb07c, 0x1178: 0xb07c, 0x1179: 0xb07c, 0x117a: 0xb07c, 0x117b: 0xb07c,
+       0x117c: 0xb07c, 0x117d: 0xb07c, 0x117e: 0xb07c,
+       // Block 0x46, offset 0x1180
+       0x1182: 0xb07d, 0x1183: 0xb07e, 0x1184: 0xb07f, 0x1185: 0xb080,
+       0x1186: 0xb07f, 0x1187: 0xb07e, 0x118a: 0xb081, 0x118b: 0xb082,
+       0x118c: 0xb083, 0x118d: 0xb07f, 0x118e: 0xb080, 0x118f: 0xb07f,
+       0x1192: 0xb084, 0x1193: 0xb085, 0x1194: 0xb084, 0x1195: 0xb086, 0x1196: 0xb084, 0x1197: 0xb087,
+       0x119a: 0xb088, 0x119b: 0xb089, 0x119c: 0xb08a,
+       0x11a0: 0x908b, 0x11a1: 0x908b, 0x11a2: 0x908c, 0x11a3: 0x908d,
+       0x11a4: 0x908b, 0x11a5: 0x908e, 0x11a6: 0x908f, 0x11a8: 0xb090, 0x11a9: 0xb091,
+       0x11aa: 0xb092, 0x11ab: 0xb091, 0x11ac: 0xb093, 0x11ad: 0xb094, 0x11ae: 0xb095,
+       0x11bd: 0x2000,
+       // Block 0x47, offset 0x11c0
+       0x11e0: 0x4000,
+       // Block 0x48, offset 0x1200
+       0x1200: 0x4000, 0x1201: 0x4000, 0x1202: 0x4000, 0x1203: 0x4000, 0x1204: 0x4000, 0x1205: 0x4000,
+       0x1206: 0x4000, 0x1207: 0x4000, 0x1208: 0x4000, 0x1209: 0x4000, 0x120a: 0x4000, 0x120b: 0x4000,
+       0x120c: 0x4000, 0x120d: 0x4000, 0x120e: 0x4000, 0x120f: 0x4000, 0x1210: 0x4000, 0x1211: 0x4000,
+       0x1212: 0x4000, 0x1213: 0x4000, 0x1214: 0x4000, 0x1215: 0x4000, 0x1216: 0x4000, 0x1217: 0x4000,
+       0x1218: 0x4000, 0x1219: 0x4000, 0x121a: 0x4000, 0x121b: 0x4000, 0x121c: 0x4000, 0x121d: 0x4000,
+       0x121e: 0x4000, 0x121f: 0x4000, 0x1220: 0x4000, 0x1221: 0x4000, 0x1222: 0x4000, 0x1223: 0x4000,
+       0x1224: 0x4000, 0x1225: 0x4000, 0x1226: 0x4000, 0x1227: 0x4000, 0x1228: 0x4000, 0x1229: 0x4000,
+       0x122a: 0x4000, 0x122b: 0x4000, 0x122c: 0x4000,
+       // Block 0x49, offset 0x1240
+       0x1240: 0x4000, 0x1241: 0x4000, 0x1242: 0x4000, 0x1243: 0x4000, 0x1244: 0x4000, 0x1245: 0x4000,
+       0x1246: 0x4000, 0x1247: 0x4000, 0x1248: 0x4000, 0x1249: 0x4000, 0x124a: 0x4000, 0x124b: 0x4000,
+       0x124c: 0x4000, 0x124d: 0x4000, 0x124e: 0x4000, 0x124f: 0x4000, 0x1250: 0x4000, 0x1251: 0x4000,
+       0x1252: 0x4000, 0x1253: 0x4000, 0x1254: 0x4000, 0x1255: 0x4000, 0x1256: 0x4000, 0x1257: 0x4000,
+       0x1258: 0x4000, 0x1259: 0x4000, 0x125a: 0x4000, 0x125b: 0x4000, 0x125c: 0x4000, 0x125d: 0x4000,
+       0x125e: 0x4000, 0x125f: 0x4000, 0x1260: 0x4000, 0x1261: 0x4000, 0x1262: 0x4000, 0x1263: 0x4000,
+       0x1264: 0x4000, 0x1265: 0x4000, 0x1266: 0x4000, 0x1267: 0x4000, 0x1268: 0x4000, 0x1269: 0x4000,
+       0x126a: 0x4000, 0x126b: 0x4000, 0x126c: 0x4000, 0x126d: 0x4000, 0x126e: 0x4000, 0x126f: 0x4000,
+       0x1270: 0x4000, 0x1271: 0x4000, 0x1272: 0x4000,
+       // Block 0x4a, offset 0x1280
+       0x1280: 0x4000, 0x1281: 0x4000,
+       // Block 0x4b, offset 0x12c0
+       0x12c4: 0x4000,
+       // Block 0x4c, offset 0x1300
+       0x130f: 0x4000,
+       // Block 0x4d, offset 0x1340
+       0x1340: 0x2000, 0x1341: 0x2000, 0x1342: 0x2000, 0x1343: 0x2000, 0x1344: 0x2000, 0x1345: 0x2000,
+       0x1346: 0x2000, 0x1347: 0x2000, 0x1348: 0x2000, 0x1349: 0x2000, 0x134a: 0x2000,
+       0x1350: 0x2000, 0x1351: 0x2000,
+       0x1352: 0x2000, 0x1353: 0x2000, 0x1354: 0x2000, 0x1355: 0x2000, 0x1356: 0x2000, 0x1357: 0x2000,
+       0x1358: 0x2000, 0x1359: 0x2000, 0x135a: 0x2000, 0x135b: 0x2000, 0x135c: 0x2000, 0x135d: 0x2000,
+       0x135e: 0x2000, 0x135f: 0x2000, 0x1360: 0x2000, 0x1361: 0x2000, 0x1362: 0x2000, 0x1363: 0x2000,
+       0x1364: 0x2000, 0x1365: 0x2000, 0x1366: 0x2000, 0x1367: 0x2000, 0x1368: 0x2000, 0x1369: 0x2000,
+       0x136a: 0x2000, 0x136b: 0x2000, 0x136c: 0x2000, 0x136d: 0x2000,
+       0x1370: 0x2000, 0x1371: 0x2000, 0x1372: 0x2000, 0x1373: 0x2000, 0x1374: 0x2000, 0x1375: 0x2000,
+       0x1376: 0x2000, 0x1377: 0x2000, 0x1378: 0x2000, 0x1379: 0x2000, 0x137a: 0x2000, 0x137b: 0x2000,
+       0x137c: 0x2000, 0x137d: 0x2000, 0x137e: 0x2000, 0x137f: 0x2000,
+       // Block 0x4e, offset 0x1380
+       0x1380: 0x2000, 0x1381: 0x2000, 0x1382: 0x2000, 0x1383: 0x2000, 0x1384: 0x2000, 0x1385: 0x2000,
+       0x1386: 0x2000, 0x1387: 0x2000, 0x1388: 0x2000, 0x1389: 0x2000, 0x138a: 0x2000, 0x138b: 0x2000,
+       0x138c: 0x2000, 0x138d: 0x2000, 0x138e: 0x2000, 0x138f: 0x2000, 0x1390: 0x2000, 0x1391: 0x2000,
+       0x1392: 0x2000, 0x1393: 0x2000, 0x1394: 0x2000, 0x1395: 0x2000, 0x1396: 0x2000, 0x1397: 0x2000,
+       0x1398: 0x2000, 0x1399: 0x2000, 0x139a: 0x2000, 0x139b: 0x2000, 0x139c: 0x2000, 0x139d: 0x2000,
+       0x139e: 0x2000, 0x139f: 0x2000, 0x13a0: 0x2000, 0x13a1: 0x2000, 0x13a2: 0x2000, 0x13a3: 0x2000,
+       0x13a4: 0x2000, 0x13a5: 0x2000, 0x13a6: 0x2000, 0x13a7: 0x2000, 0x13a8: 0x2000, 0x13a9: 0x2000,
+       0x13b0: 0x2000, 0x13b1: 0x2000, 0x13b2: 0x2000, 0x13b3: 0x2000, 0x13b4: 0x2000, 0x13b5: 0x2000,
+       0x13b6: 0x2000, 0x13b7: 0x2000, 0x13b8: 0x2000, 0x13b9: 0x2000, 0x13ba: 0x2000, 0x13bb: 0x2000,
+       0x13bc: 0x2000, 0x13bd: 0x2000, 0x13be: 0x2000, 0x13bf: 0x2000,
+       // Block 0x4f, offset 0x13c0
+       0x13c0: 0x2000, 0x13c1: 0x2000, 0x13c2: 0x2000, 0x13c3: 0x2000, 0x13c4: 0x2000, 0x13c5: 0x2000,
+       0x13c6: 0x2000, 0x13c7: 0x2000, 0x13c8: 0x2000, 0x13c9: 0x2000, 0x13ca: 0x2000, 0x13cb: 0x2000,
+       0x13cc: 0x2000, 0x13cd: 0x2000, 0x13ce: 0x4000, 0x13cf: 0x2000, 0x13d0: 0x2000, 0x13d1: 0x4000,
+       0x13d2: 0x4000, 0x13d3: 0x4000, 0x13d4: 0x4000, 0x13d5: 0x4000, 0x13d6: 0x4000, 0x13d7: 0x4000,
+       0x13d8: 0x4000, 0x13d9: 0x4000, 0x13da: 0x4000, 0x13db: 0x2000, 0x13dc: 0x2000, 0x13dd: 0x2000,
+       0x13de: 0x2000, 0x13df: 0x2000, 0x13e0: 0x2000, 0x13e1: 0x2000, 0x13e2: 0x2000, 0x13e3: 0x2000,
+       0x13e4: 0x2000, 0x13e5: 0x2000, 0x13e6: 0x2000, 0x13e7: 0x2000, 0x13e8: 0x2000, 0x13e9: 0x2000,
+       0x13ea: 0x2000, 0x13eb: 0x2000, 0x13ec: 0x2000,
+       // Block 0x50, offset 0x1400
+       0x1400: 0x4000, 0x1401: 0x4000, 0x1402: 0x4000,
+       0x1410: 0x4000, 0x1411: 0x4000,
+       0x1412: 0x4000, 0x1413: 0x4000, 0x1414: 0x4000, 0x1415: 0x4000, 0x1416: 0x4000, 0x1417: 0x4000,
+       0x1418: 0x4000, 0x1419: 0x4000, 0x141a: 0x4000, 0x141b: 0x4000, 0x141c: 0x4000, 0x141d: 0x4000,
+       0x141e: 0x4000, 0x141f: 0x4000, 0x1420: 0x4000, 0x1421: 0x4000, 0x1422: 0x4000, 0x1423: 0x4000,
+       0x1424: 0x4000, 0x1425: 0x4000, 0x1426: 0x4000, 0x1427: 0x4000, 0x1428: 0x4000, 0x1429: 0x4000,
+       0x142a: 0x4000, 0x142b: 0x4000, 0x142c: 0x4000, 0x142d: 0x4000, 0x142e: 0x4000, 0x142f: 0x4000,
+       0x1430: 0x4000, 0x1431: 0x4000, 0x1432: 0x4000, 0x1433: 0x4000, 0x1434: 0x4000, 0x1435: 0x4000,
+       0x1436: 0x4000, 0x1437: 0x4000, 0x1438: 0x4000, 0x1439: 0x4000, 0x143a: 0x4000, 0x143b: 0x4000,
+       // Block 0x51, offset 0x1440
+       0x1440: 0x4000, 0x1441: 0x4000, 0x1442: 0x4000, 0x1443: 0x4000, 0x1444: 0x4000, 0x1445: 0x4000,
+       0x1446: 0x4000, 0x1447: 0x4000, 0x1448: 0x4000,
+       0x1450: 0x4000, 0x1451: 0x4000,
+       // Block 0x52, offset 0x1480
+       0x1480: 0x4000, 0x1481: 0x4000, 0x1482: 0x4000, 0x1483: 0x4000, 0x1484: 0x4000, 0x1485: 0x4000,
+       0x1486: 0x4000, 0x1487: 0x4000, 0x1488: 0x4000, 0x1489: 0x4000, 0x148a: 0x4000, 0x148b: 0x4000,
+       0x148c: 0x4000, 0x148d: 0x4000, 0x148e: 0x4000, 0x148f: 0x4000, 0x1490: 0x4000, 0x1491: 0x4000,
+       0x1492: 0x4000, 0x1493: 0x4000, 0x1494: 0x4000, 0x1495: 0x4000, 0x1496: 0x4000, 0x1497: 0x4000,
+       0x1498: 0x4000, 0x1499: 0x4000, 0x149a: 0x4000, 0x149b: 0x4000, 0x149c: 0x4000, 0x149d: 0x4000,
+       0x149e: 0x4000, 0x149f: 0x4000, 0x14a0: 0x4000,
+       0x14ad: 0x4000, 0x14ae: 0x4000, 0x14af: 0x4000,
+       0x14b0: 0x4000, 0x14b1: 0x4000, 0x14b2: 0x4000, 0x14b3: 0x4000, 0x14b4: 0x4000, 0x14b5: 0x4000,
+       0x14b7: 0x4000, 0x14b8: 0x4000, 0x14b9: 0x4000, 0x14ba: 0x4000, 0x14bb: 0x4000,
+       0x14bc: 0x4000, 0x14bd: 0x4000, 0x14be: 0x4000, 0x14bf: 0x4000,
+       // Block 0x53, offset 0x14c0
+       0x14c0: 0x4000, 0x14c1: 0x4000, 0x14c2: 0x4000, 0x14c3: 0x4000, 0x14c4: 0x4000, 0x14c5: 0x4000,
+       0x14c6: 0x4000, 0x14c7: 0x4000, 0x14c8: 0x4000, 0x14c9: 0x4000, 0x14ca: 0x4000, 0x14cb: 0x4000,
+       0x14cc: 0x4000, 0x14cd: 0x4000, 0x14ce: 0x4000, 0x14cf: 0x4000, 0x14d0: 0x4000, 0x14d1: 0x4000,
+       0x14d2: 0x4000, 0x14d3: 0x4000, 0x14d4: 0x4000, 0x14d5: 0x4000, 0x14d6: 0x4000, 0x14d7: 0x4000,
+       0x14d8: 0x4000, 0x14d9: 0x4000, 0x14da: 0x4000, 0x14db: 0x4000, 0x14dc: 0x4000, 0x14dd: 0x4000,
+       0x14de: 0x4000, 0x14df: 0x4000, 0x14e0: 0x4000, 0x14e1: 0x4000, 0x14e2: 0x4000, 0x14e3: 0x4000,
+       0x14e4: 0x4000, 0x14e5: 0x4000, 0x14e6: 0x4000, 0x14e7: 0x4000, 0x14e8: 0x4000, 0x14e9: 0x4000,
+       0x14ea: 0x4000, 0x14eb: 0x4000, 0x14ec: 0x4000, 0x14ed: 0x4000, 0x14ee: 0x4000, 0x14ef: 0x4000,
+       0x14f0: 0x4000, 0x14f1: 0x4000, 0x14f2: 0x4000, 0x14f3: 0x4000, 0x14f4: 0x4000, 0x14f5: 0x4000,
+       0x14f6: 0x4000, 0x14f7: 0x4000, 0x14f8: 0x4000, 0x14f9: 0x4000, 0x14fa: 0x4000, 0x14fb: 0x4000,
+       0x14fc: 0x4000, 0x14fe: 0x4000, 0x14ff: 0x4000,
+       // Block 0x54, offset 0x1500
+       0x1500: 0x4000, 0x1501: 0x4000, 0x1502: 0x4000, 0x1503: 0x4000, 0x1504: 0x4000, 0x1505: 0x4000,
+       0x1506: 0x4000, 0x1507: 0x4000, 0x1508: 0x4000, 0x1509: 0x4000, 0x150a: 0x4000, 0x150b: 0x4000,
+       0x150c: 0x4000, 0x150d: 0x4000, 0x150e: 0x4000, 0x150f: 0x4000, 0x1510: 0x4000, 0x1511: 0x4000,
+       0x1512: 0x4000, 0x1513: 0x4000,
+       0x1520: 0x4000, 0x1521: 0x4000, 0x1522: 0x4000, 0x1523: 0x4000,
+       0x1524: 0x4000, 0x1525: 0x4000, 0x1526: 0x4000, 0x1527: 0x4000, 0x1528: 0x4000, 0x1529: 0x4000,
+       0x152a: 0x4000, 0x152b: 0x4000, 0x152c: 0x4000, 0x152d: 0x4000, 0x152e: 0x4000, 0x152f: 0x4000,
+       0x1530: 0x4000, 0x1531: 0x4000, 0x1532: 0x4000, 0x1533: 0x4000, 0x1534: 0x4000, 0x1535: 0x4000,
+       0x1536: 0x4000, 0x1537: 0x4000, 0x1538: 0x4000, 0x1539: 0x4000, 0x153a: 0x4000, 0x153b: 0x4000,
+       0x153c: 0x4000, 0x153d: 0x4000, 0x153e: 0x4000, 0x153f: 0x4000,
+       // Block 0x55, offset 0x1540
+       0x1540: 0x4000, 0x1541: 0x4000, 0x1542: 0x4000, 0x1543: 0x4000, 0x1544: 0x4000, 0x1545: 0x4000,
+       0x1546: 0x4000, 0x1547: 0x4000, 0x1548: 0x4000, 0x1549: 0x4000, 0x154a: 0x4000,
+       0x154f: 0x4000, 0x1550: 0x4000, 0x1551: 0x4000,
+       0x1552: 0x4000, 0x1553: 0x4000,
+       0x1560: 0x4000, 0x1561: 0x4000, 0x1562: 0x4000, 0x1563: 0x4000,
+       0x1564: 0x4000, 0x1565: 0x4000, 0x1566: 0x4000, 0x1567: 0x4000, 0x1568: 0x4000, 0x1569: 0x4000,
+       0x156a: 0x4000, 0x156b: 0x4000, 0x156c: 0x4000, 0x156d: 0x4000, 0x156e: 0x4000, 0x156f: 0x4000,
+       0x1570: 0x4000, 0x1574: 0x4000,
+       0x1578: 0x4000, 0x1579: 0x4000, 0x157a: 0x4000, 0x157b: 0x4000,
+       0x157c: 0x4000, 0x157d: 0x4000, 0x157e: 0x4000, 0x157f: 0x4000,
+       // Block 0x56, offset 0x1580
+       0x1580: 0x4000, 0x1582: 0x4000, 0x1583: 0x4000, 0x1584: 0x4000, 0x1585: 0x4000,
+       0x1586: 0x4000, 0x1587: 0x4000, 0x1588: 0x4000, 0x1589: 0x4000, 0x158a: 0x4000, 0x158b: 0x4000,
+       0x158c: 0x4000, 0x158d: 0x4000, 0x158e: 0x4000, 0x158f: 0x4000, 0x1590: 0x4000, 0x1591: 0x4000,
+       0x1592: 0x4000, 0x1593: 0x4000, 0x1594: 0x4000, 0x1595: 0x4000, 0x1596: 0x4000, 0x1597: 0x4000,
+       0x1598: 0x4000, 0x1599: 0x4000, 0x159a: 0x4000, 0x159b: 0x4000, 0x159c: 0x4000, 0x159d: 0x4000,
+       0x159e: 0x4000, 0x159f: 0x4000, 0x15a0: 0x4000, 0x15a1: 0x4000, 0x15a2: 0x4000, 0x15a3: 0x4000,
+       0x15a4: 0x4000, 0x15a5: 0x4000, 0x15a6: 0x4000, 0x15a7: 0x4000, 0x15a8: 0x4000, 0x15a9: 0x4000,
+       0x15aa: 0x4000, 0x15ab: 0x4000, 0x15ac: 0x4000, 0x15ad: 0x4000, 0x15ae: 0x4000, 0x15af: 0x4000,
+       0x15b0: 0x4000, 0x15b1: 0x4000, 0x15b2: 0x4000, 0x15b3: 0x4000, 0x15b4: 0x4000, 0x15b5: 0x4000,
+       0x15b6: 0x4000, 0x15b7: 0x4000, 0x15b8: 0x4000, 0x15b9: 0x4000, 0x15ba: 0x4000, 0x15bb: 0x4000,
+       0x15bc: 0x4000, 0x15bd: 0x4000, 0x15be: 0x4000, 0x15bf: 0x4000,
+       // Block 0x57, offset 0x15c0
+       0x15c0: 0x4000, 0x15c1: 0x4000, 0x15c2: 0x4000, 0x15c3: 0x4000, 0x15c4: 0x4000, 0x15c5: 0x4000,
+       0x15c6: 0x4000, 0x15c7: 0x4000, 0x15c8: 0x4000, 0x15c9: 0x4000, 0x15ca: 0x4000, 0x15cb: 0x4000,
+       0x15cc: 0x4000, 0x15cd: 0x4000, 0x15ce: 0x4000, 0x15cf: 0x4000, 0x15d0: 0x4000, 0x15d1: 0x4000,
+       0x15d2: 0x4000, 0x15d3: 0x4000, 0x15d4: 0x4000, 0x15d5: 0x4000, 0x15d6: 0x4000, 0x15d7: 0x4000,
+       0x15d8: 0x4000, 0x15d9: 0x4000, 0x15da: 0x4000, 0x15db: 0x4000, 0x15dc: 0x4000, 0x15dd: 0x4000,
+       0x15de: 0x4000, 0x15df: 0x4000, 0x15e0: 0x4000, 0x15e1: 0x4000, 0x15e2: 0x4000, 0x15e3: 0x4000,
+       0x15e4: 0x4000, 0x15e5: 0x4000, 0x15e6: 0x4000, 0x15e7: 0x4000, 0x15e8: 0x4000, 0x15e9: 0x4000,
+       0x15ea: 0x4000, 0x15eb: 0x4000, 0x15ec: 0x4000, 0x15ed: 0x4000, 0x15ee: 0x4000, 0x15ef: 0x4000,
+       0x15f0: 0x4000, 0x15f1: 0x4000, 0x15f2: 0x4000, 0x15f3: 0x4000, 0x15f4: 0x4000, 0x15f5: 0x4000,
+       0x15f6: 0x4000, 0x15f7: 0x4000, 0x15f8: 0x4000, 0x15f9: 0x4000, 0x15fa: 0x4000, 0x15fb: 0x4000,
+       0x15fc: 0x4000, 0x15ff: 0x4000,
+       // Block 0x58, offset 0x1600
+       0x1600: 0x4000, 0x1601: 0x4000, 0x1602: 0x4000, 0x1603: 0x4000, 0x1604: 0x4000, 0x1605: 0x4000,
+       0x1606: 0x4000, 0x1607: 0x4000, 0x1608: 0x4000, 0x1609: 0x4000, 0x160a: 0x4000, 0x160b: 0x4000,
+       0x160c: 0x4000, 0x160d: 0x4000, 0x160e: 0x4000, 0x160f: 0x4000, 0x1610: 0x4000, 0x1611: 0x4000,
+       0x1612: 0x4000, 0x1613: 0x4000, 0x1614: 0x4000, 0x1615: 0x4000, 0x1616: 0x4000, 0x1617: 0x4000,
+       0x1618: 0x4000, 0x1619: 0x4000, 0x161a: 0x4000, 0x161b: 0x4000, 0x161c: 0x4000, 0x161d: 0x4000,
+       0x161e: 0x4000, 0x161f: 0x4000, 0x1620: 0x4000, 0x1621: 0x4000, 0x1622: 0x4000, 0x1623: 0x4000,
+       0x1624: 0x4000, 0x1625: 0x4000, 0x1626: 0x4000, 0x1627: 0x4000, 0x1628: 0x4000, 0x1629: 0x4000,
+       0x162a: 0x4000, 0x162b: 0x4000, 0x162c: 0x4000, 0x162d: 0x4000, 0x162e: 0x4000, 0x162f: 0x4000,
+       0x1630: 0x4000, 0x1631: 0x4000, 0x1632: 0x4000, 0x1633: 0x4000, 0x1634: 0x4000, 0x1635: 0x4000,
+       0x1636: 0x4000, 0x1637: 0x4000, 0x1638: 0x4000, 0x1639: 0x4000, 0x163a: 0x4000, 0x163b: 0x4000,
+       0x163c: 0x4000, 0x163d: 0x4000,
+       // Block 0x59, offset 0x1640
+       0x164b: 0x4000,
+       0x164c: 0x4000, 0x164d: 0x4000, 0x164e: 0x4000, 0x1650: 0x4000, 0x1651: 0x4000,
+       0x1652: 0x4000, 0x1653: 0x4000, 0x1654: 0x4000, 0x1655: 0x4000, 0x1656: 0x4000, 0x1657: 0x4000,
+       0x1658: 0x4000, 0x1659: 0x4000, 0x165a: 0x4000, 0x165b: 0x4000, 0x165c: 0x4000, 0x165d: 0x4000,
+       0x165e: 0x4000, 0x165f: 0x4000, 0x1660: 0x4000, 0x1661: 0x4000, 0x1662: 0x4000, 0x1663: 0x4000,
+       0x1664: 0x4000, 0x1665: 0x4000, 0x1666: 0x4000, 0x1667: 0x4000,
+       0x167a: 0x4000,
+       // Block 0x5a, offset 0x1680
+       0x1695: 0x4000, 0x1696: 0x4000,
+       0x16a4: 0x4000,
+       // Block 0x5b, offset 0x16c0
+       0x16fb: 0x4000,
+       0x16fc: 0x4000, 0x16fd: 0x4000, 0x16fe: 0x4000, 0x16ff: 0x4000,
+       // Block 0x5c, offset 0x1700
+       0x1700: 0x4000, 0x1701: 0x4000, 0x1702: 0x4000, 0x1703: 0x4000, 0x1704: 0x4000, 0x1705: 0x4000,
+       0x1706: 0x4000, 0x1707: 0x4000, 0x1708: 0x4000, 0x1709: 0x4000, 0x170a: 0x4000, 0x170b: 0x4000,
+       0x170c: 0x4000, 0x170d: 0x4000, 0x170e: 0x4000, 0x170f: 0x4000,
+       // Block 0x5d, offset 0x1740
+       0x1740: 0x4000, 0x1741: 0x4000, 0x1742: 0x4000, 0x1743: 0x4000, 0x1744: 0x4000, 0x1745: 0x4000,
+       0x174c: 0x4000, 0x1750: 0x4000, 0x1751: 0x4000,
+       0x1752: 0x4000,
+       0x176b: 0x4000, 0x176c: 0x4000,
+       0x1774: 0x4000, 0x1775: 0x4000,
+       0x1776: 0x4000,
+       // Block 0x5e, offset 0x1780
+       0x1790: 0x4000, 0x1791: 0x4000,
+       0x1792: 0x4000, 0x1793: 0x4000, 0x1794: 0x4000, 0x1795: 0x4000, 0x1796: 0x4000, 0x1797: 0x4000,
+       0x1798: 0x4000, 0x1799: 0x4000, 0x179a: 0x4000, 0x179b: 0x4000, 0x179c: 0x4000, 0x179d: 0x4000,
+       0x179e: 0x4000, 0x17a0: 0x4000, 0x17a1: 0x4000, 0x17a2: 0x4000, 0x17a3: 0x4000,
+       0x17a4: 0x4000, 0x17a5: 0x4000, 0x17a6: 0x4000, 0x17a7: 0x4000,
+       0x17b0: 0x4000, 0x17b3: 0x4000, 0x17b4: 0x4000, 0x17b5: 0x4000,
+       0x17b6: 0x4000, 0x17b7: 0x4000, 0x17b8: 0x4000, 0x17b9: 0x4000, 0x17ba: 0x4000, 0x17bb: 0x4000,
+       0x17bc: 0x4000, 0x17bd: 0x4000, 0x17be: 0x4000,
+       // Block 0x5f, offset 0x17c0
+       0x17c0: 0x4000, 0x17c1: 0x4000, 0x17c2: 0x4000, 0x17c3: 0x4000, 0x17c4: 0x4000, 0x17c5: 0x4000,
+       0x17c6: 0x4000, 0x17c7: 0x4000, 0x17c8: 0x4000, 0x17c9: 0x4000, 0x17ca: 0x4000, 0x17cb: 0x4000,
+       0x17d0: 0x4000, 0x17d1: 0x4000,
+       0x17d2: 0x4000, 0x17d3: 0x4000, 0x17d4: 0x4000, 0x17d5: 0x4000, 0x17d6: 0x4000, 0x17d7: 0x4000,
+       0x17d8: 0x4000, 0x17d9: 0x4000, 0x17da: 0x4000, 0x17db: 0x4000, 0x17dc: 0x4000, 0x17dd: 0x4000,
+       0x17de: 0x4000,
+       // Block 0x60, offset 0x1800
+       0x1800: 0x4000, 0x1801: 0x4000, 0x1802: 0x4000, 0x1803: 0x4000, 0x1804: 0x4000, 0x1805: 0x4000,
+       0x1806: 0x4000, 0x1807: 0x4000, 0x1808: 0x4000, 0x1809: 0x4000, 0x180a: 0x4000, 0x180b: 0x4000,
+       0x180c: 0x4000, 0x180d: 0x4000, 0x180e: 0x4000, 0x180f: 0x4000, 0x1810: 0x4000, 0x1811: 0x4000,
+       // Block 0x61, offset 0x1840
+       0x1840: 0x4000,
+       // Block 0x62, offset 0x1880
+       0x1880: 0x2000, 0x1881: 0x2000, 0x1882: 0x2000, 0x1883: 0x2000, 0x1884: 0x2000, 0x1885: 0x2000,
+       0x1886: 0x2000, 0x1887: 0x2000, 0x1888: 0x2000, 0x1889: 0x2000, 0x188a: 0x2000, 0x188b: 0x2000,
+       0x188c: 0x2000, 0x188d: 0x2000, 0x188e: 0x2000, 0x188f: 0x2000, 0x1890: 0x2000, 0x1891: 0x2000,
+       0x1892: 0x2000, 0x1893: 0x2000, 0x1894: 0x2000, 0x1895: 0x2000, 0x1896: 0x2000, 0x1897: 0x2000,
+       0x1898: 0x2000, 0x1899: 0x2000, 0x189a: 0x2000, 0x189b: 0x2000, 0x189c: 0x2000, 0x189d: 0x2000,
+       0x189e: 0x2000, 0x189f: 0x2000, 0x18a0: 0x2000, 0x18a1: 0x2000, 0x18a2: 0x2000, 0x18a3: 0x2000,
+       0x18a4: 0x2000, 0x18a5: 0x2000, 0x18a6: 0x2000, 0x18a7: 0x2000, 0x18a8: 0x2000, 0x18a9: 0x2000,
+       0x18aa: 0x2000, 0x18ab: 0x2000, 0x18ac: 0x2000, 0x18ad: 0x2000, 0x18ae: 0x2000, 0x18af: 0x2000,
+       0x18b0: 0x2000, 0x18b1: 0x2000, 0x18b2: 0x2000, 0x18b3: 0x2000, 0x18b4: 0x2000, 0x18b5: 0x2000,
+       0x18b6: 0x2000, 0x18b7: 0x2000, 0x18b8: 0x2000, 0x18b9: 0x2000, 0x18ba: 0x2000, 0x18bb: 0x2000,
+       0x18bc: 0x2000, 0x18bd: 0x2000,
+}
+
+// widthIndex: 22 blocks, 1408 entries, 1408 bytes
+// Block 0 is the zero block.
+var widthIndex = [1408]uint8{
+       // Block 0x0, offset 0x0
+       // Block 0x1, offset 0x40
+       // Block 0x2, offset 0x80
+       // Block 0x3, offset 0xc0
+       0xc2: 0x01, 0xc3: 0x02, 0xc4: 0x03, 0xc5: 0x04, 0xc7: 0x05,
+       0xc9: 0x06, 0xcb: 0x07, 0xcc: 0x08, 0xcd: 0x09, 0xce: 0x0a, 0xcf: 0x0b,
+       0xd0: 0x0c, 0xd1: 0x0d,
+       0xe1: 0x02, 0xe2: 0x03, 0xe3: 0x04, 0xe4: 0x05, 0xe5: 0x06, 0xe6: 0x06, 0xe7: 0x06,
+       0xe8: 0x06, 0xe9: 0x06, 0xea: 0x07, 0xeb: 0x06, 0xec: 0x06, 0xed: 0x08, 0xee: 0x09, 0xef: 0x0a,
+       0xf0: 0x0f, 0xf3: 0x12, 0xf4: 0x13,
+       // Block 0x4, offset 0x100
+       0x104: 0x0e, 0x105: 0x0f,
+       // Block 0x5, offset 0x140
+       0x140: 0x10, 0x141: 0x11, 0x142: 0x12, 0x144: 0x13, 0x145: 0x14, 0x146: 0x15, 0x147: 0x16,
+       0x148: 0x17, 0x149: 0x18, 0x14a: 0x19, 0x14c: 0x1a, 0x14f: 0x1b,
+       0x151: 0x1c, 0x152: 0x08, 0x153: 0x1d, 0x154: 0x1e, 0x155: 0x1f, 0x156: 0x20, 0x157: 0x21,
+       0x158: 0x22, 0x159: 0x23, 0x15a: 0x24, 0x15b: 0x25, 0x15c: 0x26, 0x15d: 0x27, 0x15e: 0x28, 0x15f: 0x29,
+       0x166: 0x2a,
+       0x16c: 0x2b, 0x16d: 0x2c,
+       0x17a: 0x2d, 0x17b: 0x2e, 0x17c: 0x0e, 0x17d: 0x0e, 0x17e: 0x0e, 0x17f: 0x2f,
+       // Block 0x6, offset 0x180
+       0x180: 0x30, 0x181: 0x31, 0x182: 0x32, 0x183: 0x33, 0x184: 0x34, 0x185: 0x35, 0x186: 0x36, 0x187: 0x37,
+       0x188: 0x38, 0x189: 0x39, 0x18a: 0x0e, 0x18b: 0x3a, 0x18c: 0x0e, 0x18d: 0x0e, 0x18e: 0x0e, 0x18f: 0x0e,
+       0x190: 0x0e, 0x191: 0x0e, 0x192: 0x0e, 0x193: 0x0e, 0x194: 0x0e, 0x195: 0x0e, 0x196: 0x0e, 0x197: 0x0e,
+       0x198: 0x0e, 0x199: 0x0e, 0x19a: 0x0e, 0x19b: 0x0e, 0x19c: 0x0e, 0x19d: 0x0e, 0x19e: 0x0e, 0x19f: 0x0e,
+       0x1a0: 0x0e, 0x1a1: 0x0e, 0x1a2: 0x0e, 0x1a3: 0x0e, 0x1a4: 0x0e, 0x1a5: 0x0e, 0x1a6: 0x0e, 0x1a7: 0x0e,
+       0x1a8: 0x0e, 0x1a9: 0x0e, 0x1aa: 0x0e, 0x1ab: 0x0e, 0x1ac: 0x0e, 0x1ad: 0x0e, 0x1ae: 0x0e, 0x1af: 0x0e,
+       0x1b0: 0x0e, 0x1b1: 0x0e, 0x1b2: 0x0e, 0x1b3: 0x0e, 0x1b4: 0x0e, 0x1b5: 0x0e, 0x1b6: 0x0e, 0x1b7: 0x0e,
+       0x1b8: 0x0e, 0x1b9: 0x0e, 0x1ba: 0x0e, 0x1bb: 0x0e, 0x1bc: 0x0e, 0x1bd: 0x0e, 0x1be: 0x0e, 0x1bf: 0x0e,
+       // Block 0x7, offset 0x1c0
+       0x1c0: 0x0e, 0x1c1: 0x0e, 0x1c2: 0x0e, 0x1c3: 0x0e, 0x1c4: 0x0e, 0x1c5: 0x0e, 0x1c6: 0x0e, 0x1c7: 0x0e,
+       0x1c8: 0x0e, 0x1c9: 0x0e, 0x1ca: 0x0e, 0x1cb: 0x0e, 0x1cc: 0x0e, 0x1cd: 0x0e, 0x1ce: 0x0e, 0x1cf: 0x0e,
+       0x1d0: 0x0e, 0x1d1: 0x0e, 0x1d2: 0x0e, 0x1d3: 0x0e, 0x1d4: 0x0e, 0x1d5: 0x0e, 0x1d6: 0x0e, 0x1d7: 0x0e,
+       0x1d8: 0x0e, 0x1d9: 0x0e, 0x1da: 0x0e, 0x1db: 0x0e, 0x1dc: 0x0e, 0x1dd: 0x0e, 0x1de: 0x0e, 0x1df: 0x0e,
+       0x1e0: 0x0e, 0x1e1: 0x0e, 0x1e2: 0x0e, 0x1e3: 0x0e, 0x1e4: 0x0e, 0x1e5: 0x0e, 0x1e6: 0x0e, 0x1e7: 0x0e,
+       0x1e8: 0x0e, 0x1e9: 0x0e, 0x1ea: 0x0e, 0x1eb: 0x0e, 0x1ec: 0x0e, 0x1ed: 0x0e, 0x1ee: 0x0e, 0x1ef: 0x0e,
+       0x1f0: 0x0e, 0x1f1: 0x0e, 0x1f2: 0x0e, 0x1f3: 0x0e, 0x1f4: 0x0e, 0x1f5: 0x0e, 0x1f6: 0x0e,
+       0x1f8: 0x0e, 0x1f9: 0x0e, 0x1fa: 0x0e, 0x1fb: 0x0e, 0x1fc: 0x0e, 0x1fd: 0x0e, 0x1fe: 0x0e, 0x1ff: 0x0e,
+       // Block 0x8, offset 0x200
+       0x200: 0x0e, 0x201: 0x0e, 0x202: 0x0e, 0x203: 0x0e, 0x204: 0x0e, 0x205: 0x0e, 0x206: 0x0e, 0x207: 0x0e,
+       0x208: 0x0e, 0x209: 0x0e, 0x20a: 0x0e, 0x20b: 0x0e, 0x20c: 0x0e, 0x20d: 0x0e, 0x20e: 0x0e, 0x20f: 0x0e,
+       0x210: 0x0e, 0x211: 0x0e, 0x212: 0x0e, 0x213: 0x0e, 0x214: 0x0e, 0x215: 0x0e, 0x216: 0x0e, 0x217: 0x0e,
+       0x218: 0x0e, 0x219: 0x0e, 0x21a: 0x0e, 0x21b: 0x0e, 0x21c: 0x0e, 0x21d: 0x0e, 0x21e: 0x0e, 0x21f: 0x0e,
+       0x220: 0x0e, 0x221: 0x0e, 0x222: 0x0e, 0x223: 0x0e, 0x224: 0x0e, 0x225: 0x0e, 0x226: 0x0e, 0x227: 0x0e,
+       0x228: 0x0e, 0x229: 0x0e, 0x22a: 0x0e, 0x22b: 0x0e, 0x22c: 0x0e, 0x22d: 0x0e, 0x22e: 0x0e, 0x22f: 0x0e,
+       0x230: 0x0e, 0x231: 0x0e, 0x232: 0x0e, 0x233: 0x0e, 0x234: 0x0e, 0x235: 0x0e, 0x236: 0x0e, 0x237: 0x0e,
+       0x238: 0x0e, 0x239: 0x0e, 0x23a: 0x0e, 0x23b: 0x0e, 0x23c: 0x0e, 0x23d: 0x0e, 0x23e: 0x0e, 0x23f: 0x0e,
+       // Block 0x9, offset 0x240
+       0x240: 0x0e, 0x241: 0x0e, 0x242: 0x0e, 0x243: 0x0e, 0x244: 0x0e, 0x245: 0x0e, 0x246: 0x0e, 0x247: 0x0e,
+       0x248: 0x0e, 0x249: 0x0e, 0x24a: 0x0e, 0x24b: 0x0e, 0x24c: 0x0e, 0x24d: 0x0e, 0x24e: 0x0e, 0x24f: 0x0e,
+       0x250: 0x0e, 0x251: 0x0e, 0x252: 0x3b, 0x253: 0x3c,
+       0x265: 0x3d,
+       0x270: 0x0e, 0x271: 0x0e, 0x272: 0x0e, 0x273: 0x0e, 0x274: 0x0e, 0x275: 0x0e, 0x276: 0x0e, 0x277: 0x0e,
+       0x278: 0x0e, 0x279: 0x0e, 0x27a: 0x0e, 0x27b: 0x0e, 0x27c: 0x0e, 0x27d: 0x0e, 0x27e: 0x0e, 0x27f: 0x0e,
+       // Block 0xa, offset 0x280
+       0x280: 0x0e, 0x281: 0x0e, 0x282: 0x0e, 0x283: 0x0e, 0x284: 0x0e, 0x285: 0x0e, 0x286: 0x0e, 0x287: 0x0e,
+       0x288: 0x0e, 0x289: 0x0e, 0x28a: 0x0e, 0x28b: 0x0e, 0x28c: 0x0e, 0x28d: 0x0e, 0x28e: 0x0e, 0x28f: 0x0e,
+       0x290: 0x0e, 0x291: 0x0e, 0x292: 0x0e, 0x293: 0x0e, 0x294: 0x0e, 0x295: 0x0e, 0x296: 0x0e, 0x297: 0x0e,
+       0x298: 0x0e, 0x299: 0x0e, 0x29a: 0x0e, 0x29b: 0x0e, 0x29c: 0x0e, 0x29d: 0x0e, 0x29e: 0x3e,
+       // Block 0xb, offset 0x2c0
+       0x2c0: 0x08, 0x2c1: 0x08, 0x2c2: 0x08, 0x2c3: 0x08, 0x2c4: 0x08, 0x2c5: 0x08, 0x2c6: 0x08, 0x2c7: 0x08,
+       0x2c8: 0x08, 0x2c9: 0x08, 0x2ca: 0x08, 0x2cb: 0x08, 0x2cc: 0x08, 0x2cd: 0x08, 0x2ce: 0x08, 0x2cf: 0x08,
+       0x2d0: 0x08, 0x2d1: 0x08, 0x2d2: 0x08, 0x2d3: 0x08, 0x2d4: 0x08, 0x2d5: 0x08, 0x2d6: 0x08, 0x2d7: 0x08,
+       0x2d8: 0x08, 0x2d9: 0x08, 0x2da: 0x08, 0x2db: 0x08, 0x2dc: 0x08, 0x2dd: 0x08, 0x2de: 0x08, 0x2df: 0x08,
+       0x2e0: 0x08, 0x2e1: 0x08, 0x2e2: 0x08, 0x2e3: 0x08, 0x2e4: 0x08, 0x2e5: 0x08, 0x2e6: 0x08, 0x2e7: 0x08,
+       0x2e8: 0x08, 0x2e9: 0x08, 0x2ea: 0x08, 0x2eb: 0x08, 0x2ec: 0x08, 0x2ed: 0x08, 0x2ee: 0x08, 0x2ef: 0x08,
+       0x2f0: 0x08, 0x2f1: 0x08, 0x2f2: 0x08, 0x2f3: 0x08, 0x2f4: 0x08, 0x2f5: 0x08, 0x2f6: 0x08, 0x2f7: 0x08,
+       0x2f8: 0x08, 0x2f9: 0x08, 0x2fa: 0x08, 0x2fb: 0x08, 0x2fc: 0x08, 0x2fd: 0x08, 0x2fe: 0x08, 0x2ff: 0x08,
+       // Block 0xc, offset 0x300
+       0x300: 0x08, 0x301: 0x08, 0x302: 0x08, 0x303: 0x08, 0x304: 0x08, 0x305: 0x08, 0x306: 0x08, 0x307: 0x08,
+       0x308: 0x08, 0x309: 0x08, 0x30a: 0x08, 0x30b: 0x08, 0x30c: 0x08, 0x30d: 0x08, 0x30e: 0x08, 0x30f: 0x08,
+       0x310: 0x08, 0x311: 0x08, 0x312: 0x08, 0x313: 0x08, 0x314: 0x08, 0x315: 0x08, 0x316: 0x08, 0x317: 0x08,
+       0x318: 0x08, 0x319: 0x08, 0x31a: 0x08, 0x31b: 0x08, 0x31c: 0x08, 0x31d: 0x08, 0x31e: 0x08, 0x31f: 0x08,
+       0x320: 0x08, 0x321: 0x08, 0x322: 0x08, 0x323: 0x08, 0x324: 0x0e, 0x325: 0x0e, 0x326: 0x0e, 0x327: 0x0e,
+       0x328: 0x0e, 0x329: 0x0e, 0x32a: 0x0e, 0x32b: 0x0e,
+       0x338: 0x3f, 0x339: 0x40, 0x33c: 0x41, 0x33d: 0x42, 0x33e: 0x43, 0x33f: 0x44,
+       // Block 0xd, offset 0x340
+       0x37f: 0x45,
+       // Block 0xe, offset 0x380
+       0x380: 0x0e, 0x381: 0x0e, 0x382: 0x0e, 0x383: 0x0e, 0x384: 0x0e, 0x385: 0x0e, 0x386: 0x0e, 0x387: 0x0e,
+       0x388: 0x0e, 0x389: 0x0e, 0x38a: 0x0e, 0x38b: 0x0e, 0x38c: 0x0e, 0x38d: 0x0e, 0x38e: 0x0e, 0x38f: 0x0e,
+       0x390: 0x0e, 0x391: 0x0e, 0x392: 0x0e, 0x393: 0x0e, 0x394: 0x0e, 0x395: 0x0e, 0x396: 0x0e, 0x397: 0x0e,
+       0x398: 0x0e, 0x399: 0x0e, 0x39a: 0x0e, 0x39b: 0x0e, 0x39c: 0x0e, 0x39d: 0x0e, 0x39e: 0x0e, 0x39f: 0x46,
+       0x3a0: 0x0e, 0x3a1: 0x0e, 0x3a2: 0x0e, 0x3a3: 0x0e, 0x3a4: 0x0e, 0x3a5: 0x0e, 0x3a6: 0x0e, 0x3a7: 0x0e,
+       0x3a8: 0x0e, 0x3a9: 0x0e, 0x3aa: 0x0e, 0x3ab: 0x47,
+       // Block 0xf, offset 0x3c0
+       0x3c0: 0x48,
+       // Block 0x10, offset 0x400
+       0x400: 0x49, 0x403: 0x4a, 0x404: 0x4b, 0x405: 0x4c, 0x406: 0x4d,
+       0x408: 0x4e, 0x409: 0x4f, 0x40c: 0x50, 0x40d: 0x51, 0x40e: 0x52, 0x40f: 0x53,
+       0x410: 0x3a, 0x411: 0x54, 0x412: 0x0e, 0x413: 0x55, 0x414: 0x56, 0x415: 0x57, 0x416: 0x58, 0x417: 0x59,
+       0x418: 0x0e, 0x419: 0x5a, 0x41a: 0x0e, 0x41b: 0x5b,
+       0x424: 0x5c, 0x425: 0x5d, 0x426: 0x5e, 0x427: 0x5f,
+       // Block 0x11, offset 0x440
+       0x456: 0x0b, 0x457: 0x06,
+       0x458: 0x0c, 0x45b: 0x0d, 0x45f: 0x0e,
+       0x460: 0x06, 0x461: 0x06, 0x462: 0x06, 0x463: 0x06, 0x464: 0x06, 0x465: 0x06, 0x466: 0x06, 0x467: 0x06,
+       0x468: 0x06, 0x469: 0x06, 0x46a: 0x06, 0x46b: 0x06, 0x46c: 0x06, 0x46d: 0x06, 0x46e: 0x06, 0x46f: 0x06,
+       0x470: 0x06, 0x471: 0x06, 0x472: 0x06, 0x473: 0x06, 0x474: 0x06, 0x475: 0x06, 0x476: 0x06, 0x477: 0x06,
+       0x478: 0x06, 0x479: 0x06, 0x47a: 0x06, 0x47b: 0x06, 0x47c: 0x06, 0x47d: 0x06, 0x47e: 0x06, 0x47f: 0x06,
+       // Block 0x12, offset 0x480
+       0x484: 0x08, 0x485: 0x08, 0x486: 0x08, 0x487: 0x09,
+       // Block 0x13, offset 0x4c0
+       0x4c0: 0x08, 0x4c1: 0x08, 0x4c2: 0x08, 0x4c3: 0x08, 0x4c4: 0x08, 0x4c5: 0x08, 0x4c6: 0x08, 0x4c7: 0x08,
+       0x4c8: 0x08, 0x4c9: 0x08, 0x4ca: 0x08, 0x4cb: 0x08, 0x4cc: 0x08, 0x4cd: 0x08, 0x4ce: 0x08, 0x4cf: 0x08,
+       0x4d0: 0x08, 0x4d1: 0x08, 0x4d2: 0x08, 0x4d3: 0x08, 0x4d4: 0x08, 0x4d5: 0x08, 0x4d6: 0x08, 0x4d7: 0x08,
+       0x4d8: 0x08, 0x4d9: 0x08, 0x4da: 0x08, 0x4db: 0x08, 0x4dc: 0x08, 0x4dd: 0x08, 0x4de: 0x08, 0x4df: 0x08,
+       0x4e0: 0x08, 0x4e1: 0x08, 0x4e2: 0x08, 0x4e3: 0x08, 0x4e4: 0x08, 0x4e5: 0x08, 0x4e6: 0x08, 0x4e7: 0x08,
+       0x4e8: 0x08, 0x4e9: 0x08, 0x4ea: 0x08, 0x4eb: 0x08, 0x4ec: 0x08, 0x4ed: 0x08, 0x4ee: 0x08, 0x4ef: 0x08,
+       0x4f0: 0x08, 0x4f1: 0x08, 0x4f2: 0x08, 0x4f3: 0x08, 0x4f4: 0x08, 0x4f5: 0x08, 0x4f6: 0x08, 0x4f7: 0x08,
+       0x4f8: 0x08, 0x4f9: 0x08, 0x4fa: 0x08, 0x4fb: 0x08, 0x4fc: 0x08, 0x4fd: 0x08, 0x4fe: 0x08, 0x4ff: 0x60,
+       // Block 0x14, offset 0x500
+       0x520: 0x10,
+       0x530: 0x09, 0x531: 0x09, 0x532: 0x09, 0x533: 0x09, 0x534: 0x09, 0x535: 0x09, 0x536: 0x09, 0x537: 0x09,
+       0x538: 0x09, 0x539: 0x09, 0x53a: 0x09, 0x53b: 0x09, 0x53c: 0x09, 0x53d: 0x09, 0x53e: 0x09, 0x53f: 0x11,
+       // Block 0x15, offset 0x540
+       0x540: 0x09, 0x541: 0x09, 0x542: 0x09, 0x543: 0x09, 0x544: 0x09, 0x545: 0x09, 0x546: 0x09, 0x547: 0x09,
+       0x548: 0x09, 0x549: 0x09, 0x54a: 0x09, 0x54b: 0x09, 0x54c: 0x09, 0x54d: 0x09, 0x54e: 0x09, 0x54f: 0x11,
+}
+
+// inverseData contains 4-byte entries of the following format:
+//   <length> <modified UTF-8-encoded rune> <0 padding>
+// The last byte of the UTF-8-encoded rune is xor-ed with the last byte of the
+// UTF-8 encoding of the original rune. Mappings often have the following
+// pattern:
+//   A -> A  (U+FF21 -> U+0041)
+//   B -> B  (U+FF22 -> U+0042)
+//   ...
+// By xor-ing the last byte the same entry can be shared by many mappings. This
+// reduces the total number of distinct entries by about two thirds.
+// The resulting entry for the aforementioned mappings is
+//   { 0x01, 0xE0, 0x00, 0x00 }
+// Using this entry to map U+FF21 (UTF-8 [EF BC A1]), we get
+//   E0 ^ A1 = 41.
+// Similarly, for U+FF22 (UTF-8 [EF BC A2]), we get
+//   E0 ^ A2 = 42.
+// Note that because of the xor-ing, the byte sequence stored in the entry is
+// not valid UTF-8.
+var inverseData = [150][4]byte{
+       {0x00, 0x00, 0x00, 0x00},
+       {0x03, 0xe3, 0x80, 0xa0},
+       {0x03, 0xef, 0xbc, 0xa0},
+       {0x03, 0xef, 0xbc, 0xe0},
+       {0x03, 0xef, 0xbd, 0xe0},
+       {0x03, 0xef, 0xbf, 0x02},
+       {0x03, 0xef, 0xbf, 0x00},
+       {0x03, 0xef, 0xbf, 0x0e},
+       {0x03, 0xef, 0xbf, 0x0c},
+       {0x03, 0xef, 0xbf, 0x0f},
+       {0x03, 0xef, 0xbf, 0x39},
+       {0x03, 0xef, 0xbf, 0x3b},
+       {0x03, 0xef, 0xbf, 0x3f},
+       {0x03, 0xef, 0xbf, 0x2a},
+       {0x03, 0xef, 0xbf, 0x0d},
+       {0x03, 0xef, 0xbf, 0x25},
+       {0x03, 0xef, 0xbd, 0x1a},
+       {0x03, 0xef, 0xbd, 0x26},
+       {0x01, 0xa0, 0x00, 0x00},
+       {0x03, 0xef, 0xbd, 0x25},
+       {0x03, 0xef, 0xbd, 0x23},
+       {0x03, 0xef, 0xbd, 0x2e},
+       {0x03, 0xef, 0xbe, 0x07},
+       {0x03, 0xef, 0xbe, 0x05},
+       {0x03, 0xef, 0xbd, 0x06},
+       {0x03, 0xef, 0xbd, 0x13},
+       {0x03, 0xef, 0xbd, 0x0b},
+       {0x03, 0xef, 0xbd, 0x16},
+       {0x03, 0xef, 0xbd, 0x0c},
+       {0x03, 0xef, 0xbd, 0x15},
+       {0x03, 0xef, 0xbd, 0x0d},
+       {0x03, 0xef, 0xbd, 0x1c},
+       {0x03, 0xef, 0xbd, 0x02},
+       {0x03, 0xef, 0xbd, 0x1f},
+       {0x03, 0xef, 0xbd, 0x1d},
+       {0x03, 0xef, 0xbd, 0x17},
+       {0x03, 0xef, 0xbd, 0x08},
+       {0x03, 0xef, 0xbd, 0x09},
+       {0x03, 0xef, 0xbd, 0x0e},
+       {0x03, 0xef, 0xbd, 0x04},
+       {0x03, 0xef, 0xbd, 0x05},
+       {0x03, 0xef, 0xbe, 0x3f},
+       {0x03, 0xef, 0xbe, 0x00},
+       {0x03, 0xef, 0xbd, 0x2c},
+       {0x03, 0xef, 0xbe, 0x06},
+       {0x03, 0xef, 0xbe, 0x0c},
+       {0x03, 0xef, 0xbe, 0x0f},
+       {0x03, 0xef, 0xbe, 0x0d},
+       {0x03, 0xef, 0xbe, 0x0b},
+       {0x03, 0xef, 0xbe, 0x19},
+       {0x03, 0xef, 0xbe, 0x15},
+       {0x03, 0xef, 0xbe, 0x11},
+       {0x03, 0xef, 0xbe, 0x31},
+       {0x03, 0xef, 0xbe, 0x33},
+       {0x03, 0xef, 0xbd, 0x0f},
+       {0x03, 0xef, 0xbe, 0x30},
+       {0x03, 0xef, 0xbe, 0x3e},
+       {0x03, 0xef, 0xbe, 0x32},
+       {0x03, 0xef, 0xbe, 0x36},
+       {0x03, 0xef, 0xbd, 0x14},
+       {0x03, 0xef, 0xbe, 0x2e},
+       {0x03, 0xef, 0xbd, 0x1e},
+       {0x03, 0xef, 0xbe, 0x10},
+       {0x03, 0xef, 0xbf, 0x13},
+       {0x03, 0xef, 0xbf, 0x15},
+       {0x03, 0xef, 0xbf, 0x17},
+       {0x03, 0xef, 0xbf, 0x1f},
+       {0x03, 0xef, 0xbf, 0x1d},
+       {0x03, 0xef, 0xbf, 0x1b},
+       {0x03, 0xef, 0xbf, 0x09},
+       {0x03, 0xef, 0xbf, 0x0b},
+       {0x03, 0xef, 0xbf, 0x37},
+       {0x03, 0xef, 0xbe, 0x04},
+       {0x01, 0xe0, 0x00, 0x00},
+       {0x03, 0xe2, 0xa6, 0x1a},
+       {0x03, 0xe2, 0xa6, 0x26},
+       {0x03, 0xe3, 0x80, 0x23},
+       {0x03, 0xe3, 0x80, 0x2e},
+       {0x03, 0xe3, 0x80, 0x25},
+       {0x03, 0xe3, 0x83, 0x1e},
+       {0x03, 0xe3, 0x83, 0x14},
+       {0x03, 0xe3, 0x82, 0x06},
+       {0x03, 0xe3, 0x82, 0x0b},
+       {0x03, 0xe3, 0x82, 0x0c},
+       {0x03, 0xe3, 0x82, 0x0d},
+       {0x03, 0xe3, 0x82, 0x02},
+       {0x03, 0xe3, 0x83, 0x0f},
+       {0x03, 0xe3, 0x83, 0x08},
+       {0x03, 0xe3, 0x83, 0x09},
+       {0x03, 0xe3, 0x83, 0x2c},
+       {0x03, 0xe3, 0x83, 0x0c},
+       {0x03, 0xe3, 0x82, 0x13},
+       {0x03, 0xe3, 0x82, 0x16},
+       {0x03, 0xe3, 0x82, 0x15},
+       {0x03, 0xe3, 0x82, 0x1c},
+       {0x03, 0xe3, 0x82, 0x1f},
+       {0x03, 0xe3, 0x82, 0x1d},
+       {0x03, 0xe3, 0x82, 0x1a},
+       {0x03, 0xe3, 0x82, 0x17},
+       {0x03, 0xe3, 0x82, 0x08},
+       {0x03, 0xe3, 0x82, 0x09},
+       {0x03, 0xe3, 0x82, 0x0e},
+       {0x03, 0xe3, 0x82, 0x04},
+       {0x03, 0xe3, 0x82, 0x05},
+       {0x03, 0xe3, 0x82, 0x3f},
+       {0x03, 0xe3, 0x83, 0x00},
+       {0x03, 0xe3, 0x83, 0x06},
+       {0x03, 0xe3, 0x83, 0x05},
+       {0x03, 0xe3, 0x83, 0x0d},
+       {0x03, 0xe3, 0x83, 0x0b},
+       {0x03, 0xe3, 0x83, 0x07},
+       {0x03, 0xe3, 0x83, 0x19},
+       {0x03, 0xe3, 0x83, 0x15},
+       {0x03, 0xe3, 0x83, 0x11},
+       {0x03, 0xe3, 0x83, 0x31},
+       {0x03, 0xe3, 0x83, 0x33},
+       {0x03, 0xe3, 0x83, 0x30},
+       {0x03, 0xe3, 0x83, 0x3e},
+       {0x03, 0xe3, 0x83, 0x32},
+       {0x03, 0xe3, 0x83, 0x36},
+       {0x03, 0xe3, 0x83, 0x2e},
+       {0x03, 0xe3, 0x82, 0x07},
+       {0x03, 0xe3, 0x85, 0x04},
+       {0x03, 0xe3, 0x84, 0x10},
+       {0x03, 0xe3, 0x85, 0x30},
+       {0x03, 0xe3, 0x85, 0x0d},
+       {0x03, 0xe3, 0x85, 0x13},
+       {0x03, 0xe3, 0x85, 0x15},
+       {0x03, 0xe3, 0x85, 0x17},
+       {0x03, 0xe3, 0x85, 0x1f},
+       {0x03, 0xe3, 0x85, 0x1d},
+       {0x03, 0xe3, 0x85, 0x1b},
+       {0x03, 0xe3, 0x85, 0x09},
+       {0x03, 0xe3, 0x85, 0x0f},
+       {0x03, 0xe3, 0x85, 0x0b},
+       {0x03, 0xe3, 0x85, 0x37},
+       {0x03, 0xe3, 0x85, 0x3b},
+       {0x03, 0xe3, 0x85, 0x39},
+       {0x03, 0xe3, 0x85, 0x3f},
+       {0x02, 0xc2, 0x02, 0x00},
+       {0x02, 0xc2, 0x0e, 0x00},
+       {0x02, 0xc2, 0x0c, 0x00},
+       {0x02, 0xc2, 0x00, 0x00},
+       {0x03, 0xe2, 0x82, 0x0f},
+       {0x03, 0xe2, 0x94, 0x2a},
+       {0x03, 0xe2, 0x86, 0x39},
+       {0x03, 0xe2, 0x86, 0x3b},
+       {0x03, 0xe2, 0x86, 0x3f},
+       {0x03, 0xe2, 0x96, 0x0d},
+       {0x03, 0xe2, 0x97, 0x25},
+}
+
+// Total table size 14680 bytes (14KiB)
diff --git a/src/vendor/golang_org/x/text/width/transform.go b/src/vendor/golang_org/x/text/width/transform.go
new file mode 100644 (file)
index 0000000..04f1a3f
--- /dev/null
@@ -0,0 +1,239 @@
+// 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 width
+
+import (
+       "unicode/utf8"
+
+       "golang_org/x/text/transform"
+)
+
+type foldTransform struct {
+       transform.NopResetter
+}
+
+func (foldTransform) Span(src []byte, atEOF bool) (n int, err error) {
+       for n < len(src) {
+               if src[n] < utf8.RuneSelf {
+                       // ASCII fast path.
+                       for n++; n < len(src) && src[n] < utf8.RuneSelf; n++ {
+                       }
+                       continue
+               }
+               v, size := trie.lookup(src[n:])
+               if size == 0 { // incomplete UTF-8 encoding
+                       if !atEOF {
+                               err = transform.ErrShortSrc
+                       } else {
+                               n = len(src)
+                       }
+                       break
+               }
+               if elem(v)&tagNeedsFold != 0 {
+                       err = transform.ErrEndOfSpan
+                       break
+               }
+               n += size
+       }
+       return n, err
+}
+
+func (foldTransform) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {
+       for nSrc < len(src) {
+               if src[nSrc] < utf8.RuneSelf {
+                       // ASCII fast path.
+                       start, end := nSrc, len(src)
+                       if d := len(dst) - nDst; d < end-start {
+                               end = nSrc + d
+                       }
+                       for nSrc++; nSrc < end && src[nSrc] < utf8.RuneSelf; nSrc++ {
+                       }
+                       n := copy(dst[nDst:], src[start:nSrc])
+                       if nDst += n; nDst == len(dst) {
+                               nSrc = start + n
+                               if nSrc == len(src) {
+                                       return nDst, nSrc, nil
+                               }
+                               if src[nSrc] < utf8.RuneSelf {
+                                       return nDst, nSrc, transform.ErrShortDst
+                               }
+                       }
+                       continue
+               }
+               v, size := trie.lookup(src[nSrc:])
+               if size == 0 { // incomplete UTF-8 encoding
+                       if !atEOF {
+                               return nDst, nSrc, transform.ErrShortSrc
+                       }
+                       size = 1 // gobble 1 byte
+               }
+               if elem(v)&tagNeedsFold == 0 {
+                       if size != copy(dst[nDst:], src[nSrc:nSrc+size]) {
+                               return nDst, nSrc, transform.ErrShortDst
+                       }
+                       nDst += size
+               } else {
+                       data := inverseData[byte(v)]
+                       if len(dst)-nDst < int(data[0]) {
+                               return nDst, nSrc, transform.ErrShortDst
+                       }
+                       i := 1
+                       for end := int(data[0]); i < end; i++ {
+                               dst[nDst] = data[i]
+                               nDst++
+                       }
+                       dst[nDst] = data[i] ^ src[nSrc+size-1]
+                       nDst++
+               }
+               nSrc += size
+       }
+       return nDst, nSrc, nil
+}
+
+type narrowTransform struct {
+       transform.NopResetter
+}
+
+func (narrowTransform) Span(src []byte, atEOF bool) (n int, err error) {
+       for n < len(src) {
+               if src[n] < utf8.RuneSelf {
+                       // ASCII fast path.
+                       for n++; n < len(src) && src[n] < utf8.RuneSelf; n++ {
+                       }
+                       continue
+               }
+               v, size := trie.lookup(src[n:])
+               if size == 0 { // incomplete UTF-8 encoding
+                       if !atEOF {
+                               err = transform.ErrShortSrc
+                       } else {
+                               n = len(src)
+                       }
+                       break
+               }
+               if k := elem(v).kind(); byte(v) == 0 || k != EastAsianFullwidth && k != EastAsianWide && k != EastAsianAmbiguous {
+               } else {
+                       err = transform.ErrEndOfSpan
+                       break
+               }
+               n += size
+       }
+       return n, err
+}
+
+func (narrowTransform) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {
+       for nSrc < len(src) {
+               if src[nSrc] < utf8.RuneSelf {
+                       // ASCII fast path.
+                       start, end := nSrc, len(src)
+                       if d := len(dst) - nDst; d < end-start {
+                               end = nSrc + d
+                       }
+                       for nSrc++; nSrc < end && src[nSrc] < utf8.RuneSelf; nSrc++ {
+                       }
+                       n := copy(dst[nDst:], src[start:nSrc])
+                       if nDst += n; nDst == len(dst) {
+                               nSrc = start + n
+                               if nSrc == len(src) {
+                                       return nDst, nSrc, nil
+                               }
+                               if src[nSrc] < utf8.RuneSelf {
+                                       return nDst, nSrc, transform.ErrShortDst
+                               }
+                       }
+                       continue
+               }
+               v, size := trie.lookup(src[nSrc:])
+               if size == 0 { // incomplete UTF-8 encoding
+                       if !atEOF {
+                               return nDst, nSrc, transform.ErrShortSrc
+                       }
+                       size = 1 // gobble 1 byte
+               }
+               if k := elem(v).kind(); byte(v) == 0 || k != EastAsianFullwidth && k != EastAsianWide && k != EastAsianAmbiguous {
+                       if size != copy(dst[nDst:], src[nSrc:nSrc+size]) {
+                               return nDst, nSrc, transform.ErrShortDst
+                       }
+                       nDst += size
+               } else {
+                       data := inverseData[byte(v)]
+                       if len(dst)-nDst < int(data[0]) {
+                               return nDst, nSrc, transform.ErrShortDst
+                       }
+                       i := 1
+                       for end := int(data[0]); i < end; i++ {
+                               dst[nDst] = data[i]
+                               nDst++
+                       }
+                       dst[nDst] = data[i] ^ src[nSrc+size-1]
+                       nDst++
+               }
+               nSrc += size
+       }
+       return nDst, nSrc, nil
+}
+
+type wideTransform struct {
+       transform.NopResetter
+}
+
+func (wideTransform) Span(src []byte, atEOF bool) (n int, err error) {
+       for n < len(src) {
+               // TODO: Consider ASCII fast path. Special-casing ASCII handling can
+               // reduce the ns/op of BenchmarkWideASCII by about 30%. This is probably
+               // not enough to warrant the extra code and complexity.
+               v, size := trie.lookup(src[n:])
+               if size == 0 { // incomplete UTF-8 encoding
+                       if !atEOF {
+                               err = transform.ErrShortSrc
+                       } else {
+                               n = len(src)
+                       }
+                       break
+               }
+               if k := elem(v).kind(); byte(v) == 0 || k != EastAsianHalfwidth && k != EastAsianNarrow {
+               } else {
+                       err = transform.ErrEndOfSpan
+                       break
+               }
+               n += size
+       }
+       return n, err
+}
+
+func (wideTransform) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {
+       for nSrc < len(src) {
+               // TODO: Consider ASCII fast path. Special-casing ASCII handling can
+               // reduce the ns/op of BenchmarkWideASCII by about 30%. This is probably
+               // not enough to warrant the extra code and complexity.
+               v, size := trie.lookup(src[nSrc:])
+               if size == 0 { // incomplete UTF-8 encoding
+                       if !atEOF {
+                               return nDst, nSrc, transform.ErrShortSrc
+                       }
+                       size = 1 // gobble 1 byte
+               }
+               if k := elem(v).kind(); byte(v) == 0 || k != EastAsianHalfwidth && k != EastAsianNarrow {
+                       if size != copy(dst[nDst:], src[nSrc:nSrc+size]) {
+                               return nDst, nSrc, transform.ErrShortDst
+                       }
+                       nDst += size
+               } else {
+                       data := inverseData[byte(v)]
+                       if len(dst)-nDst < int(data[0]) {
+                               return nDst, nSrc, transform.ErrShortDst
+                       }
+                       i := 1
+                       for end := int(data[0]); i < end; i++ {
+                               dst[nDst] = data[i]
+                               nDst++
+                       }
+                       dst[nDst] = data[i] ^ src[nSrc+size-1]
+                       nDst++
+               }
+               nSrc += size
+       }
+       return nDst, nSrc, nil
+}
diff --git a/src/vendor/golang_org/x/text/width/trieval.go b/src/vendor/golang_org/x/text/width/trieval.go
new file mode 100644 (file)
index 0000000..0ecffb4
--- /dev/null
@@ -0,0 +1,30 @@
+// This file was generated by go generate; DO NOT EDIT
+
+package width
+
+// elem is an entry of the width trie. The high byte is used to encode the type
+// of the rune. The low byte is used to store the index to a mapping entry in
+// the inverseData array.
+type elem uint16
+
+const (
+       tagNeutral elem = iota << typeShift
+       tagAmbiguous
+       tagWide
+       tagNarrow
+       tagFullwidth
+       tagHalfwidth
+)
+
+const (
+       numTypeBits = 3
+       typeShift   = 16 - numTypeBits
+
+       // tagNeedsFold is true for all fullwidth and halfwidth runes except for
+       // the Won sign U+20A9.
+       tagNeedsFold = 0x1000
+
+       // The Korean Won sign is halfwidth, but SHOULD NOT be mapped to a wide
+       // variant.
+       wonSign rune = 0x20A9
+)
diff --git a/src/vendor/golang_org/x/text/width/width.go b/src/vendor/golang_org/x/text/width/width.go
new file mode 100644 (file)
index 0000000..27f55b8
--- /dev/null
@@ -0,0 +1,206 @@
+// 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.
+
+//go:generate stringer -type=Kind
+//go:generate go run gen.go gen_common.go gen_trieval.go
+
+// Package width provides functionality for handling different widths in text.
+//
+// Wide characters behave like ideographs; they tend to allow line breaks after
+// each character and remain upright in vertical text layout. Narrow characters
+// are kept together in words or runs that are rotated sideways in vertical text
+// layout.
+//
+// For more information, see http://unicode.org/reports/tr11/.
+package width // import "golang_org/x/text/width"
+
+import (
+       "unicode/utf8"
+
+       "golang_org/x/text/transform"
+)
+
+// TODO
+// 1) Reduce table size by compressing blocks.
+// 2) API proposition for computing display length
+//    (approximation, fixed pitch only).
+// 3) Implement display length.
+
+// Kind indicates the type of width property as defined in http://unicode.org/reports/tr11/.
+type Kind int
+
+const (
+       // Neutral characters do not occur in legacy East Asian character sets.
+       Neutral Kind = iota
+
+       // EastAsianAmbiguous characters that can be sometimes wide and sometimes
+       // narrow and require additional information not contained in the character
+       // code to further resolve their width.
+       EastAsianAmbiguous
+
+       // EastAsianWide characters are wide in its usual form. They occur only in
+       // the context of East Asian typography. These runes may have explicit
+       // halfwidth counterparts.
+       EastAsianWide
+
+       // EastAsianNarrow characters are narrow in its usual form. They often have
+       // fullwidth counterparts.
+       EastAsianNarrow
+
+       // Note: there exist Narrow runes that do not have fullwidth or wide
+       // counterparts, despite what the definition says (e.g. U+27E6).
+
+       // EastAsianFullwidth characters have a compatibility decompositions of type
+       // wide that map to a narrow counterpart.
+       EastAsianFullwidth
+
+       // EastAsianHalfwidth characters have a compatibility decomposition of type
+       // narrow that map to a wide or ambiguous counterpart, plus U+20A9 ₩ WON
+       // SIGN.
+       EastAsianHalfwidth
+
+       // Note: there exist runes that have a halfwidth counterparts but that are
+       // classified as Ambiguous, rather than wide (e.g. U+2190).
+)
+
+// TODO: the generated tries need to return size 1 for invalid runes for the
+// width to be computed correctly (each byte should render width 1)
+
+var trie = newWidthTrie(0)
+
+// Lookup reports the Properties of the first rune in b and the number of bytes
+// of its UTF-8 encoding.
+func Lookup(b []byte) (p Properties, size int) {
+       v, sz := trie.lookup(b)
+       return Properties{elem(v), b[sz-1]}, sz
+}
+
+// LookupString reports the Properties of the first rune in s and the number of
+// bytes of its UTF-8 encoding.
+func LookupString(s string) (p Properties, size int) {
+       v, sz := trie.lookupString(s)
+       return Properties{elem(v), s[sz-1]}, sz
+}
+
+// LookupRune reports the Properties of rune r.
+func LookupRune(r rune) Properties {
+       var buf [4]byte
+       n := utf8.EncodeRune(buf[:], r)
+       v, _ := trie.lookup(buf[:n])
+       last := byte(r)
+       if r >= utf8.RuneSelf {
+               last = 0x80 + byte(r&0x3f)
+       }
+       return Properties{elem(v), last}
+}
+
+// Properties provides access to width properties of a rune.
+type Properties struct {
+       elem elem
+       last byte
+}
+
+func (e elem) kind() Kind {
+       return Kind(e >> typeShift)
+}
+
+// Kind returns the Kind of a rune as defined in Unicode TR #11.
+// See http://unicode.org/reports/tr11/ for more details.
+func (p Properties) Kind() Kind {
+       return p.elem.kind()
+}
+
+// Folded returns the folded variant of a rune or 0 if the rune is canonical.
+func (p Properties) Folded() rune {
+       if p.elem&tagNeedsFold != 0 {
+               buf := inverseData[byte(p.elem)]
+               buf[buf[0]] ^= p.last
+               r, _ := utf8.DecodeRune(buf[1 : 1+buf[0]])
+               return r
+       }
+       return 0
+}
+
+// Narrow returns the narrow variant of a rune or 0 if the rune is already
+// narrow or doesn't have a narrow variant.
+func (p Properties) Narrow() rune {
+       if k := p.elem.kind(); byte(p.elem) != 0 && (k == EastAsianFullwidth || k == EastAsianWide || k == EastAsianAmbiguous) {
+               buf := inverseData[byte(p.elem)]
+               buf[buf[0]] ^= p.last
+               r, _ := utf8.DecodeRune(buf[1 : 1+buf[0]])
+               return r
+       }
+       return 0
+}
+
+// Wide returns the wide variant of a rune or 0 if the rune is already
+// wide or doesn't have a wide variant.
+func (p Properties) Wide() rune {
+       if k := p.elem.kind(); byte(p.elem) != 0 && (k == EastAsianHalfwidth || k == EastAsianNarrow) {
+               buf := inverseData[byte(p.elem)]
+               buf[buf[0]] ^= p.last
+               r, _ := utf8.DecodeRune(buf[1 : 1+buf[0]])
+               return r
+       }
+       return 0
+}
+
+// TODO for Properties:
+// - Add Fullwidth/Halfwidth or Inverted methods for computing variants
+// mapping.
+// - Add width information (including information on non-spacing runes).
+
+// Transformer implements the transform.Transformer interface.
+type Transformer struct {
+       t transform.SpanningTransformer
+}
+
+// Reset implements the transform.Transformer interface.
+func (t Transformer) Reset() { t.t.Reset() }
+
+// Transform implements the transform.Transformer interface.
+func (t Transformer) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {
+       return t.t.Transform(dst, src, atEOF)
+}
+
+// Span implements the transform.SpanningTransformer interface.
+func (t Transformer) Span(src []byte, atEOF bool) (n int, err error) {
+       return t.t.Span(src, atEOF)
+}
+
+// Bytes returns a new byte slice with the result of applying t to b.
+func (t Transformer) Bytes(b []byte) []byte {
+       b, _, _ = transform.Bytes(t, b)
+       return b
+}
+
+// String returns a string with the result of applying t to s.
+func (t Transformer) String(s string) string {
+       s, _, _ = transform.String(t, s)
+       return s
+}
+
+var (
+       // Fold is a transform that maps all runes to their canonical width.
+       //
+       // Note that the NFKC and NFKD transforms in golang.org/x/text/unicode/norm
+       // provide a more generic folding mechanism.
+       Fold Transformer = Transformer{foldTransform{}}
+
+       // Widen is a transform that maps runes to their wide variant, if
+       // available.
+       Widen Transformer = Transformer{wideTransform{}}
+
+       // Narrow is a transform that maps runes to their narrow variant, if
+       // available.
+       Narrow Transformer = Transformer{narrowTransform{}}
+)
+
+// TODO: Consider the following options:
+// - Treat Ambiguous runes that have a halfwidth counterpart as wide, or some
+//   generalized variant of this.
+// - Consider a wide Won character to be the default width (or some generalized
+//   variant of this).
+// - Filter the set of characters that gets converted (the preferred approach is
+//   to allow applying filters to transforms).