Update prometheus/common to v0.10.0 (#622)
authorJulien Pivotto <roidelapluie@inuits.eu>
Wed, 10 Jun 2020 08:21:34 +0000 (10:21 +0200)
committerGitHub <noreply@github.com>
Wed, 10 Jun 2020 08:21:34 +0000 (09:21 +0100)
Enable HTTP/2.
Fixes #617

Add support for "0" duration.

Signed-off-by: Julien Pivotto <roidelapluie@inuits.eu>
69 files changed:
go.mod
go.sum
vendor/github.com/prometheus/common/config/http_config.go
vendor/github.com/prometheus/common/model/time.go
vendor/github.com/prometheus/common/promlog/log.go
vendor/golang.org/x/net/http/httpguts/guts.go [new file with mode: 0644]
vendor/golang.org/x/net/http/httpguts/httplex.go [new file with mode: 0644]
vendor/golang.org/x/net/http2/.gitignore [new file with mode: 0644]
vendor/golang.org/x/net/http2/Dockerfile [new file with mode: 0644]
vendor/golang.org/x/net/http2/Makefile [new file with mode: 0644]
vendor/golang.org/x/net/http2/README [new file with mode: 0644]
vendor/golang.org/x/net/http2/ciphers.go [new file with mode: 0644]
vendor/golang.org/x/net/http2/client_conn_pool.go [new file with mode: 0644]
vendor/golang.org/x/net/http2/databuffer.go [new file with mode: 0644]
vendor/golang.org/x/net/http2/errors.go [new file with mode: 0644]
vendor/golang.org/x/net/http2/flow.go [new file with mode: 0644]
vendor/golang.org/x/net/http2/frame.go [new file with mode: 0644]
vendor/golang.org/x/net/http2/go111.go [new file with mode: 0644]
vendor/golang.org/x/net/http2/gotrack.go [new file with mode: 0644]
vendor/golang.org/x/net/http2/headermap.go [new file with mode: 0644]
vendor/golang.org/x/net/http2/hpack/encode.go [new file with mode: 0644]
vendor/golang.org/x/net/http2/hpack/hpack.go [new file with mode: 0644]
vendor/golang.org/x/net/http2/hpack/huffman.go [new file with mode: 0644]
vendor/golang.org/x/net/http2/hpack/tables.go [new file with mode: 0644]
vendor/golang.org/x/net/http2/http2.go [new file with mode: 0644]
vendor/golang.org/x/net/http2/not_go111.go [new file with mode: 0644]
vendor/golang.org/x/net/http2/pipe.go [new file with mode: 0644]
vendor/golang.org/x/net/http2/server.go [new file with mode: 0644]
vendor/golang.org/x/net/http2/transport.go [new file with mode: 0644]
vendor/golang.org/x/net/http2/write.go [new file with mode: 0644]
vendor/golang.org/x/net/http2/writesched.go [new file with mode: 0644]
vendor/golang.org/x/net/http2/writesched_priority.go [new file with mode: 0644]
vendor/golang.org/x/net/http2/writesched_random.go [new file with mode: 0644]
vendor/golang.org/x/net/idna/idna10.0.0.go [new file with mode: 0644]
vendor/golang.org/x/net/idna/idna9.0.0.go [new file with mode: 0644]
vendor/golang.org/x/net/idna/punycode.go [new file with mode: 0644]
vendor/golang.org/x/net/idna/tables10.0.0.go [new file with mode: 0644]
vendor/golang.org/x/net/idna/tables11.0.0.go [new file with mode: 0644]
vendor/golang.org/x/net/idna/tables9.0.0.go [new file with mode: 0644]
vendor/golang.org/x/net/idna/trie.go [new file with mode: 0644]
vendor/golang.org/x/net/idna/trieval.go [new file with mode: 0644]
vendor/golang.org/x/text/AUTHORS [new file with mode: 0644]
vendor/golang.org/x/text/CONTRIBUTORS [new file with mode: 0644]
vendor/golang.org/x/text/LICENSE [new file with mode: 0644]
vendor/golang.org/x/text/PATENTS [new file with mode: 0644]
vendor/golang.org/x/text/secure/bidirule/bidirule.go [new file with mode: 0644]
vendor/golang.org/x/text/secure/bidirule/bidirule10.0.0.go [new file with mode: 0644]
vendor/golang.org/x/text/secure/bidirule/bidirule9.0.0.go [new file with mode: 0644]
vendor/golang.org/x/text/transform/transform.go [new file with mode: 0644]
vendor/golang.org/x/text/unicode/bidi/bidi.go [new file with mode: 0644]
vendor/golang.org/x/text/unicode/bidi/bracket.go [new file with mode: 0644]
vendor/golang.org/x/text/unicode/bidi/core.go [new file with mode: 0644]
vendor/golang.org/x/text/unicode/bidi/prop.go [new file with mode: 0644]
vendor/golang.org/x/text/unicode/bidi/tables10.0.0.go [new file with mode: 0644]
vendor/golang.org/x/text/unicode/bidi/tables11.0.0.go [new file with mode: 0644]
vendor/golang.org/x/text/unicode/bidi/tables9.0.0.go [new file with mode: 0644]
vendor/golang.org/x/text/unicode/bidi/trieval.go [new file with mode: 0644]
vendor/golang.org/x/text/unicode/norm/composition.go [new file with mode: 0644]
vendor/golang.org/x/text/unicode/norm/forminfo.go [new file with mode: 0644]
vendor/golang.org/x/text/unicode/norm/input.go [new file with mode: 0644]
vendor/golang.org/x/text/unicode/norm/iter.go [new file with mode: 0644]
vendor/golang.org/x/text/unicode/norm/normalize.go [new file with mode: 0644]
vendor/golang.org/x/text/unicode/norm/readwriter.go [new file with mode: 0644]
vendor/golang.org/x/text/unicode/norm/tables10.0.0.go [new file with mode: 0644]
vendor/golang.org/x/text/unicode/norm/tables11.0.0.go [new file with mode: 0644]
vendor/golang.org/x/text/unicode/norm/tables9.0.0.go [new file with mode: 0644]
vendor/golang.org/x/text/unicode/norm/transform.go [new file with mode: 0644]
vendor/golang.org/x/text/unicode/norm/trie.go [new file with mode: 0644]
vendor/modules.txt

diff --git a/go.mod b/go.mod
index cdaca9e75b5863092ceec2f0bae6b0027b60d371..66e7fa24c7b99932e0d3df5d0c0ff735603eff30 100644 (file)
--- a/go.mod
+++ b/go.mod
@@ -6,7 +6,7 @@ require (
        github.com/pkg/errors v0.8.1
        github.com/prometheus/client_golang v1.5.1
        github.com/prometheus/client_model v0.2.0
-       github.com/prometheus/common v0.9.1
+       github.com/prometheus/common v0.10.0
        golang.org/x/net v0.0.0-20190923162816-aa69164e4478
        gopkg.in/alecthomas/kingpin.v2 v2.2.6
        gopkg.in/yaml.v3 v3.0.0-20190502103701-55513cacd4ae
diff --git a/go.sum b/go.sum
index 2acc6024728fc8ba5ee6cd007627d550c280d79d..722d1f0e9a6c0437fb24e83dbf7dce819793090e 100644 (file)
--- a/go.sum
+++ b/go.sum
@@ -67,6 +67,8 @@ github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6T
 github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
 github.com/prometheus/common v0.9.1 h1:KOMtN28tlbam3/7ZKEYKHhKoJZYYj3gMH4uc62x7X7U=
 github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4=
+github.com/prometheus/common v0.10.0 h1:RyRA7RzGXQZiW+tGMr7sxa85G1z0yOpM1qq5c8lNawc=
+github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo=
 github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
 github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
 github.com/prometheus/procfs v0.0.8 h1:+fpWZdT24pJBiqJdAwYBjPSk+5YmQzYNPYzQsdzLkt8=
@@ -103,6 +105,7 @@ golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7w
 golang.org/x/sys v0.0.0-20200122134326-e047566fdf82 h1:ywK/j/KkyTHcdyYSZNXGjMwgmDSfjglYZ3vStQ/gSCU=
 golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
+golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs=
 golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
 golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 golang.org/x/tools v0.0.0-20190907020128-2ca718005c18/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
index 5c373d7a69ecaab61a9113eeb7d5e952e52ef16d..9b1fad93fa610a054bd143dc45b5c2cd223513dc 100644 (file)
@@ -29,6 +29,7 @@ import (
        "time"
 
        "github.com/mwitkow/go-conntrack"
+       "golang.org/x/net/http2"
        "gopkg.in/yaml.v2"
 )
 
@@ -153,6 +154,11 @@ func NewRoundTripperFromConfig(cfg HTTPClientConfig, name string, disableKeepAli
                                conntrack.DialWithName(name),
                        ),
                }
+               // TODO: use ForceAttemptHTTP2 when we move to Go 1.13+.
+               err := http2.ConfigureTransport(rt.(*http.Transport))
+               if err != nil {
+                       return nil, err
+               }
 
                // If a bearer token is provided, create a round tripper that will set the
                // Authorization header correctly on each request.
index 7b0064fdb2329e401a181773c9bb7c353220416e..490a0240c1014b1dfc2b7b0409c05621a1918227 100644 (file)
@@ -186,6 +186,10 @@ var durationRE = regexp.MustCompile("^([0-9]+)(y|w|d|h|m|s|ms)$")
 // ParseDuration parses a string into a time.Duration, assuming that a year
 // always has 365d, a week always has 7d, and a day always has 24h.
 func ParseDuration(durationStr string) (Duration, error) {
+       // Allow 0 without a unit.
+       if durationStr == "0" {
+               return 0, nil
+       }
        matches := durationRE.FindStringSubmatch(durationStr)
        if len(matches) != 3 {
                return 0, fmt.Errorf("not a valid duration string: %q", durationStr)
index 45fcbc4085a046ce3c9272c94b9096746b71c2f9..5062e2805e389170fe1210ca6684c8d0c3323ba3 100644 (file)
@@ -94,13 +94,15 @@ type Config struct {
 // with a timestamp. The output always goes to stderr.
 func New(config *Config) log.Logger {
        var l log.Logger
-       if config.Format.s == "logfmt" {
-               l = log.NewLogfmtLogger(log.NewSyncWriter(os.Stderr))
-       } else {
+       if config.Format != nil && config.Format.s == "json" {
                l = log.NewJSONLogger(log.NewSyncWriter(os.Stderr))
+       } else {
+               l = log.NewLogfmtLogger(log.NewSyncWriter(os.Stderr))
        }
 
-       l = level.NewFilter(l, config.Level.o)
+       if config.Level != nil {
+               l = level.NewFilter(l, config.Level.o)
+       }
        l = log.With(l, "ts", timestampFormat, "caller", log.DefaultCaller)
        return l
 }
diff --git a/vendor/golang.org/x/net/http/httpguts/guts.go b/vendor/golang.org/x/net/http/httpguts/guts.go
new file mode 100644 (file)
index 0000000..e6cd0ce
--- /dev/null
@@ -0,0 +1,50 @@
+// Copyright 2018 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 httpguts provides functions implementing various details
+// of the HTTP specification.
+//
+// This package is shared by the standard library (which vendors it)
+// and x/net/http2. It comes with no API stability promise.
+package httpguts
+
+import (
+       "net/textproto"
+       "strings"
+)
+
+// ValidTrailerHeader reports whether name is a valid header field name to appear
+// in trailers.
+// See RFC 7230, Section 4.1.2
+func ValidTrailerHeader(name string) bool {
+       name = textproto.CanonicalMIMEHeaderKey(name)
+       if strings.HasPrefix(name, "If-") || badTrailer[name] {
+               return false
+       }
+       return true
+}
+
+var badTrailer = map[string]bool{
+       "Authorization":       true,
+       "Cache-Control":       true,
+       "Connection":          true,
+       "Content-Encoding":    true,
+       "Content-Length":      true,
+       "Content-Range":       true,
+       "Content-Type":        true,
+       "Expect":              true,
+       "Host":                true,
+       "Keep-Alive":          true,
+       "Max-Forwards":        true,
+       "Pragma":              true,
+       "Proxy-Authenticate":  true,
+       "Proxy-Authorization": true,
+       "Proxy-Connection":    true,
+       "Range":               true,
+       "Realm":               true,
+       "Te":                  true,
+       "Trailer":             true,
+       "Transfer-Encoding":   true,
+       "Www-Authenticate":    true,
+}
diff --git a/vendor/golang.org/x/net/http/httpguts/httplex.go b/vendor/golang.org/x/net/http/httpguts/httplex.go
new file mode 100644 (file)
index 0000000..e7de24e
--- /dev/null
@@ -0,0 +1,346 @@
+// Copyright 2016 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package httpguts
+
+import (
+       "net"
+       "strings"
+       "unicode/utf8"
+
+       "golang.org/x/net/idna"
+)
+
+var isTokenTable = [127]bool{
+       '!':  true,
+       '#':  true,
+       '$':  true,
+       '%':  true,
+       '&':  true,
+       '\'': true,
+       '*':  true,
+       '+':  true,
+       '-':  true,
+       '.':  true,
+       '0':  true,
+       '1':  true,
+       '2':  true,
+       '3':  true,
+       '4':  true,
+       '5':  true,
+       '6':  true,
+       '7':  true,
+       '8':  true,
+       '9':  true,
+       'A':  true,
+       'B':  true,
+       'C':  true,
+       'D':  true,
+       'E':  true,
+       'F':  true,
+       'G':  true,
+       'H':  true,
+       'I':  true,
+       'J':  true,
+       'K':  true,
+       'L':  true,
+       'M':  true,
+       'N':  true,
+       'O':  true,
+       'P':  true,
+       'Q':  true,
+       'R':  true,
+       'S':  true,
+       'T':  true,
+       'U':  true,
+       'W':  true,
+       'V':  true,
+       'X':  true,
+       'Y':  true,
+       'Z':  true,
+       '^':  true,
+       '_':  true,
+       '`':  true,
+       'a':  true,
+       'b':  true,
+       'c':  true,
+       'd':  true,
+       'e':  true,
+       'f':  true,
+       'g':  true,
+       'h':  true,
+       'i':  true,
+       'j':  true,
+       'k':  true,
+       'l':  true,
+       'm':  true,
+       'n':  true,
+       'o':  true,
+       'p':  true,
+       'q':  true,
+       'r':  true,
+       's':  true,
+       't':  true,
+       'u':  true,
+       'v':  true,
+       'w':  true,
+       'x':  true,
+       'y':  true,
+       'z':  true,
+       '|':  true,
+       '~':  true,
+}
+
+func IsTokenRune(r rune) bool {
+       i := int(r)
+       return i < len(isTokenTable) && isTokenTable[i]
+}
+
+func isNotToken(r rune) bool {
+       return !IsTokenRune(r)
+}
+
+// HeaderValuesContainsToken reports whether any string in values
+// contains the provided token, ASCII case-insensitively.
+func HeaderValuesContainsToken(values []string, token string) bool {
+       for _, v := range values {
+               if headerValueContainsToken(v, token) {
+                       return true
+               }
+       }
+       return false
+}
+
+// isOWS reports whether b is an optional whitespace byte, as defined
+// by RFC 7230 section 3.2.3.
+func isOWS(b byte) bool { return b == ' ' || b == '\t' }
+
+// trimOWS returns x with all optional whitespace removes from the
+// beginning and end.
+func trimOWS(x string) string {
+       // TODO: consider using strings.Trim(x, " \t") instead,
+       // if and when it's fast enough. See issue 10292.
+       // But this ASCII-only code will probably always beat UTF-8
+       // aware code.
+       for len(x) > 0 && isOWS(x[0]) {
+               x = x[1:]
+       }
+       for len(x) > 0 && isOWS(x[len(x)-1]) {
+               x = x[:len(x)-1]
+       }
+       return x
+}
+
+// headerValueContainsToken reports whether v (assumed to be a
+// 0#element, in the ABNF extension described in RFC 7230 section 7)
+// contains token amongst its comma-separated tokens, ASCII
+// case-insensitively.
+func headerValueContainsToken(v string, token string) bool {
+       v = trimOWS(v)
+       if comma := strings.IndexByte(v, ','); comma != -1 {
+               return tokenEqual(trimOWS(v[:comma]), token) || headerValueContainsToken(v[comma+1:], token)
+       }
+       return tokenEqual(v, token)
+}
+
+// lowerASCII returns the ASCII lowercase version of b.
+func lowerASCII(b byte) byte {
+       if 'A' <= b && b <= 'Z' {
+               return b + ('a' - 'A')
+       }
+       return b
+}
+
+// tokenEqual reports whether t1 and t2 are equal, ASCII case-insensitively.
+func tokenEqual(t1, t2 string) bool {
+       if len(t1) != len(t2) {
+               return false
+       }
+       for i, b := range t1 {
+               if b >= utf8.RuneSelf {
+                       // No UTF-8 or non-ASCII allowed in tokens.
+                       return false
+               }
+               if lowerASCII(byte(b)) != lowerASCII(t2[i]) {
+                       return false
+               }
+       }
+       return true
+}
+
+// isLWS reports whether b is linear white space, according
+// to http://www.w3.org/Protocols/rfc2616/rfc2616-sec2.html#sec2.2
+//      LWS            = [CRLF] 1*( SP | HT )
+func isLWS(b byte) bool { return b == ' ' || b == '\t' }
+
+// isCTL reports whether b is a control byte, according
+// to http://www.w3.org/Protocols/rfc2616/rfc2616-sec2.html#sec2.2
+//      CTL            = <any US-ASCII control character
+//                       (octets 0 - 31) and DEL (127)>
+func isCTL(b byte) bool {
+       const del = 0x7f // a CTL
+       return b < ' ' || b == del
+}
+
+// ValidHeaderFieldName reports whether v is a valid HTTP/1.x header name.
+// HTTP/2 imposes the additional restriction that uppercase ASCII
+// letters are not allowed.
+//
+//  RFC 7230 says:
+//   header-field   = field-name ":" OWS field-value OWS
+//   field-name     = token
+//   token          = 1*tchar
+//   tchar = "!" / "#" / "$" / "%" / "&" / "'" / "*" / "+" / "-" / "." /
+//           "^" / "_" / "`" / "|" / "~" / DIGIT / ALPHA
+func ValidHeaderFieldName(v string) bool {
+       if len(v) == 0 {
+               return false
+       }
+       for _, r := range v {
+               if !IsTokenRune(r) {
+                       return false
+               }
+       }
+       return true
+}
+
+// ValidHostHeader reports whether h is a valid host header.
+func ValidHostHeader(h string) bool {
+       // The latest spec is actually this:
+       //
+       // http://tools.ietf.org/html/rfc7230#section-5.4
+       //     Host = uri-host [ ":" port ]
+       //
+       // Where uri-host is:
+       //     http://tools.ietf.org/html/rfc3986#section-3.2.2
+       //
+       // But we're going to be much more lenient for now and just
+       // search for any byte that's not a valid byte in any of those
+       // expressions.
+       for i := 0; i < len(h); i++ {
+               if !validHostByte[h[i]] {
+                       return false
+               }
+       }
+       return true
+}
+
+// See the validHostHeader comment.
+var validHostByte = [256]bool{
+       '0': true, '1': true, '2': true, '3': true, '4': true, '5': true, '6': true, '7': true,
+       '8': true, '9': true,
+
+       'a': true, 'b': true, 'c': true, 'd': true, 'e': true, 'f': true, 'g': true, 'h': true,
+       'i': true, 'j': true, 'k': true, 'l': true, 'm': true, 'n': true, 'o': true, 'p': true,
+       'q': true, 'r': true, 's': true, 't': true, 'u': true, 'v': true, 'w': true, 'x': true,
+       'y': true, 'z': true,
+
+       'A': true, 'B': true, 'C': true, 'D': true, 'E': true, 'F': true, 'G': true, 'H': true,
+       'I': true, 'J': true, 'K': true, 'L': true, 'M': true, 'N': true, 'O': true, 'P': true,
+       'Q': true, 'R': true, 'S': true, 'T': true, 'U': true, 'V': true, 'W': true, 'X': true,
+       'Y': true, 'Z': true,
+
+       '!':  true, // sub-delims
+       '$':  true, // sub-delims
+       '%':  true, // pct-encoded (and used in IPv6 zones)
+       '&':  true, // sub-delims
+       '(':  true, // sub-delims
+       ')':  true, // sub-delims
+       '*':  true, // sub-delims
+       '+':  true, // sub-delims
+       ',':  true, // sub-delims
+       '-':  true, // unreserved
+       '.':  true, // unreserved
+       ':':  true, // IPv6address + Host expression's optional port
+       ';':  true, // sub-delims
+       '=':  true, // sub-delims
+       '[':  true,
+       '\'': true, // sub-delims
+       ']':  true,
+       '_':  true, // unreserved
+       '~':  true, // unreserved
+}
+
+// ValidHeaderFieldValue reports whether v is a valid "field-value" according to
+// http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.2 :
+//
+//        message-header = field-name ":" [ field-value ]
+//        field-value    = *( field-content | LWS )
+//        field-content  = <the OCTETs making up the field-value
+//                         and consisting of either *TEXT or combinations
+//                         of token, separators, and quoted-string>
+//
+// http://www.w3.org/Protocols/rfc2616/rfc2616-sec2.html#sec2.2 :
+//
+//        TEXT           = <any OCTET except CTLs,
+//                          but including LWS>
+//        LWS            = [CRLF] 1*( SP | HT )
+//        CTL            = <any US-ASCII control character
+//                         (octets 0 - 31) and DEL (127)>
+//
+// RFC 7230 says:
+//  field-value    = *( field-content / obs-fold )
+//  obj-fold       =  N/A to http2, and deprecated
+//  field-content  = field-vchar [ 1*( SP / HTAB ) field-vchar ]
+//  field-vchar    = VCHAR / obs-text
+//  obs-text       = %x80-FF
+//  VCHAR          = "any visible [USASCII] character"
+//
+// http2 further says: "Similarly, HTTP/2 allows header field values
+// that are not valid. While most of the values that can be encoded
+// will not alter header field parsing, carriage return (CR, ASCII
+// 0xd), line feed (LF, ASCII 0xa), and the zero character (NUL, ASCII
+// 0x0) might be exploited by an attacker if they are translated
+// verbatim. Any request or response that contains a character not
+// permitted in a header field value MUST be treated as malformed
+// (Section 8.1.2.6). Valid characters are defined by the
+// field-content ABNF rule in Section 3.2 of [RFC7230]."
+//
+// This function does not (yet?) properly handle the rejection of
+// strings that begin or end with SP or HTAB.
+func ValidHeaderFieldValue(v string) bool {
+       for i := 0; i < len(v); i++ {
+               b := v[i]
+               if isCTL(b) && !isLWS(b) {
+                       return false
+               }
+       }
+       return true
+}
+
+func isASCII(s string) bool {
+       for i := 0; i < len(s); i++ {
+               if s[i] >= utf8.RuneSelf {
+                       return false
+               }
+       }
+       return true
+}
+
+// PunycodeHostPort returns the IDNA Punycode version
+// of the provided "host" or "host:port" string.
+func PunycodeHostPort(v string) (string, error) {
+       if isASCII(v) {
+               return v, nil
+       }
+
+       host, port, err := net.SplitHostPort(v)
+       if err != nil {
+               // The input 'v' argument was just a "host" argument,
+               // without a port. This error should not be returned
+               // to the caller.
+               host = v
+               port = ""
+       }
+       host, err = idna.ToASCII(host)
+       if err != nil {
+               // Non-UTF-8? Not representable in Punycode, in any
+               // case.
+               return "", err
+       }
+       if port == "" {
+               return host, nil
+       }
+       return net.JoinHostPort(host, port), nil
+}
diff --git a/vendor/golang.org/x/net/http2/.gitignore b/vendor/golang.org/x/net/http2/.gitignore
new file mode 100644 (file)
index 0000000..190f122
--- /dev/null
@@ -0,0 +1,2 @@
+*~
+h2i/h2i
diff --git a/vendor/golang.org/x/net/http2/Dockerfile b/vendor/golang.org/x/net/http2/Dockerfile
new file mode 100644 (file)
index 0000000..53fc525
--- /dev/null
@@ -0,0 +1,51 @@
+#
+# This Dockerfile builds a recent curl with HTTP/2 client support, using
+# a recent nghttp2 build.
+#
+# See the Makefile for how to tag it. If Docker and that image is found, the
+# Go tests use this curl binary for integration tests.
+#
+
+FROM ubuntu:trusty
+
+RUN apt-get update && \
+    apt-get upgrade -y && \
+    apt-get install -y git-core build-essential wget
+
+RUN apt-get install -y --no-install-recommends \
+       autotools-dev libtool pkg-config zlib1g-dev \
+       libcunit1-dev libssl-dev libxml2-dev libevent-dev \
+       automake autoconf
+
+# The list of packages nghttp2 recommends for h2load:
+RUN apt-get install -y --no-install-recommends make binutils \
+        autoconf automake autotools-dev \
+        libtool pkg-config zlib1g-dev libcunit1-dev libssl-dev libxml2-dev \
+        libev-dev libevent-dev libjansson-dev libjemalloc-dev \
+        cython python3.4-dev python-setuptools
+
+# Note: setting NGHTTP2_VER before the git clone, so an old git clone isn't cached:
+ENV NGHTTP2_VER 895da9a
+RUN cd /root && git clone https://github.com/tatsuhiro-t/nghttp2.git
+
+WORKDIR /root/nghttp2
+RUN git reset --hard $NGHTTP2_VER
+RUN autoreconf -i
+RUN automake
+RUN autoconf
+RUN ./configure
+RUN make
+RUN make install
+
+WORKDIR /root
+RUN wget http://curl.haxx.se/download/curl-7.45.0.tar.gz
+RUN tar -zxvf curl-7.45.0.tar.gz
+WORKDIR /root/curl-7.45.0
+RUN ./configure --with-ssl --with-nghttp2=/usr/local
+RUN make
+RUN make install
+RUN ldconfig
+
+CMD ["-h"]
+ENTRYPOINT ["/usr/local/bin/curl"]
+
diff --git a/vendor/golang.org/x/net/http2/Makefile b/vendor/golang.org/x/net/http2/Makefile
new file mode 100644 (file)
index 0000000..55fd826
--- /dev/null
@@ -0,0 +1,3 @@
+curlimage:
+       docker build -t gohttp2/curl .
+
diff --git a/vendor/golang.org/x/net/http2/README b/vendor/golang.org/x/net/http2/README
new file mode 100644 (file)
index 0000000..360d5aa
--- /dev/null
@@ -0,0 +1,20 @@
+This is a work-in-progress HTTP/2 implementation for Go.
+
+It will eventually live in the Go standard library and won't require
+any changes to your code to use.  It will just be automatic.
+
+Status:
+
+* The server support is pretty good. A few things are missing
+  but are being worked on.
+* The client work has just started but shares a lot of code
+  is coming along much quicker.
+
+Docs are at https://godoc.org/golang.org/x/net/http2
+
+Demo test server at https://http2.golang.org/
+
+Help & bug reports welcome!
+
+Contributing: https://golang.org/doc/contribute.html
+Bugs:         https://golang.org/issue/new?title=x/net/http2:+
diff --git a/vendor/golang.org/x/net/http2/ciphers.go b/vendor/golang.org/x/net/http2/ciphers.go
new file mode 100644 (file)
index 0000000..c9a0cf3
--- /dev/null
@@ -0,0 +1,641 @@
+// Copyright 2017 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 http2
+
+// A list of the possible cipher suite ids. Taken from
+// https://www.iana.org/assignments/tls-parameters/tls-parameters.txt
+
+const (
+       cipher_TLS_NULL_WITH_NULL_NULL               uint16 = 0x0000
+       cipher_TLS_RSA_WITH_NULL_MD5                 uint16 = 0x0001
+       cipher_TLS_RSA_WITH_NULL_SHA                 uint16 = 0x0002
+       cipher_TLS_RSA_EXPORT_WITH_RC4_40_MD5        uint16 = 0x0003
+       cipher_TLS_RSA_WITH_RC4_128_MD5              uint16 = 0x0004
+       cipher_TLS_RSA_WITH_RC4_128_SHA              uint16 = 0x0005
+       cipher_TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5    uint16 = 0x0006
+       cipher_TLS_RSA_WITH_IDEA_CBC_SHA             uint16 = 0x0007
+       cipher_TLS_RSA_EXPORT_WITH_DES40_CBC_SHA     uint16 = 0x0008
+       cipher_TLS_RSA_WITH_DES_CBC_SHA              uint16 = 0x0009
+       cipher_TLS_RSA_WITH_3DES_EDE_CBC_SHA         uint16 = 0x000A
+       cipher_TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA  uint16 = 0x000B
+       cipher_TLS_DH_DSS_WITH_DES_CBC_SHA           uint16 = 0x000C
+       cipher_TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA      uint16 = 0x000D
+       cipher_TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA  uint16 = 0x000E
+       cipher_TLS_DH_RSA_WITH_DES_CBC_SHA           uint16 = 0x000F
+       cipher_TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA      uint16 = 0x0010
+       cipher_TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA uint16 = 0x0011
+       cipher_TLS_DHE_DSS_WITH_DES_CBC_SHA          uint16 = 0x0012
+       cipher_TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA     uint16 = 0x0013
+       cipher_TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA uint16 = 0x0014
+       cipher_TLS_DHE_RSA_WITH_DES_CBC_SHA          uint16 = 0x0015
+       cipher_TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA     uint16 = 0x0016
+       cipher_TLS_DH_anon_EXPORT_WITH_RC4_40_MD5    uint16 = 0x0017
+       cipher_TLS_DH_anon_WITH_RC4_128_MD5          uint16 = 0x0018
+       cipher_TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA uint16 = 0x0019
+       cipher_TLS_DH_anon_WITH_DES_CBC_SHA          uint16 = 0x001A
+       cipher_TLS_DH_anon_WITH_3DES_EDE_CBC_SHA     uint16 = 0x001B
+       // Reserved uint16 =  0x001C-1D
+       cipher_TLS_KRB5_WITH_DES_CBC_SHA             uint16 = 0x001E
+       cipher_TLS_KRB5_WITH_3DES_EDE_CBC_SHA        uint16 = 0x001F
+       cipher_TLS_KRB5_WITH_RC4_128_SHA             uint16 = 0x0020
+       cipher_TLS_KRB5_WITH_IDEA_CBC_SHA            uint16 = 0x0021
+       cipher_TLS_KRB5_WITH_DES_CBC_MD5             uint16 = 0x0022
+       cipher_TLS_KRB5_WITH_3DES_EDE_CBC_MD5        uint16 = 0x0023
+       cipher_TLS_KRB5_WITH_RC4_128_MD5             uint16 = 0x0024
+       cipher_TLS_KRB5_WITH_IDEA_CBC_MD5            uint16 = 0x0025
+       cipher_TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA   uint16 = 0x0026
+       cipher_TLS_KRB5_EXPORT_WITH_RC2_CBC_40_SHA   uint16 = 0x0027
+       cipher_TLS_KRB5_EXPORT_WITH_RC4_40_SHA       uint16 = 0x0028
+       cipher_TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5   uint16 = 0x0029
+       cipher_TLS_KRB5_EXPORT_WITH_RC2_CBC_40_MD5   uint16 = 0x002A
+       cipher_TLS_KRB5_EXPORT_WITH_RC4_40_MD5       uint16 = 0x002B
+       cipher_TLS_PSK_WITH_NULL_SHA                 uint16 = 0x002C
+       cipher_TLS_DHE_PSK_WITH_NULL_SHA             uint16 = 0x002D
+       cipher_TLS_RSA_PSK_WITH_NULL_SHA             uint16 = 0x002E
+       cipher_TLS_RSA_WITH_AES_128_CBC_SHA          uint16 = 0x002F
+       cipher_TLS_DH_DSS_WITH_AES_128_CBC_SHA       uint16 = 0x0030
+       cipher_TLS_DH_RSA_WITH_AES_128_CBC_SHA       uint16 = 0x0031
+       cipher_TLS_DHE_DSS_WITH_AES_128_CBC_SHA      uint16 = 0x0032
+       cipher_TLS_DHE_RSA_WITH_AES_128_CBC_SHA      uint16 = 0x0033
+       cipher_TLS_DH_anon_WITH_AES_128_CBC_SHA      uint16 = 0x0034
+       cipher_TLS_RSA_WITH_AES_256_CBC_SHA          uint16 = 0x0035
+       cipher_TLS_DH_DSS_WITH_AES_256_CBC_SHA       uint16 = 0x0036
+       cipher_TLS_DH_RSA_WITH_AES_256_CBC_SHA       uint16 = 0x0037
+       cipher_TLS_DHE_DSS_WITH_AES_256_CBC_SHA      uint16 = 0x0038
+       cipher_TLS_DHE_RSA_WITH_AES_256_CBC_SHA      uint16 = 0x0039
+       cipher_TLS_DH_anon_WITH_AES_256_CBC_SHA      uint16 = 0x003A
+       cipher_TLS_RSA_WITH_NULL_SHA256              uint16 = 0x003B
+       cipher_TLS_RSA_WITH_AES_128_CBC_SHA256       uint16 = 0x003C
+       cipher_TLS_RSA_WITH_AES_256_CBC_SHA256       uint16 = 0x003D
+       cipher_TLS_DH_DSS_WITH_AES_128_CBC_SHA256    uint16 = 0x003E
+       cipher_TLS_DH_RSA_WITH_AES_128_CBC_SHA256    uint16 = 0x003F
+       cipher_TLS_DHE_DSS_WITH_AES_128_CBC_SHA256   uint16 = 0x0040
+       cipher_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA     uint16 = 0x0041
+       cipher_TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA  uint16 = 0x0042
+       cipher_TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA  uint16 = 0x0043
+       cipher_TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA uint16 = 0x0044
+       cipher_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA uint16 = 0x0045
+       cipher_TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA uint16 = 0x0046
+       // Reserved uint16 =  0x0047-4F
+       // Reserved uint16 =  0x0050-58
+       // Reserved uint16 =  0x0059-5C
+       // Unassigned uint16 =  0x005D-5F
+       // Reserved uint16 =  0x0060-66
+       cipher_TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 uint16 = 0x0067
+       cipher_TLS_DH_DSS_WITH_AES_256_CBC_SHA256  uint16 = 0x0068
+       cipher_TLS_DH_RSA_WITH_AES_256_CBC_SHA256  uint16 = 0x0069
+       cipher_TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 uint16 = 0x006A
+       cipher_TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 uint16 = 0x006B
+       cipher_TLS_DH_anon_WITH_AES_128_CBC_SHA256 uint16 = 0x006C
+       cipher_TLS_DH_anon_WITH_AES_256_CBC_SHA256 uint16 = 0x006D
+       // Unassigned uint16 =  0x006E-83
+       cipher_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA        uint16 = 0x0084
+       cipher_TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA     uint16 = 0x0085
+       cipher_TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA     uint16 = 0x0086
+       cipher_TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA    uint16 = 0x0087
+       cipher_TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA    uint16 = 0x0088
+       cipher_TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA    uint16 = 0x0089
+       cipher_TLS_PSK_WITH_RC4_128_SHA                 uint16 = 0x008A
+       cipher_TLS_PSK_WITH_3DES_EDE_CBC_SHA            uint16 = 0x008B
+       cipher_TLS_PSK_WITH_AES_128_CBC_SHA             uint16 = 0x008C
+       cipher_TLS_PSK_WITH_AES_256_CBC_SHA             uint16 = 0x008D
+       cipher_TLS_DHE_PSK_WITH_RC4_128_SHA             uint16 = 0x008E
+       cipher_TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA        uint16 = 0x008F
+       cipher_TLS_DHE_PSK_WITH_AES_128_CBC_SHA         uint16 = 0x0090
+       cipher_TLS_DHE_PSK_WITH_AES_256_CBC_SHA         uint16 = 0x0091
+       cipher_TLS_RSA_PSK_WITH_RC4_128_SHA             uint16 = 0x0092
+       cipher_TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA        uint16 = 0x0093
+       cipher_TLS_RSA_PSK_WITH_AES_128_CBC_SHA         uint16 = 0x0094
+       cipher_TLS_RSA_PSK_WITH_AES_256_CBC_SHA         uint16 = 0x0095
+       cipher_TLS_RSA_WITH_SEED_CBC_SHA                uint16 = 0x0096
+       cipher_TLS_DH_DSS_WITH_SEED_CBC_SHA             uint16 = 0x0097
+       cipher_TLS_DH_RSA_WITH_SEED_CBC_SHA             uint16 = 0x0098
+       cipher_TLS_DHE_DSS_WITH_SEED_CBC_SHA            uint16 = 0x0099
+       cipher_TLS_DHE_RSA_WITH_SEED_CBC_SHA            uint16 = 0x009A
+       cipher_TLS_DH_anon_WITH_SEED_CBC_SHA            uint16 = 0x009B
+       cipher_TLS_RSA_WITH_AES_128_GCM_SHA256          uint16 = 0x009C
+       cipher_TLS_RSA_WITH_AES_256_GCM_SHA384          uint16 = 0x009D
+       cipher_TLS_DHE_RSA_WITH_AES_128_GCM_SHA256      uint16 = 0x009E
+       cipher_TLS_DHE_RSA_WITH_AES_256_GCM_SHA384      uint16 = 0x009F
+       cipher_TLS_DH_RSA_WITH_AES_128_GCM_SHA256       uint16 = 0x00A0
+       cipher_TLS_DH_RSA_WITH_AES_256_GCM_SHA384       uint16 = 0x00A1
+       cipher_TLS_DHE_DSS_WITH_AES_128_GCM_SHA256      uint16 = 0x00A2
+       cipher_TLS_DHE_DSS_WITH_AES_256_GCM_SHA384      uint16 = 0x00A3
+       cipher_TLS_DH_DSS_WITH_AES_128_GCM_SHA256       uint16 = 0x00A4
+       cipher_TLS_DH_DSS_WITH_AES_256_GCM_SHA384       uint16 = 0x00A5
+       cipher_TLS_DH_anon_WITH_AES_128_GCM_SHA256      uint16 = 0x00A6
+       cipher_TLS_DH_anon_WITH_AES_256_GCM_SHA384      uint16 = 0x00A7
+       cipher_TLS_PSK_WITH_AES_128_GCM_SHA256          uint16 = 0x00A8
+       cipher_TLS_PSK_WITH_AES_256_GCM_SHA384          uint16 = 0x00A9
+       cipher_TLS_DHE_PSK_WITH_AES_128_GCM_SHA256      uint16 = 0x00AA
+       cipher_TLS_DHE_PSK_WITH_AES_256_GCM_SHA384      uint16 = 0x00AB
+       cipher_TLS_RSA_PSK_WITH_AES_128_GCM_SHA256      uint16 = 0x00AC
+       cipher_TLS_RSA_PSK_WITH_AES_256_GCM_SHA384      uint16 = 0x00AD
+       cipher_TLS_PSK_WITH_AES_128_CBC_SHA256          uint16 = 0x00AE
+       cipher_TLS_PSK_WITH_AES_256_CBC_SHA384          uint16 = 0x00AF
+       cipher_TLS_PSK_WITH_NULL_SHA256                 uint16 = 0x00B0
+       cipher_TLS_PSK_WITH_NULL_SHA384                 uint16 = 0x00B1
+       cipher_TLS_DHE_PSK_WITH_AES_128_CBC_SHA256      uint16 = 0x00B2
+       cipher_TLS_DHE_PSK_WITH_AES_256_CBC_SHA384      uint16 = 0x00B3
+       cipher_TLS_DHE_PSK_WITH_NULL_SHA256             uint16 = 0x00B4
+       cipher_TLS_DHE_PSK_WITH_NULL_SHA384             uint16 = 0x00B5
+       cipher_TLS_RSA_PSK_WITH_AES_128_CBC_SHA256      uint16 = 0x00B6
+       cipher_TLS_RSA_PSK_WITH_AES_256_CBC_SHA384      uint16 = 0x00B7
+       cipher_TLS_RSA_PSK_WITH_NULL_SHA256             uint16 = 0x00B8
+       cipher_TLS_RSA_PSK_WITH_NULL_SHA384             uint16 = 0x00B9
+       cipher_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256     uint16 = 0x00BA
+       cipher_TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256  uint16 = 0x00BB
+       cipher_TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256  uint16 = 0x00BC
+       cipher_TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256 uint16 = 0x00BD
+       cipher_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 uint16 = 0x00BE
+       cipher_TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA256 uint16 = 0x00BF
+       cipher_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256     uint16 = 0x00C0
+       cipher_TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256  uint16 = 0x00C1
+       cipher_TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256  uint16 = 0x00C2
+       cipher_TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256 uint16 = 0x00C3
+       cipher_TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256 uint16 = 0x00C4
+       cipher_TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA256 uint16 = 0x00C5
+       // Unassigned uint16 =  0x00C6-FE
+       cipher_TLS_EMPTY_RENEGOTIATION_INFO_SCSV uint16 = 0x00FF
+       // Unassigned uint16 =  0x01-55,*
+       cipher_TLS_FALLBACK_SCSV uint16 = 0x5600
+       // Unassigned                                   uint16 = 0x5601 - 0xC000
+       cipher_TLS_ECDH_ECDSA_WITH_NULL_SHA                 uint16 = 0xC001
+       cipher_TLS_ECDH_ECDSA_WITH_RC4_128_SHA              uint16 = 0xC002
+       cipher_TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA         uint16 = 0xC003
+       cipher_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA          uint16 = 0xC004
+       cipher_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA          uint16 = 0xC005
+       cipher_TLS_ECDHE_ECDSA_WITH_NULL_SHA                uint16 = 0xC006
+       cipher_TLS_ECDHE_ECDSA_WITH_RC4_128_SHA             uint16 = 0xC007
+       cipher_TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA        uint16 = 0xC008
+       cipher_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA         uint16 = 0xC009
+       cipher_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA         uint16 = 0xC00A
+       cipher_TLS_ECDH_RSA_WITH_NULL_SHA                   uint16 = 0xC00B
+       cipher_TLS_ECDH_RSA_WITH_RC4_128_SHA                uint16 = 0xC00C
+       cipher_TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA           uint16 = 0xC00D
+       cipher_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA            uint16 = 0xC00E
+       cipher_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA            uint16 = 0xC00F
+       cipher_TLS_ECDHE_RSA_WITH_NULL_SHA                  uint16 = 0xC010
+       cipher_TLS_ECDHE_RSA_WITH_RC4_128_SHA               uint16 = 0xC011
+       cipher_TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA          uint16 = 0xC012
+       cipher_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA           uint16 = 0xC013
+       cipher_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA           uint16 = 0xC014
+       cipher_TLS_ECDH_anon_WITH_NULL_SHA                  uint16 = 0xC015
+       cipher_TLS_ECDH_anon_WITH_RC4_128_SHA               uint16 = 0xC016
+       cipher_TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA          uint16 = 0xC017
+       cipher_TLS_ECDH_anon_WITH_AES_128_CBC_SHA           uint16 = 0xC018
+       cipher_TLS_ECDH_anon_WITH_AES_256_CBC_SHA           uint16 = 0xC019
+       cipher_TLS_SRP_SHA_WITH_3DES_EDE_CBC_SHA            uint16 = 0xC01A
+       cipher_TLS_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA        uint16 = 0xC01B
+       cipher_TLS_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA        uint16 = 0xC01C
+       cipher_TLS_SRP_SHA_WITH_AES_128_CBC_SHA             uint16 = 0xC01D
+       cipher_TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA         uint16 = 0xC01E
+       cipher_TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA         uint16 = 0xC01F
+       cipher_TLS_SRP_SHA_WITH_AES_256_CBC_SHA             uint16 = 0xC020
+       cipher_TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA         uint16 = 0xC021
+       cipher_TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA         uint16 = 0xC022
+       cipher_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256      uint16 = 0xC023
+       cipher_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384      uint16 = 0xC024
+       cipher_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256       uint16 = 0xC025
+       cipher_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384       uint16 = 0xC026
+       cipher_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256        uint16 = 0xC027
+       cipher_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384        uint16 = 0xC028
+       cipher_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256         uint16 = 0xC029
+       cipher_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384         uint16 = 0xC02A
+       cipher_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256      uint16 = 0xC02B
+       cipher_TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384      uint16 = 0xC02C
+       cipher_TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256       uint16 = 0xC02D
+       cipher_TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384       uint16 = 0xC02E
+       cipher_TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256        uint16 = 0xC02F
+       cipher_TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384        uint16 = 0xC030
+       cipher_TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256         uint16 = 0xC031
+       cipher_TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384         uint16 = 0xC032
+       cipher_TLS_ECDHE_PSK_WITH_RC4_128_SHA               uint16 = 0xC033
+       cipher_TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA          uint16 = 0xC034
+       cipher_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA           uint16 = 0xC035
+       cipher_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA           uint16 = 0xC036
+       cipher_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256        uint16 = 0xC037
+       cipher_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384        uint16 = 0xC038
+       cipher_TLS_ECDHE_PSK_WITH_NULL_SHA                  uint16 = 0xC039
+       cipher_TLS_ECDHE_PSK_WITH_NULL_SHA256               uint16 = 0xC03A
+       cipher_TLS_ECDHE_PSK_WITH_NULL_SHA384               uint16 = 0xC03B
+       cipher_TLS_RSA_WITH_ARIA_128_CBC_SHA256             uint16 = 0xC03C
+       cipher_TLS_RSA_WITH_ARIA_256_CBC_SHA384             uint16 = 0xC03D
+       cipher_TLS_DH_DSS_WITH_ARIA_128_CBC_SHA256          uint16 = 0xC03E
+       cipher_TLS_DH_DSS_WITH_ARIA_256_CBC_SHA384          uint16 = 0xC03F
+       cipher_TLS_DH_RSA_WITH_ARIA_128_CBC_SHA256          uint16 = 0xC040
+       cipher_TLS_DH_RSA_WITH_ARIA_256_CBC_SHA384          uint16 = 0xC041
+       cipher_TLS_DHE_DSS_WITH_ARIA_128_CBC_SHA256         uint16 = 0xC042
+       cipher_TLS_DHE_DSS_WITH_ARIA_256_CBC_SHA384         uint16 = 0xC043
+       cipher_TLS_DHE_RSA_WITH_ARIA_128_CBC_SHA256         uint16 = 0xC044
+       cipher_TLS_DHE_RSA_WITH_ARIA_256_CBC_SHA384         uint16 = 0xC045
+       cipher_TLS_DH_anon_WITH_ARIA_128_CBC_SHA256         uint16 = 0xC046
+       cipher_TLS_DH_anon_WITH_ARIA_256_CBC_SHA384         uint16 = 0xC047
+       cipher_TLS_ECDHE_ECDSA_WITH_ARIA_128_CBC_SHA256     uint16 = 0xC048
+       cipher_TLS_ECDHE_ECDSA_WITH_ARIA_256_CBC_SHA384     uint16 = 0xC049
+       cipher_TLS_ECDH_ECDSA_WITH_ARIA_128_CBC_SHA256      uint16 = 0xC04A
+       cipher_TLS_ECDH_ECDSA_WITH_ARIA_256_CBC_SHA384      uint16 = 0xC04B
+       cipher_TLS_ECDHE_RSA_WITH_ARIA_128_CBC_SHA256       uint16 = 0xC04C
+       cipher_TLS_ECDHE_RSA_WITH_ARIA_256_CBC_SHA384       uint16 = 0xC04D
+       cipher_TLS_ECDH_RSA_WITH_ARIA_128_CBC_SHA256        uint16 = 0xC04E
+       cipher_TLS_ECDH_RSA_WITH_ARIA_256_CBC_SHA384        uint16 = 0xC04F
+       cipher_TLS_RSA_WITH_ARIA_128_GCM_SHA256             uint16 = 0xC050
+       cipher_TLS_RSA_WITH_ARIA_256_GCM_SHA384             uint16 = 0xC051
+       cipher_TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256         uint16 = 0xC052
+       cipher_TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384         uint16 = 0xC053
+       cipher_TLS_DH_RSA_WITH_ARIA_128_GCM_SHA256          uint16 = 0xC054
+       cipher_TLS_DH_RSA_WITH_ARIA_256_GCM_SHA384          uint16 = 0xC055
+       cipher_TLS_DHE_DSS_WITH_ARIA_128_GCM_SHA256         uint16 = 0xC056
+       cipher_TLS_DHE_DSS_WITH_ARIA_256_GCM_SHA384         uint16 = 0xC057
+       cipher_TLS_DH_DSS_WITH_ARIA_128_GCM_SHA256          uint16 = 0xC058
+       cipher_TLS_DH_DSS_WITH_ARIA_256_GCM_SHA384          uint16 = 0xC059
+       cipher_TLS_DH_anon_WITH_ARIA_128_GCM_SHA256         uint16 = 0xC05A
+       cipher_TLS_DH_anon_WITH_ARIA_256_GCM_SHA384         uint16 = 0xC05B
+       cipher_TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256     uint16 = 0xC05C
+       cipher_TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384     uint16 = 0xC05D
+       cipher_TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256      uint16 = 0xC05E
+       cipher_TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384      uint16 = 0xC05F
+       cipher_TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256       uint16 = 0xC060
+       cipher_TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384       uint16 = 0xC061
+       cipher_TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256        uint16 = 0xC062
+       cipher_TLS_ECDH_RSA_WITH_ARIA_256_GCM_SHA384        uint16 = 0xC063
+       cipher_TLS_PSK_WITH_ARIA_128_CBC_SHA256             uint16 = 0xC064
+       cipher_TLS_PSK_WITH_ARIA_256_CBC_SHA384             uint16 = 0xC065
+       cipher_TLS_DHE_PSK_WITH_ARIA_128_CBC_SHA256         uint16 = 0xC066
+       cipher_TLS_DHE_PSK_WITH_ARIA_256_CBC_SHA384         uint16 = 0xC067
+       cipher_TLS_RSA_PSK_WITH_ARIA_128_CBC_SHA256         uint16 = 0xC068
+       cipher_TLS_RSA_PSK_WITH_ARIA_256_CBC_SHA384         uint16 = 0xC069
+       cipher_TLS_PSK_WITH_ARIA_128_GCM_SHA256             uint16 = 0xC06A
+       cipher_TLS_PSK_WITH_ARIA_256_GCM_SHA384             uint16 = 0xC06B
+       cipher_TLS_DHE_PSK_WITH_ARIA_128_GCM_SHA256         uint16 = 0xC06C
+       cipher_TLS_DHE_PSK_WITH_ARIA_256_GCM_SHA384         uint16 = 0xC06D
+       cipher_TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256         uint16 = 0xC06E
+       cipher_TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384         uint16 = 0xC06F
+       cipher_TLS_ECDHE_PSK_WITH_ARIA_128_CBC_SHA256       uint16 = 0xC070
+       cipher_TLS_ECDHE_PSK_WITH_ARIA_256_CBC_SHA384       uint16 = 0xC071
+       cipher_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 uint16 = 0xC072
+       cipher_TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 uint16 = 0xC073
+       cipher_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256  uint16 = 0xC074
+       cipher_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384  uint16 = 0xC075
+       cipher_TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256   uint16 = 0xC076
+       cipher_TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384   uint16 = 0xC077
+       cipher_TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256    uint16 = 0xC078
+       cipher_TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384    uint16 = 0xC079
+       cipher_TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256         uint16 = 0xC07A
+       cipher_TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384         uint16 = 0xC07B
+       cipher_TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256     uint16 = 0xC07C
+       cipher_TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384     uint16 = 0xC07D
+       cipher_TLS_DH_RSA_WITH_CAMELLIA_128_GCM_SHA256      uint16 = 0xC07E
+       cipher_TLS_DH_RSA_WITH_CAMELLIA_256_GCM_SHA384      uint16 = 0xC07F
+       cipher_TLS_DHE_DSS_WITH_CAMELLIA_128_GCM_SHA256     uint16 = 0xC080
+       cipher_TLS_DHE_DSS_WITH_CAMELLIA_256_GCM_SHA384     uint16 = 0xC081
+       cipher_TLS_DH_DSS_WITH_CAMELLIA_128_GCM_SHA256      uint16 = 0xC082
+       cipher_TLS_DH_DSS_WITH_CAMELLIA_256_GCM_SHA384      uint16 = 0xC083
+       cipher_TLS_DH_anon_WITH_CAMELLIA_128_GCM_SHA256     uint16 = 0xC084
+       cipher_TLS_DH_anon_WITH_CAMELLIA_256_GCM_SHA384     uint16 = 0xC085
+       cipher_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256 uint16 = 0xC086
+       cipher_TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384 uint16 = 0xC087
+       cipher_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256  uint16 = 0xC088
+       cipher_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384  uint16 = 0xC089
+       cipher_TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256   uint16 = 0xC08A
+       cipher_TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384   uint16 = 0xC08B
+       cipher_TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256    uint16 = 0xC08C
+       cipher_TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384    uint16 = 0xC08D
+       cipher_TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256         uint16 = 0xC08E
+       cipher_TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384         uint16 = 0xC08F
+       cipher_TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256     uint16 = 0xC090
+       cipher_TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384     uint16 = 0xC091
+       cipher_TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256     uint16 = 0xC092
+       cipher_TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384     uint16 = 0xC093
+       cipher_TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256         uint16 = 0xC094
+       cipher_TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384         uint16 = 0xC095
+       cipher_TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256     uint16 = 0xC096
+       cipher_TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384     uint16 = 0xC097
+       cipher_TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256     uint16 = 0xC098
+       cipher_TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384     uint16 = 0xC099
+       cipher_TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256   uint16 = 0xC09A
+       cipher_TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384   uint16 = 0xC09B
+       cipher_TLS_RSA_WITH_AES_128_CCM                     uint16 = 0xC09C
+       cipher_TLS_RSA_WITH_AES_256_CCM                     uint16 = 0xC09D
+       cipher_TLS_DHE_RSA_WITH_AES_128_CCM                 uint16 = 0xC09E
+       cipher_TLS_DHE_RSA_WITH_AES_256_CCM                 uint16 = 0xC09F
+       cipher_TLS_RSA_WITH_AES_128_CCM_8                   uint16 = 0xC0A0
+       cipher_TLS_RSA_WITH_AES_256_CCM_8                   uint16 = 0xC0A1
+       cipher_TLS_DHE_RSA_WITH_AES_128_CCM_8               uint16 = 0xC0A2
+       cipher_TLS_DHE_RSA_WITH_AES_256_CCM_8               uint16 = 0xC0A3
+       cipher_TLS_PSK_WITH_AES_128_CCM                     uint16 = 0xC0A4
+       cipher_TLS_PSK_WITH_AES_256_CCM                     uint16 = 0xC0A5
+       cipher_TLS_DHE_PSK_WITH_AES_128_CCM                 uint16 = 0xC0A6
+       cipher_TLS_DHE_PSK_WITH_AES_256_CCM                 uint16 = 0xC0A7
+       cipher_TLS_PSK_WITH_AES_128_CCM_8                   uint16 = 0xC0A8
+       cipher_TLS_PSK_WITH_AES_256_CCM_8                   uint16 = 0xC0A9
+       cipher_TLS_PSK_DHE_WITH_AES_128_CCM_8               uint16 = 0xC0AA
+       cipher_TLS_PSK_DHE_WITH_AES_256_CCM_8               uint16 = 0xC0AB
+       cipher_TLS_ECDHE_ECDSA_WITH_AES_128_CCM             uint16 = 0xC0AC
+       cipher_TLS_ECDHE_ECDSA_WITH_AES_256_CCM             uint16 = 0xC0AD
+       cipher_TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8           uint16 = 0xC0AE
+       cipher_TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8           uint16 = 0xC0AF
+       // Unassigned uint16 =  0xC0B0-FF
+       // Unassigned uint16 =  0xC1-CB,*
+       // Unassigned uint16 =  0xCC00-A7
+       cipher_TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256   uint16 = 0xCCA8
+       cipher_TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 uint16 = 0xCCA9
+       cipher_TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256     uint16 = 0xCCAA
+       cipher_TLS_PSK_WITH_CHACHA20_POLY1305_SHA256         uint16 = 0xCCAB
+       cipher_TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256   uint16 = 0xCCAC
+       cipher_TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256     uint16 = 0xCCAD
+       cipher_TLS_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256     uint16 = 0xCCAE
+)
+
+// isBadCipher reports whether the cipher is blacklisted by the HTTP/2 spec.
+// References:
+// https://tools.ietf.org/html/rfc7540#appendix-A
+// Reject cipher suites from Appendix A.
+// "This list includes those cipher suites that do not
+// offer an ephemeral key exchange and those that are
+// based on the TLS null, stream or block cipher type"
+func isBadCipher(cipher uint16) bool {
+       switch cipher {
+       case cipher_TLS_NULL_WITH_NULL_NULL,
+               cipher_TLS_RSA_WITH_NULL_MD5,
+               cipher_TLS_RSA_WITH_NULL_SHA,
+               cipher_TLS_RSA_EXPORT_WITH_RC4_40_MD5,
+               cipher_TLS_RSA_WITH_RC4_128_MD5,
+               cipher_TLS_RSA_WITH_RC4_128_SHA,
+               cipher_TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5,
+               cipher_TLS_RSA_WITH_IDEA_CBC_SHA,
+               cipher_TLS_RSA_EXPORT_WITH_DES40_CBC_SHA,
+               cipher_TLS_RSA_WITH_DES_CBC_SHA,
+               cipher_TLS_RSA_WITH_3DES_EDE_CBC_SHA,
+               cipher_TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA,
+               cipher_TLS_DH_DSS_WITH_DES_CBC_SHA,
+               cipher_TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA,
+               cipher_TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA,
+               cipher_TLS_DH_RSA_WITH_DES_CBC_SHA,
+               cipher_TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA,
+               cipher_TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA,
+               cipher_TLS_DHE_DSS_WITH_DES_CBC_SHA,
+               cipher_TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA,
+               cipher_TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA,
+               cipher_TLS_DHE_RSA_WITH_DES_CBC_SHA,
+               cipher_TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA,
+               cipher_TLS_DH_anon_EXPORT_WITH_RC4_40_MD5,
+               cipher_TLS_DH_anon_WITH_RC4_128_MD5,
+               cipher_TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA,
+               cipher_TLS_DH_anon_WITH_DES_CBC_SHA,
+               cipher_TLS_DH_anon_WITH_3DES_EDE_CBC_SHA,
+               cipher_TLS_KRB5_WITH_DES_CBC_SHA,
+               cipher_TLS_KRB5_WITH_3DES_EDE_CBC_SHA,
+               cipher_TLS_KRB5_WITH_RC4_128_SHA,
+               cipher_TLS_KRB5_WITH_IDEA_CBC_SHA,
+               cipher_TLS_KRB5_WITH_DES_CBC_MD5,
+               cipher_TLS_KRB5_WITH_3DES_EDE_CBC_MD5,
+               cipher_TLS_KRB5_WITH_RC4_128_MD5,
+               cipher_TLS_KRB5_WITH_IDEA_CBC_MD5,
+               cipher_TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA,
+               cipher_TLS_KRB5_EXPORT_WITH_RC2_CBC_40_SHA,
+               cipher_TLS_KRB5_EXPORT_WITH_RC4_40_SHA,
+               cipher_TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5,
+               cipher_TLS_KRB5_EXPORT_WITH_RC2_CBC_40_MD5,
+               cipher_TLS_KRB5_EXPORT_WITH_RC4_40_MD5,
+               cipher_TLS_PSK_WITH_NULL_SHA,
+               cipher_TLS_DHE_PSK_WITH_NULL_SHA,
+               cipher_TLS_RSA_PSK_WITH_NULL_SHA,
+               cipher_TLS_RSA_WITH_AES_128_CBC_SHA,
+               cipher_TLS_DH_DSS_WITH_AES_128_CBC_SHA,
+               cipher_TLS_DH_RSA_WITH_AES_128_CBC_SHA,
+               cipher_TLS_DHE_DSS_WITH_AES_128_CBC_SHA,
+               cipher_TLS_DHE_RSA_WITH_AES_128_CBC_SHA,
+               cipher_TLS_DH_anon_WITH_AES_128_CBC_SHA,
+               cipher_TLS_RSA_WITH_AES_256_CBC_SHA,
+               cipher_TLS_DH_DSS_WITH_AES_256_CBC_SHA,
+               cipher_TLS_DH_RSA_WITH_AES_256_CBC_SHA,
+               cipher_TLS_DHE_DSS_WITH_AES_256_CBC_SHA,
+               cipher_TLS_DHE_RSA_WITH_AES_256_CBC_SHA,
+               cipher_TLS_DH_anon_WITH_AES_256_CBC_SHA,
+               cipher_TLS_RSA_WITH_NULL_SHA256,
+               cipher_TLS_RSA_WITH_AES_128_CBC_SHA256,
+               cipher_TLS_RSA_WITH_AES_256_CBC_SHA256,
+               cipher_TLS_DH_DSS_WITH_AES_128_CBC_SHA256,
+               cipher_TLS_DH_RSA_WITH_AES_128_CBC_SHA256,
+               cipher_TLS_DHE_DSS_WITH_AES_128_CBC_SHA256,
+               cipher_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA,
+               cipher_TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA,
+               cipher_TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA,
+               cipher_TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA,
+               cipher_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA,
+               cipher_TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA,
+               cipher_TLS_DHE_RSA_WITH_AES_128_CBC_SHA256,
+               cipher_TLS_DH_DSS_WITH_AES_256_CBC_SHA256,
+               cipher_TLS_DH_RSA_WITH_AES_256_CBC_SHA256,
+               cipher_TLS_DHE_DSS_WITH_AES_256_CBC_SHA256,
+               cipher_TLS_DHE_RSA_WITH_AES_256_CBC_SHA256,
+               cipher_TLS_DH_anon_WITH_AES_128_CBC_SHA256,
+               cipher_TLS_DH_anon_WITH_AES_256_CBC_SHA256,
+               cipher_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA,
+               cipher_TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA,
+               cipher_TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA,
+               cipher_TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA,
+               cipher_TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA,
+               cipher_TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA,
+               cipher_TLS_PSK_WITH_RC4_128_SHA,
+               cipher_TLS_PSK_WITH_3DES_EDE_CBC_SHA,
+               cipher_TLS_PSK_WITH_AES_128_CBC_SHA,
+               cipher_TLS_PSK_WITH_AES_256_CBC_SHA,
+               cipher_TLS_DHE_PSK_WITH_RC4_128_SHA,
+               cipher_TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA,
+               cipher_TLS_DHE_PSK_WITH_AES_128_CBC_SHA,
+               cipher_TLS_DHE_PSK_WITH_AES_256_CBC_SHA,
+               cipher_TLS_RSA_PSK_WITH_RC4_128_SHA,
+               cipher_TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA,
+               cipher_TLS_RSA_PSK_WITH_AES_128_CBC_SHA,
+               cipher_TLS_RSA_PSK_WITH_AES_256_CBC_SHA,
+               cipher_TLS_RSA_WITH_SEED_CBC_SHA,
+               cipher_TLS_DH_DSS_WITH_SEED_CBC_SHA,
+               cipher_TLS_DH_RSA_WITH_SEED_CBC_SHA,
+               cipher_TLS_DHE_DSS_WITH_SEED_CBC_SHA,
+               cipher_TLS_DHE_RSA_WITH_SEED_CBC_SHA,
+               cipher_TLS_DH_anon_WITH_SEED_CBC_SHA,
+               cipher_TLS_RSA_WITH_AES_128_GCM_SHA256,
+               cipher_TLS_RSA_WITH_AES_256_GCM_SHA384,
+               cipher_TLS_DH_RSA_WITH_AES_128_GCM_SHA256,
+               cipher_TLS_DH_RSA_WITH_AES_256_GCM_SHA384,
+               cipher_TLS_DH_DSS_WITH_AES_128_GCM_SHA256,
+               cipher_TLS_DH_DSS_WITH_AES_256_GCM_SHA384,
+               cipher_TLS_DH_anon_WITH_AES_128_GCM_SHA256,
+               cipher_TLS_DH_anon_WITH_AES_256_GCM_SHA384,
+               cipher_TLS_PSK_WITH_AES_128_GCM_SHA256,
+               cipher_TLS_PSK_WITH_AES_256_GCM_SHA384,
+               cipher_TLS_RSA_PSK_WITH_AES_128_GCM_SHA256,
+               cipher_TLS_RSA_PSK_WITH_AES_256_GCM_SHA384,
+               cipher_TLS_PSK_WITH_AES_128_CBC_SHA256,
+               cipher_TLS_PSK_WITH_AES_256_CBC_SHA384,
+               cipher_TLS_PSK_WITH_NULL_SHA256,
+               cipher_TLS_PSK_WITH_NULL_SHA384,
+               cipher_TLS_DHE_PSK_WITH_AES_128_CBC_SHA256,
+               cipher_TLS_DHE_PSK_WITH_AES_256_CBC_SHA384,
+               cipher_TLS_DHE_PSK_WITH_NULL_SHA256,
+               cipher_TLS_DHE_PSK_WITH_NULL_SHA384,
+               cipher_TLS_RSA_PSK_WITH_AES_128_CBC_SHA256,
+               cipher_TLS_RSA_PSK_WITH_AES_256_CBC_SHA384,
+               cipher_TLS_RSA_PSK_WITH_NULL_SHA256,
+               cipher_TLS_RSA_PSK_WITH_NULL_SHA384,
+               cipher_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256,
+               cipher_TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256,
+               cipher_TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256,
+               cipher_TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256,
+               cipher_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256,
+               cipher_TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA256,
+               cipher_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256,
+               cipher_TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256,
+               cipher_TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256,
+               cipher_TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256,
+               cipher_TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256,
+               cipher_TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA256,
+               cipher_TLS_EMPTY_RENEGOTIATION_INFO_SCSV,
+               cipher_TLS_ECDH_ECDSA_WITH_NULL_SHA,
+               cipher_TLS_ECDH_ECDSA_WITH_RC4_128_SHA,
+               cipher_TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA,
+               cipher_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA,
+               cipher_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA,
+               cipher_TLS_ECDHE_ECDSA_WITH_NULL_SHA,
+               cipher_TLS_ECDHE_ECDSA_WITH_RC4_128_SHA,
+               cipher_TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA,
+               cipher_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,
+               cipher_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,
+               cipher_TLS_ECDH_RSA_WITH_NULL_SHA,
+               cipher_TLS_ECDH_RSA_WITH_RC4_128_SHA,
+               cipher_TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA,
+               cipher_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA,
+               cipher_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA,
+               cipher_TLS_ECDHE_RSA_WITH_NULL_SHA,
+               cipher_TLS_ECDHE_RSA_WITH_RC4_128_SHA,
+               cipher_TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA,
+               cipher_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,
+               cipher_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,
+               cipher_TLS_ECDH_anon_WITH_NULL_SHA,
+               cipher_TLS_ECDH_anon_WITH_RC4_128_SHA,
+               cipher_TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA,
+               cipher_TLS_ECDH_anon_WITH_AES_128_CBC_SHA,
+               cipher_TLS_ECDH_anon_WITH_AES_256_CBC_SHA,
+               cipher_TLS_SRP_SHA_WITH_3DES_EDE_CBC_SHA,
+               cipher_TLS_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA,
+               cipher_TLS_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA,
+               cipher_TLS_SRP_SHA_WITH_AES_128_CBC_SHA,
+               cipher_TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA,
+               cipher_TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA,
+               cipher_TLS_SRP_SHA_WITH_AES_256_CBC_SHA,
+               cipher_TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA,
+               cipher_TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA,
+               cipher_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,
+               cipher_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,
+               cipher_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256,
+               cipher_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384,
+               cipher_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,
+               cipher_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,
+               cipher_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256,
+               cipher_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384,
+               cipher_TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256,
+               cipher_TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384,
+               cipher_TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256,
+               cipher_TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384,
+               cipher_TLS_ECDHE_PSK_WITH_RC4_128_SHA,
+               cipher_TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA,
+               cipher_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA,
+               cipher_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA,
+               cipher_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256,
+               cipher_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384,
+               cipher_TLS_ECDHE_PSK_WITH_NULL_SHA,
+               cipher_TLS_ECDHE_PSK_WITH_NULL_SHA256,
+               cipher_TLS_ECDHE_PSK_WITH_NULL_SHA384,
+               cipher_TLS_RSA_WITH_ARIA_128_CBC_SHA256,
+               cipher_TLS_RSA_WITH_ARIA_256_CBC_SHA384,
+               cipher_TLS_DH_DSS_WITH_ARIA_128_CBC_SHA256,
+               cipher_TLS_DH_DSS_WITH_ARIA_256_CBC_SHA384,
+               cipher_TLS_DH_RSA_WITH_ARIA_128_CBC_SHA256,
+               cipher_TLS_DH_RSA_WITH_ARIA_256_CBC_SHA384,
+               cipher_TLS_DHE_DSS_WITH_ARIA_128_CBC_SHA256,
+               cipher_TLS_DHE_DSS_WITH_ARIA_256_CBC_SHA384,
+               cipher_TLS_DHE_RSA_WITH_ARIA_128_CBC_SHA256,
+               cipher_TLS_DHE_RSA_WITH_ARIA_256_CBC_SHA384,
+               cipher_TLS_DH_anon_WITH_ARIA_128_CBC_SHA256,
+               cipher_TLS_DH_anon_WITH_ARIA_256_CBC_SHA384,
+               cipher_TLS_ECDHE_ECDSA_WITH_ARIA_128_CBC_SHA256,
+               cipher_TLS_ECDHE_ECDSA_WITH_ARIA_256_CBC_SHA384,
+               cipher_TLS_ECDH_ECDSA_WITH_ARIA_128_CBC_SHA256,
+               cipher_TLS_ECDH_ECDSA_WITH_ARIA_256_CBC_SHA384,
+               cipher_TLS_ECDHE_RSA_WITH_ARIA_128_CBC_SHA256,
+               cipher_TLS_ECDHE_RSA_WITH_ARIA_256_CBC_SHA384,
+               cipher_TLS_ECDH_RSA_WITH_ARIA_128_CBC_SHA256,
+               cipher_TLS_ECDH_RSA_WITH_ARIA_256_CBC_SHA384,
+               cipher_TLS_RSA_WITH_ARIA_128_GCM_SHA256,
+               cipher_TLS_RSA_WITH_ARIA_256_GCM_SHA384,
+               cipher_TLS_DH_RSA_WITH_ARIA_128_GCM_SHA256,
+               cipher_TLS_DH_RSA_WITH_ARIA_256_GCM_SHA384,
+               cipher_TLS_DH_DSS_WITH_ARIA_128_GCM_SHA256,
+               cipher_TLS_DH_DSS_WITH_ARIA_256_GCM_SHA384,
+               cipher_TLS_DH_anon_WITH_ARIA_128_GCM_SHA256,
+               cipher_TLS_DH_anon_WITH_ARIA_256_GCM_SHA384,
+               cipher_TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256,
+               cipher_TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384,
+               cipher_TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256,
+               cipher_TLS_ECDH_RSA_WITH_ARIA_256_GCM_SHA384,
+               cipher_TLS_PSK_WITH_ARIA_128_CBC_SHA256,
+               cipher_TLS_PSK_WITH_ARIA_256_CBC_SHA384,
+               cipher_TLS_DHE_PSK_WITH_ARIA_128_CBC_SHA256,
+               cipher_TLS_DHE_PSK_WITH_ARIA_256_CBC_SHA384,
+               cipher_TLS_RSA_PSK_WITH_ARIA_128_CBC_SHA256,
+               cipher_TLS_RSA_PSK_WITH_ARIA_256_CBC_SHA384,
+               cipher_TLS_PSK_WITH_ARIA_128_GCM_SHA256,
+               cipher_TLS_PSK_WITH_ARIA_256_GCM_SHA384,
+               cipher_TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256,
+               cipher_TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384,
+               cipher_TLS_ECDHE_PSK_WITH_ARIA_128_CBC_SHA256,
+               cipher_TLS_ECDHE_PSK_WITH_ARIA_256_CBC_SHA384,
+               cipher_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256,
+               cipher_TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384,
+               cipher_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256,
+               cipher_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384,
+               cipher_TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256,
+               cipher_TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384,
+               cipher_TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256,
+               cipher_TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384,
+               cipher_TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256,
+               cipher_TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384,
+               cipher_TLS_DH_RSA_WITH_CAMELLIA_128_GCM_SHA256,
+               cipher_TLS_DH_RSA_WITH_CAMELLIA_256_GCM_SHA384,
+               cipher_TLS_DH_DSS_WITH_CAMELLIA_128_GCM_SHA256,
+               cipher_TLS_DH_DSS_WITH_CAMELLIA_256_GCM_SHA384,
+               cipher_TLS_DH_anon_WITH_CAMELLIA_128_GCM_SHA256,
+               cipher_TLS_DH_anon_WITH_CAMELLIA_256_GCM_SHA384,
+               cipher_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256,
+               cipher_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384,
+               cipher_TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256,
+               cipher_TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384,
+               cipher_TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256,
+               cipher_TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384,
+               cipher_TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256,
+               cipher_TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384,
+               cipher_TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256,
+               cipher_TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384,
+               cipher_TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256,
+               cipher_TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384,
+               cipher_TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256,
+               cipher_TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384,
+               cipher_TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256,
+               cipher_TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384,
+               cipher_TLS_RSA_WITH_AES_128_CCM,
+               cipher_TLS_RSA_WITH_AES_256_CCM,
+               cipher_TLS_RSA_WITH_AES_128_CCM_8,
+               cipher_TLS_RSA_WITH_AES_256_CCM_8,
+               cipher_TLS_PSK_WITH_AES_128_CCM,
+               cipher_TLS_PSK_WITH_AES_256_CCM,
+               cipher_TLS_PSK_WITH_AES_128_CCM_8,
+               cipher_TLS_PSK_WITH_AES_256_CCM_8:
+               return true
+       default:
+               return false
+       }
+}
diff --git a/vendor/golang.org/x/net/http2/client_conn_pool.go b/vendor/golang.org/x/net/http2/client_conn_pool.go
new file mode 100644 (file)
index 0000000..f4d9b5e
--- /dev/null
@@ -0,0 +1,282 @@
+// 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.
+
+// Transport code's client connection pooling.
+
+package http2
+
+import (
+       "crypto/tls"
+       "net/http"
+       "sync"
+)
+
+// ClientConnPool manages a pool of HTTP/2 client connections.
+type ClientConnPool interface {
+       GetClientConn(req *http.Request, addr string) (*ClientConn, error)
+       MarkDead(*ClientConn)
+}
+
+// clientConnPoolIdleCloser is the interface implemented by ClientConnPool
+// implementations which can close their idle connections.
+type clientConnPoolIdleCloser interface {
+       ClientConnPool
+       closeIdleConnections()
+}
+
+var (
+       _ clientConnPoolIdleCloser = (*clientConnPool)(nil)
+       _ clientConnPoolIdleCloser = noDialClientConnPool{}
+)
+
+// TODO: use singleflight for dialing and addConnCalls?
+type clientConnPool struct {
+       t *Transport
+
+       mu sync.Mutex // TODO: maybe switch to RWMutex
+       // TODO: add support for sharing conns based on cert names
+       // (e.g. share conn for googleapis.com and appspot.com)
+       conns        map[string][]*ClientConn // key is host:port
+       dialing      map[string]*dialCall     // currently in-flight dials
+       keys         map[*ClientConn][]string
+       addConnCalls map[string]*addConnCall // in-flight addConnIfNeede calls
+}
+
+func (p *clientConnPool) GetClientConn(req *http.Request, addr string) (*ClientConn, error) {
+       return p.getClientConn(req, addr, dialOnMiss)
+}
+
+const (
+       dialOnMiss   = true
+       noDialOnMiss = false
+)
+
+// shouldTraceGetConn reports whether getClientConn should call any
+// ClientTrace.GetConn hook associated with the http.Request.
+//
+// This complexity is needed to avoid double calls of the GetConn hook
+// during the back-and-forth between net/http and x/net/http2 (when the
+// net/http.Transport is upgraded to also speak http2), as well as support
+// the case where x/net/http2 is being used directly.
+func (p *clientConnPool) shouldTraceGetConn(st clientConnIdleState) bool {
+       // If our Transport wasn't made via ConfigureTransport, always
+       // trace the GetConn hook if provided, because that means the
+       // http2 package is being used directly and it's the one
+       // dialing, as opposed to net/http.
+       if _, ok := p.t.ConnPool.(noDialClientConnPool); !ok {
+               return true
+       }
+       // Otherwise, only use the GetConn hook if this connection has
+       // been used previously for other requests. For fresh
+       // connections, the net/http package does the dialing.
+       return !st.freshConn
+}
+
+func (p *clientConnPool) getClientConn(req *http.Request, addr string, dialOnMiss bool) (*ClientConn, error) {
+       if isConnectionCloseRequest(req) && dialOnMiss {
+               // It gets its own connection.
+               traceGetConn(req, addr)
+               const singleUse = true
+               cc, err := p.t.dialClientConn(addr, singleUse)
+               if err != nil {
+                       return nil, err
+               }
+               return cc, nil
+       }
+       p.mu.Lock()
+       for _, cc := range p.conns[addr] {
+               if st := cc.idleState(); st.canTakeNewRequest {
+                       if p.shouldTraceGetConn(st) {
+                               traceGetConn(req, addr)
+                       }
+                       p.mu.Unlock()
+                       return cc, nil
+               }
+       }
+       if !dialOnMiss {
+               p.mu.Unlock()
+               return nil, ErrNoCachedConn
+       }
+       traceGetConn(req, addr)
+       call := p.getStartDialLocked(addr)
+       p.mu.Unlock()
+       <-call.done
+       return call.res, call.err
+}
+
+// dialCall is an in-flight Transport dial call to a host.
+type dialCall struct {
+       p    *clientConnPool
+       done chan struct{} // closed when done
+       res  *ClientConn   // valid after done is closed
+       err  error         // valid after done is closed
+}
+
+// requires p.mu is held.
+func (p *clientConnPool) getStartDialLocked(addr string) *dialCall {
+       if call, ok := p.dialing[addr]; ok {
+               // A dial is already in-flight. Don't start another.
+               return call
+       }
+       call := &dialCall{p: p, done: make(chan struct{})}
+       if p.dialing == nil {
+               p.dialing = make(map[string]*dialCall)
+       }
+       p.dialing[addr] = call
+       go call.dial(addr)
+       return call
+}
+
+// run in its own goroutine.
+func (c *dialCall) dial(addr string) {
+       const singleUse = false // shared conn
+       c.res, c.err = c.p.t.dialClientConn(addr, singleUse)
+       close(c.done)
+
+       c.p.mu.Lock()
+       delete(c.p.dialing, addr)
+       if c.err == nil {
+               c.p.addConnLocked(addr, c.res)
+       }
+       c.p.mu.Unlock()
+}
+
+// addConnIfNeeded makes a NewClientConn out of c if a connection for key doesn't
+// already exist. It coalesces concurrent calls with the same key.
+// This is used by the http1 Transport code when it creates a new connection. Because
+// the http1 Transport doesn't de-dup TCP dials to outbound hosts (because it doesn't know
+// the protocol), it can get into a situation where it has multiple TLS connections.
+// This code decides which ones live or die.
+// The return value used is whether c was used.
+// c is never closed.
+func (p *clientConnPool) addConnIfNeeded(key string, t *Transport, c *tls.Conn) (used bool, err error) {
+       p.mu.Lock()
+       for _, cc := range p.conns[key] {
+               if cc.CanTakeNewRequest() {
+                       p.mu.Unlock()
+                       return false, nil
+               }
+       }
+       call, dup := p.addConnCalls[key]
+       if !dup {
+               if p.addConnCalls == nil {
+                       p.addConnCalls = make(map[string]*addConnCall)
+               }
+               call = &addConnCall{
+                       p:    p,
+                       done: make(chan struct{}),
+               }
+               p.addConnCalls[key] = call
+               go call.run(t, key, c)
+       }
+       p.mu.Unlock()
+
+       <-call.done
+       if call.err != nil {
+               return false, call.err
+       }
+       return !dup, nil
+}
+
+type addConnCall struct {
+       p    *clientConnPool
+       done chan struct{} // closed when done
+       err  error
+}
+
+func (c *addConnCall) run(t *Transport, key string, tc *tls.Conn) {
+       cc, err := t.NewClientConn(tc)
+
+       p := c.p
+       p.mu.Lock()
+       if err != nil {
+               c.err = err
+       } else {
+               p.addConnLocked(key, cc)
+       }
+       delete(p.addConnCalls, key)
+       p.mu.Unlock()
+       close(c.done)
+}
+
+func (p *clientConnPool) addConn(key string, cc *ClientConn) {
+       p.mu.Lock()
+       p.addConnLocked(key, cc)
+       p.mu.Unlock()
+}
+
+// p.mu must be held
+func (p *clientConnPool) addConnLocked(key string, cc *ClientConn) {
+       for _, v := range p.conns[key] {
+               if v == cc {
+                       return
+               }
+       }
+       if p.conns == nil {
+               p.conns = make(map[string][]*ClientConn)
+       }
+       if p.keys == nil {
+               p.keys = make(map[*ClientConn][]string)
+       }
+       p.conns[key] = append(p.conns[key], cc)
+       p.keys[cc] = append(p.keys[cc], key)
+}
+
+func (p *clientConnPool) MarkDead(cc *ClientConn) {
+       p.mu.Lock()
+       defer p.mu.Unlock()
+       for _, key := range p.keys[cc] {
+               vv, ok := p.conns[key]
+               if !ok {
+                       continue
+               }
+               newList := filterOutClientConn(vv, cc)
+               if len(newList) > 0 {
+                       p.conns[key] = newList
+               } else {
+                       delete(p.conns, key)
+               }
+       }
+       delete(p.keys, cc)
+}
+
+func (p *clientConnPool) closeIdleConnections() {
+       p.mu.Lock()
+       defer p.mu.Unlock()
+       // TODO: don't close a cc if it was just added to the pool
+       // milliseconds ago and has never been used. There's currently
+       // a small race window with the HTTP/1 Transport's integration
+       // where it can add an idle conn just before using it, and
+       // somebody else can concurrently call CloseIdleConns and
+       // break some caller's RoundTrip.
+       for _, vv := range p.conns {
+               for _, cc := range vv {
+                       cc.closeIfIdle()
+               }
+       }
+}
+
+func filterOutClientConn(in []*ClientConn, exclude *ClientConn) []*ClientConn {
+       out := in[:0]
+       for _, v := range in {
+               if v != exclude {
+                       out = append(out, v)
+               }
+       }
+       // If we filtered it out, zero out the last item to prevent
+       // the GC from seeing it.
+       if len(in) != len(out) {
+               in[len(in)-1] = nil
+       }
+       return out
+}
+
+// noDialClientConnPool is an implementation of http2.ClientConnPool
+// which never dials. We let the HTTP/1.1 client dial and use its TLS
+// connection instead.
+type noDialClientConnPool struct{ *clientConnPool }
+
+func (p noDialClientConnPool) GetClientConn(req *http.Request, addr string) (*ClientConn, error) {
+       return p.getClientConn(req, addr, noDialOnMiss)
+}
diff --git a/vendor/golang.org/x/net/http2/databuffer.go b/vendor/golang.org/x/net/http2/databuffer.go
new file mode 100644 (file)
index 0000000..a3067f8
--- /dev/null
@@ -0,0 +1,146 @@
+// Copyright 2014 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package http2
+
+import (
+       "errors"
+       "fmt"
+       "sync"
+)
+
+// Buffer chunks are allocated from a pool to reduce pressure on GC.
+// The maximum wasted space per dataBuffer is 2x the largest size class,
+// which happens when the dataBuffer has multiple chunks and there is
+// one unread byte in both the first and last chunks. We use a few size
+// classes to minimize overheads for servers that typically receive very
+// small request bodies.
+//
+// TODO: Benchmark to determine if the pools are necessary. The GC may have
+// improved enough that we can instead allocate chunks like this:
+// make([]byte, max(16<<10, expectedBytesRemaining))
+var (
+       dataChunkSizeClasses = []int{
+               1 << 10,
+               2 << 10,
+               4 << 10,
+               8 << 10,
+               16 << 10,
+       }
+       dataChunkPools = [...]sync.Pool{
+               {New: func() interface{} { return make([]byte, 1<<10) }},
+               {New: func() interface{} { return make([]byte, 2<<10) }},
+               {New: func() interface{} { return make([]byte, 4<<10) }},
+               {New: func() interface{} { return make([]byte, 8<<10) }},
+               {New: func() interface{} { return make([]byte, 16<<10) }},
+       }
+)
+
+func getDataBufferChunk(size int64) []byte {
+       i := 0
+       for ; i < len(dataChunkSizeClasses)-1; i++ {
+               if size <= int64(dataChunkSizeClasses[i]) {
+                       break
+               }
+       }
+       return dataChunkPools[i].Get().([]byte)
+}
+
+func putDataBufferChunk(p []byte) {
+       for i, n := range dataChunkSizeClasses {
+               if len(p) == n {
+                       dataChunkPools[i].Put(p)
+                       return
+               }
+       }
+       panic(fmt.Sprintf("unexpected buffer len=%v", len(p)))
+}
+
+// dataBuffer is an io.ReadWriter backed by a list of data chunks.
+// Each dataBuffer is used to read DATA frames on a single stream.
+// The buffer is divided into chunks so the server can limit the
+// total memory used by a single connection without limiting the
+// request body size on any single stream.
+type dataBuffer struct {
+       chunks   [][]byte
+       r        int   // next byte to read is chunks[0][r]
+       w        int   // next byte to write is chunks[len(chunks)-1][w]
+       size     int   // total buffered bytes
+       expected int64 // we expect at least this many bytes in future Write calls (ignored if <= 0)
+}
+
+var errReadEmpty = errors.New("read from empty dataBuffer")
+
+// Read copies bytes from the buffer into p.
+// It is an error to read when no data is available.
+func (b *dataBuffer) Read(p []byte) (int, error) {
+       if b.size == 0 {
+               return 0, errReadEmpty
+       }
+       var ntotal int
+       for len(p) > 0 && b.size > 0 {
+               readFrom := b.bytesFromFirstChunk()
+               n := copy(p, readFrom)
+               p = p[n:]
+               ntotal += n
+               b.r += n
+               b.size -= n
+               // If the first chunk has been consumed, advance to the next chunk.
+               if b.r == len(b.chunks[0]) {
+                       putDataBufferChunk(b.chunks[0])
+                       end := len(b.chunks) - 1
+                       copy(b.chunks[:end], b.chunks[1:])
+                       b.chunks[end] = nil
+                       b.chunks = b.chunks[:end]
+                       b.r = 0
+               }
+       }
+       return ntotal, nil
+}
+
+func (b *dataBuffer) bytesFromFirstChunk() []byte {
+       if len(b.chunks) == 1 {
+               return b.chunks[0][b.r:b.w]
+       }
+       return b.chunks[0][b.r:]
+}
+
+// Len returns the number of bytes of the unread portion of the buffer.
+func (b *dataBuffer) Len() int {
+       return b.size
+}
+
+// Write appends p to the buffer.
+func (b *dataBuffer) Write(p []byte) (int, error) {
+       ntotal := len(p)
+       for len(p) > 0 {
+               // If the last chunk is empty, allocate a new chunk. Try to allocate
+               // enough to fully copy p plus any additional bytes we expect to
+               // receive. However, this may allocate less than len(p).
+               want := int64(len(p))
+               if b.expected > want {
+                       want = b.expected
+               }
+               chunk := b.lastChunkOrAlloc(want)
+               n := copy(chunk[b.w:], p)
+               p = p[n:]
+               b.w += n
+               b.size += n
+               b.expected -= int64(n)
+       }
+       return ntotal, nil
+}
+
+func (b *dataBuffer) lastChunkOrAlloc(want int64) []byte {
+       if len(b.chunks) != 0 {
+               last := b.chunks[len(b.chunks)-1]
+               if b.w < len(last) {
+                       return last
+               }
+       }
+       chunk := getDataBufferChunk(want)
+       b.chunks = append(b.chunks, chunk)
+       b.w = 0
+       return chunk
+}
diff --git a/vendor/golang.org/x/net/http2/errors.go b/vendor/golang.org/x/net/http2/errors.go
new file mode 100644 (file)
index 0000000..71f2c46
--- /dev/null
@@ -0,0 +1,133 @@
+// Copyright 2014 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package http2
+
+import (
+       "errors"
+       "fmt"
+)
+
+// An ErrCode is an unsigned 32-bit error code as defined in the HTTP/2 spec.
+type ErrCode uint32
+
+const (
+       ErrCodeNo                 ErrCode = 0x0
+       ErrCodeProtocol           ErrCode = 0x1
+       ErrCodeInternal           ErrCode = 0x2
+       ErrCodeFlowControl        ErrCode = 0x3
+       ErrCodeSettingsTimeout    ErrCode = 0x4
+       ErrCodeStreamClosed       ErrCode = 0x5
+       ErrCodeFrameSize          ErrCode = 0x6
+       ErrCodeRefusedStream      ErrCode = 0x7
+       ErrCodeCancel             ErrCode = 0x8
+       ErrCodeCompression        ErrCode = 0x9
+       ErrCodeConnect            ErrCode = 0xa
+       ErrCodeEnhanceYourCalm    ErrCode = 0xb
+       ErrCodeInadequateSecurity ErrCode = 0xc
+       ErrCodeHTTP11Required     ErrCode = 0xd
+)
+
+var errCodeName = map[ErrCode]string{
+       ErrCodeNo:                 "NO_ERROR",
+       ErrCodeProtocol:           "PROTOCOL_ERROR",
+       ErrCodeInternal:           "INTERNAL_ERROR",
+       ErrCodeFlowControl:        "FLOW_CONTROL_ERROR",
+       ErrCodeSettingsTimeout:    "SETTINGS_TIMEOUT",
+       ErrCodeStreamClosed:       "STREAM_CLOSED",
+       ErrCodeFrameSize:          "FRAME_SIZE_ERROR",
+       ErrCodeRefusedStream:      "REFUSED_STREAM",
+       ErrCodeCancel:             "CANCEL",
+       ErrCodeCompression:        "COMPRESSION_ERROR",
+       ErrCodeConnect:            "CONNECT_ERROR",
+       ErrCodeEnhanceYourCalm:    "ENHANCE_YOUR_CALM",
+       ErrCodeInadequateSecurity: "INADEQUATE_SECURITY",
+       ErrCodeHTTP11Required:     "HTTP_1_1_REQUIRED",
+}
+
+func (e ErrCode) String() string {
+       if s, ok := errCodeName[e]; ok {
+               return s
+       }
+       return fmt.Sprintf("unknown error code 0x%x", uint32(e))
+}
+
+// ConnectionError is an error that results in the termination of the
+// entire connection.
+type ConnectionError ErrCode
+
+func (e ConnectionError) Error() string { return fmt.Sprintf("connection error: %s", ErrCode(e)) }
+
+// StreamError is an error that only affects one stream within an
+// HTTP/2 connection.
+type StreamError struct {
+       StreamID uint32
+       Code     ErrCode
+       Cause    error // optional additional detail
+}
+
+func streamError(id uint32, code ErrCode) StreamError {
+       return StreamError{StreamID: id, Code: code}
+}
+
+func (e StreamError) Error() string {
+       if e.Cause != nil {
+               return fmt.Sprintf("stream error: stream ID %d; %v; %v", e.StreamID, e.Code, e.Cause)
+       }
+       return fmt.Sprintf("stream error: stream ID %d; %v", e.StreamID, e.Code)
+}
+
+// 6.9.1 The Flow Control Window
+// "If a sender receives a WINDOW_UPDATE that causes a flow control
+// window to exceed this maximum it MUST terminate either the stream
+// or the connection, as appropriate. For streams, [...]; for the
+// connection, a GOAWAY frame with a FLOW_CONTROL_ERROR code."
+type goAwayFlowError struct{}
+
+func (goAwayFlowError) Error() string { return "connection exceeded flow control window size" }
+
+// connError represents an HTTP/2 ConnectionError error code, along
+// with a string (for debugging) explaining why.
+//
+// Errors of this type are only returned by the frame parser functions
+// and converted into ConnectionError(Code), after stashing away
+// the Reason into the Framer's errDetail field, accessible via
+// the (*Framer).ErrorDetail method.
+type connError struct {
+       Code   ErrCode // the ConnectionError error code
+       Reason string  // additional reason
+}
+
+func (e connError) Error() string {
+       return fmt.Sprintf("http2: connection error: %v: %v", e.Code, e.Reason)
+}
+
+type pseudoHeaderError string
+
+func (e pseudoHeaderError) Error() string {
+       return fmt.Sprintf("invalid pseudo-header %q", string(e))
+}
+
+type duplicatePseudoHeaderError string
+
+func (e duplicatePseudoHeaderError) Error() string {
+       return fmt.Sprintf("duplicate pseudo-header %q", string(e))
+}
+
+type headerFieldNameError string
+
+func (e headerFieldNameError) Error() string {
+       return fmt.Sprintf("invalid header field name %q", string(e))
+}
+
+type headerFieldValueError string
+
+func (e headerFieldValueError) Error() string {
+       return fmt.Sprintf("invalid header field value %q", string(e))
+}
+
+var (
+       errMixPseudoHeaderTypes = errors.New("mix of request and response pseudo headers")
+       errPseudoAfterRegular   = errors.New("pseudo header field after regular")
+)
diff --git a/vendor/golang.org/x/net/http2/flow.go b/vendor/golang.org/x/net/http2/flow.go
new file mode 100644 (file)
index 0000000..cea601f
--- /dev/null
@@ -0,0 +1,50 @@
+// Copyright 2014 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Flow control
+
+package http2
+
+// flow is the flow control window's size.
+type flow struct {
+       // n is the number of DATA bytes we're allowed to send.
+       // A flow is kept both on a conn and a per-stream.
+       n int32
+
+       // conn points to the shared connection-level flow that is
+       // shared by all streams on that conn. It is nil for the flow
+       // that's on the conn directly.
+       conn *flow
+}
+
+func (f *flow) setConnFlow(cf *flow) { f.conn = cf }
+
+func (f *flow) available() int32 {
+       n := f.n
+       if f.conn != nil && f.conn.n < n {
+               n = f.conn.n
+       }
+       return n
+}
+
+func (f *flow) take(n int32) {
+       if n > f.available() {
+               panic("internal error: took too much")
+       }
+       f.n -= n
+       if f.conn != nil {
+               f.conn.n -= n
+       }
+}
+
+// add adds n bytes (positive or negative) to the flow control window.
+// It returns false if the sum would exceed 2^31-1.
+func (f *flow) add(n int32) bool {
+       sum := f.n + n
+       if (sum > n) == (f.n > 0) {
+               f.n = sum
+               return true
+       }
+       return false
+}
diff --git a/vendor/golang.org/x/net/http2/frame.go b/vendor/golang.org/x/net/http2/frame.go
new file mode 100644 (file)
index 0000000..514c126
--- /dev/null
@@ -0,0 +1,1614 @@
+// Copyright 2014 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package http2
+
+import (
+       "bytes"
+       "encoding/binary"
+       "errors"
+       "fmt"
+       "io"
+       "log"
+       "strings"
+       "sync"
+
+       "golang.org/x/net/http/httpguts"
+       "golang.org/x/net/http2/hpack"
+)
+
+const frameHeaderLen = 9
+
+var padZeros = make([]byte, 255) // zeros for padding
+
+// A FrameType is a registered frame type as defined in
+// http://http2.github.io/http2-spec/#rfc.section.11.2
+type FrameType uint8
+
+const (
+       FrameData         FrameType = 0x0
+       FrameHeaders      FrameType = 0x1
+       FramePriority     FrameType = 0x2
+       FrameRSTStream    FrameType = 0x3
+       FrameSettings     FrameType = 0x4
+       FramePushPromise  FrameType = 0x5
+       FramePing         FrameType = 0x6
+       FrameGoAway       FrameType = 0x7
+       FrameWindowUpdate FrameType = 0x8
+       FrameContinuation FrameType = 0x9
+)
+
+var frameName = map[FrameType]string{
+       FrameData:         "DATA",
+       FrameHeaders:      "HEADERS",
+       FramePriority:     "PRIORITY",
+       FrameRSTStream:    "RST_STREAM",
+       FrameSettings:     "SETTINGS",
+       FramePushPromise:  "PUSH_PROMISE",
+       FramePing:         "PING",
+       FrameGoAway:       "GOAWAY",
+       FrameWindowUpdate: "WINDOW_UPDATE",
+       FrameContinuation: "CONTINUATION",
+}
+
+func (t FrameType) String() string {
+       if s, ok := frameName[t]; ok {
+               return s
+       }
+       return fmt.Sprintf("UNKNOWN_FRAME_TYPE_%d", uint8(t))
+}
+
+// Flags is a bitmask of HTTP/2 flags.
+// The meaning of flags varies depending on the frame type.
+type Flags uint8
+
+// Has reports whether f contains all (0 or more) flags in v.
+func (f Flags) Has(v Flags) bool {
+       return (f & v) == v
+}
+
+// Frame-specific FrameHeader flag bits.
+const (
+       // Data Frame
+       FlagDataEndStream Flags = 0x1
+       FlagDataPadded    Flags = 0x8
+
+       // Headers Frame
+       FlagHeadersEndStream  Flags = 0x1
+       FlagHeadersEndHeaders Flags = 0x4
+       FlagHeadersPadded     Flags = 0x8
+       FlagHeadersPriority   Flags = 0x20
+
+       // Settings Frame
+       FlagSettingsAck Flags = 0x1
+
+       // Ping Frame
+       FlagPingAck Flags = 0x1
+
+       // Continuation Frame
+       FlagContinuationEndHeaders Flags = 0x4
+
+       FlagPushPromiseEndHeaders Flags = 0x4
+       FlagPushPromisePadded     Flags = 0x8
+)
+
+var flagName = map[FrameType]map[Flags]string{
+       FrameData: {
+               FlagDataEndStream: "END_STREAM",
+               FlagDataPadded:    "PADDED",
+       },
+       FrameHeaders: {
+               FlagHeadersEndStream:  "END_STREAM",
+               FlagHeadersEndHeaders: "END_HEADERS",
+               FlagHeadersPadded:     "PADDED",
+               FlagHeadersPriority:   "PRIORITY",
+       },
+       FrameSettings: {
+               FlagSettingsAck: "ACK",
+       },
+       FramePing: {
+               FlagPingAck: "ACK",
+       },
+       FrameContinuation: {
+               FlagContinuationEndHeaders: "END_HEADERS",
+       },
+       FramePushPromise: {
+               FlagPushPromiseEndHeaders: "END_HEADERS",
+               FlagPushPromisePadded:     "PADDED",
+       },
+}
+
+// a frameParser parses a frame given its FrameHeader and payload
+// bytes. The length of payload will always equal fh.Length (which
+// might be 0).
+type frameParser func(fc *frameCache, fh FrameHeader, payload []byte) (Frame, error)
+
+var frameParsers = map[FrameType]frameParser{
+       FrameData:         parseDataFrame,
+       FrameHeaders:      parseHeadersFrame,
+       FramePriority:     parsePriorityFrame,
+       FrameRSTStream:    parseRSTStreamFrame,
+       FrameSettings:     parseSettingsFrame,
+       FramePushPromise:  parsePushPromise,
+       FramePing:         parsePingFrame,
+       FrameGoAway:       parseGoAwayFrame,
+       FrameWindowUpdate: parseWindowUpdateFrame,
+       FrameContinuation: parseContinuationFrame,
+}
+
+func typeFrameParser(t FrameType) frameParser {
+       if f := frameParsers[t]; f != nil {
+               return f
+       }
+       return parseUnknownFrame
+}
+
+// A FrameHeader is the 9 byte header of all HTTP/2 frames.
+//
+// See http://http2.github.io/http2-spec/#FrameHeader
+type FrameHeader struct {
+       valid bool // caller can access []byte fields in the Frame
+
+       // Type is the 1 byte frame type. There are ten standard frame
+       // types, but extension frame types may be written by WriteRawFrame
+       // and will be returned by ReadFrame (as UnknownFrame).
+       Type FrameType
+
+       // Flags are the 1 byte of 8 potential bit flags per frame.
+       // They are specific to the frame type.
+       Flags Flags
+
+       // Length is the length of the frame, not including the 9 byte header.
+       // The maximum size is one byte less than 16MB (uint24), but only
+       // frames up to 16KB are allowed without peer agreement.
+       Length uint32
+
+       // StreamID is which stream this frame is for. Certain frames
+       // are not stream-specific, in which case this field is 0.
+       StreamID uint32
+}
+
+// Header returns h. It exists so FrameHeaders can be embedded in other
+// specific frame types and implement the Frame interface.
+func (h FrameHeader) Header() FrameHeader { return h }
+
+func (h FrameHeader) String() string {
+       var buf bytes.Buffer
+       buf.WriteString("[FrameHeader ")
+       h.writeDebug(&buf)
+       buf.WriteByte(']')
+       return buf.String()
+}
+
+func (h FrameHeader) writeDebug(buf *bytes.Buffer) {
+       buf.WriteString(h.Type.String())
+       if h.Flags != 0 {
+               buf.WriteString(" flags=")
+               set := 0
+               for i := uint8(0); i < 8; i++ {
+                       if h.Flags&(1<<i) == 0 {
+                               continue
+                       }
+                       set++
+                       if set > 1 {
+                               buf.WriteByte('|')
+                       }
+                       name := flagName[h.Type][Flags(1<<i)]
+                       if name != "" {
+                               buf.WriteString(name)
+                       } else {
+                               fmt.Fprintf(buf, "0x%x", 1<<i)
+                       }
+               }
+       }
+       if h.StreamID != 0 {
+               fmt.Fprintf(buf, " stream=%d", h.StreamID)
+       }
+       fmt.Fprintf(buf, " len=%d", h.Length)
+}
+
+func (h *FrameHeader) checkValid() {
+       if !h.valid {
+               panic("Frame accessor called on non-owned Frame")
+       }
+}
+
+func (h *FrameHeader) invalidate() { h.valid = false }
+
+// frame header bytes.
+// Used only by ReadFrameHeader.
+var fhBytes = sync.Pool{
+       New: func() interface{} {
+               buf := make([]byte, frameHeaderLen)
+               return &buf
+       },
+}
+
+// ReadFrameHeader reads 9 bytes from r and returns a FrameHeader.
+// Most users should use Framer.ReadFrame instead.
+func ReadFrameHeader(r io.Reader) (FrameHeader, error) {
+       bufp := fhBytes.Get().(*[]byte)
+       defer fhBytes.Put(bufp)
+       return readFrameHeader(*bufp, r)
+}
+
+func readFrameHeader(buf []byte, r io.Reader) (FrameHeader, error) {
+       _, err := io.ReadFull(r, buf[:frameHeaderLen])
+       if err != nil {
+               return FrameHeader{}, err
+       }
+       return FrameHeader{
+               Length:   (uint32(buf[0])<<16 | uint32(buf[1])<<8 | uint32(buf[2])),
+               Type:     FrameType(buf[3]),
+               Flags:    Flags(buf[4]),
+               StreamID: binary.BigEndian.Uint32(buf[5:]) & (1<<31 - 1),
+               valid:    true,
+       }, nil
+}
+
+// A Frame is the base interface implemented by all frame types.
+// Callers will generally type-assert the specific frame type:
+// *HeadersFrame, *SettingsFrame, *WindowUpdateFrame, etc.
+//
+// Frames are only valid until the next call to Framer.ReadFrame.
+type Frame interface {
+       Header() FrameHeader
+
+       // invalidate is called by Framer.ReadFrame to make this
+       // frame's buffers as being invalid, since the subsequent
+       // frame will reuse them.
+       invalidate()
+}
+
+// A Framer reads and writes Frames.
+type Framer struct {
+       r         io.Reader
+       lastFrame Frame
+       errDetail error
+
+       // lastHeaderStream is non-zero if the last frame was an
+       // unfinished HEADERS/CONTINUATION.
+       lastHeaderStream uint32
+
+       maxReadSize uint32
+       headerBuf   [frameHeaderLen]byte
+
+       // TODO: let getReadBuf be configurable, and use a less memory-pinning
+       // allocator in server.go to minimize memory pinned for many idle conns.
+       // Will probably also need to make frame invalidation have a hook too.
+       getReadBuf func(size uint32) []byte
+       readBuf    []byte // cache for default getReadBuf
+
+       maxWriteSize uint32 // zero means unlimited; TODO: implement
+
+       w    io.Writer
+       wbuf []byte
+
+       // AllowIllegalWrites permits the Framer's Write methods to
+       // write frames that do not conform to the HTTP/2 spec. This
+       // permits using the Framer to test other HTTP/2
+       // implementations' conformance to the spec.
+       // If false, the Write methods will prefer to return an error
+       // rather than comply.
+       AllowIllegalWrites bool
+
+       // AllowIllegalReads permits the Framer's ReadFrame method
+       // to return non-compliant frames or frame orders.
+       // This is for testing and permits using the Framer to test
+       // other HTTP/2 implementations' conformance to the spec.
+       // It is not compatible with ReadMetaHeaders.
+       AllowIllegalReads bool
+
+       // ReadMetaHeaders if non-nil causes ReadFrame to merge
+       // HEADERS and CONTINUATION frames together and return
+       // MetaHeadersFrame instead.
+       ReadMetaHeaders *hpack.Decoder
+
+       // MaxHeaderListSize is the http2 MAX_HEADER_LIST_SIZE.
+       // It's used only if ReadMetaHeaders is set; 0 means a sane default
+       // (currently 16MB)
+       // If the limit is hit, MetaHeadersFrame.Truncated is set true.
+       MaxHeaderListSize uint32
+
+       // TODO: track which type of frame & with which flags was sent
+       // last. Then return an error (unless AllowIllegalWrites) if
+       // we're in the middle of a header block and a
+       // non-Continuation or Continuation on a different stream is
+       // attempted to be written.
+
+       logReads, logWrites bool
+
+       debugFramer       *Framer // only use for logging written writes
+       debugFramerBuf    *bytes.Buffer
+       debugReadLoggerf  func(string, ...interface{})
+       debugWriteLoggerf func(string, ...interface{})
+
+       frameCache *frameCache // nil if frames aren't reused (default)
+}
+
+func (fr *Framer) maxHeaderListSize() uint32 {
+       if fr.MaxHeaderListSize == 0 {
+               return 16 << 20 // sane default, per docs
+       }
+       return fr.MaxHeaderListSize
+}
+
+func (f *Framer) startWrite(ftype FrameType, flags Flags, streamID uint32) {
+       // Write the FrameHeader.
+       f.wbuf = append(f.wbuf[:0],
+               0, // 3 bytes of length, filled in in endWrite
+               0,
+               0,
+               byte(ftype),
+               byte(flags),
+               byte(streamID>>24),
+               byte(streamID>>16),
+               byte(streamID>>8),
+               byte(streamID))
+}
+
+func (f *Framer) endWrite() error {
+       // Now that we know the final size, fill in the FrameHeader in
+       // the space previously reserved for it. Abuse append.
+       length := len(f.wbuf) - frameHeaderLen
+       if length >= (1 << 24) {
+               return ErrFrameTooLarge
+       }
+       _ = append(f.wbuf[:0],
+               byte(length>>16),
+               byte(length>>8),
+               byte(length))
+       if f.logWrites {
+               f.logWrite()
+       }
+
+       n, err := f.w.Write(f.wbuf)
+       if err == nil && n != len(f.wbuf) {
+               err = io.ErrShortWrite
+       }
+       return err
+}
+
+func (f *Framer) logWrite() {
+       if f.debugFramer == nil {
+               f.debugFramerBuf = new(bytes.Buffer)
+               f.debugFramer = NewFramer(nil, f.debugFramerBuf)
+               f.debugFramer.logReads = false // we log it ourselves, saying "wrote" below
+               // Let us read anything, even if we accidentally wrote it
+               // in the wrong order:
+               f.debugFramer.AllowIllegalReads = true
+       }
+       f.debugFramerBuf.Write(f.wbuf)
+       fr, err := f.debugFramer.ReadFrame()
+       if err != nil {
+               f.debugWriteLoggerf("http2: Framer %p: failed to decode just-written frame", f)
+               return
+       }
+       f.debugWriteLoggerf("http2: Framer %p: wrote %v", f, summarizeFrame(fr))
+}
+
+func (f *Framer) writeByte(v byte)     { f.wbuf = append(f.wbuf, v) }
+func (f *Framer) writeBytes(v []byte)  { f.wbuf = append(f.wbuf, v...) }
+func (f *Framer) writeUint16(v uint16) { f.wbuf = append(f.wbuf, byte(v>>8), byte(v)) }
+func (f *Framer) writeUint32(v uint32) {
+       f.wbuf = append(f.wbuf, byte(v>>24), byte(v>>16), byte(v>>8), byte(v))
+}
+
+const (
+       minMaxFrameSize = 1 << 14
+       maxFrameSize    = 1<<24 - 1
+)
+
+// SetReuseFrames allows the Framer to reuse Frames.
+// If called on a Framer, Frames returned by calls to ReadFrame are only
+// valid until the next call to ReadFrame.
+func (fr *Framer) SetReuseFrames() {
+       if fr.frameCache != nil {
+               return
+       }
+       fr.frameCache = &frameCache{}
+}
+
+type frameCache struct {
+       dataFrame DataFrame
+}
+
+func (fc *frameCache) getDataFrame() *DataFrame {
+       if fc == nil {
+               return &DataFrame{}
+       }
+       return &fc.dataFrame
+}
+
+// NewFramer returns a Framer that writes frames to w and reads them from r.
+func NewFramer(w io.Writer, r io.Reader) *Framer {
+       fr := &Framer{
+               w:                 w,
+               r:                 r,
+               logReads:          logFrameReads,
+               logWrites:         logFrameWrites,
+               debugReadLoggerf:  log.Printf,
+               debugWriteLoggerf: log.Printf,
+       }
+       fr.getReadBuf = func(size uint32) []byte {
+               if cap(fr.readBuf) >= int(size) {
+                       return fr.readBuf[:size]
+               }
+               fr.readBuf = make([]byte, size)
+               return fr.readBuf
+       }
+       fr.SetMaxReadFrameSize(maxFrameSize)
+       return fr
+}
+
+// SetMaxReadFrameSize sets the maximum size of a frame
+// that will be read by a subsequent call to ReadFrame.
+// It is the caller's responsibility to advertise this
+// limit with a SETTINGS frame.
+func (fr *Framer) SetMaxReadFrameSize(v uint32) {
+       if v > maxFrameSize {
+               v = maxFrameSize
+       }
+       fr.maxReadSize = v
+}
+
+// ErrorDetail returns a more detailed error of the last error
+// returned by Framer.ReadFrame. For instance, if ReadFrame
+// returns a StreamError with code PROTOCOL_ERROR, ErrorDetail
+// will say exactly what was invalid. ErrorDetail is not guaranteed
+// to return a non-nil value and like the rest of the http2 package,
+// its return value is not protected by an API compatibility promise.
+// ErrorDetail is reset after the next call to ReadFrame.
+func (fr *Framer) ErrorDetail() error {
+       return fr.errDetail
+}
+
+// ErrFrameTooLarge is returned from Framer.ReadFrame when the peer
+// sends a frame that is larger than declared with SetMaxReadFrameSize.
+var ErrFrameTooLarge = errors.New("http2: frame too large")
+
+// terminalReadFrameError reports whether err is an unrecoverable
+// error from ReadFrame and no other frames should be read.
+func terminalReadFrameError(err error) bool {
+       if _, ok := err.(StreamError); ok {
+               return false
+       }
+       return err != nil
+}
+
+// ReadFrame reads a single frame. The returned Frame is only valid
+// until the next call to ReadFrame.
+//
+// If the frame is larger than previously set with SetMaxReadFrameSize, the
+// returned error is ErrFrameTooLarge. Other errors may be of type
+// ConnectionError, StreamError, or anything else from the underlying
+// reader.
+func (fr *Framer) ReadFrame() (Frame, error) {
+       fr.errDetail = nil
+       if fr.lastFrame != nil {
+               fr.lastFrame.invalidate()
+       }
+       fh, err := readFrameHeader(fr.headerBuf[:], fr.r)
+       if err != nil {
+               return nil, err
+       }
+       if fh.Length > fr.maxReadSize {
+               return nil, ErrFrameTooLarge
+       }
+       payload := fr.getReadBuf(fh.Length)
+       if _, err := io.ReadFull(fr.r, payload); err != nil {
+               return nil, err
+       }
+       f, err := typeFrameParser(fh.Type)(fr.frameCache, fh, payload)
+       if err != nil {
+               if ce, ok := err.(connError); ok {
+                       return nil, fr.connError(ce.Code, ce.Reason)
+               }
+               return nil, err
+       }
+       if err := fr.checkFrameOrder(f); err != nil {
+               return nil, err
+       }
+       if fr.logReads {
+               fr.debugReadLoggerf("http2: Framer %p: read %v", fr, summarizeFrame(f))
+       }
+       if fh.Type == FrameHeaders && fr.ReadMetaHeaders != nil {
+               return fr.readMetaFrame(f.(*HeadersFrame))
+       }
+       return f, nil
+}
+
+// connError returns ConnectionError(code) but first
+// stashes away a public reason to the caller can optionally relay it
+// to the peer before hanging up on them. This might help others debug
+// their implementations.
+func (fr *Framer) connError(code ErrCode, reason string) error {
+       fr.errDetail = errors.New(reason)
+       return ConnectionError(code)
+}
+
+// checkFrameOrder reports an error if f is an invalid frame to return
+// next from ReadFrame. Mostly it checks whether HEADERS and
+// CONTINUATION frames are contiguous.
+func (fr *Framer) checkFrameOrder(f Frame) error {
+       last := fr.lastFrame
+       fr.lastFrame = f
+       if fr.AllowIllegalReads {
+               return nil
+       }
+
+       fh := f.Header()
+       if fr.lastHeaderStream != 0 {
+               if fh.Type != FrameContinuation {
+                       return fr.connError(ErrCodeProtocol,
+                               fmt.Sprintf("got %s for stream %d; expected CONTINUATION following %s for stream %d",
+                                       fh.Type, fh.StreamID,
+                                       last.Header().Type, fr.lastHeaderStream))
+               }
+               if fh.StreamID != fr.lastHeaderStream {
+                       return fr.connError(ErrCodeProtocol,
+                               fmt.Sprintf("got CONTINUATION for stream %d; expected stream %d",
+                                       fh.StreamID, fr.lastHeaderStream))
+               }
+       } else if fh.Type == FrameContinuation {
+               return fr.connError(ErrCodeProtocol, fmt.Sprintf("unexpected CONTINUATION for stream %d", fh.StreamID))
+       }
+
+       switch fh.Type {
+       case FrameHeaders, FrameContinuation:
+               if fh.Flags.Has(FlagHeadersEndHeaders) {
+                       fr.lastHeaderStream = 0
+               } else {
+                       fr.lastHeaderStream = fh.StreamID
+               }
+       }
+
+       return nil
+}
+
+// A DataFrame conveys arbitrary, variable-length sequences of octets
+// associated with a stream.
+// See http://http2.github.io/http2-spec/#rfc.section.6.1
+type DataFrame struct {
+       FrameHeader
+       data []byte
+}
+
+func (f *DataFrame) StreamEnded() bool {
+       return f.FrameHeader.Flags.Has(FlagDataEndStream)
+}
+
+// Data returns the frame's data octets, not including any padding
+// size byte or padding suffix bytes.
+// The caller must not retain the returned memory past the next
+// call to ReadFrame.
+func (f *DataFrame) Data() []byte {
+       f.checkValid()
+       return f.data
+}
+
+func parseDataFrame(fc *frameCache, fh FrameHeader, payload []byte) (Frame, error) {
+       if fh.StreamID == 0 {
+               // DATA frames MUST be associated with a stream. If a
+               // DATA frame is received whose stream identifier
+               // field is 0x0, the recipient MUST respond with a
+               // connection error (Section 5.4.1) of type
+               // PROTOCOL_ERROR.
+               return nil, connError{ErrCodeProtocol, "DATA frame with stream ID 0"}
+       }
+       f := fc.getDataFrame()
+       f.FrameHeader = fh
+
+       var padSize byte
+       if fh.Flags.Has(FlagDataPadded) {
+               var err error
+               payload, padSize, err = readByte(payload)
+               if err != nil {
+                       return nil, err
+               }
+       }
+       if int(padSize) > len(payload) {
+               // If the length of the padding is greater than the
+               // length of the frame payload, the recipient MUST
+               // treat this as a connection error.
+               // Filed: https://github.com/http2/http2-spec/issues/610
+               return nil, connError{ErrCodeProtocol, "pad size larger than data payload"}
+       }
+       f.data = payload[:len(payload)-int(padSize)]
+       return f, nil
+}
+
+var (
+       errStreamID    = errors.New("invalid stream ID")
+       errDepStreamID = errors.New("invalid dependent stream ID")
+       errPadLength   = errors.New("pad length too large")
+       errPadBytes    = errors.New("padding bytes must all be zeros unless AllowIllegalWrites is enabled")
+)
+
+func validStreamIDOrZero(streamID uint32) bool {
+       return streamID&(1<<31) == 0
+}
+
+func validStreamID(streamID uint32) bool {
+       return streamID != 0 && streamID&(1<<31) == 0
+}
+
+// WriteData writes a DATA frame.
+//
+// It will perform exactly one Write to the underlying Writer.
+// It is the caller's responsibility not to violate the maximum frame size
+// and to not call other Write methods concurrently.
+func (f *Framer) WriteData(streamID uint32, endStream bool, data []byte) error {
+       return f.WriteDataPadded(streamID, endStream, data, nil)
+}
+
+// WriteDataPadded writes a DATA frame with optional padding.
+//
+// If pad is nil, the padding bit is not sent.
+// The length of pad must not exceed 255 bytes.
+// The bytes of pad must all be zero, unless f.AllowIllegalWrites is set.
+//
+// It will perform exactly one Write to the underlying Writer.
+// It is the caller's responsibility not to violate the maximum frame size
+// and to not call other Write methods concurrently.
+func (f *Framer) WriteDataPadded(streamID uint32, endStream bool, data, pad []byte) error {
+       if !validStreamID(streamID) && !f.AllowIllegalWrites {
+               return errStreamID
+       }
+       if len(pad) > 0 {
+               if len(pad) > 255 {
+                       return errPadLength
+               }
+               if !f.AllowIllegalWrites {
+                       for _, b := range pad {
+                               if b != 0 {
+                                       // "Padding octets MUST be set to zero when sending."
+                                       return errPadBytes
+                               }
+                       }
+               }
+       }
+       var flags Flags
+       if endStream {
+               flags |= FlagDataEndStream
+       }
+       if pad != nil {
+               flags |= FlagDataPadded
+       }
+       f.startWrite(FrameData, flags, streamID)
+       if pad != nil {
+               f.wbuf = append(f.wbuf, byte(len(pad)))
+       }
+       f.wbuf = append(f.wbuf, data...)
+       f.wbuf = append(f.wbuf, pad...)
+       return f.endWrite()
+}
+
+// A SettingsFrame conveys configuration parameters that affect how
+// endpoints communicate, such as preferences and constraints on peer
+// behavior.
+//
+// See http://http2.github.io/http2-spec/#SETTINGS
+type SettingsFrame struct {
+       FrameHeader
+       p []byte
+}
+
+func parseSettingsFrame(_ *frameCache, fh FrameHeader, p []byte) (Frame, error) {
+       if fh.Flags.Has(FlagSettingsAck) && fh.Length > 0 {
+               // When this (ACK 0x1) bit is set, the payload of the
+               // SETTINGS frame MUST be empty. Receipt of a
+               // SETTINGS frame with the ACK flag set and a length
+               // field value other than 0 MUST be treated as a
+               // connection error (Section 5.4.1) of type
+               // FRAME_SIZE_ERROR.
+               return nil, ConnectionError(ErrCodeFrameSize)
+       }
+       if fh.StreamID != 0 {
+               // SETTINGS frames always apply to a connection,
+               // never a single stream. The stream identifier for a
+               // SETTINGS frame MUST be zero (0x0).  If an endpoint
+               // receives a SETTINGS frame whose stream identifier
+               // field is anything other than 0x0, the endpoint MUST
+               // respond with a connection error (Section 5.4.1) of
+               // type PROTOCOL_ERROR.
+               return nil, ConnectionError(ErrCodeProtocol)
+       }
+       if len(p)%6 != 0 {
+               // Expecting even number of 6 byte settings.
+               return nil, ConnectionError(ErrCodeFrameSize)
+       }
+       f := &SettingsFrame{FrameHeader: fh, p: p}
+       if v, ok := f.Value(SettingInitialWindowSize); ok && v > (1<<31)-1 {
+               // Values above the maximum flow control window size of 2^31 - 1 MUST
+               // be treated as a connection error (Section 5.4.1) of type
+               // FLOW_CONTROL_ERROR.
+               return nil, ConnectionError(ErrCodeFlowControl)
+       }
+       return f, nil
+}
+
+func (f *SettingsFrame) IsAck() bool {
+       return f.FrameHeader.Flags.Has(FlagSettingsAck)
+}
+
+func (f *SettingsFrame) Value(id SettingID) (v uint32, ok bool) {
+       f.checkValid()
+       for i := 0; i < f.NumSettings(); i++ {
+               if s := f.Setting(i); s.ID == id {
+                       return s.Val, true
+               }
+       }
+       return 0, false
+}
+
+// Setting returns the setting from the frame at the given 0-based index.
+// The index must be >= 0 and less than f.NumSettings().
+func (f *SettingsFrame) Setting(i int) Setting {
+       buf := f.p
+       return Setting{
+               ID:  SettingID(binary.BigEndian.Uint16(buf[i*6 : i*6+2])),
+               Val: binary.BigEndian.Uint32(buf[i*6+2 : i*6+6]),
+       }
+}
+
+func (f *SettingsFrame) NumSettings() int { return len(f.p) / 6 }
+
+// HasDuplicates reports whether f contains any duplicate setting IDs.
+func (f *SettingsFrame) HasDuplicates() bool {
+       num := f.NumSettings()
+       if num == 0 {
+               return false
+       }
+       // If it's small enough (the common case), just do the n^2
+       // thing and avoid a map allocation.
+       if num < 10 {
+               for i := 0; i < num; i++ {
+                       idi := f.Setting(i).ID
+                       for j := i + 1; j < num; j++ {
+                               idj := f.Setting(j).ID
+                               if idi == idj {
+                                       return true
+                               }
+                       }
+               }
+               return false
+       }
+       seen := map[SettingID]bool{}
+       for i := 0; i < num; i++ {
+               id := f.Setting(i).ID
+               if seen[id] {
+                       return true
+               }
+               seen[id] = true
+       }
+       return false
+}
+
+// ForeachSetting runs fn for each setting.
+// It stops and returns the first error.
+func (f *SettingsFrame) ForeachSetting(fn func(Setting) error) error {
+       f.checkValid()
+       for i := 0; i < f.NumSettings(); i++ {
+               if err := fn(f.Setting(i)); err != nil {
+                       return err
+               }
+       }
+       return nil
+}
+
+// WriteSettings writes a SETTINGS frame with zero or more settings
+// specified and the ACK bit not set.
+//
+// It will perform exactly one Write to the underlying Writer.
+// It is the caller's responsibility to not call other Write methods concurrently.
+func (f *Framer) WriteSettings(settings ...Setting) error {
+       f.startWrite(FrameSettings, 0, 0)
+       for _, s := range settings {
+               f.writeUint16(uint16(s.ID))
+               f.writeUint32(s.Val)
+       }
+       return f.endWrite()
+}
+
+// WriteSettingsAck writes an empty SETTINGS frame with the ACK bit set.
+//
+// It will perform exactly one Write to the underlying Writer.
+// It is the caller's responsibility to not call other Write methods concurrently.
+func (f *Framer) WriteSettingsAck() error {
+       f.startWrite(FrameSettings, FlagSettingsAck, 0)
+       return f.endWrite()
+}
+
+// A PingFrame is a mechanism for measuring a minimal round trip time
+// from the sender, as well as determining whether an idle connection
+// is still functional.
+// See http://http2.github.io/http2-spec/#rfc.section.6.7
+type PingFrame struct {
+       FrameHeader
+       Data [8]byte
+}
+
+func (f *PingFrame) IsAck() bool { return f.Flags.Has(FlagPingAck) }
+
+func parsePingFrame(_ *frameCache, fh FrameHeader, payload []byte) (Frame, error) {
+       if len(payload) != 8 {
+               return nil, ConnectionError(ErrCodeFrameSize)
+       }
+       if fh.StreamID != 0 {
+               return nil, ConnectionError(ErrCodeProtocol)
+       }
+       f := &PingFrame{FrameHeader: fh}
+       copy(f.Data[:], payload)
+       return f, nil
+}
+
+func (f *Framer) WritePing(ack bool, data [8]byte) error {
+       var flags Flags
+       if ack {
+               flags = FlagPingAck
+       }
+       f.startWrite(FramePing, flags, 0)
+       f.writeBytes(data[:])
+       return f.endWrite()
+}
+
+// A GoAwayFrame informs the remote peer to stop creating streams on this connection.
+// See http://http2.github.io/http2-spec/#rfc.section.6.8
+type GoAwayFrame struct {
+       FrameHeader
+       LastStreamID uint32
+       ErrCode      ErrCode
+       debugData    []byte
+}
+
+// DebugData returns any debug data in the GOAWAY frame. Its contents
+// are not defined.
+// The caller must not retain the returned memory past the next
+// call to ReadFrame.
+func (f *GoAwayFrame) DebugData() []byte {
+       f.checkValid()
+       return f.debugData
+}
+
+func parseGoAwayFrame(_ *frameCache, fh FrameHeader, p []byte) (Frame, error) {
+       if fh.StreamID != 0 {
+               return nil, ConnectionError(ErrCodeProtocol)
+       }
+       if len(p) < 8 {
+               return nil, ConnectionError(ErrCodeFrameSize)
+       }
+       return &GoAwayFrame{
+               FrameHeader:  fh,
+               LastStreamID: binary.BigEndian.Uint32(p[:4]) & (1<<31 - 1),
+               ErrCode:      ErrCode(binary.BigEndian.Uint32(p[4:8])),
+               debugData:    p[8:],
+       }, nil
+}
+
+func (f *Framer) WriteGoAway(maxStreamID uint32, code ErrCode, debugData []byte) error {
+       f.startWrite(FrameGoAway, 0, 0)
+       f.writeUint32(maxStreamID & (1<<31 - 1))
+       f.writeUint32(uint32(code))
+       f.writeBytes(debugData)
+       return f.endWrite()
+}
+
+// An UnknownFrame is the frame type returned when the frame type is unknown
+// or no specific frame type parser exists.
+type UnknownFrame struct {
+       FrameHeader
+       p []byte
+}
+
+// Payload returns the frame's payload (after the header).  It is not
+// valid to call this method after a subsequent call to
+// Framer.ReadFrame, nor is it valid to retain the returned slice.
+// The memory is owned by the Framer and is invalidated when the next
+// frame is read.
+func (f *UnknownFrame) Payload() []byte {
+       f.checkValid()
+       return f.p
+}
+
+func parseUnknownFrame(_ *frameCache, fh FrameHeader, p []byte) (Frame, error) {
+       return &UnknownFrame{fh, p}, nil
+}
+
+// A WindowUpdateFrame is used to implement flow control.
+// See http://http2.github.io/http2-spec/#rfc.section.6.9
+type WindowUpdateFrame struct {
+       FrameHeader
+       Increment uint32 // never read with high bit set
+}
+
+func parseWindowUpdateFrame(_ *frameCache, fh FrameHeader, p []byte) (Frame, error) {
+       if len(p) != 4 {
+               return nil, ConnectionError(ErrCodeFrameSize)
+       }
+       inc := binary.BigEndian.Uint32(p[:4]) & 0x7fffffff // mask off high reserved bit
+       if inc == 0 {
+               // A receiver MUST treat the receipt of a
+               // WINDOW_UPDATE frame with an flow control window
+               // increment of 0 as a stream error (Section 5.4.2) of
+               // type PROTOCOL_ERROR; errors on the connection flow
+               // control window MUST be treated as a connection
+               // error (Section 5.4.1).
+               if fh.StreamID == 0 {
+                       return nil, ConnectionError(ErrCodeProtocol)
+               }
+               return nil, streamError(fh.StreamID, ErrCodeProtocol)
+       }
+       return &WindowUpdateFrame{
+               FrameHeader: fh,
+               Increment:   inc,
+       }, nil
+}
+
+// WriteWindowUpdate writes a WINDOW_UPDATE frame.
+// The increment value must be between 1 and 2,147,483,647, inclusive.
+// If the Stream ID is zero, the window update applies to the
+// connection as a whole.
+func (f *Framer) WriteWindowUpdate(streamID, incr uint32) error {
+       // "The legal range for the increment to the flow control window is 1 to 2^31-1 (2,147,483,647) octets."
+       if (incr < 1 || incr > 2147483647) && !f.AllowIllegalWrites {
+               return errors.New("illegal window increment value")
+       }
+       f.startWrite(FrameWindowUpdate, 0, streamID)
+       f.writeUint32(incr)
+       return f.endWrite()
+}
+
+// A HeadersFrame is used to open a stream and additionally carries a
+// header block fragment.
+type HeadersFrame struct {
+       FrameHeader
+
+       // Priority is set if FlagHeadersPriority is set in the FrameHeader.
+       Priority PriorityParam
+
+       headerFragBuf []byte // not owned
+}
+
+func (f *HeadersFrame) HeaderBlockFragment() []byte {
+       f.checkValid()
+       return f.headerFragBuf
+}
+
+func (f *HeadersFrame) HeadersEnded() bool {
+       return f.FrameHeader.Flags.Has(FlagHeadersEndHeaders)
+}
+
+func (f *HeadersFrame) StreamEnded() bool {
+       return f.FrameHeader.Flags.Has(FlagHeadersEndStream)
+}
+
+func (f *HeadersFrame) HasPriority() bool {
+       return f.FrameHeader.Flags.Has(FlagHeadersPriority)
+}
+
+func parseHeadersFrame(_ *frameCache, fh FrameHeader, p []byte) (_ Frame, err error) {
+       hf := &HeadersFrame{
+               FrameHeader: fh,
+       }
+       if fh.StreamID == 0 {
+               // HEADERS frames MUST be associated with a stream. If a HEADERS frame
+               // is received whose stream identifier field is 0x0, the recipient MUST
+               // respond with a connection error (Section 5.4.1) of type
+               // PROTOCOL_ERROR.
+               return nil, connError{ErrCodeProtocol, "HEADERS frame with stream ID 0"}
+       }
+       var padLength uint8
+       if fh.Flags.Has(FlagHeadersPadded) {
+               if p, padLength, err = readByte(p); err != nil {
+                       return
+               }
+       }
+       if fh.Flags.Has(FlagHeadersPriority) {
+               var v uint32
+               p, v, err = readUint32(p)
+               if err != nil {
+                       return nil, err
+               }
+               hf.Priority.StreamDep = v & 0x7fffffff
+               hf.Priority.Exclusive = (v != hf.Priority.StreamDep) // high bit was set
+               p, hf.Priority.Weight, err = readByte(p)
+               if err != nil {
+                       return nil, err
+               }
+       }
+       if len(p)-int(padLength) <= 0 {
+               return nil, streamError(fh.StreamID, ErrCodeProtocol)
+       }
+       hf.headerFragBuf = p[:len(p)-int(padLength)]
+       return hf, nil
+}
+
+// HeadersFrameParam are the parameters for writing a HEADERS frame.
+type HeadersFrameParam struct {
+       // StreamID is the required Stream ID to initiate.
+       StreamID uint32
+       // BlockFragment is part (or all) of a Header Block.
+       BlockFragment []byte
+
+       // EndStream indicates that the header block is the last that
+       // the endpoint will send for the identified stream. Setting
+       // this flag causes the stream to enter one of "half closed"
+       // states.
+       EndStream bool
+
+       // EndHeaders indicates that this frame contains an entire
+       // header block and is not followed by any
+       // CONTINUATION frames.
+       EndHeaders bool
+
+       // PadLength is the optional number of bytes of zeros to add
+       // to this frame.
+       PadLength uint8
+
+       // Priority, if non-zero, includes stream priority information
+       // in the HEADER frame.
+       Priority PriorityParam
+}
+
+// WriteHeaders writes a single HEADERS frame.
+//
+// This is a low-level header writing method. Encoding headers and
+// splitting them into any necessary CONTINUATION frames is handled
+// elsewhere.
+//
+// It will perform exactly one Write to the underlying Writer.
+// It is the caller's responsibility to not call other Write methods concurrently.
+func (f *Framer) WriteHeaders(p HeadersFrameParam) error {
+       if !validStreamID(p.StreamID) && !f.AllowIllegalWrites {
+               return errStreamID
+       }
+       var flags Flags
+       if p.PadLength != 0 {
+               flags |= FlagHeadersPadded
+       }
+       if p.EndStream {
+               flags |= FlagHeadersEndStream
+       }
+       if p.EndHeaders {
+               flags |= FlagHeadersEndHeaders
+       }
+       if !p.Priority.IsZero() {
+               flags |= FlagHeadersPriority
+       }
+       f.startWrite(FrameHeaders, flags, p.StreamID)
+       if p.PadLength != 0 {
+               f.writeByte(p.PadLength)
+       }
+       if !p.Priority.IsZero() {
+               v := p.Priority.StreamDep
+               if !validStreamIDOrZero(v) && !f.AllowIllegalWrites {
+                       return errDepStreamID
+               }
+               if p.Priority.Exclusive {
+                       v |= 1 << 31
+               }
+               f.writeUint32(v)
+               f.writeByte(p.Priority.Weight)
+       }
+       f.wbuf = append(f.wbuf, p.BlockFragment...)
+       f.wbuf = append(f.wbuf, padZeros[:p.PadLength]...)
+       return f.endWrite()
+}
+
+// A PriorityFrame specifies the sender-advised priority of a stream.
+// See http://http2.github.io/http2-spec/#rfc.section.6.3
+type PriorityFrame struct {
+       FrameHeader
+       PriorityParam
+}
+
+// PriorityParam are the stream prioritzation parameters.
+type PriorityParam struct {
+       // StreamDep is a 31-bit stream identifier for the
+       // stream that this stream depends on. Zero means no
+       // dependency.
+       StreamDep uint32
+
+       // Exclusive is whether the dependency is exclusive.
+       Exclusive bool
+
+       // Weight is the stream's zero-indexed weight. It should be
+       // set together with StreamDep, or neither should be set. Per
+       // the spec, "Add one to the value to obtain a weight between
+       // 1 and 256."
+       Weight uint8
+}
+
+func (p PriorityParam) IsZero() bool {
+       return p == PriorityParam{}
+}
+
+func parsePriorityFrame(_ *frameCache, fh FrameHeader, payload []byte) (Frame, error) {
+       if fh.StreamID == 0 {
+               return nil, connError{ErrCodeProtocol, "PRIORITY frame with stream ID 0"}
+       }
+       if len(payload) != 5 {
+               return nil, connError{ErrCodeFrameSize, fmt.Sprintf("PRIORITY frame payload size was %d; want 5", len(payload))}
+       }
+       v := binary.BigEndian.Uint32(payload[:4])
+       streamID := v & 0x7fffffff // mask off high bit
+       return &PriorityFrame{
+               FrameHeader: fh,
+               PriorityParam: PriorityParam{
+                       Weight:    payload[4],
+                       StreamDep: streamID,
+                       Exclusive: streamID != v, // was high bit set?
+               },
+       }, nil
+}
+
+// WritePriority writes a PRIORITY frame.
+//
+// It will perform exactly one Write to the underlying Writer.
+// It is the caller's responsibility to not call other Write methods concurrently.
+func (f *Framer) WritePriority(streamID uint32, p PriorityParam) error {
+       if !validStreamID(streamID) && !f.AllowIllegalWrites {
+               return errStreamID
+       }
+       if !validStreamIDOrZero(p.StreamDep) {
+               return errDepStreamID
+       }
+       f.startWrite(FramePriority, 0, streamID)
+       v := p.StreamDep
+       if p.Exclusive {
+               v |= 1 << 31
+       }
+       f.writeUint32(v)
+       f.writeByte(p.Weight)
+       return f.endWrite()
+}
+
+// A RSTStreamFrame allows for abnormal termination of a stream.
+// See http://http2.github.io/http2-spec/#rfc.section.6.4
+type RSTStreamFrame struct {
+       FrameHeader
+       ErrCode ErrCode
+}
+
+func parseRSTStreamFrame(_ *frameCache, fh FrameHeader, p []byte) (Frame, error) {
+       if len(p) != 4 {
+               return nil, ConnectionError(ErrCodeFrameSize)
+       }
+       if fh.StreamID == 0 {
+               return nil, ConnectionError(ErrCodeProtocol)
+       }
+       return &RSTStreamFrame{fh, ErrCode(binary.BigEndian.Uint32(p[:4]))}, nil
+}
+
+// WriteRSTStream writes a RST_STREAM frame.
+//
+// It will perform exactly one Write to the underlying Writer.
+// It is the caller's responsibility to not call other Write methods concurrently.
+func (f *Framer) WriteRSTStream(streamID uint32, code ErrCode) error {
+       if !validStreamID(streamID) && !f.AllowIllegalWrites {
+               return errStreamID
+       }
+       f.startWrite(FrameRSTStream, 0, streamID)
+       f.writeUint32(uint32(code))
+       return f.endWrite()
+}
+
+// A ContinuationFrame is used to continue a sequence of header block fragments.
+// See http://http2.github.io/http2-spec/#rfc.section.6.10
+type ContinuationFrame struct {
+       FrameHeader
+       headerFragBuf []byte
+}
+
+func parseContinuationFrame(_ *frameCache, fh FrameHeader, p []byte) (Frame, error) {
+       if fh.StreamID == 0 {
+               return nil, connError{ErrCodeProtocol, "CONTINUATION frame with stream ID 0"}
+       }
+       return &ContinuationFrame{fh, p}, nil
+}
+
+func (f *ContinuationFrame) HeaderBlockFragment() []byte {
+       f.checkValid()
+       return f.headerFragBuf
+}
+
+func (f *ContinuationFrame) HeadersEnded() bool {
+       return f.FrameHeader.Flags.Has(FlagContinuationEndHeaders)
+}
+
+// WriteContinuation writes a CONTINUATION frame.
+//
+// It will perform exactly one Write to the underlying Writer.
+// It is the caller's responsibility to not call other Write methods concurrently.
+func (f *Framer) WriteContinuation(streamID uint32, endHeaders bool, headerBlockFragment []byte) error {
+       if !validStreamID(streamID) && !f.AllowIllegalWrites {
+               return errStreamID
+       }
+       var flags Flags
+       if endHeaders {
+               flags |= FlagContinuationEndHeaders
+       }
+       f.startWrite(FrameContinuation, flags, streamID)
+       f.wbuf = append(f.wbuf, headerBlockFragment...)
+       return f.endWrite()
+}
+
+// A PushPromiseFrame is used to initiate a server stream.
+// See http://http2.github.io/http2-spec/#rfc.section.6.6
+type PushPromiseFrame struct {
+       FrameHeader
+       PromiseID     uint32
+       headerFragBuf []byte // not owned
+}
+
+func (f *PushPromiseFrame) HeaderBlockFragment() []byte {
+       f.checkValid()
+       return f.headerFragBuf
+}
+
+func (f *PushPromiseFrame) HeadersEnded() bool {
+       return f.FrameHeader.Flags.Has(FlagPushPromiseEndHeaders)
+}
+
+func parsePushPromise(_ *frameCache, fh FrameHeader, p []byte) (_ Frame, err error) {
+       pp := &PushPromiseFrame{
+               FrameHeader: fh,
+       }
+       if pp.StreamID == 0 {
+               // PUSH_PROMISE frames MUST be associated with an existing,
+               // peer-initiated stream. The stream identifier of a
+               // PUSH_PROMISE frame indicates the stream it is associated
+               // with. If the stream identifier field specifies the value
+               // 0x0, a recipient MUST respond with a connection error
+               // (Section 5.4.1) of type PROTOCOL_ERROR.
+               return nil, ConnectionError(ErrCodeProtocol)
+       }
+       // The PUSH_PROMISE frame includes optional padding.
+       // Padding fields and flags are identical to those defined for DATA frames
+       var padLength uint8
+       if fh.Flags.Has(FlagPushPromisePadded) {
+               if p, padLength, err = readByte(p); err != nil {
+                       return
+               }
+       }
+
+       p, pp.PromiseID, err = readUint32(p)
+       if err != nil {
+               return
+       }
+       pp.PromiseID = pp.PromiseID & (1<<31 - 1)
+
+       if int(padLength) > len(p) {
+               // like the DATA frame, error out if padding is longer than the body.
+               return nil, ConnectionError(ErrCodeProtocol)
+       }
+       pp.headerFragBuf = p[:len(p)-int(padLength)]
+       return pp, nil
+}
+
+// PushPromiseParam are the parameters for writing a PUSH_PROMISE frame.
+type PushPromiseParam struct {
+       // StreamID is the required Stream ID to initiate.
+       StreamID uint32
+
+       // PromiseID is the required Stream ID which this
+       // Push Promises
+       PromiseID uint32
+
+       // BlockFragment is part (or all) of a Header Block.
+       BlockFragment []byte
+
+       // EndHeaders indicates that this frame contains an entire
+       // header block and is not followed by any
+       // CONTINUATION frames.
+       EndHeaders bool
+
+       // PadLength is the optional number of bytes of zeros to add
+       // to this frame.
+       PadLength uint8
+}
+
+// WritePushPromise writes a single PushPromise Frame.
+//
+// As with Header Frames, This is the low level call for writing
+// individual frames. Continuation frames are handled elsewhere.
+//
+// It will perform exactly one Write to the underlying Writer.
+// It is the caller's responsibility to not call other Write methods concurrently.
+func (f *Framer) WritePushPromise(p PushPromiseParam) error {
+       if !validStreamID(p.StreamID) && !f.AllowIllegalWrites {
+               return errStreamID
+       }
+       var flags Flags
+       if p.PadLength != 0 {
+               flags |= FlagPushPromisePadded
+       }
+       if p.EndHeaders {
+               flags |= FlagPushPromiseEndHeaders
+       }
+       f.startWrite(FramePushPromise, flags, p.StreamID)
+       if p.PadLength != 0 {
+               f.writeByte(p.PadLength)
+       }
+       if !validStreamID(p.PromiseID) && !f.AllowIllegalWrites {
+               return errStreamID
+       }
+       f.writeUint32(p.PromiseID)
+       f.wbuf = append(f.wbuf, p.BlockFragment...)
+       f.wbuf = append(f.wbuf, padZeros[:p.PadLength]...)
+       return f.endWrite()
+}
+
+// WriteRawFrame writes a raw frame. This can be used to write
+// extension frames unknown to this package.
+func (f *Framer) WriteRawFrame(t FrameType, flags Flags, streamID uint32, payload []byte) error {
+       f.startWrite(t, flags, streamID)
+       f.writeBytes(payload)
+       return f.endWrite()
+}
+
+func readByte(p []byte) (remain []byte, b byte, err error) {
+       if len(p) == 0 {
+               return nil, 0, io.ErrUnexpectedEOF
+       }
+       return p[1:], p[0], nil
+}
+
+func readUint32(p []byte) (remain []byte, v uint32, err error) {
+       if len(p) < 4 {
+               return nil, 0, io.ErrUnexpectedEOF
+       }
+       return p[4:], binary.BigEndian.Uint32(p[:4]), nil
+}
+
+type streamEnder interface {
+       StreamEnded() bool
+}
+
+type headersEnder interface {
+       HeadersEnded() bool
+}
+
+type headersOrContinuation interface {
+       headersEnder
+       HeaderBlockFragment() []byte
+}
+
+// A MetaHeadersFrame is the representation of one HEADERS frame and
+// zero or more contiguous CONTINUATION frames and the decoding of
+// their HPACK-encoded contents.
+//
+// This type of frame does not appear on the wire and is only returned
+// by the Framer when Framer.ReadMetaHeaders is set.
+type MetaHeadersFrame struct {
+       *HeadersFrame
+
+       // Fields are the fields contained in the HEADERS and
+       // CONTINUATION frames. The underlying slice is owned by the
+       // Framer and must not be retained after the next call to
+       // ReadFrame.
+       //
+       // Fields are guaranteed to be in the correct http2 order and
+       // not have unknown pseudo header fields or invalid header
+       // field names or values. Required pseudo header fields may be
+       // missing, however. Use the MetaHeadersFrame.Pseudo accessor
+       // method access pseudo headers.
+       Fields []hpack.HeaderField
+
+       // Truncated is whether the max header list size limit was hit
+       // and Fields is incomplete. The hpack decoder state is still
+       // valid, however.
+       Truncated bool
+}
+
+// PseudoValue returns the given pseudo header field's value.
+// The provided pseudo field should not contain the leading colon.
+func (mh *MetaHeadersFrame) PseudoValue(pseudo string) string {
+       for _, hf := range mh.Fields {
+               if !hf.IsPseudo() {
+                       return ""
+               }
+               if hf.Name[1:] == pseudo {
+                       return hf.Value
+               }
+       }
+       return ""
+}
+
+// RegularFields returns the regular (non-pseudo) header fields of mh.
+// The caller does not own the returned slice.
+func (mh *MetaHeadersFrame) RegularFields() []hpack.HeaderField {
+       for i, hf := range mh.Fields {
+               if !hf.IsPseudo() {
+                       return mh.Fields[i:]
+               }
+       }
+       return nil
+}
+
+// PseudoFields returns the pseudo header fields of mh.
+// The caller does not own the returned slice.
+func (mh *MetaHeadersFrame) PseudoFields() []hpack.HeaderField {
+       for i, hf := range mh.Fields {
+               if !hf.IsPseudo() {
+                       return mh.Fields[:i]
+               }
+       }
+       return mh.Fields
+}
+
+func (mh *MetaHeadersFrame) checkPseudos() error {
+       var isRequest, isResponse bool
+       pf := mh.PseudoFields()
+       for i, hf := range pf {
+               switch hf.Name {
+               case ":method", ":path", ":scheme", ":authority":
+                       isRequest = true
+               case ":status":
+                       isResponse = true
+               default:
+                       return pseudoHeaderError(hf.Name)
+               }
+               // Check for duplicates.
+               // This would be a bad algorithm, but N is 4.
+               // And this doesn't allocate.
+               for _, hf2 := range pf[:i] {
+                       if hf.Name == hf2.Name {
+                               return duplicatePseudoHeaderError(hf.Name)
+                       }
+               }
+       }
+       if isRequest && isResponse {
+               return errMixPseudoHeaderTypes
+       }
+       return nil
+}
+
+func (fr *Framer) maxHeaderStringLen() int {
+       v := fr.maxHeaderListSize()
+       if uint32(int(v)) == v {
+               return int(v)
+       }
+       // They had a crazy big number for MaxHeaderBytes anyway,
+       // so give them unlimited header lengths:
+       return 0
+}
+
+// readMetaFrame returns 0 or more CONTINUATION frames from fr and
+// merge them into the provided hf and returns a MetaHeadersFrame
+// with the decoded hpack values.
+func (fr *Framer) readMetaFrame(hf *HeadersFrame) (*MetaHeadersFrame, error) {
+       if fr.AllowIllegalReads {
+               return nil, errors.New("illegal use of AllowIllegalReads with ReadMetaHeaders")
+       }
+       mh := &MetaHeadersFrame{
+               HeadersFrame: hf,
+       }
+       var remainSize = fr.maxHeaderListSize()
+       var sawRegular bool
+
+       var invalid error // pseudo header field errors
+       hdec := fr.ReadMetaHeaders
+       hdec.SetEmitEnabled(true)
+       hdec.SetMaxStringLength(fr.maxHeaderStringLen())
+       hdec.SetEmitFunc(func(hf hpack.HeaderField) {
+               if VerboseLogs && fr.logReads {
+                       fr.debugReadLoggerf("http2: decoded hpack field %+v", hf)
+               }
+               if !httpguts.ValidHeaderFieldValue(hf.Value) {
+                       invalid = headerFieldValueError(hf.Value)
+               }
+               isPseudo := strings.HasPrefix(hf.Name, ":")
+               if isPseudo {
+                       if sawRegular {
+                               invalid = errPseudoAfterRegular
+                       }
+               } else {
+                       sawRegular = true
+                       if !validWireHeaderFieldName(hf.Name) {
+                               invalid = headerFieldNameError(hf.Name)
+                       }
+               }
+
+               if invalid != nil {
+                       hdec.SetEmitEnabled(false)
+                       return
+               }
+
+               size := hf.Size()
+               if size > remainSize {
+                       hdec.SetEmitEnabled(false)
+                       mh.Truncated = true
+                       return
+               }
+               remainSize -= size
+
+               mh.Fields = append(mh.Fields, hf)
+       })
+       // Lose reference to MetaHeadersFrame:
+       defer hdec.SetEmitFunc(func(hf hpack.HeaderField) {})
+
+       var hc headersOrContinuation = hf
+       for {
+               frag := hc.HeaderBlockFragment()
+               if _, err := hdec.Write(frag); err != nil {
+                       return nil, ConnectionError(ErrCodeCompression)
+               }
+
+               if hc.HeadersEnded() {
+                       break
+               }
+               if f, err := fr.ReadFrame(); err != nil {
+                       return nil, err
+               } else {
+                       hc = f.(*ContinuationFrame) // guaranteed by checkFrameOrder
+               }
+       }
+
+       mh.HeadersFrame.headerFragBuf = nil
+       mh.HeadersFrame.invalidate()
+
+       if err := hdec.Close(); err != nil {
+               return nil, ConnectionError(ErrCodeCompression)
+       }
+       if invalid != nil {
+               fr.errDetail = invalid
+               if VerboseLogs {
+                       log.Printf("http2: invalid header: %v", invalid)
+               }
+               return nil, StreamError{mh.StreamID, ErrCodeProtocol, invalid}
+       }
+       if err := mh.checkPseudos(); err != nil {
+               fr.errDetail = err
+               if VerboseLogs {
+                       log.Printf("http2: invalid pseudo headers: %v", err)
+               }
+               return nil, StreamError{mh.StreamID, ErrCodeProtocol, err}
+       }
+       return mh, nil
+}
+
+func summarizeFrame(f Frame) string {
+       var buf bytes.Buffer
+       f.Header().writeDebug(&buf)
+       switch f := f.(type) {
+       case *SettingsFrame:
+               n := 0
+               f.ForeachSetting(func(s Setting) error {
+                       n++
+                       if n == 1 {
+                               buf.WriteString(", settings:")
+                       }
+                       fmt.Fprintf(&buf, " %v=%v,", s.ID, s.Val)
+                       return nil
+               })
+               if n > 0 {
+                       buf.Truncate(buf.Len() - 1) // remove trailing comma
+               }
+       case *DataFrame:
+               data := f.Data()
+               const max = 256
+               if len(data) > max {
+                       data = data[:max]
+               }
+               fmt.Fprintf(&buf, " data=%q", data)
+               if len(f.Data()) > max {
+                       fmt.Fprintf(&buf, " (%d bytes omitted)", len(f.Data())-max)
+               }
+       case *WindowUpdateFrame:
+               if f.StreamID == 0 {
+                       buf.WriteString(" (conn)")
+               }
+               fmt.Fprintf(&buf, " incr=%v", f.Increment)
+       case *PingFrame:
+               fmt.Fprintf(&buf, " ping=%q", f.Data[:])
+       case *GoAwayFrame:
+               fmt.Fprintf(&buf, " LastStreamID=%v ErrCode=%v Debug=%q",
+                       f.LastStreamID, f.ErrCode, f.debugData)
+       case *RSTStreamFrame:
+               fmt.Fprintf(&buf, " ErrCode=%v", f.ErrCode)
+       }
+       return buf.String()
+}
diff --git a/vendor/golang.org/x/net/http2/go111.go b/vendor/golang.org/x/net/http2/go111.go
new file mode 100644 (file)
index 0000000..3a13101
--- /dev/null
@@ -0,0 +1,29 @@
+// Copyright 2018 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 go1.11
+
+package http2
+
+import (
+       "net/http/httptrace"
+       "net/textproto"
+)
+
+func traceHasWroteHeaderField(trace *httptrace.ClientTrace) bool {
+       return trace != nil && trace.WroteHeaderField != nil
+}
+
+func traceWroteHeaderField(trace *httptrace.ClientTrace, k, v string) {
+       if trace != nil && trace.WroteHeaderField != nil {
+               trace.WroteHeaderField(k, []string{v})
+       }
+}
+
+func traceGot1xxResponseFunc(trace *httptrace.ClientTrace) func(int, textproto.MIMEHeader) error {
+       if trace != nil {
+               return trace.Got1xxResponse
+       }
+       return nil
+}
diff --git a/vendor/golang.org/x/net/http2/gotrack.go b/vendor/golang.org/x/net/http2/gotrack.go
new file mode 100644 (file)
index 0000000..9933c9f
--- /dev/null
@@ -0,0 +1,170 @@
+// Copyright 2014 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Defensive debug-only utility to track that functions run on the
+// goroutine that they're supposed to.
+
+package http2
+
+import (
+       "bytes"
+       "errors"
+       "fmt"
+       "os"
+       "runtime"
+       "strconv"
+       "sync"
+)
+
+var DebugGoroutines = os.Getenv("DEBUG_HTTP2_GOROUTINES") == "1"
+
+type goroutineLock uint64
+
+func newGoroutineLock() goroutineLock {
+       if !DebugGoroutines {
+               return 0
+       }
+       return goroutineLock(curGoroutineID())
+}
+
+func (g goroutineLock) check() {
+       if !DebugGoroutines {
+               return
+       }
+       if curGoroutineID() != uint64(g) {
+               panic("running on the wrong goroutine")
+       }
+}
+
+func (g goroutineLock) checkNotOn() {
+       if !DebugGoroutines {
+               return
+       }
+       if curGoroutineID() == uint64(g) {
+               panic("running on the wrong goroutine")
+       }
+}
+
+var goroutineSpace = []byte("goroutine ")
+
+func curGoroutineID() uint64 {
+       bp := littleBuf.Get().(*[]byte)
+       defer littleBuf.Put(bp)
+       b := *bp
+       b = b[:runtime.Stack(b, false)]
+       // Parse the 4707 out of "goroutine 4707 ["
+       b = bytes.TrimPrefix(b, goroutineSpace)
+       i := bytes.IndexByte(b, ' ')
+       if i < 0 {
+               panic(fmt.Sprintf("No space found in %q", b))
+       }
+       b = b[:i]
+       n, err := parseUintBytes(b, 10, 64)
+       if err != nil {
+               panic(fmt.Sprintf("Failed to parse goroutine ID out of %q: %v", b, err))
+       }
+       return n
+}
+
+var littleBuf = sync.Pool{
+       New: func() interface{} {
+               buf := make([]byte, 64)
+               return &buf
+       },
+}
+
+// parseUintBytes is like strconv.ParseUint, but using a []byte.
+func parseUintBytes(s []byte, base int, bitSize int) (n uint64, err error) {
+       var cutoff, maxVal uint64
+
+       if bitSize == 0 {
+               bitSize = int(strconv.IntSize)
+       }
+
+       s0 := s
+       switch {
+       case len(s) < 1:
+               err = strconv.ErrSyntax
+               goto Error
+
+       case 2 <= base && base <= 36:
+               // valid base; nothing to do
+
+       case base == 0:
+               // Look for octal, hex prefix.
+               switch {
+               case s[0] == '0' && len(s) > 1 && (s[1] == 'x' || s[1] == 'X'):
+                       base = 16
+                       s = s[2:]
+                       if len(s) < 1 {
+                               err = strconv.ErrSyntax
+                               goto Error
+                       }
+               case s[0] == '0':
+                       base = 8
+               default:
+                       base = 10
+               }
+
+       default:
+               err = errors.New("invalid base " + strconv.Itoa(base))
+               goto Error
+       }
+
+       n = 0
+       cutoff = cutoff64(base)
+       maxVal = 1<<uint(bitSize) - 1
+
+       for i := 0; i < len(s); i++ {
+               var v byte
+               d := s[i]
+               switch {
+               case '0' <= d && d <= '9':
+                       v = d - '0'
+               case 'a' <= d && d <= 'z':
+                       v = d - 'a' + 10
+               case 'A' <= d && d <= 'Z':
+                       v = d - 'A' + 10
+               default:
+                       n = 0
+                       err = strconv.ErrSyntax
+                       goto Error
+               }
+               if int(v) >= base {
+                       n = 0
+                       err = strconv.ErrSyntax
+                       goto Error
+               }
+
+               if n >= cutoff {
+                       // n*base overflows
+                       n = 1<<64 - 1
+                       err = strconv.ErrRange
+                       goto Error
+               }
+               n *= uint64(base)
+
+               n1 := n + uint64(v)
+               if n1 < n || n1 > maxVal {
+                       // n+v overflows
+                       n = 1<<64 - 1
+                       err = strconv.ErrRange
+                       goto Error
+               }
+               n = n1
+       }
+
+       return n, nil
+
+Error:
+       return n, &strconv.NumError{Func: "ParseUint", Num: string(s0), Err: err}
+}
+
+// Return the first number n such that n*base >= 1<<64.
+func cutoff64(base int) uint64 {
+       if base < 2 {
+               return 0
+       }
+       return (1<<64-1)/uint64(base) + 1
+}
diff --git a/vendor/golang.org/x/net/http2/headermap.go b/vendor/golang.org/x/net/http2/headermap.go
new file mode 100644 (file)
index 0000000..c3ff3fa
--- /dev/null
@@ -0,0 +1,88 @@
+// Copyright 2014 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package http2
+
+import (
+       "net/http"
+       "strings"
+       "sync"
+)
+
+var (
+       commonBuildOnce   sync.Once
+       commonLowerHeader map[string]string // Go-Canonical-Case -> lower-case
+       commonCanonHeader map[string]string // lower-case -> Go-Canonical-Case
+)
+
+func buildCommonHeaderMapsOnce() {
+       commonBuildOnce.Do(buildCommonHeaderMaps)
+}
+
+func buildCommonHeaderMaps() {
+       common := []string{
+               "accept",
+               "accept-charset",
+               "accept-encoding",
+               "accept-language",
+               "accept-ranges",
+               "age",
+               "access-control-allow-origin",
+               "allow",
+               "authorization",
+               "cache-control",
+               "content-disposition",
+               "content-encoding",
+               "content-language",
+               "content-length",
+               "content-location",
+               "content-range",
+               "content-type",
+               "cookie",
+               "date",
+               "etag",
+               "expect",
+               "expires",
+               "from",
+               "host",
+               "if-match",
+               "if-modified-since",
+               "if-none-match",
+               "if-unmodified-since",
+               "last-modified",
+               "link",
+               "location",
+               "max-forwards",
+               "proxy-authenticate",
+               "proxy-authorization",
+               "range",
+               "referer",
+               "refresh",
+               "retry-after",
+               "server",
+               "set-cookie",
+               "strict-transport-security",
+               "trailer",
+               "transfer-encoding",
+               "user-agent",
+               "vary",
+               "via",
+               "www-authenticate",
+       }
+       commonLowerHeader = make(map[string]string, len(common))
+       commonCanonHeader = make(map[string]string, len(common))
+       for _, v := range common {
+               chk := http.CanonicalHeaderKey(v)
+               commonLowerHeader[chk] = v
+               commonCanonHeader[v] = chk
+       }
+}
+
+func lowerHeader(v string) string {
+       buildCommonHeaderMapsOnce()
+       if s, ok := commonLowerHeader[v]; ok {
+               return s
+       }
+       return strings.ToLower(v)
+}
diff --git a/vendor/golang.org/x/net/http2/hpack/encode.go b/vendor/golang.org/x/net/http2/hpack/encode.go
new file mode 100644 (file)
index 0000000..97f1783
--- /dev/null
@@ -0,0 +1,240 @@
+// Copyright 2014 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package hpack
+
+import (
+       "io"
+)
+
+const (
+       uint32Max              = ^uint32(0)
+       initialHeaderTableSize = 4096
+)
+
+type Encoder struct {
+       dynTab dynamicTable
+       // minSize is the minimum table size set by
+       // SetMaxDynamicTableSize after the previous Header Table Size
+       // Update.
+       minSize uint32
+       // maxSizeLimit is the maximum table size this encoder
+       // supports. This will protect the encoder from too large
+       // size.
+       maxSizeLimit uint32
+       // tableSizeUpdate indicates whether "Header Table Size
+       // Update" is required.
+       tableSizeUpdate bool
+       w               io.Writer
+       buf             []byte
+}
+
+// NewEncoder returns a new Encoder which performs HPACK encoding. An
+// encoded data is written to w.
+func NewEncoder(w io.Writer) *Encoder {
+       e := &Encoder{
+               minSize:         uint32Max,
+               maxSizeLimit:    initialHeaderTableSize,
+               tableSizeUpdate: false,
+               w:               w,
+       }
+       e.dynTab.table.init()
+       e.dynTab.setMaxSize(initialHeaderTableSize)
+       return e
+}
+
+// WriteField encodes f into a single Write to e's underlying Writer.
+// This function may also produce bytes for "Header Table Size Update"
+// if necessary. If produced, it is done before encoding f.
+func (e *Encoder) WriteField(f HeaderField) error {
+       e.buf = e.buf[:0]
+
+       if e.tableSizeUpdate {
+               e.tableSizeUpdate = false
+               if e.minSize < e.dynTab.maxSize {
+                       e.buf = appendTableSize(e.buf, e.minSize)
+               }
+               e.minSize = uint32Max
+               e.buf = appendTableSize(e.buf, e.dynTab.maxSize)
+       }
+
+       idx, nameValueMatch := e.searchTable(f)
+       if nameValueMatch {
+               e.buf = appendIndexed(e.buf, idx)
+       } else {
+               indexing := e.shouldIndex(f)
+               if indexing {
+                       e.dynTab.add(f)
+               }
+
+               if idx == 0 {
+                       e.buf = appendNewName(e.buf, f, indexing)
+               } else {
+                       e.buf = appendIndexedName(e.buf, f, idx, indexing)
+               }
+       }
+       n, err := e.w.Write(e.buf)
+       if err == nil && n != len(e.buf) {
+               err = io.ErrShortWrite
+       }
+       return err
+}
+
+// searchTable searches f in both stable and dynamic header tables.
+// The static header table is searched first. Only when there is no
+// exact match for both name and value, the dynamic header table is
+// then searched. If there is no match, i is 0. If both name and value
+// match, i is the matched index and nameValueMatch becomes true. If
+// only name matches, i points to that index and nameValueMatch
+// becomes false.
+func (e *Encoder) searchTable(f HeaderField) (i uint64, nameValueMatch bool) {
+       i, nameValueMatch = staticTable.search(f)
+       if nameValueMatch {
+               return i, true
+       }
+
+       j, nameValueMatch := e.dynTab.table.search(f)
+       if nameValueMatch || (i == 0 && j != 0) {
+               return j + uint64(staticTable.len()), nameValueMatch
+       }
+
+       return i, false
+}
+
+// SetMaxDynamicTableSize changes the dynamic header table size to v.
+// The actual size is bounded by the value passed to
+// SetMaxDynamicTableSizeLimit.
+func (e *Encoder) SetMaxDynamicTableSize(v uint32) {
+       if v > e.maxSizeLimit {
+               v = e.maxSizeLimit
+       }
+       if v < e.minSize {
+               e.minSize = v
+       }
+       e.tableSizeUpdate = true
+       e.dynTab.setMaxSize(v)
+}
+
+// SetMaxDynamicTableSizeLimit changes the maximum value that can be
+// specified in SetMaxDynamicTableSize to v. By default, it is set to
+// 4096, which is the same size of the default dynamic header table
+// size described in HPACK specification. If the current maximum
+// dynamic header table size is strictly greater than v, "Header Table
+// Size Update" will be done in the next WriteField call and the
+// maximum dynamic header table size is truncated to v.
+func (e *Encoder) SetMaxDynamicTableSizeLimit(v uint32) {
+       e.maxSizeLimit = v
+       if e.dynTab.maxSize > v {
+               e.tableSizeUpdate = true
+               e.dynTab.setMaxSize(v)
+       }
+}
+
+// shouldIndex reports whether f should be indexed.
+func (e *Encoder) shouldIndex(f HeaderField) bool {
+       return !f.Sensitive && f.Size() <= e.dynTab.maxSize
+}
+
+// appendIndexed appends index i, as encoded in "Indexed Header Field"
+// representation, to dst and returns the extended buffer.
+func appendIndexed(dst []byte, i uint64) []byte {
+       first := len(dst)
+       dst = appendVarInt(dst, 7, i)
+       dst[first] |= 0x80
+       return dst
+}
+
+// appendNewName appends f, as encoded in one of "Literal Header field
+// - New Name" representation variants, to dst and returns the
+// extended buffer.
+//
+// If f.Sensitive is true, "Never Indexed" representation is used. If
+// f.Sensitive is false and indexing is true, "Incremental Indexing"
+// representation is used.
+func appendNewName(dst []byte, f HeaderField, indexing bool) []byte {
+       dst = append(dst, encodeTypeByte(indexing, f.Sensitive))
+       dst = appendHpackString(dst, f.Name)
+       return appendHpackString(dst, f.Value)
+}
+
+// appendIndexedName appends f and index i referring indexed name
+// entry, as encoded in one of "Literal Header field - Indexed Name"
+// representation variants, to dst and returns the extended buffer.
+//
+// If f.Sensitive is true, "Never Indexed" representation is used. If
+// f.Sensitive is false and indexing is true, "Incremental Indexing"
+// representation is used.
+func appendIndexedName(dst []byte, f HeaderField, i uint64, indexing bool) []byte {
+       first := len(dst)
+       var n byte
+       if indexing {
+               n = 6
+       } else {
+               n = 4
+       }
+       dst = appendVarInt(dst, n, i)
+       dst[first] |= encodeTypeByte(indexing, f.Sensitive)
+       return appendHpackString(dst, f.Value)
+}
+
+// appendTableSize appends v, as encoded in "Header Table Size Update"
+// representation, to dst and returns the extended buffer.
+func appendTableSize(dst []byte, v uint32) []byte {
+       first := len(dst)
+       dst = appendVarInt(dst, 5, uint64(v))
+       dst[first] |= 0x20
+       return dst
+}
+
+// appendVarInt appends i, as encoded in variable integer form using n
+// bit prefix, to dst and returns the extended buffer.
+//
+// See
+// http://http2.github.io/http2-spec/compression.html#integer.representation
+func appendVarInt(dst []byte, n byte, i uint64) []byte {
+       k := uint64((1 << n) - 1)
+       if i < k {
+               return append(dst, byte(i))
+       }
+       dst = append(dst, byte(k))
+       i -= k
+       for ; i >= 128; i >>= 7 {
+               dst = append(dst, byte(0x80|(i&0x7f)))
+       }
+       return append(dst, byte(i))
+}
+
+// appendHpackString appends s, as encoded in "String Literal"
+// representation, to dst and returns the extended buffer.
+//
+// s will be encoded in Huffman codes only when it produces strictly
+// shorter byte string.
+func appendHpackString(dst []byte, s string) []byte {
+       huffmanLength := HuffmanEncodeLength(s)
+       if huffmanLength < uint64(len(s)) {
+               first := len(dst)
+               dst = appendVarInt(dst, 7, huffmanLength)
+               dst = AppendHuffmanString(dst, s)
+               dst[first] |= 0x80
+       } else {
+               dst = appendVarInt(dst, 7, uint64(len(s)))
+               dst = append(dst, s...)
+       }
+       return dst
+}
+
+// encodeTypeByte returns type byte. If sensitive is true, type byte
+// for "Never Indexed" representation is returned. If sensitive is
+// false and indexing is true, type byte for "Incremental Indexing"
+// representation is returned. Otherwise, type byte for "Without
+// Indexing" is returned.
+func encodeTypeByte(indexing, sensitive bool) byte {
+       if sensitive {
+               return 0x10
+       }
+       if indexing {
+               return 0x40
+       }
+       return 0
+}
diff --git a/vendor/golang.org/x/net/http2/hpack/hpack.go b/vendor/golang.org/x/net/http2/hpack/hpack.go
new file mode 100644 (file)
index 0000000..85f18a2
--- /dev/null
@@ -0,0 +1,504 @@
+// Copyright 2014 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Package hpack implements HPACK, a compression format for
+// efficiently representing HTTP header fields in the context of HTTP/2.
+//
+// See http://tools.ietf.org/html/draft-ietf-httpbis-header-compression-09
+package hpack
+
+import (
+       "bytes"
+       "errors"
+       "fmt"
+)
+
+// A DecodingError is something the spec defines as a decoding error.
+type DecodingError struct {
+       Err error
+}
+
+func (de DecodingError) Error() string {
+       return fmt.Sprintf("decoding error: %v", de.Err)
+}
+
+// An InvalidIndexError is returned when an encoder references a table
+// entry before the static table or after the end of the dynamic table.
+type InvalidIndexError int
+
+func (e InvalidIndexError) Error() string {
+       return fmt.Sprintf("invalid indexed representation index %d", int(e))
+}
+
+// A HeaderField is a name-value pair. Both the name and value are
+// treated as opaque sequences of octets.
+type HeaderField struct {
+       Name, Value string
+
+       // Sensitive means that this header field should never be
+       // indexed.
+       Sensitive bool
+}
+
+// IsPseudo reports whether the header field is an http2 pseudo header.
+// That is, it reports whether it starts with a colon.
+// It is not otherwise guaranteed to be a valid pseudo header field,
+// though.
+func (hf HeaderField) IsPseudo() bool {
+       return len(hf.Name) != 0 && hf.Name[0] == ':'
+}
+
+func (hf HeaderField) String() string {
+       var suffix string
+       if hf.Sensitive {
+               suffix = " (sensitive)"
+       }
+       return fmt.Sprintf("header field %q = %q%s", hf.Name, hf.Value, suffix)
+}
+
+// Size returns the size of an entry per RFC 7541 section 4.1.
+func (hf HeaderField) Size() uint32 {
+       // http://http2.github.io/http2-spec/compression.html#rfc.section.4.1
+       // "The size of the dynamic table is the sum of the size of
+       // its entries. The size of an entry is the sum of its name's
+       // length in octets (as defined in Section 5.2), its value's
+       // length in octets (see Section 5.2), plus 32.  The size of
+       // an entry is calculated using the length of the name and
+       // value without any Huffman encoding applied."
+
+       // This can overflow if somebody makes a large HeaderField
+       // Name and/or Value by hand, but we don't care, because that
+       // won't happen on the wire because the encoding doesn't allow
+       // it.
+       return uint32(len(hf.Name) + len(hf.Value) + 32)
+}
+
+// A Decoder is the decoding context for incremental processing of
+// header blocks.
+type Decoder struct {
+       dynTab dynamicTable
+       emit   func(f HeaderField)
+
+       emitEnabled bool // whether calls to emit are enabled
+       maxStrLen   int  // 0 means unlimited
+
+       // buf is the unparsed buffer. It's only written to
+       // saveBuf if it was truncated in the middle of a header
+       // block. Because it's usually not owned, we can only
+       // process it under Write.
+       buf []byte // not owned; only valid during Write
+
+       // saveBuf is previous data passed to Write which we weren't able
+       // to fully parse before. Unlike buf, we own this data.
+       saveBuf bytes.Buffer
+
+       firstField bool // processing the first field of the header block
+}
+
+// NewDecoder returns a new decoder with the provided maximum dynamic
+// table size. The emitFunc will be called for each valid field
+// parsed, in the same goroutine as calls to Write, before Write returns.
+func NewDecoder(maxDynamicTableSize uint32, emitFunc func(f HeaderField)) *Decoder {
+       d := &Decoder{
+               emit:        emitFunc,
+               emitEnabled: true,
+               firstField:  true,
+       }
+       d.dynTab.table.init()
+       d.dynTab.allowedMaxSize = maxDynamicTableSize
+       d.dynTab.setMaxSize(maxDynamicTableSize)
+       return d
+}
+
+// ErrStringLength is returned by Decoder.Write when the max string length
+// (as configured by Decoder.SetMaxStringLength) would be violated.
+var ErrStringLength = errors.New("hpack: string too long")
+
+// SetMaxStringLength sets the maximum size of a HeaderField name or
+// value string. If a string exceeds this length (even after any
+// decompression), Write will return ErrStringLength.
+// A value of 0 means unlimited and is the default from NewDecoder.
+func (d *Decoder) SetMaxStringLength(n int) {
+       d.maxStrLen = n
+}
+
+// SetEmitFunc changes the callback used when new header fields
+// are decoded.
+// It must be non-nil. It does not affect EmitEnabled.
+func (d *Decoder) SetEmitFunc(emitFunc func(f HeaderField)) {
+       d.emit = emitFunc
+}
+
+// SetEmitEnabled controls whether the emitFunc provided to NewDecoder
+// should be called. The default is true.
+//
+// This facility exists to let servers enforce MAX_HEADER_LIST_SIZE
+// while still decoding and keeping in-sync with decoder state, but
+// without doing unnecessary decompression or generating unnecessary
+// garbage for header fields past the limit.
+func (d *Decoder) SetEmitEnabled(v bool) { d.emitEnabled = v }
+
+// EmitEnabled reports whether calls to the emitFunc provided to NewDecoder
+// are currently enabled. The default is true.
+func (d *Decoder) EmitEnabled() bool { return d.emitEnabled }
+
+// TODO: add method *Decoder.Reset(maxSize, emitFunc) to let callers re-use Decoders and their
+// underlying buffers for garbage reasons.
+
+func (d *Decoder) SetMaxDynamicTableSize(v uint32) {
+       d.dynTab.setMaxSize(v)
+}
+
+// SetAllowedMaxDynamicTableSize sets the upper bound that the encoded
+// stream (via dynamic table size updates) may set the maximum size
+// to.
+func (d *Decoder) SetAllowedMaxDynamicTableSize(v uint32) {
+       d.dynTab.allowedMaxSize = v
+}
+
+type dynamicTable struct {
+       // http://http2.github.io/http2-spec/compression.html#rfc.section.2.3.2
+       table          headerFieldTable
+       size           uint32 // in bytes
+       maxSize        uint32 // current maxSize
+       allowedMaxSize uint32 // maxSize may go up to this, inclusive
+}
+
+func (dt *dynamicTable) setMaxSize(v uint32) {
+       dt.maxSize = v
+       dt.evict()
+}
+
+func (dt *dynamicTable) add(f HeaderField) {
+       dt.table.addEntry(f)
+       dt.size += f.Size()
+       dt.evict()
+}
+
+// If we're too big, evict old stuff.
+func (dt *dynamicTable) evict() {
+       var n int
+       for dt.size > dt.maxSize && n < dt.table.len() {
+               dt.size -= dt.table.ents[n].Size()
+               n++
+       }
+       dt.table.evictOldest(n)
+}
+
+func (d *Decoder) maxTableIndex() int {
+       // This should never overflow. RFC 7540 Section 6.5.2 limits the size of
+       // the dynamic table to 2^32 bytes, where each entry will occupy more than
+       // one byte. Further, the staticTable has a fixed, small length.
+       return d.dynTab.table.len() + staticTable.len()
+}
+
+func (d *Decoder) at(i uint64) (hf HeaderField, ok bool) {
+       // See Section 2.3.3.
+       if i == 0 {
+               return
+       }
+       if i <= uint64(staticTable.len()) {
+               return staticTable.ents[i-1], true
+       }
+       if i > uint64(d.maxTableIndex()) {
+               return
+       }
+       // In the dynamic table, newer entries have lower indices.
+       // However, dt.ents[0] is the oldest entry. Hence, dt.ents is
+       // the reversed dynamic table.
+       dt := d.dynTab.table
+       return dt.ents[dt.len()-(int(i)-staticTable.len())], true
+}
+
+// Decode decodes an entire block.
+//
+// TODO: remove this method and make it incremental later? This is
+// easier for debugging now.
+func (d *Decoder) DecodeFull(p []byte) ([]HeaderField, error) {
+       var hf []HeaderField
+       saveFunc := d.emit
+       defer func() { d.emit = saveFunc }()
+       d.emit = func(f HeaderField) { hf = append(hf, f) }
+       if _, err := d.Write(p); err != nil {
+               return nil, err
+       }
+       if err := d.Close(); err != nil {
+               return nil, err
+       }
+       return hf, nil
+}
+
+// Close declares that the decoding is complete and resets the Decoder
+// to be reused again for a new header block. If there is any remaining
+// data in the decoder's buffer, Close returns an error.
+func (d *Decoder) Close() error {
+       if d.saveBuf.Len() > 0 {
+               d.saveBuf.Reset()
+               return DecodingError{errors.New("truncated headers")}
+       }
+       d.firstField = true
+       return nil
+}
+
+func (d *Decoder) Write(p []byte) (n int, err error) {
+       if len(p) == 0 {
+               // Prevent state machine CPU attacks (making us redo
+               // work up to the point of finding out we don't have
+               // enough data)
+               return
+       }
+       // Only copy the data if we have to. Optimistically assume
+       // that p will contain a complete header block.
+       if d.saveBuf.Len() == 0 {
+               d.buf = p
+       } else {
+               d.saveBuf.Write(p)
+               d.buf = d.saveBuf.Bytes()
+               d.saveBuf.Reset()
+       }
+
+       for len(d.buf) > 0 {
+               err = d.parseHeaderFieldRepr()
+               if err == errNeedMore {
+                       // Extra paranoia, making sure saveBuf won't
+                       // get too large. All the varint and string
+                       // reading code earlier should already catch
+                       // overlong things and return ErrStringLength,
+                       // but keep this as a last resort.
+                       const varIntOverhead = 8 // conservative
+                       if d.maxStrLen != 0 && int64(len(d.buf)) > 2*(int64(d.maxStrLen)+varIntOverhead) {
+                               return 0, ErrStringLength
+                       }
+                       d.saveBuf.Write(d.buf)
+                       return len(p), nil
+               }
+               d.firstField = false
+               if err != nil {
+                       break
+               }
+       }
+       return len(p), err
+}
+
+// errNeedMore is an internal sentinel error value that means the
+// buffer is truncated and we need to read more data before we can
+// continue parsing.
+var errNeedMore = errors.New("need more data")
+
+type indexType int
+
+const (
+       indexedTrue indexType = iota
+       indexedFalse
+       indexedNever
+)
+
+func (v indexType) indexed() bool   { return v == indexedTrue }
+func (v indexType) sensitive() bool { return v == indexedNever }
+
+// returns errNeedMore if there isn't enough data available.
+// any other error is fatal.
+// consumes d.buf iff it returns nil.
+// precondition: must be called with len(d.buf) > 0
+func (d *Decoder) parseHeaderFieldRepr() error {
+       b := d.buf[0]
+       switch {
+       case b&128 != 0:
+               // Indexed representation.
+               // High bit set?
+               // http://http2.github.io/http2-spec/compression.html#rfc.section.6.1
+               return d.parseFieldIndexed()
+       case b&192 == 64:
+               // 6.2.1 Literal Header Field with Incremental Indexing
+               // 0b10xxxxxx: top two bits are 10
+               // http://http2.github.io/http2-spec/compression.html#rfc.section.6.2.1
+               return d.parseFieldLiteral(6, indexedTrue)
+       case b&240 == 0:
+               // 6.2.2 Literal Header Field without Indexing
+               // 0b0000xxxx: top four bits are 0000
+               // http://http2.github.io/http2-spec/compression.html#rfc.section.6.2.2
+               return d.parseFieldLiteral(4, indexedFalse)
+       case b&240 == 16:
+               // 6.2.3 Literal Header Field never Indexed
+               // 0b0001xxxx: top four bits are 0001
+               // http://http2.github.io/http2-spec/compression.html#rfc.section.6.2.3
+               return d.parseFieldLiteral(4, indexedNever)
+       case b&224 == 32:
+               // 6.3 Dynamic Table Size Update
+               // Top three bits are '001'.
+               // http://http2.github.io/http2-spec/compression.html#rfc.section.6.3
+               return d.parseDynamicTableSizeUpdate()
+       }
+
+       return DecodingError{errors.New("invalid encoding")}
+}
+
+// (same invariants and behavior as parseHeaderFieldRepr)
+func (d *Decoder) parseFieldIndexed() error {
+       buf := d.buf
+       idx, buf, err := readVarInt(7, buf)
+       if err != nil {
+               return err
+       }
+       hf, ok := d.at(idx)
+       if !ok {
+               return DecodingError{InvalidIndexError(idx)}
+       }
+       d.buf = buf
+       return d.callEmit(HeaderField{Name: hf.Name, Value: hf.Value})
+}
+
+// (same invariants and behavior as parseHeaderFieldRepr)
+func (d *Decoder) parseFieldLiteral(n uint8, it indexType) error {
+       buf := d.buf
+       nameIdx, buf, err := readVarInt(n, buf)
+       if err != nil {
+               return err
+       }
+
+       var hf HeaderField
+       wantStr := d.emitEnabled || it.indexed()
+       if nameIdx > 0 {
+               ihf, ok := d.at(nameIdx)
+               if !ok {
+                       return DecodingError{InvalidIndexError(nameIdx)}
+               }
+               hf.Name = ihf.Name
+       } else {
+               hf.Name, buf, err = d.readString(buf, wantStr)
+               if err != nil {
+                       return err
+               }
+       }
+       hf.Value, buf, err = d.readString(buf, wantStr)
+       if err != nil {
+               return err
+       }
+       d.buf = buf
+       if it.indexed() {
+               d.dynTab.add(hf)
+       }
+       hf.Sensitive = it.sensitive()
+       return d.callEmit(hf)
+}
+
+func (d *Decoder) callEmit(hf HeaderField) error {
+       if d.maxStrLen != 0 {
+               if len(hf.Name) > d.maxStrLen || len(hf.Value) > d.maxStrLen {
+                       return ErrStringLength
+               }
+       }
+       if d.emitEnabled {
+               d.emit(hf)
+       }
+       return nil
+}
+
+// (same invariants and behavior as parseHeaderFieldRepr)
+func (d *Decoder) parseDynamicTableSizeUpdate() error {
+       // RFC 7541, sec 4.2: This dynamic table size update MUST occur at the
+       // beginning of the first header block following the change to the dynamic table size.
+       if !d.firstField && d.dynTab.size > 0 {
+               return DecodingError{errors.New("dynamic table size update MUST occur at the beginning of a header block")}
+       }
+
+       buf := d.buf
+       size, buf, err := readVarInt(5, buf)
+       if err != nil {
+               return err
+       }
+       if size > uint64(d.dynTab.allowedMaxSize) {
+               return DecodingError{errors.New("dynamic table size update too large")}
+       }
+       d.dynTab.setMaxSize(uint32(size))
+       d.buf = buf
+       return nil
+}
+
+var errVarintOverflow = DecodingError{errors.New("varint integer overflow")}
+
+// readVarInt reads an unsigned variable length integer off the
+// beginning of p. n is the parameter as described in
+// http://http2.github.io/http2-spec/compression.html#rfc.section.5.1.
+//
+// n must always be between 1 and 8.
+//
+// The returned remain buffer is either a smaller suffix of p, or err != nil.
+// The error is errNeedMore if p doesn't contain a complete integer.
+func readVarInt(n byte, p []byte) (i uint64, remain []byte, err error) {
+       if n < 1 || n > 8 {
+               panic("bad n")
+       }
+       if len(p) == 0 {
+               return 0, p, errNeedMore
+       }
+       i = uint64(p[0])
+       if n < 8 {
+               i &= (1 << uint64(n)) - 1
+       }
+       if i < (1<<uint64(n))-1 {
+               return i, p[1:], nil
+       }
+
+       origP := p
+       p = p[1:]
+       var m uint64
+       for len(p) > 0 {
+               b := p[0]
+               p = p[1:]
+               i += uint64(b&127) << m
+               if b&128 == 0 {
+                       return i, p, nil
+               }
+               m += 7
+               if m >= 63 { // TODO: proper overflow check. making this up.
+                       return 0, origP, errVarintOverflow
+               }
+       }
+       return 0, origP, errNeedMore
+}
+
+// readString decodes an hpack string from p.
+//
+// wantStr is whether s will be used. If false, decompression and
+// []byte->string garbage are skipped if s will be ignored
+// anyway. This does mean that huffman decoding errors for non-indexed
+// strings past the MAX_HEADER_LIST_SIZE are ignored, but the server
+// is returning an error anyway, and because they're not indexed, the error
+// won't affect the decoding state.
+func (d *Decoder) readString(p []byte, wantStr bool) (s string, remain []byte, err error) {
+       if len(p) == 0 {
+               return "", p, errNeedMore
+       }
+       isHuff := p[0]&128 != 0
+       strLen, p, err := readVarInt(7, p)
+       if err != nil {
+               return "", p, err
+       }
+       if d.maxStrLen != 0 && strLen > uint64(d.maxStrLen) {
+               return "", nil, ErrStringLength
+       }
+       if uint64(len(p)) < strLen {
+               return "", p, errNeedMore
+       }
+       if !isHuff {
+               if wantStr {
+                       s = string(p[:strLen])
+               }
+               return s, p[strLen:], nil
+       }
+
+       if wantStr {
+               buf := bufPool.Get().(*bytes.Buffer)
+               buf.Reset() // don't trust others
+               defer bufPool.Put(buf)
+               if err := huffmanDecode(buf, d.maxStrLen, p[:strLen]); err != nil {
+                       buf.Reset()
+                       return "", nil, err
+               }
+               s = buf.String()
+               buf.Reset() // be nice to GC
+       }
+       return s, p[strLen:], nil
+}
diff --git a/vendor/golang.org/x/net/http2/hpack/huffman.go b/vendor/golang.org/x/net/http2/hpack/huffman.go
new file mode 100644 (file)
index 0000000..b412a96
--- /dev/null
@@ -0,0 +1,222 @@
+// Copyright 2014 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package hpack
+
+import (
+       "bytes"
+       "errors"
+       "io"
+       "sync"
+)
+
+var bufPool = sync.Pool{
+       New: func() interface{} { return new(bytes.Buffer) },
+}
+
+// HuffmanDecode decodes the string in v and writes the expanded
+// result to w, returning the number of bytes written to w and the
+// Write call's return value. At most one Write call is made.
+func HuffmanDecode(w io.Writer, v []byte) (int, error) {
+       buf := bufPool.Get().(*bytes.Buffer)
+       buf.Reset()
+       defer bufPool.Put(buf)
+       if err := huffmanDecode(buf, 0, v); err != nil {
+               return 0, err
+       }
+       return w.Write(buf.Bytes())
+}
+
+// HuffmanDecodeToString decodes the string in v.
+func HuffmanDecodeToString(v []byte) (string, error) {
+       buf := bufPool.Get().(*bytes.Buffer)
+       buf.Reset()
+       defer bufPool.Put(buf)
+       if err := huffmanDecode(buf, 0, v); err != nil {
+               return "", err
+       }
+       return buf.String(), nil
+}
+
+// ErrInvalidHuffman is returned for errors found decoding
+// Huffman-encoded strings.
+var ErrInvalidHuffman = errors.New("hpack: invalid Huffman-encoded data")
+
+// huffmanDecode decodes v to buf.
+// If maxLen is greater than 0, attempts to write more to buf than
+// maxLen bytes will return ErrStringLength.
+func huffmanDecode(buf *bytes.Buffer, maxLen int, v []byte) error {
+       rootHuffmanNode := getRootHuffmanNode()
+       n := rootHuffmanNode
+       // cur is the bit buffer that has not been fed into n.
+       // cbits is the number of low order bits in cur that are valid.
+       // sbits is the number of bits of the symbol prefix being decoded.
+       cur, cbits, sbits := uint(0), uint8(0), uint8(0)
+       for _, b := range v {
+               cur = cur<<8 | uint(b)
+               cbits += 8
+               sbits += 8
+               for cbits >= 8 {
+                       idx := byte(cur >> (cbits - 8))
+                       n = n.children[idx]
+                       if n == nil {
+                               return ErrInvalidHuffman
+                       }
+                       if n.children == nil {
+                               if maxLen != 0 && buf.Len() == maxLen {
+                                       return ErrStringLength
+                               }
+                               buf.WriteByte(n.sym)
+                               cbits -= n.codeLen
+                               n = rootHuffmanNode
+                               sbits = cbits
+                       } else {
+                               cbits -= 8
+                       }
+               }
+       }
+       for cbits > 0 {
+               n = n.children[byte(cur<<(8-cbits))]
+               if n == nil {
+                       return ErrInvalidHuffman
+               }
+               if n.children != nil || n.codeLen > cbits {
+                       break
+               }
+               if maxLen != 0 && buf.Len() == maxLen {
+                       return ErrStringLength
+               }
+               buf.WriteByte(n.sym)
+               cbits -= n.codeLen
+               n = rootHuffmanNode
+               sbits = cbits
+       }
+       if sbits > 7 {
+               // Either there was an incomplete symbol, or overlong padding.
+               // Both are decoding errors per RFC 7541 section 5.2.
+               return ErrInvalidHuffman
+       }
+       if mask := uint(1<<cbits - 1); cur&mask != mask {
+               // Trailing bits must be a prefix of EOS per RFC 7541 section 5.2.
+               return ErrInvalidHuffman
+       }
+
+       return nil
+}
+
+type node struct {
+       // children is non-nil for internal nodes
+       children *[256]*node
+
+       // The following are only valid if children is nil:
+       codeLen uint8 // number of bits that led to the output of sym
+       sym     byte  // output symbol
+}
+
+func newInternalNode() *node {
+       return &node{children: new([256]*node)}
+}
+
+var (
+       buildRootOnce       sync.Once
+       lazyRootHuffmanNode *node
+)
+
+func getRootHuffmanNode() *node {
+       buildRootOnce.Do(buildRootHuffmanNode)
+       return lazyRootHuffmanNode
+}
+
+func buildRootHuffmanNode() {
+       if len(huffmanCodes) != 256 {
+               panic("unexpected size")
+       }
+       lazyRootHuffmanNode = newInternalNode()
+       for i, code := range huffmanCodes {
+               addDecoderNode(byte(i), code, huffmanCodeLen[i])
+       }
+}
+
+func addDecoderNode(sym byte, code uint32, codeLen uint8) {
+       cur := lazyRootHuffmanNode
+       for codeLen > 8 {
+               codeLen -= 8
+               i := uint8(code >> codeLen)
+               if cur.children[i] == nil {
+                       cur.children[i] = newInternalNode()
+               }
+               cur = cur.children[i]
+       }
+       shift := 8 - codeLen
+       start, end := int(uint8(code<<shift)), int(1<<shift)
+       for i := start; i < start+end; i++ {
+               cur.children[i] = &node{sym: sym, codeLen: codeLen}
+       }
+}
+
+// AppendHuffmanString appends s, as encoded in Huffman codes, to dst
+// and returns the extended buffer.
+func AppendHuffmanString(dst []byte, s string) []byte {
+       rembits := uint8(8)
+
+       for i := 0; i < len(s); i++ {
+               if rembits == 8 {
+                       dst = append(dst, 0)
+               }
+               dst, rembits = appendByteToHuffmanCode(dst, rembits, s[i])
+       }
+
+       if rembits < 8 {
+               // special EOS symbol
+               code := uint32(0x3fffffff)
+               nbits := uint8(30)
+
+               t := uint8(code >> (nbits - rembits))
+               dst[len(dst)-1] |= t
+       }
+
+       return dst
+}
+
+// HuffmanEncodeLength returns the number of bytes required to encode
+// s in Huffman codes. The result is round up to byte boundary.
+func HuffmanEncodeLength(s string) uint64 {
+       n := uint64(0)
+       for i := 0; i < len(s); i++ {
+               n += uint64(huffmanCodeLen[s[i]])
+       }
+       return (n + 7) / 8
+}
+
+// appendByteToHuffmanCode appends Huffman code for c to dst and
+// returns the extended buffer and the remaining bits in the last
+// element. The appending is not byte aligned and the remaining bits
+// in the last element of dst is given in rembits.
+func appendByteToHuffmanCode(dst []byte, rembits uint8, c byte) ([]byte, uint8) {
+       code := huffmanCodes[c]
+       nbits := huffmanCodeLen[c]
+
+       for {
+               if rembits > nbits {
+                       t := uint8(code << (rembits - nbits))
+                       dst[len(dst)-1] |= t
+                       rembits -= nbits
+                       break
+               }
+
+               t := uint8(code >> (nbits - rembits))
+               dst[len(dst)-1] |= t
+
+               nbits -= rembits
+               rembits = 8
+
+               if nbits == 0 {
+                       break
+               }
+
+               dst = append(dst, 0)
+       }
+
+       return dst, rembits
+}
diff --git a/vendor/golang.org/x/net/http2/hpack/tables.go b/vendor/golang.org/x/net/http2/hpack/tables.go
new file mode 100644 (file)
index 0000000..a66cfbe
--- /dev/null
@@ -0,0 +1,479 @@
+// Copyright 2014 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package hpack
+
+import (
+       "fmt"
+)
+
+// headerFieldTable implements a list of HeaderFields.
+// This is used to implement the static and dynamic tables.
+type headerFieldTable struct {
+       // For static tables, entries are never evicted.
+       //
+       // For dynamic tables, entries are evicted from ents[0] and added to the end.
+       // Each entry has a unique id that starts at one and increments for each
+       // entry that is added. This unique id is stable across evictions, meaning
+       // it can be used as a pointer to a specific entry. As in hpack, unique ids
+       // are 1-based. The unique id for ents[k] is k + evictCount + 1.
+       //
+       // Zero is not a valid unique id.
+       //
+       // evictCount should not overflow in any remotely practical situation. In
+       // practice, we will have one dynamic table per HTTP/2 connection. If we
+       // assume a very powerful server that handles 1M QPS per connection and each
+       // request adds (then evicts) 100 entries from the table, it would still take
+       // 2M years for evictCount to overflow.
+       ents       []HeaderField
+       evictCount uint64
+
+       // byName maps a HeaderField name to the unique id of the newest entry with
+       // the same name. See above for a definition of "unique id".
+       byName map[string]uint64
+
+       // byNameValue maps a HeaderField name/value pair to the unique id of the newest
+       // entry with the same name and value. See above for a definition of "unique id".
+       byNameValue map[pairNameValue]uint64
+}
+
+type pairNameValue struct {
+       name, value string
+}
+
+func (t *headerFieldTable) init() {
+       t.byName = make(map[string]uint64)
+       t.byNameValue = make(map[pairNameValue]uint64)
+}
+
+// len reports the number of entries in the table.
+func (t *headerFieldTable) len() int {
+       return len(t.ents)
+}
+
+// addEntry adds a new entry.
+func (t *headerFieldTable) addEntry(f HeaderField) {
+       id := uint64(t.len()) + t.evictCount + 1
+       t.byName[f.Name] = id
+       t.byNameValue[pairNameValue{f.Name, f.Value}] = id
+       t.ents = append(t.ents, f)
+}
+
+// evictOldest evicts the n oldest entries in the table.
+func (t *headerFieldTable) evictOldest(n int) {
+       if n > t.len() {
+               panic(fmt.Sprintf("evictOldest(%v) on table with %v entries", n, t.len()))
+       }
+       for k := 0; k < n; k++ {
+               f := t.ents[k]
+               id := t.evictCount + uint64(k) + 1
+               if t.byName[f.Name] == id {
+                       delete(t.byName, f.Name)
+               }
+               if p := (pairNameValue{f.Name, f.Value}); t.byNameValue[p] == id {
+                       delete(t.byNameValue, p)
+               }
+       }
+       copy(t.ents, t.ents[n:])
+       for k := t.len() - n; k < t.len(); k++ {
+               t.ents[k] = HeaderField{} // so strings can be garbage collected
+       }
+       t.ents = t.ents[:t.len()-n]
+       if t.evictCount+uint64(n) < t.evictCount {
+               panic("evictCount overflow")
+       }
+       t.evictCount += uint64(n)
+}
+
+// search finds f in the table. If there is no match, i is 0.
+// If both name and value match, i is the matched index and nameValueMatch
+// becomes true. If only name matches, i points to that index and
+// nameValueMatch becomes false.
+//
+// The returned index is a 1-based HPACK index. For dynamic tables, HPACK says
+// that index 1 should be the newest entry, but t.ents[0] is the oldest entry,
+// meaning t.ents is reversed for dynamic tables. Hence, when t is a dynamic
+// table, the return value i actually refers to the entry t.ents[t.len()-i].
+//
+// All tables are assumed to be a dynamic tables except for the global
+// staticTable pointer.
+//
+// See Section 2.3.3.
+func (t *headerFieldTable) search(f HeaderField) (i uint64, nameValueMatch bool) {
+       if !f.Sensitive {
+               if id := t.byNameValue[pairNameValue{f.Name, f.Value}]; id != 0 {
+                       return t.idToIndex(id), true
+               }
+       }
+       if id := t.byName[f.Name]; id != 0 {
+               return t.idToIndex(id), false
+       }
+       return 0, false
+}
+
+// idToIndex converts a unique id to an HPACK index.
+// See Section 2.3.3.
+func (t *headerFieldTable) idToIndex(id uint64) uint64 {
+       if id <= t.evictCount {
+               panic(fmt.Sprintf("id (%v) <= evictCount (%v)", id, t.evictCount))
+       }
+       k := id - t.evictCount - 1 // convert id to an index t.ents[k]
+       if t != staticTable {
+               return uint64(t.len()) - k // dynamic table
+       }
+       return k + 1
+}
+
+// http://tools.ietf.org/html/draft-ietf-httpbis-header-compression-07#appendix-B
+var staticTable = newStaticTable()
+var staticTableEntries = [...]HeaderField{
+       {Name: ":authority"},
+       {Name: ":method", Value: "GET"},
+       {Name: ":method", Value: "POST"},
+       {Name: ":path", Value: "/"},
+       {Name: ":path", Value: "/index.html"},
+       {Name: ":scheme", Value: "http"},
+       {Name: ":scheme", Value: "https"},
+       {Name: ":status", Value: "200"},
+       {Name: ":status", Value: "204"},
+       {Name: ":status", Value: "206"},
+       {Name: ":status", Value: "304"},
+       {Name: ":status", Value: "400"},
+       {Name: ":status", Value: "404"},
+       {Name: ":status", Value: "500"},
+       {Name: "accept-charset"},
+       {Name: "accept-encoding", Value: "gzip, deflate"},
+       {Name: "accept-language"},
+       {Name: "accept-ranges"},
+       {Name: "accept"},
+       {Name: "access-control-allow-origin"},
+       {Name: "age"},
+       {Name: "allow"},
+       {Name: "authorization"},
+       {Name: "cache-control"},
+       {Name: "content-disposition"},
+       {Name: "content-encoding"},
+       {Name: "content-language"},
+       {Name: "content-length"},
+       {Name: "content-location"},
+       {Name: "content-range"},
+       {Name: "content-type"},
+       {Name: "cookie"},
+       {Name: "date"},
+       {Name: "etag"},
+       {Name: "expect"},
+       {Name: "expires"},
+       {Name: "from"},
+       {Name: "host"},
+       {Name: "if-match"},
+       {Name: "if-modified-since"},
+       {Name: "if-none-match"},
+       {Name: "if-range"},
+       {Name: "if-unmodified-since"},
+       {Name: "last-modified"},
+       {Name: "link"},
+       {Name: "location"},
+       {Name: "max-forwards"},
+       {Name: "proxy-authenticate"},
+       {Name: "proxy-authorization"},
+       {Name: "range"},
+       {Name: "referer"},
+       {Name: "refresh"},
+       {Name: "retry-after"},
+       {Name: "server"},
+       {Name: "set-cookie"},
+       {Name: "strict-transport-security"},
+       {Name: "transfer-encoding"},
+       {Name: "user-agent"},
+       {Name: "vary"},
+       {Name: "via"},
+       {Name: "www-authenticate"},
+}
+
+func newStaticTable() *headerFieldTable {
+       t := &headerFieldTable{}
+       t.init()
+       for _, e := range staticTableEntries[:] {
+               t.addEntry(e)
+       }
+       return t
+}
+
+var huffmanCodes = [256]uint32{
+       0x1ff8,
+       0x7fffd8,
+       0xfffffe2,
+       0xfffffe3,
+       0xfffffe4,
+       0xfffffe5,
+       0xfffffe6,
+       0xfffffe7,
+       0xfffffe8,
+       0xffffea,
+       0x3ffffffc,
+       0xfffffe9,
+       0xfffffea,
+       0x3ffffffd,
+       0xfffffeb,
+       0xfffffec,
+       0xfffffed,
+       0xfffffee,
+       0xfffffef,
+       0xffffff0,
+       0xffffff1,
+       0xffffff2,
+       0x3ffffffe,
+       0xffffff3,
+       0xffffff4,
+       0xffffff5,
+       0xffffff6,
+       0xffffff7,
+       0xffffff8,
+       0xffffff9,
+       0xffffffa,
+       0xffffffb,
+       0x14,
+       0x3f8,
+       0x3f9,
+       0xffa,
+       0x1ff9,
+       0x15,
+       0xf8,
+       0x7fa,
+       0x3fa,
+       0x3fb,
+       0xf9,
+       0x7fb,
+       0xfa,
+       0x16,
+       0x17,
+       0x18,
+       0x0,
+       0x1,
+       0x2,
+       0x19,
+       0x1a,
+       0x1b,
+       0x1c,
+       0x1d,
+       0x1e,
+       0x1f,
+       0x5c,
+       0xfb,
+       0x7ffc,
+       0x20,
+       0xffb,
+       0x3fc,
+       0x1ffa,
+       0x21,
+       0x5d,
+       0x5e,
+       0x5f,
+       0x60,
+       0x61,
+       0x62,
+       0x63,
+       0x64,
+       0x65,
+       0x66,
+       0x67,
+       0x68,
+       0x69,
+       0x6a,
+       0x6b,
+       0x6c,
+       0x6d,
+       0x6e,
+       0x6f,
+       0x70,
+       0x71,
+       0x72,
+       0xfc,
+       0x73,
+       0xfd,
+       0x1ffb,
+       0x7fff0,
+       0x1ffc,
+       0x3ffc,
+       0x22,
+       0x7ffd,
+       0x3,
+       0x23,
+       0x4,
+       0x24,
+       0x5,
+       0x25,
+       0x26,
+       0x27,
+       0x6,
+       0x74,
+       0x75,
+       0x28,
+       0x29,
+       0x2a,
+       0x7,
+       0x2b,
+       0x76,
+       0x2c,
+       0x8,
+       0x9,
+       0x2d,
+       0x77,
+       0x78,
+       0x79,
+       0x7a,
+       0x7b,
+       0x7ffe,
+       0x7fc,
+       0x3ffd,
+       0x1ffd,
+       0xffffffc,
+       0xfffe6,
+       0x3fffd2,
+       0xfffe7,
+       0xfffe8,
+       0x3fffd3,
+       0x3fffd4,
+       0x3fffd5,
+       0x7fffd9,
+       0x3fffd6,
+       0x7fffda,
+       0x7fffdb,
+       0x7fffdc,
+       0x7fffdd,
+       0x7fffde,
+       0xffffeb,
+       0x7fffdf,
+       0xffffec,
+       0xffffed,
+       0x3fffd7,
+       0x7fffe0,
+       0xffffee,
+       0x7fffe1,
+       0x7fffe2,
+       0x7fffe3,
+       0x7fffe4,
+       0x1fffdc,
+       0x3fffd8,
+       0x7fffe5,
+       0x3fffd9,
+       0x7fffe6,
+       0x7fffe7,
+       0xffffef,
+       0x3fffda,
+       0x1fffdd,
+       0xfffe9,
+       0x3fffdb,
+       0x3fffdc,
+       0x7fffe8,
+       0x7fffe9,
+       0x1fffde,
+       0x7fffea,
+       0x3fffdd,
+       0x3fffde,
+       0xfffff0,
+       0x1fffdf,
+       0x3fffdf,
+       0x7fffeb,
+       0x7fffec,
+       0x1fffe0,
+       0x1fffe1,
+       0x3fffe0,
+       0x1fffe2,
+       0x7fffed,
+       0x3fffe1,
+       0x7fffee,
+       0x7fffef,
+       0xfffea,
+       0x3fffe2,
+       0x3fffe3,
+       0x3fffe4,
+       0x7ffff0,
+       0x3fffe5,
+       0x3fffe6,
+       0x7ffff1,
+       0x3ffffe0,
+       0x3ffffe1,
+       0xfffeb,
+       0x7fff1,
+       0x3fffe7,
+       0x7ffff2,
+       0x3fffe8,
+       0x1ffffec,
+       0x3ffffe2,
+       0x3ffffe3,
+       0x3ffffe4,
+       0x7ffffde,
+       0x7ffffdf,
+       0x3ffffe5,
+       0xfffff1,
+       0x1ffffed,
+       0x7fff2,
+       0x1fffe3,
+       0x3ffffe6,
+       0x7ffffe0,
+       0x7ffffe1,
+       0x3ffffe7,
+       0x7ffffe2,
+       0xfffff2,
+       0x1fffe4,
+       0x1fffe5,
+       0x3ffffe8,
+       0x3ffffe9,
+       0xffffffd,
+       0x7ffffe3,
+       0x7ffffe4,
+       0x7ffffe5,
+       0xfffec,
+       0xfffff3,
+       0xfffed,
+       0x1fffe6,
+       0x3fffe9,
+       0x1fffe7,
+       0x1fffe8,
+       0x7ffff3,
+       0x3fffea,
+       0x3fffeb,
+       0x1ffffee,
+       0x1ffffef,
+       0xfffff4,
+       0xfffff5,
+       0x3ffffea,
+       0x7ffff4,
+       0x3ffffeb,
+       0x7ffffe6,
+       0x3ffffec,
+       0x3ffffed,
+       0x7ffffe7,
+       0x7ffffe8,
+       0x7ffffe9,
+       0x7ffffea,
+       0x7ffffeb,
+       0xffffffe,
+       0x7ffffec,
+       0x7ffffed,
+       0x7ffffee,
+       0x7ffffef,
+       0x7fffff0,
+       0x3ffffee,
+}
+
+var huffmanCodeLen = [256]uint8{
+       13, 23, 28, 28, 28, 28, 28, 28, 28, 24, 30, 28, 28, 30, 28, 28,
+       28, 28, 28, 28, 28, 28, 30, 28, 28, 28, 28, 28, 28, 28, 28, 28,
+       6, 10, 10, 12, 13, 6, 8, 11, 10, 10, 8, 11, 8, 6, 6, 6,
+       5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 7, 8, 15, 6, 12, 10,
+       13, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+       7, 7, 7, 7, 7, 7, 7, 7, 8, 7, 8, 13, 19, 13, 14, 6,
+       15, 5, 6, 5, 6, 5, 6, 6, 6, 5, 7, 7, 6, 6, 6, 5,
+       6, 7, 6, 5, 5, 6, 7, 7, 7, 7, 7, 15, 11, 14, 13, 28,
+       20, 22, 20, 20, 22, 22, 22, 23, 22, 23, 23, 23, 23, 23, 24, 23,
+       24, 24, 22, 23, 24, 23, 23, 23, 23, 21, 22, 23, 22, 23, 23, 24,
+       22, 21, 20, 22, 22, 23, 23, 21, 23, 22, 22, 24, 21, 22, 23, 23,
+       21, 21, 22, 21, 23, 22, 23, 23, 20, 22, 22, 22, 23, 22, 22, 23,
+       26, 26, 20, 19, 22, 23, 22, 25, 26, 26, 26, 27, 27, 26, 24, 25,
+       19, 21, 26, 27, 27, 26, 27, 24, 21, 21, 26, 26, 28, 27, 27, 27,
+       20, 24, 20, 21, 22, 21, 21, 23, 22, 22, 25, 25, 24, 24, 26, 23,
+       26, 27, 26, 26, 27, 27, 27, 27, 27, 28, 27, 27, 27, 27, 27, 26,
+}
diff --git a/vendor/golang.org/x/net/http2/http2.go b/vendor/golang.org/x/net/http2/http2.go
new file mode 100644 (file)
index 0000000..bdaba1d
--- /dev/null
@@ -0,0 +1,384 @@
+// Copyright 2014 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Package http2 implements the HTTP/2 protocol.
+//
+// This package is low-level and intended to be used directly by very
+// few people. Most users will use it indirectly through the automatic
+// use by the net/http package (from Go 1.6 and later).
+// For use in earlier Go versions see ConfigureServer. (Transport support
+// requires Go 1.6 or later)
+//
+// See https://http2.github.io/ for more information on HTTP/2.
+//
+// See https://http2.golang.org/ for a test server running this code.
+//
+package http2 // import "golang.org/x/net/http2"
+
+import (
+       "bufio"
+       "crypto/tls"
+       "errors"
+       "fmt"
+       "io"
+       "net/http"
+       "os"
+       "sort"
+       "strconv"
+       "strings"
+       "sync"
+
+       "golang.org/x/net/http/httpguts"
+)
+
+var (
+       VerboseLogs    bool
+       logFrameWrites bool
+       logFrameReads  bool
+       inTests        bool
+)
+
+func init() {
+       e := os.Getenv("GODEBUG")
+       if strings.Contains(e, "http2debug=1") {
+               VerboseLogs = true
+       }
+       if strings.Contains(e, "http2debug=2") {
+               VerboseLogs = true
+               logFrameWrites = true
+               logFrameReads = true
+       }
+}
+
+const (
+       // ClientPreface is the string that must be sent by new
+       // connections from clients.
+       ClientPreface = "PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n"
+
+       // SETTINGS_MAX_FRAME_SIZE default
+       // http://http2.github.io/http2-spec/#rfc.section.6.5.2
+       initialMaxFrameSize = 16384
+
+       // NextProtoTLS is the NPN/ALPN protocol negotiated during
+       // HTTP/2's TLS setup.
+       NextProtoTLS = "h2"
+
+       // http://http2.github.io/http2-spec/#SettingValues
+       initialHeaderTableSize = 4096
+
+       initialWindowSize = 65535 // 6.9.2 Initial Flow Control Window Size
+
+       defaultMaxReadFrameSize = 1 << 20
+)
+
+var (
+       clientPreface = []byte(ClientPreface)
+)
+
+type streamState int
+
+// HTTP/2 stream states.
+//
+// See http://tools.ietf.org/html/rfc7540#section-5.1.
+//
+// For simplicity, the server code merges "reserved (local)" into
+// "half-closed (remote)". This is one less state transition to track.
+// The only downside is that we send PUSH_PROMISEs slightly less
+// liberally than allowable. More discussion here:
+// https://lists.w3.org/Archives/Public/ietf-http-wg/2016JulSep/0599.html
+//
+// "reserved (remote)" is omitted since the client code does not
+// support server push.
+const (
+       stateIdle streamState = iota
+       stateOpen
+       stateHalfClosedLocal
+       stateHalfClosedRemote
+       stateClosed
+)
+
+var stateName = [...]string{
+       stateIdle:             "Idle",
+       stateOpen:             "Open",
+       stateHalfClosedLocal:  "HalfClosedLocal",
+       stateHalfClosedRemote: "HalfClosedRemote",
+       stateClosed:           "Closed",
+}
+
+func (st streamState) String() string {
+       return stateName[st]
+}
+
+// Setting is a setting parameter: which setting it is, and its value.
+type Setting struct {
+       // ID is which setting is being set.
+       // See http://http2.github.io/http2-spec/#SettingValues
+       ID SettingID
+
+       // Val is the value.
+       Val uint32
+}
+
+func (s Setting) String() string {
+       return fmt.Sprintf("[%v = %d]", s.ID, s.Val)
+}
+
+// Valid reports whether the setting is valid.
+func (s Setting) Valid() error {
+       // Limits and error codes from 6.5.2 Defined SETTINGS Parameters
+       switch s.ID {
+       case SettingEnablePush:
+               if s.Val != 1 && s.Val != 0 {
+                       return ConnectionError(ErrCodeProtocol)
+               }
+       case SettingInitialWindowSize:
+               if s.Val > 1<<31-1 {
+                       return ConnectionError(ErrCodeFlowControl)
+               }
+       case SettingMaxFrameSize:
+               if s.Val < 16384 || s.Val > 1<<24-1 {
+                       return ConnectionError(ErrCodeProtocol)
+               }
+       }
+       return nil
+}
+
+// A SettingID is an HTTP/2 setting as defined in
+// http://http2.github.io/http2-spec/#iana-settings
+type SettingID uint16
+
+const (
+       SettingHeaderTableSize      SettingID = 0x1
+       SettingEnablePush           SettingID = 0x2
+       SettingMaxConcurrentStreams SettingID = 0x3
+       SettingInitialWindowSize    SettingID = 0x4
+       SettingMaxFrameSize         SettingID = 0x5
+       SettingMaxHeaderListSize    SettingID = 0x6
+)
+
+var settingName = map[SettingID]string{
+       SettingHeaderTableSize:      "HEADER_TABLE_SIZE",
+       SettingEnablePush:           "ENABLE_PUSH",
+       SettingMaxConcurrentStreams: "MAX_CONCURRENT_STREAMS",
+       SettingInitialWindowSize:    "INITIAL_WINDOW_SIZE",
+       SettingMaxFrameSize:         "MAX_FRAME_SIZE",
+       SettingMaxHeaderListSize:    "MAX_HEADER_LIST_SIZE",
+}
+
+func (s SettingID) String() string {
+       if v, ok := settingName[s]; ok {
+               return v
+       }
+       return fmt.Sprintf("UNKNOWN_SETTING_%d", uint16(s))
+}
+
+var (
+       errInvalidHeaderFieldName  = errors.New("http2: invalid header field name")
+       errInvalidHeaderFieldValue = errors.New("http2: invalid header field value")
+)
+
+// validWireHeaderFieldName reports whether v is a valid header field
+// name (key). See httpguts.ValidHeaderName for the base rules.
+//
+// Further, http2 says:
+//   "Just as in HTTP/1.x, header field names are strings of ASCII
+//   characters that are compared in a case-insensitive
+//   fashion. However, header field names MUST be converted to
+//   lowercase prior to their encoding in HTTP/2. "
+func validWireHeaderFieldName(v string) bool {
+       if len(v) == 0 {
+               return false
+       }
+       for _, r := range v {
+               if !httpguts.IsTokenRune(r) {
+                       return false
+               }
+               if 'A' <= r && r <= 'Z' {
+                       return false
+               }
+       }
+       return true
+}
+
+func httpCodeString(code int) string {
+       switch code {
+       case 200:
+               return "200"
+       case 404:
+               return "404"
+       }
+       return strconv.Itoa(code)
+}
+
+// from pkg io
+type stringWriter interface {
+       WriteString(s string) (n int, err error)
+}
+
+// A gate lets two goroutines coordinate their activities.
+type gate chan struct{}
+
+func (g gate) Done() { g <- struct{}{} }
+func (g gate) Wait() { <-g }
+
+// A closeWaiter is like a sync.WaitGroup but only goes 1 to 0 (open to closed).
+type closeWaiter chan struct{}
+
+// Init makes a closeWaiter usable.
+// It exists because so a closeWaiter value can be placed inside a
+// larger struct and have the Mutex and Cond's memory in the same
+// allocation.
+func (cw *closeWaiter) Init() {
+       *cw = make(chan struct{})
+}
+
+// Close marks the closeWaiter as closed and unblocks any waiters.
+func (cw closeWaiter) Close() {
+       close(cw)
+}
+
+// Wait waits for the closeWaiter to become closed.
+func (cw closeWaiter) Wait() {
+       <-cw
+}
+
+// bufferedWriter is a buffered writer that writes to w.
+// Its buffered writer is lazily allocated as needed, to minimize
+// idle memory usage with many connections.
+type bufferedWriter struct {
+       w  io.Writer     // immutable
+       bw *bufio.Writer // non-nil when data is buffered
+}
+
+func newBufferedWriter(w io.Writer) *bufferedWriter {
+       return &bufferedWriter{w: w}
+}
+
+// bufWriterPoolBufferSize is the size of bufio.Writer's
+// buffers created using bufWriterPool.
+//
+// TODO: pick a less arbitrary value? this is a bit under
+// (3 x typical 1500 byte MTU) at least. Other than that,
+// not much thought went into it.
+const bufWriterPoolBufferSize = 4 << 10
+
+var bufWriterPool = sync.Pool{
+       New: func() interface{} {
+               return bufio.NewWriterSize(nil, bufWriterPoolBufferSize)
+       },
+}
+
+func (w *bufferedWriter) Available() int {
+       if w.bw == nil {
+               return bufWriterPoolBufferSize
+       }
+       return w.bw.Available()
+}
+
+func (w *bufferedWriter) Write(p []byte) (n int, err error) {
+       if w.bw == nil {
+               bw := bufWriterPool.Get().(*bufio.Writer)
+               bw.Reset(w.w)
+               w.bw = bw
+       }
+       return w.bw.Write(p)
+}
+
+func (w *bufferedWriter) Flush() error {
+       bw := w.bw
+       if bw == nil {
+               return nil
+       }
+       err := bw.Flush()
+       bw.Reset(nil)
+       bufWriterPool.Put(bw)
+       w.bw = nil
+       return err
+}
+
+func mustUint31(v int32) uint32 {
+       if v < 0 || v > 2147483647 {
+               panic("out of range")
+       }
+       return uint32(v)
+}
+
+// bodyAllowedForStatus reports whether a given response status code
+// permits a body. See RFC 7230, section 3.3.
+func bodyAllowedForStatus(status int) bool {
+       switch {
+       case status >= 100 && status <= 199:
+               return false
+       case status == 204:
+               return false
+       case status == 304:
+               return false
+       }
+       return true
+}
+
+type httpError struct {
+       msg     string
+       timeout bool
+}
+
+func (e *httpError) Error() string   { return e.msg }
+func (e *httpError) Timeout() bool   { return e.timeout }
+func (e *httpError) Temporary() bool { return true }
+
+var errTimeout error = &httpError{msg: "http2: timeout awaiting response headers", timeout: true}
+
+type connectionStater interface {
+       ConnectionState() tls.ConnectionState
+}
+
+var sorterPool = sync.Pool{New: func() interface{} { return new(sorter) }}
+
+type sorter struct {
+       v []string // owned by sorter
+}
+
+func (s *sorter) Len() int           { return len(s.v) }
+func (s *sorter) Swap(i, j int)      { s.v[i], s.v[j] = s.v[j], s.v[i] }
+func (s *sorter) Less(i, j int) bool { return s.v[i] < s.v[j] }
+
+// Keys returns the sorted keys of h.
+//
+// The returned slice is only valid until s used again or returned to
+// its pool.
+func (s *sorter) Keys(h http.Header) []string {
+       keys := s.v[:0]
+       for k := range h {
+               keys = append(keys, k)
+       }
+       s.v = keys
+       sort.Sort(s)
+       return keys
+}
+
+func (s *sorter) SortStrings(ss []string) {
+       // Our sorter works on s.v, which sorter owns, so
+       // stash it away while we sort the user's buffer.
+       save := s.v
+       s.v = ss
+       sort.Sort(s)
+       s.v = save
+}
+
+// validPseudoPath reports whether v is a valid :path pseudo-header
+// value. It must be either:
+//
+//     *) a non-empty string starting with '/'
+//     *) the string '*', for OPTIONS requests.
+//
+// For now this is only used a quick check for deciding when to clean
+// up Opaque URLs before sending requests from the Transport.
+// See golang.org/issue/16847
+//
+// We used to enforce that the path also didn't start with "//", but
+// Google's GFE accepts such paths and Chrome sends them, so ignore
+// that part of the spec. See golang.org/issue/19103.
+func validPseudoPath(v string) bool {
+       return (len(v) > 0 && v[0] == '/') || v == "*"
+}
diff --git a/vendor/golang.org/x/net/http2/not_go111.go b/vendor/golang.org/x/net/http2/not_go111.go
new file mode 100644 (file)
index 0000000..161bca7
--- /dev/null
@@ -0,0 +1,20 @@
+// Copyright 2018 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 !go1.11
+
+package http2
+
+import (
+       "net/http/httptrace"
+       "net/textproto"
+)
+
+func traceHasWroteHeaderField(trace *httptrace.ClientTrace) bool { return false }
+
+func traceWroteHeaderField(trace *httptrace.ClientTrace, k, v string) {}
+
+func traceGot1xxResponseFunc(trace *httptrace.ClientTrace) func(int, textproto.MIMEHeader) error {
+       return nil
+}
diff --git a/vendor/golang.org/x/net/http2/pipe.go b/vendor/golang.org/x/net/http2/pipe.go
new file mode 100644 (file)
index 0000000..a614009
--- /dev/null
@@ -0,0 +1,163 @@
+// Copyright 2014 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package http2
+
+import (
+       "errors"
+       "io"
+       "sync"
+)
+
+// pipe is a goroutine-safe io.Reader/io.Writer pair. It's like
+// io.Pipe except there are no PipeReader/PipeWriter halves, and the
+// underlying buffer is an interface. (io.Pipe is always unbuffered)
+type pipe struct {
+       mu       sync.Mutex
+       c        sync.Cond     // c.L lazily initialized to &p.mu
+       b        pipeBuffer    // nil when done reading
+       err      error         // read error once empty. non-nil means closed.
+       breakErr error         // immediate read error (caller doesn't see rest of b)
+       donec    chan struct{} // closed on error
+       readFn   func()        // optional code to run in Read before error
+}
+
+type pipeBuffer interface {
+       Len() int
+       io.Writer
+       io.Reader
+}
+
+func (p *pipe) Len() int {
+       p.mu.Lock()
+       defer p.mu.Unlock()
+       if p.b == nil {
+               return 0
+       }
+       return p.b.Len()
+}
+
+// Read waits until data is available and copies bytes
+// from the buffer into p.
+func (p *pipe) Read(d []byte) (n int, err error) {
+       p.mu.Lock()
+       defer p.mu.Unlock()
+       if p.c.L == nil {
+               p.c.L = &p.mu
+       }
+       for {
+               if p.breakErr != nil {
+                       return 0, p.breakErr
+               }
+               if p.b != nil && p.b.Len() > 0 {
+                       return p.b.Read(d)
+               }
+               if p.err != nil {
+                       if p.readFn != nil {
+                               p.readFn()     // e.g. copy trailers
+                               p.readFn = nil // not sticky like p.err
+                       }
+                       p.b = nil
+                       return 0, p.err
+               }
+               p.c.Wait()
+       }
+}
+
+var errClosedPipeWrite = errors.New("write on closed buffer")
+
+// Write copies bytes from p into the buffer and wakes a reader.
+// It is an error to write more data than the buffer can hold.
+func (p *pipe) Write(d []byte) (n int, err error) {
+       p.mu.Lock()
+       defer p.mu.Unlock()
+       if p.c.L == nil {
+               p.c.L = &p.mu
+       }
+       defer p.c.Signal()
+       if p.err != nil {
+               return 0, errClosedPipeWrite
+       }
+       if p.breakErr != nil {
+               return len(d), nil // discard when there is no reader
+       }
+       return p.b.Write(d)
+}
+
+// CloseWithError causes the next Read (waking up a current blocked
+// Read if needed) to return the provided err after all data has been
+// read.
+//
+// The error must be non-nil.
+func (p *pipe) CloseWithError(err error) { p.closeWithError(&p.err, err, nil) }
+
+// BreakWithError causes the next Read (waking up a current blocked
+// Read if needed) to return the provided err immediately, without
+// waiting for unread data.
+func (p *pipe) BreakWithError(err error) { p.closeWithError(&p.breakErr, err, nil) }
+
+// closeWithErrorAndCode is like CloseWithError but also sets some code to run
+// in the caller's goroutine before returning the error.
+func (p *pipe) closeWithErrorAndCode(err error, fn func()) { p.closeWithError(&p.err, err, fn) }
+
+func (p *pipe) closeWithError(dst *error, err error, fn func()) {
+       if err == nil {
+               panic("err must be non-nil")
+       }
+       p.mu.Lock()
+       defer p.mu.Unlock()
+       if p.c.L == nil {
+               p.c.L = &p.mu
+       }
+       defer p.c.Signal()
+       if *dst != nil {
+               // Already been done.
+               return
+       }
+       p.readFn = fn
+       if dst == &p.breakErr {
+               p.b = nil
+       }
+       *dst = err
+       p.closeDoneLocked()
+}
+
+// requires p.mu be held.
+func (p *pipe) closeDoneLocked() {
+       if p.donec == nil {
+               return
+       }
+       // Close if unclosed. This isn't racy since we always
+       // hold p.mu while closing.
+       select {
+       case <-p.donec:
+       default:
+               close(p.donec)
+       }
+}
+
+// Err returns the error (if any) first set by BreakWithError or CloseWithError.
+func (p *pipe) Err() error {
+       p.mu.Lock()
+       defer p.mu.Unlock()
+       if p.breakErr != nil {
+               return p.breakErr
+       }
+       return p.err
+}
+
+// Done returns a channel which is closed if and when this pipe is closed
+// with CloseWithError.
+func (p *pipe) Done() <-chan struct{} {
+       p.mu.Lock()
+       defer p.mu.Unlock()
+       if p.donec == nil {
+               p.donec = make(chan struct{})
+               if p.err != nil || p.breakErr != nil {
+                       // Already hit an error.
+                       p.closeDoneLocked()
+               }
+       }
+       return p.donec
+}
diff --git a/vendor/golang.org/x/net/http2/server.go b/vendor/golang.org/x/net/http2/server.go
new file mode 100644 (file)
index 0000000..b7524ba
--- /dev/null
@@ -0,0 +1,2961 @@
+// Copyright 2014 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// TODO: turn off the serve goroutine when idle, so
+// an idle conn only has the readFrames goroutine active. (which could
+// also be optimized probably to pin less memory in crypto/tls). This
+// would involve tracking when the serve goroutine is active (atomic
+// int32 read/CAS probably?) and starting it up when frames arrive,
+// and shutting it down when all handlers exit. the occasional PING
+// packets could use time.AfterFunc to call sc.wakeStartServeLoop()
+// (which is a no-op if already running) and then queue the PING write
+// as normal. The serve loop would then exit in most cases (if no
+// Handlers running) and not be woken up again until the PING packet
+// returns.
+
+// TODO (maybe): add a mechanism for Handlers to going into
+// half-closed-local mode (rw.(io.Closer) test?) but not exit their
+// handler, and continue to be able to read from the
+// Request.Body. This would be a somewhat semantic change from HTTP/1
+// (or at least what we expose in net/http), so I'd probably want to
+// add it there too. For now, this package says that returning from
+// the Handler ServeHTTP function means you're both done reading and
+// done writing, without a way to stop just one or the other.
+
+package http2
+
+import (
+       "bufio"
+       "bytes"
+       "context"
+       "crypto/tls"
+       "errors"
+       "fmt"
+       "io"
+       "log"
+       "math"
+       "net"
+       "net/http"
+       "net/textproto"
+       "net/url"
+       "os"
+       "reflect"
+       "runtime"
+       "strconv"
+       "strings"
+       "sync"
+       "time"
+
+       "golang.org/x/net/http/httpguts"
+       "golang.org/x/net/http2/hpack"
+)
+
+const (
+       prefaceTimeout         = 10 * time.Second
+       firstSettingsTimeout   = 2 * time.Second // should be in-flight with preface anyway
+       handlerChunkWriteSize  = 4 << 10
+       defaultMaxStreams      = 250 // TODO: make this 100 as the GFE seems to?
+       maxQueuedControlFrames = 10000
+)
+
+var (
+       errClientDisconnected = errors.New("client disconnected")
+       errClosedBody         = errors.New("body closed by handler")
+       errHandlerComplete    = errors.New("http2: request body closed due to handler exiting")
+       errStreamClosed       = errors.New("http2: stream closed")
+)
+
+var responseWriterStatePool = sync.Pool{
+       New: func() interface{} {
+               rws := &responseWriterState{}
+               rws.bw = bufio.NewWriterSize(chunkWriter{rws}, handlerChunkWriteSize)
+               return rws
+       },
+}
+
+// Test hooks.
+var (
+       testHookOnConn        func()
+       testHookGetServerConn func(*serverConn)
+       testHookOnPanicMu     *sync.Mutex // nil except in tests
+       testHookOnPanic       func(sc *serverConn, panicVal interface{}) (rePanic bool)
+)
+
+// Server is an HTTP/2 server.
+type Server struct {
+       // MaxHandlers limits the number of http.Handler ServeHTTP goroutines
+       // which may run at a time over all connections.
+       // Negative or zero no limit.
+       // TODO: implement
+       MaxHandlers int
+
+       // MaxConcurrentStreams optionally specifies the number of
+       // concurrent streams that each client may have open at a
+       // time. This is unrelated to the number of http.Handler goroutines
+       // which may be active globally, which is MaxHandlers.
+       // If zero, MaxConcurrentStreams defaults to at least 100, per
+       // the HTTP/2 spec's recommendations.
+       MaxConcurrentStreams uint32
+
+       // MaxReadFrameSize optionally specifies the largest frame
+       // this server is willing to read. A valid value is between
+       // 16k and 16M, inclusive. If zero or otherwise invalid, a
+       // default value is used.
+       MaxReadFrameSize uint32
+
+       // PermitProhibitedCipherSuites, if true, permits the use of
+       // cipher suites prohibited by the HTTP/2 spec.
+       PermitProhibitedCipherSuites bool
+
+       // IdleTimeout specifies how long until idle clients should be
+       // closed with a GOAWAY frame. PING frames are not considered
+       // activity for the purposes of IdleTimeout.
+       IdleTimeout time.Duration
+
+       // MaxUploadBufferPerConnection is the size of the initial flow
+       // control window for each connections. The HTTP/2 spec does not
+       // allow this to be smaller than 65535 or larger than 2^32-1.
+       // If the value is outside this range, a default value will be
+       // used instead.
+       MaxUploadBufferPerConnection int32
+
+       // MaxUploadBufferPerStream is the size of the initial flow control
+       // window for each stream. The HTTP/2 spec does not allow this to
+       // be larger than 2^32-1. If the value is zero or larger than the
+       // maximum, a default value will be used instead.
+       MaxUploadBufferPerStream int32
+
+       // NewWriteScheduler constructs a write scheduler for a connection.
+       // If nil, a default scheduler is chosen.
+       NewWriteScheduler func() WriteScheduler
+
+       // Internal state. This is a pointer (rather than embedded directly)
+       // so that we don't embed a Mutex in this struct, which will make the
+       // struct non-copyable, which might break some callers.
+       state *serverInternalState
+}
+
+func (s *Server) initialConnRecvWindowSize() int32 {
+       if s.MaxUploadBufferPerConnection > initialWindowSize {
+               return s.MaxUploadBufferPerConnection
+       }
+       return 1 << 20
+}
+
+func (s *Server) initialStreamRecvWindowSize() int32 {
+       if s.MaxUploadBufferPerStream > 0 {
+               return s.MaxUploadBufferPerStream
+       }
+       return 1 << 20
+}
+
+func (s *Server) maxReadFrameSize() uint32 {
+       if v := s.MaxReadFrameSize; v >= minMaxFrameSize && v <= maxFrameSize {
+               return v
+       }
+       return defaultMaxReadFrameSize
+}
+
+func (s *Server) maxConcurrentStreams() uint32 {
+       if v := s.MaxConcurrentStreams; v > 0 {
+               return v
+       }
+       return defaultMaxStreams
+}
+
+// maxQueuedControlFrames is the maximum number of control frames like
+// SETTINGS, PING and RST_STREAM that will be queued for writing before
+// the connection is closed to prevent memory exhaustion attacks.
+func (s *Server) maxQueuedControlFrames() int {
+       // TODO: if anybody asks, add a Server field, and remember to define the
+       // behavior of negative values.
+       return maxQueuedControlFrames
+}
+
+type serverInternalState struct {
+       mu          sync.Mutex
+       activeConns map[*serverConn]struct{}
+}
+
+func (s *serverInternalState) registerConn(sc *serverConn) {
+       if s == nil {
+               return // if the Server was used without calling ConfigureServer
+       }
+       s.mu.Lock()
+       s.activeConns[sc] = struct{}{}
+       s.mu.Unlock()
+}
+
+func (s *serverInternalState) unregisterConn(sc *serverConn) {
+       if s == nil {
+               return // if the Server was used without calling ConfigureServer
+       }
+       s.mu.Lock()
+       delete(s.activeConns, sc)
+       s.mu.Unlock()
+}
+
+func (s *serverInternalState) startGracefulShutdown() {
+       if s == nil {
+               return // if the Server was used without calling ConfigureServer
+       }
+       s.mu.Lock()
+       for sc := range s.activeConns {
+               sc.startGracefulShutdown()
+       }
+       s.mu.Unlock()
+}
+
+// ConfigureServer adds HTTP/2 support to a net/http Server.
+//
+// The configuration conf may be nil.
+//
+// ConfigureServer must be called before s begins serving.
+func ConfigureServer(s *http.Server, conf *Server) error {
+       if s == nil {
+               panic("nil *http.Server")
+       }
+       if conf == nil {
+               conf = new(Server)
+       }
+       conf.state = &serverInternalState{activeConns: make(map[*serverConn]struct{})}
+       if h1, h2 := s, conf; h2.IdleTimeout == 0 {
+               if h1.IdleTimeout != 0 {
+                       h2.IdleTimeout = h1.IdleTimeout
+               } else {
+                       h2.IdleTimeout = h1.ReadTimeout
+               }
+       }
+       s.RegisterOnShutdown(conf.state.startGracefulShutdown)
+
+       if s.TLSConfig == nil {
+               s.TLSConfig = new(tls.Config)
+       } else if s.TLSConfig.CipherSuites != nil {
+               // If they already provided a CipherSuite list, return
+               // an error if it has a bad order or is missing
+               // ECDHE_RSA_WITH_AES_128_GCM_SHA256 or ECDHE_ECDSA_WITH_AES_128_GCM_SHA256.
+               haveRequired := false
+               sawBad := false
+               for i, cs := range s.TLSConfig.CipherSuites {
+                       switch cs {
+                       case tls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,
+                               // Alternative MTI cipher to not discourage ECDSA-only servers.
+                               // See http://golang.org/cl/30721 for further information.
+                               tls.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:
+                               haveRequired = true
+                       }
+                       if isBadCipher(cs) {
+                               sawBad = true
+                       } else if sawBad {
+                               return fmt.Errorf("http2: TLSConfig.CipherSuites index %d contains an HTTP/2-approved cipher suite (%#04x), but it comes after unapproved cipher suites. With this configuration, clients that don't support previous, approved cipher suites may be given an unapproved one and reject the connection.", i, cs)
+                       }
+               }
+               if !haveRequired {
+                       return fmt.Errorf("http2: TLSConfig.CipherSuites is missing an HTTP/2-required AES_128_GCM_SHA256 cipher.")
+               }
+       }
+
+       // Note: not setting MinVersion to tls.VersionTLS12,
+       // as we don't want to interfere with HTTP/1.1 traffic
+       // on the user's server. We enforce TLS 1.2 later once
+       // we accept a connection. Ideally this should be done
+       // during next-proto selection, but using TLS <1.2 with
+       // HTTP/2 is still the client's bug.
+
+       s.TLSConfig.PreferServerCipherSuites = true
+
+       haveNPN := false
+       for _, p := range s.TLSConfig.NextProtos {
+               if p == NextProtoTLS {
+                       haveNPN = true
+                       break
+               }
+       }
+       if !haveNPN {
+               s.TLSConfig.NextProtos = append(s.TLSConfig.NextProtos, NextProtoTLS)
+       }
+
+       if s.TLSNextProto == nil {
+               s.TLSNextProto = map[string]func(*http.Server, *tls.Conn, http.Handler){}
+       }
+       protoHandler := func(hs *http.Server, c *tls.Conn, h http.Handler) {
+               if testHookOnConn != nil {
+                       testHookOnConn()
+               }
+               // The TLSNextProto interface predates contexts, so
+               // the net/http package passes down its per-connection
+               // base context via an exported but unadvertised
+               // method on the Handler. This is for internal
+               // net/http<=>http2 use only.
+               var ctx context.Context
+               type baseContexter interface {
+                       BaseContext() context.Context
+               }
+               if bc, ok := h.(baseContexter); ok {
+                       ctx = bc.BaseContext()
+               }
+               conf.ServeConn(c, &ServeConnOpts{
+                       Context:    ctx,
+                       Handler:    h,
+                       BaseConfig: hs,
+               })
+       }
+       s.TLSNextProto[NextProtoTLS] = protoHandler
+       return nil
+}
+
+// ServeConnOpts are options for the Server.ServeConn method.
+type ServeConnOpts struct {
+       // Context is the base context to use.
+       // If nil, context.Background is used.
+       Context context.Context
+
+       // BaseConfig optionally sets the base configuration
+       // for values. If nil, defaults are used.
+       BaseConfig *http.Server
+
+       // Handler specifies which handler to use for processing
+       // requests. If nil, BaseConfig.Handler is used. If BaseConfig
+       // or BaseConfig.Handler is nil, http.DefaultServeMux is used.
+       Handler http.Handler
+}
+
+func (o *ServeConnOpts) context() context.Context {
+       if o != nil && o.Context != nil {
+               return o.Context
+       }
+       return context.Background()
+}
+
+func (o *ServeConnOpts) baseConfig() *http.Server {
+       if o != nil && o.BaseConfig != nil {
+               return o.BaseConfig
+       }
+       return new(http.Server)
+}
+
+func (o *ServeConnOpts) handler() http.Handler {
+       if o != nil {
+               if o.Handler != nil {
+                       return o.Handler
+               }
+               if o.BaseConfig != nil && o.BaseConfig.Handler != nil {
+                       return o.BaseConfig.Handler
+               }
+       }
+       return http.DefaultServeMux
+}
+
+// ServeConn serves HTTP/2 requests on the provided connection and
+// blocks until the connection is no longer readable.
+//
+// ServeConn starts speaking HTTP/2 assuming that c has not had any
+// reads or writes. It writes its initial settings frame and expects
+// to be able to read the preface and settings frame from the
+// client. If c has a ConnectionState method like a *tls.Conn, the
+// ConnectionState is used to verify the TLS ciphersuite and to set
+// the Request.TLS field in Handlers.
+//
+// ServeConn does not support h2c by itself. Any h2c support must be
+// implemented in terms of providing a suitably-behaving net.Conn.
+//
+// The opts parameter is optional. If nil, default values are used.
+func (s *Server) ServeConn(c net.Conn, opts *ServeConnOpts) {
+       baseCtx, cancel := serverConnBaseContext(c, opts)
+       defer cancel()
+
+       sc := &serverConn{
+               srv:                         s,
+               hs:                          opts.baseConfig(),
+               conn:                        c,
+               baseCtx:                     baseCtx,
+               remoteAddrStr:               c.RemoteAddr().String(),
+               bw:                          newBufferedWriter(c),
+               handler:                     opts.handler(),
+               streams:                     make(map[uint32]*stream),
+               readFrameCh:                 make(chan readFrameResult),
+               wantWriteFrameCh:            make(chan FrameWriteRequest, 8),
+               serveMsgCh:                  make(chan interface{}, 8),
+               wroteFrameCh:                make(chan frameWriteResult, 1), // buffered; one send in writeFrameAsync
+               bodyReadCh:                  make(chan bodyReadMsg),         // buffering doesn't matter either way
+               doneServing:                 make(chan struct{}),
+               clientMaxStreams:            math.MaxUint32, // Section 6.5.2: "Initially, there is no limit to this value"
+               advMaxStreams:               s.maxConcurrentStreams(),
+               initialStreamSendWindowSize: initialWindowSize,
+               maxFrameSize:                initialMaxFrameSize,
+               headerTableSize:             initialHeaderTableSize,
+               serveG:                      newGoroutineLock(),
+               pushEnabled:                 true,
+       }
+
+       s.state.registerConn(sc)
+       defer s.state.unregisterConn(sc)
+
+       // The net/http package sets the write deadline from the
+       // http.Server.WriteTimeout during the TLS handshake, but then
+       // passes the connection off to us with the deadline already set.
+       // Write deadlines are set per stream in serverConn.newStream.
+       // Disarm the net.Conn write deadline here.
+       if sc.hs.WriteTimeout != 0 {
+               sc.conn.SetWriteDeadline(time.Time{})
+       }
+
+       if s.NewWriteScheduler != nil {
+               sc.writeSched = s.NewWriteScheduler()
+       } else {
+               sc.writeSched = NewRandomWriteScheduler()
+       }
+
+       // These start at the RFC-specified defaults. If there is a higher
+       // configured value for inflow, that will be updated when we send a
+       // WINDOW_UPDATE shortly after sending SETTINGS.
+       sc.flow.add(initialWindowSize)
+       sc.inflow.add(initialWindowSize)
+       sc.hpackEncoder = hpack.NewEncoder(&sc.headerWriteBuf)
+
+       fr := NewFramer(sc.bw, c)
+       fr.ReadMetaHeaders = hpack.NewDecoder(initialHeaderTableSize, nil)
+       fr.MaxHeaderListSize = sc.maxHeaderListSize()
+       fr.SetMaxReadFrameSize(s.maxReadFrameSize())
+       sc.framer = fr
+
+       if tc, ok := c.(connectionStater); ok {
+               sc.tlsState = new(tls.ConnectionState)
+               *sc.tlsState = tc.ConnectionState()
+               // 9.2 Use of TLS Features
+               // An implementation of HTTP/2 over TLS MUST use TLS
+               // 1.2 or higher with the restrictions on feature set
+               // and cipher suite described in this section. Due to
+               // implementation limitations, it might not be
+               // possible to fail TLS negotiation. An endpoint MUST
+               // immediately terminate an HTTP/2 connection that
+               // does not meet the TLS requirements described in
+               // this section with a connection error (Section
+               // 5.4.1) of type INADEQUATE_SECURITY.
+               if sc.tlsState.Version < tls.VersionTLS12 {
+                       sc.rejectConn(ErrCodeInadequateSecurity, "TLS version too low")
+                       return
+               }
+
+               if sc.tlsState.ServerName == "" {
+                       // Client must use SNI, but we don't enforce that anymore,
+                       // since it was causing problems when connecting to bare IP
+                       // addresses during development.
+                       //
+                       // TODO: optionally enforce? Or enforce at the time we receive
+                       // a new request, and verify the ServerName matches the :authority?
+                       // But that precludes proxy situations, perhaps.
+                       //
+                       // So for now, do nothing here again.
+               }
+
+               if !s.PermitProhibitedCipherSuites && isBadCipher(sc.tlsState.CipherSuite) {
+                       // "Endpoints MAY choose to generate a connection error
+                       // (Section 5.4.1) of type INADEQUATE_SECURITY if one of
+                       // the prohibited cipher suites are negotiated."
+                       //
+                       // We choose that. In my opinion, the spec is weak
+                       // here. It also says both parties must support at least
+                       // TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 so there's no
+                       // excuses here. If we really must, we could allow an
+                       // "AllowInsecureWeakCiphers" option on the server later.
+                       // Let's see how it plays out first.
+                       sc.rejectConn(ErrCodeInadequateSecurity, fmt.Sprintf("Prohibited TLS 1.2 Cipher Suite: %x", sc.tlsState.CipherSuite))
+                       return
+               }
+       }
+
+       if hook := testHookGetServerConn; hook != nil {
+               hook(sc)
+       }
+       sc.serve()
+}
+
+func serverConnBaseContext(c net.Conn, opts *ServeConnOpts) (ctx context.Context, cancel func()) {
+       ctx, cancel = context.WithCancel(opts.context())
+       ctx = context.WithValue(ctx, http.LocalAddrContextKey, c.LocalAddr())
+       if hs := opts.baseConfig(); hs != nil {
+               ctx = context.WithValue(ctx, http.ServerContextKey, hs)
+       }
+       return
+}
+
+func (sc *serverConn) rejectConn(err ErrCode, debug string) {
+       sc.vlogf("http2: server rejecting conn: %v, %s", err, debug)
+       // ignoring errors. hanging up anyway.
+       sc.framer.WriteGoAway(0, err, []byte(debug))
+       sc.bw.Flush()
+       sc.conn.Close()
+}
+
+type serverConn struct {
+       // Immutable:
+       srv              *Server
+       hs               *http.Server
+       conn             net.Conn
+       bw               *bufferedWriter // writing to conn
+       handler          http.Handler
+       baseCtx          context.Context
+       framer           *Framer
+       doneServing      chan struct{}          // closed when serverConn.serve ends
+       readFrameCh      chan readFrameResult   // written by serverConn.readFrames
+       wantWriteFrameCh chan FrameWriteRequest // from handlers -> serve
+       wroteFrameCh     chan frameWriteResult  // from writeFrameAsync -> serve, tickles more frame writes
+       bodyReadCh       chan bodyReadMsg       // from handlers -> serve
+       serveMsgCh       chan interface{}       // misc messages & code to send to / run on the serve loop
+       flow             flow                   // conn-wide (not stream-specific) outbound flow control
+       inflow           flow                   // conn-wide inbound flow control
+       tlsState         *tls.ConnectionState   // shared by all handlers, like net/http
+       remoteAddrStr    string
+       writeSched       WriteScheduler
+
+       // Everything following is owned by the serve loop; use serveG.check():
+       serveG                      goroutineLock // used to verify funcs are on serve()
+       pushEnabled                 bool
+       sawFirstSettings            bool // got the initial SETTINGS frame after the preface
+       needToSendSettingsAck       bool
+       unackedSettings             int    // how many SETTINGS have we sent without ACKs?
+       queuedControlFrames         int    // control frames in the writeSched queue
+       clientMaxStreams            uint32 // SETTINGS_MAX_CONCURRENT_STREAMS from client (our PUSH_PROMISE limit)
+       advMaxStreams               uint32 // our SETTINGS_MAX_CONCURRENT_STREAMS advertised the client
+       curClientStreams            uint32 // number of open streams initiated by the client
+       curPushedStreams            uint32 // number of open streams initiated by server push
+       maxClientStreamID           uint32 // max ever seen from client (odd), or 0 if there have been no client requests
+       maxPushPromiseID            uint32 // ID of the last push promise (even), or 0 if there have been no pushes
+       streams                     map[uint32]*stream
+       initialStreamSendWindowSize int32
+       maxFrameSize                int32
+       headerTableSize             uint32
+       peerMaxHeaderListSize       uint32            // zero means unknown (default)
+       canonHeader                 map[string]string // http2-lower-case -> Go-Canonical-Case
+       writingFrame                bool              // started writing a frame (on serve goroutine or separate)
+       writingFrameAsync           bool              // started a frame on its own goroutine but haven't heard back on wroteFrameCh
+       needsFrameFlush             bool              // last frame write wasn't a flush
+       inGoAway                    bool              // we've started to or sent GOAWAY
+       inFrameScheduleLoop         bool              // whether we're in the scheduleFrameWrite loop
+       needToSendGoAway            bool              // we need to schedule a GOAWAY frame write
+       goAwayCode                  ErrCode
+       shutdownTimer               *time.Timer // nil until used
+       idleTimer                   *time.Timer // nil if unused
+
+       // Owned by the writeFrameAsync goroutine:
+       headerWriteBuf bytes.Buffer
+       hpackEncoder   *hpack.Encoder
+
+       // Used by startGracefulShutdown.
+       shutdownOnce sync.Once
+}
+
+func (sc *serverConn) maxHeaderListSize() uint32 {
+       n := sc.hs.MaxHeaderBytes
+       if n <= 0 {
+               n = http.DefaultMaxHeaderBytes
+       }
+       // http2's count is in a slightly different unit and includes 32 bytes per pair.
+       // So, take the net/http.Server value and pad it up a bit, assuming 10 headers.
+       const perFieldOverhead = 32 // per http2 spec
+       const typicalHeaders = 10   // conservative
+       return uint32(n + typicalHeaders*perFieldOverhead)
+}
+
+func (sc *serverConn) curOpenStreams() uint32 {
+       sc.serveG.check()
+       return sc.curClientStreams + sc.curPushedStreams
+}
+
+// stream represents a stream. This is the minimal metadata needed by
+// the serve goroutine. Most of the actual stream state is owned by
+// the http.Handler's goroutine in the responseWriter. Because the
+// responseWriter's responseWriterState is recycled at the end of a
+// handler, this struct intentionally has no pointer to the
+// *responseWriter{,State} itself, as the Handler ending nils out the
+// responseWriter's state field.
+type stream struct {
+       // immutable:
+       sc        *serverConn
+       id        uint32
+       body      *pipe       // non-nil if expecting DATA frames
+       cw        closeWaiter // closed wait stream transitions to closed state
+       ctx       context.Context
+       cancelCtx func()
+
+       // owned by serverConn's serve loop:
+       bodyBytes        int64   // body bytes seen so far
+       declBodyBytes    int64   // or -1 if undeclared
+       flow             flow    // limits writing from Handler to client
+       inflow           flow    // what the client is allowed to POST/etc to us
+       parent           *stream // or nil
+       numTrailerValues int64
+       weight           uint8
+       state            streamState
+       resetQueued      bool        // RST_STREAM queued for write; set by sc.resetStream
+       gotTrailerHeader bool        // HEADER frame for trailers was seen
+       wroteHeaders     bool        // whether we wrote headers (not status 100)
+       writeDeadline    *time.Timer // nil if unused
+
+       trailer    http.Header // accumulated trailers
+       reqTrailer http.Header // handler's Request.Trailer
+}
+
+func (sc *serverConn) Framer() *Framer  { return sc.framer }
+func (sc *serverConn) CloseConn() error { return sc.conn.Close() }
+func (sc *serverConn) Flush() error     { return sc.bw.Flush() }
+func (sc *serverConn) HeaderEncoder() (*hpack.Encoder, *bytes.Buffer) {
+       return sc.hpackEncoder, &sc.headerWriteBuf
+}
+
+func (sc *serverConn) state(streamID uint32) (streamState, *stream) {
+       sc.serveG.check()
+       // http://tools.ietf.org/html/rfc7540#section-5.1
+       if st, ok := sc.streams[streamID]; ok {
+               return st.state, st
+       }
+       // "The first use of a new stream identifier implicitly closes all
+       // streams in the "idle" state that might have been initiated by
+       // that peer with a lower-valued stream identifier. For example, if
+       // a client sends a HEADERS frame on stream 7 without ever sending a
+       // frame on stream 5, then stream 5 transitions to the "closed"
+       // state when the first frame for stream 7 is sent or received."
+       if streamID%2 == 1 {
+               if streamID <= sc.maxClientStreamID {
+                       return stateClosed, nil
+               }
+       } else {
+               if streamID <= sc.maxPushPromiseID {
+                       return stateClosed, nil
+               }
+       }
+       return stateIdle, nil
+}
+
+// setConnState calls the net/http ConnState hook for this connection, if configured.
+// Note that the net/http package does StateNew and StateClosed for us.
+// There is currently no plan for StateHijacked or hijacking HTTP/2 connections.
+func (sc *serverConn) setConnState(state http.ConnState) {
+       if sc.hs.ConnState != nil {
+               sc.hs.ConnState(sc.conn, state)
+       }
+}
+
+func (sc *serverConn) vlogf(format string, args ...interface{}) {
+       if VerboseLogs {
+               sc.logf(format, args...)
+       }
+}
+
+func (sc *serverConn) logf(format string, args ...interface{}) {
+       if lg := sc.hs.ErrorLog; lg != nil {
+               lg.Printf(format, args...)
+       } else {
+               log.Printf(format, args...)
+       }
+}
+
+// errno returns v's underlying uintptr, else 0.
+//
+// TODO: remove this helper function once http2 can use build
+// tags. See comment in isClosedConnError.
+func errno(v error) uintptr {
+       if rv := reflect.ValueOf(v); rv.Kind() == reflect.Uintptr {
+               return uintptr(rv.Uint())
+       }
+       return 0
+}
+
+// isClosedConnError reports whether err is an error from use of a closed
+// network connection.
+func isClosedConnError(err error) bool {
+       if err == nil {
+               return false
+       }
+
+       // TODO: remove this string search and be more like the Windows
+       // case below. That might involve modifying the standard library
+       // to return better error types.
+       str := err.Error()
+       if strings.Contains(str, "use of closed network connection") {
+               return true
+       }
+
+       // TODO(bradfitz): x/tools/cmd/bundle doesn't really support
+       // build tags, so I can't make an http2_windows.go file with
+       // Windows-specific stuff. Fix that and move this, once we
+       // have a way to bundle this into std's net/http somehow.
+       if runtime.GOOS == "windows" {
+               if oe, ok := err.(*net.OpError); ok && oe.Op == "read" {
+                       if se, ok := oe.Err.(*os.SyscallError); ok && se.Syscall == "wsarecv" {
+                               const WSAECONNABORTED = 10053
+                               const WSAECONNRESET = 10054
+                               if n := errno(se.Err); n == WSAECONNRESET || n == WSAECONNABORTED {
+                                       return true
+                               }
+                       }
+               }
+       }
+       return false
+}
+
+func (sc *serverConn) condlogf(err error, format string, args ...interface{}) {
+       if err == nil {
+               return
+       }
+       if err == io.EOF || err == io.ErrUnexpectedEOF || isClosedConnError(err) || err == errPrefaceTimeout {
+               // Boring, expected errors.
+               sc.vlogf(format, args...)
+       } else {
+               sc.logf(format, args...)
+       }
+}
+
+func (sc *serverConn) canonicalHeader(v string) string {
+       sc.serveG.check()
+       buildCommonHeaderMapsOnce()
+       cv, ok := commonCanonHeader[v]
+       if ok {
+               return cv
+       }
+       cv, ok = sc.canonHeader[v]
+       if ok {
+               return cv
+       }
+       if sc.canonHeader == nil {
+               sc.canonHeader = make(map[string]string)
+       }
+       cv = http.CanonicalHeaderKey(v)
+       sc.canonHeader[v] = cv
+       return cv
+}
+
+type readFrameResult struct {
+       f   Frame // valid until readMore is called
+       err error
+
+       // readMore should be called once the consumer no longer needs or
+       // retains f. After readMore, f is invalid and more frames can be
+       // read.
+       readMore func()
+}
+
+// readFrames is the loop that reads incoming frames.
+// It takes care to only read one frame at a time, blocking until the
+// consumer is done with the frame.
+// It's run on its own goroutine.
+func (sc *serverConn) readFrames() {
+       gate := make(gate)
+       gateDone := gate.Done
+       for {
+               f, err := sc.framer.ReadFrame()
+               select {
+               case sc.readFrameCh <- readFrameResult{f, err, gateDone}:
+               case <-sc.doneServing:
+                       return
+               }
+               select {
+               case <-gate:
+               case <-sc.doneServing:
+                       return
+               }
+               if terminalReadFrameError(err) {
+                       return
+               }
+       }
+}
+
+// frameWriteResult is the message passed from writeFrameAsync to the serve goroutine.
+type frameWriteResult struct {
+       wr  FrameWriteRequest // what was written (or attempted)
+       err error             // result of the writeFrame call
+}
+
+// writeFrameAsync runs in its own goroutine and writes a single frame
+// and then reports when it's done.
+// At most one goroutine can be running writeFrameAsync at a time per
+// serverConn.
+func (sc *serverConn) writeFrameAsync(wr FrameWriteRequest) {
+       err := wr.write.writeFrame(sc)
+       sc.wroteFrameCh <- frameWriteResult{wr, err}
+}
+
+func (sc *serverConn) closeAllStreamsOnConnClose() {
+       sc.serveG.check()
+       for _, st := range sc.streams {
+               sc.closeStream(st, errClientDisconnected)
+       }
+}
+
+func (sc *serverConn) stopShutdownTimer() {
+       sc.serveG.check()
+       if t := sc.shutdownTimer; t != nil {
+               t.Stop()
+       }
+}
+
+func (sc *serverConn) notePanic() {
+       // Note: this is for serverConn.serve panicking, not http.Handler code.
+       if testHookOnPanicMu != nil {
+               testHookOnPanicMu.Lock()
+               defer testHookOnPanicMu.Unlock()
+       }
+       if testHookOnPanic != nil {
+               if e := recover(); e != nil {
+                       if testHookOnPanic(sc, e) {
+                               panic(e)
+                       }
+               }
+       }
+}
+
+func (sc *serverConn) serve() {
+       sc.serveG.check()
+       defer sc.notePanic()
+       defer sc.conn.Close()
+       defer sc.closeAllStreamsOnConnClose()
+       defer sc.stopShutdownTimer()
+       defer close(sc.doneServing) // unblocks handlers trying to send
+
+       if VerboseLogs {
+               sc.vlogf("http2: server connection from %v on %p", sc.conn.RemoteAddr(), sc.hs)
+       }
+
+       sc.writeFrame(FrameWriteRequest{
+               write: writeSettings{
+                       {SettingMaxFrameSize, sc.srv.maxReadFrameSize()},
+                       {SettingMaxConcurrentStreams, sc.advMaxStreams},
+                       {SettingMaxHeaderListSize, sc.maxHeaderListSize()},
+                       {SettingInitialWindowSize, uint32(sc.srv.initialStreamRecvWindowSize())},
+               },
+       })
+       sc.unackedSettings++
+
+       // Each connection starts with intialWindowSize inflow tokens.
+       // If a higher value is configured, we add more tokens.
+       if diff := sc.srv.initialConnRecvWindowSize() - initialWindowSize; diff > 0 {
+               sc.sendWindowUpdate(nil, int(diff))
+       }
+
+       if err := sc.readPreface(); err != nil {
+               sc.condlogf(err, "http2: server: error reading preface from client %v: %v", sc.conn.RemoteAddr(), err)
+               return
+       }
+       // Now that we've got the preface, get us out of the
+       // "StateNew" state. We can't go directly to idle, though.
+       // Active means we read some data and anticipate a request. We'll
+       // do another Active when we get a HEADERS frame.
+       sc.setConnState(http.StateActive)
+       sc.setConnState(http.StateIdle)
+
+       if sc.srv.IdleTimeout != 0 {
+               sc.idleTimer = time.AfterFunc(sc.srv.IdleTimeout, sc.onIdleTimer)
+               defer sc.idleTimer.Stop()
+       }
+
+       go sc.readFrames() // closed by defer sc.conn.Close above
+
+       settingsTimer := time.AfterFunc(firstSettingsTimeout, sc.onSettingsTimer)
+       defer settingsTimer.Stop()
+
+       loopNum := 0
+       for {
+               loopNum++
+               select {
+               case wr := <-sc.wantWriteFrameCh:
+                       if se, ok := wr.write.(StreamError); ok {
+                               sc.resetStream(se)
+                               break
+                       }
+                       sc.writeFrame(wr)
+               case res := <-sc.wroteFrameCh:
+                       sc.wroteFrame(res)
+               case res := <-sc.readFrameCh:
+                       if !sc.processFrameFromReader(res) {
+                               return
+                       }
+                       res.readMore()
+                       if settingsTimer != nil {
+                               settingsTimer.Stop()
+                               settingsTimer = nil
+                       }
+               case m := <-sc.bodyReadCh:
+                       sc.noteBodyRead(m.st, m.n)
+               case msg := <-sc.serveMsgCh:
+                       switch v := msg.(type) {
+                       case func(int):
+                               v(loopNum) // for testing
+                       case *serverMessage:
+                               switch v {
+                               case settingsTimerMsg:
+                                       sc.logf("timeout waiting for SETTINGS frames from %v", sc.conn.RemoteAddr())
+                                       return
+                               case idleTimerMsg:
+                                       sc.vlogf("connection is idle")
+                                       sc.goAway(ErrCodeNo)
+                               case shutdownTimerMsg:
+                                       sc.vlogf("GOAWAY close timer fired; closing conn from %v", sc.conn.RemoteAddr())
+                                       return
+                               case gracefulShutdownMsg:
+                                       sc.startGracefulShutdownInternal()
+                               default:
+                                       panic("unknown timer")
+                               }
+                       case *startPushRequest:
+                               sc.startPush(v)
+                       default:
+                               panic(fmt.Sprintf("unexpected type %T", v))
+                       }
+               }
+
+               // If the peer is causing us to generate a lot of control frames,
+               // but not reading them from us, assume they are trying to make us
+               // run out of memory.
+               if sc.queuedControlFrames > sc.srv.maxQueuedControlFrames() {
+                       sc.vlogf("http2: too many control frames in send queue, closing connection")
+                       return
+               }
+
+               // Start the shutdown timer after sending a GOAWAY. When sending GOAWAY
+               // with no error code (graceful shutdown), don't start the timer until
+               // all open streams have been completed.
+               sentGoAway := sc.inGoAway && !sc.needToSendGoAway && !sc.writingFrame
+               gracefulShutdownComplete := sc.goAwayCode == ErrCodeNo && sc.curOpenStreams() == 0
+               if sentGoAway && sc.shutdownTimer == nil && (sc.goAwayCode != ErrCodeNo || gracefulShutdownComplete) {
+                       sc.shutDownIn(goAwayTimeout)
+               }
+       }
+}
+
+func (sc *serverConn) awaitGracefulShutdown(sharedCh <-chan struct{}, privateCh chan struct{}) {
+       select {
+       case <-sc.doneServing:
+       case <-sharedCh:
+               close(privateCh)
+       }
+}
+
+type serverMessage int
+
+// Message values sent to serveMsgCh.
+var (
+       settingsTimerMsg    = new(serverMessage)
+       idleTimerMsg        = new(serverMessage)
+       shutdownTimerMsg    = new(serverMessage)
+       gracefulShutdownMsg = new(serverMessage)
+)
+
+func (sc *serverConn) onSettingsTimer() { sc.sendServeMsg(settingsTimerMsg) }
+func (sc *serverConn) onIdleTimer()     { sc.sendServeMsg(idleTimerMsg) }
+func (sc *serverConn) onShutdownTimer() { sc.sendServeMsg(shutdownTimerMsg) }
+
+func (sc *serverConn) sendServeMsg(msg interface{}) {
+       sc.serveG.checkNotOn() // NOT
+       select {
+       case sc.serveMsgCh <- msg:
+       case <-sc.doneServing:
+       }
+}
+
+var errPrefaceTimeout = errors.New("timeout waiting for client preface")
+
+// readPreface reads the ClientPreface greeting from the peer or
+// returns errPrefaceTimeout on timeout, or an error if the greeting
+// is invalid.
+func (sc *serverConn) readPreface() error {
+       errc := make(chan error, 1)
+       go func() {
+               // Read the client preface
+               buf := make([]byte, len(ClientPreface))
+               if _, err := io.ReadFull(sc.conn, buf); err != nil {
+                       errc <- err
+               } else if !bytes.Equal(buf, clientPreface) {
+                       errc <- fmt.Errorf("bogus greeting %q", buf)
+               } else {
+                       errc <- nil
+               }
+       }()
+       timer := time.NewTimer(prefaceTimeout) // TODO: configurable on *Server?
+       defer timer.Stop()
+       select {
+       case <-timer.C:
+               return errPrefaceTimeout
+       case err := <-errc:
+               if err == nil {
+                       if VerboseLogs {
+                               sc.vlogf("http2: server: client %v said hello", sc.conn.RemoteAddr())
+                       }
+               }
+               return err
+       }
+}
+
+var errChanPool = sync.Pool{
+       New: func() interface{} { return make(chan error, 1) },
+}
+
+var writeDataPool = sync.Pool{
+       New: func() interface{} { return new(writeData) },
+}
+
+// writeDataFromHandler writes DATA response frames from a handler on
+// the given stream.
+func (sc *serverConn) writeDataFromHandler(stream *stream, data []byte, endStream bool) error {
+       ch := errChanPool.Get().(chan error)
+       writeArg := writeDataPool.Get().(*writeData)
+       *writeArg = writeData{stream.id, data, endStream}
+       err := sc.writeFrameFromHandler(FrameWriteRequest{
+               write:  writeArg,
+               stream: stream,
+               done:   ch,
+       })
+       if err != nil {
+               return err
+       }
+       var frameWriteDone bool // the frame write is done (successfully or not)
+       select {
+       case err = <-ch:
+               frameWriteDone = true
+       case <-sc.doneServing:
+               return errClientDisconnected
+       case <-stream.cw:
+               // If both ch and stream.cw were ready (as might
+               // happen on the final Write after an http.Handler
+               // ends), prefer the write result. Otherwise this
+               // might just be us successfully closing the stream.
+               // The writeFrameAsync and serve goroutines guarantee
+               // that the ch send will happen before the stream.cw
+               // close.
+               select {
+               case err = <-ch:
+                       frameWriteDone = true
+               default:
+                       return errStreamClosed
+               }
+       }
+       errChanPool.Put(ch)
+       if frameWriteDone {
+               writeDataPool.Put(writeArg)
+       }
+       return err
+}
+
+// writeFrameFromHandler sends wr to sc.wantWriteFrameCh, but aborts
+// if the connection has gone away.
+//
+// This must not be run from the serve goroutine itself, else it might
+// deadlock writing to sc.wantWriteFrameCh (which is only mildly
+// buffered and is read by serve itself). If you're on the serve
+// goroutine, call writeFrame instead.
+func (sc *serverConn) writeFrameFromHandler(wr FrameWriteRequest) error {
+       sc.serveG.checkNotOn() // NOT
+       select {
+       case sc.wantWriteFrameCh <- wr:
+               return nil
+       case <-sc.doneServing:
+               // Serve loop is gone.
+               // Client has closed their connection to the server.
+               return errClientDisconnected
+       }
+}
+
+// writeFrame schedules a frame to write and sends it if there's nothing
+// already being written.
+//
+// There is no pushback here (the serve goroutine never blocks). It's
+// the http.Handlers that block, waiting for their previous frames to
+// make it onto the wire
+//
+// If you're not on the serve goroutine, use writeFrameFromHandler instead.
+func (sc *serverConn) writeFrame(wr FrameWriteRequest) {
+       sc.serveG.check()
+
+       // If true, wr will not be written and wr.done will not be signaled.
+       var ignoreWrite bool
+
+       // We are not allowed to write frames on closed streams. RFC 7540 Section
+       // 5.1.1 says: "An endpoint MUST NOT send frames other than PRIORITY on
+       // a closed stream." Our server never sends PRIORITY, so that exception
+       // does not apply.
+       //
+       // The serverConn might close an open stream while the stream's handler
+       // is still running. For example, the server might close a stream when it
+       // receives bad data from the client. If this happens, the handler might
+       // attempt to write a frame after the stream has been closed (since the
+       // handler hasn't yet been notified of the close). In this case, we simply
+       // ignore the frame. The handler will notice that the stream is closed when
+       // it waits for the frame to be written.
+       //
+       // As an exception to this rule, we allow sending RST_STREAM after close.
+       // This allows us to immediately reject new streams without tracking any
+       // state for those streams (except for the queued RST_STREAM frame). This
+       // may result in duplicate RST_STREAMs in some cases, but the client should
+       // ignore those.
+       if wr.StreamID() != 0 {
+               _, isReset := wr.write.(StreamError)
+               if state, _ := sc.state(wr.StreamID()); state == stateClosed && !isReset {
+                       ignoreWrite = true
+               }
+       }
+
+       // Don't send a 100-continue response if we've already sent headers.
+       // See golang.org/issue/14030.
+       switch wr.write.(type) {
+       case *writeResHeaders:
+               wr.stream.wroteHeaders = true
+       case write100ContinueHeadersFrame:
+               if wr.stream.wroteHeaders {
+                       // We do not need to notify wr.done because this frame is
+                       // never written with wr.done != nil.
+                       if wr.done != nil {
+                               panic("wr.done != nil for write100ContinueHeadersFrame")
+                       }
+                       ignoreWrite = true
+               }
+       }
+
+       if !ignoreWrite {
+               if wr.isControl() {
+                       sc.queuedControlFrames++
+                       // For extra safety, detect wraparounds, which should not happen,
+                       // and pull the plug.
+                       if sc.queuedControlFrames < 0 {
+                               sc.conn.Close()
+                       }
+               }
+               sc.writeSched.Push(wr)
+       }
+       sc.scheduleFrameWrite()
+}
+
+// startFrameWrite starts a goroutine to write wr (in a separate
+// goroutine since that might block on the network), and updates the
+// serve goroutine's state about the world, updated from info in wr.
+func (sc *serverConn) startFrameWrite(wr FrameWriteRequest) {
+       sc.serveG.check()
+       if sc.writingFrame {
+               panic("internal error: can only be writing one frame at a time")
+       }
+
+       st := wr.stream
+       if st != nil {
+               switch st.state {
+               case stateHalfClosedLocal:
+                       switch wr.write.(type) {
+                       case StreamError, handlerPanicRST, writeWindowUpdate:
+                               // RFC 7540 Section 5.1 allows sending RST_STREAM, PRIORITY, and WINDOW_UPDATE
+                               // in this state. (We never send PRIORITY from the server, so that is not checked.)
+                       default:
+                               panic(fmt.Sprintf("internal error: attempt to send frame on a half-closed-local stream: %v", wr))
+                       }
+               case stateClosed:
+                       panic(fmt.Sprintf("internal error: attempt to send frame on a closed stream: %v", wr))
+               }
+       }
+       if wpp, ok := wr.write.(*writePushPromise); ok {
+               var err error
+               wpp.promisedID, err = wpp.allocatePromisedID()
+               if err != nil {
+                       sc.writingFrameAsync = false
+                       wr.replyToWriter(err)
+                       return
+               }
+       }
+
+       sc.writingFrame = true
+       sc.needsFrameFlush = true
+       if wr.write.staysWithinBuffer(sc.bw.Available()) {
+               sc.writingFrameAsync = false
+               err := wr.write.writeFrame(sc)
+               sc.wroteFrame(frameWriteResult{wr, err})
+       } else {
+               sc.writingFrameAsync = true
+               go sc.writeFrameAsync(wr)
+       }
+}
+
+// errHandlerPanicked is the error given to any callers blocked in a read from
+// Request.Body when the main goroutine panics. Since most handlers read in the
+// main ServeHTTP goroutine, this will show up rarely.
+var errHandlerPanicked = errors.New("http2: handler panicked")
+
+// wroteFrame is called on the serve goroutine with the result of
+// whatever happened on writeFrameAsync.
+func (sc *serverConn) wroteFrame(res frameWriteResult) {
+       sc.serveG.check()
+       if !sc.writingFrame {
+               panic("internal error: expected to be already writing a frame")
+       }
+       sc.writingFrame = false
+       sc.writingFrameAsync = false
+
+       wr := res.wr
+
+       if writeEndsStream(wr.write) {
+               st := wr.stream
+               if st == nil {
+                       panic("internal error: expecting non-nil stream")
+               }
+               switch st.state {
+               case stateOpen:
+                       // Here we would go to stateHalfClosedLocal in
+                       // theory, but since our handler is done and
+                       // the net/http package provides no mechanism
+                       // for closing a ResponseWriter while still
+                       // reading data (see possible TODO at top of
+                       // this file), we go into closed state here
+                       // anyway, after telling the peer we're
+                       // hanging up on them. We'll transition to
+                       // stateClosed after the RST_STREAM frame is
+                       // written.
+                       st.state = stateHalfClosedLocal
+                       // Section 8.1: a server MAY request that the client abort
+                       // transmission of a request without error by sending a
+                       // RST_STREAM with an error code of NO_ERROR after sending
+                       // a complete response.
+                       sc.resetStream(streamError(st.id, ErrCodeNo))
+               case stateHalfClosedRemote:
+                       sc.closeStream(st, errHandlerComplete)
+               }
+       } else {
+               switch v := wr.write.(type) {
+               case StreamError:
+                       // st may be unknown if the RST_STREAM was generated to reject bad input.
+                       if st, ok := sc.streams[v.StreamID]; ok {
+                               sc.closeStream(st, v)
+                       }
+               case handlerPanicRST:
+                       sc.closeStream(wr.stream, errHandlerPanicked)
+               }
+       }
+
+       // Reply (if requested) to unblock the ServeHTTP goroutine.
+       wr.replyToWriter(res.err)
+
+       sc.scheduleFrameWrite()
+}
+
+// scheduleFrameWrite tickles the frame writing scheduler.
+//
+// If a frame is already being written, nothing happens. This will be called again
+// when the frame is done being written.
+//
+// If a frame isn't being written and we need to send one, the best frame
+// to send is selected by writeSched.
+//
+// If a frame isn't being written and there's nothing else to send, we
+// flush the write buffer.
+func (sc *serverConn) scheduleFrameWrite() {
+       sc.serveG.check()
+       if sc.writingFrame || sc.inFrameScheduleLoop {
+               return
+       }
+       sc.inFrameScheduleLoop = true
+       for !sc.writingFrameAsync {
+               if sc.needToSendGoAway {
+                       sc.needToSendGoAway = false
+                       sc.startFrameWrite(FrameWriteRequest{
+                               write: &writeGoAway{
+                                       maxStreamID: sc.maxClientStreamID,
+                                       code:        sc.goAwayCode,
+                               },
+                       })
+                       continue
+               }
+               if sc.needToSendSettingsAck {
+                       sc.needToSendSettingsAck = false
+                       sc.startFrameWrite(FrameWriteRequest{write: writeSettingsAck{}})
+                       continue
+               }
+               if !sc.inGoAway || sc.goAwayCode == ErrCodeNo {
+                       if wr, ok := sc.writeSched.Pop(); ok {
+                               if wr.isControl() {
+                                       sc.queuedControlFrames--
+                               }
+                               sc.startFrameWrite(wr)
+                               continue
+                       }
+               }
+               if sc.needsFrameFlush {
+                       sc.startFrameWrite(FrameWriteRequest{write: flushFrameWriter{}})
+                       sc.needsFrameFlush = false // after startFrameWrite, since it sets this true
+                       continue
+               }
+               break
+       }
+       sc.inFrameScheduleLoop = false
+}
+
+// startGracefulShutdown gracefully shuts down a connection. This
+// sends GOAWAY with ErrCodeNo to tell the client we're gracefully
+// shutting down. The connection isn't closed until all current
+// streams are done.
+//
+// startGracefulShutdown returns immediately; it does not wait until
+// the connection has shut down.
+func (sc *serverConn) startGracefulShutdown() {
+       sc.serveG.checkNotOn() // NOT
+       sc.shutdownOnce.Do(func() { sc.sendServeMsg(gracefulShutdownMsg) })
+}
+
+// After sending GOAWAY, the connection will close after goAwayTimeout.
+// If we close the connection immediately after sending GOAWAY, there may
+// be unsent data in our kernel receive buffer, which will cause the kernel
+// to send a TCP RST on close() instead of a FIN. This RST will abort the
+// connection immediately, whether or not the client had received the GOAWAY.
+//
+// Ideally we should delay for at least 1 RTT + epsilon so the client has
+// a chance to read the GOAWAY and stop sending messages. Measuring RTT
+// is hard, so we approximate with 1 second. See golang.org/issue/18701.
+//
+// This is a var so it can be shorter in tests, where all requests uses the
+// loopback interface making the expected RTT very small.
+//
+// TODO: configurable?
+var goAwayTimeout = 1 * time.Second
+
+func (sc *serverConn) startGracefulShutdownInternal() {
+       sc.goAway(ErrCodeNo)
+}
+
+func (sc *serverConn) goAway(code ErrCode) {
+       sc.serveG.check()
+       if sc.inGoAway {
+               return
+       }
+       sc.inGoAway = true
+       sc.needToSendGoAway = true
+       sc.goAwayCode = code
+       sc.scheduleFrameWrite()
+}
+
+func (sc *serverConn) shutDownIn(d time.Duration) {
+       sc.serveG.check()
+       sc.shutdownTimer = time.AfterFunc(d, sc.onShutdownTimer)
+}
+
+func (sc *serverConn) resetStream(se StreamError) {
+       sc.serveG.check()
+       sc.writeFrame(FrameWriteRequest{write: se})
+       if st, ok := sc.streams[se.StreamID]; ok {
+               st.resetQueued = true
+       }
+}
+
+// processFrameFromReader processes the serve loop's read from readFrameCh from the
+// frame-reading goroutine.
+// processFrameFromReader returns whether the connection should be kept open.
+func (sc *serverConn) processFrameFromReader(res readFrameResult) bool {
+       sc.serveG.check()
+       err := res.err
+       if err != nil {
+               if err == ErrFrameTooLarge {
+                       sc.goAway(ErrCodeFrameSize)
+                       return true // goAway will close the loop
+               }
+               clientGone := err == io.EOF || err == io.ErrUnexpectedEOF || isClosedConnError(err)
+               if clientGone {
+                       // TODO: could we also get into this state if
+                       // the peer does a half close
+                       // (e.g. CloseWrite) because they're done
+                       // sending frames but they're still wanting
+                       // our open replies?  Investigate.
+                       // TODO: add CloseWrite to crypto/tls.Conn first
+                       // so we have a way to test this? I suppose
+                       // just for testing we could have a non-TLS mode.
+                       return false
+               }
+       } else {
+               f := res.f
+               if VerboseLogs {
+                       sc.vlogf("http2: server read frame %v", summarizeFrame(f))
+               }
+               err = sc.processFrame(f)
+               if err == nil {
+                       return true
+               }
+       }
+
+       switch ev := err.(type) {
+       case StreamError:
+               sc.resetStream(ev)
+               return true
+       case goAwayFlowError:
+               sc.goAway(ErrCodeFlowControl)
+               return true
+       case ConnectionError:
+               sc.logf("http2: server connection error from %v: %v", sc.conn.RemoteAddr(), ev)
+               sc.goAway(ErrCode(ev))
+               return true // goAway will handle shutdown
+       default:
+               if res.err != nil {
+                       sc.vlogf("http2: server closing client connection; error reading frame from client %s: %v", sc.conn.RemoteAddr(), err)
+               } else {
+                       sc.logf("http2: server closing client connection: %v", err)
+               }
+               return false
+       }
+}
+
+func (sc *serverConn) processFrame(f Frame) error {
+       sc.serveG.check()
+
+       // First frame received must be SETTINGS.
+       if !sc.sawFirstSettings {
+               if _, ok := f.(*SettingsFrame); !ok {
+                       return ConnectionError(ErrCodeProtocol)
+               }
+               sc.sawFirstSettings = true
+       }
+
+       switch f := f.(type) {
+       case *SettingsFrame:
+               return sc.processSettings(f)
+       case *MetaHeadersFrame:
+               return sc.processHeaders(f)
+       case *WindowUpdateFrame:
+               return sc.processWindowUpdate(f)
+       case *PingFrame:
+               return sc.processPing(f)
+       case *DataFrame:
+               return sc.processData(f)
+       case *RSTStreamFrame:
+               return sc.processResetStream(f)
+       case *PriorityFrame:
+               return sc.processPriority(f)
+       case *GoAwayFrame:
+               return sc.processGoAway(f)
+       case *PushPromiseFrame:
+               // A client cannot push. Thus, servers MUST treat the receipt of a PUSH_PROMISE
+               // frame as a connection error (Section 5.4.1) of type PROTOCOL_ERROR.
+               return ConnectionError(ErrCodeProtocol)
+       default:
+               sc.vlogf("http2: server ignoring frame: %v", f.Header())
+               return nil
+       }
+}
+
+func (sc *serverConn) processPing(f *PingFrame) error {
+       sc.serveG.check()
+       if f.IsAck() {
+               // 6.7 PING: " An endpoint MUST NOT respond to PING frames
+               // containing this flag."
+               return nil
+       }
+       if f.StreamID != 0 {
+               // "PING frames are not associated with any individual
+               // stream. If a PING frame is received with a stream
+               // identifier field value other than 0x0, the recipient MUST
+               // respond with a connection error (Section 5.4.1) of type
+               // PROTOCOL_ERROR."
+               return ConnectionError(ErrCodeProtocol)
+       }
+       if sc.inGoAway && sc.goAwayCode != ErrCodeNo {
+               return nil
+       }
+       sc.writeFrame(FrameWriteRequest{write: writePingAck{f}})
+       return nil
+}
+
+func (sc *serverConn) processWindowUpdate(f *WindowUpdateFrame) error {
+       sc.serveG.check()
+       switch {
+       case f.StreamID != 0: // stream-level flow control
+               state, st := sc.state(f.StreamID)
+               if state == stateIdle {
+                       // Section 5.1: "Receiving any frame other than HEADERS
+                       // or PRIORITY on a stream in this state MUST be
+                       // treated as a connection error (Section 5.4.1) of
+                       // type PROTOCOL_ERROR."
+                       return ConnectionError(ErrCodeProtocol)
+               }
+               if st == nil {
+                       // "WINDOW_UPDATE can be sent by a peer that has sent a
+                       // frame bearing the END_STREAM flag. This means that a
+                       // receiver could receive a WINDOW_UPDATE frame on a "half
+                       // closed (remote)" or "closed" stream. A receiver MUST
+                       // NOT treat this as an error, see Section 5.1."
+                       return nil
+               }
+               if !st.flow.add(int32(f.Increment)) {
+                       return streamError(f.StreamID, ErrCodeFlowControl)
+               }
+       default: // connection-level flow control
+               if !sc.flow.add(int32(f.Increment)) {
+                       return goAwayFlowError{}
+               }
+       }
+       sc.scheduleFrameWrite()
+       return nil
+}
+
+func (sc *serverConn) processResetStream(f *RSTStreamFrame) error {
+       sc.serveG.check()
+
+       state, st := sc.state(f.StreamID)
+       if state == stateIdle {
+               // 6.4 "RST_STREAM frames MUST NOT be sent for a
+               // stream in the "idle" state. If a RST_STREAM frame
+               // identifying an idle stream is received, the
+               // recipient MUST treat this as a connection error
+               // (Section 5.4.1) of type PROTOCOL_ERROR.
+               return ConnectionError(ErrCodeProtocol)
+       }
+       if st != nil {
+               st.cancelCtx()
+               sc.closeStream(st, streamError(f.StreamID, f.ErrCode))
+       }
+       return nil
+}
+
+func (sc *serverConn) closeStream(st *stream, err error) {
+       sc.serveG.check()
+       if st.state == stateIdle || st.state == stateClosed {
+               panic(fmt.Sprintf("invariant; can't close stream in state %v", st.state))
+       }
+       st.state = stateClosed
+       if st.writeDeadline != nil {
+               st.writeDeadline.Stop()
+       }
+       if st.isPushed() {
+               sc.curPushedStreams--
+       } else {
+               sc.curClientStreams--
+       }
+       delete(sc.streams, st.id)
+       if len(sc.streams) == 0 {
+               sc.setConnState(http.StateIdle)
+               if sc.srv.IdleTimeout != 0 {
+                       sc.idleTimer.Reset(sc.srv.IdleTimeout)
+               }
+               if h1ServerKeepAlivesDisabled(sc.hs) {
+                       sc.startGracefulShutdownInternal()
+               }
+       }
+       if p := st.body; p != nil {
+               // Return any buffered unread bytes worth of conn-level flow control.
+               // See golang.org/issue/16481
+               sc.sendWindowUpdate(nil, p.Len())
+
+               p.CloseWithError(err)
+       }
+       st.cw.Close() // signals Handler's CloseNotifier, unblocks writes, etc
+       sc.writeSched.CloseStream(st.id)
+}
+
+func (sc *serverConn) processSettings(f *SettingsFrame) error {
+       sc.serveG.check()
+       if f.IsAck() {
+               sc.unackedSettings--
+               if sc.unackedSettings < 0 {
+                       // Why is the peer ACKing settings we never sent?
+                       // The spec doesn't mention this case, but
+                       // hang up on them anyway.
+                       return ConnectionError(ErrCodeProtocol)
+               }
+               return nil
+       }
+       if f.NumSettings() > 100 || f.HasDuplicates() {
+               // This isn't actually in the spec, but hang up on
+               // suspiciously large settings frames or those with
+               // duplicate entries.
+               return ConnectionError(ErrCodeProtocol)
+       }
+       if err := f.ForeachSetting(sc.processSetting); err != nil {
+               return err
+       }
+       // TODO: judging by RFC 7540, Section 6.5.3 each SETTINGS frame should be
+       // acknowledged individually, even if multiple are received before the ACK.
+       sc.needToSendSettingsAck = true
+       sc.scheduleFrameWrite()
+       return nil
+}
+
+func (sc *serverConn) processSetting(s Setting) error {
+       sc.serveG.check()
+       if err := s.Valid(); err != nil {
+               return err
+       }
+       if VerboseLogs {
+               sc.vlogf("http2: server processing setting %v", s)
+       }
+       switch s.ID {
+       case SettingHeaderTableSize:
+               sc.headerTableSize = s.Val
+               sc.hpackEncoder.SetMaxDynamicTableSize(s.Val)
+       case SettingEnablePush:
+               sc.pushEnabled = s.Val != 0
+       case SettingMaxConcurrentStreams:
+               sc.clientMaxStreams = s.Val
+       case SettingInitialWindowSize:
+               return sc.processSettingInitialWindowSize(s.Val)
+       case SettingMaxFrameSize:
+               sc.maxFrameSize = int32(s.Val) // the maximum valid s.Val is < 2^31
+       case SettingMaxHeaderListSize:
+               sc.peerMaxHeaderListSize = s.Val
+       default:
+               // Unknown setting: "An endpoint that receives a SETTINGS
+               // frame with any unknown or unsupported identifier MUST
+               // ignore that setting."
+               if VerboseLogs {
+                       sc.vlogf("http2: server ignoring unknown setting %v", s)
+               }
+       }
+       return nil
+}
+
+func (sc *serverConn) processSettingInitialWindowSize(val uint32) error {
+       sc.serveG.check()
+       // Note: val already validated to be within range by
+       // processSetting's Valid call.
+
+       // "A SETTINGS frame can alter the initial flow control window
+       // size for all current streams. When the value of
+       // SETTINGS_INITIAL_WINDOW_SIZE changes, a receiver MUST
+       // adjust the size of all stream flow control windows that it
+       // maintains by the difference between the new value and the
+       // old value."
+       old := sc.initialStreamSendWindowSize
+       sc.initialStreamSendWindowSize = int32(val)
+       growth := int32(val) - old // may be negative
+       for _, st := range sc.streams {
+               if !st.flow.add(growth) {
+                       // 6.9.2 Initial Flow Control Window Size
+                       // "An endpoint MUST treat a change to
+                       // SETTINGS_INITIAL_WINDOW_SIZE that causes any flow
+                       // control window to exceed the maximum size as a
+                       // connection error (Section 5.4.1) of type
+                       // FLOW_CONTROL_ERROR."
+                       return ConnectionError(ErrCodeFlowControl)
+               }
+       }
+       return nil
+}
+
+func (sc *serverConn) processData(f *DataFrame) error {
+       sc.serveG.check()
+       if sc.inGoAway && sc.goAwayCode != ErrCodeNo {
+               return nil
+       }
+       data := f.Data()
+
+       // "If a DATA frame is received whose stream is not in "open"
+       // or "half closed (local)" state, the recipient MUST respond
+       // with a stream error (Section 5.4.2) of type STREAM_CLOSED."
+       id := f.Header().StreamID
+       state, st := sc.state(id)
+       if id == 0 || state == stateIdle {
+               // Section 5.1: "Receiving any frame other than HEADERS
+               // or PRIORITY on a stream in this state MUST be
+               // treated as a connection error (Section 5.4.1) of
+               // type PROTOCOL_ERROR."
+               return ConnectionError(ErrCodeProtocol)
+       }
+       if st == nil || state != stateOpen || st.gotTrailerHeader || st.resetQueued {
+               // This includes sending a RST_STREAM if the stream is
+               // in stateHalfClosedLocal (which currently means that
+               // the http.Handler returned, so it's done reading &
+               // done writing). Try to stop the client from sending
+               // more DATA.
+
+               // But still enforce their connection-level flow control,
+               // and return any flow control bytes since we're not going
+               // to consume them.
+               if sc.inflow.available() < int32(f.Length) {
+                       return streamError(id, ErrCodeFlowControl)
+               }
+               // Deduct the flow control from inflow, since we're
+               // going to immediately add it back in
+               // sendWindowUpdate, which also schedules sending the
+               // frames.
+               sc.inflow.take(int32(f.Length))
+               sc.sendWindowUpdate(nil, int(f.Length)) // conn-level
+
+               if st != nil && st.resetQueued {
+                       // Already have a stream error in flight. Don't send another.
+                       return nil
+               }
+               return streamError(id, ErrCodeStreamClosed)
+       }
+       if st.body == nil {
+               panic("internal error: should have a body in this state")
+       }
+
+       // Sender sending more than they'd declared?
+       if st.declBodyBytes != -1 && st.bodyBytes+int64(len(data)) > st.declBodyBytes {
+               st.body.CloseWithError(fmt.Errorf("sender tried to send more than declared Content-Length of %d bytes", st.declBodyBytes))
+               // RFC 7540, sec 8.1.2.6: A request or response is also malformed if the
+               // value of a content-length header field does not equal the sum of the
+               // DATA frame payload lengths that form the body.
+               return streamError(id, ErrCodeProtocol)
+       }
+       if f.Length > 0 {
+               // Check whether the client has flow control quota.
+               if st.inflow.available() < int32(f.Length) {
+                       return streamError(id, ErrCodeFlowControl)
+               }
+               st.inflow.take(int32(f.Length))
+
+               if len(data) > 0 {
+                       wrote, err := st.body.Write(data)
+                       if err != nil {
+                               return streamError(id, ErrCodeStreamClosed)
+                       }
+                       if wrote != len(data) {
+                               panic("internal error: bad Writer")
+                       }
+                       st.bodyBytes += int64(len(data))
+               }
+
+               // Return any padded flow control now, since we won't
+               // refund it later on body reads.
+               if pad := int32(f.Length) - int32(len(data)); pad > 0 {
+                       sc.sendWindowUpdate32(nil, pad)
+                       sc.sendWindowUpdate32(st, pad)
+               }
+       }
+       if f.StreamEnded() {
+               st.endStream()
+       }
+       return nil
+}
+
+func (sc *serverConn) processGoAway(f *GoAwayFrame) error {
+       sc.serveG.check()
+       if f.ErrCode != ErrCodeNo {
+               sc.logf("http2: received GOAWAY %+v, starting graceful shutdown", f)
+       } else {
+               sc.vlogf("http2: received GOAWAY %+v, starting graceful shutdown", f)
+       }
+       sc.startGracefulShutdownInternal()
+       // http://tools.ietf.org/html/rfc7540#section-6.8
+       // We should not create any new streams, which means we should disable push.
+       sc.pushEnabled = false
+       return nil
+}
+
+// isPushed reports whether the stream is server-initiated.
+func (st *stream) isPushed() bool {
+       return st.id%2 == 0
+}
+
+// endStream closes a Request.Body's pipe. It is called when a DATA
+// frame says a request body is over (or after trailers).
+func (st *stream) endStream() {
+       sc := st.sc
+       sc.serveG.check()
+
+       if st.declBodyBytes != -1 && st.declBodyBytes != st.bodyBytes {
+               st.body.CloseWithError(fmt.Errorf("request declared a Content-Length of %d but only wrote %d bytes",
+                       st.declBodyBytes, st.bodyBytes))
+       } else {
+               st.body.closeWithErrorAndCode(io.EOF, st.copyTrailersToHandlerRequest)
+               st.body.CloseWithError(io.EOF)
+       }
+       st.state = stateHalfClosedRemote
+}
+
+// copyTrailersToHandlerRequest is run in the Handler's goroutine in
+// its Request.Body.Read just before it gets io.EOF.
+func (st *stream) copyTrailersToHandlerRequest() {
+       for k, vv := range st.trailer {
+               if _, ok := st.reqTrailer[k]; ok {
+                       // Only copy it over it was pre-declared.
+                       st.reqTrailer[k] = vv
+               }
+       }
+}
+
+// onWriteTimeout is run on its own goroutine (from time.AfterFunc)
+// when the stream's WriteTimeout has fired.
+func (st *stream) onWriteTimeout() {
+       st.sc.writeFrameFromHandler(FrameWriteRequest{write: streamError(st.id, ErrCodeInternal)})
+}
+
+func (sc *serverConn) processHeaders(f *MetaHeadersFrame) error {
+       sc.serveG.check()
+       id := f.StreamID
+       if sc.inGoAway {
+               // Ignore.
+               return nil
+       }
+       // http://tools.ietf.org/html/rfc7540#section-5.1.1
+       // Streams initiated by a client MUST use odd-numbered stream
+       // identifiers. [...] An endpoint that receives an unexpected
+       // stream identifier MUST respond with a connection error
+       // (Section 5.4.1) of type PROTOCOL_ERROR.
+       if id%2 != 1 {
+               return ConnectionError(ErrCodeProtocol)
+       }
+       // A HEADERS frame can be used to create a new stream or
+       // send a trailer for an open one. If we already have a stream
+       // open, let it process its own HEADERS frame (trailers at this
+       // point, if it's valid).
+       if st := sc.streams[f.StreamID]; st != nil {
+               if st.resetQueued {
+                       // We're sending RST_STREAM to close the stream, so don't bother
+                       // processing this frame.
+                       return nil
+               }
+               // RFC 7540, sec 5.1: If an endpoint receives additional frames, other than
+               // WINDOW_UPDATE, PRIORITY, or RST_STREAM, for a stream that is in
+               // this state, it MUST respond with a stream error (Section 5.4.2) of
+               // type STREAM_CLOSED.
+               if st.state == stateHalfClosedRemote {
+                       return streamError(id, ErrCodeStreamClosed)
+               }
+               return st.processTrailerHeaders(f)
+       }
+
+       // [...] The identifier of a newly established stream MUST be
+       // numerically greater than all streams that the initiating
+       // endpoint has opened or reserved. [...]  An endpoint that
+       // receives an unexpected stream identifier MUST respond with
+       // a connection error (Section 5.4.1) of type PROTOCOL_ERROR.
+       if id <= sc.maxClientStreamID {
+               return ConnectionError(ErrCodeProtocol)
+       }
+       sc.maxClientStreamID = id
+
+       if sc.idleTimer != nil {
+               sc.idleTimer.Stop()
+       }
+
+       // http://tools.ietf.org/html/rfc7540#section-5.1.2
+       // [...] Endpoints MUST NOT exceed the limit set by their peer. An
+       // endpoint that receives a HEADERS frame that causes their
+       // advertised concurrent stream limit to be exceeded MUST treat
+       // this as a stream error (Section 5.4.2) of type PROTOCOL_ERROR
+       // or REFUSED_STREAM.
+       if sc.curClientStreams+1 > sc.advMaxStreams {
+               if sc.unackedSettings == 0 {
+                       // They should know better.
+                       return streamError(id, ErrCodeProtocol)
+               }
+               // Assume it's a network race, where they just haven't
+               // received our last SETTINGS update. But actually
+               // this can't happen yet, because we don't yet provide
+               // a way for users to adjust server parameters at
+               // runtime.
+               return streamError(id, ErrCodeRefusedStream)
+       }
+
+       initialState := stateOpen
+       if f.StreamEnded() {
+               initialState = stateHalfClosedRemote
+       }
+       st := sc.newStream(id, 0, initialState)
+
+       if f.HasPriority() {
+               if err := checkPriority(f.StreamID, f.Priority); err != nil {
+                       return err
+               }
+               sc.writeSched.AdjustStream(st.id, f.Priority)
+       }
+
+       rw, req, err := sc.newWriterAndRequest(st, f)
+       if err != nil {
+               return err
+       }
+       st.reqTrailer = req.Trailer
+       if st.reqTrailer != nil {
+               st.trailer = make(http.Header)
+       }
+       st.body = req.Body.(*requestBody).pipe // may be nil
+       st.declBodyBytes = req.ContentLength
+
+       handler := sc.handler.ServeHTTP
+       if f.Truncated {
+               // Their header list was too long. Send a 431 error.
+               handler = handleHeaderListTooLong
+       } else if err := checkValidHTTP2RequestHeaders(req.Header); err != nil {
+               handler = new400Handler(err)
+       }
+
+       // The net/http package sets the read deadline from the
+       // http.Server.ReadTimeout during the TLS handshake, but then
+       // passes the connection off to us with the deadline already
+       // set. Disarm it here after the request headers are read,
+       // similar to how the http1 server works. Here it's
+       // technically more like the http1 Server's ReadHeaderTimeout
+       // (in Go 1.8), though. That's a more sane option anyway.
+       if sc.hs.ReadTimeout != 0 {
+               sc.conn.SetReadDeadline(time.Time{})
+       }
+
+       go sc.runHandler(rw, req, handler)
+       return nil
+}
+
+func (st *stream) processTrailerHeaders(f *MetaHeadersFrame) error {
+       sc := st.sc
+       sc.serveG.check()
+       if st.gotTrailerHeader {
+               return ConnectionError(ErrCodeProtocol)
+       }
+       st.gotTrailerHeader = true
+       if !f.StreamEnded() {
+               return streamError(st.id, ErrCodeProtocol)
+       }
+
+       if len(f.PseudoFields()) > 0 {
+               return streamError(st.id, ErrCodeProtocol)
+       }
+       if st.trailer != nil {
+               for _, hf := range f.RegularFields() {
+                       key := sc.canonicalHeader(hf.Name)
+                       if !httpguts.ValidTrailerHeader(key) {
+                               // TODO: send more details to the peer somehow. But http2 has
+                               // no way to send debug data at a stream level. Discuss with
+                               // HTTP folk.
+                               return streamError(st.id, ErrCodeProtocol)
+                       }
+                       st.trailer[key] = append(st.trailer[key], hf.Value)
+               }
+       }
+       st.endStream()
+       return nil
+}
+
+func checkPriority(streamID uint32, p PriorityParam) error {
+       if streamID == p.StreamDep {
+               // Section 5.3.1: "A stream cannot depend on itself. An endpoint MUST treat
+               // this as a stream error (Section 5.4.2) of type PROTOCOL_ERROR."
+               // Section 5.3.3 says that a stream can depend on one of its dependencies,
+               // so it's only self-dependencies that are forbidden.
+               return streamError(streamID, ErrCodeProtocol)
+       }
+       return nil
+}
+
+func (sc *serverConn) processPriority(f *PriorityFrame) error {
+       if sc.inGoAway {
+               return nil
+       }
+       if err := checkPriority(f.StreamID, f.PriorityParam); err != nil {
+               return err
+       }
+       sc.writeSched.AdjustStream(f.StreamID, f.PriorityParam)
+       return nil
+}
+
+func (sc *serverConn) newStream(id, pusherID uint32, state streamState) *stream {
+       sc.serveG.check()
+       if id == 0 {
+               panic("internal error: cannot create stream with id 0")
+       }
+
+       ctx, cancelCtx := context.WithCancel(sc.baseCtx)
+       st := &stream{
+               sc:        sc,
+               id:        id,
+               state:     state,
+               ctx:       ctx,
+               cancelCtx: cancelCtx,
+       }
+       st.cw.Init()
+       st.flow.conn = &sc.flow // link to conn-level counter
+       st.flow.add(sc.initialStreamSendWindowSize)
+       st.inflow.conn = &sc.inflow // link to conn-level counter
+       st.inflow.add(sc.srv.initialStreamRecvWindowSize())
+       if sc.hs.WriteTimeout != 0 {
+               st.writeDeadline = time.AfterFunc(sc.hs.WriteTimeout, st.onWriteTimeout)
+       }
+
+       sc.streams[id] = st
+       sc.writeSched.OpenStream(st.id, OpenStreamOptions{PusherID: pusherID})
+       if st.isPushed() {
+               sc.curPushedStreams++
+       } else {
+               sc.curClientStreams++
+       }
+       if sc.curOpenStreams() == 1 {
+               sc.setConnState(http.StateActive)
+       }
+
+       return st
+}
+
+func (sc *serverConn) newWriterAndRequest(st *stream, f *MetaHeadersFrame) (*responseWriter, *http.Request, error) {
+       sc.serveG.check()
+
+       rp := requestParam{
+               method:    f.PseudoValue("method"),
+               scheme:    f.PseudoValue("scheme"),
+               authority: f.PseudoValue("authority"),
+               path:      f.PseudoValue("path"),
+       }
+
+       isConnect := rp.method == "CONNECT"
+       if isConnect {
+               if rp.path != "" || rp.scheme != "" || rp.authority == "" {
+                       return nil, nil, streamError(f.StreamID, ErrCodeProtocol)
+               }
+       } else if rp.method == "" || rp.path == "" || (rp.scheme != "https" && rp.scheme != "http") {
+               // See 8.1.2.6 Malformed Requests and Responses:
+               //
+               // Malformed requests or responses that are detected
+               // MUST be treated as a stream error (Section 5.4.2)
+               // of type PROTOCOL_ERROR."
+               //
+               // 8.1.2.3 Request Pseudo-Header Fields
+               // "All HTTP/2 requests MUST include exactly one valid
+               // value for the :method, :scheme, and :path
+               // pseudo-header fields"
+               return nil, nil, streamError(f.StreamID, ErrCodeProtocol)
+       }
+
+       bodyOpen := !f.StreamEnded()
+       if rp.method == "HEAD" && bodyOpen {
+               // HEAD requests can't have bodies
+               return nil, nil, streamError(f.StreamID, ErrCodeProtocol)
+       }
+
+       rp.header = make(http.Header)
+       for _, hf := range f.RegularFields() {
+               rp.header.Add(sc.canonicalHeader(hf.Name), hf.Value)
+       }
+       if rp.authority == "" {
+               rp.authority = rp.header.Get("Host")
+       }
+
+       rw, req, err := sc.newWriterAndRequestNoBody(st, rp)
+       if err != nil {
+               return nil, nil, err
+       }
+       if bodyOpen {
+               if vv, ok := rp.header["Content-Length"]; ok {
+                       req.ContentLength, _ = strconv.ParseInt(vv[0], 10, 64)
+               } else {
+                       req.ContentLength = -1
+               }
+               req.Body.(*requestBody).pipe = &pipe{
+                       b: &dataBuffer{expected: req.ContentLength},
+               }
+       }
+       return rw, req, nil
+}
+
+type requestParam struct {
+       method                  string
+       scheme, authority, path string
+       header                  http.Header
+}
+
+func (sc *serverConn) newWriterAndRequestNoBody(st *stream, rp requestParam) (*responseWriter, *http.Request, error) {
+       sc.serveG.check()
+
+       var tlsState *tls.ConnectionState // nil if not scheme https
+       if rp.scheme == "https" {
+               tlsState = sc.tlsState
+       }
+
+       needsContinue := rp.header.Get("Expect") == "100-continue"
+       if needsContinue {
+               rp.header.Del("Expect")
+       }
+       // Merge Cookie headers into one "; "-delimited value.
+       if cookies := rp.header["Cookie"]; len(cookies) > 1 {
+               rp.header.Set("Cookie", strings.Join(cookies, "; "))
+       }
+
+       // Setup Trailers
+       var trailer http.Header
+       for _, v := range rp.header["Trailer"] {
+               for _, key := range strings.Split(v, ",") {
+                       key = http.CanonicalHeaderKey(strings.TrimSpace(key))
+                       switch key {
+                       case "Transfer-Encoding", "Trailer", "Content-Length":
+                               // Bogus. (copy of http1 rules)
+                               // Ignore.
+                       default:
+                               if trailer == nil {
+                                       trailer = make(http.Header)
+                               }
+                               trailer[key] = nil
+                       }
+               }
+       }
+       delete(rp.header, "Trailer")
+
+       var url_ *url.URL
+       var requestURI string
+       if rp.method == "CONNECT" {
+               url_ = &url.URL{Host: rp.authority}
+               requestURI = rp.authority // mimic HTTP/1 server behavior
+       } else {
+               var err error
+               url_, err = url.ParseRequestURI(rp.path)
+               if err != nil {
+                       return nil, nil, streamError(st.id, ErrCodeProtocol)
+               }
+               requestURI = rp.path
+       }
+
+       body := &requestBody{
+               conn:          sc,
+               stream:        st,
+               needsContinue: needsContinue,
+       }
+       req := &http.Request{
+               Method:     rp.method,
+               URL:        url_,
+               RemoteAddr: sc.remoteAddrStr,
+               Header:     rp.header,
+               RequestURI: requestURI,
+               Proto:      "HTTP/2.0",
+               ProtoMajor: 2,
+               ProtoMinor: 0,
+               TLS:        tlsState,
+               Host:       rp.authority,
+               Body:       body,
+               Trailer:    trailer,
+       }
+       req = req.WithContext(st.ctx)
+
+       rws := responseWriterStatePool.Get().(*responseWriterState)
+       bwSave := rws.bw
+       *rws = responseWriterState{} // zero all the fields
+       rws.conn = sc
+       rws.bw = bwSave
+       rws.bw.Reset(chunkWriter{rws})
+       rws.stream = st
+       rws.req = req
+       rws.body = body
+
+       rw := &responseWriter{rws: rws}
+       return rw, req, nil
+}
+
+// Run on its own goroutine.
+func (sc *serverConn) runHandler(rw *responseWriter, req *http.Request, handler func(http.ResponseWriter, *http.Request)) {
+       didPanic := true
+       defer func() {
+               rw.rws.stream.cancelCtx()
+               if didPanic {
+                       e := recover()
+                       sc.writeFrameFromHandler(FrameWriteRequest{
+                               write:  handlerPanicRST{rw.rws.stream.id},
+                               stream: rw.rws.stream,
+                       })
+                       // Same as net/http:
+                       if e != nil && e != http.ErrAbortHandler {
+                               const size = 64 << 10
+                               buf := make([]byte, size)
+                               buf = buf[:runtime.Stack(buf, false)]
+                               sc.logf("http2: panic serving %v: %v\n%s", sc.conn.RemoteAddr(), e, buf)
+                       }
+                       return
+               }
+               rw.handlerDone()
+       }()
+       handler(rw, req)
+       didPanic = false
+}
+
+func handleHeaderListTooLong(w http.ResponseWriter, r *http.Request) {
+       // 10.5.1 Limits on Header Block Size:
+       // .. "A server that receives a larger header block than it is
+       // willing to handle can send an HTTP 431 (Request Header Fields Too
+       // Large) status code"
+       const statusRequestHeaderFieldsTooLarge = 431 // only in Go 1.6+
+       w.WriteHeader(statusRequestHeaderFieldsTooLarge)
+       io.WriteString(w, "<h1>HTTP Error 431</h1><p>Request Header Field(s) Too Large</p>")
+}
+
+// called from handler goroutines.
+// h may be nil.
+func (sc *serverConn) writeHeaders(st *stream, headerData *writeResHeaders) error {
+       sc.serveG.checkNotOn() // NOT on
+       var errc chan error
+       if headerData.h != nil {
+               // If there's a header map (which we don't own), so we have to block on
+               // waiting for this frame to be written, so an http.Flush mid-handler
+               // writes out the correct value of keys, before a handler later potentially
+               // mutates it.
+               errc = errChanPool.Get().(chan error)
+       }
+       if err := sc.writeFrameFromHandler(FrameWriteRequest{
+               write:  headerData,
+               stream: st,
+               done:   errc,
+       }); err != nil {
+               return err
+       }
+       if errc != nil {
+               select {
+               case err := <-errc:
+                       errChanPool.Put(errc)
+                       return err
+               case <-sc.doneServing:
+                       return errClientDisconnected
+               case <-st.cw:
+                       return errStreamClosed
+               }
+       }
+       return nil
+}
+
+// called from handler goroutines.
+func (sc *serverConn) write100ContinueHeaders(st *stream) {
+       sc.writeFrameFromHandler(FrameWriteRequest{
+               write:  write100ContinueHeadersFrame{st.id},
+               stream: st,
+       })
+}
+
+// A bodyReadMsg tells the server loop that the http.Handler read n
+// bytes of the DATA from the client on the given stream.
+type bodyReadMsg struct {
+       st *stream
+       n  int
+}
+
+// called from handler goroutines.
+// Notes that the handler for the given stream ID read n bytes of its body
+// and schedules flow control tokens to be sent.
+func (sc *serverConn) noteBodyReadFromHandler(st *stream, n int, err error) {
+       sc.serveG.checkNotOn() // NOT on
+       if n > 0 {
+               select {
+               case sc.bodyReadCh <- bodyReadMsg{st, n}:
+               case <-sc.doneServing:
+               }
+       }
+}
+
+func (sc *serverConn) noteBodyRead(st *stream, n int) {
+       sc.serveG.check()
+       sc.sendWindowUpdate(nil, n) // conn-level
+       if st.state != stateHalfClosedRemote && st.state != stateClosed {
+               // Don't send this WINDOW_UPDATE if the stream is closed
+               // remotely.
+               sc.sendWindowUpdate(st, n)
+       }
+}
+
+// st may be nil for conn-level
+func (sc *serverConn) sendWindowUpdate(st *stream, n int) {
+       sc.serveG.check()
+       // "The legal range for the increment to the flow control
+       // window is 1 to 2^31-1 (2,147,483,647) octets."
+       // A Go Read call on 64-bit machines could in theory read
+       // a larger Read than this. Very unlikely, but we handle it here
+       // rather than elsewhere for now.
+       const maxUint31 = 1<<31 - 1
+       for n >= maxUint31 {
+               sc.sendWindowUpdate32(st, maxUint31)
+               n -= maxUint31
+       }
+       sc.sendWindowUpdate32(st, int32(n))
+}
+
+// st may be nil for conn-level
+func (sc *serverConn) sendWindowUpdate32(st *stream, n int32) {
+       sc.serveG.check()
+       if n == 0 {
+               return
+       }
+       if n < 0 {
+               panic("negative update")
+       }
+       var streamID uint32
+       if st != nil {
+               streamID = st.id
+       }
+       sc.writeFrame(FrameWriteRequest{
+               write:  writeWindowUpdate{streamID: streamID, n: uint32(n)},
+               stream: st,
+       })
+       var ok bool
+       if st == nil {
+               ok = sc.inflow.add(n)
+       } else {
+               ok = st.inflow.add(n)
+       }
+       if !ok {
+               panic("internal error; sent too many window updates without decrements?")
+       }
+}
+
+// requestBody is the Handler's Request.Body type.
+// Read and Close may be called concurrently.
+type requestBody struct {
+       stream        *stream
+       conn          *serverConn
+       closed        bool  // for use by Close only
+       sawEOF        bool  // for use by Read only
+       pipe          *pipe // non-nil if we have a HTTP entity message body
+       needsContinue bool  // need to send a 100-continue
+}
+
+func (b *requestBody) Close() error {
+       if b.pipe != nil && !b.closed {
+               b.pipe.BreakWithError(errClosedBody)
+       }
+       b.closed = true
+       return nil
+}
+
+func (b *requestBody) Read(p []byte) (n int, err error) {
+       if b.needsContinue {
+               b.needsContinue = false
+               b.conn.write100ContinueHeaders(b.stream)
+       }
+       if b.pipe == nil || b.sawEOF {
+               return 0, io.EOF
+       }
+       n, err = b.pipe.Read(p)
+       if err == io.EOF {
+               b.sawEOF = true
+       }
+       if b.conn == nil && inTests {
+               return
+       }
+       b.conn.noteBodyReadFromHandler(b.stream, n, err)
+       return
+}
+
+// responseWriter is the http.ResponseWriter implementation. It's
+// intentionally small (1 pointer wide) to minimize garbage. The
+// responseWriterState pointer inside is zeroed at the end of a
+// request (in handlerDone) and calls on the responseWriter thereafter
+// simply crash (caller's mistake), but the much larger responseWriterState
+// and buffers are reused between multiple requests.
+type responseWriter struct {
+       rws *responseWriterState
+}
+
+// Optional http.ResponseWriter interfaces implemented.
+var (
+       _ http.CloseNotifier = (*responseWriter)(nil)
+       _ http.Flusher       = (*responseWriter)(nil)
+       _ stringWriter       = (*responseWriter)(nil)
+)
+
+type responseWriterState struct {
+       // immutable within a request:
+       stream *stream
+       req    *http.Request
+       body   *requestBody // to close at end of request, if DATA frames didn't
+       conn   *serverConn
+
+       // TODO: adjust buffer writing sizes based on server config, frame size updates from peer, etc
+       bw *bufio.Writer // writing to a chunkWriter{this *responseWriterState}
+
+       // mutated by http.Handler goroutine:
+       handlerHeader http.Header // nil until called
+       snapHeader    http.Header // snapshot of handlerHeader at WriteHeader time
+       trailers      []string    // set in writeChunk
+       status        int         // status code passed to WriteHeader
+       wroteHeader   bool        // WriteHeader called (explicitly or implicitly). Not necessarily sent to user yet.
+       sentHeader    bool        // have we sent the header frame?
+       handlerDone   bool        // handler has finished
+       dirty         bool        // a Write failed; don't reuse this responseWriterState
+
+       sentContentLen int64 // non-zero if handler set a Content-Length header
+       wroteBytes     int64
+
+       closeNotifierMu sync.Mutex // guards closeNotifierCh
+       closeNotifierCh chan bool  // nil until first used
+}
+
+type chunkWriter struct{ rws *responseWriterState }
+
+func (cw chunkWriter) Write(p []byte) (n int, err error) { return cw.rws.writeChunk(p) }
+
+func (rws *responseWriterState) hasTrailers() bool { return len(rws.trailers) > 0 }
+
+func (rws *responseWriterState) hasNonemptyTrailers() bool {
+       for _, trailer := range rws.trailers {
+               if _, ok := rws.handlerHeader[trailer]; ok {
+                       return true
+               }
+       }
+       return false
+}
+
+// declareTrailer is called for each Trailer header when the
+// response header is written. It notes that a header will need to be
+// written in the trailers at the end of the response.
+func (rws *responseWriterState) declareTrailer(k string) {
+       k = http.CanonicalHeaderKey(k)
+       if !httpguts.ValidTrailerHeader(k) {
+               // Forbidden by RFC 7230, section 4.1.2.
+               rws.conn.logf("ignoring invalid trailer %q", k)
+               return
+       }
+       if !strSliceContains(rws.trailers, k) {
+               rws.trailers = append(rws.trailers, k)
+       }
+}
+
+// writeChunk writes chunks from the bufio.Writer. But because
+// bufio.Writer may bypass its chunking, sometimes p may be
+// arbitrarily large.
+//
+// writeChunk is also responsible (on the first chunk) for sending the
+// HEADER response.
+func (rws *responseWriterState) writeChunk(p []byte) (n int, err error) {
+       if !rws.wroteHeader {
+               rws.writeHeader(200)
+       }
+
+       isHeadResp := rws.req.Method == "HEAD"
+       if !rws.sentHeader {
+               rws.sentHeader = true
+               var ctype, clen string
+               if clen = rws.snapHeader.Get("Content-Length"); clen != "" {
+                       rws.snapHeader.Del("Content-Length")
+                       clen64, err := strconv.ParseInt(clen, 10, 64)
+                       if err == nil && clen64 >= 0 {
+                               rws.sentContentLen = clen64
+                       } else {
+                               clen = ""
+                       }
+               }
+               if clen == "" && rws.handlerDone && bodyAllowedForStatus(rws.status) && (len(p) > 0 || !isHeadResp) {
+                       clen = strconv.Itoa(len(p))
+               }
+               _, hasContentType := rws.snapHeader["Content-Type"]
+               if !hasContentType && bodyAllowedForStatus(rws.status) && len(p) > 0 {
+                       ctype = http.DetectContentType(p)
+               }
+               var date string
+               if _, ok := rws.snapHeader["Date"]; !ok {
+                       // TODO(bradfitz): be faster here, like net/http? measure.
+                       date = time.Now().UTC().Format(http.TimeFormat)
+               }
+
+               for _, v := range rws.snapHeader["Trailer"] {
+                       foreachHeaderElement(v, rws.declareTrailer)
+               }
+
+               // "Connection" headers aren't allowed in HTTP/2 (RFC 7540, 8.1.2.2),
+               // but respect "Connection" == "close" to mean sending a GOAWAY and tearing
+               // down the TCP connection when idle, like we do for HTTP/1.
+               // TODO: remove more Connection-specific header fields here, in addition
+               // to "Connection".
+               if _, ok := rws.snapHeader["Connection"]; ok {
+                       v := rws.snapHeader.Get("Connection")
+                       delete(rws.snapHeader, "Connection")
+                       if v == "close" {
+                               rws.conn.startGracefulShutdown()
+                       }
+               }
+
+               endStream := (rws.handlerDone && !rws.hasTrailers() && len(p) == 0) || isHeadResp
+               err = rws.conn.writeHeaders(rws.stream, &writeResHeaders{
+                       streamID:      rws.stream.id,
+                       httpResCode:   rws.status,
+                       h:             rws.snapHeader,
+                       endStream:     endStream,
+                       contentType:   ctype,
+                       contentLength: clen,
+                       date:          date,
+               })
+               if err != nil {
+                       rws.dirty = true
+                       return 0, err
+               }
+               if endStream {
+                       return 0, nil
+               }
+       }
+       if isHeadResp {
+               return len(p), nil
+       }
+       if len(p) == 0 && !rws.handlerDone {
+               return 0, nil
+       }
+
+       if rws.handlerDone {
+               rws.promoteUndeclaredTrailers()
+       }
+
+       // only send trailers if they have actually been defined by the
+       // server handler.
+       hasNonemptyTrailers := rws.hasNonemptyTrailers()
+       endStream := rws.handlerDone && !hasNonemptyTrailers
+       if len(p) > 0 || endStream {
+               // only send a 0 byte DATA frame if we're ending the stream.
+               if err := rws.conn.writeDataFromHandler(rws.stream, p, endStream); err != nil {
+                       rws.dirty = true
+                       return 0, err
+               }
+       }
+
+       if rws.handlerDone && hasNonemptyTrailers {
+               err = rws.conn.writeHeaders(rws.stream, &writeResHeaders{
+                       streamID:  rws.stream.id,
+                       h:         rws.handlerHeader,
+                       trailers:  rws.trailers,
+                       endStream: true,
+               })
+               if err != nil {
+                       rws.dirty = true
+               }
+               return len(p), err
+       }
+       return len(p), nil
+}
+
+// TrailerPrefix is a magic prefix for ResponseWriter.Header map keys
+// that, if present, signals that the map entry is actually for
+// the response trailers, and not the response headers. The prefix
+// is stripped after the ServeHTTP call finishes and the values are
+// sent in the trailers.
+//
+// This mechanism is intended only for trailers that are not known
+// prior to the headers being written. If the set of trailers is fixed
+// or known before the header is written, the normal Go trailers mechanism
+// is preferred:
+//    https://golang.org/pkg/net/http/#ResponseWriter
+//    https://golang.org/pkg/net/http/#example_ResponseWriter_trailers
+const TrailerPrefix = "Trailer:"
+
+// promoteUndeclaredTrailers permits http.Handlers to set trailers
+// after the header has already been flushed. Because the Go
+// ResponseWriter interface has no way to set Trailers (only the
+// Header), and because we didn't want to expand the ResponseWriter
+// interface, and because nobody used trailers, and because RFC 7230
+// says you SHOULD (but not must) predeclare any trailers in the
+// header, the official ResponseWriter rules said trailers in Go must
+// be predeclared, and then we reuse the same ResponseWriter.Header()
+// map to mean both Headers and Trailers. When it's time to write the
+// Trailers, we pick out the fields of Headers that were declared as
+// trailers. That worked for a while, until we found the first major
+// user of Trailers in the wild: gRPC (using them only over http2),
+// and gRPC libraries permit setting trailers mid-stream without
+// predeclaring them. So: change of plans. We still permit the old
+// way, but we also permit this hack: if a Header() key begins with
+// "Trailer:", the suffix of that key is a Trailer. Because ':' is an
+// invalid token byte anyway, there is no ambiguity. (And it's already
+// filtered out) It's mildly hacky, but not terrible.
+//
+// This method runs after the Handler is done and promotes any Header
+// fields to be trailers.
+func (rws *responseWriterState) promoteUndeclaredTrailers() {
+       for k, vv := range rws.handlerHeader {
+               if !strings.HasPrefix(k, TrailerPrefix) {
+                       continue
+               }
+               trailerKey := strings.TrimPrefix(k, TrailerPrefix)
+               rws.declareTrailer(trailerKey)
+               rws.handlerHeader[http.CanonicalHeaderKey(trailerKey)] = vv
+       }
+
+       if len(rws.trailers) > 1 {
+               sorter := sorterPool.Get().(*sorter)
+               sorter.SortStrings(rws.trailers)
+               sorterPool.Put(sorter)
+       }
+}
+
+func (w *responseWriter) Flush() {
+       rws := w.rws
+       if rws == nil {
+               panic("Header called after Handler finished")
+       }
+       if rws.bw.Buffered() > 0 {
+               if err := rws.bw.Flush(); err != nil {
+                       // Ignore the error. The frame writer already knows.
+                       return
+               }
+       } else {
+               // The bufio.Writer won't call chunkWriter.Write
+               // (writeChunk with zero bytes, so we have to do it
+               // ourselves to force the HTTP response header and/or
+               // final DATA frame (with END_STREAM) to be sent.
+               rws.writeChunk(nil)
+       }
+}
+
+func (w *responseWriter) CloseNotify() <-chan bool {
+       rws := w.rws
+       if rws == nil {
+               panic("CloseNotify called after Handler finished")
+       }
+       rws.closeNotifierMu.Lock()
+       ch := rws.closeNotifierCh
+       if ch == nil {
+               ch = make(chan bool, 1)
+               rws.closeNotifierCh = ch
+               cw := rws.stream.cw
+               go func() {
+                       cw.Wait() // wait for close
+                       ch <- true
+               }()
+       }
+       rws.closeNotifierMu.Unlock()
+       return ch
+}
+
+func (w *responseWriter) Header() http.Header {
+       rws := w.rws
+       if rws == nil {
+               panic("Header called after Handler finished")
+       }
+       if rws.handlerHeader == nil {
+               rws.handlerHeader = make(http.Header)
+       }
+       return rws.handlerHeader
+}
+
+// checkWriteHeaderCode is a copy of net/http's checkWriteHeaderCode.
+func checkWriteHeaderCode(code int) {
+       // Issue 22880: require valid WriteHeader status codes.
+       // For now we only enforce that it's three digits.
+       // In the future we might block things over 599 (600 and above aren't defined
+       // at http://httpwg.org/specs/rfc7231.html#status.codes)
+       // and we might block under 200 (once we have more mature 1xx support).
+       // But for now any three digits.
+       //
+       // We used to send "HTTP/1.1 000 0" on the wire in responses but there's
+       // no equivalent bogus thing we can realistically send in HTTP/2,
+       // so we'll consistently panic instead and help people find their bugs
+       // early. (We can't return an error from WriteHeader even if we wanted to.)
+       if code < 100 || code > 999 {
+               panic(fmt.Sprintf("invalid WriteHeader code %v", code))
+       }
+}
+
+func (w *responseWriter) WriteHeader(code int) {
+       rws := w.rws
+       if rws == nil {
+               panic("WriteHeader called after Handler finished")
+       }
+       rws.writeHeader(code)
+}
+
+func (rws *responseWriterState) writeHeader(code int) {
+       if !rws.wroteHeader {
+               checkWriteHeaderCode(code)
+               rws.wroteHeader = true
+               rws.status = code
+               if len(rws.handlerHeader) > 0 {
+                       rws.snapHeader = cloneHeader(rws.handlerHeader)
+               }
+       }
+}
+
+func cloneHeader(h http.Header) http.Header {
+       h2 := make(http.Header, len(h))
+       for k, vv := range h {
+               vv2 := make([]string, len(vv))
+               copy(vv2, vv)
+               h2[k] = vv2
+       }
+       return h2
+}
+
+// The Life Of A Write is like this:
+//
+// * Handler calls w.Write or w.WriteString ->
+// * -> rws.bw (*bufio.Writer) ->
+// * (Handler might call Flush)
+// * -> chunkWriter{rws}
+// * -> responseWriterState.writeChunk(p []byte)
+// * -> responseWriterState.writeChunk (most of the magic; see comment there)
+func (w *responseWriter) Write(p []byte) (n int, err error) {
+       return w.write(len(p), p, "")
+}
+
+func (w *responseWriter) WriteString(s string) (n int, err error) {
+       return w.write(len(s), nil, s)
+}
+
+// either dataB or dataS is non-zero.
+func (w *responseWriter) write(lenData int, dataB []byte, dataS string) (n int, err error) {
+       rws := w.rws
+       if rws == nil {
+               panic("Write called after Handler finished")
+       }
+       if !rws.wroteHeader {
+               w.WriteHeader(200)
+       }
+       if !bodyAllowedForStatus(rws.status) {
+               return 0, http.ErrBodyNotAllowed
+       }
+       rws.wroteBytes += int64(len(dataB)) + int64(len(dataS)) // only one can be set
+       if rws.sentContentLen != 0 && rws.wroteBytes > rws.sentContentLen {
+               // TODO: send a RST_STREAM
+               return 0, errors.New("http2: handler wrote more than declared Content-Length")
+       }
+
+       if dataB != nil {
+               return rws.bw.Write(dataB)
+       } else {
+               return rws.bw.WriteString(dataS)
+       }
+}
+
+func (w *responseWriter) handlerDone() {
+       rws := w.rws
+       dirty := rws.dirty
+       rws.handlerDone = true
+       w.Flush()
+       w.rws = nil
+       if !dirty {
+               // Only recycle the pool if all prior Write calls to
+               // the serverConn goroutine completed successfully. If
+               // they returned earlier due to resets from the peer
+               // there might still be write goroutines outstanding
+               // from the serverConn referencing the rws memory. See
+               // issue 20704.
+               responseWriterStatePool.Put(rws)
+       }
+}
+
+// Push errors.
+var (
+       ErrRecursivePush    = errors.New("http2: recursive push not allowed")
+       ErrPushLimitReached = errors.New("http2: push would exceed peer's SETTINGS_MAX_CONCURRENT_STREAMS")
+)
+
+var _ http.Pusher = (*responseWriter)(nil)
+
+func (w *responseWriter) Push(target string, opts *http.PushOptions) error {
+       st := w.rws.stream
+       sc := st.sc
+       sc.serveG.checkNotOn()
+
+       // No recursive pushes: "PUSH_PROMISE frames MUST only be sent on a peer-initiated stream."
+       // http://tools.ietf.org/html/rfc7540#section-6.6
+       if st.isPushed() {
+               return ErrRecursivePush
+       }
+
+       if opts == nil {
+               opts = new(http.PushOptions)
+       }
+
+       // Default options.
+       if opts.Method == "" {
+               opts.Method = "GET"
+       }
+       if opts.Header == nil {
+               opts.Header = http.Header{}
+       }
+       wantScheme := "http"
+       if w.rws.req.TLS != nil {
+               wantScheme = "https"
+       }
+
+       // Validate the request.
+       u, err := url.Parse(target)
+       if err != nil {
+               return err
+       }
+       if u.Scheme == "" {
+               if !strings.HasPrefix(target, "/") {
+                       return fmt.Errorf("target must be an absolute URL or an absolute path: %q", target)
+               }
+               u.Scheme = wantScheme
+               u.Host = w.rws.req.Host
+       } else {
+               if u.Scheme != wantScheme {
+                       return fmt.Errorf("cannot push URL with scheme %q from request with scheme %q", u.Scheme, wantScheme)
+               }
+               if u.Host == "" {
+                       return errors.New("URL must have a host")
+               }
+       }
+       for k := range opts.Header {
+               if strings.HasPrefix(k, ":") {
+                       return fmt.Errorf("promised request headers cannot include pseudo header %q", k)
+               }
+               // These headers are meaningful only if the request has a body,
+               // but PUSH_PROMISE requests cannot have a body.
+               // http://tools.ietf.org/html/rfc7540#section-8.2
+               // Also disallow Host, since the promised URL must be absolute.
+               switch strings.ToLower(k) {
+               case "content-length", "content-encoding", "trailer", "te", "expect", "host":
+                       return fmt.Errorf("promised request headers cannot include %q", k)
+               }
+       }
+       if err := checkValidHTTP2RequestHeaders(opts.Header); err != nil {
+               return err
+       }
+
+       // The RFC effectively limits promised requests to GET and HEAD:
+       // "Promised requests MUST be cacheable [GET, HEAD, or POST], and MUST be safe [GET or HEAD]"
+       // http://tools.ietf.org/html/rfc7540#section-8.2
+       if opts.Method != "GET" && opts.Method != "HEAD" {
+               return fmt.Errorf("method %q must be GET or HEAD", opts.Method)
+       }
+
+       msg := &startPushRequest{
+               parent: st,
+               method: opts.Method,
+               url:    u,
+               header: cloneHeader(opts.Header),
+               done:   errChanPool.Get().(chan error),
+       }
+
+       select {
+       case <-sc.doneServing:
+               return errClientDisconnected
+       case <-st.cw:
+               return errStreamClosed
+       case sc.serveMsgCh <- msg:
+       }
+
+       select {
+       case <-sc.doneServing:
+               return errClientDisconnected
+       case <-st.cw:
+               return errStreamClosed
+       case err := <-msg.done:
+               errChanPool.Put(msg.done)
+               return err
+       }
+}
+
+type startPushRequest struct {
+       parent *stream
+       method string
+       url    *url.URL
+       header http.Header
+       done   chan error
+}
+
+func (sc *serverConn) startPush(msg *startPushRequest) {
+       sc.serveG.check()
+
+       // http://tools.ietf.org/html/rfc7540#section-6.6.
+       // PUSH_PROMISE frames MUST only be sent on a peer-initiated stream that
+       // is in either the "open" or "half-closed (remote)" state.
+       if msg.parent.state != stateOpen && msg.parent.state != stateHalfClosedRemote {
+               // responseWriter.Push checks that the stream is peer-initiated.
+               msg.done <- errStreamClosed
+               return
+       }
+
+       // http://tools.ietf.org/html/rfc7540#section-6.6.
+       if !sc.pushEnabled {
+               msg.done <- http.ErrNotSupported
+               return
+       }
+
+       // PUSH_PROMISE frames must be sent in increasing order by stream ID, so
+       // we allocate an ID for the promised stream lazily, when the PUSH_PROMISE
+       // is written. Once the ID is allocated, we start the request handler.
+       allocatePromisedID := func() (uint32, error) {
+               sc.serveG.check()
+
+               // Check this again, just in case. Technically, we might have received
+               // an updated SETTINGS by the time we got around to writing this frame.
+               if !sc.pushEnabled {
+                       return 0, http.ErrNotSupported
+               }
+               // http://tools.ietf.org/html/rfc7540#section-6.5.2.
+               if sc.curPushedStreams+1 > sc.clientMaxStreams {
+                       return 0, ErrPushLimitReached
+               }
+
+               // http://tools.ietf.org/html/rfc7540#section-5.1.1.
+               // Streams initiated by the server MUST use even-numbered identifiers.
+               // A server that is unable to establish a new stream identifier can send a GOAWAY
+               // frame so that the client is forced to open a new connection for new streams.
+               if sc.maxPushPromiseID+2 >= 1<<31 {
+                       sc.startGracefulShutdownInternal()
+                       return 0, ErrPushLimitReached
+               }
+               sc.maxPushPromiseID += 2
+               promisedID := sc.maxPushPromiseID
+
+               // http://tools.ietf.org/html/rfc7540#section-8.2.
+               // Strictly speaking, the new stream should start in "reserved (local)", then
+               // transition to "half closed (remote)" after sending the initial HEADERS, but
+               // we start in "half closed (remote)" for simplicity.
+               // See further comments at the definition of stateHalfClosedRemote.
+               promised := sc.newStream(promisedID, msg.parent.id, stateHalfClosedRemote)
+               rw, req, err := sc.newWriterAndRequestNoBody(promised, requestParam{
+                       method:    msg.method,
+                       scheme:    msg.url.Scheme,
+                       authority: msg.url.Host,
+                       path:      msg.url.RequestURI(),
+                       header:    cloneHeader(msg.header), // clone since handler runs concurrently with writing the PUSH_PROMISE
+               })
+               if err != nil {
+                       // Should not happen, since we've already validated msg.url.
+                       panic(fmt.Sprintf("newWriterAndRequestNoBody(%+v): %v", msg.url, err))
+               }
+
+               go sc.runHandler(rw, req, sc.handler.ServeHTTP)
+               return promisedID, nil
+       }
+
+       sc.writeFrame(FrameWriteRequest{
+               write: &writePushPromise{
+                       streamID:           msg.parent.id,
+                       method:             msg.method,
+                       url:                msg.url,
+                       h:                  msg.header,
+                       allocatePromisedID: allocatePromisedID,
+               },
+               stream: msg.parent,
+               done:   msg.done,
+       })
+}
+
+// foreachHeaderElement splits v according to the "#rule" construction
+// in RFC 7230 section 7 and calls fn for each non-empty element.
+func foreachHeaderElement(v string, fn func(string)) {
+       v = textproto.TrimString(v)
+       if v == "" {
+               return
+       }
+       if !strings.Contains(v, ",") {
+               fn(v)
+               return
+       }
+       for _, f := range strings.Split(v, ",") {
+               if f = textproto.TrimString(f); f != "" {
+                       fn(f)
+               }
+       }
+}
+
+// From http://httpwg.org/specs/rfc7540.html#rfc.section.8.1.2.2
+var connHeaders = []string{
+       "Connection",
+       "Keep-Alive",
+       "Proxy-Connection",
+       "Transfer-Encoding",
+       "Upgrade",
+}
+
+// checkValidHTTP2RequestHeaders checks whether h is a valid HTTP/2 request,
+// per RFC 7540 Section 8.1.2.2.
+// The returned error is reported to users.
+func checkValidHTTP2RequestHeaders(h http.Header) error {
+       for _, k := range connHeaders {
+               if _, ok := h[k]; ok {
+                       return fmt.Errorf("request header %q is not valid in HTTP/2", k)
+               }
+       }
+       te := h["Te"]
+       if len(te) > 0 && (len(te) > 1 || (te[0] != "trailers" && te[0] != "")) {
+               return errors.New(`request header "TE" may only be "trailers" in HTTP/2`)
+       }
+       return nil
+}
+
+func new400Handler(err error) http.HandlerFunc {
+       return func(w http.ResponseWriter, r *http.Request) {
+               http.Error(w, err.Error(), http.StatusBadRequest)
+       }
+}
+
+// h1ServerKeepAlivesDisabled reports whether hs has its keep-alives
+// disabled. See comments on h1ServerShutdownChan above for why
+// the code is written this way.
+func h1ServerKeepAlivesDisabled(hs *http.Server) bool {
+       var x interface{} = hs
+       type I interface {
+               doKeepAlives() bool
+       }
+       if hs, ok := x.(I); ok {
+               return !hs.doKeepAlives()
+       }
+       return false
+}
diff --git a/vendor/golang.org/x/net/http2/transport.go b/vendor/golang.org/x/net/http2/transport.go
new file mode 100644 (file)
index 0000000..c51a73c
--- /dev/null
@@ -0,0 +1,2634 @@
+// 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.
+
+// Transport code.
+
+package http2
+
+import (
+       "bufio"
+       "bytes"
+       "compress/gzip"
+       "context"
+       "crypto/rand"
+       "crypto/tls"
+       "errors"
+       "fmt"
+       "io"
+       "io/ioutil"
+       "log"
+       "math"
+       mathrand "math/rand"
+       "net"
+       "net/http"
+       "net/http/httptrace"
+       "net/textproto"
+       "sort"
+       "strconv"
+       "strings"
+       "sync"
+       "sync/atomic"
+       "time"
+
+       "golang.org/x/net/http/httpguts"
+       "golang.org/x/net/http2/hpack"
+       "golang.org/x/net/idna"
+)
+
+const (
+       // transportDefaultConnFlow is how many connection-level flow control
+       // tokens we give the server at start-up, past the default 64k.
+       transportDefaultConnFlow = 1 << 30
+
+       // transportDefaultStreamFlow is how many stream-level flow
+       // control tokens we announce to the peer, and how many bytes
+       // we buffer per stream.
+       transportDefaultStreamFlow = 4 << 20
+
+       // transportDefaultStreamMinRefresh is the minimum number of bytes we'll send
+       // a stream-level WINDOW_UPDATE for at a time.
+       transportDefaultStreamMinRefresh = 4 << 10
+
+       defaultUserAgent = "Go-http-client/2.0"
+)
+
+// Transport is an HTTP/2 Transport.
+//
+// A Transport internally caches connections to servers. It is safe
+// for concurrent use by multiple goroutines.
+type Transport struct {
+       // DialTLS specifies an optional dial function for creating
+       // TLS connections for requests.
+       //
+       // If DialTLS is nil, tls.Dial is used.
+       //
+       // If the returned net.Conn has a ConnectionState method like tls.Conn,
+       // it will be used to set http.Response.TLS.
+       DialTLS func(network, addr string, cfg *tls.Config) (net.Conn, error)
+
+       // TLSClientConfig specifies the TLS configuration to use with
+       // tls.Client. If nil, the default configuration is used.
+       TLSClientConfig *tls.Config
+
+       // ConnPool optionally specifies an alternate connection pool to use.
+       // If nil, the default is used.
+       ConnPool ClientConnPool
+
+       // DisableCompression, if true, prevents the Transport from
+       // requesting compression with an "Accept-Encoding: gzip"
+       // request header when the Request contains no existing
+       // Accept-Encoding value. If the Transport requests gzip on
+       // its own and gets a gzipped response, it's transparently
+       // decoded in the Response.Body. However, if the user
+       // explicitly requested gzip it is not automatically
+       // uncompressed.
+       DisableCompression bool
+
+       // AllowHTTP, if true, permits HTTP/2 requests using the insecure,
+       // plain-text "http" scheme. Note that this does not enable h2c support.
+       AllowHTTP bool
+
+       // MaxHeaderListSize is the http2 SETTINGS_MAX_HEADER_LIST_SIZE to
+       // send in the initial settings frame. It is how many bytes
+       // of response headers are allowed. Unlike the http2 spec, zero here
+       // means to use a default limit (currently 10MB). If you actually
+       // want to advertise an ulimited value to the peer, Transport
+       // interprets the highest possible value here (0xffffffff or 1<<32-1)
+       // to mean no limit.
+       MaxHeaderListSize uint32
+
+       // StrictMaxConcurrentStreams controls whether the server's
+       // SETTINGS_MAX_CONCURRENT_STREAMS should be respected
+       // globally. If false, new TCP connections are created to the
+       // server as needed to keep each under the per-connection
+       // SETTINGS_MAX_CONCURRENT_STREAMS limit. If true, the
+       // server's SETTINGS_MAX_CONCURRENT_STREAMS is interpreted as
+       // a global limit and callers of RoundTrip block when needed,
+       // waiting for their turn.
+       StrictMaxConcurrentStreams bool
+
+       // t1, if non-nil, is the standard library Transport using
+       // this transport. Its settings are used (but not its
+       // RoundTrip method, etc).
+       t1 *http.Transport
+
+       connPoolOnce  sync.Once
+       connPoolOrDef ClientConnPool // non-nil version of ConnPool
+}
+
+func (t *Transport) maxHeaderListSize() uint32 {
+       if t.MaxHeaderListSize == 0 {
+               return 10 << 20
+       }
+       if t.MaxHeaderListSize == 0xffffffff {
+               return 0
+       }
+       return t.MaxHeaderListSize
+}
+
+func (t *Transport) disableCompression() bool {
+       return t.DisableCompression || (t.t1 != nil && t.t1.DisableCompression)
+}
+
+// ConfigureTransport configures a net/http HTTP/1 Transport to use HTTP/2.
+// It returns an error if t1 has already been HTTP/2-enabled.
+func ConfigureTransport(t1 *http.Transport) error {
+       _, err := configureTransport(t1)
+       return err
+}
+
+func configureTransport(t1 *http.Transport) (*Transport, error) {
+       connPool := new(clientConnPool)
+       t2 := &Transport{
+               ConnPool: noDialClientConnPool{connPool},
+               t1:       t1,
+       }
+       connPool.t = t2
+       if err := registerHTTPSProtocol(t1, noDialH2RoundTripper{t2}); err != nil {
+               return nil, err
+       }
+       if t1.TLSClientConfig == nil {
+               t1.TLSClientConfig = new(tls.Config)
+       }
+       if !strSliceContains(t1.TLSClientConfig.NextProtos, "h2") {
+               t1.TLSClientConfig.NextProtos = append([]string{"h2"}, t1.TLSClientConfig.NextProtos...)
+       }
+       if !strSliceContains(t1.TLSClientConfig.NextProtos, "http/1.1") {
+               t1.TLSClientConfig.NextProtos = append(t1.TLSClientConfig.NextProtos, "http/1.1")
+       }
+       upgradeFn := func(authority string, c *tls.Conn) http.RoundTripper {
+               addr := authorityAddr("https", authority)
+               if used, err := connPool.addConnIfNeeded(addr, t2, c); err != nil {
+                       go c.Close()
+                       return erringRoundTripper{err}
+               } else if !used {
+                       // Turns out we don't need this c.
+                       // For example, two goroutines made requests to the same host
+                       // at the same time, both kicking off TCP dials. (since protocol
+                       // was unknown)
+                       go c.Close()
+               }
+               return t2
+       }
+       if m := t1.TLSNextProto; len(m) == 0 {
+               t1.TLSNextProto = map[string]func(string, *tls.Conn) http.RoundTripper{
+                       "h2": upgradeFn,
+               }
+       } else {
+               m["h2"] = upgradeFn
+       }
+       return t2, nil
+}
+
+func (t *Transport) connPool() ClientConnPool {
+       t.connPoolOnce.Do(t.initConnPool)
+       return t.connPoolOrDef
+}
+
+func (t *Transport) initConnPool() {
+       if t.ConnPool != nil {
+               t.connPoolOrDef = t.ConnPool
+       } else {
+               t.connPoolOrDef = &clientConnPool{t: t}
+       }
+}
+
+// ClientConn is the state of a single HTTP/2 client connection to an
+// HTTP/2 server.
+type ClientConn struct {
+       t         *Transport
+       tconn     net.Conn             // usually *tls.Conn, except specialized impls
+       tlsState  *tls.ConnectionState // nil only for specialized impls
+       reused    uint32               // whether conn is being reused; atomic
+       singleUse bool                 // whether being used for a single http.Request
+
+       // readLoop goroutine fields:
+       readerDone chan struct{} // closed on error
+       readerErr  error         // set before readerDone is closed
+
+       idleTimeout time.Duration // or 0 for never
+       idleTimer   *time.Timer
+
+       mu              sync.Mutex // guards following
+       cond            *sync.Cond // hold mu; broadcast on flow/closed changes
+       flow            flow       // our conn-level flow control quota (cs.flow is per stream)
+       inflow          flow       // peer's conn-level flow control
+       closing         bool
+       closed          bool
+       wantSettingsAck bool                     // we sent a SETTINGS frame and haven't heard back
+       goAway          *GoAwayFrame             // if non-nil, the GoAwayFrame we received
+       goAwayDebug     string                   // goAway frame's debug data, retained as a string
+       streams         map[uint32]*clientStream // client-initiated
+       nextStreamID    uint32
+       pendingRequests int                       // requests blocked and waiting to be sent because len(streams) == maxConcurrentStreams
+       pings           map[[8]byte]chan struct{} // in flight ping data to notification channel
+       bw              *bufio.Writer
+       br              *bufio.Reader
+       fr              *Framer
+       lastActive      time.Time
+       // Settings from peer: (also guarded by mu)
+       maxFrameSize          uint32
+       maxConcurrentStreams  uint32
+       peerMaxHeaderListSize uint64
+       initialWindowSize     uint32
+
+       hbuf    bytes.Buffer // HPACK encoder writes into this
+       henc    *hpack.Encoder
+       freeBuf [][]byte
+
+       wmu  sync.Mutex // held while writing; acquire AFTER mu if holding both
+       werr error      // first write error that has occurred
+}
+
+// clientStream is the state for a single HTTP/2 stream. One of these
+// is created for each Transport.RoundTrip call.
+type clientStream struct {
+       cc            *ClientConn
+       req           *http.Request
+       trace         *httptrace.ClientTrace // or nil
+       ID            uint32
+       resc          chan resAndError
+       bufPipe       pipe // buffered pipe with the flow-controlled response payload
+       startedWrite  bool // started request body write; guarded by cc.mu
+       requestedGzip bool
+       on100         func() // optional code to run if get a 100 continue response
+
+       flow        flow  // guarded by cc.mu
+       inflow      flow  // guarded by cc.mu
+       bytesRemain int64 // -1 means unknown; owned by transportResponseBody.Read
+       readErr     error // sticky read error; owned by transportResponseBody.Read
+       stopReqBody error // if non-nil, stop writing req body; guarded by cc.mu
+       didReset    bool  // whether we sent a RST_STREAM to the server; guarded by cc.mu
+
+       peerReset chan struct{} // closed on peer reset
+       resetErr  error         // populated before peerReset is closed
+
+       done chan struct{} // closed when stream remove from cc.streams map; close calls guarded by cc.mu
+
+       // owned by clientConnReadLoop:
+       firstByte    bool  // got the first response byte
+       pastHeaders  bool  // got first MetaHeadersFrame (actual headers)
+       pastTrailers bool  // got optional second MetaHeadersFrame (trailers)
+       num1xx       uint8 // number of 1xx responses seen
+
+       trailer    http.Header  // accumulated trailers
+       resTrailer *http.Header // client's Response.Trailer
+}
+
+// awaitRequestCancel waits for the user to cancel a request or for the done
+// channel to be signaled. A non-nil error is returned only if the request was
+// canceled.
+func awaitRequestCancel(req *http.Request, done <-chan struct{}) error {
+       ctx := req.Context()
+       if req.Cancel == nil && ctx.Done() == nil {
+               return nil
+       }
+       select {
+       case <-req.Cancel:
+               return errRequestCanceled
+       case <-ctx.Done():
+               return ctx.Err()
+       case <-done:
+               return nil
+       }
+}
+
+var got1xxFuncForTests func(int, textproto.MIMEHeader) error
+
+// get1xxTraceFunc returns the value of request's httptrace.ClientTrace.Got1xxResponse func,
+// if any. It returns nil if not set or if the Go version is too old.
+func (cs *clientStream) get1xxTraceFunc() func(int, textproto.MIMEHeader) error {
+       if fn := got1xxFuncForTests; fn != nil {
+               return fn
+       }
+       return traceGot1xxResponseFunc(cs.trace)
+}
+
+// awaitRequestCancel waits for the user to cancel a request, its context to
+// expire, or for the request to be done (any way it might be removed from the
+// cc.streams map: peer reset, successful completion, TCP connection breakage,
+// etc). If the request is canceled, then cs will be canceled and closed.
+func (cs *clientStream) awaitRequestCancel(req *http.Request) {
+       if err := awaitRequestCancel(req, cs.done); err != nil {
+               cs.cancelStream()
+               cs.bufPipe.CloseWithError(err)
+       }
+}
+
+func (cs *clientStream) cancelStream() {
+       cc := cs.cc
+       cc.mu.Lock()
+       didReset := cs.didReset
+       cs.didReset = true
+       cc.mu.Unlock()
+
+       if !didReset {
+               cc.writeStreamReset(cs.ID, ErrCodeCancel, nil)
+               cc.forgetStreamID(cs.ID)
+       }
+}
+
+// checkResetOrDone reports any error sent in a RST_STREAM frame by the
+// server, or errStreamClosed if the stream is complete.
+func (cs *clientStream) checkResetOrDone() error {
+       select {
+       case <-cs.peerReset:
+               return cs.resetErr
+       case <-cs.done:
+               return errStreamClosed
+       default:
+               return nil
+       }
+}
+
+func (cs *clientStream) getStartedWrite() bool {
+       cc := cs.cc
+       cc.mu.Lock()
+       defer cc.mu.Unlock()
+       return cs.startedWrite
+}
+
+func (cs *clientStream) abortRequestBodyWrite(err error) {
+       if err == nil {
+               panic("nil error")
+       }
+       cc := cs.cc
+       cc.mu.Lock()
+       cs.stopReqBody = err
+       cc.cond.Broadcast()
+       cc.mu.Unlock()
+}
+
+type stickyErrWriter struct {
+       w   io.Writer
+       err *error
+}
+
+func (sew stickyErrWriter) Write(p []byte) (n int, err error) {
+       if *sew.err != nil {
+               return 0, *sew.err
+       }
+       n, err = sew.w.Write(p)
+       *sew.err = err
+       return
+}
+
+// noCachedConnError is the concrete type of ErrNoCachedConn, which
+// needs to be detected by net/http regardless of whether it's its
+// bundled version (in h2_bundle.go with a rewritten type name) or
+// from a user's x/net/http2. As such, as it has a unique method name
+// (IsHTTP2NoCachedConnError) that net/http sniffs for via func
+// isNoCachedConnError.
+type noCachedConnError struct{}
+
+func (noCachedConnError) IsHTTP2NoCachedConnError() {}
+func (noCachedConnError) Error() string             { return "http2: no cached connection was available" }
+
+// isNoCachedConnError reports whether err is of type noCachedConnError
+// or its equivalent renamed type in net/http2's h2_bundle.go. Both types
+// may coexist in the same running program.
+func isNoCachedConnError(err error) bool {
+       _, ok := err.(interface{ IsHTTP2NoCachedConnError() })
+       return ok
+}
+
+var ErrNoCachedConn error = noCachedConnError{}
+
+// RoundTripOpt are options for the Transport.RoundTripOpt method.
+type RoundTripOpt struct {
+       // OnlyCachedConn controls whether RoundTripOpt may
+       // create a new TCP connection. If set true and
+       // no cached connection is available, RoundTripOpt
+       // will return ErrNoCachedConn.
+       OnlyCachedConn bool
+}
+
+func (t *Transport) RoundTrip(req *http.Request) (*http.Response, error) {
+       return t.RoundTripOpt(req, RoundTripOpt{})
+}
+
+// authorityAddr returns a given authority (a host/IP, or host:port / ip:port)
+// and returns a host:port. The port 443 is added if needed.
+func authorityAddr(scheme string, authority string) (addr string) {
+       host, port, err := net.SplitHostPort(authority)
+       if err != nil { // authority didn't have a port
+               port = "443"
+               if scheme == "http" {
+                       port = "80"
+               }
+               host = authority
+       }
+       if a, err := idna.ToASCII(host); err == nil {
+               host = a
+       }
+       // IPv6 address literal, without a port:
+       if strings.HasPrefix(host, "[") && strings.HasSuffix(host, "]") {
+               return host + ":" + port
+       }
+       return net.JoinHostPort(host, port)
+}
+
+// RoundTripOpt is like RoundTrip, but takes options.
+func (t *Transport) RoundTripOpt(req *http.Request, opt RoundTripOpt) (*http.Response, error) {
+       if !(req.URL.Scheme == "https" || (req.URL.Scheme == "http" && t.AllowHTTP)) {
+               return nil, errors.New("http2: unsupported scheme")
+       }
+
+       addr := authorityAddr(req.URL.Scheme, req.URL.Host)
+       for retry := 0; ; retry++ {
+               cc, err := t.connPool().GetClientConn(req, addr)
+               if err != nil {
+                       t.vlogf("http2: Transport failed to get client conn for %s: %v", addr, err)
+                       return nil, err
+               }
+               reused := !atomic.CompareAndSwapUint32(&cc.reused, 0, 1)
+               traceGotConn(req, cc, reused)
+               res, gotErrAfterReqBodyWrite, err := cc.roundTrip(req)
+               if err != nil && retry <= 6 {
+                       if req, err = shouldRetryRequest(req, err, gotErrAfterReqBodyWrite); err == nil {
+                               // After the first retry, do exponential backoff with 10% jitter.
+                               if retry == 0 {
+                                       continue
+                               }
+                               backoff := float64(uint(1) << (uint(retry) - 1))
+                               backoff += backoff * (0.1 * mathrand.Float64())
+                               select {
+                               case <-time.After(time.Second * time.Duration(backoff)):
+                                       continue
+                               case <-req.Context().Done():
+                                       return nil, req.Context().Err()
+                               }
+                       }
+               }
+               if err != nil {
+                       t.vlogf("RoundTrip failure: %v", err)
+                       return nil, err
+               }
+               return res, nil
+       }
+}
+
+// CloseIdleConnections closes any connections which were previously
+// connected from previous requests but are now sitting idle.
+// It does not interrupt any connections currently in use.
+func (t *Transport) CloseIdleConnections() {
+       if cp, ok := t.connPool().(clientConnPoolIdleCloser); ok {
+               cp.closeIdleConnections()
+       }
+}
+
+var (
+       errClientConnClosed    = errors.New("http2: client conn is closed")
+       errClientConnUnusable  = errors.New("http2: client conn not usable")
+       errClientConnGotGoAway = errors.New("http2: Transport received Server's graceful shutdown GOAWAY")
+)
+
+// shouldRetryRequest is called by RoundTrip when a request fails to get
+// response headers. It is always called with a non-nil error.
+// It returns either a request to retry (either the same request, or a
+// modified clone), or an error if the request can't be replayed.
+func shouldRetryRequest(req *http.Request, err error, afterBodyWrite bool) (*http.Request, error) {
+       if !canRetryError(err) {
+               return nil, err
+       }
+       // If the Body is nil (or http.NoBody), it's safe to reuse
+       // this request and its Body.
+       if req.Body == nil || req.Body == http.NoBody {
+               return req, nil
+       }
+
+       // If the request body can be reset back to its original
+       // state via the optional req.GetBody, do that.
+       if req.GetBody != nil {
+               // TODO: consider a req.Body.Close here? or audit that all caller paths do?
+               body, err := req.GetBody()
+               if err != nil {
+                       return nil, err
+               }
+               newReq := *req
+               newReq.Body = body
+               return &newReq, nil
+       }
+
+       // The Request.Body can't reset back to the beginning, but we
+       // don't seem to have started to read from it yet, so reuse
+       // the request directly. The "afterBodyWrite" means the
+       // bodyWrite process has started, which becomes true before
+       // the first Read.
+       if !afterBodyWrite {
+               return req, nil
+       }
+
+       return nil, fmt.Errorf("http2: Transport: cannot retry err [%v] after Request.Body was written; define Request.GetBody to avoid this error", err)
+}
+
+func canRetryError(err error) bool {
+       if err == errClientConnUnusable || err == errClientConnGotGoAway {
+               return true
+       }
+       if se, ok := err.(StreamError); ok {
+               return se.Code == ErrCodeRefusedStream
+       }
+       return false
+}
+
+func (t *Transport) dialClientConn(addr string, singleUse bool) (*ClientConn, error) {
+       host, _, err := net.SplitHostPort(addr)
+       if err != nil {
+               return nil, err
+       }
+       tconn, err := t.dialTLS()("tcp", addr, t.newTLSConfig(host))
+       if err != nil {
+               return nil, err
+       }
+       return t.newClientConn(tconn, singleUse)
+}
+
+func (t *Transport) newTLSConfig(host string) *tls.Config {
+       cfg := new(tls.Config)
+       if t.TLSClientConfig != nil {
+               *cfg = *t.TLSClientConfig.Clone()
+       }
+       if !strSliceContains(cfg.NextProtos, NextProtoTLS) {
+               cfg.NextProtos = append([]string{NextProtoTLS}, cfg.NextProtos...)
+       }
+       if cfg.ServerName == "" {
+               cfg.ServerName = host
+       }
+       return cfg
+}
+
+func (t *Transport) dialTLS() func(string, string, *tls.Config) (net.Conn, error) {
+       if t.DialTLS != nil {
+               return t.DialTLS
+       }
+       return t.dialTLSDefault
+}
+
+func (t *Transport) dialTLSDefault(network, addr string, cfg *tls.Config) (net.Conn, error) {
+       cn, err := tls.Dial(network, addr, cfg)
+       if err != nil {
+               return nil, err
+       }
+       if err := cn.Handshake(); err != nil {
+               return nil, err
+       }
+       if !cfg.InsecureSkipVerify {
+               if err := cn.VerifyHostname(cfg.ServerName); err != nil {
+                       return nil, err
+               }
+       }
+       state := cn.ConnectionState()
+       if p := state.NegotiatedProtocol; p != NextProtoTLS {
+               return nil, fmt.Errorf("http2: unexpected ALPN protocol %q; want %q", p, NextProtoTLS)
+       }
+       if !state.NegotiatedProtocolIsMutual {
+               return nil, errors.New("http2: could not negotiate protocol mutually")
+       }
+       return cn, nil
+}
+
+// disableKeepAlives reports whether connections should be closed as
+// soon as possible after handling the first request.
+func (t *Transport) disableKeepAlives() bool {
+       return t.t1 != nil && t.t1.DisableKeepAlives
+}
+
+func (t *Transport) expectContinueTimeout() time.Duration {
+       if t.t1 == nil {
+               return 0
+       }
+       return t.t1.ExpectContinueTimeout
+}
+
+func (t *Transport) NewClientConn(c net.Conn) (*ClientConn, error) {
+       return t.newClientConn(c, false)
+}
+
+func (t *Transport) newClientConn(c net.Conn, singleUse bool) (*ClientConn, error) {
+       cc := &ClientConn{
+               t:                     t,
+               tconn:                 c,
+               readerDone:            make(chan struct{}),
+               nextStreamID:          1,
+               maxFrameSize:          16 << 10,           // spec default
+               initialWindowSize:     65535,              // spec default
+               maxConcurrentStreams:  1000,               // "infinite", per spec. 1000 seems good enough.
+               peerMaxHeaderListSize: 0xffffffffffffffff, // "infinite", per spec. Use 2^64-1 instead.
+               streams:               make(map[uint32]*clientStream),
+               singleUse:             singleUse,
+               wantSettingsAck:       true,
+               pings:                 make(map[[8]byte]chan struct{}),
+       }
+       if d := t.idleConnTimeout(); d != 0 {
+               cc.idleTimeout = d
+               cc.idleTimer = time.AfterFunc(d, cc.onIdleTimeout)
+       }
+       if VerboseLogs {
+               t.vlogf("http2: Transport creating client conn %p to %v", cc, c.RemoteAddr())
+       }
+
+       cc.cond = sync.NewCond(&cc.mu)
+       cc.flow.add(int32(initialWindowSize))
+
+       // TODO: adjust this writer size to account for frame size +
+       // MTU + crypto/tls record padding.
+       cc.bw = bufio.NewWriter(stickyErrWriter{c, &cc.werr})
+       cc.br = bufio.NewReader(c)
+       cc.fr = NewFramer(cc.bw, cc.br)
+       cc.fr.ReadMetaHeaders = hpack.NewDecoder(initialHeaderTableSize, nil)
+       cc.fr.MaxHeaderListSize = t.maxHeaderListSize()
+
+       // TODO: SetMaxDynamicTableSize, SetMaxDynamicTableSizeLimit on
+       // henc in response to SETTINGS frames?
+       cc.henc = hpack.NewEncoder(&cc.hbuf)
+
+       if t.AllowHTTP {
+               cc.nextStreamID = 3
+       }
+
+       if cs, ok := c.(connectionStater); ok {
+               state := cs.ConnectionState()
+               cc.tlsState = &state
+       }
+
+       initialSettings := []Setting{
+               {ID: SettingEnablePush, Val: 0},
+               {ID: SettingInitialWindowSize, Val: transportDefaultStreamFlow},
+       }
+       if max := t.maxHeaderListSize(); max != 0 {
+               initialSettings = append(initialSettings, Setting{ID: SettingMaxHeaderListSize, Val: max})
+       }
+
+       cc.bw.Write(clientPreface)
+       cc.fr.WriteSettings(initialSettings...)
+       cc.fr.WriteWindowUpdate(0, transportDefaultConnFlow)
+       cc.inflow.add(transportDefaultConnFlow + initialWindowSize)
+       cc.bw.Flush()
+       if cc.werr != nil {
+               return nil, cc.werr
+       }
+
+       go cc.readLoop()
+       return cc, nil
+}
+
+func (cc *ClientConn) setGoAway(f *GoAwayFrame) {
+       cc.mu.Lock()
+       defer cc.mu.Unlock()
+
+       old := cc.goAway
+       cc.goAway = f
+
+       // Merge the previous and current GoAway error frames.
+       if cc.goAwayDebug == "" {
+               cc.goAwayDebug = string(f.DebugData())
+       }
+       if old != nil && old.ErrCode != ErrCodeNo {
+               cc.goAway.ErrCode = old.ErrCode
+       }
+       last := f.LastStreamID
+       for streamID, cs := range cc.streams {
+               if streamID > last {
+                       select {
+                       case cs.resc <- resAndError{err: errClientConnGotGoAway}:
+                       default:
+                       }
+               }
+       }
+}
+
+// CanTakeNewRequest reports whether the connection can take a new request,
+// meaning it has not been closed or received or sent a GOAWAY.
+func (cc *ClientConn) CanTakeNewRequest() bool {
+       cc.mu.Lock()
+       defer cc.mu.Unlock()
+       return cc.canTakeNewRequestLocked()
+}
+
+// clientConnIdleState describes the suitability of a client
+// connection to initiate a new RoundTrip request.
+type clientConnIdleState struct {
+       canTakeNewRequest bool
+       freshConn         bool // whether it's unused by any previous request
+}
+
+func (cc *ClientConn) idleState() clientConnIdleState {
+       cc.mu.Lock()
+       defer cc.mu.Unlock()
+       return cc.idleStateLocked()
+}
+
+func (cc *ClientConn) idleStateLocked() (st clientConnIdleState) {
+       if cc.singleUse && cc.nextStreamID > 1 {
+               return
+       }
+       var maxConcurrentOkay bool
+       if cc.t.StrictMaxConcurrentStreams {
+               // We'll tell the caller we can take a new request to
+               // prevent the caller from dialing a new TCP
+               // connection, but then we'll block later before
+               // writing it.
+               maxConcurrentOkay = true
+       } else {
+               maxConcurrentOkay = int64(len(cc.streams)+1) < int64(cc.maxConcurrentStreams)
+       }
+
+       st.canTakeNewRequest = cc.goAway == nil && !cc.closed && !cc.closing && maxConcurrentOkay &&
+               int64(cc.nextStreamID)+2*int64(cc.pendingRequests) < math.MaxInt32
+       st.freshConn = cc.nextStreamID == 1 && st.canTakeNewRequest
+       return
+}
+
+func (cc *ClientConn) canTakeNewRequestLocked() bool {
+       st := cc.idleStateLocked()
+       return st.canTakeNewRequest
+}
+
+// onIdleTimeout is called from a time.AfterFunc goroutine. It will
+// only be called when we're idle, but because we're coming from a new
+// goroutine, there could be a new request coming in at the same time,
+// so this simply calls the synchronized closeIfIdle to shut down this
+// connection. The timer could just call closeIfIdle, but this is more
+// clear.
+func (cc *ClientConn) onIdleTimeout() {
+       cc.closeIfIdle()
+}
+
+func (cc *ClientConn) closeIfIdle() {
+       cc.mu.Lock()
+       if len(cc.streams) > 0 {
+               cc.mu.Unlock()
+               return
+       }
+       cc.closed = true
+       nextID := cc.nextStreamID
+       // TODO: do clients send GOAWAY too? maybe? Just Close:
+       cc.mu.Unlock()
+
+       if VerboseLogs {
+               cc.vlogf("http2: Transport closing idle conn %p (forSingleUse=%v, maxStream=%v)", cc, cc.singleUse, nextID-2)
+       }
+       cc.tconn.Close()
+}
+
+var shutdownEnterWaitStateHook = func() {}
+
+// Shutdown gracefully close the client connection, waiting for running streams to complete.
+func (cc *ClientConn) Shutdown(ctx context.Context) error {
+       if err := cc.sendGoAway(); err != nil {
+               return err
+       }
+       // Wait for all in-flight streams to complete or connection to close
+       done := make(chan error, 1)
+       cancelled := false // guarded by cc.mu
+       go func() {
+               cc.mu.Lock()
+               defer cc.mu.Unlock()
+               for {
+                       if len(cc.streams) == 0 || cc.closed {
+                               cc.closed = true
+                               done <- cc.tconn.Close()
+                               break
+                       }
+                       if cancelled {
+                               break
+                       }
+                       cc.cond.Wait()
+               }
+       }()
+       shutdownEnterWaitStateHook()
+       select {
+       case err := <-done:
+               return err
+       case <-ctx.Done():
+               cc.mu.Lock()
+               // Free the goroutine above
+               cancelled = true
+               cc.cond.Broadcast()
+               cc.mu.Unlock()
+               return ctx.Err()
+       }
+}
+
+func (cc *ClientConn) sendGoAway() error {
+       cc.mu.Lock()
+       defer cc.mu.Unlock()
+       cc.wmu.Lock()
+       defer cc.wmu.Unlock()
+       if cc.closing {
+               // GOAWAY sent already
+               return nil
+       }
+       // Send a graceful shutdown frame to server
+       maxStreamID := cc.nextStreamID
+       if err := cc.fr.WriteGoAway(maxStreamID, ErrCodeNo, nil); err != nil {
+               return err
+       }
+       if err := cc.bw.Flush(); err != nil {
+               return err
+       }
+       // Prevent new requests
+       cc.closing = true
+       return nil
+}
+
+// Close closes the client connection immediately.
+//
+// In-flight requests are interrupted. For a graceful shutdown, use Shutdown instead.
+func (cc *ClientConn) Close() error {
+       cc.mu.Lock()
+       defer cc.cond.Broadcast()
+       defer cc.mu.Unlock()
+       err := errors.New("http2: client connection force closed via ClientConn.Close")
+       for id, cs := range cc.streams {
+               select {
+               case cs.resc <- resAndError{err: err}:
+               default:
+               }
+               cs.bufPipe.CloseWithError(err)
+               delete(cc.streams, id)
+       }
+       cc.closed = true
+       return cc.tconn.Close()
+}
+
+const maxAllocFrameSize = 512 << 10
+
+// frameBuffer returns a scratch buffer suitable for writing DATA frames.
+// They're capped at the min of the peer's max frame size or 512KB
+// (kinda arbitrarily), but definitely capped so we don't allocate 4GB
+// bufers.
+func (cc *ClientConn) frameScratchBuffer() []byte {
+       cc.mu.Lock()
+       size := cc.maxFrameSize
+       if size > maxAllocFrameSize {
+               size = maxAllocFrameSize
+       }
+       for i, buf := range cc.freeBuf {
+               if len(buf) >= int(size) {
+                       cc.freeBuf[i] = nil
+                       cc.mu.Unlock()
+                       return buf[:size]
+               }
+       }
+       cc.mu.Unlock()
+       return make([]byte, size)
+}
+
+func (cc *ClientConn) putFrameScratchBuffer(buf []byte) {
+       cc.mu.Lock()
+       defer cc.mu.Unlock()
+       const maxBufs = 4 // arbitrary; 4 concurrent requests per conn? investigate.
+       if len(cc.freeBuf) < maxBufs {
+               cc.freeBuf = append(cc.freeBuf, buf)
+               return
+       }
+       for i, old := range cc.freeBuf {
+               if old == nil {
+                       cc.freeBuf[i] = buf
+                       return
+               }
+       }
+       // forget about it.
+}
+
+// errRequestCanceled is a copy of net/http's errRequestCanceled because it's not
+// exported. At least they'll be DeepEqual for h1-vs-h2 comparisons tests.
+var errRequestCanceled = errors.New("net/http: request canceled")
+
+func commaSeparatedTrailers(req *http.Request) (string, error) {
+       keys := make([]string, 0, len(req.Trailer))
+       for k := range req.Trailer {
+               k = http.CanonicalHeaderKey(k)
+               switch k {
+               case "Transfer-Encoding", "Trailer", "Content-Length":
+                       return "", &badStringError{"invalid Trailer key", k}
+               }
+               keys = append(keys, k)
+       }
+       if len(keys) > 0 {
+               sort.Strings(keys)
+               return strings.Join(keys, ","), nil
+       }
+       return "", nil
+}
+
+func (cc *ClientConn) responseHeaderTimeout() time.Duration {
+       if cc.t.t1 != nil {
+               return cc.t.t1.ResponseHeaderTimeout
+       }
+       // No way to do this (yet?) with just an http2.Transport. Probably
+       // no need. Request.Cancel this is the new way. We only need to support
+       // this for compatibility with the old http.Transport fields when
+       // we're doing transparent http2.
+       return 0
+}
+
+// checkConnHeaders checks whether req has any invalid connection-level headers.
+// per RFC 7540 section 8.1.2.2: Connection-Specific Header Fields.
+// Certain headers are special-cased as okay but not transmitted later.
+func checkConnHeaders(req *http.Request) error {
+       if v := req.Header.Get("Upgrade"); v != "" {
+               return fmt.Errorf("http2: invalid Upgrade request header: %q", req.Header["Upgrade"])
+       }
+       if vv := req.Header["Transfer-Encoding"]; len(vv) > 0 && (len(vv) > 1 || vv[0] != "" && vv[0] != "chunked") {
+               return fmt.Errorf("http2: invalid Transfer-Encoding request header: %q", vv)
+       }
+       if vv := req.Header["Connection"]; len(vv) > 0 && (len(vv) > 1 || vv[0] != "" && !strings.EqualFold(vv[0], "close") && !strings.EqualFold(vv[0], "keep-alive")) {
+               return fmt.Errorf("http2: invalid Connection request header: %q", vv)
+       }
+       return nil
+}
+
+// actualContentLength returns a sanitized version of
+// req.ContentLength, where 0 actually means zero (not unknown) and -1
+// means unknown.
+func actualContentLength(req *http.Request) int64 {
+       if req.Body == nil || req.Body == http.NoBody {
+               return 0
+       }
+       if req.ContentLength != 0 {
+               return req.ContentLength
+       }
+       return -1
+}
+
+func (cc *ClientConn) RoundTrip(req *http.Request) (*http.Response, error) {
+       resp, _, err := cc.roundTrip(req)
+       return resp, err
+}
+
+func (cc *ClientConn) roundTrip(req *http.Request) (res *http.Response, gotErrAfterReqBodyWrite bool, err error) {
+       if err := checkConnHeaders(req); err != nil {
+               return nil, false, err
+       }
+       if cc.idleTimer != nil {
+               cc.idleTimer.Stop()
+       }
+
+       trailers, err := commaSeparatedTrailers(req)
+       if err != nil {
+               return nil, false, err
+       }
+       hasTrailers := trailers != ""
+
+       cc.mu.Lock()
+       if err := cc.awaitOpenSlotForRequest(req); err != nil {
+               cc.mu.Unlock()
+               return nil, false, err
+       }
+
+       body := req.Body
+       contentLen := actualContentLength(req)
+       hasBody := contentLen != 0
+
+       // TODO(bradfitz): this is a copy of the logic in net/http. Unify somewhere?
+       var requestedGzip bool
+       if !cc.t.disableCompression() &&
+               req.Header.Get("Accept-Encoding") == "" &&
+               req.Header.Get("Range") == "" &&
+               req.Method != "HEAD" {
+               // Request gzip only, not deflate. Deflate is ambiguous and
+               // not as universally supported anyway.
+               // See: https://zlib.net/zlib_faq.html#faq39
+               //
+               // Note that we don't request this for HEAD requests,
+               // due to a bug in nginx:
+               //   http://trac.nginx.org/nginx/ticket/358
+               //   https://golang.org/issue/5522
+               //
+               // We don't request gzip if the request is for a range, since
+               // auto-decoding a portion of a gzipped document will just fail
+               // anyway. See https://golang.org/issue/8923
+               requestedGzip = true
+       }
+
+       // we send: HEADERS{1}, CONTINUATION{0,} + DATA{0,} (DATA is
+       // sent by writeRequestBody below, along with any Trailers,
+       // again in form HEADERS{1}, CONTINUATION{0,})
+       hdrs, err := cc.encodeHeaders(req, requestedGzip, trailers, contentLen)
+       if err != nil {
+               cc.mu.Unlock()
+               return nil, false, err
+       }
+
+       cs := cc.newStream()
+       cs.req = req
+       cs.trace = httptrace.ContextClientTrace(req.Context())
+       cs.requestedGzip = requestedGzip
+       bodyWriter := cc.t.getBodyWriterState(cs, body)
+       cs.on100 = bodyWriter.on100
+
+       cc.wmu.Lock()
+       endStream := !hasBody && !hasTrailers
+       werr := cc.writeHeaders(cs.ID, endStream, int(cc.maxFrameSize), hdrs)
+       cc.wmu.Unlock()
+       traceWroteHeaders(cs.trace)
+       cc.mu.Unlock()
+
+       if werr != nil {
+               if hasBody {
+                       req.Body.Close() // per RoundTripper contract
+                       bodyWriter.cancel()
+               }
+               cc.forgetStreamID(cs.ID)
+               // Don't bother sending a RST_STREAM (our write already failed;
+               // no need to keep writing)
+               traceWroteRequest(cs.trace, werr)
+               return nil, false, werr
+       }
+
+       var respHeaderTimer <-chan time.Time
+       if hasBody {
+               bodyWriter.scheduleBodyWrite()
+       } else {
+               traceWroteRequest(cs.trace, nil)
+               if d := cc.responseHeaderTimeout(); d != 0 {
+                       timer := time.NewTimer(d)
+                       defer timer.Stop()
+                       respHeaderTimer = timer.C
+               }
+       }
+
+       readLoopResCh := cs.resc
+       bodyWritten := false
+       ctx := req.Context()
+
+       handleReadLoopResponse := func(re resAndError) (*http.Response, bool, error) {
+               res := re.res
+               if re.err != nil || res.StatusCode > 299 {
+                       // On error or status code 3xx, 4xx, 5xx, etc abort any
+                       // ongoing write, assuming that the server doesn't care
+                       // about our request body. If the server replied with 1xx or
+                       // 2xx, however, then assume the server DOES potentially
+                       // want our body (e.g. full-duplex streaming:
+                       // golang.org/issue/13444). If it turns out the server
+                       // doesn't, they'll RST_STREAM us soon enough. This is a
+                       // heuristic to avoid adding knobs to Transport. Hopefully
+                       // we can keep it.
+                       bodyWriter.cancel()
+                       cs.abortRequestBodyWrite(errStopReqBodyWrite)
+               }
+               if re.err != nil {
+                       cc.forgetStreamID(cs.ID)
+                       return nil, cs.getStartedWrite(), re.err
+               }
+               res.Request = req
+               res.TLS = cc.tlsState
+               return res, false, nil
+       }
+
+       for {
+               select {
+               case re := <-readLoopResCh:
+                       return handleReadLoopResponse(re)
+               case <-respHeaderTimer:
+                       if !hasBody || bodyWritten {
+                               cc.writeStreamReset(cs.ID, ErrCodeCancel, nil)
+                       } else {
+                               bodyWriter.cancel()
+                               cs.abortRequestBodyWrite(errStopReqBodyWriteAndCancel)
+                       }
+                       cc.forgetStreamID(cs.ID)
+                       return nil, cs.getStartedWrite(), errTimeout
+               case <-ctx.Done():
+                       if !hasBody || bodyWritten {
+                               cc.writeStreamReset(cs.ID, ErrCodeCancel, nil)
+                       } else {
+                               bodyWriter.cancel()
+                               cs.abortRequestBodyWrite(errStopReqBodyWriteAndCancel)
+                       }
+                       cc.forgetStreamID(cs.ID)
+                       return nil, cs.getStartedWrite(), ctx.Err()
+               case <-req.Cancel:
+                       if !hasBody || bodyWritten {
+                               cc.writeStreamReset(cs.ID, ErrCodeCancel, nil)
+                       } else {
+                               bodyWriter.cancel()
+                               cs.abortRequestBodyWrite(errStopReqBodyWriteAndCancel)
+                       }
+                       cc.forgetStreamID(cs.ID)
+                       return nil, cs.getStartedWrite(), errRequestCanceled
+               case <-cs.peerReset:
+                       // processResetStream already removed the
+                       // stream from the streams map; no need for
+                       // forgetStreamID.
+                       return nil, cs.getStartedWrite(), cs.resetErr
+               case err := <-bodyWriter.resc:
+                       // Prefer the read loop's response, if available. Issue 16102.
+                       select {
+                       case re := <-readLoopResCh:
+                               return handleReadLoopResponse(re)
+                       default:
+                       }
+                       if err != nil {
+                               cc.forgetStreamID(cs.ID)
+                               return nil, cs.getStartedWrite(), err
+                       }
+                       bodyWritten = true
+                       if d := cc.responseHeaderTimeout(); d != 0 {
+                               timer := time.NewTimer(d)
+                               defer timer.Stop()
+                               respHeaderTimer = timer.C
+                       }
+               }
+       }
+}
+
+// awaitOpenSlotForRequest waits until len(streams) < maxConcurrentStreams.
+// Must hold cc.mu.
+func (cc *ClientConn) awaitOpenSlotForRequest(req *http.Request) error {
+       var waitingForConn chan struct{}
+       var waitingForConnErr error // guarded by cc.mu
+       for {
+               cc.lastActive = time.Now()
+               if cc.closed || !cc.canTakeNewRequestLocked() {
+                       if waitingForConn != nil {
+                               close(waitingForConn)
+                       }
+                       return errClientConnUnusable
+               }
+               if int64(len(cc.streams))+1 <= int64(cc.maxConcurrentStreams) {
+                       if waitingForConn != nil {
+                               close(waitingForConn)
+                       }
+                       return nil
+               }
+               // Unfortunately, we cannot wait on a condition variable and channel at
+               // the same time, so instead, we spin up a goroutine to check if the
+               // request is canceled while we wait for a slot to open in the connection.
+               if waitingForConn == nil {
+                       waitingForConn = make(chan struct{})
+                       go func() {
+                               if err := awaitRequestCancel(req, waitingForConn); err != nil {
+                                       cc.mu.Lock()
+                                       waitingForConnErr = err
+                                       cc.cond.Broadcast()
+                                       cc.mu.Unlock()
+                               }
+                       }()
+               }
+               cc.pendingRequests++
+               cc.cond.Wait()
+               cc.pendingRequests--
+               if waitingForConnErr != nil {
+                       return waitingForConnErr
+               }
+       }
+}
+
+// requires cc.wmu be held
+func (cc *ClientConn) writeHeaders(streamID uint32, endStream bool, maxFrameSize int, hdrs []byte) error {
+       first := true // first frame written (HEADERS is first, then CONTINUATION)
+       for len(hdrs) > 0 && cc.werr == nil {
+               chunk := hdrs
+               if len(chunk) > maxFrameSize {
+                       chunk = chunk[:maxFrameSize]
+               }
+               hdrs = hdrs[len(chunk):]
+               endHeaders := len(hdrs) == 0
+               if first {
+                       cc.fr.WriteHeaders(HeadersFrameParam{
+                               StreamID:      streamID,
+                               BlockFragment: chunk,
+                               EndStream:     endStream,
+                               EndHeaders:    endHeaders,
+                       })
+                       first = false
+               } else {
+                       cc.fr.WriteContinuation(streamID, endHeaders, chunk)
+               }
+       }
+       // TODO(bradfitz): this Flush could potentially block (as
+       // could the WriteHeaders call(s) above), which means they
+       // wouldn't respond to Request.Cancel being readable. That's
+       // rare, but this should probably be in a goroutine.
+       cc.bw.Flush()
+       return cc.werr
+}
+
+// internal error values; they don't escape to callers
+var (
+       // abort request body write; don't send cancel
+       errStopReqBodyWrite = errors.New("http2: aborting request body write")
+
+       // abort request body write, but send stream reset of cancel.
+       errStopReqBodyWriteAndCancel = errors.New("http2: canceling request")
+
+       errReqBodyTooLong = errors.New("http2: request body larger than specified content length")
+)
+
+func (cs *clientStream) writeRequestBody(body io.Reader, bodyCloser io.Closer) (err error) {
+       cc := cs.cc
+       sentEnd := false // whether we sent the final DATA frame w/ END_STREAM
+       buf := cc.frameScratchBuffer()
+       defer cc.putFrameScratchBuffer(buf)
+
+       defer func() {
+               traceWroteRequest(cs.trace, err)
+               // TODO: write h12Compare test showing whether
+               // Request.Body is closed by the Transport,
+               // and in multiple cases: server replies <=299 and >299
+               // while still writing request body
+               cerr := bodyCloser.Close()
+               if err == nil {
+                       err = cerr
+               }
+       }()
+
+       req := cs.req
+       hasTrailers := req.Trailer != nil
+       remainLen := actualContentLength(req)
+       hasContentLen := remainLen != -1
+
+       var sawEOF bool
+       for !sawEOF {
+               n, err := body.Read(buf[:len(buf)-1])
+               if hasContentLen {
+                       remainLen -= int64(n)
+                       if remainLen == 0 && err == nil {
+                               // The request body's Content-Length was predeclared and
+                               // we just finished reading it all, but the underlying io.Reader
+                               // returned the final chunk with a nil error (which is one of
+                               // the two valid things a Reader can do at EOF). Because we'd prefer
+                               // to send the END_STREAM bit early, double-check that we're actually
+                               // at EOF. Subsequent reads should return (0, EOF) at this point.
+                               // If either value is different, we return an error in one of two ways below.
+                               var n1 int
+                               n1, err = body.Read(buf[n:])
+                               remainLen -= int64(n1)
+                       }
+                       if remainLen < 0 {
+                               err = errReqBodyTooLong
+                               cc.writeStreamReset(cs.ID, ErrCodeCancel, err)
+                               return err
+                       }
+               }
+               if err == io.EOF {
+                       sawEOF = true
+                       err = nil
+               } else if err != nil {
+                       cc.writeStreamReset(cs.ID, ErrCodeCancel, err)
+                       return err
+               }
+
+               remain := buf[:n]
+               for len(remain) > 0 && err == nil {
+                       var allowed int32
+                       allowed, err = cs.awaitFlowControl(len(remain))
+                       switch {
+                       case err == errStopReqBodyWrite:
+                               return err
+                       case err == errStopReqBodyWriteAndCancel:
+                               cc.writeStreamReset(cs.ID, ErrCodeCancel, nil)
+                               return err
+                       case err != nil:
+                               return err
+                       }
+                       cc.wmu.Lock()
+                       data := remain[:allowed]
+                       remain = remain[allowed:]
+                       sentEnd = sawEOF && len(remain) == 0 && !hasTrailers
+                       err = cc.fr.WriteData(cs.ID, sentEnd, data)
+                       if err == nil {
+                               // TODO(bradfitz): this flush is for latency, not bandwidth.
+                               // Most requests won't need this. Make this opt-in or
+                               // opt-out?  Use some heuristic on the body type? Nagel-like
+                               // timers?  Based on 'n'? Only last chunk of this for loop,
+                               // unless flow control tokens are low? For now, always.
+                               // If we change this, see comment below.
+                               err = cc.bw.Flush()
+                       }
+                       cc.wmu.Unlock()
+               }
+               if err != nil {
+                       return err
+               }
+       }
+
+       if sentEnd {
+               // Already sent END_STREAM (which implies we have no
+               // trailers) and flushed, because currently all
+               // WriteData frames above get a flush. So we're done.
+               return nil
+       }
+
+       var trls []byte
+       if hasTrailers {
+               cc.mu.Lock()
+               trls, err = cc.encodeTrailers(req)
+               cc.mu.Unlock()
+               if err != nil {
+                       cc.writeStreamReset(cs.ID, ErrCodeInternal, err)
+                       cc.forgetStreamID(cs.ID)
+                       return err
+               }
+       }
+
+       cc.mu.Lock()
+       maxFrameSize := int(cc.maxFrameSize)
+       cc.mu.Unlock()
+
+       cc.wmu.Lock()
+       defer cc.wmu.Unlock()
+
+       // Two ways to send END_STREAM: either with trailers, or
+       // with an empty DATA frame.
+       if len(trls) > 0 {
+               err = cc.writeHeaders(cs.ID, true, maxFrameSize, trls)
+       } else {
+               err = cc.fr.WriteData(cs.ID, true, nil)
+       }
+       if ferr := cc.bw.Flush(); ferr != nil && err == nil {
+               err = ferr
+       }
+       return err
+}
+
+// awaitFlowControl waits for [1, min(maxBytes, cc.cs.maxFrameSize)] flow
+// control tokens from the server.
+// It returns either the non-zero number of tokens taken or an error
+// if the stream is dead.
+func (cs *clientStream) awaitFlowControl(maxBytes int) (taken int32, err error) {
+       cc := cs.cc
+       cc.mu.Lock()
+       defer cc.mu.Unlock()
+       for {
+               if cc.closed {
+                       return 0, errClientConnClosed
+               }
+               if cs.stopReqBody != nil {
+                       return 0, cs.stopReqBody
+               }
+               if err := cs.checkResetOrDone(); err != nil {
+                       return 0, err
+               }
+               if a := cs.flow.available(); a > 0 {
+                       take := a
+                       if int(take) > maxBytes {
+
+                               take = int32(maxBytes) // can't truncate int; take is int32
+                       }
+                       if take > int32(cc.maxFrameSize) {
+                               take = int32(cc.maxFrameSize)
+                       }
+                       cs.flow.take(take)
+                       return take, nil
+               }
+               cc.cond.Wait()
+       }
+}
+
+type badStringError struct {
+       what string
+       str  string
+}
+
+func (e *badStringError) Error() string { return fmt.Sprintf("%s %q", e.what, e.str) }
+
+// requires cc.mu be held.
+func (cc *ClientConn) encodeHeaders(req *http.Request, addGzipHeader bool, trailers string, contentLength int64) ([]byte, error) {
+       cc.hbuf.Reset()
+
+       host := req.Host
+       if host == "" {
+               host = req.URL.Host
+       }
+       host, err := httpguts.PunycodeHostPort(host)
+       if err != nil {
+               return nil, err
+       }
+
+       var path string
+       if req.Method != "CONNECT" {
+               path = req.URL.RequestURI()
+               if !validPseudoPath(path) {
+                       orig := path
+                       path = strings.TrimPrefix(path, req.URL.Scheme+"://"+host)
+                       if !validPseudoPath(path) {
+                               if req.URL.Opaque != "" {
+                                       return nil, fmt.Errorf("invalid request :path %q from URL.Opaque = %q", orig, req.URL.Opaque)
+                               } else {
+                                       return nil, fmt.Errorf("invalid request :path %q", orig)
+                               }
+                       }
+               }
+       }
+
+       // Check for any invalid headers and return an error before we
+       // potentially pollute our hpack state. (We want to be able to
+       // continue to reuse the hpack encoder for future requests)
+       for k, vv := range req.Header {
+               if !httpguts.ValidHeaderFieldName(k) {
+                       return nil, fmt.Errorf("invalid HTTP header name %q", k)
+               }
+               for _, v := range vv {
+                       if !httpguts.ValidHeaderFieldValue(v) {
+                               return nil, fmt.Errorf("invalid HTTP header value %q for header %q", v, k)
+                       }
+               }
+       }
+
+       enumerateHeaders := func(f func(name, value string)) {
+               // 8.1.2.3 Request Pseudo-Header Fields
+               // The :path pseudo-header field includes the path and query parts of the
+               // target URI (the path-absolute production and optionally a '?' character
+               // followed by the query production (see Sections 3.3 and 3.4 of
+               // [RFC3986]).
+               f(":authority", host)
+               m := req.Method
+               if m == "" {
+                       m = http.MethodGet
+               }
+               f(":method", m)
+               if req.Method != "CONNECT" {
+                       f(":path", path)
+                       f(":scheme", req.URL.Scheme)
+               }
+               if trailers != "" {
+                       f("trailer", trailers)
+               }
+
+               var didUA bool
+               for k, vv := range req.Header {
+                       if strings.EqualFold(k, "host") || strings.EqualFold(k, "content-length") {
+                               // Host is :authority, already sent.
+                               // Content-Length is automatic, set below.
+                               continue
+                       } else if strings.EqualFold(k, "connection") || strings.EqualFold(k, "proxy-connection") ||
+                               strings.EqualFold(k, "transfer-encoding") || strings.EqualFold(k, "upgrade") ||
+                               strings.EqualFold(k, "keep-alive") {
+                               // Per 8.1.2.2 Connection-Specific Header
+                               // Fields, don't send connection-specific
+                               // fields. We have already checked if any
+                               // are error-worthy so just ignore the rest.
+                               continue
+                       } else if strings.EqualFold(k, "user-agent") {
+                               // Match Go's http1 behavior: at most one
+                               // User-Agent. If set to nil or empty string,
+                               // then omit it. Otherwise if not mentioned,
+                               // include the default (below).
+                               didUA = true
+                               if len(vv) < 1 {
+                                       continue
+                               }
+                               vv = vv[:1]
+                               if vv[0] == "" {
+                                       continue
+                               }
+
+                       }
+
+                       for _, v := range vv {
+                               f(k, v)
+                       }
+               }
+               if shouldSendReqContentLength(req.Method, contentLength) {
+                       f("content-length", strconv.FormatInt(contentLength, 10))
+               }
+               if addGzipHeader {
+                       f("accept-encoding", "gzip")
+               }
+               if !didUA {
+                       f("user-agent", defaultUserAgent)
+               }
+       }
+
+       // Do a first pass over the headers counting bytes to ensure
+       // we don't exceed cc.peerMaxHeaderListSize. This is done as a
+       // separate pass before encoding the headers to prevent
+       // modifying the hpack state.
+       hlSize := uint64(0)
+       enumerateHeaders(func(name, value string) {
+               hf := hpack.HeaderField{Name: name, Value: value}
+               hlSize += uint64(hf.Size())
+       })
+
+       if hlSize > cc.peerMaxHeaderListSize {
+               return nil, errRequestHeaderListSize
+       }
+
+       trace := httptrace.ContextClientTrace(req.Context())
+       traceHeaders := traceHasWroteHeaderField(trace)
+
+       // Header list size is ok. Write the headers.
+       enumerateHeaders(func(name, value string) {
+               name = strings.ToLower(name)
+               cc.writeHeader(name, value)
+               if traceHeaders {
+                       traceWroteHeaderField(trace, name, value)
+               }
+       })
+
+       return cc.hbuf.Bytes(), nil
+}
+
+// shouldSendReqContentLength reports whether the http2.Transport should send
+// a "content-length" request header. This logic is basically a copy of the net/http
+// transferWriter.shouldSendContentLength.
+// The contentLength is the corrected contentLength (so 0 means actually 0, not unknown).
+// -1 means unknown.
+func shouldSendReqContentLength(method string, contentLength int64) bool {
+       if contentLength > 0 {
+               return true
+       }
+       if contentLength < 0 {
+               return false
+       }
+       // For zero bodies, whether we send a content-length depends on the method.
+       // It also kinda doesn't matter for http2 either way, with END_STREAM.
+       switch method {
+       case "POST", "PUT", "PATCH":
+               return true
+       default:
+               return false
+       }
+}
+
+// requires cc.mu be held.
+func (cc *ClientConn) encodeTrailers(req *http.Request) ([]byte, error) {
+       cc.hbuf.Reset()
+
+       hlSize := uint64(0)
+       for k, vv := range req.Trailer {
+               for _, v := range vv {
+                       hf := hpack.HeaderField{Name: k, Value: v}
+                       hlSize += uint64(hf.Size())
+               }
+       }
+       if hlSize > cc.peerMaxHeaderListSize {
+               return nil, errRequestHeaderListSize
+       }
+
+       for k, vv := range req.Trailer {
+               // Transfer-Encoding, etc.. have already been filtered at the
+               // start of RoundTrip
+               lowKey := strings.ToLower(k)
+               for _, v := range vv {
+                       cc.writeHeader(lowKey, v)
+               }
+       }
+       return cc.hbuf.Bytes(), nil
+}
+
+func (cc *ClientConn) writeHeader(name, value string) {
+       if VerboseLogs {
+               log.Printf("http2: Transport encoding header %q = %q", name, value)
+       }
+       cc.henc.WriteField(hpack.HeaderField{Name: name, Value: value})
+}
+
+type resAndError struct {
+       res *http.Response
+       err error
+}
+
+// requires cc.mu be held.
+func (cc *ClientConn) newStream() *clientStream {
+       cs := &clientStream{
+               cc:        cc,
+               ID:        cc.nextStreamID,
+               resc:      make(chan resAndError, 1),
+               peerReset: make(chan struct{}),
+               done:      make(chan struct{}),
+       }
+       cs.flow.add(int32(cc.initialWindowSize))
+       cs.flow.setConnFlow(&cc.flow)
+       cs.inflow.add(transportDefaultStreamFlow)
+       cs.inflow.setConnFlow(&cc.inflow)
+       cc.nextStreamID += 2
+       cc.streams[cs.ID] = cs
+       return cs
+}
+
+func (cc *ClientConn) forgetStreamID(id uint32) {
+       cc.streamByID(id, true)
+}
+
+func (cc *ClientConn) streamByID(id uint32, andRemove bool) *clientStream {
+       cc.mu.Lock()
+       defer cc.mu.Unlock()
+       cs := cc.streams[id]
+       if andRemove && cs != nil && !cc.closed {
+               cc.lastActive = time.Now()
+               delete(cc.streams, id)
+               if len(cc.streams) == 0 && cc.idleTimer != nil {
+                       cc.idleTimer.Reset(cc.idleTimeout)
+               }
+               close(cs.done)
+               // Wake up checkResetOrDone via clientStream.awaitFlowControl and
+               // wake up RoundTrip if there is a pending request.
+               cc.cond.Broadcast()
+       }
+       return cs
+}
+
+// clientConnReadLoop is the state owned by the clientConn's frame-reading readLoop.
+type clientConnReadLoop struct {
+       cc            *ClientConn
+       closeWhenIdle bool
+}
+
+// readLoop runs in its own goroutine and reads and dispatches frames.
+func (cc *ClientConn) readLoop() {
+       rl := &clientConnReadLoop{cc: cc}
+       defer rl.cleanup()
+       cc.readerErr = rl.run()
+       if ce, ok := cc.readerErr.(ConnectionError); ok {
+               cc.wmu.Lock()
+               cc.fr.WriteGoAway(0, ErrCode(ce), nil)
+               cc.wmu.Unlock()
+       }
+}
+
+// GoAwayError is returned by the Transport when the server closes the
+// TCP connection after sending a GOAWAY frame.
+type GoAwayError struct {
+       LastStreamID uint32
+       ErrCode      ErrCode
+       DebugData    string
+}
+
+func (e GoAwayError) Error() string {
+       return fmt.Sprintf("http2: server sent GOAWAY and closed the connection; LastStreamID=%v, ErrCode=%v, debug=%q",
+               e.LastStreamID, e.ErrCode, e.DebugData)
+}
+
+func isEOFOrNetReadError(err error) bool {
+       if err == io.EOF {
+               return true
+       }
+       ne, ok := err.(*net.OpError)
+       return ok && ne.Op == "read"
+}
+
+func (rl *clientConnReadLoop) cleanup() {
+       cc := rl.cc
+       defer cc.tconn.Close()
+       defer cc.t.connPool().MarkDead(cc)
+       defer close(cc.readerDone)
+
+       if cc.idleTimer != nil {
+               cc.idleTimer.Stop()
+       }
+
+       // Close any response bodies if the server closes prematurely.
+       // TODO: also do this if we've written the headers but not
+       // gotten a response yet.
+       err := cc.readerErr
+       cc.mu.Lock()
+       if cc.goAway != nil && isEOFOrNetReadError(err) {
+               err = GoAwayError{
+                       LastStreamID: cc.goAway.LastStreamID,
+                       ErrCode:      cc.goAway.ErrCode,
+                       DebugData:    cc.goAwayDebug,
+               }
+       } else if err == io.EOF {
+               err = io.ErrUnexpectedEOF
+       }
+       for _, cs := range cc.streams {
+               cs.bufPipe.CloseWithError(err) // no-op if already closed
+               select {
+               case cs.resc <- resAndError{err: err}:
+               default:
+               }
+               close(cs.done)
+       }
+       cc.closed = true
+       cc.cond.Broadcast()
+       cc.mu.Unlock()
+}
+
+func (rl *clientConnReadLoop) run() error {
+       cc := rl.cc
+       rl.closeWhenIdle = cc.t.disableKeepAlives() || cc.singleUse
+       gotReply := false // ever saw a HEADERS reply
+       gotSettings := false
+       for {
+               f, err := cc.fr.ReadFrame()
+               if err != nil {
+                       cc.vlogf("http2: Transport readFrame error on conn %p: (%T) %v", cc, err, err)
+               }
+               if se, ok := err.(StreamError); ok {
+                       if cs := cc.streamByID(se.StreamID, false); cs != nil {
+                               cs.cc.writeStreamReset(cs.ID, se.Code, err)
+                               cs.cc.forgetStreamID(cs.ID)
+                               if se.Cause == nil {
+                                       se.Cause = cc.fr.errDetail
+                               }
+                               rl.endStreamError(cs, se)
+                       }
+                       continue
+               } else if err != nil {
+                       return err
+               }
+               if VerboseLogs {
+                       cc.vlogf("http2: Transport received %s", summarizeFrame(f))
+               }
+               if !gotSettings {
+                       if _, ok := f.(*SettingsFrame); !ok {
+                               cc.logf("protocol error: received %T before a SETTINGS frame", f)
+                               return ConnectionError(ErrCodeProtocol)
+                       }
+                       gotSettings = true
+               }
+               maybeIdle := false // whether frame might transition us to idle
+
+               switch f := f.(type) {
+               case *MetaHeadersFrame:
+                       err = rl.processHeaders(f)
+                       maybeIdle = true
+                       gotReply = true
+               case *DataFrame:
+                       err = rl.processData(f)
+                       maybeIdle = true
+               case *GoAwayFrame:
+                       err = rl.processGoAway(f)
+                       maybeIdle = true
+               case *RSTStreamFrame:
+                       err = rl.processResetStream(f)
+                       maybeIdle = true
+               case *SettingsFrame:
+                       err = rl.processSettings(f)
+               case *PushPromiseFrame:
+                       err = rl.processPushPromise(f)
+               case *WindowUpdateFrame:
+                       err = rl.processWindowUpdate(f)
+               case *PingFrame:
+                       err = rl.processPing(f)
+               default:
+                       cc.logf("Transport: unhandled response frame type %T", f)
+               }
+               if err != nil {
+                       if VerboseLogs {
+                               cc.vlogf("http2: Transport conn %p received error from processing frame %v: %v", cc, summarizeFrame(f), err)
+                       }
+                       return err
+               }
+               if rl.closeWhenIdle && gotReply && maybeIdle {
+                       cc.closeIfIdle()
+               }
+       }
+}
+
+func (rl *clientConnReadLoop) processHeaders(f *MetaHeadersFrame) error {
+       cc := rl.cc
+       cs := cc.streamByID(f.StreamID, false)
+       if cs == nil {
+               // We'd get here if we canceled a request while the
+               // server had its response still in flight. So if this
+               // was just something we canceled, ignore it.
+               return nil
+       }
+       if f.StreamEnded() {
+               // Issue 20521: If the stream has ended, streamByID() causes
+               // clientStream.done to be closed, which causes the request's bodyWriter
+               // to be closed with an errStreamClosed, which may be received by
+               // clientConn.RoundTrip before the result of processing these headers.
+               // Deferring stream closure allows the header processing to occur first.
+               // clientConn.RoundTrip may still receive the bodyWriter error first, but
+               // the fix for issue 16102 prioritises any response.
+               //
+               // Issue 22413: If there is no request body, we should close the
+               // stream before writing to cs.resc so that the stream is closed
+               // immediately once RoundTrip returns.
+               if cs.req.Body != nil {
+                       defer cc.forgetStreamID(f.StreamID)
+               } else {
+                       cc.forgetStreamID(f.StreamID)
+               }
+       }
+       if !cs.firstByte {
+               if cs.trace != nil {
+                       // TODO(bradfitz): move first response byte earlier,
+                       // when we first read the 9 byte header, not waiting
+                       // until all the HEADERS+CONTINUATION frames have been
+                       // merged. This works for now.
+                       traceFirstResponseByte(cs.trace)
+               }
+               cs.firstByte = true
+       }
+       if !cs.pastHeaders {
+               cs.pastHeaders = true
+       } else {
+               return rl.processTrailers(cs, f)
+       }
+
+       res, err := rl.handleResponse(cs, f)
+       if err != nil {
+               if _, ok := err.(ConnectionError); ok {
+                       return err
+               }
+               // Any other error type is a stream error.
+               cs.cc.writeStreamReset(f.StreamID, ErrCodeProtocol, err)
+               cc.forgetStreamID(cs.ID)
+               cs.resc <- resAndError{err: err}
+               return nil // return nil from process* funcs to keep conn alive
+       }
+       if res == nil {
+               // (nil, nil) special case. See handleResponse docs.
+               return nil
+       }
+       cs.resTrailer = &res.Trailer
+       cs.resc <- resAndError{res: res}
+       return nil
+}
+
+// may return error types nil, or ConnectionError. Any other error value
+// is a StreamError of type ErrCodeProtocol. The returned error in that case
+// is the detail.
+//
+// As a special case, handleResponse may return (nil, nil) to skip the
+// frame (currently only used for 1xx responses).
+func (rl *clientConnReadLoop) handleResponse(cs *clientStream, f *MetaHeadersFrame) (*http.Response, error) {
+       if f.Truncated {
+               return nil, errResponseHeaderListSize
+       }
+
+       status := f.PseudoValue("status")
+       if status == "" {
+               return nil, errors.New("malformed response from server: missing status pseudo header")
+       }
+       statusCode, err := strconv.Atoi(status)
+       if err != nil {
+               return nil, errors.New("malformed response from server: malformed non-numeric status pseudo header")
+       }
+
+       header := make(http.Header)
+       res := &http.Response{
+               Proto:      "HTTP/2.0",
+               ProtoMajor: 2,
+               Header:     header,
+               StatusCode: statusCode,
+               Status:     status + " " + http.StatusText(statusCode),
+       }
+       for _, hf := range f.RegularFields() {
+               key := http.CanonicalHeaderKey(hf.Name)
+               if key == "Trailer" {
+                       t := res.Trailer
+                       if t == nil {
+                               t = make(http.Header)
+                               res.Trailer = t
+                       }
+                       foreachHeaderElement(hf.Value, func(v string) {
+                               t[http.CanonicalHeaderKey(v)] = nil
+                       })
+               } else {
+                       header[key] = append(header[key], hf.Value)
+               }
+       }
+
+       if statusCode >= 100 && statusCode <= 199 {
+               cs.num1xx++
+               const max1xxResponses = 5 // arbitrary bound on number of informational responses, same as net/http
+               if cs.num1xx > max1xxResponses {
+                       return nil, errors.New("http2: too many 1xx informational responses")
+               }
+               if fn := cs.get1xxTraceFunc(); fn != nil {
+                       if err := fn(statusCode, textproto.MIMEHeader(header)); err != nil {
+                               return nil, err
+                       }
+               }
+               if statusCode == 100 {
+                       traceGot100Continue(cs.trace)
+                       if cs.on100 != nil {
+                               cs.on100() // forces any write delay timer to fire
+                       }
+               }
+               cs.pastHeaders = false // do it all again
+               return nil, nil
+       }
+
+       streamEnded := f.StreamEnded()
+       isHead := cs.req.Method == "HEAD"
+       if !streamEnded || isHead {
+               res.ContentLength = -1
+               if clens := res.Header["Content-Length"]; len(clens) == 1 {
+                       if clen64, err := strconv.ParseInt(clens[0], 10, 64); err == nil {
+                               res.ContentLength = clen64
+                       } else {
+                               // TODO: care? unlike http/1, it won't mess up our framing, so it's
+                               // more safe smuggling-wise to ignore.
+                       }
+               } else if len(clens) > 1 {
+                       // TODO: care? unlike http/1, it won't mess up our framing, so it's
+                       // more safe smuggling-wise to ignore.
+               }
+       }
+
+       if streamEnded || isHead {
+               res.Body = noBody
+               return res, nil
+       }
+
+       cs.bufPipe = pipe{b: &dataBuffer{expected: res.ContentLength}}
+       cs.bytesRemain = res.ContentLength
+       res.Body = transportResponseBody{cs}
+       go cs.awaitRequestCancel(cs.req)
+
+       if cs.requestedGzip && res.Header.Get("Content-Encoding") == "gzip" {
+               res.Header.Del("Content-Encoding")
+               res.Header.Del("Content-Length")
+               res.ContentLength = -1
+               res.Body = &gzipReader{body: res.Body}
+               res.Uncompressed = true
+       }
+       return res, nil
+}
+
+func (rl *clientConnReadLoop) processTrailers(cs *clientStream, f *MetaHeadersFrame) error {
+       if cs.pastTrailers {
+               // Too many HEADERS frames for this stream.
+               return ConnectionError(ErrCodeProtocol)
+       }
+       cs.pastTrailers = true
+       if !f.StreamEnded() {
+               // We expect that any headers for trailers also
+               // has END_STREAM.
+               return ConnectionError(ErrCodeProtocol)
+       }
+       if len(f.PseudoFields()) > 0 {
+               // No pseudo header fields are defined for trailers.
+               // TODO: ConnectionError might be overly harsh? Check.
+               return ConnectionError(ErrCodeProtocol)
+       }
+
+       trailer := make(http.Header)
+       for _, hf := range f.RegularFields() {
+               key := http.CanonicalHeaderKey(hf.Name)
+               trailer[key] = append(trailer[key], hf.Value)
+       }
+       cs.trailer = trailer
+
+       rl.endStream(cs)
+       return nil
+}
+
+// transportResponseBody is the concrete type of Transport.RoundTrip's
+// Response.Body. It is an io.ReadCloser. On Read, it reads from cs.body.
+// On Close it sends RST_STREAM if EOF wasn't already seen.
+type transportResponseBody struct {
+       cs *clientStream
+}
+
+func (b transportResponseBody) Read(p []byte) (n int, err error) {
+       cs := b.cs
+       cc := cs.cc
+
+       if cs.readErr != nil {
+               return 0, cs.readErr
+       }
+       n, err = b.cs.bufPipe.Read(p)
+       if cs.bytesRemain != -1 {
+               if int64(n) > cs.bytesRemain {
+                       n = int(cs.bytesRemain)
+                       if err == nil {
+                               err = errors.New("net/http: server replied with more than declared Content-Length; truncated")
+                               cc.writeStreamReset(cs.ID, ErrCodeProtocol, err)
+                       }
+                       cs.readErr = err
+                       return int(cs.bytesRemain), err
+               }
+               cs.bytesRemain -= int64(n)
+               if err == io.EOF && cs.bytesRemain > 0 {
+                       err = io.ErrUnexpectedEOF
+                       cs.readErr = err
+                       return n, err
+               }
+       }
+       if n == 0 {
+               // No flow control tokens to send back.
+               return
+       }
+
+       cc.mu.Lock()
+       defer cc.mu.Unlock()
+
+       var connAdd, streamAdd int32
+       // Check the conn-level first, before the stream-level.
+       if v := cc.inflow.available(); v < transportDefaultConnFlow/2 {
+               connAdd = transportDefaultConnFlow - v
+               cc.inflow.add(connAdd)
+       }
+       if err == nil { // No need to refresh if the stream is over or failed.
+               // Consider any buffered body data (read from the conn but not
+               // consumed by the client) when computing flow control for this
+               // stream.
+               v := int(cs.inflow.available()) + cs.bufPipe.Len()
+               if v < transportDefaultStreamFlow-transportDefaultStreamMinRefresh {
+                       streamAdd = int32(transportDefaultStreamFlow - v)
+                       cs.inflow.add(streamAdd)
+               }
+       }
+       if connAdd != 0 || streamAdd != 0 {
+               cc.wmu.Lock()
+               defer cc.wmu.Unlock()
+               if connAdd != 0 {
+                       cc.fr.WriteWindowUpdate(0, mustUint31(connAdd))
+               }
+               if streamAdd != 0 {
+                       cc.fr.WriteWindowUpdate(cs.ID, mustUint31(streamAdd))
+               }
+               cc.bw.Flush()
+       }
+       return
+}
+
+var errClosedResponseBody = errors.New("http2: response body closed")
+
+func (b transportResponseBody) Close() error {
+       cs := b.cs
+       cc := cs.cc
+
+       serverSentStreamEnd := cs.bufPipe.Err() == io.EOF
+       unread := cs.bufPipe.Len()
+
+       if unread > 0 || !serverSentStreamEnd {
+               cc.mu.Lock()
+               cc.wmu.Lock()
+               if !serverSentStreamEnd {
+                       cc.fr.WriteRSTStream(cs.ID, ErrCodeCancel)
+                       cs.didReset = true
+               }
+               // Return connection-level flow control.
+               if unread > 0 {
+                       cc.inflow.add(int32(unread))
+                       cc.fr.WriteWindowUpdate(0, uint32(unread))
+               }
+               cc.bw.Flush()
+               cc.wmu.Unlock()
+               cc.mu.Unlock()
+       }
+
+       cs.bufPipe.BreakWithError(errClosedResponseBody)
+       cc.forgetStreamID(cs.ID)
+       return nil
+}
+
+func (rl *clientConnReadLoop) processData(f *DataFrame) error {
+       cc := rl.cc
+       cs := cc.streamByID(f.StreamID, f.StreamEnded())
+       data := f.Data()
+       if cs == nil {
+               cc.mu.Lock()
+               neverSent := cc.nextStreamID
+               cc.mu.Unlock()
+               if f.StreamID >= neverSent {
+                       // We never asked for this.
+                       cc.logf("http2: Transport received unsolicited DATA frame; closing connection")
+                       return ConnectionError(ErrCodeProtocol)
+               }
+               // We probably did ask for this, but canceled. Just ignore it.
+               // TODO: be stricter here? only silently ignore things which
+               // we canceled, but not things which were closed normally
+               // by the peer? Tough without accumulating too much state.
+
+               // But at least return their flow control:
+               if f.Length > 0 {
+                       cc.mu.Lock()
+                       cc.inflow.add(int32(f.Length))
+                       cc.mu.Unlock()
+
+                       cc.wmu.Lock()
+                       cc.fr.WriteWindowUpdate(0, uint32(f.Length))
+                       cc.bw.Flush()
+                       cc.wmu.Unlock()
+               }
+               return nil
+       }
+       if !cs.firstByte {
+               cc.logf("protocol error: received DATA before a HEADERS frame")
+               rl.endStreamError(cs, StreamError{
+                       StreamID: f.StreamID,
+                       Code:     ErrCodeProtocol,
+               })
+               return nil
+       }
+       if f.Length > 0 {
+               if cs.req.Method == "HEAD" && len(data) > 0 {
+                       cc.logf("protocol error: received DATA on a HEAD request")
+                       rl.endStreamError(cs, StreamError{
+                               StreamID: f.StreamID,
+                               Code:     ErrCodeProtocol,
+                       })
+                       return nil
+               }
+               // Check connection-level flow control.
+               cc.mu.Lock()
+               if cs.inflow.available() >= int32(f.Length) {
+                       cs.inflow.take(int32(f.Length))
+               } else {
+                       cc.mu.Unlock()
+                       return ConnectionError(ErrCodeFlowControl)
+               }
+               // Return any padded flow control now, since we won't
+               // refund it later on body reads.
+               var refund int
+               if pad := int(f.Length) - len(data); pad > 0 {
+                       refund += pad
+               }
+               // Return len(data) now if the stream is already closed,
+               // since data will never be read.
+               didReset := cs.didReset
+               if didReset {
+                       refund += len(data)
+               }
+               if refund > 0 {
+                       cc.inflow.add(int32(refund))
+                       cc.wmu.Lock()
+                       cc.fr.WriteWindowUpdate(0, uint32(refund))
+                       if !didReset {
+                               cs.inflow.add(int32(refund))
+                               cc.fr.WriteWindowUpdate(cs.ID, uint32(refund))
+                       }
+                       cc.bw.Flush()
+                       cc.wmu.Unlock()
+               }
+               cc.mu.Unlock()
+
+               if len(data) > 0 && !didReset {
+                       if _, err := cs.bufPipe.Write(data); err != nil {
+                               rl.endStreamError(cs, err)
+                               return err
+                       }
+               }
+       }
+
+       if f.StreamEnded() {
+               rl.endStream(cs)
+       }
+       return nil
+}
+
+var errInvalidTrailers = errors.New("http2: invalid trailers")
+
+func (rl *clientConnReadLoop) endStream(cs *clientStream) {
+       // TODO: check that any declared content-length matches, like
+       // server.go's (*stream).endStream method.
+       rl.endStreamError(cs, nil)
+}
+
+func (rl *clientConnReadLoop) endStreamError(cs *clientStream, err error) {
+       var code func()
+       if err == nil {
+               err = io.EOF
+               code = cs.copyTrailers
+       }
+       if isConnectionCloseRequest(cs.req) {
+               rl.closeWhenIdle = true
+       }
+       cs.bufPipe.closeWithErrorAndCode(err, code)
+
+       select {
+       case cs.resc <- resAndError{err: err}:
+       default:
+       }
+}
+
+func (cs *clientStream) copyTrailers() {
+       for k, vv := range cs.trailer {
+               t := cs.resTrailer
+               if *t == nil {
+                       *t = make(http.Header)
+               }
+               (*t)[k] = vv
+       }
+}
+
+func (rl *clientConnReadLoop) processGoAway(f *GoAwayFrame) error {
+       cc := rl.cc
+       cc.t.connPool().MarkDead(cc)
+       if f.ErrCode != 0 {
+               // TODO: deal with GOAWAY more. particularly the error code
+               cc.vlogf("transport got GOAWAY with error code = %v", f.ErrCode)
+       }
+       cc.setGoAway(f)
+       return nil
+}
+
+func (rl *clientConnReadLoop) processSettings(f *SettingsFrame) error {
+       cc := rl.cc
+       cc.mu.Lock()
+       defer cc.mu.Unlock()
+
+       if f.IsAck() {
+               if cc.wantSettingsAck {
+                       cc.wantSettingsAck = false
+                       return nil
+               }
+               return ConnectionError(ErrCodeProtocol)
+       }
+
+       err := f.ForeachSetting(func(s Setting) error {
+               switch s.ID {
+               case SettingMaxFrameSize:
+                       cc.maxFrameSize = s.Val
+               case SettingMaxConcurrentStreams:
+                       cc.maxConcurrentStreams = s.Val
+               case SettingMaxHeaderListSize:
+                       cc.peerMaxHeaderListSize = uint64(s.Val)
+               case SettingInitialWindowSize:
+                       // Values above the maximum flow-control
+                       // window size of 2^31-1 MUST be treated as a
+                       // connection error (Section 5.4.1) of type
+                       // FLOW_CONTROL_ERROR.
+                       if s.Val > math.MaxInt32 {
+                               return ConnectionError(ErrCodeFlowControl)
+                       }
+
+                       // Adjust flow control of currently-open
+                       // frames by the difference of the old initial
+                       // window size and this one.
+                       delta := int32(s.Val) - int32(cc.initialWindowSize)
+                       for _, cs := range cc.streams {
+                               cs.flow.add(delta)
+                       }
+                       cc.cond.Broadcast()
+
+                       cc.initialWindowSize = s.Val
+               default:
+                       // TODO(bradfitz): handle more settings? SETTINGS_HEADER_TABLE_SIZE probably.
+                       cc.vlogf("Unhandled Setting: %v", s)
+               }
+               return nil
+       })
+       if err != nil {
+               return err
+       }
+
+       cc.wmu.Lock()
+       defer cc.wmu.Unlock()
+
+       cc.fr.WriteSettingsAck()
+       cc.bw.Flush()
+       return cc.werr
+}
+
+func (rl *clientConnReadLoop) processWindowUpdate(f *WindowUpdateFrame) error {
+       cc := rl.cc
+       cs := cc.streamByID(f.StreamID, false)
+       if f.StreamID != 0 && cs == nil {
+               return nil
+       }
+
+       cc.mu.Lock()
+       defer cc.mu.Unlock()
+
+       fl := &cc.flow
+       if cs != nil {
+               fl = &cs.flow
+       }
+       if !fl.add(int32(f.Increment)) {
+               return ConnectionError(ErrCodeFlowControl)
+       }
+       cc.cond.Broadcast()
+       return nil
+}
+
+func (rl *clientConnReadLoop) processResetStream(f *RSTStreamFrame) error {
+       cs := rl.cc.streamByID(f.StreamID, true)
+       if cs == nil {
+               // TODO: return error if server tries to RST_STEAM an idle stream
+               return nil
+       }
+       select {
+       case <-cs.peerReset:
+               // Already reset.
+               // This is the only goroutine
+               // which closes this, so there
+               // isn't a race.
+       default:
+               err := streamError(cs.ID, f.ErrCode)
+               cs.resetErr = err
+               close(cs.peerReset)
+               cs.bufPipe.CloseWithError(err)
+               cs.cc.cond.Broadcast() // wake up checkResetOrDone via clientStream.awaitFlowControl
+       }
+       return nil
+}
+
+// Ping sends a PING frame to the server and waits for the ack.
+func (cc *ClientConn) Ping(ctx context.Context) error {
+       c := make(chan struct{})
+       // Generate a random payload
+       var p [8]byte
+       for {
+               if _, err := rand.Read(p[:]); err != nil {
+                       return err
+               }
+               cc.mu.Lock()
+               // check for dup before insert
+               if _, found := cc.pings[p]; !found {
+                       cc.pings[p] = c
+                       cc.mu.Unlock()
+                       break
+               }
+               cc.mu.Unlock()
+       }
+       cc.wmu.Lock()
+       if err := cc.fr.WritePing(false, p); err != nil {
+               cc.wmu.Unlock()
+               return err
+       }
+       if err := cc.bw.Flush(); err != nil {
+               cc.wmu.Unlock()
+               return err
+       }
+       cc.wmu.Unlock()
+       select {
+       case <-c:
+               return nil
+       case <-ctx.Done():
+               return ctx.Err()
+       case <-cc.readerDone:
+               // connection closed
+               return cc.readerErr
+       }
+}
+
+func (rl *clientConnReadLoop) processPing(f *PingFrame) error {
+       if f.IsAck() {
+               cc := rl.cc
+               cc.mu.Lock()
+               defer cc.mu.Unlock()
+               // If ack, notify listener if any
+               if c, ok := cc.pings[f.Data]; ok {
+                       close(c)
+                       delete(cc.pings, f.Data)
+               }
+               return nil
+       }
+       cc := rl.cc
+       cc.wmu.Lock()
+       defer cc.wmu.Unlock()
+       if err := cc.fr.WritePing(true, f.Data); err != nil {
+               return err
+       }
+       return cc.bw.Flush()
+}
+
+func (rl *clientConnReadLoop) processPushPromise(f *PushPromiseFrame) error {
+       // We told the peer we don't want them.
+       // Spec says:
+       // "PUSH_PROMISE MUST NOT be sent if the SETTINGS_ENABLE_PUSH
+       // setting of the peer endpoint is set to 0. An endpoint that
+       // has set this setting and has received acknowledgement MUST
+       // treat the receipt of a PUSH_PROMISE frame as a connection
+       // error (Section 5.4.1) of type PROTOCOL_ERROR."
+       return ConnectionError(ErrCodeProtocol)
+}
+
+func (cc *ClientConn) writeStreamReset(streamID uint32, code ErrCode, err error) {
+       // TODO: map err to more interesting error codes, once the
+       // HTTP community comes up with some. But currently for
+       // RST_STREAM there's no equivalent to GOAWAY frame's debug
+       // data, and the error codes are all pretty vague ("cancel").
+       cc.wmu.Lock()
+       cc.fr.WriteRSTStream(streamID, code)
+       cc.bw.Flush()
+       cc.wmu.Unlock()
+}
+
+var (
+       errResponseHeaderListSize = errors.New("http2: response header list larger than advertised limit")
+       errRequestHeaderListSize  = errors.New("http2: request header list larger than peer's advertised limit")
+       errPseudoTrailers         = errors.New("http2: invalid pseudo header in trailers")
+)
+
+func (cc *ClientConn) logf(format string, args ...interface{}) {
+       cc.t.logf(format, args...)
+}
+
+func (cc *ClientConn) vlogf(format string, args ...interface{}) {
+       cc.t.vlogf(format, args...)
+}
+
+func (t *Transport) vlogf(format string, args ...interface{}) {
+       if VerboseLogs {
+               t.logf(format, args...)
+       }
+}
+
+func (t *Transport) logf(format string, args ...interface{}) {
+       log.Printf(format, args...)
+}
+
+var noBody io.ReadCloser = ioutil.NopCloser(bytes.NewReader(nil))
+
+func strSliceContains(ss []string, s string) bool {
+       for _, v := range ss {
+               if v == s {
+                       return true
+               }
+       }
+       return false
+}
+
+type erringRoundTripper struct{ err error }
+
+func (rt erringRoundTripper) RoundTrip(*http.Request) (*http.Response, error) { return nil, rt.err }
+
+// gzipReader wraps a response body so it can lazily
+// call gzip.NewReader on the first call to Read
+type gzipReader struct {
+       body io.ReadCloser // underlying Response.Body
+       zr   *gzip.Reader  // lazily-initialized gzip reader
+       zerr error         // sticky error
+}
+
+func (gz *gzipReader) Read(p []byte) (n int, err error) {
+       if gz.zerr != nil {
+               return 0, gz.zerr
+       }
+       if gz.zr == nil {
+               gz.zr, err = gzip.NewReader(gz.body)
+               if err != nil {
+                       gz.zerr = err
+                       return 0, err
+               }
+       }
+       return gz.zr.Read(p)
+}
+
+func (gz *gzipReader) Close() error {
+       return gz.body.Close()
+}
+
+type errorReader struct{ err error }
+
+func (r errorReader) Read(p []byte) (int, error) { return 0, r.err }
+
+// bodyWriterState encapsulates various state around the Transport's writing
+// of the request body, particularly regarding doing delayed writes of the body
+// when the request contains "Expect: 100-continue".
+type bodyWriterState struct {
+       cs     *clientStream
+       timer  *time.Timer   // if non-nil, we're doing a delayed write
+       fnonce *sync.Once    // to call fn with
+       fn     func()        // the code to run in the goroutine, writing the body
+       resc   chan error    // result of fn's execution
+       delay  time.Duration // how long we should delay a delayed write for
+}
+
+func (t *Transport) getBodyWriterState(cs *clientStream, body io.Reader) (s bodyWriterState) {
+       s.cs = cs
+       if body == nil {
+               return
+       }
+       resc := make(chan error, 1)
+       s.resc = resc
+       s.fn = func() {
+               cs.cc.mu.Lock()
+               cs.startedWrite = true
+               cs.cc.mu.Unlock()
+               resc <- cs.writeRequestBody(body, cs.req.Body)
+       }
+       s.delay = t.expectContinueTimeout()
+       if s.delay == 0 ||
+               !httpguts.HeaderValuesContainsToken(
+                       cs.req.Header["Expect"],
+                       "100-continue") {
+               return
+       }
+       s.fnonce = new(sync.Once)
+
+       // Arm the timer with a very large duration, which we'll
+       // intentionally lower later. It has to be large now because
+       // we need a handle to it before writing the headers, but the
+       // s.delay value is defined to not start until after the
+       // request headers were written.
+       const hugeDuration = 365 * 24 * time.Hour
+       s.timer = time.AfterFunc(hugeDuration, func() {
+               s.fnonce.Do(s.fn)
+       })
+       return
+}
+
+func (s bodyWriterState) cancel() {
+       if s.timer != nil {
+               s.timer.Stop()
+       }
+}
+
+func (s bodyWriterState) on100() {
+       if s.timer == nil {
+               // If we didn't do a delayed write, ignore the server's
+               // bogus 100 continue response.
+               return
+       }
+       s.timer.Stop()
+       go func() { s.fnonce.Do(s.fn) }()
+}
+
+// scheduleBodyWrite starts writing the body, either immediately (in
+// the common case) or after the delay timeout. It should not be
+// called until after the headers have been written.
+func (s bodyWriterState) scheduleBodyWrite() {
+       if s.timer == nil {
+               // We're not doing a delayed write (see
+               // getBodyWriterState), so just start the writing
+               // goroutine immediately.
+               go s.fn()
+               return
+       }
+       traceWait100Continue(s.cs.trace)
+       if s.timer.Stop() {
+               s.timer.Reset(s.delay)
+       }
+}
+
+// isConnectionCloseRequest reports whether req should use its own
+// connection for a single request and then close the connection.
+func isConnectionCloseRequest(req *http.Request) bool {
+       return req.Close || httpguts.HeaderValuesContainsToken(req.Header["Connection"], "close")
+}
+
+// registerHTTPSProtocol calls Transport.RegisterProtocol but
+// converting panics into errors.
+func registerHTTPSProtocol(t *http.Transport, rt noDialH2RoundTripper) (err error) {
+       defer func() {
+               if e := recover(); e != nil {
+                       err = fmt.Errorf("%v", e)
+               }
+       }()
+       t.RegisterProtocol("https", rt)
+       return nil
+}
+
+// noDialH2RoundTripper is a RoundTripper which only tries to complete the request
+// if there's already has a cached connection to the host.
+// (The field is exported so it can be accessed via reflect from net/http; tested
+// by TestNoDialH2RoundTripperType)
+type noDialH2RoundTripper struct{ *Transport }
+
+func (rt noDialH2RoundTripper) RoundTrip(req *http.Request) (*http.Response, error) {
+       res, err := rt.Transport.RoundTrip(req)
+       if isNoCachedConnError(err) {
+               return nil, http.ErrSkipAltProtocol
+       }
+       return res, err
+}
+
+func (t *Transport) idleConnTimeout() time.Duration {
+       if t.t1 != nil {
+               return t.t1.IdleConnTimeout
+       }
+       return 0
+}
+
+func traceGetConn(req *http.Request, hostPort string) {
+       trace := httptrace.ContextClientTrace(req.Context())
+       if trace == nil || trace.GetConn == nil {
+               return
+       }
+       trace.GetConn(hostPort)
+}
+
+func traceGotConn(req *http.Request, cc *ClientConn, reused bool) {
+       trace := httptrace.ContextClientTrace(req.Context())
+       if trace == nil || trace.GotConn == nil {
+               return
+       }
+       ci := httptrace.GotConnInfo{Conn: cc.tconn}
+       ci.Reused = reused
+       cc.mu.Lock()
+       ci.WasIdle = len(cc.streams) == 0 && reused
+       if ci.WasIdle && !cc.lastActive.IsZero() {
+               ci.IdleTime = time.Now().Sub(cc.lastActive)
+       }
+       cc.mu.Unlock()
+
+       trace.GotConn(ci)
+}
+
+func traceWroteHeaders(trace *httptrace.ClientTrace) {
+       if trace != nil && trace.WroteHeaders != nil {
+               trace.WroteHeaders()
+       }
+}
+
+func traceGot100Continue(trace *httptrace.ClientTrace) {
+       if trace != nil && trace.Got100Continue != nil {
+               trace.Got100Continue()
+       }
+}
+
+func traceWait100Continue(trace *httptrace.ClientTrace) {
+       if trace != nil && trace.Wait100Continue != nil {
+               trace.Wait100Continue()
+       }
+}
+
+func traceWroteRequest(trace *httptrace.ClientTrace, err error) {
+       if trace != nil && trace.WroteRequest != nil {
+               trace.WroteRequest(httptrace.WroteRequestInfo{Err: err})
+       }
+}
+
+func traceFirstResponseByte(trace *httptrace.ClientTrace) {
+       if trace != nil && trace.GotFirstResponseByte != nil {
+               trace.GotFirstResponseByte()
+       }
+}
diff --git a/vendor/golang.org/x/net/http2/write.go b/vendor/golang.org/x/net/http2/write.go
new file mode 100644 (file)
index 0000000..3849bc2
--- /dev/null
@@ -0,0 +1,365 @@
+// Copyright 2014 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package http2
+
+import (
+       "bytes"
+       "fmt"
+       "log"
+       "net/http"
+       "net/url"
+
+       "golang.org/x/net/http/httpguts"
+       "golang.org/x/net/http2/hpack"
+)
+
+// writeFramer is implemented by any type that is used to write frames.
+type writeFramer interface {
+       writeFrame(writeContext) error
+
+       // staysWithinBuffer reports whether this writer promises that
+       // it will only write less than or equal to size bytes, and it
+       // won't Flush the write context.
+       staysWithinBuffer(size int) bool
+}
+
+// writeContext is the interface needed by the various frame writer
+// types below. All the writeFrame methods below are scheduled via the
+// frame writing scheduler (see writeScheduler in writesched.go).
+//
+// This interface is implemented by *serverConn.
+//
+// TODO: decide whether to a) use this in the client code (which didn't
+// end up using this yet, because it has a simpler design, not
+// currently implementing priorities), or b) delete this and
+// make the server code a bit more concrete.
+type writeContext interface {
+       Framer() *Framer
+       Flush() error
+       CloseConn() error
+       // HeaderEncoder returns an HPACK encoder that writes to the
+       // returned buffer.
+       HeaderEncoder() (*hpack.Encoder, *bytes.Buffer)
+}
+
+// writeEndsStream reports whether w writes a frame that will transition
+// the stream to a half-closed local state. This returns false for RST_STREAM,
+// which closes the entire stream (not just the local half).
+func writeEndsStream(w writeFramer) bool {
+       switch v := w.(type) {
+       case *writeData:
+               return v.endStream
+       case *writeResHeaders:
+               return v.endStream
+       case nil:
+               // This can only happen if the caller reuses w after it's
+               // been intentionally nil'ed out to prevent use. Keep this
+               // here to catch future refactoring breaking it.
+               panic("writeEndsStream called on nil writeFramer")
+       }
+       return false
+}
+
+type flushFrameWriter struct{}
+
+func (flushFrameWriter) writeFrame(ctx writeContext) error {
+       return ctx.Flush()
+}
+
+func (flushFrameWriter) staysWithinBuffer(max int) bool { return false }
+
+type writeSettings []Setting
+
+func (s writeSettings) staysWithinBuffer(max int) bool {
+       const settingSize = 6 // uint16 + uint32
+       return frameHeaderLen+settingSize*len(s) <= max
+
+}
+
+func (s writeSettings) writeFrame(ctx writeContext) error {
+       return ctx.Framer().WriteSettings([]Setting(s)...)
+}
+
+type writeGoAway struct {
+       maxStreamID uint32
+       code        ErrCode
+}
+
+func (p *writeGoAway) writeFrame(ctx writeContext) error {
+       err := ctx.Framer().WriteGoAway(p.maxStreamID, p.code, nil)
+       ctx.Flush() // ignore error: we're hanging up on them anyway
+       return err
+}
+
+func (*writeGoAway) staysWithinBuffer(max int) bool { return false } // flushes
+
+type writeData struct {
+       streamID  uint32
+       p         []byte
+       endStream bool
+}
+
+func (w *writeData) String() string {
+       return fmt.Sprintf("writeData(stream=%d, p=%d, endStream=%v)", w.streamID, len(w.p), w.endStream)
+}
+
+func (w *writeData) writeFrame(ctx writeContext) error {
+       return ctx.Framer().WriteData(w.streamID, w.endStream, w.p)
+}
+
+func (w *writeData) staysWithinBuffer(max int) bool {
+       return frameHeaderLen+len(w.p) <= max
+}
+
+// handlerPanicRST is the message sent from handler goroutines when
+// the handler panics.
+type handlerPanicRST struct {
+       StreamID uint32
+}
+
+func (hp handlerPanicRST) writeFrame(ctx writeContext) error {
+       return ctx.Framer().WriteRSTStream(hp.StreamID, ErrCodeInternal)
+}
+
+func (hp handlerPanicRST) staysWithinBuffer(max int) bool { return frameHeaderLen+4 <= max }
+
+func (se StreamError) writeFrame(ctx writeContext) error {
+       return ctx.Framer().WriteRSTStream(se.StreamID, se.Code)
+}
+
+func (se StreamError) staysWithinBuffer(max int) bool { return frameHeaderLen+4 <= max }
+
+type writePingAck struct{ pf *PingFrame }
+
+func (w writePingAck) writeFrame(ctx writeContext) error {
+       return ctx.Framer().WritePing(true, w.pf.Data)
+}
+
+func (w writePingAck) staysWithinBuffer(max int) bool { return frameHeaderLen+len(w.pf.Data) <= max }
+
+type writeSettingsAck struct{}
+
+func (writeSettingsAck) writeFrame(ctx writeContext) error {
+       return ctx.Framer().WriteSettingsAck()
+}
+
+func (writeSettingsAck) staysWithinBuffer(max int) bool { return frameHeaderLen <= max }
+
+// splitHeaderBlock splits headerBlock into fragments so that each fragment fits
+// in a single frame, then calls fn for each fragment. firstFrag/lastFrag are true
+// for the first/last fragment, respectively.
+func splitHeaderBlock(ctx writeContext, headerBlock []byte, fn func(ctx writeContext, frag []byte, firstFrag, lastFrag bool) error) error {
+       // For now we're lazy and just pick the minimum MAX_FRAME_SIZE
+       // that all peers must support (16KB). Later we could care
+       // more and send larger frames if the peer advertised it, but
+       // there's little point. Most headers are small anyway (so we
+       // generally won't have CONTINUATION frames), and extra frames
+       // only waste 9 bytes anyway.
+       const maxFrameSize = 16384
+
+       first := true
+       for len(headerBlock) > 0 {
+               frag := headerBlock
+               if len(frag) > maxFrameSize {
+                       frag = frag[:maxFrameSize]
+               }
+               headerBlock = headerBlock[len(frag):]
+               if err := fn(ctx, frag, first, len(headerBlock) == 0); err != nil {
+                       return err
+               }
+               first = false
+       }
+       return nil
+}
+
+// writeResHeaders is a request to write a HEADERS and 0+ CONTINUATION frames
+// for HTTP response headers or trailers from a server handler.
+type writeResHeaders struct {
+       streamID    uint32
+       httpResCode int         // 0 means no ":status" line
+       h           http.Header // may be nil
+       trailers    []string    // if non-nil, which keys of h to write. nil means all.
+       endStream   bool
+
+       date          string
+       contentType   string
+       contentLength string
+}
+
+func encKV(enc *hpack.Encoder, k, v string) {
+       if VerboseLogs {
+               log.Printf("http2: server encoding header %q = %q", k, v)
+       }
+       enc.WriteField(hpack.HeaderField{Name: k, Value: v})
+}
+
+func (w *writeResHeaders) staysWithinBuffer(max int) bool {
+       // TODO: this is a common one. It'd be nice to return true
+       // here and get into the fast path if we could be clever and
+       // calculate the size fast enough, or at least a conservative
+       // upper bound that usually fires. (Maybe if w.h and
+       // w.trailers are nil, so we don't need to enumerate it.)
+       // Otherwise I'm afraid that just calculating the length to
+       // answer this question would be slower than the ~2µs benefit.
+       return false
+}
+
+func (w *writeResHeaders) writeFrame(ctx writeContext) error {
+       enc, buf := ctx.HeaderEncoder()
+       buf.Reset()
+
+       if w.httpResCode != 0 {
+               encKV(enc, ":status", httpCodeString(w.httpResCode))
+       }
+
+       encodeHeaders(enc, w.h, w.trailers)
+
+       if w.contentType != "" {
+               encKV(enc, "content-type", w.contentType)
+       }
+       if w.contentLength != "" {
+               encKV(enc, "content-length", w.contentLength)
+       }
+       if w.date != "" {
+               encKV(enc, "date", w.date)
+       }
+
+       headerBlock := buf.Bytes()
+       if len(headerBlock) == 0 && w.trailers == nil {
+               panic("unexpected empty hpack")
+       }
+
+       return splitHeaderBlock(ctx, headerBlock, w.writeHeaderBlock)
+}
+
+func (w *writeResHeaders) writeHeaderBlock(ctx writeContext, frag []byte, firstFrag, lastFrag bool) error {
+       if firstFrag {
+               return ctx.Framer().WriteHeaders(HeadersFrameParam{
+                       StreamID:      w.streamID,
+                       BlockFragment: frag,
+                       EndStream:     w.endStream,
+                       EndHeaders:    lastFrag,
+               })
+       } else {
+               return ctx.Framer().WriteContinuation(w.streamID, lastFrag, frag)
+       }
+}
+
+// writePushPromise is a request to write a PUSH_PROMISE and 0+ CONTINUATION frames.
+type writePushPromise struct {
+       streamID uint32   // pusher stream
+       method   string   // for :method
+       url      *url.URL // for :scheme, :authority, :path
+       h        http.Header
+
+       // Creates an ID for a pushed stream. This runs on serveG just before
+       // the frame is written. The returned ID is copied to promisedID.
+       allocatePromisedID func() (uint32, error)
+       promisedID         uint32
+}
+
+func (w *writePushPromise) staysWithinBuffer(max int) bool {
+       // TODO: see writeResHeaders.staysWithinBuffer
+       return false
+}
+
+func (w *writePushPromise) writeFrame(ctx writeContext) error {
+       enc, buf := ctx.HeaderEncoder()
+       buf.Reset()
+
+       encKV(enc, ":method", w.method)
+       encKV(enc, ":scheme", w.url.Scheme)
+       encKV(enc, ":authority", w.url.Host)
+       encKV(enc, ":path", w.url.RequestURI())
+       encodeHeaders(enc, w.h, nil)
+
+       headerBlock := buf.Bytes()
+       if len(headerBlock) == 0 {
+               panic("unexpected empty hpack")
+       }
+
+       return splitHeaderBlock(ctx, headerBlock, w.writeHeaderBlock)
+}
+
+func (w *writePushPromise) writeHeaderBlock(ctx writeContext, frag []byte, firstFrag, lastFrag bool) error {
+       if firstFrag {
+               return ctx.Framer().WritePushPromise(PushPromiseParam{
+                       StreamID:      w.streamID,
+                       PromiseID:     w.promisedID,
+                       BlockFragment: frag,
+                       EndHeaders:    lastFrag,
+               })
+       } else {
+               return ctx.Framer().WriteContinuation(w.streamID, lastFrag, frag)
+       }
+}
+
+type write100ContinueHeadersFrame struct {
+       streamID uint32
+}
+
+func (w write100ContinueHeadersFrame) writeFrame(ctx writeContext) error {
+       enc, buf := ctx.HeaderEncoder()
+       buf.Reset()
+       encKV(enc, ":status", "100")
+       return ctx.Framer().WriteHeaders(HeadersFrameParam{
+               StreamID:      w.streamID,
+               BlockFragment: buf.Bytes(),
+               EndStream:     false,
+               EndHeaders:    true,
+       })
+}
+
+func (w write100ContinueHeadersFrame) staysWithinBuffer(max int) bool {
+       // Sloppy but conservative:
+       return 9+2*(len(":status")+len("100")) <= max
+}
+
+type writeWindowUpdate struct {
+       streamID uint32 // or 0 for conn-level
+       n        uint32
+}
+
+func (wu writeWindowUpdate) staysWithinBuffer(max int) bool { return frameHeaderLen+4 <= max }
+
+func (wu writeWindowUpdate) writeFrame(ctx writeContext) error {
+       return ctx.Framer().WriteWindowUpdate(wu.streamID, wu.n)
+}
+
+// encodeHeaders encodes an http.Header. If keys is not nil, then (k, h[k])
+// is encoded only if k is in keys.
+func encodeHeaders(enc *hpack.Encoder, h http.Header, keys []string) {
+       if keys == nil {
+               sorter := sorterPool.Get().(*sorter)
+               // Using defer here, since the returned keys from the
+               // sorter.Keys method is only valid until the sorter
+               // is returned:
+               defer sorterPool.Put(sorter)
+               keys = sorter.Keys(h)
+       }
+       for _, k := range keys {
+               vv := h[k]
+               k = lowerHeader(k)
+               if !validWireHeaderFieldName(k) {
+                       // Skip it as backup paranoia. Per
+                       // golang.org/issue/14048, these should
+                       // already be rejected at a higher level.
+                       continue
+               }
+               isTE := k == "transfer-encoding"
+               for _, v := range vv {
+                       if !httpguts.ValidHeaderFieldValue(v) {
+                               // TODO: return an error? golang.org/issue/14048
+                               // For now just omit it.
+                               continue
+                       }
+                       // TODO: more of "8.1.2.2 Connection-Specific Header Fields"
+                       if isTE && v != "trailers" {
+                               continue
+                       }
+                       encKV(enc, k, v)
+               }
+       }
+}
diff --git a/vendor/golang.org/x/net/http2/writesched.go b/vendor/golang.org/x/net/http2/writesched.go
new file mode 100644 (file)
index 0000000..f24d2b1
--- /dev/null
@@ -0,0 +1,248 @@
+// Copyright 2014 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package http2
+
+import "fmt"
+
+// WriteScheduler is the interface implemented by HTTP/2 write schedulers.
+// Methods are never called concurrently.
+type WriteScheduler interface {
+       // OpenStream opens a new stream in the write scheduler.
+       // It is illegal to call this with streamID=0 or with a streamID that is
+       // already open -- the call may panic.
+       OpenStream(streamID uint32, options OpenStreamOptions)
+
+       // CloseStream closes a stream in the write scheduler. Any frames queued on
+       // this stream should be discarded. It is illegal to call this on a stream
+       // that is not open -- the call may panic.
+       CloseStream(streamID uint32)
+
+       // AdjustStream adjusts the priority of the given stream. This may be called
+       // on a stream that has not yet been opened or has been closed. Note that
+       // RFC 7540 allows PRIORITY frames to be sent on streams in any state. See:
+       // https://tools.ietf.org/html/rfc7540#section-5.1
+       AdjustStream(streamID uint32, priority PriorityParam)
+
+       // Push queues a frame in the scheduler. In most cases, this will not be
+       // called with wr.StreamID()!=0 unless that stream is currently open. The one
+       // exception is RST_STREAM frames, which may be sent on idle or closed streams.
+       Push(wr FrameWriteRequest)
+
+       // Pop dequeues the next frame to write. Returns false if no frames can
+       // be written. Frames with a given wr.StreamID() are Pop'd in the same
+       // order they are Push'd. No frames should be discarded except by CloseStream.
+       Pop() (wr FrameWriteRequest, ok bool)
+}
+
+// OpenStreamOptions specifies extra options for WriteScheduler.OpenStream.
+type OpenStreamOptions struct {
+       // PusherID is zero if the stream was initiated by the client. Otherwise,
+       // PusherID names the stream that pushed the newly opened stream.
+       PusherID uint32
+}
+
+// FrameWriteRequest is a request to write a frame.
+type FrameWriteRequest struct {
+       // write is the interface value that does the writing, once the
+       // WriteScheduler has selected this frame to write. The write
+       // functions are all defined in write.go.
+       write writeFramer
+
+       // stream is the stream on which this frame will be written.
+       // nil for non-stream frames like PING and SETTINGS.
+       stream *stream
+
+       // done, if non-nil, must be a buffered channel with space for
+       // 1 message and is sent the return value from write (or an
+       // earlier error) when the frame has been written.
+       done chan error
+}
+
+// StreamID returns the id of the stream this frame will be written to.
+// 0 is used for non-stream frames such as PING and SETTINGS.
+func (wr FrameWriteRequest) StreamID() uint32 {
+       if wr.stream == nil {
+               if se, ok := wr.write.(StreamError); ok {
+                       // (*serverConn).resetStream doesn't set
+                       // stream because it doesn't necessarily have
+                       // one. So special case this type of write
+                       // message.
+                       return se.StreamID
+               }
+               return 0
+       }
+       return wr.stream.id
+}
+
+// isControl reports whether wr is a control frame for MaxQueuedControlFrames
+// purposes. That includes non-stream frames and RST_STREAM frames.
+func (wr FrameWriteRequest) isControl() bool {
+       return wr.stream == nil
+}
+
+// DataSize returns the number of flow control bytes that must be consumed
+// to write this entire frame. This is 0 for non-DATA frames.
+func (wr FrameWriteRequest) DataSize() int {
+       if wd, ok := wr.write.(*writeData); ok {
+               return len(wd.p)
+       }
+       return 0
+}
+
+// Consume consumes min(n, available) bytes from this frame, where available
+// is the number of flow control bytes available on the stream. Consume returns
+// 0, 1, or 2 frames, where the integer return value gives the number of frames
+// returned.
+//
+// If flow control prevents consuming any bytes, this returns (_, _, 0). If
+// the entire frame was consumed, this returns (wr, _, 1). Otherwise, this
+// returns (consumed, rest, 2), where 'consumed' contains the consumed bytes and
+// 'rest' contains the remaining bytes. The consumed bytes are deducted from the
+// underlying stream's flow control budget.
+func (wr FrameWriteRequest) Consume(n int32) (FrameWriteRequest, FrameWriteRequest, int) {
+       var empty FrameWriteRequest
+
+       // Non-DATA frames are always consumed whole.
+       wd, ok := wr.write.(*writeData)
+       if !ok || len(wd.p) == 0 {
+               return wr, empty, 1
+       }
+
+       // Might need to split after applying limits.
+       allowed := wr.stream.flow.available()
+       if n < allowed {
+               allowed = n
+       }
+       if wr.stream.sc.maxFrameSize < allowed {
+               allowed = wr.stream.sc.maxFrameSize
+       }
+       if allowed <= 0 {
+               return empty, empty, 0
+       }
+       if len(wd.p) > int(allowed) {
+               wr.stream.flow.take(allowed)
+               consumed := FrameWriteRequest{
+                       stream: wr.stream,
+                       write: &writeData{
+                               streamID: wd.streamID,
+                               p:        wd.p[:allowed],
+                               // Even if the original had endStream set, there
+                               // are bytes remaining because len(wd.p) > allowed,
+                               // so we know endStream is false.
+                               endStream: false,
+                       },
+                       // Our caller is blocking on the final DATA frame, not
+                       // this intermediate frame, so no need to wait.
+                       done: nil,
+               }
+               rest := FrameWriteRequest{
+                       stream: wr.stream,
+                       write: &writeData{
+                               streamID:  wd.streamID,
+                               p:         wd.p[allowed:],
+                               endStream: wd.endStream,
+                       },
+                       done: wr.done,
+               }
+               return consumed, rest, 2
+       }
+
+       // The frame is consumed whole.
+       // NB: This cast cannot overflow because allowed is <= math.MaxInt32.
+       wr.stream.flow.take(int32(len(wd.p)))
+       return wr, empty, 1
+}
+
+// String is for debugging only.
+func (wr FrameWriteRequest) String() string {
+       var des string
+       if s, ok := wr.write.(fmt.Stringer); ok {
+               des = s.String()
+       } else {
+               des = fmt.Sprintf("%T", wr.write)
+       }
+       return fmt.Sprintf("[FrameWriteRequest stream=%d, ch=%v, writer=%v]", wr.StreamID(), wr.done != nil, des)
+}
+
+// replyToWriter sends err to wr.done and panics if the send must block
+// This does nothing if wr.done is nil.
+func (wr *FrameWriteRequest) replyToWriter(err error) {
+       if wr.done == nil {
+               return
+       }
+       select {
+       case wr.done <- err:
+       default:
+               panic(fmt.Sprintf("unbuffered done channel passed in for type %T", wr.write))
+       }
+       wr.write = nil // prevent use (assume it's tainted after wr.done send)
+}
+
+// writeQueue is used by implementations of WriteScheduler.
+type writeQueue struct {
+       s []FrameWriteRequest
+}
+
+func (q *writeQueue) empty() bool { return len(q.s) == 0 }
+
+func (q *writeQueue) push(wr FrameWriteRequest) {
+       q.s = append(q.s, wr)
+}
+
+func (q *writeQueue) shift() FrameWriteRequest {
+       if len(q.s) == 0 {
+               panic("invalid use of queue")
+       }
+       wr := q.s[0]
+       // TODO: less copy-happy queue.
+       copy(q.s, q.s[1:])
+       q.s[len(q.s)-1] = FrameWriteRequest{}
+       q.s = q.s[:len(q.s)-1]
+       return wr
+}
+
+// consume consumes up to n bytes from q.s[0]. If the frame is
+// entirely consumed, it is removed from the queue. If the frame
+// is partially consumed, the frame is kept with the consumed
+// bytes removed. Returns true iff any bytes were consumed.
+func (q *writeQueue) consume(n int32) (FrameWriteRequest, bool) {
+       if len(q.s) == 0 {
+               return FrameWriteRequest{}, false
+       }
+       consumed, rest, numresult := q.s[0].Consume(n)
+       switch numresult {
+       case 0:
+               return FrameWriteRequest{}, false
+       case 1:
+               q.shift()
+       case 2:
+               q.s[0] = rest
+       }
+       return consumed, true
+}
+
+type writeQueuePool []*writeQueue
+
+// put inserts an unused writeQueue into the pool.
+func (p *writeQueuePool) put(q *writeQueue) {
+       for i := range q.s {
+               q.s[i] = FrameWriteRequest{}
+       }
+       q.s = q.s[:0]
+       *p = append(*p, q)
+}
+
+// get returns an empty writeQueue.
+func (p *writeQueuePool) get() *writeQueue {
+       ln := len(*p)
+       if ln == 0 {
+               return new(writeQueue)
+       }
+       x := ln - 1
+       q := (*p)[x]
+       (*p)[x] = nil
+       *p = (*p)[:x]
+       return q
+}
diff --git a/vendor/golang.org/x/net/http2/writesched_priority.go b/vendor/golang.org/x/net/http2/writesched_priority.go
new file mode 100644 (file)
index 0000000..2618b2c
--- /dev/null
@@ -0,0 +1,452 @@
+// Copyright 2016 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package http2
+
+import (
+       "fmt"
+       "math"
+       "sort"
+)
+
+// RFC 7540, Section 5.3.5: the default weight is 16.
+const priorityDefaultWeight = 15 // 16 = 15 + 1
+
+// PriorityWriteSchedulerConfig configures a priorityWriteScheduler.
+type PriorityWriteSchedulerConfig struct {
+       // MaxClosedNodesInTree controls the maximum number of closed streams to
+       // retain in the priority tree. Setting this to zero saves a small amount
+       // of memory at the cost of performance.
+       //
+       // See RFC 7540, Section 5.3.4:
+       //   "It is possible for a stream to become closed while prioritization
+       //   information ... is in transit. ... This potentially creates suboptimal
+       //   prioritization, since the stream could be given a priority that is
+       //   different from what is intended. To avoid these problems, an endpoint
+       //   SHOULD retain stream prioritization state for a period after streams
+       //   become closed. The longer state is retained, the lower the chance that
+       //   streams are assigned incorrect or default priority values."
+       MaxClosedNodesInTree int
+
+       // MaxIdleNodesInTree controls the maximum number of idle streams to
+       // retain in the priority tree. Setting this to zero saves a small amount
+       // of memory at the cost of performance.
+       //
+       // See RFC 7540, Section 5.3.4:
+       //   Similarly, streams that are in the "idle" state can be assigned
+       //   priority or become a parent of other streams. This allows for the
+       //   creation of a grouping node in the dependency tree, which enables
+       //   more flexible expressions of priority. Idle streams begin with a
+       //   default priority (Section 5.3.5).
+       MaxIdleNodesInTree int
+
+       // ThrottleOutOfOrderWrites enables write throttling to help ensure that
+       // data is delivered in priority order. This works around a race where
+       // stream B depends on stream A and both streams are about to call Write
+       // to queue DATA frames. If B wins the race, a naive scheduler would eagerly
+       // write as much data from B as possible, but this is suboptimal because A
+       // is a higher-priority stream. With throttling enabled, we write a small
+       // amount of data from B to minimize the amount of bandwidth that B can
+       // steal from A.
+       ThrottleOutOfOrderWrites bool
+}
+
+// NewPriorityWriteScheduler constructs a WriteScheduler that schedules
+// frames by following HTTP/2 priorities as described in RFC 7540 Section 5.3.
+// If cfg is nil, default options are used.
+func NewPriorityWriteScheduler(cfg *PriorityWriteSchedulerConfig) WriteScheduler {
+       if cfg == nil {
+               // For justification of these defaults, see:
+               // https://docs.google.com/document/d/1oLhNg1skaWD4_DtaoCxdSRN5erEXrH-KnLrMwEpOtFY
+               cfg = &PriorityWriteSchedulerConfig{
+                       MaxClosedNodesInTree:     10,
+                       MaxIdleNodesInTree:       10,
+                       ThrottleOutOfOrderWrites: false,
+               }
+       }
+
+       ws := &priorityWriteScheduler{
+               nodes:                make(map[uint32]*priorityNode),
+               maxClosedNodesInTree: cfg.MaxClosedNodesInTree,
+               maxIdleNodesInTree:   cfg.MaxIdleNodesInTree,
+               enableWriteThrottle:  cfg.ThrottleOutOfOrderWrites,
+       }
+       ws.nodes[0] = &ws.root
+       if cfg.ThrottleOutOfOrderWrites {
+               ws.writeThrottleLimit = 1024
+       } else {
+               ws.writeThrottleLimit = math.MaxInt32
+       }
+       return ws
+}
+
+type priorityNodeState int
+
+const (
+       priorityNodeOpen priorityNodeState = iota
+       priorityNodeClosed
+       priorityNodeIdle
+)
+
+// priorityNode is a node in an HTTP/2 priority tree.
+// Each node is associated with a single stream ID.
+// See RFC 7540, Section 5.3.
+type priorityNode struct {
+       q            writeQueue        // queue of pending frames to write
+       id           uint32            // id of the stream, or 0 for the root of the tree
+       weight       uint8             // the actual weight is weight+1, so the value is in [1,256]
+       state        priorityNodeState // open | closed | idle
+       bytes        int64             // number of bytes written by this node, or 0 if closed
+       subtreeBytes int64             // sum(node.bytes) of all nodes in this subtree
+
+       // These links form the priority tree.
+       parent     *priorityNode
+       kids       *priorityNode // start of the kids list
+       prev, next *priorityNode // doubly-linked list of siblings
+}
+
+func (n *priorityNode) setParent(parent *priorityNode) {
+       if n == parent {
+               panic("setParent to self")
+       }
+       if n.parent == parent {
+               return
+       }
+       // Unlink from current parent.
+       if parent := n.parent; parent != nil {
+               if n.prev == nil {
+                       parent.kids = n.next
+               } else {
+                       n.prev.next = n.next
+               }
+               if n.next != nil {
+                       n.next.prev = n.prev
+               }
+       }
+       // Link to new parent.
+       // If parent=nil, remove n from the tree.
+       // Always insert at the head of parent.kids (this is assumed by walkReadyInOrder).
+       n.parent = parent
+       if parent == nil {
+               n.next = nil
+               n.prev = nil
+       } else {
+               n.next = parent.kids
+               n.prev = nil
+               if n.next != nil {
+                       n.next.prev = n
+               }
+               parent.kids = n
+       }
+}
+
+func (n *priorityNode) addBytes(b int64) {
+       n.bytes += b
+       for ; n != nil; n = n.parent {
+               n.subtreeBytes += b
+       }
+}
+
+// walkReadyInOrder iterates over the tree in priority order, calling f for each node
+// with a non-empty write queue. When f returns true, this function returns true and the
+// walk halts. tmp is used as scratch space for sorting.
+//
+// f(n, openParent) takes two arguments: the node to visit, n, and a bool that is true
+// if any ancestor p of n is still open (ignoring the root node).
+func (n *priorityNode) walkReadyInOrder(openParent bool, tmp *[]*priorityNode, f func(*priorityNode, bool) bool) bool {
+       if !n.q.empty() && f(n, openParent) {
+               return true
+       }
+       if n.kids == nil {
+               return false
+       }
+
+       // Don't consider the root "open" when updating openParent since
+       // we can't send data frames on the root stream (only control frames).
+       if n.id != 0 {
+               openParent = openParent || (n.state == priorityNodeOpen)
+       }
+
+       // Common case: only one kid or all kids have the same weight.
+       // Some clients don't use weights; other clients (like web browsers)
+       // use mostly-linear priority trees.
+       w := n.kids.weight
+       needSort := false
+       for k := n.kids.next; k != nil; k = k.next {
+               if k.weight != w {
+                       needSort = true
+                       break
+               }
+       }
+       if !needSort {
+               for k := n.kids; k != nil; k = k.next {
+                       if k.walkReadyInOrder(openParent, tmp, f) {
+                               return true
+                       }
+               }
+               return false
+       }
+
+       // Uncommon case: sort the child nodes. We remove the kids from the parent,
+       // then re-insert after sorting so we can reuse tmp for future sort calls.
+       *tmp = (*tmp)[:0]
+       for n.kids != nil {
+               *tmp = append(*tmp, n.kids)
+               n.kids.setParent(nil)
+       }
+       sort.Sort(sortPriorityNodeSiblings(*tmp))
+       for i := len(*tmp) - 1; i >= 0; i-- {
+               (*tmp)[i].setParent(n) // setParent inserts at the head of n.kids
+       }
+       for k := n.kids; k != nil; k = k.next {
+               if k.walkReadyInOrder(openParent, tmp, f) {
+                       return true
+               }
+       }
+       return false
+}
+
+type sortPriorityNodeSiblings []*priorityNode
+
+func (z sortPriorityNodeSiblings) Len() int      { return len(z) }
+func (z sortPriorityNodeSiblings) Swap(i, k int) { z[i], z[k] = z[k], z[i] }
+func (z sortPriorityNodeSiblings) Less(i, k int) bool {
+       // Prefer the subtree that has sent fewer bytes relative to its weight.
+       // See sections 5.3.2 and 5.3.4.
+       wi, bi := float64(z[i].weight+1), float64(z[i].subtreeBytes)
+       wk, bk := float64(z[k].weight+1), float64(z[k].subtreeBytes)
+       if bi == 0 && bk == 0 {
+               return wi >= wk
+       }
+       if bk == 0 {
+               return false
+       }
+       return bi/bk <= wi/wk
+}
+
+type priorityWriteScheduler struct {
+       // root is the root of the priority tree, where root.id = 0.
+       // The root queues control frames that are not associated with any stream.
+       root priorityNode
+
+       // nodes maps stream ids to priority tree nodes.
+       nodes map[uint32]*priorityNode
+
+       // maxID is the maximum stream id in nodes.
+       maxID uint32
+
+       // lists of nodes that have been closed or are idle, but are kept in
+       // the tree for improved prioritization. When the lengths exceed either
+       // maxClosedNodesInTree or maxIdleNodesInTree, old nodes are discarded.
+       closedNodes, idleNodes []*priorityNode
+
+       // From the config.
+       maxClosedNodesInTree int
+       maxIdleNodesInTree   int
+       writeThrottleLimit   int32
+       enableWriteThrottle  bool
+
+       // tmp is scratch space for priorityNode.walkReadyInOrder to reduce allocations.
+       tmp []*priorityNode
+
+       // pool of empty queues for reuse.
+       queuePool writeQueuePool
+}
+
+func (ws *priorityWriteScheduler) OpenStream(streamID uint32, options OpenStreamOptions) {
+       // The stream may be currently idle but cannot be opened or closed.
+       if curr := ws.nodes[streamID]; curr != nil {
+               if curr.state != priorityNodeIdle {
+                       panic(fmt.Sprintf("stream %d already opened", streamID))
+               }
+               curr.state = priorityNodeOpen
+               return
+       }
+
+       // RFC 7540, Section 5.3.5:
+       //  "All streams are initially assigned a non-exclusive dependency on stream 0x0.
+       //  Pushed streams initially depend on their associated stream. In both cases,
+       //  streams are assigned a default weight of 16."
+       parent := ws.nodes[options.PusherID]
+       if parent == nil {
+               parent = &ws.root
+       }
+       n := &priorityNode{
+               q:      *ws.queuePool.get(),
+               id:     streamID,
+               weight: priorityDefaultWeight,
+               state:  priorityNodeOpen,
+       }
+       n.setParent(parent)
+       ws.nodes[streamID] = n
+       if streamID > ws.maxID {
+               ws.maxID = streamID
+       }
+}
+
+func (ws *priorityWriteScheduler) CloseStream(streamID uint32) {
+       if streamID == 0 {
+               panic("violation of WriteScheduler interface: cannot close stream 0")
+       }
+       if ws.nodes[streamID] == nil {
+               panic(fmt.Sprintf("violation of WriteScheduler interface: unknown stream %d", streamID))
+       }
+       if ws.nodes[streamID].state != priorityNodeOpen {
+               panic(fmt.Sprintf("violation of WriteScheduler interface: stream %d already closed", streamID))
+       }
+
+       n := ws.nodes[streamID]
+       n.state = priorityNodeClosed
+       n.addBytes(-n.bytes)
+
+       q := n.q
+       ws.queuePool.put(&q)
+       n.q.s = nil
+       if ws.maxClosedNodesInTree > 0 {
+               ws.addClosedOrIdleNode(&ws.closedNodes, ws.maxClosedNodesInTree, n)
+       } else {
+               ws.removeNode(n)
+       }
+}
+
+func (ws *priorityWriteScheduler) AdjustStream(streamID uint32, priority PriorityParam) {
+       if streamID == 0 {
+               panic("adjustPriority on root")
+       }
+
+       // If streamID does not exist, there are two cases:
+       // - A closed stream that has been removed (this will have ID <= maxID)
+       // - An idle stream that is being used for "grouping" (this will have ID > maxID)
+       n := ws.nodes[streamID]
+       if n == nil {
+               if streamID <= ws.maxID || ws.maxIdleNodesInTree == 0 {
+                       return
+               }
+               ws.maxID = streamID
+               n = &priorityNode{
+                       q:      *ws.queuePool.get(),
+                       id:     streamID,
+                       weight: priorityDefaultWeight,
+                       state:  priorityNodeIdle,
+               }
+               n.setParent(&ws.root)
+               ws.nodes[streamID] = n
+               ws.addClosedOrIdleNode(&ws.idleNodes, ws.maxIdleNodesInTree, n)
+       }
+
+       // Section 5.3.1: A dependency on a stream that is not currently in the tree
+       // results in that stream being given a default priority (Section 5.3.5).
+       parent := ws.nodes[priority.StreamDep]
+       if parent == nil {
+               n.setParent(&ws.root)
+               n.weight = priorityDefaultWeight
+               return
+       }
+
+       // Ignore if the client tries to make a node its own parent.
+       if n == parent {
+               return
+       }
+
+       // Section 5.3.3:
+       //   "If a stream is made dependent on one of its own dependencies, the
+       //   formerly dependent stream is first moved to be dependent on the
+       //   reprioritized stream's previous parent. The moved dependency retains
+       //   its weight."
+       //
+       // That is: if parent depends on n, move parent to depend on n.parent.
+       for x := parent.parent; x != nil; x = x.parent {
+               if x == n {
+                       parent.setParent(n.parent)
+                       break
+               }
+       }
+
+       // Section 5.3.3: The exclusive flag causes the stream to become the sole
+       // dependency of its parent stream, causing other dependencies to become
+       // dependent on the exclusive stream.
+       if priority.Exclusive {
+               k := parent.kids
+               for k != nil {
+                       next := k.next
+                       if k != n {
+                               k.setParent(n)
+                       }
+                       k = next
+               }
+       }
+
+       n.setParent(parent)
+       n.weight = priority.Weight
+}
+
+func (ws *priorityWriteScheduler) Push(wr FrameWriteRequest) {
+       var n *priorityNode
+       if id := wr.StreamID(); id == 0 {
+               n = &ws.root
+       } else {
+               n = ws.nodes[id]
+               if n == nil {
+                       // id is an idle or closed stream. wr should not be a HEADERS or
+                       // DATA frame. However, wr can be a RST_STREAM. In this case, we
+                       // push wr onto the root, rather than creating a new priorityNode,
+                       // since RST_STREAM is tiny and the stream's priority is unknown
+                       // anyway. See issue #17919.
+                       if wr.DataSize() > 0 {
+                               panic("add DATA on non-open stream")
+                       }
+                       n = &ws.root
+               }
+       }
+       n.q.push(wr)
+}
+
+func (ws *priorityWriteScheduler) Pop() (wr FrameWriteRequest, ok bool) {
+       ws.root.walkReadyInOrder(false, &ws.tmp, func(n *priorityNode, openParent bool) bool {
+               limit := int32(math.MaxInt32)
+               if openParent {
+                       limit = ws.writeThrottleLimit
+               }
+               wr, ok = n.q.consume(limit)
+               if !ok {
+                       return false
+               }
+               n.addBytes(int64(wr.DataSize()))
+               // If B depends on A and B continuously has data available but A
+               // does not, gradually increase the throttling limit to allow B to
+               // steal more and more bandwidth from A.
+               if openParent {
+                       ws.writeThrottleLimit += 1024
+                       if ws.writeThrottleLimit < 0 {
+                               ws.writeThrottleLimit = math.MaxInt32
+                       }
+               } else if ws.enableWriteThrottle {
+                       ws.writeThrottleLimit = 1024
+               }
+               return true
+       })
+       return wr, ok
+}
+
+func (ws *priorityWriteScheduler) addClosedOrIdleNode(list *[]*priorityNode, maxSize int, n *priorityNode) {
+       if maxSize == 0 {
+               return
+       }
+       if len(*list) == maxSize {
+               // Remove the oldest node, then shift left.
+               ws.removeNode((*list)[0])
+               x := (*list)[1:]
+               copy(*list, x)
+               *list = (*list)[:len(x)]
+       }
+       *list = append(*list, n)
+}
+
+func (ws *priorityWriteScheduler) removeNode(n *priorityNode) {
+       for k := n.kids; k != nil; k = k.next {
+               k.setParent(n.parent)
+       }
+       n.setParent(nil)
+       delete(ws.nodes, n.id)
+}
diff --git a/vendor/golang.org/x/net/http2/writesched_random.go b/vendor/golang.org/x/net/http2/writesched_random.go
new file mode 100644 (file)
index 0000000..36d7919
--- /dev/null
@@ -0,0 +1,72 @@
+// Copyright 2014 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package http2
+
+import "math"
+
+// NewRandomWriteScheduler constructs a WriteScheduler that ignores HTTP/2
+// priorities. Control frames like SETTINGS and PING are written before DATA
+// frames, but if no control frames are queued and multiple streams have queued
+// HEADERS or DATA frames, Pop selects a ready stream arbitrarily.
+func NewRandomWriteScheduler() WriteScheduler {
+       return &randomWriteScheduler{sq: make(map[uint32]*writeQueue)}
+}
+
+type randomWriteScheduler struct {
+       // zero are frames not associated with a specific stream.
+       zero writeQueue
+
+       // sq contains the stream-specific queues, keyed by stream ID.
+       // When a stream is idle or closed, it's deleted from the map.
+       sq map[uint32]*writeQueue
+
+       // pool of empty queues for reuse.
+       queuePool writeQueuePool
+}
+
+func (ws *randomWriteScheduler) OpenStream(streamID uint32, options OpenStreamOptions) {
+       // no-op: idle streams are not tracked
+}
+
+func (ws *randomWriteScheduler) CloseStream(streamID uint32) {
+       q, ok := ws.sq[streamID]
+       if !ok {
+               return
+       }
+       delete(ws.sq, streamID)
+       ws.queuePool.put(q)
+}
+
+func (ws *randomWriteScheduler) AdjustStream(streamID uint32, priority PriorityParam) {
+       // no-op: priorities are ignored
+}
+
+func (ws *randomWriteScheduler) Push(wr FrameWriteRequest) {
+       id := wr.StreamID()
+       if id == 0 {
+               ws.zero.push(wr)
+               return
+       }
+       q, ok := ws.sq[id]
+       if !ok {
+               q = ws.queuePool.get()
+               ws.sq[id] = q
+       }
+       q.push(wr)
+}
+
+func (ws *randomWriteScheduler) Pop() (FrameWriteRequest, bool) {
+       // Control frames first.
+       if !ws.zero.empty() {
+               return ws.zero.shift(), true
+       }
+       // Iterate over all non-idle streams until finding one that can be consumed.
+       for _, q := range ws.sq {
+               if wr, ok := q.consume(math.MaxInt32); ok {
+                       return wr, true
+               }
+       }
+       return FrameWriteRequest{}, false
+}
diff --git a/vendor/golang.org/x/net/idna/idna10.0.0.go b/vendor/golang.org/x/net/idna/idna10.0.0.go
new file mode 100644 (file)
index 0000000..a98a31f
--- /dev/null
@@ -0,0 +1,734 @@
+// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT.
+
+// Copyright 2016 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build go1.10
+
+// Package idna implements IDNA2008 using the compatibility processing
+// defined by UTS (Unicode Technical Standard) #46, which defines a standard to
+// deal with the transition from IDNA2003.
+//
+// IDNA2008 (Internationalized Domain Names for Applications), is defined in RFC
+// 5890, RFC 5891, RFC 5892, RFC 5893 and RFC 5894.
+// UTS #46 is defined in https://www.unicode.org/reports/tr46.
+// See https://unicode.org/cldr/utility/idna.jsp for a visualization of the
+// differences between these two standards.
+package idna // import "golang.org/x/net/idna"
+
+import (
+       "fmt"
+       "strings"
+       "unicode/utf8"
+
+       "golang.org/x/text/secure/bidirule"
+       "golang.org/x/text/unicode/bidi"
+       "golang.org/x/text/unicode/norm"
+)
+
+// NOTE: Unlike common practice in Go APIs, the functions will return a
+// sanitized domain name in case of errors. Browsers sometimes use a partially
+// evaluated string as lookup.
+// TODO: the current error handling is, in my opinion, the least opinionated.
+// Other strategies are also viable, though:
+// Option 1) Return an empty string in case of error, but allow the user to
+//    specify explicitly which errors to ignore.
+// Option 2) Return the partially evaluated string if it is itself a valid
+//    string, otherwise return the empty string in case of error.
+// Option 3) Option 1 and 2.
+// Option 4) Always return an empty string for now and implement Option 1 as
+//    needed, and document that the return string may not be empty in case of
+//    error in the future.
+// I think Option 1 is best, but it is quite opinionated.
+
+// ToASCII is a wrapper for Punycode.ToASCII.
+func ToASCII(s string) (string, error) {
+       return Punycode.process(s, true)
+}
+
+// ToUnicode is a wrapper for Punycode.ToUnicode.
+func ToUnicode(s string) (string, error) {
+       return Punycode.process(s, false)
+}
+
+// An Option configures a Profile at creation time.
+type Option func(*options)
+
+// Transitional sets a Profile to use the Transitional mapping as defined in UTS
+// #46. This will cause, for example, "ß" to be mapped to "ss". Using the
+// transitional mapping provides a compromise between IDNA2003 and IDNA2008
+// compatibility. It is used by most browsers when resolving domain names. This
+// option is only meaningful if combined with MapForLookup.
+func Transitional(transitional bool) Option {
+       return func(o *options) { o.transitional = true }
+}
+
+// VerifyDNSLength sets whether a Profile should fail if any of the IDN parts
+// are longer than allowed by the RFC.
+func VerifyDNSLength(verify bool) Option {
+       return func(o *options) { o.verifyDNSLength = verify }
+}
+
+// RemoveLeadingDots removes leading label separators. Leading runes that map to
+// dots, such as U+3002 IDEOGRAPHIC FULL STOP, are removed as well.
+//
+// This is the behavior suggested by the UTS #46 and is adopted by some
+// browsers.
+func RemoveLeadingDots(remove bool) Option {
+       return func(o *options) { o.removeLeadingDots = remove }
+}
+
+// ValidateLabels sets whether to check the mandatory label validation criteria
+// as defined in Section 5.4 of RFC 5891. This includes testing for correct use
+// of hyphens ('-'), normalization, validity of runes, and the context rules.
+func ValidateLabels(enable bool) Option {
+       return func(o *options) {
+               // Don't override existing mappings, but set one that at least checks
+               // normalization if it is not set.
+               if o.mapping == nil && enable {
+                       o.mapping = normalize
+               }
+               o.trie = trie
+               o.validateLabels = enable
+               o.fromPuny = validateFromPunycode
+       }
+}
+
+// StrictDomainName limits the set of permissible ASCII characters to those
+// allowed in domain names as defined in RFC 1034 (A-Z, a-z, 0-9 and the
+// hyphen). This is set by default for MapForLookup and ValidateForRegistration.
+//
+// This option is useful, for instance, for browsers that allow characters
+// outside this range, for example a '_' (U+005F LOW LINE). See
+// http://www.rfc-editor.org/std/std3.txt for more details This option
+// corresponds to the UseSTD3ASCIIRules option in UTS #46.
+func StrictDomainName(use bool) Option {
+       return func(o *options) {
+               o.trie = trie
+               o.useSTD3Rules = use
+               o.fromPuny = validateFromPunycode
+       }
+}
+
+// NOTE: the following options pull in tables. The tables should not be linked
+// in as long as the options are not used.
+
+// BidiRule enables the Bidi rule as defined in RFC 5893. Any application
+// that relies on proper validation of labels should include this rule.
+func BidiRule() Option {
+       return func(o *options) { o.bidirule = bidirule.ValidString }
+}
+
+// ValidateForRegistration sets validation options to verify that a given IDN is
+// properly formatted for registration as defined by Section 4 of RFC 5891.
+func ValidateForRegistration() Option {
+       return func(o *options) {
+               o.mapping = validateRegistration
+               StrictDomainName(true)(o)
+               ValidateLabels(true)(o)
+               VerifyDNSLength(true)(o)
+               BidiRule()(o)
+       }
+}
+
+// MapForLookup sets validation and mapping options such that a given IDN is
+// transformed for domain name lookup according to the requirements set out in
+// Section 5 of RFC 5891. The mappings follow the recommendations of RFC 5894,
+// RFC 5895 and UTS 46. It does not add the Bidi Rule. Use the BidiRule option
+// to add this check.
+//
+// The mappings include normalization and mapping case, width and other
+// compatibility mappings.
+func MapForLookup() Option {
+       return func(o *options) {
+               o.mapping = validateAndMap
+               StrictDomainName(true)(o)
+               ValidateLabels(true)(o)
+       }
+}
+
+type options struct {
+       transitional      bool
+       useSTD3Rules      bool
+       validateLabels    bool
+       verifyDNSLength   bool
+       removeLeadingDots bool
+
+       trie *idnaTrie
+
+       // fromPuny calls validation rules when converting A-labels to U-labels.
+       fromPuny func(p *Profile, s string) error
+
+       // mapping implements a validation and mapping step as defined in RFC 5895
+       // or UTS 46, tailored to, for example, domain registration or lookup.
+       mapping func(p *Profile, s string) (mapped string, isBidi bool, err error)
+
+       // bidirule, if specified, checks whether s conforms to the Bidi Rule
+       // defined in RFC 5893.
+       bidirule func(s string) bool
+}
+
+// A Profile defines the configuration of an IDNA mapper.
+type Profile struct {
+       options
+}
+
+func apply(o *options, opts []Option) {
+       for _, f := range opts {
+               f(o)
+       }
+}
+
+// New creates a new Profile.
+//
+// With no options, the returned Profile is the most permissive and equals the
+// Punycode Profile. Options can be passed to further restrict the Profile. The
+// MapForLookup and ValidateForRegistration options set a collection of options,
+// for lookup and registration purposes respectively, which can be tailored by
+// adding more fine-grained options, where later options override earlier
+// options.
+func New(o ...Option) *Profile {
+       p := &Profile{}
+       apply(&p.options, o)
+       return p
+}
+
+// ToASCII converts a domain or domain label to its ASCII form. For example,
+// ToASCII("bücher.example.com") is "xn--bcher-kva.example.com", and
+// ToASCII("golang") is "golang". If an error is encountered it will return
+// an error and a (partially) processed result.
+func (p *Profile) ToASCII(s string) (string, error) {
+       return p.process(s, true)
+}
+
+// ToUnicode converts a domain or domain label to its Unicode form. For example,
+// ToUnicode("xn--bcher-kva.example.com") is "bücher.example.com", and
+// ToUnicode("golang") is "golang". If an error is encountered it will return
+// an error and a (partially) processed result.
+func (p *Profile) ToUnicode(s string) (string, error) {
+       pp := *p
+       pp.transitional = false
+       return pp.process(s, false)
+}
+
+// String reports a string with a description of the profile for debugging
+// purposes. The string format may change with different versions.
+func (p *Profile) String() string {
+       s := ""
+       if p.transitional {
+               s = "Transitional"
+       } else {
+               s = "NonTransitional"
+       }
+       if p.useSTD3Rules {
+               s += ":UseSTD3Rules"
+       }
+       if p.validateLabels {
+               s += ":ValidateLabels"
+       }
+       if p.verifyDNSLength {
+               s += ":VerifyDNSLength"
+       }
+       return s
+}
+
+var (
+       // Punycode is a Profile that does raw punycode processing with a minimum
+       // of validation.
+       Punycode *Profile = punycode
+
+       // Lookup is the recommended profile for looking up domain names, according
+       // to Section 5 of RFC 5891. The exact configuration of this profile may
+       // change over time.
+       Lookup *Profile = lookup
+
+       // Display is the recommended profile for displaying domain names.
+       // The configuration of this profile may change over time.
+       Display *Profile = display
+
+       // Registration is the recommended profile for checking whether a given
+       // IDN is valid for registration, according to Section 4 of RFC 5891.
+       Registration *Profile = registration
+
+       punycode = &Profile{}
+       lookup   = &Profile{options{
+               transitional:   true,
+               useSTD3Rules:   true,
+               validateLabels: true,
+               trie:           trie,
+               fromPuny:       validateFromPunycode,
+               mapping:        validateAndMap,
+               bidirule:       bidirule.ValidString,
+       }}
+       display = &Profile{options{
+               useSTD3Rules:   true,
+               validateLabels: true,
+               trie:           trie,
+               fromPuny:       validateFromPunycode,
+               mapping:        validateAndMap,
+               bidirule:       bidirule.ValidString,
+       }}
+       registration = &Profile{options{
+               useSTD3Rules:    true,
+               validateLabels:  true,
+               verifyDNSLength: true,
+               trie:            trie,
+               fromPuny:        validateFromPunycode,
+               mapping:         validateRegistration,
+               bidirule:        bidirule.ValidString,
+       }}
+
+       // TODO: profiles
+       // Register: recommended for approving domain names: don't do any mappings
+       // but rather reject on invalid input. Bundle or block deviation characters.
+)
+
+type labelError struct{ label, code_ string }
+
+func (e labelError) code() string { return e.code_ }
+func (e labelError) Error() string {
+       return fmt.Sprintf("idna: invalid label %q", e.label)
+}
+
+type runeError rune
+
+func (e runeError) code() string { return "P1" }
+func (e runeError) Error() string {
+       return fmt.Sprintf("idna: disallowed rune %U", e)
+}
+
+// process implements the algorithm described in section 4 of UTS #46,
+// see https://www.unicode.org/reports/tr46.
+func (p *Profile) process(s string, toASCII bool) (string, error) {
+       var err error
+       var isBidi bool
+       if p.mapping != nil {
+               s, isBidi, err = p.mapping(p, s)
+       }
+       // Remove leading empty labels.
+       if p.removeLeadingDots {
+               for ; len(s) > 0 && s[0] == '.'; s = s[1:] {
+               }
+       }
+       // TODO: allow for a quick check of the tables data.
+       // It seems like we should only create this error on ToASCII, but the
+       // UTS 46 conformance tests suggests we should always check this.
+       if err == nil && p.verifyDNSLength && s == "" {
+               err = &labelError{s, "A4"}
+       }
+       labels := labelIter{orig: s}
+       for ; !labels.done(); labels.next() {
+               label := labels.label()
+               if label == "" {
+                       // Empty labels are not okay. The label iterator skips the last
+                       // label if it is empty.
+                       if err == nil && p.verifyDNSLength {
+                               err = &labelError{s, "A4"}
+                       }
+                       continue
+               }
+               if strings.HasPrefix(label, acePrefix) {
+                       u, err2 := decode(label[len(acePrefix):])
+                       if err2 != nil {
+                               if err == nil {
+                                       err = err2
+                               }
+                               // Spec says keep the old label.
+                               continue
+                       }
+                       isBidi = isBidi || bidirule.DirectionString(u) != bidi.LeftToRight
+                       labels.set(u)
+                       if err == nil && p.validateLabels {
+                               err = p.fromPuny(p, u)
+                       }
+                       if err == nil {
+                               // This should be called on NonTransitional, according to the
+                               // spec, but that currently does not have any effect. Use the
+                               // original profile to preserve options.
+                               err = p.validateLabel(u)
+                       }
+               } else if err == nil {
+                       err = p.validateLabel(label)
+               }
+       }
+       if isBidi && p.bidirule != nil && err == nil {
+               for labels.reset(); !labels.done(); labels.next() {
+                       if !p.bidirule(labels.label()) {
+                               err = &labelError{s, "B"}
+                               break
+                       }
+               }
+       }
+       if toASCII {
+               for labels.reset(); !labels.done(); labels.next() {
+                       label := labels.label()
+                       if !ascii(label) {
+                               a, err2 := encode(acePrefix, label)
+                               if err == nil {
+                                       err = err2
+                               }
+                               label = a
+                               labels.set(a)
+                       }
+                       n := len(label)
+                       if p.verifyDNSLength && err == nil && (n == 0 || n > 63) {
+                               err = &labelError{label, "A4"}
+                       }
+               }
+       }
+       s = labels.result()
+       if toASCII && p.verifyDNSLength && err == nil {
+               // Compute the length of the domain name minus the root label and its dot.
+               n := len(s)
+               if n > 0 && s[n-1] == '.' {
+                       n--
+               }
+               if len(s) < 1 || n > 253 {
+                       err = &labelError{s, "A4"}
+               }
+       }
+       return s, err
+}
+
+func normalize(p *Profile, s string) (mapped string, isBidi bool, err error) {
+       // TODO: consider first doing a quick check to see if any of these checks
+       // need to be done. This will make it slower in the general case, but
+       // faster in the common case.
+       mapped = norm.NFC.String(s)
+       isBidi = bidirule.DirectionString(mapped) == bidi.RightToLeft
+       return mapped, isBidi, nil
+}
+
+func validateRegistration(p *Profile, s string) (idem string, bidi bool, err error) {
+       // TODO: filter need for normalization in loop below.
+       if !norm.NFC.IsNormalString(s) {
+               return s, false, &labelError{s, "V1"}
+       }
+       for i := 0; i < len(s); {
+               v, sz := trie.lookupString(s[i:])
+               if sz == 0 {
+                       return s, bidi, runeError(utf8.RuneError)
+               }
+               bidi = bidi || info(v).isBidi(s[i:])
+               // Copy bytes not copied so far.
+               switch p.simplify(info(v).category()) {
+               // TODO: handle the NV8 defined in the Unicode idna data set to allow
+               // for strict conformance to IDNA2008.
+               case valid, deviation:
+               case disallowed, mapped, unknown, ignored:
+                       r, _ := utf8.DecodeRuneInString(s[i:])
+                       return s, bidi, runeError(r)
+               }
+               i += sz
+       }
+       return s, bidi, nil
+}
+
+func (c info) isBidi(s string) bool {
+       if !c.isMapped() {
+               return c&attributesMask == rtl
+       }
+       // TODO: also store bidi info for mapped data. This is possible, but a bit
+       // cumbersome and not for the common case.
+       p, _ := bidi.LookupString(s)
+       switch p.Class() {
+       case bidi.R, bidi.AL, bidi.AN:
+               return true
+       }
+       return false
+}
+
+func validateAndMap(p *Profile, s string) (vm string, bidi bool, err error) {
+       var (
+               b []byte
+               k int
+       )
+       // combinedInfoBits contains the or-ed bits of all runes. We use this
+       // to derive the mayNeedNorm bit later. This may trigger normalization
+       // overeagerly, but it will not do so in the common case. The end result
+       // is another 10% saving on BenchmarkProfile for the common case.
+       var combinedInfoBits info
+       for i := 0; i < len(s); {
+               v, sz := trie.lookupString(s[i:])
+               if sz == 0 {
+                       b = append(b, s[k:i]...)
+                       b = append(b, "\ufffd"...)
+                       k = len(s)
+                       if err == nil {
+                               err = runeError(utf8.RuneError)
+                       }
+                       break
+               }
+               combinedInfoBits |= info(v)
+               bidi = bidi || info(v).isBidi(s[i:])
+               start := i
+               i += sz
+               // Copy bytes not copied so far.
+               switch p.simplify(info(v).category()) {
+               case valid:
+                       continue
+               case disallowed:
+                       if err == nil {
+                               r, _ := utf8.DecodeRuneInString(s[start:])
+                               err = runeError(r)
+                       }
+                       continue
+               case mapped, deviation:
+                       b = append(b, s[k:start]...)
+                       b = info(v).appendMapping(b, s[start:i])
+               case ignored:
+                       b = append(b, s[k:start]...)
+                       // drop the rune
+               case unknown:
+                       b = append(b, s[k:start]...)
+                       b = append(b, "\ufffd"...)
+               }
+               k = i
+       }
+       if k == 0 {
+               // No changes so far.
+               if combinedInfoBits&mayNeedNorm != 0 {
+                       s = norm.NFC.String(s)
+               }
+       } else {
+               b = append(b, s[k:]...)
+               if norm.NFC.QuickSpan(b) != len(b) {
+                       b = norm.NFC.Bytes(b)
+               }
+               // TODO: the punycode converters require strings as input.
+               s = string(b)
+       }
+       return s, bidi, err
+}
+
+// A labelIter allows iterating over domain name labels.
+type labelIter struct {
+       orig     string
+       slice    []string
+       curStart int
+       curEnd   int
+       i        int
+}
+
+func (l *labelIter) reset() {
+       l.curStart = 0
+       l.curEnd = 0
+       l.i = 0
+}
+
+func (l *labelIter) done() bool {
+       return l.curStart >= len(l.orig)
+}
+
+func (l *labelIter) result() string {
+       if l.slice != nil {
+               return strings.Join(l.slice, ".")
+       }
+       return l.orig
+}
+
+func (l *labelIter) label() string {
+       if l.slice != nil {
+               return l.slice[l.i]
+       }
+       p := strings.IndexByte(l.orig[l.curStart:], '.')
+       l.curEnd = l.curStart + p
+       if p == -1 {
+               l.curEnd = len(l.orig)
+       }
+       return l.orig[l.curStart:l.curEnd]
+}
+
+// next sets the value to the next label. It skips the last label if it is empty.
+func (l *labelIter) next() {
+       l.i++
+       if l.slice != nil {
+               if l.i >= len(l.slice) || l.i == len(l.slice)-1 && l.slice[l.i] == "" {
+                       l.curStart = len(l.orig)
+               }
+       } else {
+               l.curStart = l.curEnd + 1
+               if l.curStart == len(l.orig)-1 && l.orig[l.curStart] == '.' {
+                       l.curStart = len(l.orig)
+               }
+       }
+}
+
+func (l *labelIter) set(s string) {
+       if l.slice == nil {
+               l.slice = strings.Split(l.orig, ".")
+       }
+       l.slice[l.i] = s
+}
+
+// acePrefix is the ASCII Compatible Encoding prefix.
+const acePrefix = "xn--"
+
+func (p *Profile) simplify(cat category) category {
+       switch cat {
+       case disallowedSTD3Mapped:
+               if p.useSTD3Rules {
+                       cat = disallowed
+               } else {
+                       cat = mapped
+               }
+       case disallowedSTD3Valid:
+               if p.useSTD3Rules {
+                       cat = disallowed
+               } else {
+                       cat = valid
+               }
+       case deviation:
+               if !p.transitional {
+                       cat = valid
+               }
+       case validNV8, validXV8:
+               // TODO: handle V2008
+               cat = valid
+       }
+       return cat
+}
+
+func validateFromPunycode(p *Profile, s string) error {
+       if !norm.NFC.IsNormalString(s) {
+               return &labelError{s, "V1"}
+       }
+       // TODO: detect whether string may have to be normalized in the following
+       // loop.
+       for i := 0; i < len(s); {
+               v, sz := trie.lookupString(s[i:])
+               if sz == 0 {
+                       return runeError(utf8.RuneError)
+               }
+               if c := p.simplify(info(v).category()); c != valid && c != deviation {
+                       return &labelError{s, "V6"}
+               }
+               i += sz
+       }
+       return nil
+}
+
+const (
+       zwnj = "\u200c"
+       zwj  = "\u200d"
+)
+
+type joinState int8
+
+const (
+       stateStart joinState = iota
+       stateVirama
+       stateBefore
+       stateBeforeVirama
+       stateAfter
+       stateFAIL
+)
+
+var joinStates = [][numJoinTypes]joinState{
+       stateStart: {
+               joiningL:   stateBefore,
+               joiningD:   stateBefore,
+               joinZWNJ:   stateFAIL,
+               joinZWJ:    stateFAIL,
+               joinVirama: stateVirama,
+       },
+       stateVirama: {
+               joiningL: stateBefore,
+               joiningD: stateBefore,
+       },
+       stateBefore: {
+               joiningL:   stateBefore,
+               joiningD:   stateBefore,
+               joiningT:   stateBefore,
+               joinZWNJ:   stateAfter,
+               joinZWJ:    stateFAIL,
+               joinVirama: stateBeforeVirama,
+       },
+       stateBeforeVirama: {
+               joiningL: stateBefore,
+               joiningD: stateBefore,
+               joiningT: stateBefore,
+       },
+       stateAfter: {
+               joiningL:   stateFAIL,
+               joiningD:   stateBefore,
+               joiningT:   stateAfter,
+               joiningR:   stateStart,
+               joinZWNJ:   stateFAIL,
+               joinZWJ:    stateFAIL,
+               joinVirama: stateAfter, // no-op as we can't accept joiners here
+       },
+       stateFAIL: {
+               0:          stateFAIL,
+               joiningL:   stateFAIL,
+               joiningD:   stateFAIL,
+               joiningT:   stateFAIL,
+               joiningR:   stateFAIL,
+               joinZWNJ:   stateFAIL,
+               joinZWJ:    stateFAIL,
+               joinVirama: stateFAIL,
+       },
+}
+
+// validateLabel validates the criteria from Section 4.1. Item 1, 4, and 6 are
+// already implicitly satisfied by the overall implementation.
+func (p *Profile) validateLabel(s string) (err error) {
+       if s == "" {
+               if p.verifyDNSLength {
+                       return &labelError{s, "A4"}
+               }
+               return nil
+       }
+       if !p.validateLabels {
+               return nil
+       }
+       trie := p.trie // p.validateLabels is only set if trie is set.
+       if len(s) > 4 && s[2] == '-' && s[3] == '-' {
+               return &labelError{s, "V2"}
+       }
+       if s[0] == '-' || s[len(s)-1] == '-' {
+               return &labelError{s, "V3"}
+       }
+       // TODO: merge the use of this in the trie.
+       v, sz := trie.lookupString(s)
+       x := info(v)
+       if x.isModifier() {
+               return &labelError{s, "V5"}
+       }
+       // Quickly return in the absence of zero-width (non) joiners.
+       if strings.Index(s, zwj) == -1 && strings.Index(s, zwnj) == -1 {
+               return nil
+       }
+       st := stateStart
+       for i := 0; ; {
+               jt := x.joinType()
+               if s[i:i+sz] == zwj {
+                       jt = joinZWJ
+               } else if s[i:i+sz] == zwnj {
+                       jt = joinZWNJ
+               }
+               st = joinStates[st][jt]
+               if x.isViramaModifier() {
+                       st = joinStates[st][joinVirama]
+               }
+               if i += sz; i == len(s) {
+                       break
+               }
+               v, sz = trie.lookupString(s[i:])
+               x = info(v)
+       }
+       if st == stateFAIL || st == stateAfter {
+               return &labelError{s, "C"}
+       }
+       return nil
+}
+
+func ascii(s string) bool {
+       for i := 0; i < len(s); i++ {
+               if s[i] >= utf8.RuneSelf {
+                       return false
+               }
+       }
+       return true
+}
diff --git a/vendor/golang.org/x/net/idna/idna9.0.0.go b/vendor/golang.org/x/net/idna/idna9.0.0.go
new file mode 100644 (file)
index 0000000..8842146
--- /dev/null
@@ -0,0 +1,682 @@
+// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT.
+
+// Copyright 2016 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build !go1.10
+
+// Package idna implements IDNA2008 using the compatibility processing
+// defined by UTS (Unicode Technical Standard) #46, which defines a standard to
+// deal with the transition from IDNA2003.
+//
+// IDNA2008 (Internationalized Domain Names for Applications), is defined in RFC
+// 5890, RFC 5891, RFC 5892, RFC 5893 and RFC 5894.
+// UTS #46 is defined in https://www.unicode.org/reports/tr46.
+// See https://unicode.org/cldr/utility/idna.jsp for a visualization of the
+// differences between these two standards.
+package idna // import "golang.org/x/net/idna"
+
+import (
+       "fmt"
+       "strings"
+       "unicode/utf8"
+
+       "golang.org/x/text/secure/bidirule"
+       "golang.org/x/text/unicode/norm"
+)
+
+// NOTE: Unlike common practice in Go APIs, the functions will return a
+// sanitized domain name in case of errors. Browsers sometimes use a partially
+// evaluated string as lookup.
+// TODO: the current error handling is, in my opinion, the least opinionated.
+// Other strategies are also viable, though:
+// Option 1) Return an empty string in case of error, but allow the user to
+//    specify explicitly which errors to ignore.
+// Option 2) Return the partially evaluated string if it is itself a valid
+//    string, otherwise return the empty string in case of error.
+// Option 3) Option 1 and 2.
+// Option 4) Always return an empty string for now and implement Option 1 as
+//    needed, and document that the return string may not be empty in case of
+//    error in the future.
+// I think Option 1 is best, but it is quite opinionated.
+
+// ToASCII is a wrapper for Punycode.ToASCII.
+func ToASCII(s string) (string, error) {
+       return Punycode.process(s, true)
+}
+
+// ToUnicode is a wrapper for Punycode.ToUnicode.
+func ToUnicode(s string) (string, error) {
+       return Punycode.process(s, false)
+}
+
+// An Option configures a Profile at creation time.
+type Option func(*options)
+
+// Transitional sets a Profile to use the Transitional mapping as defined in UTS
+// #46. This will cause, for example, "ß" to be mapped to "ss". Using the
+// transitional mapping provides a compromise between IDNA2003 and IDNA2008
+// compatibility. It is used by most browsers when resolving domain names. This
+// option is only meaningful if combined with MapForLookup.
+func Transitional(transitional bool) Option {
+       return func(o *options) { o.transitional = true }
+}
+
+// VerifyDNSLength sets whether a Profile should fail if any of the IDN parts
+// are longer than allowed by the RFC.
+func VerifyDNSLength(verify bool) Option {
+       return func(o *options) { o.verifyDNSLength = verify }
+}
+
+// RemoveLeadingDots removes leading label separators. Leading runes that map to
+// dots, such as U+3002 IDEOGRAPHIC FULL STOP, are removed as well.
+//
+// This is the behavior suggested by the UTS #46 and is adopted by some
+// browsers.
+func RemoveLeadingDots(remove bool) Option {
+       return func(o *options) { o.removeLeadingDots = remove }
+}
+
+// ValidateLabels sets whether to check the mandatory label validation criteria
+// as defined in Section 5.4 of RFC 5891. This includes testing for correct use
+// of hyphens ('-'), normalization, validity of runes, and the context rules.
+func ValidateLabels(enable bool) Option {
+       return func(o *options) {
+               // Don't override existing mappings, but set one that at least checks
+               // normalization if it is not set.
+               if o.mapping == nil && enable {
+                       o.mapping = normalize
+               }
+               o.trie = trie
+               o.validateLabels = enable
+               o.fromPuny = validateFromPunycode
+       }
+}
+
+// StrictDomainName limits the set of permissable ASCII characters to those
+// allowed in domain names as defined in RFC 1034 (A-Z, a-z, 0-9 and the
+// hyphen). This is set by default for MapForLookup and ValidateForRegistration.
+//
+// This option is useful, for instance, for browsers that allow characters
+// outside this range, for example a '_' (U+005F LOW LINE). See
+// http://www.rfc-editor.org/std/std3.txt for more details This option
+// corresponds to the UseSTD3ASCIIRules option in UTS #46.
+func StrictDomainName(use bool) Option {
+       return func(o *options) {
+               o.trie = trie
+               o.useSTD3Rules = use
+               o.fromPuny = validateFromPunycode
+       }
+}
+
+// NOTE: the following options pull in tables. The tables should not be linked
+// in as long as the options are not used.
+
+// BidiRule enables the Bidi rule as defined in RFC 5893. Any application
+// that relies on proper validation of labels should include this rule.
+func BidiRule() Option {
+       return func(o *options) { o.bidirule = bidirule.ValidString }
+}
+
+// ValidateForRegistration sets validation options to verify that a given IDN is
+// properly formatted for registration as defined by Section 4 of RFC 5891.
+func ValidateForRegistration() Option {
+       return func(o *options) {
+               o.mapping = validateRegistration
+               StrictDomainName(true)(o)
+               ValidateLabels(true)(o)
+               VerifyDNSLength(true)(o)
+               BidiRule()(o)
+       }
+}
+
+// MapForLookup sets validation and mapping options such that a given IDN is
+// transformed for domain name lookup according to the requirements set out in
+// Section 5 of RFC 5891. The mappings follow the recommendations of RFC 5894,
+// RFC 5895 and UTS 46. It does not add the Bidi Rule. Use the BidiRule option
+// to add this check.
+//
+// The mappings include normalization and mapping case, width and other
+// compatibility mappings.
+func MapForLookup() Option {
+       return func(o *options) {
+               o.mapping = validateAndMap
+               StrictDomainName(true)(o)
+               ValidateLabels(true)(o)
+               RemoveLeadingDots(true)(o)
+       }
+}
+
+type options struct {
+       transitional      bool
+       useSTD3Rules      bool
+       validateLabels    bool
+       verifyDNSLength   bool
+       removeLeadingDots bool
+
+       trie *idnaTrie
+
+       // fromPuny calls validation rules when converting A-labels to U-labels.
+       fromPuny func(p *Profile, s string) error
+
+       // mapping implements a validation and mapping step as defined in RFC 5895
+       // or UTS 46, tailored to, for example, domain registration or lookup.
+       mapping func(p *Profile, s string) (string, error)
+
+       // bidirule, if specified, checks whether s conforms to the Bidi Rule
+       // defined in RFC 5893.
+       bidirule func(s string) bool
+}
+
+// A Profile defines the configuration of a IDNA mapper.
+type Profile struct {
+       options
+}
+
+func apply(o *options, opts []Option) {
+       for _, f := range opts {
+               f(o)
+       }
+}
+
+// New creates a new Profile.
+//
+// With no options, the returned Profile is the most permissive and equals the
+// Punycode Profile. Options can be passed to further restrict the Profile. The
+// MapForLookup and ValidateForRegistration options set a collection of options,
+// for lookup and registration purposes respectively, which can be tailored by
+// adding more fine-grained options, where later options override earlier
+// options.
+func New(o ...Option) *Profile {
+       p := &Profile{}
+       apply(&p.options, o)
+       return p
+}
+
+// ToASCII converts a domain or domain label to its ASCII form. For example,
+// ToASCII("bücher.example.com") is "xn--bcher-kva.example.com", and
+// ToASCII("golang") is "golang". If an error is encountered it will return
+// an error and a (partially) processed result.
+func (p *Profile) ToASCII(s string) (string, error) {
+       return p.process(s, true)
+}
+
+// ToUnicode converts a domain or domain label to its Unicode form. For example,
+// ToUnicode("xn--bcher-kva.example.com") is "bücher.example.com", and
+// ToUnicode("golang") is "golang". If an error is encountered it will return
+// an error and a (partially) processed result.
+func (p *Profile) ToUnicode(s string) (string, error) {
+       pp := *p
+       pp.transitional = false
+       return pp.process(s, false)
+}
+
+// String reports a string with a description of the profile for debugging
+// purposes. The string format may change with different versions.
+func (p *Profile) String() string {
+       s := ""
+       if p.transitional {
+               s = "Transitional"
+       } else {
+               s = "NonTransitional"
+       }
+       if p.useSTD3Rules {
+               s += ":UseSTD3Rules"
+       }
+       if p.validateLabels {
+               s += ":ValidateLabels"
+       }
+       if p.verifyDNSLength {
+               s += ":VerifyDNSLength"
+       }
+       return s
+}
+
+var (
+       // Punycode is a Profile that does raw punycode processing with a minimum
+       // of validation.
+       Punycode *Profile = punycode
+
+       // Lookup is the recommended profile for looking up domain names, according
+       // to Section 5 of RFC 5891. The exact configuration of this profile may
+       // change over time.
+       Lookup *Profile = lookup
+
+       // Display is the recommended profile for displaying domain names.
+       // The configuration of this profile may change over time.
+       Display *Profile = display
+
+       // Registration is the recommended profile for checking whether a given
+       // IDN is valid for registration, according to Section 4 of RFC 5891.
+       Registration *Profile = registration
+
+       punycode = &Profile{}
+       lookup   = &Profile{options{
+               transitional:      true,
+               useSTD3Rules:      true,
+               validateLabels:    true,
+               removeLeadingDots: true,
+               trie:              trie,
+               fromPuny:          validateFromPunycode,
+               mapping:           validateAndMap,
+               bidirule:          bidirule.ValidString,
+       }}
+       display = &Profile{options{
+               useSTD3Rules:      true,
+               validateLabels:    true,
+               removeLeadingDots: true,
+               trie:              trie,
+               fromPuny:          validateFromPunycode,
+               mapping:           validateAndMap,
+               bidirule:          bidirule.ValidString,
+       }}
+       registration = &Profile{options{
+               useSTD3Rules:    true,
+               validateLabels:  true,
+               verifyDNSLength: true,
+               trie:            trie,
+               fromPuny:        validateFromPunycode,
+               mapping:         validateRegistration,
+               bidirule:        bidirule.ValidString,
+       }}
+
+       // TODO: profiles
+       // Register: recommended for approving domain names: don't do any mappings
+       // but rather reject on invalid input. Bundle or block deviation characters.
+)
+
+type labelError struct{ label, code_ string }
+
+func (e labelError) code() string { return e.code_ }
+func (e labelError) Error() string {
+       return fmt.Sprintf("idna: invalid label %q", e.label)
+}
+
+type runeError rune
+
+func (e runeError) code() string { return "P1" }
+func (e runeError) Error() string {
+       return fmt.Sprintf("idna: disallowed rune %U", e)
+}
+
+// process implements the algorithm described in section 4 of UTS #46,
+// see https://www.unicode.org/reports/tr46.
+func (p *Profile) process(s string, toASCII bool) (string, error) {
+       var err error
+       if p.mapping != nil {
+               s, err = p.mapping(p, s)
+       }
+       // Remove leading empty labels.
+       if p.removeLeadingDots {
+               for ; len(s) > 0 && s[0] == '.'; s = s[1:] {
+               }
+       }
+       // It seems like we should only create this error on ToASCII, but the
+       // UTS 46 conformance tests suggests we should always check this.
+       if err == nil && p.verifyDNSLength && s == "" {
+               err = &labelError{s, "A4"}
+       }
+       labels := labelIter{orig: s}
+       for ; !labels.done(); labels.next() {
+               label := labels.label()
+               if label == "" {
+                       // Empty labels are not okay. The label iterator skips the last
+                       // label if it is empty.
+                       if err == nil && p.verifyDNSLength {
+                               err = &labelError{s, "A4"}
+                       }
+                       continue
+               }
+               if strings.HasPrefix(label, acePrefix) {
+                       u, err2 := decode(label[len(acePrefix):])
+                       if err2 != nil {
+                               if err == nil {
+                                       err = err2
+                               }
+                               // Spec says keep the old label.
+                               continue
+                       }
+                       labels.set(u)
+                       if err == nil && p.validateLabels {
+                               err = p.fromPuny(p, u)
+                       }
+                       if err == nil {
+                               // This should be called on NonTransitional, according to the
+                               // spec, but that currently does not have any effect. Use the
+                               // original profile to preserve options.
+                               err = p.validateLabel(u)
+                       }
+               } else if err == nil {
+                       err = p.validateLabel(label)
+               }
+       }
+       if toASCII {
+               for labels.reset(); !labels.done(); labels.next() {
+                       label := labels.label()
+                       if !ascii(label) {
+                               a, err2 := encode(acePrefix, label)
+                               if err == nil {
+                                       err = err2
+                               }
+                               label = a
+                               labels.set(a)
+                       }
+                       n := len(label)
+                       if p.verifyDNSLength && err == nil && (n == 0 || n > 63) {
+                               err = &labelError{label, "A4"}
+                       }
+               }
+       }
+       s = labels.result()
+       if toASCII && p.verifyDNSLength && err == nil {
+               // Compute the length of the domain name minus the root label and its dot.
+               n := len(s)
+               if n > 0 && s[n-1] == '.' {
+                       n--
+               }
+               if len(s) < 1 || n > 253 {
+                       err = &labelError{s, "A4"}
+               }
+       }
+       return s, err
+}
+
+func normalize(p *Profile, s string) (string, error) {
+       return norm.NFC.String(s), nil
+}
+
+func validateRegistration(p *Profile, s string) (string, error) {
+       if !norm.NFC.IsNormalString(s) {
+               return s, &labelError{s, "V1"}
+       }
+       for i := 0; i < len(s); {
+               v, sz := trie.lookupString(s[i:])
+               // Copy bytes not copied so far.
+               switch p.simplify(info(v).category()) {
+               // TODO: handle the NV8 defined in the Unicode idna data set to allow
+               // for strict conformance to IDNA2008.
+               case valid, deviation:
+               case disallowed, mapped, unknown, ignored:
+                       r, _ := utf8.DecodeRuneInString(s[i:])
+                       return s, runeError(r)
+               }
+               i += sz
+       }
+       return s, nil
+}
+
+func validateAndMap(p *Profile, s string) (string, error) {
+       var (
+               err error
+               b   []byte
+               k   int
+       )
+       for i := 0; i < len(s); {
+               v, sz := trie.lookupString(s[i:])
+               start := i
+               i += sz
+               // Copy bytes not copied so far.
+               switch p.simplify(info(v).category()) {
+               case valid:
+                       continue
+               case disallowed:
+                       if err == nil {
+                               r, _ := utf8.DecodeRuneInString(s[start:])
+                               err = runeError(r)
+                       }
+                       continue
+               case mapped, deviation:
+                       b = append(b, s[k:start]...)
+                       b = info(v).appendMapping(b, s[start:i])
+               case ignored:
+                       b = append(b, s[k:start]...)
+                       // drop the rune
+               case unknown:
+                       b = append(b, s[k:start]...)
+                       b = append(b, "\ufffd"...)
+               }
+               k = i
+       }
+       if k == 0 {
+               // No changes so far.
+               s = norm.NFC.String(s)
+       } else {
+               b = append(b, s[k:]...)
+               if norm.NFC.QuickSpan(b) != len(b) {
+                       b = norm.NFC.Bytes(b)
+               }
+               // TODO: the punycode converters require strings as input.
+               s = string(b)
+       }
+       return s, err
+}
+
+// A labelIter allows iterating over domain name labels.
+type labelIter struct {
+       orig     string
+       slice    []string
+       curStart int
+       curEnd   int
+       i        int
+}
+
+func (l *labelIter) reset() {
+       l.curStart = 0
+       l.curEnd = 0
+       l.i = 0
+}
+
+func (l *labelIter) done() bool {
+       return l.curStart >= len(l.orig)
+}
+
+func (l *labelIter) result() string {
+       if l.slice != nil {
+               return strings.Join(l.slice, ".")
+       }
+       return l.orig
+}
+
+func (l *labelIter) label() string {
+       if l.slice != nil {
+               return l.slice[l.i]
+       }
+       p := strings.IndexByte(l.orig[l.curStart:], '.')
+       l.curEnd = l.curStart + p
+       if p == -1 {
+               l.curEnd = len(l.orig)
+       }
+       return l.orig[l.curStart:l.curEnd]
+}
+
+// next sets the value to the next label. It skips the last label if it is empty.
+func (l *labelIter) next() {
+       l.i++
+       if l.slice != nil {
+               if l.i >= len(l.slice) || l.i == len(l.slice)-1 && l.slice[l.i] == "" {
+                       l.curStart = len(l.orig)
+               }
+       } else {
+               l.curStart = l.curEnd + 1
+               if l.curStart == len(l.orig)-1 && l.orig[l.curStart] == '.' {
+                       l.curStart = len(l.orig)
+               }
+       }
+}
+
+func (l *labelIter) set(s string) {
+       if l.slice == nil {
+               l.slice = strings.Split(l.orig, ".")
+       }
+       l.slice[l.i] = s
+}
+
+// acePrefix is the ASCII Compatible Encoding prefix.
+const acePrefix = "xn--"
+
+func (p *Profile) simplify(cat category) category {
+       switch cat {
+       case disallowedSTD3Mapped:
+               if p.useSTD3Rules {
+                       cat = disallowed
+               } else {
+                       cat = mapped
+               }
+       case disallowedSTD3Valid:
+               if p.useSTD3Rules {
+                       cat = disallowed
+               } else {
+                       cat = valid
+               }
+       case deviation:
+               if !p.transitional {
+                       cat = valid
+               }
+       case validNV8, validXV8:
+               // TODO: handle V2008
+               cat = valid
+       }
+       return cat
+}
+
+func validateFromPunycode(p *Profile, s string) error {
+       if !norm.NFC.IsNormalString(s) {
+               return &labelError{s, "V1"}
+       }
+       for i := 0; i < len(s); {
+               v, sz := trie.lookupString(s[i:])
+               if c := p.simplify(info(v).category()); c != valid && c != deviation {
+                       return &labelError{s, "V6"}
+               }
+               i += sz
+       }
+       return nil
+}
+
+const (
+       zwnj = "\u200c"
+       zwj  = "\u200d"
+)
+
+type joinState int8
+
+const (
+       stateStart joinState = iota
+       stateVirama
+       stateBefore
+       stateBeforeVirama
+       stateAfter
+       stateFAIL
+)
+
+var joinStates = [][numJoinTypes]joinState{
+       stateStart: {
+               joiningL:   stateBefore,
+               joiningD:   stateBefore,
+               joinZWNJ:   stateFAIL,
+               joinZWJ:    stateFAIL,
+               joinVirama: stateVirama,
+       },
+       stateVirama: {
+               joiningL: stateBefore,
+               joiningD: stateBefore,
+       },
+       stateBefore: {
+               joiningL:   stateBefore,
+               joiningD:   stateBefore,
+               joiningT:   stateBefore,
+               joinZWNJ:   stateAfter,
+               joinZWJ:    stateFAIL,
+               joinVirama: stateBeforeVirama,
+       },
+       stateBeforeVirama: {
+               joiningL: stateBefore,
+               joiningD: stateBefore,
+               joiningT: stateBefore,
+       },
+       stateAfter: {
+               joiningL:   stateFAIL,
+               joiningD:   stateBefore,
+               joiningT:   stateAfter,
+               joiningR:   stateStart,
+               joinZWNJ:   stateFAIL,
+               joinZWJ:    stateFAIL,
+               joinVirama: stateAfter, // no-op as we can't accept joiners here
+       },
+       stateFAIL: {
+               0:          stateFAIL,
+               joiningL:   stateFAIL,
+               joiningD:   stateFAIL,
+               joiningT:   stateFAIL,
+               joiningR:   stateFAIL,
+               joinZWNJ:   stateFAIL,
+               joinZWJ:    stateFAIL,
+               joinVirama: stateFAIL,
+       },
+}
+
+// validateLabel validates the criteria from Section 4.1. Item 1, 4, and 6 are
+// already implicitly satisfied by the overall implementation.
+func (p *Profile) validateLabel(s string) error {
+       if s == "" {
+               if p.verifyDNSLength {
+                       return &labelError{s, "A4"}
+               }
+               return nil
+       }
+       if p.bidirule != nil && !p.bidirule(s) {
+               return &labelError{s, "B"}
+       }
+       if !p.validateLabels {
+               return nil
+       }
+       trie := p.trie // p.validateLabels is only set if trie is set.
+       if len(s) > 4 && s[2] == '-' && s[3] == '-' {
+               return &labelError{s, "V2"}
+       }
+       if s[0] == '-' || s[len(s)-1] == '-' {
+               return &labelError{s, "V3"}
+       }
+       // TODO: merge the use of this in the trie.
+       v, sz := trie.lookupString(s)
+       x := info(v)
+       if x.isModifier() {
+               return &labelError{s, "V5"}
+       }
+       // Quickly return in the absence of zero-width (non) joiners.
+       if strings.Index(s, zwj) == -1 && strings.Index(s, zwnj) == -1 {
+               return nil
+       }
+       st := stateStart
+       for i := 0; ; {
+               jt := x.joinType()
+               if s[i:i+sz] == zwj {
+                       jt = joinZWJ
+               } else if s[i:i+sz] == zwnj {
+                       jt = joinZWNJ
+               }
+               st = joinStates[st][jt]
+               if x.isViramaModifier() {
+                       st = joinStates[st][joinVirama]
+               }
+               if i += sz; i == len(s) {
+                       break
+               }
+               v, sz = trie.lookupString(s[i:])
+               x = info(v)
+       }
+       if st == stateFAIL || st == stateAfter {
+               return &labelError{s, "C"}
+       }
+       return nil
+}
+
+func ascii(s string) bool {
+       for i := 0; i < len(s); i++ {
+               if s[i] >= utf8.RuneSelf {
+                       return false
+               }
+       }
+       return true
+}
diff --git a/vendor/golang.org/x/net/idna/punycode.go b/vendor/golang.org/x/net/idna/punycode.go
new file mode 100644 (file)
index 0000000..02c7d59
--- /dev/null
@@ -0,0 +1,203 @@
+// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT.
+
+// Copyright 2016 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package idna
+
+// This file implements the Punycode algorithm from RFC 3492.
+
+import (
+       "math"
+       "strings"
+       "unicode/utf8"
+)
+
+// These parameter values are specified in section 5.
+//
+// All computation is done with int32s, so that overflow behavior is identical
+// regardless of whether int is 32-bit or 64-bit.
+const (
+       base        int32 = 36
+       damp        int32 = 700
+       initialBias int32 = 72
+       initialN    int32 = 128
+       skew        int32 = 38
+       tmax        int32 = 26
+       tmin        int32 = 1
+)
+
+func punyError(s string) error { return &labelError{s, "A3"} }
+
+// decode decodes a string as specified in section 6.2.
+func decode(encoded string) (string, error) {
+       if encoded == "" {
+               return "", nil
+       }
+       pos := 1 + strings.LastIndex(encoded, "-")
+       if pos == 1 {
+               return "", punyError(encoded)
+       }
+       if pos == len(encoded) {
+               return encoded[:len(encoded)-1], nil
+       }
+       output := make([]rune, 0, len(encoded))
+       if pos != 0 {
+               for _, r := range encoded[:pos-1] {
+                       output = append(output, r)
+               }
+       }
+       i, n, bias := int32(0), initialN, initialBias
+       for pos < len(encoded) {
+               oldI, w := i, int32(1)
+               for k := base; ; k += base {
+                       if pos == len(encoded) {
+                               return "", punyError(encoded)
+                       }
+                       digit, ok := decodeDigit(encoded[pos])
+                       if !ok {
+                               return "", punyError(encoded)
+                       }
+                       pos++
+                       i += digit * w
+                       if i < 0 {
+                               return "", punyError(encoded)
+                       }
+                       t := k - bias
+                       if t < tmin {
+                               t = tmin
+                       } else if t > tmax {
+                               t = tmax
+                       }
+                       if digit < t {
+                               break
+                       }
+                       w *= base - t
+                       if w >= math.MaxInt32/base {
+                               return "", punyError(encoded)
+                       }
+               }
+               x := int32(len(output) + 1)
+               bias = adapt(i-oldI, x, oldI == 0)
+               n += i / x
+               i %= x
+               if n > utf8.MaxRune || len(output) >= 1024 {
+                       return "", punyError(encoded)
+               }
+               output = append(output, 0)
+               copy(output[i+1:], output[i:])
+               output[i] = n
+               i++
+       }
+       return string(output), nil
+}
+
+// encode encodes a string as specified in section 6.3 and prepends prefix to
+// the result.
+//
+// The "while h < length(input)" line in the specification becomes "for
+// remaining != 0" in the Go code, because len(s) in Go is in bytes, not runes.
+func encode(prefix, s string) (string, error) {
+       output := make([]byte, len(prefix), len(prefix)+1+2*len(s))
+       copy(output, prefix)
+       delta, n, bias := int32(0), initialN, initialBias
+       b, remaining := int32(0), int32(0)
+       for _, r := range s {
+               if r < 0x80 {
+                       b++
+                       output = append(output, byte(r))
+               } else {
+                       remaining++
+               }
+       }
+       h := b
+       if b > 0 {
+               output = append(output, '-')
+       }
+       for remaining != 0 {
+               m := int32(0x7fffffff)
+               for _, r := range s {
+                       if m > r && r >= n {
+                               m = r
+                       }
+               }
+               delta += (m - n) * (h + 1)
+               if delta < 0 {
+                       return "", punyError(s)
+               }
+               n = m
+               for _, r := range s {
+                       if r < n {
+                               delta++
+                               if delta < 0 {
+                                       return "", punyError(s)
+                               }
+                               continue
+                       }
+                       if r > n {
+                               continue
+                       }
+                       q := delta
+                       for k := base; ; k += base {
+                               t := k - bias
+                               if t < tmin {
+                                       t = tmin
+                               } else if t > tmax {
+                                       t = tmax
+                               }
+                               if q < t {
+                                       break
+                               }
+                               output = append(output, encodeDigit(t+(q-t)%(base-t)))
+                               q = (q - t) / (base - t)
+                       }
+                       output = append(output, encodeDigit(q))
+                       bias = adapt(delta, h+1, h == b)
+                       delta = 0
+                       h++
+                       remaining--
+               }
+               delta++
+               n++
+       }
+       return string(output), nil
+}
+
+func decodeDigit(x byte) (digit int32, ok bool) {
+       switch {
+       case '0' <= x && x <= '9':
+               return int32(x - ('0' - 26)), true
+       case 'A' <= x && x <= 'Z':
+               return int32(x - 'A'), true
+       case 'a' <= x && x <= 'z':
+               return int32(x - 'a'), true
+       }
+       return 0, false
+}
+
+func encodeDigit(digit int32) byte {
+       switch {
+       case 0 <= digit && digit < 26:
+               return byte(digit + 'a')
+       case 26 <= digit && digit < 36:
+               return byte(digit + ('0' - 26))
+       }
+       panic("idna: internal error in punycode encoding")
+}
+
+// adapt is the bias adaptation function specified in section 6.1.
+func adapt(delta, numPoints int32, firstTime bool) int32 {
+       if firstTime {
+               delta /= damp
+       } else {
+               delta /= 2
+       }
+       delta += delta / numPoints
+       k := int32(0)
+       for delta > ((base-tmin)*tmax)/2 {
+               delta /= base - tmin
+               k += base
+       }
+       return k + (base-tmin+1)*delta/(delta+skew)
+}
diff --git a/vendor/golang.org/x/net/idna/tables10.0.0.go b/vendor/golang.org/x/net/idna/tables10.0.0.go
new file mode 100644 (file)
index 0000000..54fddb4
--- /dev/null
@@ -0,0 +1,4559 @@
+// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT.
+
+// +build go1.10,!go1.13
+
+package idna
+
+// UnicodeVersion is the Unicode version from which the tables in this package are derived.
+const UnicodeVersion = "10.0.0"
+
+var mappings string = "" + // Size: 8175 bytes
+       "\x00\x01 \x03 ̈\x01a\x03 ̄\x012\x013\x03 ́\x03 ̧\x011\x01o\x051⁄4\x051⁄2" +
+       "\x053⁄4\x03i̇\x03l·\x03ʼn\x01s\x03dž\x03ⱥ\x03ⱦ\x01h\x01j\x01r\x01w\x01y" +
+       "\x03 ̆\x03 ̇\x03 ̊\x03 ̨\x03 ̃\x03 ̋\x01l\x01x\x04̈́\x03 ι\x01;\x05 ̈́" +
+       "\x04եւ\x04اٴ\x04وٴ\x04ۇٴ\x04يٴ\x06क़\x06ख़\x06ग़\x06ज़\x06ड़\x06ढ़\x06फ़" +
+       "\x06य़\x06ড়\x06ঢ়\x06য়\x06ਲ਼\x06ਸ਼\x06ਖ਼\x06ਗ਼\x06ਜ਼\x06ਫ਼\x06ଡ଼\x06ଢ଼" +
+       "\x06ํา\x06ໍາ\x06ຫນ\x06ຫມ\x06གྷ\x06ཌྷ\x06དྷ\x06བྷ\x06ཛྷ\x06ཀྵ\x06ཱི\x06ཱུ" +
+       "\x06ྲྀ\x09ྲཱྀ\x06ླྀ\x09ླཱྀ\x06ཱྀ\x06ྒྷ\x06ྜྷ\x06ྡྷ\x06ྦྷ\x06ྫྷ\x06ྐྵ\x02" +
+       "в\x02д\x02о\x02с\x02т\x02ъ\x02ѣ\x02æ\x01b\x01d\x01e\x02ǝ\x01g\x01i\x01k" +
+       "\x01m\x01n\x02ȣ\x01p\x01t\x01u\x02ɐ\x02ɑ\x02ə\x02ɛ\x02ɜ\x02ŋ\x02ɔ\x02ɯ" +
+       "\x01v\x02β\x02γ\x02δ\x02φ\x02χ\x02ρ\x02н\x02ɒ\x01c\x02ɕ\x02ð\x01f\x02ɟ" +
+       "\x02ɡ\x02ɥ\x02ɨ\x02ɩ\x02ɪ\x02ʝ\x02ɭ\x02ʟ\x02ɱ\x02ɰ\x02ɲ\x02ɳ\x02ɴ\x02ɵ" +
+       "\x02ɸ\x02ʂ\x02ʃ\x02ƫ\x02ʉ\x02ʊ\x02ʋ\x02ʌ\x01z\x02ʐ\x02ʑ\x02ʒ\x02θ\x02ss" +
+       "\x02ά\x02έ\x02ή\x02ί\x02ό\x02ύ\x02ώ\x05ἀι\x05ἁι\x05ἂι\x05ἃι\x05ἄι\x05ἅι" +
+       "\x05ἆι\x05ἇι\x05ἠι\x05ἡι\x05ἢι\x05ἣι\x05ἤι\x05ἥι\x05ἦι\x05ἧι\x05ὠι\x05ὡι" +
+       "\x05ὢι\x05ὣι\x05ὤι\x05ὥι\x05ὦι\x05ὧι\x05ὰι\x04αι\x04άι\x05ᾶι\x02ι\x05 ̈͂" +
+       "\x05ὴι\x04ηι\x04ήι\x05ῆι\x05 ̓̀\x05 ̓́\x05 ̓͂\x02ΐ\x05 ̔̀\x05 ̔́\x05 ̔͂" +
+       "\x02ΰ\x05 ̈̀\x01`\x05ὼι\x04ωι\x04ώι\x05ῶι\x06′′\x09′′′\x06‵‵\x09‵‵‵\x02!" +
+       "!\x02??\x02?!\x02!?\x0c′′′′\x010\x014\x015\x016\x017\x018\x019\x01+\x01=" +
+       "\x01(\x01)\x02rs\x02ħ\x02no\x01q\x02sm\x02tm\x02ω\x02å\x02א\x02ב\x02ג" +
+       "\x02ד\x02π\x051⁄7\x051⁄9\x061⁄10\x051⁄3\x052⁄3\x051⁄5\x052⁄5\x053⁄5\x054" +
+       "⁄5\x051⁄6\x055⁄6\x051⁄8\x053⁄8\x055⁄8\x057⁄8\x041⁄\x02ii\x02iv\x02vi" +
+       "\x04viii\x02ix\x02xi\x050⁄3\x06∫∫\x09∫∫∫\x06∮∮\x09∮∮∮\x0210\x0211\x0212" +
+       "\x0213\x0214\x0215\x0216\x0217\x0218\x0219\x0220\x04(10)\x04(11)\x04(12)" +
+       "\x04(13)\x04(14)\x04(15)\x04(16)\x04(17)\x04(18)\x04(19)\x04(20)\x0c∫∫∫∫" +
+       "\x02==\x05⫝̸\x02ɫ\x02ɽ\x02ȿ\x02ɀ\x01.\x04 ゙\x04 ゚\x06より\x06コト\x05(ᄀ)\x05" +
+       "(ᄂ)\x05(ᄃ)\x05(ᄅ)\x05(ᄆ)\x05(ᄇ)\x05(ᄉ)\x05(ᄋ)\x05(ᄌ)\x05(ᄎ)\x05(ᄏ)\x05(ᄐ" +
+       ")\x05(ᄑ)\x05(ᄒ)\x05(가)\x05(나)\x05(다)\x05(라)\x05(마)\x05(바)\x05(사)\x05(아)" +
+       "\x05(자)\x05(차)\x05(카)\x05(타)\x05(파)\x05(하)\x05(주)\x08(오전)\x08(오후)\x05(一)" +
+       "\x05(二)\x05(三)\x05(四)\x05(五)\x05(六)\x05(七)\x05(八)\x05(九)\x05(十)\x05(月)" +
+       "\x05(火)\x05(水)\x05(木)\x05(金)\x05(土)\x05(日)\x05(株)\x05(有)\x05(社)\x05(名)" +
+       "\x05(特)\x05(財)\x05(祝)\x05(労)\x05(代)\x05(呼)\x05(学)\x05(監)\x05(企)\x05(資)" +
+       "\x05(協)\x05(祭)\x05(休)\x05(自)\x05(至)\x0221\x0222\x0223\x0224\x0225\x0226" +
+       "\x0227\x0228\x0229\x0230\x0231\x0232\x0233\x0234\x0235\x06참고\x06주의\x0236" +
+       "\x0237\x0238\x0239\x0240\x0241\x0242\x0243\x0244\x0245\x0246\x0247\x0248" +
+       "\x0249\x0250\x041月\x042月\x043月\x044月\x045月\x046月\x047月\x048月\x049月\x0510" +
+       "月\x0511月\x0512月\x02hg\x02ev\x0cアパート\x0cアルファ\x0cアンペア\x09アール\x0cイニング\x09" +
+       "インチ\x09ウォン\x0fエスクード\x0cエーカー\x09オンス\x09オーム\x09カイリ\x0cカラット\x0cカロリー\x09ガロ" +
+       "ン\x09ガンマ\x06ギガ\x09ギニー\x0cキュリー\x0cギルダー\x06キロ\x0fキログラム\x12キロメートル\x0fキロワッ" +
+       "ト\x09グラム\x0fグラムトン\x0fクルゼイロ\x0cクローネ\x09ケース\x09コルナ\x09コーポ\x0cサイクル\x0fサンチ" +
+       "ーム\x0cシリング\x09センチ\x09セント\x09ダース\x06デシ\x06ドル\x06トン\x06ナノ\x09ノット\x09ハイツ" +
+       "\x0fパーセント\x09パーツ\x0cバーレル\x0fピアストル\x09ピクル\x06ピコ\x06ビル\x0fファラッド\x0cフィート" +
+       "\x0fブッシェル\x09フラン\x0fヘクタール\x06ペソ\x09ペニヒ\x09ヘルツ\x09ペンス\x09ページ\x09ベータ\x0cポイ" +
+       "ント\x09ボルト\x06ホン\x09ポンド\x09ホール\x09ホーン\x0cマイクロ\x09マイル\x09マッハ\x09マルク\x0fマ" +
+       "ンション\x0cミクロン\x06ミリ\x0fミリバール\x06メガ\x0cメガトン\x0cメートル\x09ヤード\x09ヤール\x09ユアン" +
+       "\x0cリットル\x06リラ\x09ルピー\x0cルーブル\x06レム\x0fレントゲン\x09ワット\x040点\x041点\x042点" +
+       "\x043点\x044点\x045点\x046点\x047点\x048点\x049点\x0510点\x0511点\x0512点\x0513点" +
+       "\x0514点\x0515点\x0516点\x0517点\x0518点\x0519点\x0520点\x0521点\x0522点\x0523点" +
+       "\x0524点\x02da\x02au\x02ov\x02pc\x02dm\x02iu\x06平成\x06昭和\x06大正\x06明治\x0c株" +
+       "式会社\x02pa\x02na\x02ma\x02ka\x02kb\x02mb\x02gb\x04kcal\x02pf\x02nf\x02m" +
+       "g\x02kg\x02hz\x02ml\x02dl\x02kl\x02fm\x02nm\x02mm\x02cm\x02km\x02m2\x02m" +
+       "3\x05m∕s\x06m∕s2\x07rad∕s\x08rad∕s2\x02ps\x02ns\x02ms\x02pv\x02nv\x02mv" +
+       "\x02kv\x02pw\x02nw\x02mw\x02kw\x02bq\x02cc\x02cd\x06c∕kg\x02db\x02gy\x02" +
+       "ha\x02hp\x02in\x02kk\x02kt\x02lm\x02ln\x02lx\x02ph\x02pr\x02sr\x02sv\x02" +
+       "wb\x05v∕m\x05a∕m\x041日\x042日\x043日\x044日\x045日\x046日\x047日\x048日\x049日" +
+       "\x0510日\x0511日\x0512日\x0513日\x0514日\x0515日\x0516日\x0517日\x0518日\x0519日" +
+       "\x0520日\x0521日\x0522日\x0523日\x0524日\x0525日\x0526日\x0527日\x0528日\x0529日" +
+       "\x0530日\x0531日\x02ь\x02ɦ\x02ɬ\x02ʞ\x02ʇ\x02œ\x04𤋮\x04𢡊\x04𢡄\x04𣏕\x04𥉉" +
+       "\x04𥳐\x04𧻓\x02ff\x02fi\x02fl\x02st\x04մն\x04մե\x04մի\x04վն\x04մխ\x04יִ" +
+       "\x04ײַ\x02ע\x02ה\x02כ\x02ל\x02ם\x02ר\x02ת\x04שׁ\x04שׂ\x06שּׁ\x06שּׂ\x04א" +
+       "ַ\x04אָ\x04אּ\x04בּ\x04גּ\x04דּ\x04הּ\x04וּ\x04זּ\x04טּ\x04יּ\x04ךּ\x04" +
+       "כּ\x04לּ\x04מּ\x04נּ\x04סּ\x04ףּ\x04פּ\x04צּ\x04קּ\x04רּ\x04שּ\x04תּ" +
+       "\x04וֹ\x04בֿ\x04כֿ\x04פֿ\x04אל\x02ٱ\x02ٻ\x02پ\x02ڀ\x02ٺ\x02ٿ\x02ٹ\x02ڤ" +
+       "\x02ڦ\x02ڄ\x02ڃ\x02چ\x02ڇ\x02ڍ\x02ڌ\x02ڎ\x02ڈ\x02ژ\x02ڑ\x02ک\x02گ\x02ڳ" +
+       "\x02ڱ\x02ں\x02ڻ\x02ۀ\x02ہ\x02ھ\x02ے\x02ۓ\x02ڭ\x02ۇ\x02ۆ\x02ۈ\x02ۋ\x02ۅ" +
+       "\x02ۉ\x02ې\x02ى\x04ئا\x04ئە\x04ئو\x04ئۇ\x04ئۆ\x04ئۈ\x04ئې\x04ئى\x02ی\x04" +
+       "ئج\x04ئح\x04ئم\x04ئي\x04بج\x04بح\x04بخ\x04بم\x04بى\x04بي\x04تج\x04تح" +
+       "\x04تخ\x04تم\x04تى\x04تي\x04ثج\x04ثم\x04ثى\x04ثي\x04جح\x04جم\x04حج\x04حم" +
+       "\x04خج\x04خح\x04خم\x04سج\x04سح\x04سخ\x04سم\x04صح\x04صم\x04ضج\x04ضح\x04ضخ" +
+       "\x04ضم\x04طح\x04طم\x04ظم\x04عج\x04عم\x04غج\x04غم\x04فج\x04فح\x04فخ\x04فم" +
+       "\x04فى\x04في\x04قح\x04قم\x04قى\x04قي\x04كا\x04كج\x04كح\x04كخ\x04كل\x04كم" +
+       "\x04كى\x04كي\x04لج\x04لح\x04لخ\x04لم\x04لى\x04لي\x04مج\x04مح\x04مخ\x04مم" +
+       "\x04مى\x04مي\x04نج\x04نح\x04نخ\x04نم\x04نى\x04ني\x04هج\x04هم\x04هى\x04هي" +
+       "\x04يج\x04يح\x04يخ\x04يم\x04يى\x04يي\x04ذٰ\x04رٰ\x04ىٰ\x05 ٌّ\x05 ٍّ\x05" +
+       " َّ\x05 ُّ\x05 ِّ\x05 ّٰ\x04ئر\x04ئز\x04ئن\x04بر\x04بز\x04بن\x04تر\x04تز" +
+       "\x04تن\x04ثر\x04ثز\x04ثن\x04ما\x04نر\x04نز\x04نن\x04ير\x04يز\x04ين\x04ئخ" +
+       "\x04ئه\x04به\x04ته\x04صخ\x04له\x04نه\x04هٰ\x04يه\x04ثه\x04سه\x04شم\x04شه" +
+       "\x06ـَّ\x06ـُّ\x06ـِّ\x04طى\x04طي\x04عى\x04عي\x04غى\x04غي\x04سى\x04سي" +
+       "\x04شى\x04شي\x04حى\x04حي\x04جى\x04جي\x04خى\x04خي\x04صى\x04صي\x04ضى\x04ضي" +
+       "\x04شج\x04شح\x04شخ\x04شر\x04سر\x04صر\x04ضر\x04اً\x06تجم\x06تحج\x06تحم" +
+       "\x06تخم\x06تمج\x06تمح\x06تمخ\x06جمح\x06حمي\x06حمى\x06سحج\x06سجح\x06سجى" +
+       "\x06سمح\x06سمج\x06سمم\x06صحح\x06صمم\x06شحم\x06شجي\x06شمخ\x06شمم\x06ضحى" +
+       "\x06ضخم\x06طمح\x06طمم\x06طمي\x06عجم\x06عمم\x06عمى\x06غمم\x06غمي\x06غمى" +
+       "\x06فخم\x06قمح\x06قمم\x06لحم\x06لحي\x06لحى\x06لجج\x06لخم\x06لمح\x06محج" +
+       "\x06محم\x06محي\x06مجح\x06مجم\x06مخج\x06مخم\x06مجخ\x06همج\x06همم\x06نحم" +
+       "\x06نحى\x06نجم\x06نجى\x06نمي\x06نمى\x06يمم\x06بخي\x06تجي\x06تجى\x06تخي" +
+       "\x06تخى\x06تمي\x06تمى\x06جمي\x06جحى\x06جمى\x06سخى\x06صحي\x06شحي\x06ضحي" +
+       "\x06لجي\x06لمي\x06يحي\x06يجي\x06يمي\x06ممي\x06قمي\x06نحي\x06عمي\x06كمي" +
+       "\x06نجح\x06مخي\x06لجم\x06كمم\x06جحي\x06حجي\x06مجي\x06فمي\x06بحي\x06سخي" +
+       "\x06نجي\x06صلے\x06قلے\x08الله\x08اكبر\x08محمد\x08صلعم\x08رسول\x08عليه" +
+       "\x08وسلم\x06صلى!صلى الله عليه وسلم\x0fجل جلاله\x08ریال\x01,\x01:\x01!" +
+       "\x01?\x01_\x01{\x01}\x01[\x01]\x01#\x01&\x01*\x01-\x01<\x01>\x01\\\x01$" +
+       "\x01%\x01@\x04ـً\x04ـَ\x04ـُ\x04ـِ\x04ـّ\x04ـْ\x02ء\x02آ\x02أ\x02ؤ\x02إ" +
+       "\x02ئ\x02ا\x02ب\x02ة\x02ت\x02ث\x02ج\x02ح\x02خ\x02د\x02ذ\x02ر\x02ز\x02س" +
+       "\x02ش\x02ص\x02ض\x02ط\x02ظ\x02ع\x02غ\x02ف\x02ق\x02ك\x02ل\x02م\x02ن\x02ه" +
+       "\x02و\x02ي\x04لآ\x04لأ\x04لإ\x04لا\x01\x22\x01'\x01/\x01^\x01|\x01~\x02¢" +
+       "\x02£\x02¬\x02¦\x02¥\x08𝅗𝅥\x08𝅘𝅥\x0c𝅘𝅥𝅮\x0c𝅘𝅥𝅯\x0c𝅘𝅥𝅰\x0c𝅘𝅥𝅱\x0c𝅘𝅥𝅲\x08𝆹" +
+       "𝅥\x08𝆺𝅥\x0c𝆹𝅥𝅮\x0c𝆺𝅥𝅮\x0c𝆹𝅥𝅯\x0c𝆺𝅥𝅯\x02ı\x02ȷ\x02α\x02ε\x02ζ\x02η\x02" +
+       "κ\x02λ\x02μ\x02ν\x02ξ\x02ο\x02σ\x02τ\x02υ\x02ψ\x03∇\x03∂\x02ϝ\x02ٮ\x02ڡ" +
+       "\x02ٯ\x020,\x021,\x022,\x023,\x024,\x025,\x026,\x027,\x028,\x029,\x03(a)" +
+       "\x03(b)\x03(c)\x03(d)\x03(e)\x03(f)\x03(g)\x03(h)\x03(i)\x03(j)\x03(k)" +
+       "\x03(l)\x03(m)\x03(n)\x03(o)\x03(p)\x03(q)\x03(r)\x03(s)\x03(t)\x03(u)" +
+       "\x03(v)\x03(w)\x03(x)\x03(y)\x03(z)\x07〔s〕\x02wz\x02hv\x02sd\x03ppv\x02w" +
+       "c\x02mc\x02md\x02dj\x06ほか\x06ココ\x03サ\x03手\x03字\x03双\x03デ\x03二\x03多\x03解" +
+       "\x03天\x03交\x03映\x03無\x03料\x03前\x03後\x03再\x03新\x03初\x03終\x03生\x03販\x03声" +
+       "\x03吹\x03演\x03投\x03捕\x03一\x03三\x03遊\x03左\x03中\x03右\x03指\x03走\x03打\x03禁" +
+       "\x03空\x03合\x03満\x03有\x03月\x03申\x03割\x03営\x03配\x09〔本〕\x09〔三〕\x09〔二〕\x09〔安" +
+       "〕\x09〔点〕\x09〔打〕\x09〔盗〕\x09〔勝〕\x09〔敗〕\x03得\x03可\x03丽\x03丸\x03乁\x03你\x03" +
+       "侮\x03侻\x03倂\x03偺\x03備\x03僧\x03像\x03㒞\x03免\x03兔\x03兤\x03具\x03㒹\x03內\x03" +
+       "冗\x03冤\x03仌\x03冬\x03况\x03凵\x03刃\x03㓟\x03刻\x03剆\x03剷\x03㔕\x03勇\x03勉\x03" +
+       "勤\x03勺\x03包\x03匆\x03北\x03卉\x03卑\x03博\x03即\x03卽\x03卿\x03灰\x03及\x03叟\x03" +
+       "叫\x03叱\x03吆\x03咞\x03吸\x03呈\x03周\x03咢\x03哶\x03唐\x03啓\x03啣\x03善\x03喙\x03" +
+       "喫\x03喳\x03嗂\x03圖\x03嘆\x03圗\x03噑\x03噴\x03切\x03壮\x03城\x03埴\x03堍\x03型\x03" +
+       "堲\x03報\x03墬\x03売\x03壷\x03夆\x03夢\x03奢\x03姬\x03娛\x03娧\x03姘\x03婦\x03㛮\x03" +
+       "嬈\x03嬾\x03寃\x03寘\x03寧\x03寳\x03寿\x03将\x03尢\x03㞁\x03屠\x03屮\x03峀\x03岍\x03" +
+       "嵃\x03嵮\x03嵫\x03嵼\x03巡\x03巢\x03㠯\x03巽\x03帨\x03帽\x03幩\x03㡢\x03㡼\x03庰\x03" +
+       "庳\x03庶\x03廊\x03廾\x03舁\x03弢\x03㣇\x03形\x03彫\x03㣣\x03徚\x03忍\x03志\x03忹\x03" +
+       "悁\x03㤺\x03㤜\x03悔\x03惇\x03慈\x03慌\x03慎\x03慺\x03憎\x03憲\x03憤\x03憯\x03懞\x03" +
+       "懲\x03懶\x03成\x03戛\x03扝\x03抱\x03拔\x03捐\x03挽\x03拼\x03捨\x03掃\x03揤\x03搢\x03" +
+       "揅\x03掩\x03㨮\x03摩\x03摾\x03撝\x03摷\x03㩬\x03敏\x03敬\x03旣\x03書\x03晉\x03㬙\x03" +
+       "暑\x03㬈\x03㫤\x03冒\x03冕\x03最\x03暜\x03肭\x03䏙\x03朗\x03望\x03朡\x03杞\x03杓\x03" +
+       "㭉\x03柺\x03枅\x03桒\x03梅\x03梎\x03栟\x03椔\x03㮝\x03楂\x03榣\x03槪\x03檨\x03櫛\x03" +
+       "㰘\x03次\x03歔\x03㱎\x03歲\x03殟\x03殺\x03殻\x03汎\x03沿\x03泍\x03汧\x03洖\x03派\x03" +
+       "海\x03流\x03浩\x03浸\x03涅\x03洴\x03港\x03湮\x03㴳\x03滋\x03滇\x03淹\x03潮\x03濆\x03" +
+       "瀹\x03瀞\x03瀛\x03㶖\x03灊\x03災\x03灷\x03炭\x03煅\x03熜\x03爨\x03爵\x03牐\x03犀\x03" +
+       "犕\x03獺\x03王\x03㺬\x03玥\x03㺸\x03瑇\x03瑜\x03瑱\x03璅\x03瓊\x03㼛\x03甤\x03甾\x03" +
+       "異\x03瘐\x03㿼\x03䀈\x03直\x03眞\x03真\x03睊\x03䀹\x03瞋\x03䁆\x03䂖\x03硎\x03碌\x03" +
+       "磌\x03䃣\x03祖\x03福\x03秫\x03䄯\x03穀\x03穊\x03穏\x03䈂\x03篆\x03築\x03䈧\x03糒\x03" +
+       "䊠\x03糨\x03糣\x03紀\x03絣\x03䌁\x03緇\x03縂\x03繅\x03䌴\x03䍙\x03罺\x03羕\x03翺\x03" +
+       "者\x03聠\x03聰\x03䏕\x03育\x03脃\x03䐋\x03脾\x03媵\x03舄\x03辞\x03䑫\x03芑\x03芋\x03" +
+       "芝\x03劳\x03花\x03芳\x03芽\x03苦\x03若\x03茝\x03荣\x03莭\x03茣\x03莽\x03菧\x03著\x03" +
+       "荓\x03菊\x03菌\x03菜\x03䔫\x03蓱\x03蓳\x03蔖\x03蕤\x03䕝\x03䕡\x03䕫\x03虐\x03虜\x03" +
+       "虧\x03虩\x03蚩\x03蚈\x03蜎\x03蛢\x03蝹\x03蜨\x03蝫\x03螆\x03蟡\x03蠁\x03䗹\x03衠\x03" +
+       "衣\x03裗\x03裞\x03䘵\x03裺\x03㒻\x03䚾\x03䛇\x03誠\x03諭\x03變\x03豕\x03貫\x03賁\x03" +
+       "贛\x03起\x03跋\x03趼\x03跰\x03軔\x03輸\x03邔\x03郱\x03鄑\x03鄛\x03鈸\x03鋗\x03鋘\x03" +
+       "鉼\x03鏹\x03鐕\x03開\x03䦕\x03閷\x03䧦\x03雃\x03嶲\x03霣\x03䩮\x03䩶\x03韠\x03䪲\x03" +
+       "頋\x03頩\x03飢\x03䬳\x03餩\x03馧\x03駂\x03駾\x03䯎\x03鬒\x03鱀\x03鳽\x03䳎\x03䳭\x03" +
+       "鵧\x03䳸\x03麻\x03䵖\x03黹\x03黾\x03鼅\x03鼏\x03鼖\x03鼻"
+
+var xorData string = "" + // Size: 4855 bytes
+       "\x02\x0c\x09\x02\xb0\xec\x02\xad\xd8\x02\xad\xd9\x02\x06\x07\x02\x0f\x12" +
+       "\x02\x0f\x1f\x02\x0f\x1d\x02\x01\x13\x02\x0f\x16\x02\x0f\x0b\x02\x0f3" +
+       "\x02\x0f7\x02\x0f?\x02\x0f/\x02\x0f*\x02\x0c&\x02\x0c*\x02\x0c;\x02\x0c9" +
+       "\x02\x0c%\x02\xab\xed\x02\xab\xe2\x02\xab\xe3\x02\xa9\xe0\x02\xa9\xe1" +
+       "\x02\xa9\xe6\x02\xa3\xcb\x02\xa3\xc8\x02\xa3\xc9\x02\x01#\x02\x01\x08" +
+       "\x02\x0e>\x02\x0e'\x02\x0f\x03\x02\x03\x0d\x02\x03\x09\x02\x03\x17\x02" +
+       "\x03\x0e\x02\x02\x03\x02\x011\x02\x01\x00\x02\x01\x10\x02\x03<\x02\x07" +
+       "\x0d\x02\x02\x0c\x02\x0c0\x02\x01\x03\x02\x01\x01\x02\x01 \x02\x01\x22" +
+       "\x02\x01)\x02\x01\x0a\x02\x01\x0c\x02\x02\x06\x02\x02\x02\x02\x03\x10" +
+       "\x03\x037 \x03\x0b+\x03\x02\x01\x04\x02\x01\x02\x02\x019\x02\x03\x1c\x02" +
+       "\x02$\x03\x80p$\x02\x03:\x02\x03\x0a\x03\xc1r.\x03\xc1r,\x03\xc1r\x02" +
+       "\x02\x02:\x02\x02>\x02\x02,\x02\x02\x10\x02\x02\x00\x03\xc1s<\x03\xc1s*" +
+       "\x03\xc2L$\x03\xc2L;\x02\x09)\x02\x0a\x19\x03\x83\xab\xe3\x03\x83\xab" +
+       "\xf2\x03 4\xe0\x03\x81\xab\xea\x03\x81\xab\xf3\x03 4\xef\x03\x96\xe1\xcd" +
+       "\x03\x84\xe5\xc3\x02\x0d\x11\x03\x8b\xec\xcb\x03\x94\xec\xcf\x03\x9a\xec" +
+       "\xc2\x03\x8b\xec\xdb\x03\x94\xec\xdf\x03\x9a\xec\xd2\x03\x01\x0c!\x03" +
+       "\x01\x0c#\x03ʠ\x9d\x03ʣ\x9c\x03ʢ\x9f\x03ʥ\x9e\x03ʤ\x91\x03ʧ\x90\x03ʦ\x93" +
+       "\x03ʩ\x92\x03ʨ\x95\x03\xca\xf3\xb5\x03\xca\xf0\xb4\x03\xca\xf1\xb7\x03" +
+       "\xca\xf6\xb6\x03\xca\xf7\x89\x03\xca\xf4\x88\x03\xca\xf5\x8b\x03\xca\xfa" +
+       "\x8a\x03\xca\xfb\x8d\x03\xca\xf8\x8c\x03\xca\xf9\x8f\x03\xca\xfe\x8e\x03" +
+       "\xca\xff\x81\x03\xca\xfc\x80\x03\xca\xfd\x83\x03\xca\xe2\x82\x03\xca\xe3" +
+       "\x85\x03\xca\xe0\x84\x03\xca\xe1\x87\x03\xca\xe6\x86\x03\xca\xe7\x99\x03" +
+       "\xca\xe4\x98\x03\xca\xe5\x9b\x03\xca\xea\x9a\x03\xca\xeb\x9d\x03\xca\xe8" +
+       "\x9c\x03ؓ\x89\x03ߔ\x8b\x02\x010\x03\x03\x04\x1e\x03\x04\x15\x12\x03\x0b" +
+       "\x05,\x03\x06\x04\x00\x03\x06\x04)\x03\x06\x044\x03\x06\x04<\x03\x06\x05" +
+       "\x1d\x03\x06\x06\x00\x03\x06\x06\x0a\x03\x06\x06'\x03\x06\x062\x03\x0786" +
+       "\x03\x079/\x03\x079 \x03\x07:\x0e\x03\x07:\x1b\x03\x07:%\x03\x07;/\x03" +
+       "\x07;%\x03\x074\x11\x03\x076\x09\x03\x077*\x03\x070\x01\x03\x070\x0f\x03" +
+       "\x070.\x03\x071\x16\x03\x071\x04\x03\x0710\x03\x072\x18\x03\x072-\x03" +
+       "\x073\x14\x03\x073>\x03\x07'\x09\x03\x07 \x00\x03\x07\x1f\x0b\x03\x07" +
+       "\x18#\x03\x07\x18(\x03\x07\x186\x03\x07\x18\x03\x03\x07\x19\x16\x03\x07" +
+       "\x116\x03\x07\x12'\x03\x07\x13\x10\x03\x07\x0c&\x03\x07\x0c\x08\x03\x07" +
+       "\x0c\x13\x03\x07\x0d\x02\x03\x07\x0d\x1c\x03\x07\x0b5\x03\x07\x0b\x0a" +
+       "\x03\x07\x0b\x01\x03\x07\x0b\x0f\x03\x07\x05\x00\x03\x07\x05\x09\x03\x07" +
+       "\x05\x0b\x03\x07\x07\x01\x03\x07\x07\x08\x03\x07\x00<\x03\x07\x00+\x03" +
+       "\x07\x01)\x03\x07\x01\x1b\x03\x07\x01\x08\x03\x07\x03?\x03\x0445\x03\x04" +
+       "4\x08\x03\x0454\x03\x04)/\x03\x04)5\x03\x04+\x05\x03\x04+\x14\x03\x04+ " +
+       "\x03\x04+<\x03\x04*&\x03\x04*\x22\x03\x04&8\x03\x04!\x01\x03\x04!\x22" +
+       "\x03\x04\x11+\x03\x04\x10.\x03\x04\x104\x03\x04\x13=\x03\x04\x12\x04\x03" +
+       "\x04\x12\x0a\x03\x04\x0d\x1d\x03\x04\x0d\x07\x03\x04\x0d \x03\x05<>\x03" +
+       "\x055<\x03\x055!\x03\x055#\x03\x055&\x03\x054\x1d\x03\x054\x02\x03\x054" +
+       "\x07\x03\x0571\x03\x053\x1a\x03\x053\x16\x03\x05.<\x03\x05.\x07\x03\x05)" +
+       ":\x03\x05)<\x03\x05)\x0c\x03\x05)\x15\x03\x05+-\x03\x05+5\x03\x05$\x1e" +
+       "\x03\x05$\x14\x03\x05'\x04\x03\x05'\x14\x03\x05&\x02\x03\x05\x226\x03" +
+       "\x05\x22\x0c\x03\x05\x22\x1c\x03\x05\x19\x0a\x03\x05\x1b\x09\x03\x05\x1b" +
+       "\x0c\x03\x05\x14\x07\x03\x05\x16?\x03\x05\x16\x0c\x03\x05\x0c\x05\x03" +
+       "\x05\x0e\x0f\x03\x05\x01\x0e\x03\x05\x00(\x03\x05\x030\x03\x05\x03\x06" +
+       "\x03\x0a==\x03\x0a=1\x03\x0a=,\x03\x0a=\x0c\x03\x0a??\x03\x0a<\x08\x03" +
+       "\x0a9!\x03\x0a9)\x03\x0a97\x03\x0a99\x03\x0a6\x0a\x03\x0a6\x1c\x03\x0a6" +
+       "\x17\x03\x0a7'\x03\x0a78\x03\x0a73\x03\x0a'\x01\x03\x0a'&\x03\x0a\x1f" +
+       "\x0e\x03\x0a\x1f\x03\x03\x0a\x1f3\x03\x0a\x1b/\x03\x0a\x18\x19\x03\x0a" +
+       "\x19\x01\x03\x0a\x16\x14\x03\x0a\x0e\x22\x03\x0a\x0f\x10\x03\x0a\x0f\x02" +
+       "\x03\x0a\x0f \x03\x0a\x0c\x04\x03\x0a\x0b>\x03\x0a\x0b+\x03\x0a\x08/\x03" +
+       "\x0a\x046\x03\x0a\x05\x14\x03\x0a\x00\x04\x03\x0a\x00\x10\x03\x0a\x00" +
+       "\x14\x03\x0b<3\x03\x0b;*\x03\x0b9\x22\x03\x0b9)\x03\x0b97\x03\x0b+\x10" +
+       "\x03\x0b((\x03\x0b&5\x03\x0b$\x1c\x03\x0b$\x12\x03\x0b%\x04\x03\x0b#<" +
+       "\x03\x0b#0\x03\x0b#\x0d\x03\x0b#\x19\x03\x0b!:\x03\x0b!\x1f\x03\x0b!\x00" +
+       "\x03\x0b\x1e5\x03\x0b\x1c\x1d\x03\x0b\x1d-\x03\x0b\x1d(\x03\x0b\x18.\x03" +
+       "\x0b\x18 \x03\x0b\x18\x16\x03\x0b\x14\x13\x03\x0b\x15$\x03\x0b\x15\x22" +
+       "\x03\x0b\x12\x1b\x03\x0b\x12\x10\x03\x0b\x132\x03\x0b\x13=\x03\x0b\x12" +
+       "\x18\x03\x0b\x0c&\x03\x0b\x061\x03\x0b\x06:\x03\x0b\x05#\x03\x0b\x05<" +
+       "\x03\x0b\x04\x0b\x03\x0b\x04\x04\x03\x0b\x04\x1b\x03\x0b\x042\x03\x0b" +
+       "\x041\x03\x0b\x03\x03\x03\x0b\x03\x1d\x03\x0b\x03/\x03\x0b\x03+\x03\x0b" +
+       "\x02\x1b\x03\x0b\x02\x00\x03\x0b\x01\x1e\x03\x0b\x01\x08\x03\x0b\x015" +
+       "\x03\x06\x0d9\x03\x06\x0d=\x03\x06\x0d?\x03\x02\x001\x03\x02\x003\x03" +
+       "\x02\x02\x19\x03\x02\x006\x03\x02\x02\x1b\x03\x02\x004\x03\x02\x00<\x03" +
+       "\x02\x02\x0a\x03\x02\x02\x0e\x03\x02\x01\x1a\x03\x02\x01\x07\x03\x02\x01" +
+       "\x05\x03\x02\x01\x0b\x03\x02\x01%\x03\x02\x01\x0c\x03\x02\x01\x04\x03" +
+       "\x02\x01\x1c\x03\x02\x00.\x03\x02\x002\x03\x02\x00>\x03\x02\x00\x12\x03" +
+       "\x02\x00\x16\x03\x02\x011\x03\x02\x013\x03\x02\x02 \x03\x02\x02%\x03\x02" +
+       "\x02$\x03\x02\x028\x03\x02\x02;\x03\x02\x024\x03\x02\x012\x03\x02\x022" +
+       "\x03\x02\x02/\x03\x02\x01,\x03\x02\x01\x13\x03\x02\x01\x16\x03\x02\x01" +
+       "\x11\x03\x02\x01\x1e\x03\x02\x01\x15\x03\x02\x01\x17\x03\x02\x01\x0f\x03" +
+       "\x02\x01\x08\x03\x02\x00?\x03\x02\x03\x07\x03\x02\x03\x0d\x03\x02\x03" +
+       "\x13\x03\x02\x03\x1d\x03\x02\x03\x1f\x03\x02\x00\x03\x03\x02\x00\x0d\x03" +
+       "\x02\x00\x01\x03\x02\x00\x1b\x03\x02\x00\x19\x03\x02\x00\x18\x03\x02\x00" +
+       "\x13\x03\x02\x00/\x03\x07>\x12\x03\x07<\x1f\x03\x07>\x1d\x03\x06\x1d\x0e" +
+       "\x03\x07>\x1c\x03\x07>:\x03\x07>\x13\x03\x04\x12+\x03\x07?\x03\x03\x07>" +
+       "\x02\x03\x06\x224\x03\x06\x1a.\x03\x07<%\x03\x06\x1c\x0b\x03\x0609\x03" +
+       "\x05\x1f\x01\x03\x04'\x08\x03\x93\xfd\xf5\x03\x02\x0d \x03\x02\x0d#\x03" +
+       "\x02\x0d!\x03\x02\x0d&\x03\x02\x0d\x22\x03\x02\x0d/\x03\x02\x0d,\x03\x02" +
+       "\x0d$\x03\x02\x0d'\x03\x02\x0d%\x03\x02\x0d;\x03\x02\x0d=\x03\x02\x0d?" +
+       "\x03\x099.\x03\x08\x0b7\x03\x08\x02\x14\x03\x08\x14\x0d\x03\x08.:\x03" +
+       "\x089'\x03\x0f\x0b\x18\x03\x0f\x1c1\x03\x0f\x17&\x03\x0f9\x1f\x03\x0f0" +
+       "\x0c\x03\x0e\x0a9\x03\x0e\x056\x03\x0e\x1c#\x03\x0f\x13\x0e\x03\x072\x00" +
+       "\x03\x070\x0d\x03\x072\x0b\x03\x06\x11\x18\x03\x070\x10\x03\x06\x0f(\x03" +
+       "\x072\x05\x03\x06\x0f,\x03\x073\x15\x03\x06\x07\x08\x03\x05\x16\x02\x03" +
+       "\x04\x0b \x03\x05:8\x03\x05\x16%\x03\x0a\x0d\x1f\x03\x06\x16\x10\x03\x05" +
+       "\x1d5\x03\x05*;\x03\x05\x16\x1b\x03\x04.-\x03\x06\x1a\x19\x03\x04\x03," +
+       "\x03\x0b87\x03\x04/\x0a\x03\x06\x00,\x03\x04-\x01\x03\x04\x1e-\x03\x06/(" +
+       "\x03\x0a\x0b5\x03\x06\x0e7\x03\x06\x07.\x03\x0597\x03\x0a*%\x03\x0760" +
+       "\x03\x06\x0c;\x03\x05'\x00\x03\x072.\x03\x072\x08\x03\x06=\x01\x03\x06" +
+       "\x05\x1b\x03\x06\x06\x12\x03\x06$=\x03\x06'\x0d\x03\x04\x11\x0f\x03\x076" +
+       ",\x03\x06\x07;\x03\x06.,\x03\x86\xf9\xea\x03\x8f\xff\xeb\x02\x092\x02" +
+       "\x095\x02\x094\x02\x09;\x02\x09>\x02\x098\x02\x09*\x02\x09/\x02\x09,\x02" +
+       "\x09%\x02\x09&\x02\x09#\x02\x09 \x02\x08!\x02\x08%\x02\x08$\x02\x08+\x02" +
+       "\x08.\x02\x08*\x02\x08&\x02\x088\x02\x08>\x02\x084\x02\x086\x02\x080\x02" +
+       "\x08\x10\x02\x08\x17\x02\x08\x12\x02\x08\x1d\x02\x08\x1f\x02\x08\x13\x02" +
+       "\x08\x15\x02\x08\x14\x02\x08\x0c\x03\x8b\xfd\xd0\x03\x81\xec\xc6\x03\x87" +
+       "\xe0\x8a\x03-2\xe3\x03\x80\xef\xe4\x03-2\xea\x03\x88\xe6\xeb\x03\x8e\xe6" +
+       "\xe8\x03\x84\xe6\xe9\x03\x97\xe6\xee\x03-2\xf9\x03-2\xf6\x03\x8e\xe3\xad" +
+       "\x03\x80\xe3\x92\x03\x88\xe3\x90\x03\x8e\xe3\x90\x03\x80\xe3\x97\x03\x88" +
+       "\xe3\x95\x03\x88\xfe\xcb\x03\x8e\xfe\xca\x03\x84\xfe\xcd\x03\x91\xef\xc9" +
+       "\x03-2\xc1\x03-2\xc0\x03-2\xcb\x03\x88@\x09\x03\x8e@\x08\x03\x8f\xe0\xf5" +
+       "\x03\x8e\xe6\xf9\x03\x8e\xe0\xfa\x03\x93\xff\xf4\x03\x84\xee\xd3\x03\x0b" +
+       "(\x04\x023 \x021;\x02\x01*\x03\x0b#\x10\x03\x0b 0\x03\x0b!\x10\x03\x0b!0" +
+       "\x03\x07\x15\x08\x03\x09?5\x03\x07\x1f\x08\x03\x07\x17\x0b\x03\x09\x1f" +
+       "\x15\x03\x0b\x1c7\x03\x0a+#\x03\x06\x1a\x1b\x03\x06\x1a\x14\x03\x0a\x01" +
+       "\x18\x03\x06#\x1b\x03\x0a2\x0c\x03\x0a\x01\x04\x03\x09#;\x03\x08='\x03" +
+       "\x08\x1a\x0a\x03\x07</\x03\x07:+\x03\x07\x07*\x03\x06&\x1c\x03\x09\x0c" +
+       "\x16\x03\x09\x10\x0e\x03\x08'\x0f\x03\x08+\x09\x03\x074%\x03\x06!3\x03" +
+       "\x06\x03+\x03\x0b\x1e\x19\x03\x0a))\x03\x09\x08\x19\x03\x08,\x05\x03\x07" +
+       "<2\x03\x06\x1c>\x03\x0a\x111\x03\x09\x1b\x09\x03\x073.\x03\x07\x01\x00" +
+       "\x03\x09/,\x03\x07#>\x03\x07\x048\x03\x0a\x1f\x22\x03\x098>\x03\x09\x11" +
+       "\x00\x03\x08/\x17\x03\x06'\x22\x03\x0b\x1a+\x03\x0a\x22\x19\x03\x0a/1" +
+       "\x03\x0974\x03\x09\x0f\x22\x03\x08,\x22\x03\x08?\x14\x03\x07$5\x03\x07<3" +
+       "\x03\x07=*\x03\x07\x13\x18\x03\x068\x0a\x03\x06\x09\x16\x03\x06\x13\x00" +
+       "\x03\x08\x067\x03\x08\x01\x03\x03\x08\x12\x1d\x03\x07+7\x03\x06(;\x03" +
+       "\x06\x1c?\x03\x07\x0e\x17\x03\x0a\x06\x1d\x03\x0a\x19\x07\x03\x08\x14$" +
+       "\x03\x07$;\x03\x08,$\x03\x08\x06\x0d\x03\x07\x16\x0a\x03\x06>>\x03\x0a" +
+       "\x06\x12\x03\x0a\x14)\x03\x09\x0d\x1f\x03\x09\x12\x17\x03\x09\x19\x01" +
+       "\x03\x08\x11 \x03\x08\x1d'\x03\x06<\x1a\x03\x0a.\x00\x03\x07'\x18\x03" +
+       "\x0a\x22\x08\x03\x08\x0d\x0a\x03\x08\x13)\x03\x07*)\x03\x06<,\x03\x07" +
+       "\x0b\x1a\x03\x09.\x14\x03\x09\x0d\x1e\x03\x07\x0e#\x03\x0b\x1d'\x03\x0a" +
+       "\x0a8\x03\x09%2\x03\x08+&\x03\x080\x12\x03\x0a)4\x03\x08\x06\x1f\x03\x0b" +
+       "\x1b\x1a\x03\x0a\x1b\x0f\x03\x0b\x1d*\x03\x09\x16$\x03\x090\x11\x03\x08" +
+       "\x11\x08\x03\x0a*(\x03\x0a\x042\x03\x089,\x03\x074'\x03\x07\x0f\x05\x03" +
+       "\x09\x0b\x0a\x03\x07\x1b\x01\x03\x09\x17:\x03\x09.\x0d\x03\x07.\x11\x03" +
+       "\x09+\x15\x03\x080\x13\x03\x0b\x1f\x19\x03\x0a \x11\x03\x0a\x220\x03\x09" +
+       "\x07;\x03\x08\x16\x1c\x03\x07,\x13\x03\x07\x0e/\x03\x06\x221\x03\x0a." +
+       "\x0a\x03\x0a7\x02\x03\x0a\x032\x03\x0a\x1d.\x03\x091\x06\x03\x09\x19:" +
+       "\x03\x08\x02/\x03\x060+\x03\x06\x0f-\x03\x06\x1c\x1f\x03\x06\x1d\x07\x03" +
+       "\x0a,\x11\x03\x09=\x0d\x03\x09\x0b;\x03\x07\x1b/\x03\x0a\x1f:\x03\x09 " +
+       "\x1f\x03\x09.\x10\x03\x094\x0b\x03\x09\x1a1\x03\x08#\x1a\x03\x084\x1d" +
+       "\x03\x08\x01\x1f\x03\x08\x11\x22\x03\x07'8\x03\x07\x1a>\x03\x0757\x03" +
+       "\x06&9\x03\x06+\x11\x03\x0a.\x0b\x03\x0a,>\x03\x0a4#\x03\x08%\x17\x03" +
+       "\x07\x05\x22\x03\x07\x0c\x0b\x03\x0a\x1d+\x03\x0a\x19\x16\x03\x09+\x1f" +
+       "\x03\x09\x08\x0b\x03\x08\x16\x18\x03\x08+\x12\x03\x0b\x1d\x0c\x03\x0a=" +
+       "\x10\x03\x0a\x09\x0d\x03\x0a\x10\x11\x03\x09&0\x03\x08(\x1f\x03\x087\x07" +
+       "\x03\x08\x185\x03\x07'6\x03\x06.\x05\x03\x06=\x04\x03\x06;;\x03\x06\x06," +
+       "\x03\x0b\x18>\x03\x08\x00\x18\x03\x06 \x03\x03\x06<\x00\x03\x09%\x18\x03" +
+       "\x0b\x1c<\x03\x0a%!\x03\x0a\x09\x12\x03\x0a\x16\x02\x03\x090'\x03\x09" +
+       "\x0e=\x03\x08 \x0e\x03\x08>\x03\x03\x074>\x03\x06&?\x03\x06\x19\x09\x03" +
+       "\x06?(\x03\x0a-\x0e\x03\x09:3\x03\x098:\x03\x09\x12\x0b\x03\x09\x1d\x17" +
+       "\x03\x087\x05\x03\x082\x14\x03\x08\x06%\x03\x08\x13\x1f\x03\x06\x06\x0e" +
+       "\x03\x0a\x22<\x03\x09/<\x03\x06>+\x03\x0a'?\x03\x0a\x13\x0c\x03\x09\x10<" +
+       "\x03\x07\x1b=\x03\x0a\x19\x13\x03\x09\x22\x1d\x03\x09\x07\x0d\x03\x08)" +
+       "\x1c\x03\x06=\x1a\x03\x0a/4\x03\x0a7\x11\x03\x0a\x16:\x03\x09?3\x03\x09:" +
+       "/\x03\x09\x05\x0a\x03\x09\x14\x06\x03\x087\x22\x03\x080\x07\x03\x08\x1a" +
+       "\x1f\x03\x07\x04(\x03\x07\x04\x09\x03\x06 %\x03\x06<\x08\x03\x0a+\x14" +
+       "\x03\x09\x1d\x16\x03\x0a70\x03\x08 >\x03\x0857\x03\x070\x0a\x03\x06=\x12" +
+       "\x03\x06\x16%\x03\x06\x1d,\x03\x099#\x03\x09\x10>\x03\x07 \x1e\x03\x08" +
+       "\x0c<\x03\x08\x0b\x18\x03\x08\x15+\x03\x08,:\x03\x08%\x22\x03\x07\x0a$" +
+       "\x03\x0b\x1c=\x03\x07+\x08\x03\x0a/\x05\x03\x0a \x07\x03\x0a\x12'\x03" +
+       "\x09#\x11\x03\x08\x1b\x15\x03\x0a\x06\x01\x03\x09\x1c\x1b\x03\x0922\x03" +
+       "\x07\x14<\x03\x07\x09\x04\x03\x061\x04\x03\x07\x0e\x01\x03\x0a\x13\x18" +
+       "\x03\x0a-\x0c\x03\x0a?\x0d\x03\x0a\x09\x0a\x03\x091&\x03\x0a/\x0b\x03" +
+       "\x08$<\x03\x083\x1d\x03\x08\x0c$\x03\x08\x0d\x07\x03\x08\x0d?\x03\x08" +
+       "\x0e\x14\x03\x065\x0a\x03\x08\x1a#\x03\x08\x16#\x03\x0702\x03\x07\x03" +
+       "\x1a\x03\x06(\x1d\x03\x06+\x1b\x03\x06\x0b\x05\x03\x06\x0b\x17\x03\x06" +
+       "\x0c\x04\x03\x06\x1e\x19\x03\x06+0\x03\x062\x18\x03\x0b\x16\x1e\x03\x0a+" +
+       "\x16\x03\x0a-?\x03\x0a#:\x03\x0a#\x10\x03\x0a%$\x03\x0a>+\x03\x0a01\x03" +
+       "\x0a1\x10\x03\x0a\x099\x03\x0a\x0a\x12\x03\x0a\x19\x1f\x03\x0a\x19\x12" +
+       "\x03\x09*)\x03\x09-\x16\x03\x09.1\x03\x09.2\x03\x09<\x0e\x03\x09> \x03" +
+       "\x093\x12\x03\x09\x0b\x01\x03\x09\x1c2\x03\x09\x11\x1c\x03\x09\x15%\x03" +
+       "\x08,&\x03\x08!\x22\x03\x089(\x03\x08\x0b\x1a\x03\x08\x0d2\x03\x08\x0c" +
+       "\x04\x03\x08\x0c\x06\x03\x08\x0c\x1f\x03\x08\x0c\x0c\x03\x08\x0f\x1f\x03" +
+       "\x08\x0f\x1d\x03\x08\x00\x14\x03\x08\x03\x14\x03\x08\x06\x16\x03\x08\x1e" +
+       "#\x03\x08\x11\x11\x03\x08\x10\x18\x03\x08\x14(\x03\x07)\x1e\x03\x07.1" +
+       "\x03\x07 $\x03\x07 '\x03\x078\x08\x03\x07\x0d0\x03\x07\x0f7\x03\x07\x05#" +
+       "\x03\x07\x05\x1a\x03\x07\x1a7\x03\x07\x1d-\x03\x07\x17\x10\x03\x06)\x1f" +
+       "\x03\x062\x0b\x03\x066\x16\x03\x06\x09\x11\x03\x09(\x1e\x03\x07!5\x03" +
+       "\x0b\x11\x16\x03\x0a/\x04\x03\x0a,\x1a\x03\x0b\x173\x03\x0a,1\x03\x0a/5" +
+       "\x03\x0a\x221\x03\x0a\x22\x0d\x03\x0a?%\x03\x0a<,\x03\x0a?#\x03\x0a>\x19" +
+       "\x03\x0a\x08&\x03\x0a\x0b\x0e\x03\x0a\x0c:\x03\x0a\x0c+\x03\x0a\x03\x22" +
+       "\x03\x0a\x06)\x03\x0a\x11\x10\x03\x0a\x11\x1a\x03\x0a\x17-\x03\x0a\x14(" +
+       "\x03\x09)\x1e\x03\x09/\x09\x03\x09.\x00\x03\x09,\x07\x03\x09/*\x03\x09-9" +
+       "\x03\x09\x228\x03\x09%\x09\x03\x09:\x12\x03\x09;\x1d\x03\x09?\x06\x03" +
+       "\x093%\x03\x096\x05\x03\x096\x08\x03\x097\x02\x03\x09\x07,\x03\x09\x04," +
+       "\x03\x09\x1f\x16\x03\x09\x11\x03\x03\x09\x11\x12\x03\x09\x168\x03\x08*" +
+       "\x05\x03\x08/2\x03\x084:\x03\x08\x22+\x03\x08 0\x03\x08&\x0a\x03\x08;" +
+       "\x10\x03\x08>$\x03\x08>\x18\x03\x0829\x03\x082:\x03\x081,\x03\x081<\x03" +
+       "\x081\x1c\x03\x087#\x03\x087*\x03\x08\x09'\x03\x08\x00\x1d\x03\x08\x05-" +
+       "\x03\x08\x1f4\x03\x08\x1d\x04\x03\x08\x16\x0f\x03\x07*7\x03\x07'!\x03" +
+       "\x07%\x1b\x03\x077\x0c\x03\x07\x0c1\x03\x07\x0c.\x03\x07\x00\x06\x03\x07" +
+       "\x01\x02\x03\x07\x010\x03\x07\x06=\x03\x07\x01\x03\x03\x07\x01\x13\x03" +
+       "\x07\x06\x06\x03\x07\x05\x0a\x03\x07\x1f\x09\x03\x07\x17:\x03\x06*1\x03" +
+       "\x06-\x1d\x03\x06\x223\x03\x062:\x03\x060$\x03\x066\x1e\x03\x064\x12\x03" +
+       "\x0645\x03\x06\x0b\x00\x03\x06\x0b7\x03\x06\x07\x1f\x03\x06\x15\x12\x03" +
+       "\x0c\x05\x0f\x03\x0b+\x0b\x03\x0b+-\x03\x06\x16\x1b\x03\x06\x15\x17\x03" +
+       "\x89\xca\xea\x03\x89\xca\xe8\x03\x0c8\x10\x03\x0c8\x01\x03\x0c8\x0f\x03" +
+       "\x0d8%\x03\x0d8!\x03\x0c8-\x03\x0c8/\x03\x0c8+\x03\x0c87\x03\x0c85\x03" +
+       "\x0c9\x09\x03\x0c9\x0d\x03\x0c9\x0f\x03\x0c9\x0b\x03\xcfu\x0c\x03\xcfu" +
+       "\x0f\x03\xcfu\x0e\x03\xcfu\x09\x03\x0c9\x10\x03\x0d9\x0c\x03\xcf`;\x03" +
+       "\xcf`>\x03\xcf`9\x03\xcf`8\x03\xcf`7\x03\xcf`*\x03\xcf`-\x03\xcf`,\x03" +
+       "\x0d\x1b\x1a\x03\x0d\x1b&\x03\x0c=.\x03\x0c=%\x03\x0c>\x1e\x03\x0c>\x14" +
+       "\x03\x0c?\x06\x03\x0c?\x0b\x03\x0c?\x0c\x03\x0c?\x0d\x03\x0c?\x02\x03" +
+       "\x0c>\x0f\x03\x0c>\x08\x03\x0c>\x09\x03\x0c>,\x03\x0c>\x0c\x03\x0c?\x13" +
+       "\x03\x0c?\x16\x03\x0c?\x15\x03\x0c?\x1c\x03\x0c?\x1f\x03\x0c?\x1d\x03" +
+       "\x0c?\x1a\x03\x0c?\x17\x03\x0c?\x08\x03\x0c?\x09\x03\x0c?\x0e\x03\x0c?" +
+       "\x04\x03\x0c?\x05\x03\x0c<?\x03\x0c=\x00\x03\x0c=\x06\x03\x0c=\x05\x03" +
+       "\x0c=\x0c\x03\x0c=\x0f\x03\x0c=\x0d\x03\x0c=\x0b\x03\x0c=\x07\x03\x0c=" +
+       "\x19\x03\x0c=\x15\x03\x0c=\x11\x03\x0c=1\x03\x0c=3\x03\x0c=0\x03\x0c=>" +
+       "\x03\x0c=2\x03\x0c=6\x03\x0c<\x07\x03\x0c<\x05\x03\x0e:!\x03\x0e:#\x03" +
+       "\x0e8\x09\x03\x0e:&\x03\x0e8\x0b\x03\x0e:$\x03\x0e:,\x03\x0e8\x1a\x03" +
+       "\x0e8\x1e\x03\x0e:*\x03\x0e:7\x03\x0e:5\x03\x0e:;\x03\x0e:\x15\x03\x0e:<" +
+       "\x03\x0e:4\x03\x0e:'\x03\x0e:-\x03\x0e:%\x03\x0e:?\x03\x0e:=\x03\x0e:)" +
+       "\x03\x0e:/\x03\xcfs'\x03\x0d=\x0f\x03\x0d+*\x03\x0d99\x03\x0d9;\x03\x0d9" +
+       "?\x03\x0d)\x0d\x03\x0d(%\x02\x01\x18\x02\x01(\x02\x01\x1e\x03\x0f$!\x03" +
+       "\x0f87\x03\x0f4\x0e\x03\x0f5\x1d\x03\x06'\x03\x03\x0f\x08\x18\x03\x0f" +
+       "\x0d\x1b\x03\x0e2=\x03\x0e;\x08\x03\x0e:\x0b\x03\x0e\x06$\x03\x0e\x0d)" +
+       "\x03\x0e\x16\x1f\x03\x0e\x16\x1b\x03\x0d$\x0a\x03\x05,\x1d\x03\x0d. \x03" +
+       "\x0d.#\x03\x0c(/\x03\x09%\x02\x03\x0d90\x03\x0d\x0e4\x03\x0d\x0d\x0f\x03" +
+       "\x0c#\x00\x03\x0c,\x1e\x03\x0c2\x0e\x03\x0c\x01\x17\x03\x0c\x09:\x03\x0e" +
+       "\x173\x03\x0c\x08\x03\x03\x0c\x11\x07\x03\x0c\x10\x18\x03\x0c\x1f\x1c" +
+       "\x03\x0c\x19\x0e\x03\x0c\x1a\x1f\x03\x0f0>\x03\x0b->\x03\x0b<+\x03\x0b8" +
+       "\x13\x03\x0b\x043\x03\x0b\x14\x03\x03\x0b\x16%\x03\x0d\x22&\x03\x0b\x1a" +
+       "\x1a\x03\x0b\x1a\x04\x03\x0a%9\x03\x0a&2\x03\x0a&0\x03\x0a!\x1a\x03\x0a!" +
+       "7\x03\x0a5\x10\x03\x0a=4\x03\x0a?\x0e\x03\x0a>\x10\x03\x0a\x00 \x03\x0a" +
+       "\x0f:\x03\x0a\x0f9\x03\x0a\x0b\x0a\x03\x0a\x17%\x03\x0a\x1b-\x03\x09-" +
+       "\x1a\x03\x09,4\x03\x09.,\x03\x09)\x09\x03\x096!\x03\x091\x1f\x03\x093" +
+       "\x16\x03\x0c+\x1f\x03\x098 \x03\x098=\x03\x0c(\x1a\x03\x0c(\x16\x03\x09" +
+       "\x0a+\x03\x09\x16\x12\x03\x09\x13\x0e\x03\x09\x153\x03\x08)!\x03\x09\x1a" +
+       "\x01\x03\x09\x18\x01\x03\x08%#\x03\x08>\x22\x03\x08\x05%\x03\x08\x02*" +
+       "\x03\x08\x15;\x03\x08\x1b7\x03\x0f\x07\x1d\x03\x0f\x04\x03\x03\x070\x0c" +
+       "\x03\x07;\x0b\x03\x07\x08\x17\x03\x07\x12\x06\x03\x06/-\x03\x0671\x03" +
+       "\x065+\x03\x06>7\x03\x06\x049\x03\x05+\x1e\x03\x05,\x17\x03\x05 \x1d\x03" +
+       "\x05\x22\x05\x03\x050\x1d"
+
+// 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 *idnaTrie) lookup(s []byte) (v uint16, sz int) {
+       c0 := s[0]
+       switch {
+       case c0 < 0x80: // is ASCII
+               return idnaValues[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 := idnaIndex[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 := idnaIndex[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 = idnaIndex[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 := idnaIndex[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 = idnaIndex[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 = idnaIndex[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 *idnaTrie) lookupUnsafe(s []byte) uint16 {
+       c0 := s[0]
+       if c0 < 0x80 { // is ASCII
+               return idnaValues[c0]
+       }
+       i := idnaIndex[c0]
+       if c0 < 0xE0 { // 2-byte UTF-8
+               return t.lookupValue(uint32(i), s[1])
+       }
+       i = idnaIndex[uint32(i)<<6+uint32(s[1])]
+       if c0 < 0xF0 { // 3-byte UTF-8
+               return t.lookupValue(uint32(i), s[2])
+       }
+       i = idnaIndex[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 *idnaTrie) lookupString(s string) (v uint16, sz int) {
+       c0 := s[0]
+       switch {
+       case c0 < 0x80: // is ASCII
+               return idnaValues[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 := idnaIndex[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 := idnaIndex[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 = idnaIndex[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 := idnaIndex[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 = idnaIndex[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 = idnaIndex[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 *idnaTrie) lookupStringUnsafe(s string) uint16 {
+       c0 := s[0]
+       if c0 < 0x80 { // is ASCII
+               return idnaValues[c0]
+       }
+       i := idnaIndex[c0]
+       if c0 < 0xE0 { // 2-byte UTF-8
+               return t.lookupValue(uint32(i), s[1])
+       }
+       i = idnaIndex[uint32(i)<<6+uint32(s[1])]
+       if c0 < 0xF0 { // 3-byte UTF-8
+               return t.lookupValue(uint32(i), s[2])
+       }
+       i = idnaIndex[uint32(i)<<6+uint32(s[2])]
+       if c0 < 0xF8 { // 4-byte UTF-8
+               return t.lookupValue(uint32(i), s[3])
+       }
+       return 0
+}
+
+// idnaTrie. Total size: 29052 bytes (28.37 KiB). Checksum: ef06e7ecc26f36dd.
+type idnaTrie struct{}
+
+func newIdnaTrie(i int) *idnaTrie {
+       return &idnaTrie{}
+}
+
+// lookupValue determines the type of block n and looks up the value for b.
+func (t *idnaTrie) lookupValue(n uint32, b byte) uint16 {
+       switch {
+       case n < 125:
+               return uint16(idnaValues[n<<6+uint32(b)])
+       default:
+               n -= 125
+               return uint16(idnaSparse.lookup(n, b))
+       }
+}
+
+// idnaValues: 127 blocks, 8128 entries, 16256 bytes
+// The third block is the zero block.
+var idnaValues = [8128]uint16{
+       // Block 0x0, offset 0x0
+       0x00: 0x0080, 0x01: 0x0080, 0x02: 0x0080, 0x03: 0x0080, 0x04: 0x0080, 0x05: 0x0080,
+       0x06: 0x0080, 0x07: 0x0080, 0x08: 0x0080, 0x09: 0x0080, 0x0a: 0x0080, 0x0b: 0x0080,
+       0x0c: 0x0080, 0x0d: 0x0080, 0x0e: 0x0080, 0x0f: 0x0080, 0x10: 0x0080, 0x11: 0x0080,
+       0x12: 0x0080, 0x13: 0x0080, 0x14: 0x0080, 0x15: 0x0080, 0x16: 0x0080, 0x17: 0x0080,
+       0x18: 0x0080, 0x19: 0x0080, 0x1a: 0x0080, 0x1b: 0x0080, 0x1c: 0x0080, 0x1d: 0x0080,
+       0x1e: 0x0080, 0x1f: 0x0080, 0x20: 0x0080, 0x21: 0x0080, 0x22: 0x0080, 0x23: 0x0080,
+       0x24: 0x0080, 0x25: 0x0080, 0x26: 0x0080, 0x27: 0x0080, 0x28: 0x0080, 0x29: 0x0080,
+       0x2a: 0x0080, 0x2b: 0x0080, 0x2c: 0x0080, 0x2d: 0x0008, 0x2e: 0x0008, 0x2f: 0x0080,
+       0x30: 0x0008, 0x31: 0x0008, 0x32: 0x0008, 0x33: 0x0008, 0x34: 0x0008, 0x35: 0x0008,
+       0x36: 0x0008, 0x37: 0x0008, 0x38: 0x0008, 0x39: 0x0008, 0x3a: 0x0080, 0x3b: 0x0080,
+       0x3c: 0x0080, 0x3d: 0x0080, 0x3e: 0x0080, 0x3f: 0x0080,
+       // Block 0x1, offset 0x40
+       0x40: 0x0080, 0x41: 0xe105, 0x42: 0xe105, 0x43: 0xe105, 0x44: 0xe105, 0x45: 0xe105,
+       0x46: 0xe105, 0x47: 0xe105, 0x48: 0xe105, 0x49: 0xe105, 0x4a: 0xe105, 0x4b: 0xe105,
+       0x4c: 0xe105, 0x4d: 0xe105, 0x4e: 0xe105, 0x4f: 0xe105, 0x50: 0xe105, 0x51: 0xe105,
+       0x52: 0xe105, 0x53: 0xe105, 0x54: 0xe105, 0x55: 0xe105, 0x56: 0xe105, 0x57: 0xe105,
+       0x58: 0xe105, 0x59: 0xe105, 0x5a: 0xe105, 0x5b: 0x0080, 0x5c: 0x0080, 0x5d: 0x0080,
+       0x5e: 0x0080, 0x5f: 0x0080, 0x60: 0x0080, 0x61: 0x0008, 0x62: 0x0008, 0x63: 0x0008,
+       0x64: 0x0008, 0x65: 0x0008, 0x66: 0x0008, 0x67: 0x0008, 0x68: 0x0008, 0x69: 0x0008,
+       0x6a: 0x0008, 0x6b: 0x0008, 0x6c: 0x0008, 0x6d: 0x0008, 0x6e: 0x0008, 0x6f: 0x0008,
+       0x70: 0x0008, 0x71: 0x0008, 0x72: 0x0008, 0x73: 0x0008, 0x74: 0x0008, 0x75: 0x0008,
+       0x76: 0x0008, 0x77: 0x0008, 0x78: 0x0008, 0x79: 0x0008, 0x7a: 0x0008, 0x7b: 0x0080,
+       0x7c: 0x0080, 0x7d: 0x0080, 0x7e: 0x0080, 0x7f: 0x0080,
+       // Block 0x2, offset 0x80
+       // Block 0x3, offset 0xc0
+       0xc0: 0x0040, 0xc1: 0x0040, 0xc2: 0x0040, 0xc3: 0x0040, 0xc4: 0x0040, 0xc5: 0x0040,
+       0xc6: 0x0040, 0xc7: 0x0040, 0xc8: 0x0040, 0xc9: 0x0040, 0xca: 0x0040, 0xcb: 0x0040,
+       0xcc: 0x0040, 0xcd: 0x0040, 0xce: 0x0040, 0xcf: 0x0040, 0xd0: 0x0040, 0xd1: 0x0040,
+       0xd2: 0x0040, 0xd3: 0x0040, 0xd4: 0x0040, 0xd5: 0x0040, 0xd6: 0x0040, 0xd7: 0x0040,
+       0xd8: 0x0040, 0xd9: 0x0040, 0xda: 0x0040, 0xdb: 0x0040, 0xdc: 0x0040, 0xdd: 0x0040,
+       0xde: 0x0040, 0xdf: 0x0040, 0xe0: 0x000a, 0xe1: 0x0018, 0xe2: 0x0018, 0xe3: 0x0018,
+       0xe4: 0x0018, 0xe5: 0x0018, 0xe6: 0x0018, 0xe7: 0x0018, 0xe8: 0x001a, 0xe9: 0x0018,
+       0xea: 0x0039, 0xeb: 0x0018, 0xec: 0x0018, 0xed: 0x03c0, 0xee: 0x0018, 0xef: 0x004a,
+       0xf0: 0x0018, 0xf1: 0x0018, 0xf2: 0x0069, 0xf3: 0x0079, 0xf4: 0x008a, 0xf5: 0x0005,
+       0xf6: 0x0018, 0xf7: 0x0008, 0xf8: 0x00aa, 0xf9: 0x00c9, 0xfa: 0x00d9, 0xfb: 0x0018,
+       0xfc: 0x00e9, 0xfd: 0x0119, 0xfe: 0x0149, 0xff: 0x0018,
+       // Block 0x4, offset 0x100
+       0x100: 0xe00d, 0x101: 0x0008, 0x102: 0xe00d, 0x103: 0x0008, 0x104: 0xe00d, 0x105: 0x0008,
+       0x106: 0xe00d, 0x107: 0x0008, 0x108: 0xe00d, 0x109: 0x0008, 0x10a: 0xe00d, 0x10b: 0x0008,
+       0x10c: 0xe00d, 0x10d: 0x0008, 0x10e: 0xe00d, 0x10f: 0x0008, 0x110: 0xe00d, 0x111: 0x0008,
+       0x112: 0xe00d, 0x113: 0x0008, 0x114: 0xe00d, 0x115: 0x0008, 0x116: 0xe00d, 0x117: 0x0008,
+       0x118: 0xe00d, 0x119: 0x0008, 0x11a: 0xe00d, 0x11b: 0x0008, 0x11c: 0xe00d, 0x11d: 0x0008,
+       0x11e: 0xe00d, 0x11f: 0x0008, 0x120: 0xe00d, 0x121: 0x0008, 0x122: 0xe00d, 0x123: 0x0008,
+       0x124: 0xe00d, 0x125: 0x0008, 0x126: 0xe00d, 0x127: 0x0008, 0x128: 0xe00d, 0x129: 0x0008,
+       0x12a: 0xe00d, 0x12b: 0x0008, 0x12c: 0xe00d, 0x12d: 0x0008, 0x12e: 0xe00d, 0x12f: 0x0008,
+       0x130: 0x0179, 0x131: 0x0008, 0x132: 0x0035, 0x133: 0x004d, 0x134: 0xe00d, 0x135: 0x0008,
+       0x136: 0xe00d, 0x137: 0x0008, 0x138: 0x0008, 0x139: 0xe01d, 0x13a: 0x0008, 0x13b: 0xe03d,
+       0x13c: 0x0008, 0x13d: 0xe01d, 0x13e: 0x0008, 0x13f: 0x0199,
+       // Block 0x5, offset 0x140
+       0x140: 0x0199, 0x141: 0xe01d, 0x142: 0x0008, 0x143: 0xe03d, 0x144: 0x0008, 0x145: 0xe01d,
+       0x146: 0x0008, 0x147: 0xe07d, 0x148: 0x0008, 0x149: 0x01b9, 0x14a: 0xe00d, 0x14b: 0x0008,
+       0x14c: 0xe00d, 0x14d: 0x0008, 0x14e: 0xe00d, 0x14f: 0x0008, 0x150: 0xe00d, 0x151: 0x0008,
+       0x152: 0xe00d, 0x153: 0x0008, 0x154: 0xe00d, 0x155: 0x0008, 0x156: 0xe00d, 0x157: 0x0008,
+       0x158: 0xe00d, 0x159: 0x0008, 0x15a: 0xe00d, 0x15b: 0x0008, 0x15c: 0xe00d, 0x15d: 0x0008,
+       0x15e: 0xe00d, 0x15f: 0x0008, 0x160: 0xe00d, 0x161: 0x0008, 0x162: 0xe00d, 0x163: 0x0008,
+       0x164: 0xe00d, 0x165: 0x0008, 0x166: 0xe00d, 0x167: 0x0008, 0x168: 0xe00d, 0x169: 0x0008,
+       0x16a: 0xe00d, 0x16b: 0x0008, 0x16c: 0xe00d, 0x16d: 0x0008, 0x16e: 0xe00d, 0x16f: 0x0008,
+       0x170: 0xe00d, 0x171: 0x0008, 0x172: 0xe00d, 0x173: 0x0008, 0x174: 0xe00d, 0x175: 0x0008,
+       0x176: 0xe00d, 0x177: 0x0008, 0x178: 0x0065, 0x179: 0xe01d, 0x17a: 0x0008, 0x17b: 0xe03d,
+       0x17c: 0x0008, 0x17d: 0xe01d, 0x17e: 0x0008, 0x17f: 0x01d9,
+       // Block 0x6, offset 0x180
+       0x180: 0x0008, 0x181: 0x007d, 0x182: 0xe00d, 0x183: 0x0008, 0x184: 0xe00d, 0x185: 0x0008,
+       0x186: 0x007d, 0x187: 0xe07d, 0x188: 0x0008, 0x189: 0x0095, 0x18a: 0x00ad, 0x18b: 0xe03d,
+       0x18c: 0x0008, 0x18d: 0x0008, 0x18e: 0x00c5, 0x18f: 0x00dd, 0x190: 0x00f5, 0x191: 0xe01d,
+       0x192: 0x0008, 0x193: 0x010d, 0x194: 0x0125, 0x195: 0x0008, 0x196: 0x013d, 0x197: 0x013d,
+       0x198: 0xe00d, 0x199: 0x0008, 0x19a: 0x0008, 0x19b: 0x0008, 0x19c: 0x010d, 0x19d: 0x0155,
+       0x19e: 0x0008, 0x19f: 0x016d, 0x1a0: 0xe00d, 0x1a1: 0x0008, 0x1a2: 0xe00d, 0x1a3: 0x0008,
+       0x1a4: 0xe00d, 0x1a5: 0x0008, 0x1a6: 0x0185, 0x1a7: 0xe07d, 0x1a8: 0x0008, 0x1a9: 0x019d,
+       0x1aa: 0x0008, 0x1ab: 0x0008, 0x1ac: 0xe00d, 0x1ad: 0x0008, 0x1ae: 0x0185, 0x1af: 0xe0fd,
+       0x1b0: 0x0008, 0x1b1: 0x01b5, 0x1b2: 0x01cd, 0x1b3: 0xe03d, 0x1b4: 0x0008, 0x1b5: 0xe01d,
+       0x1b6: 0x0008, 0x1b7: 0x01e5, 0x1b8: 0xe00d, 0x1b9: 0x0008, 0x1ba: 0x0008, 0x1bb: 0x0008,
+       0x1bc: 0xe00d, 0x1bd: 0x0008, 0x1be: 0x0008, 0x1bf: 0x0008,
+       // Block 0x7, offset 0x1c0
+       0x1c0: 0x0008, 0x1c1: 0x0008, 0x1c2: 0x0008, 0x1c3: 0x0008, 0x1c4: 0x01e9, 0x1c5: 0x01e9,
+       0x1c6: 0x01e9, 0x1c7: 0x01fd, 0x1c8: 0x0215, 0x1c9: 0x022d, 0x1ca: 0x0245, 0x1cb: 0x025d,
+       0x1cc: 0x0275, 0x1cd: 0xe01d, 0x1ce: 0x0008, 0x1cf: 0xe0fd, 0x1d0: 0x0008, 0x1d1: 0xe01d,
+       0x1d2: 0x0008, 0x1d3: 0xe03d, 0x1d4: 0x0008, 0x1d5: 0xe01d, 0x1d6: 0x0008, 0x1d7: 0xe07d,
+       0x1d8: 0x0008, 0x1d9: 0xe01d, 0x1da: 0x0008, 0x1db: 0xe03d, 0x1dc: 0x0008, 0x1dd: 0x0008,
+       0x1de: 0xe00d, 0x1df: 0x0008, 0x1e0: 0xe00d, 0x1e1: 0x0008, 0x1e2: 0xe00d, 0x1e3: 0x0008,
+       0x1e4: 0xe00d, 0x1e5: 0x0008, 0x1e6: 0xe00d, 0x1e7: 0x0008, 0x1e8: 0xe00d, 0x1e9: 0x0008,
+       0x1ea: 0xe00d, 0x1eb: 0x0008, 0x1ec: 0xe00d, 0x1ed: 0x0008, 0x1ee: 0xe00d, 0x1ef: 0x0008,
+       0x1f0: 0x0008, 0x1f1: 0x028d, 0x1f2: 0x02a5, 0x1f3: 0x02bd, 0x1f4: 0xe00d, 0x1f5: 0x0008,
+       0x1f6: 0x02d5, 0x1f7: 0x02ed, 0x1f8: 0xe00d, 0x1f9: 0x0008, 0x1fa: 0xe00d, 0x1fb: 0x0008,
+       0x1fc: 0xe00d, 0x1fd: 0x0008, 0x1fe: 0xe00d, 0x1ff: 0x0008,
+       // Block 0x8, offset 0x200
+       0x200: 0xe00d, 0x201: 0x0008, 0x202: 0xe00d, 0x203: 0x0008, 0x204: 0xe00d, 0x205: 0x0008,
+       0x206: 0xe00d, 0x207: 0x0008, 0x208: 0xe00d, 0x209: 0x0008, 0x20a: 0xe00d, 0x20b: 0x0008,
+       0x20c: 0xe00d, 0x20d: 0x0008, 0x20e: 0xe00d, 0x20f: 0x0008, 0x210: 0xe00d, 0x211: 0x0008,
+       0x212: 0xe00d, 0x213: 0x0008, 0x214: 0xe00d, 0x215: 0x0008, 0x216: 0xe00d, 0x217: 0x0008,
+       0x218: 0xe00d, 0x219: 0x0008, 0x21a: 0xe00d, 0x21b: 0x0008, 0x21c: 0xe00d, 0x21d: 0x0008,
+       0x21e: 0xe00d, 0x21f: 0x0008, 0x220: 0x0305, 0x221: 0x0008, 0x222: 0xe00d, 0x223: 0x0008,
+       0x224: 0xe00d, 0x225: 0x0008, 0x226: 0xe00d, 0x227: 0x0008, 0x228: 0xe00d, 0x229: 0x0008,
+       0x22a: 0xe00d, 0x22b: 0x0008, 0x22c: 0xe00d, 0x22d: 0x0008, 0x22e: 0xe00d, 0x22f: 0x0008,
+       0x230: 0xe00d, 0x231: 0x0008, 0x232: 0xe00d, 0x233: 0x0008, 0x234: 0x0008, 0x235: 0x0008,
+       0x236: 0x0008, 0x237: 0x0008, 0x238: 0x0008, 0x239: 0x0008, 0x23a: 0x0209, 0x23b: 0xe03d,
+       0x23c: 0x0008, 0x23d: 0x031d, 0x23e: 0x0229, 0x23f: 0x0008,
+       // Block 0x9, offset 0x240
+       0x240: 0x0008, 0x241: 0x0008, 0x242: 0x0018, 0x243: 0x0018, 0x244: 0x0018, 0x245: 0x0018,
+       0x246: 0x0008, 0x247: 0x0008, 0x248: 0x0008, 0x249: 0x0008, 0x24a: 0x0008, 0x24b: 0x0008,
+       0x24c: 0x0008, 0x24d: 0x0008, 0x24e: 0x0008, 0x24f: 0x0008, 0x250: 0x0008, 0x251: 0x0008,
+       0x252: 0x0018, 0x253: 0x0018, 0x254: 0x0018, 0x255: 0x0018, 0x256: 0x0018, 0x257: 0x0018,
+       0x258: 0x029a, 0x259: 0x02ba, 0x25a: 0x02da, 0x25b: 0x02fa, 0x25c: 0x031a, 0x25d: 0x033a,
+       0x25e: 0x0018, 0x25f: 0x0018, 0x260: 0x03ad, 0x261: 0x0359, 0x262: 0x01d9, 0x263: 0x0369,
+       0x264: 0x03c5, 0x265: 0x0018, 0x266: 0x0018, 0x267: 0x0018, 0x268: 0x0018, 0x269: 0x0018,
+       0x26a: 0x0018, 0x26b: 0x0018, 0x26c: 0x0008, 0x26d: 0x0018, 0x26e: 0x0008, 0x26f: 0x0018,
+       0x270: 0x0018, 0x271: 0x0018, 0x272: 0x0018, 0x273: 0x0018, 0x274: 0x0018, 0x275: 0x0018,
+       0x276: 0x0018, 0x277: 0x0018, 0x278: 0x0018, 0x279: 0x0018, 0x27a: 0x0018, 0x27b: 0x0018,
+       0x27c: 0x0018, 0x27d: 0x0018, 0x27e: 0x0018, 0x27f: 0x0018,
+       // Block 0xa, offset 0x280
+       0x280: 0x03dd, 0x281: 0x03dd, 0x282: 0x3308, 0x283: 0x03f5, 0x284: 0x0379, 0x285: 0x040d,
+       0x286: 0x3308, 0x287: 0x3308, 0x288: 0x3308, 0x289: 0x3308, 0x28a: 0x3308, 0x28b: 0x3308,
+       0x28c: 0x3308, 0x28d: 0x3308, 0x28e: 0x3308, 0x28f: 0x33c0, 0x290: 0x3308, 0x291: 0x3308,
+       0x292: 0x3308, 0x293: 0x3308, 0x294: 0x3308, 0x295: 0x3308, 0x296: 0x3308, 0x297: 0x3308,
+       0x298: 0x3308, 0x299: 0x3308, 0x29a: 0x3308, 0x29b: 0x3308, 0x29c: 0x3308, 0x29d: 0x3308,
+       0x29e: 0x3308, 0x29f: 0x3308, 0x2a0: 0x3308, 0x2a1: 0x3308, 0x2a2: 0x3308, 0x2a3: 0x3308,
+       0x2a4: 0x3308, 0x2a5: 0x3308, 0x2a6: 0x3308, 0x2a7: 0x3308, 0x2a8: 0x3308, 0x2a9: 0x3308,
+       0x2aa: 0x3308, 0x2ab: 0x3308, 0x2ac: 0x3308, 0x2ad: 0x3308, 0x2ae: 0x3308, 0x2af: 0x3308,
+       0x2b0: 0xe00d, 0x2b1: 0x0008, 0x2b2: 0xe00d, 0x2b3: 0x0008, 0x2b4: 0x0425, 0x2b5: 0x0008,
+       0x2b6: 0xe00d, 0x2b7: 0x0008, 0x2b8: 0x0040, 0x2b9: 0x0040, 0x2ba: 0x03a2, 0x2bb: 0x0008,
+       0x2bc: 0x0008, 0x2bd: 0x0008, 0x2be: 0x03c2, 0x2bf: 0x043d,
+       // Block 0xb, offset 0x2c0
+       0x2c0: 0x0040, 0x2c1: 0x0040, 0x2c2: 0x0040, 0x2c3: 0x0040, 0x2c4: 0x008a, 0x2c5: 0x03d2,
+       0x2c6: 0xe155, 0x2c7: 0x0455, 0x2c8: 0xe12d, 0x2c9: 0xe13d, 0x2ca: 0xe12d, 0x2cb: 0x0040,
+       0x2cc: 0x03dd, 0x2cd: 0x0040, 0x2ce: 0x046d, 0x2cf: 0x0485, 0x2d0: 0x0008, 0x2d1: 0xe105,
+       0x2d2: 0xe105, 0x2d3: 0xe105, 0x2d4: 0xe105, 0x2d5: 0xe105, 0x2d6: 0xe105, 0x2d7: 0xe105,
+       0x2d8: 0xe105, 0x2d9: 0xe105, 0x2da: 0xe105, 0x2db: 0xe105, 0x2dc: 0xe105, 0x2dd: 0xe105,
+       0x2de: 0xe105, 0x2df: 0xe105, 0x2e0: 0x049d, 0x2e1: 0x049d, 0x2e2: 0x0040, 0x2e3: 0x049d,
+       0x2e4: 0x049d, 0x2e5: 0x049d, 0x2e6: 0x049d, 0x2e7: 0x049d, 0x2e8: 0x049d, 0x2e9: 0x049d,
+       0x2ea: 0x049d, 0x2eb: 0x049d, 0x2ec: 0x0008, 0x2ed: 0x0008, 0x2ee: 0x0008, 0x2ef: 0x0008,
+       0x2f0: 0x0008, 0x2f1: 0x0008, 0x2f2: 0x0008, 0x2f3: 0x0008, 0x2f4: 0x0008, 0x2f5: 0x0008,
+       0x2f6: 0x0008, 0x2f7: 0x0008, 0x2f8: 0x0008, 0x2f9: 0x0008, 0x2fa: 0x0008, 0x2fb: 0x0008,
+       0x2fc: 0x0008, 0x2fd: 0x0008, 0x2fe: 0x0008, 0x2ff: 0x0008,
+       // Block 0xc, offset 0x300
+       0x300: 0x0008, 0x301: 0x0008, 0x302: 0xe00f, 0x303: 0x0008, 0x304: 0x0008, 0x305: 0x0008,
+       0x306: 0x0008, 0x307: 0x0008, 0x308: 0x0008, 0x309: 0x0008, 0x30a: 0x0008, 0x30b: 0x0008,
+       0x30c: 0x0008, 0x30d: 0x0008, 0x30e: 0x0008, 0x30f: 0xe0c5, 0x310: 0x04b5, 0x311: 0x04cd,
+       0x312: 0xe0bd, 0x313: 0xe0f5, 0x314: 0xe0fd, 0x315: 0xe09d, 0x316: 0xe0b5, 0x317: 0x0008,
+       0x318: 0xe00d, 0x319: 0x0008, 0x31a: 0xe00d, 0x31b: 0x0008, 0x31c: 0xe00d, 0x31d: 0x0008,
+       0x31e: 0xe00d, 0x31f: 0x0008, 0x320: 0xe00d, 0x321: 0x0008, 0x322: 0xe00d, 0x323: 0x0008,
+       0x324: 0xe00d, 0x325: 0x0008, 0x326: 0xe00d, 0x327: 0x0008, 0x328: 0xe00d, 0x329: 0x0008,
+       0x32a: 0xe00d, 0x32b: 0x0008, 0x32c: 0xe00d, 0x32d: 0x0008, 0x32e: 0xe00d, 0x32f: 0x0008,
+       0x330: 0x04e5, 0x331: 0xe185, 0x332: 0xe18d, 0x333: 0x0008, 0x334: 0x04fd, 0x335: 0x03dd,
+       0x336: 0x0018, 0x337: 0xe07d, 0x338: 0x0008, 0x339: 0xe1d5, 0x33a: 0xe00d, 0x33b: 0x0008,
+       0x33c: 0x0008, 0x33d: 0x0515, 0x33e: 0x052d, 0x33f: 0x052d,
+       // Block 0xd, offset 0x340
+       0x340: 0x0008, 0x341: 0x0008, 0x342: 0x0008, 0x343: 0x0008, 0x344: 0x0008, 0x345: 0x0008,
+       0x346: 0x0008, 0x347: 0x0008, 0x348: 0x0008, 0x349: 0x0008, 0x34a: 0x0008, 0x34b: 0x0008,
+       0x34c: 0x0008, 0x34d: 0x0008, 0x34e: 0x0008, 0x34f: 0x0008, 0x350: 0x0008, 0x351: 0x0008,
+       0x352: 0x0008, 0x353: 0x0008, 0x354: 0x0008, 0x355: 0x0008, 0x356: 0x0008, 0x357: 0x0008,
+       0x358: 0x0008, 0x359: 0x0008, 0x35a: 0x0008, 0x35b: 0x0008, 0x35c: 0x0008, 0x35d: 0x0008,
+       0x35e: 0x0008, 0x35f: 0x0008, 0x360: 0xe00d, 0x361: 0x0008, 0x362: 0xe00d, 0x363: 0x0008,
+       0x364: 0xe00d, 0x365: 0x0008, 0x366: 0xe00d, 0x367: 0x0008, 0x368: 0xe00d, 0x369: 0x0008,
+       0x36a: 0xe00d, 0x36b: 0x0008, 0x36c: 0xe00d, 0x36d: 0x0008, 0x36e: 0xe00d, 0x36f: 0x0008,
+       0x370: 0xe00d, 0x371: 0x0008, 0x372: 0xe00d, 0x373: 0x0008, 0x374: 0xe00d, 0x375: 0x0008,
+       0x376: 0xe00d, 0x377: 0x0008, 0x378: 0xe00d, 0x379: 0x0008, 0x37a: 0xe00d, 0x37b: 0x0008,
+       0x37c: 0xe00d, 0x37d: 0x0008, 0x37e: 0xe00d, 0x37f: 0x0008,
+       // Block 0xe, offset 0x380
+       0x380: 0xe00d, 0x381: 0x0008, 0x382: 0x0018, 0x383: 0x3308, 0x384: 0x3308, 0x385: 0x3308,
+       0x386: 0x3308, 0x387: 0x3308, 0x388: 0x3318, 0x389: 0x3318, 0x38a: 0xe00d, 0x38b: 0x0008,
+       0x38c: 0xe00d, 0x38d: 0x0008, 0x38e: 0xe00d, 0x38f: 0x0008, 0x390: 0xe00d, 0x391: 0x0008,
+       0x392: 0xe00d, 0x393: 0x0008, 0x394: 0xe00d, 0x395: 0x0008, 0x396: 0xe00d, 0x397: 0x0008,
+       0x398: 0xe00d, 0x399: 0x0008, 0x39a: 0xe00d, 0x39b: 0x0008, 0x39c: 0xe00d, 0x39d: 0x0008,
+       0x39e: 0xe00d, 0x39f: 0x0008, 0x3a0: 0xe00d, 0x3a1: 0x0008, 0x3a2: 0xe00d, 0x3a3: 0x0008,
+       0x3a4: 0xe00d, 0x3a5: 0x0008, 0x3a6: 0xe00d, 0x3a7: 0x0008, 0x3a8: 0xe00d, 0x3a9: 0x0008,
+       0x3aa: 0xe00d, 0x3ab: 0x0008, 0x3ac: 0xe00d, 0x3ad: 0x0008, 0x3ae: 0xe00d, 0x3af: 0x0008,
+       0x3b0: 0xe00d, 0x3b1: 0x0008, 0x3b2: 0xe00d, 0x3b3: 0x0008, 0x3b4: 0xe00d, 0x3b5: 0x0008,
+       0x3b6: 0xe00d, 0x3b7: 0x0008, 0x3b8: 0xe00d, 0x3b9: 0x0008, 0x3ba: 0xe00d, 0x3bb: 0x0008,
+       0x3bc: 0xe00d, 0x3bd: 0x0008, 0x3be: 0xe00d, 0x3bf: 0x0008,
+       // Block 0xf, offset 0x3c0
+       0x3c0: 0x0040, 0x3c1: 0xe01d, 0x3c2: 0x0008, 0x3c3: 0xe03d, 0x3c4: 0x0008, 0x3c5: 0xe01d,
+       0x3c6: 0x0008, 0x3c7: 0xe07d, 0x3c8: 0x0008, 0x3c9: 0xe01d, 0x3ca: 0x0008, 0x3cb: 0xe03d,
+       0x3cc: 0x0008, 0x3cd: 0xe01d, 0x3ce: 0x0008, 0x3cf: 0x0008, 0x3d0: 0xe00d, 0x3d1: 0x0008,
+       0x3d2: 0xe00d, 0x3d3: 0x0008, 0x3d4: 0xe00d, 0x3d5: 0x0008, 0x3d6: 0xe00d, 0x3d7: 0x0008,
+       0x3d8: 0xe00d, 0x3d9: 0x0008, 0x3da: 0xe00d, 0x3db: 0x0008, 0x3dc: 0xe00d, 0x3dd: 0x0008,
+       0x3de: 0xe00d, 0x3df: 0x0008, 0x3e0: 0xe00d, 0x3e1: 0x0008, 0x3e2: 0xe00d, 0x3e3: 0x0008,
+       0x3e4: 0xe00d, 0x3e5: 0x0008, 0x3e6: 0xe00d, 0x3e7: 0x0008, 0x3e8: 0xe00d, 0x3e9: 0x0008,
+       0x3ea: 0xe00d, 0x3eb: 0x0008, 0x3ec: 0xe00d, 0x3ed: 0x0008, 0x3ee: 0xe00d, 0x3ef: 0x0008,
+       0x3f0: 0xe00d, 0x3f1: 0x0008, 0x3f2: 0xe00d, 0x3f3: 0x0008, 0x3f4: 0xe00d, 0x3f5: 0x0008,
+       0x3f6: 0xe00d, 0x3f7: 0x0008, 0x3f8: 0xe00d, 0x3f9: 0x0008, 0x3fa: 0xe00d, 0x3fb: 0x0008,
+       0x3fc: 0xe00d, 0x3fd: 0x0008, 0x3fe: 0xe00d, 0x3ff: 0x0008,
+       // Block 0x10, offset 0x400
+       0x400: 0xe00d, 0x401: 0x0008, 0x402: 0xe00d, 0x403: 0x0008, 0x404: 0xe00d, 0x405: 0x0008,
+       0x406: 0xe00d, 0x407: 0x0008, 0x408: 0xe00d, 0x409: 0x0008, 0x40a: 0xe00d, 0x40b: 0x0008,
+       0x40c: 0xe00d, 0x40d: 0x0008, 0x40e: 0xe00d, 0x40f: 0x0008, 0x410: 0xe00d, 0x411: 0x0008,
+       0x412: 0xe00d, 0x413: 0x0008, 0x414: 0xe00d, 0x415: 0x0008, 0x416: 0xe00d, 0x417: 0x0008,
+       0x418: 0xe00d, 0x419: 0x0008, 0x41a: 0xe00d, 0x41b: 0x0008, 0x41c: 0xe00d, 0x41d: 0x0008,
+       0x41e: 0xe00d, 0x41f: 0x0008, 0x420: 0xe00d, 0x421: 0x0008, 0x422: 0xe00d, 0x423: 0x0008,
+       0x424: 0xe00d, 0x425: 0x0008, 0x426: 0xe00d, 0x427: 0x0008, 0x428: 0xe00d, 0x429: 0x0008,
+       0x42a: 0xe00d, 0x42b: 0x0008, 0x42c: 0xe00d, 0x42d: 0x0008, 0x42e: 0xe00d, 0x42f: 0x0008,
+       0x430: 0x0040, 0x431: 0x03f5, 0x432: 0x03f5, 0x433: 0x03f5, 0x434: 0x03f5, 0x435: 0x03f5,
+       0x436: 0x03f5, 0x437: 0x03f5, 0x438: 0x03f5, 0x439: 0x03f5, 0x43a: 0x03f5, 0x43b: 0x03f5,
+       0x43c: 0x03f5, 0x43d: 0x03f5, 0x43e: 0x03f5, 0x43f: 0x03f5,
+       // Block 0x11, offset 0x440
+       0x440: 0x0840, 0x441: 0x0840, 0x442: 0x0840, 0x443: 0x0840, 0x444: 0x0840, 0x445: 0x0840,
+       0x446: 0x0018, 0x447: 0x0018, 0x448: 0x0818, 0x449: 0x0018, 0x44a: 0x0018, 0x44b: 0x0818,
+       0x44c: 0x0018, 0x44d: 0x0818, 0x44e: 0x0018, 0x44f: 0x0018, 0x450: 0x3308, 0x451: 0x3308,
+       0x452: 0x3308, 0x453: 0x3308, 0x454: 0x3308, 0x455: 0x3308, 0x456: 0x3308, 0x457: 0x3308,
+       0x458: 0x3308, 0x459: 0x3308, 0x45a: 0x3308, 0x45b: 0x0818, 0x45c: 0x0b40, 0x45d: 0x0040,
+       0x45e: 0x0818, 0x45f: 0x0818, 0x460: 0x0a08, 0x461: 0x0808, 0x462: 0x0c08, 0x463: 0x0c08,
+       0x464: 0x0c08, 0x465: 0x0c08, 0x466: 0x0a08, 0x467: 0x0c08, 0x468: 0x0a08, 0x469: 0x0c08,
+       0x46a: 0x0a08, 0x46b: 0x0a08, 0x46c: 0x0a08, 0x46d: 0x0a08, 0x46e: 0x0a08, 0x46f: 0x0c08,
+       0x470: 0x0c08, 0x471: 0x0c08, 0x472: 0x0c08, 0x473: 0x0a08, 0x474: 0x0a08, 0x475: 0x0a08,
+       0x476: 0x0a08, 0x477: 0x0a08, 0x478: 0x0a08, 0x479: 0x0a08, 0x47a: 0x0a08, 0x47b: 0x0a08,
+       0x47c: 0x0a08, 0x47d: 0x0a08, 0x47e: 0x0a08, 0x47f: 0x0a08,
+       // Block 0x12, offset 0x480
+       0x480: 0x0818, 0x481: 0x0a08, 0x482: 0x0a08, 0x483: 0x0a08, 0x484: 0x0a08, 0x485: 0x0a08,
+       0x486: 0x0a08, 0x487: 0x0a08, 0x488: 0x0c08, 0x489: 0x0a08, 0x48a: 0x0a08, 0x48b: 0x3308,
+       0x48c: 0x3308, 0x48d: 0x3308, 0x48e: 0x3308, 0x48f: 0x3308, 0x490: 0x3308, 0x491: 0x3308,
+       0x492: 0x3308, 0x493: 0x3308, 0x494: 0x3308, 0x495: 0x3308, 0x496: 0x3308, 0x497: 0x3308,
+       0x498: 0x3308, 0x499: 0x3308, 0x49a: 0x3308, 0x49b: 0x3308, 0x49c: 0x3308, 0x49d: 0x3308,
+       0x49e: 0x3308, 0x49f: 0x3308, 0x4a0: 0x0808, 0x4a1: 0x0808, 0x4a2: 0x0808, 0x4a3: 0x0808,
+       0x4a4: 0x0808, 0x4a5: 0x0808, 0x4a6: 0x0808, 0x4a7: 0x0808, 0x4a8: 0x0808, 0x4a9: 0x0808,
+       0x4aa: 0x0018, 0x4ab: 0x0818, 0x4ac: 0x0818, 0x4ad: 0x0818, 0x4ae: 0x0a08, 0x4af: 0x0a08,
+       0x4b0: 0x3308, 0x4b1: 0x0c08, 0x4b2: 0x0c08, 0x4b3: 0x0c08, 0x4b4: 0x0808, 0x4b5: 0x0429,
+       0x4b6: 0x0451, 0x4b7: 0x0479, 0x4b8: 0x04a1, 0x4b9: 0x0a08, 0x4ba: 0x0a08, 0x4bb: 0x0a08,
+       0x4bc: 0x0a08, 0x4bd: 0x0a08, 0x4be: 0x0a08, 0x4bf: 0x0a08,
+       // Block 0x13, offset 0x4c0
+       0x4c0: 0x0c08, 0x4c1: 0x0a08, 0x4c2: 0x0a08, 0x4c3: 0x0c08, 0x4c4: 0x0c08, 0x4c5: 0x0c08,
+       0x4c6: 0x0c08, 0x4c7: 0x0c08, 0x4c8: 0x0c08, 0x4c9: 0x0c08, 0x4ca: 0x0c08, 0x4cb: 0x0c08,
+       0x4cc: 0x0a08, 0x4cd: 0x0c08, 0x4ce: 0x0a08, 0x4cf: 0x0c08, 0x4d0: 0x0a08, 0x4d1: 0x0a08,
+       0x4d2: 0x0c08, 0x4d3: 0x0c08, 0x4d4: 0x0818, 0x4d5: 0x0c08, 0x4d6: 0x3308, 0x4d7: 0x3308,
+       0x4d8: 0x3308, 0x4d9: 0x3308, 0x4da: 0x3308, 0x4db: 0x3308, 0x4dc: 0x3308, 0x4dd: 0x0840,
+       0x4de: 0x0018, 0x4df: 0x3308, 0x4e0: 0x3308, 0x4e1: 0x3308, 0x4e2: 0x3308, 0x4e3: 0x3308,
+       0x4e4: 0x3308, 0x4e5: 0x0808, 0x4e6: 0x0808, 0x4e7: 0x3308, 0x4e8: 0x3308, 0x4e9: 0x0018,
+       0x4ea: 0x3308, 0x4eb: 0x3308, 0x4ec: 0x3308, 0x4ed: 0x3308, 0x4ee: 0x0c08, 0x4ef: 0x0c08,
+       0x4f0: 0x0008, 0x4f1: 0x0008, 0x4f2: 0x0008, 0x4f3: 0x0008, 0x4f4: 0x0008, 0x4f5: 0x0008,
+       0x4f6: 0x0008, 0x4f7: 0x0008, 0x4f8: 0x0008, 0x4f9: 0x0008, 0x4fa: 0x0a08, 0x4fb: 0x0a08,
+       0x4fc: 0x0a08, 0x4fd: 0x0808, 0x4fe: 0x0808, 0x4ff: 0x0a08,
+       // Block 0x14, offset 0x500
+       0x500: 0x0818, 0x501: 0x0818, 0x502: 0x0818, 0x503: 0x0818, 0x504: 0x0818, 0x505: 0x0818,
+       0x506: 0x0818, 0x507: 0x0818, 0x508: 0x0818, 0x509: 0x0818, 0x50a: 0x0818, 0x50b: 0x0818,
+       0x50c: 0x0818, 0x50d: 0x0818, 0x50e: 0x0040, 0x50f: 0x0b40, 0x510: 0x0c08, 0x511: 0x3308,
+       0x512: 0x0a08, 0x513: 0x0a08, 0x514: 0x0a08, 0x515: 0x0c08, 0x516: 0x0c08, 0x517: 0x0c08,
+       0x518: 0x0c08, 0x519: 0x0c08, 0x51a: 0x0a08, 0x51b: 0x0a08, 0x51c: 0x0a08, 0x51d: 0x0a08,
+       0x51e: 0x0c08, 0x51f: 0x0a08, 0x520: 0x0a08, 0x521: 0x0a08, 0x522: 0x0a08, 0x523: 0x0a08,
+       0x524: 0x0a08, 0x525: 0x0a08, 0x526: 0x0a08, 0x527: 0x0a08, 0x528: 0x0c08, 0x529: 0x0a08,
+       0x52a: 0x0c08, 0x52b: 0x0a08, 0x52c: 0x0c08, 0x52d: 0x0a08, 0x52e: 0x0a08, 0x52f: 0x0c08,
+       0x530: 0x3308, 0x531: 0x3308, 0x532: 0x3308, 0x533: 0x3308, 0x534: 0x3308, 0x535: 0x3308,
+       0x536: 0x3308, 0x537: 0x3308, 0x538: 0x3308, 0x539: 0x3308, 0x53a: 0x3308, 0x53b: 0x3308,
+       0x53c: 0x3308, 0x53d: 0x3308, 0x53e: 0x3308, 0x53f: 0x3308,
+       // Block 0x15, offset 0x540
+       0x540: 0x0c08, 0x541: 0x0a08, 0x542: 0x0a08, 0x543: 0x0a08, 0x544: 0x0a08, 0x545: 0x0a08,
+       0x546: 0x0c08, 0x547: 0x0c08, 0x548: 0x0a08, 0x549: 0x0c08, 0x54a: 0x0a08, 0x54b: 0x0a08,
+       0x54c: 0x0a08, 0x54d: 0x0a08, 0x54e: 0x0a08, 0x54f: 0x0a08, 0x550: 0x0a08, 0x551: 0x0a08,
+       0x552: 0x0a08, 0x553: 0x0a08, 0x554: 0x0c08, 0x555: 0x0a08, 0x556: 0x0808, 0x557: 0x0808,
+       0x558: 0x0808, 0x559: 0x3308, 0x55a: 0x3308, 0x55b: 0x3308, 0x55c: 0x0040, 0x55d: 0x0040,
+       0x55e: 0x0818, 0x55f: 0x0040, 0x560: 0x0a08, 0x561: 0x0808, 0x562: 0x0a08, 0x563: 0x0a08,
+       0x564: 0x0a08, 0x565: 0x0a08, 0x566: 0x0808, 0x567: 0x0c08, 0x568: 0x0a08, 0x569: 0x0c08,
+       0x56a: 0x0c08, 0x56b: 0x0040, 0x56c: 0x0040, 0x56d: 0x0040, 0x56e: 0x0040, 0x56f: 0x0040,
+       0x570: 0x0040, 0x571: 0x0040, 0x572: 0x0040, 0x573: 0x0040, 0x574: 0x0040, 0x575: 0x0040,
+       0x576: 0x0040, 0x577: 0x0040, 0x578: 0x0040, 0x579: 0x0040, 0x57a: 0x0040, 0x57b: 0x0040,
+       0x57c: 0x0040, 0x57d: 0x0040, 0x57e: 0x0040, 0x57f: 0x0040,
+       // Block 0x16, offset 0x580
+       0x580: 0x3008, 0x581: 0x3308, 0x582: 0x3308, 0x583: 0x3308, 0x584: 0x3308, 0x585: 0x3308,
+       0x586: 0x3308, 0x587: 0x3308, 0x588: 0x3308, 0x589: 0x3008, 0x58a: 0x3008, 0x58b: 0x3008,
+       0x58c: 0x3008, 0x58d: 0x3b08, 0x58e: 0x3008, 0x58f: 0x3008, 0x590: 0x0008, 0x591: 0x3308,
+       0x592: 0x3308, 0x593: 0x3308, 0x594: 0x3308, 0x595: 0x3308, 0x596: 0x3308, 0x597: 0x3308,
+       0x598: 0x04c9, 0x599: 0x0501, 0x59a: 0x0539, 0x59b: 0x0571, 0x59c: 0x05a9, 0x59d: 0x05e1,
+       0x59e: 0x0619, 0x59f: 0x0651, 0x5a0: 0x0008, 0x5a1: 0x0008, 0x5a2: 0x3308, 0x5a3: 0x3308,
+       0x5a4: 0x0018, 0x5a5: 0x0018, 0x5a6: 0x0008, 0x5a7: 0x0008, 0x5a8: 0x0008, 0x5a9: 0x0008,
+       0x5aa: 0x0008, 0x5ab: 0x0008, 0x5ac: 0x0008, 0x5ad: 0x0008, 0x5ae: 0x0008, 0x5af: 0x0008,
+       0x5b0: 0x0018, 0x5b1: 0x0008, 0x5b2: 0x0008, 0x5b3: 0x0008, 0x5b4: 0x0008, 0x5b5: 0x0008,
+       0x5b6: 0x0008, 0x5b7: 0x0008, 0x5b8: 0x0008, 0x5b9: 0x0008, 0x5ba: 0x0008, 0x5bb: 0x0008,
+       0x5bc: 0x0008, 0x5bd: 0x0008, 0x5be: 0x0008, 0x5bf: 0x0008,
+       // Block 0x17, offset 0x5c0
+       0x5c0: 0x0008, 0x5c1: 0x3308, 0x5c2: 0x3008, 0x5c3: 0x3008, 0x5c4: 0x0040, 0x5c5: 0x0008,
+       0x5c6: 0x0008, 0x5c7: 0x0008, 0x5c8: 0x0008, 0x5c9: 0x0008, 0x5ca: 0x0008, 0x5cb: 0x0008,
+       0x5cc: 0x0008, 0x5cd: 0x0040, 0x5ce: 0x0040, 0x5cf: 0x0008, 0x5d0: 0x0008, 0x5d1: 0x0040,
+       0x5d2: 0x0040, 0x5d3: 0x0008, 0x5d4: 0x0008, 0x5d5: 0x0008, 0x5d6: 0x0008, 0x5d7: 0x0008,
+       0x5d8: 0x0008, 0x5d9: 0x0008, 0x5da: 0x0008, 0x5db: 0x0008, 0x5dc: 0x0008, 0x5dd: 0x0008,
+       0x5de: 0x0008, 0x5df: 0x0008, 0x5e0: 0x0008, 0x5e1: 0x0008, 0x5e2: 0x0008, 0x5e3: 0x0008,
+       0x5e4: 0x0008, 0x5e5: 0x0008, 0x5e6: 0x0008, 0x5e7: 0x0008, 0x5e8: 0x0008, 0x5e9: 0x0040,
+       0x5ea: 0x0008, 0x5eb: 0x0008, 0x5ec: 0x0008, 0x5ed: 0x0008, 0x5ee: 0x0008, 0x5ef: 0x0008,
+       0x5f0: 0x0008, 0x5f1: 0x0040, 0x5f2: 0x0008, 0x5f3: 0x0040, 0x5f4: 0x0040, 0x5f5: 0x0040,
+       0x5f6: 0x0008, 0x5f7: 0x0008, 0x5f8: 0x0008, 0x5f9: 0x0008, 0x5fa: 0x0040, 0x5fb: 0x0040,
+       0x5fc: 0x3308, 0x5fd: 0x0008, 0x5fe: 0x3008, 0x5ff: 0x3008,
+       // Block 0x18, offset 0x600
+       0x600: 0x3008, 0x601: 0x3308, 0x602: 0x3308, 0x603: 0x3308, 0x604: 0x3308, 0x605: 0x0040,
+       0x606: 0x0040, 0x607: 0x3008, 0x608: 0x3008, 0x609: 0x0040, 0x60a: 0x0040, 0x60b: 0x3008,
+       0x60c: 0x3008, 0x60d: 0x3b08, 0x60e: 0x0008, 0x60f: 0x0040, 0x610: 0x0040, 0x611: 0x0040,
+       0x612: 0x0040, 0x613: 0x0040, 0x614: 0x0040, 0x615: 0x0040, 0x616: 0x0040, 0x617: 0x3008,
+       0x618: 0x0040, 0x619: 0x0040, 0x61a: 0x0040, 0x61b: 0x0040, 0x61c: 0x0689, 0x61d: 0x06c1,
+       0x61e: 0x0040, 0x61f: 0x06f9, 0x620: 0x0008, 0x621: 0x0008, 0x622: 0x3308, 0x623: 0x3308,
+       0x624: 0x0040, 0x625: 0x0040, 0x626: 0x0008, 0x627: 0x0008, 0x628: 0x0008, 0x629: 0x0008,
+       0x62a: 0x0008, 0x62b: 0x0008, 0x62c: 0x0008, 0x62d: 0x0008, 0x62e: 0x0008, 0x62f: 0x0008,
+       0x630: 0x0008, 0x631: 0x0008, 0x632: 0x0018, 0x633: 0x0018, 0x634: 0x0018, 0x635: 0x0018,
+       0x636: 0x0018, 0x637: 0x0018, 0x638: 0x0018, 0x639: 0x0018, 0x63a: 0x0018, 0x63b: 0x0018,
+       0x63c: 0x0008, 0x63d: 0x0018, 0x63e: 0x0040, 0x63f: 0x0040,
+       // Block 0x19, offset 0x640
+       0x640: 0x0040, 0x641: 0x3308, 0x642: 0x3308, 0x643: 0x3008, 0x644: 0x0040, 0x645: 0x0008,
+       0x646: 0x0008, 0x647: 0x0008, 0x648: 0x0008, 0x649: 0x0008, 0x64a: 0x0008, 0x64b: 0x0040,
+       0x64c: 0x0040, 0x64d: 0x0040, 0x64e: 0x0040, 0x64f: 0x0008, 0x650: 0x0008, 0x651: 0x0040,
+       0x652: 0x0040, 0x653: 0x0008, 0x654: 0x0008, 0x655: 0x0008, 0x656: 0x0008, 0x657: 0x0008,
+       0x658: 0x0008, 0x659: 0x0008, 0x65a: 0x0008, 0x65b: 0x0008, 0x65c: 0x0008, 0x65d: 0x0008,
+       0x65e: 0x0008, 0x65f: 0x0008, 0x660: 0x0008, 0x661: 0x0008, 0x662: 0x0008, 0x663: 0x0008,
+       0x664: 0x0008, 0x665: 0x0008, 0x666: 0x0008, 0x667: 0x0008, 0x668: 0x0008, 0x669: 0x0040,
+       0x66a: 0x0008, 0x66b: 0x0008, 0x66c: 0x0008, 0x66d: 0x0008, 0x66e: 0x0008, 0x66f: 0x0008,
+       0x670: 0x0008, 0x671: 0x0040, 0x672: 0x0008, 0x673: 0x0731, 0x674: 0x0040, 0x675: 0x0008,
+       0x676: 0x0769, 0x677: 0x0040, 0x678: 0x0008, 0x679: 0x0008, 0x67a: 0x0040, 0x67b: 0x0040,
+       0x67c: 0x3308, 0x67d: 0x0040, 0x67e: 0x3008, 0x67f: 0x3008,
+       // Block 0x1a, offset 0x680
+       0x680: 0x3008, 0x681: 0x3308, 0x682: 0x3308, 0x683: 0x0040, 0x684: 0x0040, 0x685: 0x0040,
+       0x686: 0x0040, 0x687: 0x3308, 0x688: 0x3308, 0x689: 0x0040, 0x68a: 0x0040, 0x68b: 0x3308,
+       0x68c: 0x3308, 0x68d: 0x3b08, 0x68e: 0x0040, 0x68f: 0x0040, 0x690: 0x0040, 0x691: 0x3308,
+       0x692: 0x0040, 0x693: 0x0040, 0x694: 0x0040, 0x695: 0x0040, 0x696: 0x0040, 0x697: 0x0040,
+       0x698: 0x0040, 0x699: 0x07a1, 0x69a: 0x07d9, 0x69b: 0x0811, 0x69c: 0x0008, 0x69d: 0x0040,
+       0x69e: 0x0849, 0x69f: 0x0040, 0x6a0: 0x0040, 0x6a1: 0x0040, 0x6a2: 0x0040, 0x6a3: 0x0040,
+       0x6a4: 0x0040, 0x6a5: 0x0040, 0x6a6: 0x0008, 0x6a7: 0x0008, 0x6a8: 0x0008, 0x6a9: 0x0008,
+       0x6aa: 0x0008, 0x6ab: 0x0008, 0x6ac: 0x0008, 0x6ad: 0x0008, 0x6ae: 0x0008, 0x6af: 0x0008,
+       0x6b0: 0x3308, 0x6b1: 0x3308, 0x6b2: 0x0008, 0x6b3: 0x0008, 0x6b4: 0x0008, 0x6b5: 0x3308,
+       0x6b6: 0x0040, 0x6b7: 0x0040, 0x6b8: 0x0040, 0x6b9: 0x0040, 0x6ba: 0x0040, 0x6bb: 0x0040,
+       0x6bc: 0x0040, 0x6bd: 0x0040, 0x6be: 0x0040, 0x6bf: 0x0040,
+       // Block 0x1b, offset 0x6c0
+       0x6c0: 0x0040, 0x6c1: 0x3308, 0x6c2: 0x3308, 0x6c3: 0x3008, 0x6c4: 0x0040, 0x6c5: 0x0008,
+       0x6c6: 0x0008, 0x6c7: 0x0008, 0x6c8: 0x0008, 0x6c9: 0x0008, 0x6ca: 0x0008, 0x6cb: 0x0008,
+       0x6cc: 0x0008, 0x6cd: 0x0008, 0x6ce: 0x0040, 0x6cf: 0x0008, 0x6d0: 0x0008, 0x6d1: 0x0008,
+       0x6d2: 0x0040, 0x6d3: 0x0008, 0x6d4: 0x0008, 0x6d5: 0x0008, 0x6d6: 0x0008, 0x6d7: 0x0008,
+       0x6d8: 0x0008, 0x6d9: 0x0008, 0x6da: 0x0008, 0x6db: 0x0008, 0x6dc: 0x0008, 0x6dd: 0x0008,
+       0x6de: 0x0008, 0x6df: 0x0008, 0x6e0: 0x0008, 0x6e1: 0x0008, 0x6e2: 0x0008, 0x6e3: 0x0008,
+       0x6e4: 0x0008, 0x6e5: 0x0008, 0x6e6: 0x0008, 0x6e7: 0x0008, 0x6e8: 0x0008, 0x6e9: 0x0040,
+       0x6ea: 0x0008, 0x6eb: 0x0008, 0x6ec: 0x0008, 0x6ed: 0x0008, 0x6ee: 0x0008, 0x6ef: 0x0008,
+       0x6f0: 0x0008, 0x6f1: 0x0040, 0x6f2: 0x0008, 0x6f3: 0x0008, 0x6f4: 0x0040, 0x6f5: 0x0008,
+       0x6f6: 0x0008, 0x6f7: 0x0008, 0x6f8: 0x0008, 0x6f9: 0x0008, 0x6fa: 0x0040, 0x6fb: 0x0040,
+       0x6fc: 0x3308, 0x6fd: 0x0008, 0x6fe: 0x3008, 0x6ff: 0x3008,
+       // Block 0x1c, offset 0x700
+       0x700: 0x3008, 0x701: 0x3308, 0x702: 0x3308, 0x703: 0x3308, 0x704: 0x3308, 0x705: 0x3308,
+       0x706: 0x0040, 0x707: 0x3308, 0x708: 0x3308, 0x709: 0x3008, 0x70a: 0x0040, 0x70b: 0x3008,
+       0x70c: 0x3008, 0x70d: 0x3b08, 0x70e: 0x0040, 0x70f: 0x0040, 0x710: 0x0008, 0x711: 0x0040,
+       0x712: 0x0040, 0x713: 0x0040, 0x714: 0x0040, 0x715: 0x0040, 0x716: 0x0040, 0x717: 0x0040,
+       0x718: 0x0040, 0x719: 0x0040, 0x71a: 0x0040, 0x71b: 0x0040, 0x71c: 0x0040, 0x71d: 0x0040,
+       0x71e: 0x0040, 0x71f: 0x0040, 0x720: 0x0008, 0x721: 0x0008, 0x722: 0x3308, 0x723: 0x3308,
+       0x724: 0x0040, 0x725: 0x0040, 0x726: 0x0008, 0x727: 0x0008, 0x728: 0x0008, 0x729: 0x0008,
+       0x72a: 0x0008, 0x72b: 0x0008, 0x72c: 0x0008, 0x72d: 0x0008, 0x72e: 0x0008, 0x72f: 0x0008,
+       0x730: 0x0018, 0x731: 0x0018, 0x732: 0x0040, 0x733: 0x0040, 0x734: 0x0040, 0x735: 0x0040,
+       0x736: 0x0040, 0x737: 0x0040, 0x738: 0x0040, 0x739: 0x0008, 0x73a: 0x3308, 0x73b: 0x3308,
+       0x73c: 0x3308, 0x73d: 0x3308, 0x73e: 0x3308, 0x73f: 0x3308,
+       // Block 0x1d, offset 0x740
+       0x740: 0x0040, 0x741: 0x3308, 0x742: 0x3008, 0x743: 0x3008, 0x744: 0x0040, 0x745: 0x0008,
+       0x746: 0x0008, 0x747: 0x0008, 0x748: 0x0008, 0x749: 0x0008, 0x74a: 0x0008, 0x74b: 0x0008,
+       0x74c: 0x0008, 0x74d: 0x0040, 0x74e: 0x0040, 0x74f: 0x0008, 0x750: 0x0008, 0x751: 0x0040,
+       0x752: 0x0040, 0x753: 0x0008, 0x754: 0x0008, 0x755: 0x0008, 0x756: 0x0008, 0x757: 0x0008,
+       0x758: 0x0008, 0x759: 0x0008, 0x75a: 0x0008, 0x75b: 0x0008, 0x75c: 0x0008, 0x75d: 0x0008,
+       0x75e: 0x0008, 0x75f: 0x0008, 0x760: 0x0008, 0x761: 0x0008, 0x762: 0x0008, 0x763: 0x0008,
+       0x764: 0x0008, 0x765: 0x0008, 0x766: 0x0008, 0x767: 0x0008, 0x768: 0x0008, 0x769: 0x0040,
+       0x76a: 0x0008, 0x76b: 0x0008, 0x76c: 0x0008, 0x76d: 0x0008, 0x76e: 0x0008, 0x76f: 0x0008,
+       0x770: 0x0008, 0x771: 0x0040, 0x772: 0x0008, 0x773: 0x0008, 0x774: 0x0040, 0x775: 0x0008,
+       0x776: 0x0008, 0x777: 0x0008, 0x778: 0x0008, 0x779: 0x0008, 0x77a: 0x0040, 0x77b: 0x0040,
+       0x77c: 0x3308, 0x77d: 0x0008, 0x77e: 0x3008, 0x77f: 0x3308,
+       // Block 0x1e, offset 0x780
+       0x780: 0x3008, 0x781: 0x3308, 0x782: 0x3308, 0x783: 0x3308, 0x784: 0x3308, 0x785: 0x0040,
+       0x786: 0x0040, 0x787: 0x3008, 0x788: 0x3008, 0x789: 0x0040, 0x78a: 0x0040, 0x78b: 0x3008,
+       0x78c: 0x3008, 0x78d: 0x3b08, 0x78e: 0x0040, 0x78f: 0x0040, 0x790: 0x0040, 0x791: 0x0040,
+       0x792: 0x0040, 0x793: 0x0040, 0x794: 0x0040, 0x795: 0x0040, 0x796: 0x3308, 0x797: 0x3008,
+       0x798: 0x0040, 0x799: 0x0040, 0x79a: 0x0040, 0x79b: 0x0040, 0x79c: 0x0881, 0x79d: 0x08b9,
+       0x79e: 0x0040, 0x79f: 0x0008, 0x7a0: 0x0008, 0x7a1: 0x0008, 0x7a2: 0x3308, 0x7a3: 0x3308,
+       0x7a4: 0x0040, 0x7a5: 0x0040, 0x7a6: 0x0008, 0x7a7: 0x0008, 0x7a8: 0x0008, 0x7a9: 0x0008,
+       0x7aa: 0x0008, 0x7ab: 0x0008, 0x7ac: 0x0008, 0x7ad: 0x0008, 0x7ae: 0x0008, 0x7af: 0x0008,
+       0x7b0: 0x0018, 0x7b1: 0x0008, 0x7b2: 0x0018, 0x7b3: 0x0018, 0x7b4: 0x0018, 0x7b5: 0x0018,
+       0x7b6: 0x0018, 0x7b7: 0x0018, 0x7b8: 0x0040, 0x7b9: 0x0040, 0x7ba: 0x0040, 0x7bb: 0x0040,
+       0x7bc: 0x0040, 0x7bd: 0x0040, 0x7be: 0x0040, 0x7bf: 0x0040,
+       // Block 0x1f, offset 0x7c0
+       0x7c0: 0x0040, 0x7c1: 0x0040, 0x7c2: 0x3308, 0x7c3: 0x0008, 0x7c4: 0x0040, 0x7c5: 0x0008,
+       0x7c6: 0x0008, 0x7c7: 0x0008, 0x7c8: 0x0008, 0x7c9: 0x0008, 0x7ca: 0x0008, 0x7cb: 0x0040,
+       0x7cc: 0x0040, 0x7cd: 0x0040, 0x7ce: 0x0008, 0x7cf: 0x0008, 0x7d0: 0x0008, 0x7d1: 0x0040,
+       0x7d2: 0x0008, 0x7d3: 0x0008, 0x7d4: 0x0008, 0x7d5: 0x0008, 0x7d6: 0x0040, 0x7d7: 0x0040,
+       0x7d8: 0x0040, 0x7d9: 0x0008, 0x7da: 0x0008, 0x7db: 0x0040, 0x7dc: 0x0008, 0x7dd: 0x0040,
+       0x7de: 0x0008, 0x7df: 0x0008, 0x7e0: 0x0040, 0x7e1: 0x0040, 0x7e2: 0x0040, 0x7e3: 0x0008,
+       0x7e4: 0x0008, 0x7e5: 0x0040, 0x7e6: 0x0040, 0x7e7: 0x0040, 0x7e8: 0x0008, 0x7e9: 0x0008,
+       0x7ea: 0x0008, 0x7eb: 0x0040, 0x7ec: 0x0040, 0x7ed: 0x0040, 0x7ee: 0x0008, 0x7ef: 0x0008,
+       0x7f0: 0x0008, 0x7f1: 0x0008, 0x7f2: 0x0008, 0x7f3: 0x0008, 0x7f4: 0x0008, 0x7f5: 0x0008,
+       0x7f6: 0x0008, 0x7f7: 0x0008, 0x7f8: 0x0008, 0x7f9: 0x0008, 0x7fa: 0x0040, 0x7fb: 0x0040,
+       0x7fc: 0x0040, 0x7fd: 0x0040, 0x7fe: 0x3008, 0x7ff: 0x3008,
+       // Block 0x20, offset 0x800
+       0x800: 0x3308, 0x801: 0x3008, 0x802: 0x3008, 0x803: 0x3008, 0x804: 0x3008, 0x805: 0x0040,
+       0x806: 0x3308, 0x807: 0x3308, 0x808: 0x3308, 0x809: 0x0040, 0x80a: 0x3308, 0x80b: 0x3308,
+       0x80c: 0x3308, 0x80d: 0x3b08, 0x80e: 0x0040, 0x80f: 0x0040, 0x810: 0x0040, 0x811: 0x0040,
+       0x812: 0x0040, 0x813: 0x0040, 0x814: 0x0040, 0x815: 0x3308, 0x816: 0x3308, 0x817: 0x0040,
+       0x818: 0x0008, 0x819: 0x0008, 0x81a: 0x0008, 0x81b: 0x0040, 0x81c: 0x0040, 0x81d: 0x0040,
+       0x81e: 0x0040, 0x81f: 0x0040, 0x820: 0x0008, 0x821: 0x0008, 0x822: 0x3308, 0x823: 0x3308,
+       0x824: 0x0040, 0x825: 0x0040, 0x826: 0x0008, 0x827: 0x0008, 0x828: 0x0008, 0x829: 0x0008,
+       0x82a: 0x0008, 0x82b: 0x0008, 0x82c: 0x0008, 0x82d: 0x0008, 0x82e: 0x0008, 0x82f: 0x0008,
+       0x830: 0x0040, 0x831: 0x0040, 0x832: 0x0040, 0x833: 0x0040, 0x834: 0x0040, 0x835: 0x0040,
+       0x836: 0x0040, 0x837: 0x0040, 0x838: 0x0018, 0x839: 0x0018, 0x83a: 0x0018, 0x83b: 0x0018,
+       0x83c: 0x0018, 0x83d: 0x0018, 0x83e: 0x0018, 0x83f: 0x0018,
+       // Block 0x21, offset 0x840
+       0x840: 0x0008, 0x841: 0x3308, 0x842: 0x3008, 0x843: 0x3008, 0x844: 0x0040, 0x845: 0x0008,
+       0x846: 0x0008, 0x847: 0x0008, 0x848: 0x0008, 0x849: 0x0008, 0x84a: 0x0008, 0x84b: 0x0008,
+       0x84c: 0x0008, 0x84d: 0x0040, 0x84e: 0x0008, 0x84f: 0x0008, 0x850: 0x0008, 0x851: 0x0040,
+       0x852: 0x0008, 0x853: 0x0008, 0x854: 0x0008, 0x855: 0x0008, 0x856: 0x0008, 0x857: 0x0008,
+       0x858: 0x0008, 0x859: 0x0008, 0x85a: 0x0008, 0x85b: 0x0008, 0x85c: 0x0008, 0x85d: 0x0008,
+       0x85e: 0x0008, 0x85f: 0x0008, 0x860: 0x0008, 0x861: 0x0008, 0x862: 0x0008, 0x863: 0x0008,
+       0x864: 0x0008, 0x865: 0x0008, 0x866: 0x0008, 0x867: 0x0008, 0x868: 0x0008, 0x869: 0x0040,
+       0x86a: 0x0008, 0x86b: 0x0008, 0x86c: 0x0008, 0x86d: 0x0008, 0x86e: 0x0008, 0x86f: 0x0008,
+       0x870: 0x0008, 0x871: 0x0008, 0x872: 0x0008, 0x873: 0x0008, 0x874: 0x0040, 0x875: 0x0008,
+       0x876: 0x0008, 0x877: 0x0008, 0x878: 0x0008, 0x879: 0x0008, 0x87a: 0x0040, 0x87b: 0x0040,
+       0x87c: 0x3308, 0x87d: 0x0008, 0x87e: 0x3008, 0x87f: 0x3308,
+       // Block 0x22, offset 0x880
+       0x880: 0x3008, 0x881: 0x3008, 0x882: 0x3008, 0x883: 0x3008, 0x884: 0x3008, 0x885: 0x0040,
+       0x886: 0x3308, 0x887: 0x3008, 0x888: 0x3008, 0x889: 0x0040, 0x88a: 0x3008, 0x88b: 0x3008,
+       0x88c: 0x3308, 0x88d: 0x3b08, 0x88e: 0x0040, 0x88f: 0x0040, 0x890: 0x0040, 0x891: 0x0040,
+       0x892: 0x0040, 0x893: 0x0040, 0x894: 0x0040, 0x895: 0x3008, 0x896: 0x3008, 0x897: 0x0040,
+       0x898: 0x0040, 0x899: 0x0040, 0x89a: 0x0040, 0x89b: 0x0040, 0x89c: 0x0040, 0x89d: 0x0040,
+       0x89e: 0x0008, 0x89f: 0x0040, 0x8a0: 0x0008, 0x8a1: 0x0008, 0x8a2: 0x3308, 0x8a3: 0x3308,
+       0x8a4: 0x0040, 0x8a5: 0x0040, 0x8a6: 0x0008, 0x8a7: 0x0008, 0x8a8: 0x0008, 0x8a9: 0x0008,
+       0x8aa: 0x0008, 0x8ab: 0x0008, 0x8ac: 0x0008, 0x8ad: 0x0008, 0x8ae: 0x0008, 0x8af: 0x0008,
+       0x8b0: 0x0040, 0x8b1: 0x0008, 0x8b2: 0x0008, 0x8b3: 0x0040, 0x8b4: 0x0040, 0x8b5: 0x0040,
+       0x8b6: 0x0040, 0x8b7: 0x0040, 0x8b8: 0x0040, 0x8b9: 0x0040, 0x8ba: 0x0040, 0x8bb: 0x0040,
+       0x8bc: 0x0040, 0x8bd: 0x0040, 0x8be: 0x0040, 0x8bf: 0x0040,
+       // Block 0x23, offset 0x8c0
+       0x8c0: 0x3008, 0x8c1: 0x3308, 0x8c2: 0x3308, 0x8c3: 0x3308, 0x8c4: 0x3308, 0x8c5: 0x0040,
+       0x8c6: 0x3008, 0x8c7: 0x3008, 0x8c8: 0x3008, 0x8c9: 0x0040, 0x8ca: 0x3008, 0x8cb: 0x3008,
+       0x8cc: 0x3008, 0x8cd: 0x3b08, 0x8ce: 0x0008, 0x8cf: 0x0018, 0x8d0: 0x0040, 0x8d1: 0x0040,
+       0x8d2: 0x0040, 0x8d3: 0x0040, 0x8d4: 0x0008, 0x8d5: 0x0008, 0x8d6: 0x0008, 0x8d7: 0x3008,
+       0x8d8: 0x0018, 0x8d9: 0x0018, 0x8da: 0x0018, 0x8db: 0x0018, 0x8dc: 0x0018, 0x8dd: 0x0018,
+       0x8de: 0x0018, 0x8df: 0x0008, 0x8e0: 0x0008, 0x8e1: 0x0008, 0x8e2: 0x3308, 0x8e3: 0x3308,
+       0x8e4: 0x0040, 0x8e5: 0x0040, 0x8e6: 0x0008, 0x8e7: 0x0008, 0x8e8: 0x0008, 0x8e9: 0x0008,
+       0x8ea: 0x0008, 0x8eb: 0x0008, 0x8ec: 0x0008, 0x8ed: 0x0008, 0x8ee: 0x0008, 0x8ef: 0x0008,
+       0x8f0: 0x0018, 0x8f1: 0x0018, 0x8f2: 0x0018, 0x8f3: 0x0018, 0x8f4: 0x0018, 0x8f5: 0x0018,
+       0x8f6: 0x0018, 0x8f7: 0x0018, 0x8f8: 0x0018, 0x8f9: 0x0018, 0x8fa: 0x0008, 0x8fb: 0x0008,
+       0x8fc: 0x0008, 0x8fd: 0x0008, 0x8fe: 0x0008, 0x8ff: 0x0008,
+       // Block 0x24, offset 0x900
+       0x900: 0x0040, 0x901: 0x0008, 0x902: 0x0008, 0x903: 0x0040, 0x904: 0x0008, 0x905: 0x0040,
+       0x906: 0x0040, 0x907: 0x0008, 0x908: 0x0008, 0x909: 0x0040, 0x90a: 0x0008, 0x90b: 0x0040,
+       0x90c: 0x0040, 0x90d: 0x0008, 0x90e: 0x0040, 0x90f: 0x0040, 0x910: 0x0040, 0x911: 0x0040,
+       0x912: 0x0040, 0x913: 0x0040, 0x914: 0x0008, 0x915: 0x0008, 0x916: 0x0008, 0x917: 0x0008,
+       0x918: 0x0040, 0x919: 0x0008, 0x91a: 0x0008, 0x91b: 0x0008, 0x91c: 0x0008, 0x91d: 0x0008,
+       0x91e: 0x0008, 0x91f: 0x0008, 0x920: 0x0040, 0x921: 0x0008, 0x922: 0x0008, 0x923: 0x0008,
+       0x924: 0x0040, 0x925: 0x0008, 0x926: 0x0040, 0x927: 0x0008, 0x928: 0x0040, 0x929: 0x0040,
+       0x92a: 0x0008, 0x92b: 0x0008, 0x92c: 0x0040, 0x92d: 0x0008, 0x92e: 0x0008, 0x92f: 0x0008,
+       0x930: 0x0008, 0x931: 0x3308, 0x932: 0x0008, 0x933: 0x0929, 0x934: 0x3308, 0x935: 0x3308,
+       0x936: 0x3308, 0x937: 0x3308, 0x938: 0x3308, 0x939: 0x3308, 0x93a: 0x0040, 0x93b: 0x3308,
+       0x93c: 0x3308, 0x93d: 0x0008, 0x93e: 0x0040, 0x93f: 0x0040,
+       // Block 0x25, offset 0x940
+       0x940: 0x0008, 0x941: 0x0008, 0x942: 0x0008, 0x943: 0x09d1, 0x944: 0x0008, 0x945: 0x0008,
+       0x946: 0x0008, 0x947: 0x0008, 0x948: 0x0040, 0x949: 0x0008, 0x94a: 0x0008, 0x94b: 0x0008,
+       0x94c: 0x0008, 0x94d: 0x0a09, 0x94e: 0x0008, 0x94f: 0x0008, 0x950: 0x0008, 0x951: 0x0008,
+       0x952: 0x0a41, 0x953: 0x0008, 0x954: 0x0008, 0x955: 0x0008, 0x956: 0x0008, 0x957: 0x0a79,
+       0x958: 0x0008, 0x959: 0x0008, 0x95a: 0x0008, 0x95b: 0x0008, 0x95c: 0x0ab1, 0x95d: 0x0008,
+       0x95e: 0x0008, 0x95f: 0x0008, 0x960: 0x0008, 0x961: 0x0008, 0x962: 0x0008, 0x963: 0x0008,
+       0x964: 0x0008, 0x965: 0x0008, 0x966: 0x0008, 0x967: 0x0008, 0x968: 0x0008, 0x969: 0x0ae9,
+       0x96a: 0x0008, 0x96b: 0x0008, 0x96c: 0x0008, 0x96d: 0x0040, 0x96e: 0x0040, 0x96f: 0x0040,
+       0x970: 0x0040, 0x971: 0x3308, 0x972: 0x3308, 0x973: 0x0b21, 0x974: 0x3308, 0x975: 0x0b59,
+       0x976: 0x0b91, 0x977: 0x0bc9, 0x978: 0x0c19, 0x979: 0x0c51, 0x97a: 0x3308, 0x97b: 0x3308,
+       0x97c: 0x3308, 0x97d: 0x3308, 0x97e: 0x3308, 0x97f: 0x3008,
+       // Block 0x26, offset 0x980
+       0x980: 0x3308, 0x981: 0x0ca1, 0x982: 0x3308, 0x983: 0x3308, 0x984: 0x3b08, 0x985: 0x0018,
+       0x986: 0x3308, 0x987: 0x3308, 0x988: 0x0008, 0x989: 0x0008, 0x98a: 0x0008, 0x98b: 0x0008,
+       0x98c: 0x0008, 0x98d: 0x3308, 0x98e: 0x3308, 0x98f: 0x3308, 0x990: 0x3308, 0x991: 0x3308,
+       0x992: 0x3308, 0x993: 0x0cd9, 0x994: 0x3308, 0x995: 0x3308, 0x996: 0x3308, 0x997: 0x3308,
+       0x998: 0x0040, 0x999: 0x3308, 0x99a: 0x3308, 0x99b: 0x3308, 0x99c: 0x3308, 0x99d: 0x0d11,
+       0x99e: 0x3308, 0x99f: 0x3308, 0x9a0: 0x3308, 0x9a1: 0x3308, 0x9a2: 0x0d49, 0x9a3: 0x3308,
+       0x9a4: 0x3308, 0x9a5: 0x3308, 0x9a6: 0x3308, 0x9a7: 0x0d81, 0x9a8: 0x3308, 0x9a9: 0x3308,
+       0x9aa: 0x3308, 0x9ab: 0x3308, 0x9ac: 0x0db9, 0x9ad: 0x3308, 0x9ae: 0x3308, 0x9af: 0x3308,
+       0x9b0: 0x3308, 0x9b1: 0x3308, 0x9b2: 0x3308, 0x9b3: 0x3308, 0x9b4: 0x3308, 0x9b5: 0x3308,
+       0x9b6: 0x3308, 0x9b7: 0x3308, 0x9b8: 0x3308, 0x9b9: 0x0df1, 0x9ba: 0x3308, 0x9bb: 0x3308,
+       0x9bc: 0x3308, 0x9bd: 0x0040, 0x9be: 0x0018, 0x9bf: 0x0018,
+       // Block 0x27, offset 0x9c0
+       0x9c0: 0x0008, 0x9c1: 0x0008, 0x9c2: 0x0008, 0x9c3: 0x0008, 0x9c4: 0x0008, 0x9c5: 0x0008,
+       0x9c6: 0x0008, 0x9c7: 0x0008, 0x9c8: 0x0008, 0x9c9: 0x0008, 0x9ca: 0x0008, 0x9cb: 0x0008,
+       0x9cc: 0x0008, 0x9cd: 0x0008, 0x9ce: 0x0008, 0x9cf: 0x0008, 0x9d0: 0x0008, 0x9d1: 0x0008,
+       0x9d2: 0x0008, 0x9d3: 0x0008, 0x9d4: 0x0008, 0x9d5: 0x0008, 0x9d6: 0x0008, 0x9d7: 0x0008,
+       0x9d8: 0x0008, 0x9d9: 0x0008, 0x9da: 0x0008, 0x9db: 0x0008, 0x9dc: 0x0008, 0x9dd: 0x0008,
+       0x9de: 0x0008, 0x9df: 0x0008, 0x9e0: 0x0008, 0x9e1: 0x0008, 0x9e2: 0x0008, 0x9e3: 0x0008,
+       0x9e4: 0x0008, 0x9e5: 0x0008, 0x9e6: 0x0008, 0x9e7: 0x0008, 0x9e8: 0x0008, 0x9e9: 0x0008,
+       0x9ea: 0x0008, 0x9eb: 0x0008, 0x9ec: 0x0039, 0x9ed: 0x0ed1, 0x9ee: 0x0ee9, 0x9ef: 0x0008,
+       0x9f0: 0x0ef9, 0x9f1: 0x0f09, 0x9f2: 0x0f19, 0x9f3: 0x0f31, 0x9f4: 0x0249, 0x9f5: 0x0f41,
+       0x9f6: 0x0259, 0x9f7: 0x0f51, 0x9f8: 0x0359, 0x9f9: 0x0f61, 0x9fa: 0x0f71, 0x9fb: 0x0008,
+       0x9fc: 0x00d9, 0x9fd: 0x0f81, 0x9fe: 0x0f99, 0x9ff: 0x0269,
+       // Block 0x28, offset 0xa00
+       0xa00: 0x0fa9, 0xa01: 0x0fb9, 0xa02: 0x0279, 0xa03: 0x0039, 0xa04: 0x0fc9, 0xa05: 0x0fe1,
+       0xa06: 0x059d, 0xa07: 0x0ee9, 0xa08: 0x0ef9, 0xa09: 0x0f09, 0xa0a: 0x0ff9, 0xa0b: 0x1011,
+       0xa0c: 0x1029, 0xa0d: 0x0f31, 0xa0e: 0x0008, 0xa0f: 0x0f51, 0xa10: 0x0f61, 0xa11: 0x1041,
+       0xa12: 0x00d9, 0xa13: 0x1059, 0xa14: 0x05b5, 0xa15: 0x05b5, 0xa16: 0x0f99, 0xa17: 0x0fa9,
+       0xa18: 0x0fb9, 0xa19: 0x059d, 0xa1a: 0x1071, 0xa1b: 0x1089, 0xa1c: 0x05cd, 0xa1d: 0x1099,
+       0xa1e: 0x10b1, 0xa1f: 0x10c9, 0xa20: 0x10e1, 0xa21: 0x10f9, 0xa22: 0x0f41, 0xa23: 0x0269,
+       0xa24: 0x0fb9, 0xa25: 0x1089, 0xa26: 0x1099, 0xa27: 0x10b1, 0xa28: 0x1111, 0xa29: 0x10e1,
+       0xa2a: 0x10f9, 0xa2b: 0x0008, 0xa2c: 0x0008, 0xa2d: 0x0008, 0xa2e: 0x0008, 0xa2f: 0x0008,
+       0xa30: 0x0008, 0xa31: 0x0008, 0xa32: 0x0008, 0xa33: 0x0008, 0xa34: 0x0008, 0xa35: 0x0008,
+       0xa36: 0x0008, 0xa37: 0x0008, 0xa38: 0x1129, 0xa39: 0x0008, 0xa3a: 0x0008, 0xa3b: 0x0008,
+       0xa3c: 0x0008, 0xa3d: 0x0008, 0xa3e: 0x0008, 0xa3f: 0x0008,
+       // Block 0x29, offset 0xa40
+       0xa40: 0x0008, 0xa41: 0x0008, 0xa42: 0x0008, 0xa43: 0x0008, 0xa44: 0x0008, 0xa45: 0x0008,
+       0xa46: 0x0008, 0xa47: 0x0008, 0xa48: 0x0008, 0xa49: 0x0008, 0xa4a: 0x0008, 0xa4b: 0x0008,
+       0xa4c: 0x0008, 0xa4d: 0x0008, 0xa4e: 0x0008, 0xa4f: 0x0008, 0xa50: 0x0008, 0xa51: 0x0008,
+       0xa52: 0x0008, 0xa53: 0x0008, 0xa54: 0x0008, 0xa55: 0x0008, 0xa56: 0x0008, 0xa57: 0x0008,
+       0xa58: 0x0008, 0xa59: 0x0008, 0xa5a: 0x0008, 0xa5b: 0x1141, 0xa5c: 0x1159, 0xa5d: 0x1169,
+       0xa5e: 0x1181, 0xa5f: 0x1029, 0xa60: 0x1199, 0xa61: 0x11a9, 0xa62: 0x11c1, 0xa63: 0x11d9,
+       0xa64: 0x11f1, 0xa65: 0x1209, 0xa66: 0x1221, 0xa67: 0x05e5, 0xa68: 0x1239, 0xa69: 0x1251,
+       0xa6a: 0xe17d, 0xa6b: 0x1269, 0xa6c: 0x1281, 0xa6d: 0x1299, 0xa6e: 0x12b1, 0xa6f: 0x12c9,
+       0xa70: 0x12e1, 0xa71: 0x12f9, 0xa72: 0x1311, 0xa73: 0x1329, 0xa74: 0x1341, 0xa75: 0x1359,
+       0xa76: 0x1371, 0xa77: 0x1389, 0xa78: 0x05fd, 0xa79: 0x13a1, 0xa7a: 0x13b9, 0xa7b: 0x13d1,
+       0xa7c: 0x13e1, 0xa7d: 0x13f9, 0xa7e: 0x1411, 0xa7f: 0x1429,
+       // Block 0x2a, offset 0xa80
+       0xa80: 0xe00d, 0xa81: 0x0008, 0xa82: 0xe00d, 0xa83: 0x0008, 0xa84: 0xe00d, 0xa85: 0x0008,
+       0xa86: 0xe00d, 0xa87: 0x0008, 0xa88: 0xe00d, 0xa89: 0x0008, 0xa8a: 0xe00d, 0xa8b: 0x0008,
+       0xa8c: 0xe00d, 0xa8d: 0x0008, 0xa8e: 0xe00d, 0xa8f: 0x0008, 0xa90: 0xe00d, 0xa91: 0x0008,
+       0xa92: 0xe00d, 0xa93: 0x0008, 0xa94: 0xe00d, 0xa95: 0x0008, 0xa96: 0xe00d, 0xa97: 0x0008,
+       0xa98: 0xe00d, 0xa99: 0x0008, 0xa9a: 0xe00d, 0xa9b: 0x0008, 0xa9c: 0xe00d, 0xa9d: 0x0008,
+       0xa9e: 0xe00d, 0xa9f: 0x0008, 0xaa0: 0xe00d, 0xaa1: 0x0008, 0xaa2: 0xe00d, 0xaa3: 0x0008,
+       0xaa4: 0xe00d, 0xaa5: 0x0008, 0xaa6: 0xe00d, 0xaa7: 0x0008, 0xaa8: 0xe00d, 0xaa9: 0x0008,
+       0xaaa: 0xe00d, 0xaab: 0x0008, 0xaac: 0xe00d, 0xaad: 0x0008, 0xaae: 0xe00d, 0xaaf: 0x0008,
+       0xab0: 0xe00d, 0xab1: 0x0008, 0xab2: 0xe00d, 0xab3: 0x0008, 0xab4: 0xe00d, 0xab5: 0x0008,
+       0xab6: 0xe00d, 0xab7: 0x0008, 0xab8: 0xe00d, 0xab9: 0x0008, 0xaba: 0xe00d, 0xabb: 0x0008,
+       0xabc: 0xe00d, 0xabd: 0x0008, 0xabe: 0xe00d, 0xabf: 0x0008,
+       // Block 0x2b, offset 0xac0
+       0xac0: 0xe00d, 0xac1: 0x0008, 0xac2: 0xe00d, 0xac3: 0x0008, 0xac4: 0xe00d, 0xac5: 0x0008,
+       0xac6: 0xe00d, 0xac7: 0x0008, 0xac8: 0xe00d, 0xac9: 0x0008, 0xaca: 0xe00d, 0xacb: 0x0008,
+       0xacc: 0xe00d, 0xacd: 0x0008, 0xace: 0xe00d, 0xacf: 0x0008, 0xad0: 0xe00d, 0xad1: 0x0008,
+       0xad2: 0xe00d, 0xad3: 0x0008, 0xad4: 0xe00d, 0xad5: 0x0008, 0xad6: 0x0008, 0xad7: 0x0008,
+       0xad8: 0x0008, 0xad9: 0x0008, 0xada: 0x0615, 0xadb: 0x0635, 0xadc: 0x0008, 0xadd: 0x0008,
+       0xade: 0x1441, 0xadf: 0x0008, 0xae0: 0xe00d, 0xae1: 0x0008, 0xae2: 0xe00d, 0xae3: 0x0008,
+       0xae4: 0xe00d, 0xae5: 0x0008, 0xae6: 0xe00d, 0xae7: 0x0008, 0xae8: 0xe00d, 0xae9: 0x0008,
+       0xaea: 0xe00d, 0xaeb: 0x0008, 0xaec: 0xe00d, 0xaed: 0x0008, 0xaee: 0xe00d, 0xaef: 0x0008,
+       0xaf0: 0xe00d, 0xaf1: 0x0008, 0xaf2: 0xe00d, 0xaf3: 0x0008, 0xaf4: 0xe00d, 0xaf5: 0x0008,
+       0xaf6: 0xe00d, 0xaf7: 0x0008, 0xaf8: 0xe00d, 0xaf9: 0x0008, 0xafa: 0xe00d, 0xafb: 0x0008,
+       0xafc: 0xe00d, 0xafd: 0x0008, 0xafe: 0xe00d, 0xaff: 0x0008,
+       // Block 0x2c, offset 0xb00
+       0xb00: 0x0008, 0xb01: 0x0008, 0xb02: 0x0008, 0xb03: 0x0008, 0xb04: 0x0008, 0xb05: 0x0008,
+       0xb06: 0x0040, 0xb07: 0x0040, 0xb08: 0xe045, 0xb09: 0xe045, 0xb0a: 0xe045, 0xb0b: 0xe045,
+       0xb0c: 0xe045, 0xb0d: 0xe045, 0xb0e: 0x0040, 0xb0f: 0x0040, 0xb10: 0x0008, 0xb11: 0x0008,
+       0xb12: 0x0008, 0xb13: 0x0008, 0xb14: 0x0008, 0xb15: 0x0008, 0xb16: 0x0008, 0xb17: 0x0008,
+       0xb18: 0x0040, 0xb19: 0xe045, 0xb1a: 0x0040, 0xb1b: 0xe045, 0xb1c: 0x0040, 0xb1d: 0xe045,
+       0xb1e: 0x0040, 0xb1f: 0xe045, 0xb20: 0x0008, 0xb21: 0x0008, 0xb22: 0x0008, 0xb23: 0x0008,
+       0xb24: 0x0008, 0xb25: 0x0008, 0xb26: 0x0008, 0xb27: 0x0008, 0xb28: 0xe045, 0xb29: 0xe045,
+       0xb2a: 0xe045, 0xb2b: 0xe045, 0xb2c: 0xe045, 0xb2d: 0xe045, 0xb2e: 0xe045, 0xb2f: 0xe045,
+       0xb30: 0x0008, 0xb31: 0x1459, 0xb32: 0x0008, 0xb33: 0x1471, 0xb34: 0x0008, 0xb35: 0x1489,
+       0xb36: 0x0008, 0xb37: 0x14a1, 0xb38: 0x0008, 0xb39: 0x14b9, 0xb3a: 0x0008, 0xb3b: 0x14d1,
+       0xb3c: 0x0008, 0xb3d: 0x14e9, 0xb3e: 0x0040, 0xb3f: 0x0040,
+       // Block 0x2d, offset 0xb40
+       0xb40: 0x1501, 0xb41: 0x1531, 0xb42: 0x1561, 0xb43: 0x1591, 0xb44: 0x15c1, 0xb45: 0x15f1,
+       0xb46: 0x1621, 0xb47: 0x1651, 0xb48: 0x1501, 0xb49: 0x1531, 0xb4a: 0x1561, 0xb4b: 0x1591,
+       0xb4c: 0x15c1, 0xb4d: 0x15f1, 0xb4e: 0x1621, 0xb4f: 0x1651, 0xb50: 0x1681, 0xb51: 0x16b1,
+       0xb52: 0x16e1, 0xb53: 0x1711, 0xb54: 0x1741, 0xb55: 0x1771, 0xb56: 0x17a1, 0xb57: 0x17d1,
+       0xb58: 0x1681, 0xb59: 0x16b1, 0xb5a: 0x16e1, 0xb5b: 0x1711, 0xb5c: 0x1741, 0xb5d: 0x1771,
+       0xb5e: 0x17a1, 0xb5f: 0x17d1, 0xb60: 0x1801, 0xb61: 0x1831, 0xb62: 0x1861, 0xb63: 0x1891,
+       0xb64: 0x18c1, 0xb65: 0x18f1, 0xb66: 0x1921, 0xb67: 0x1951, 0xb68: 0x1801, 0xb69: 0x1831,
+       0xb6a: 0x1861, 0xb6b: 0x1891, 0xb6c: 0x18c1, 0xb6d: 0x18f1, 0xb6e: 0x1921, 0xb6f: 0x1951,
+       0xb70: 0x0008, 0xb71: 0x0008, 0xb72: 0x1981, 0xb73: 0x19b1, 0xb74: 0x19d9, 0xb75: 0x0040,
+       0xb76: 0x0008, 0xb77: 0x1a01, 0xb78: 0xe045, 0xb79: 0xe045, 0xb7a: 0x064d, 0xb7b: 0x1459,
+       0xb7c: 0x19b1, 0xb7d: 0x0666, 0xb7e: 0x1a31, 0xb7f: 0x0686,
+       // Block 0x2e, offset 0xb80
+       0xb80: 0x06a6, 0xb81: 0x1a4a, 0xb82: 0x1a79, 0xb83: 0x1aa9, 0xb84: 0x1ad1, 0xb85: 0x0040,
+       0xb86: 0x0008, 0xb87: 0x1af9, 0xb88: 0x06c5, 0xb89: 0x1471, 0xb8a: 0x06dd, 0xb8b: 0x1489,
+       0xb8c: 0x1aa9, 0xb8d: 0x1b2a, 0xb8e: 0x1b5a, 0xb8f: 0x1b8a, 0xb90: 0x0008, 0xb91: 0x0008,
+       0xb92: 0x0008, 0xb93: 0x1bb9, 0xb94: 0x0040, 0xb95: 0x0040, 0xb96: 0x0008, 0xb97: 0x0008,
+       0xb98: 0xe045, 0xb99: 0xe045, 0xb9a: 0x06f5, 0xb9b: 0x14a1, 0xb9c: 0x0040, 0xb9d: 0x1bd2,
+       0xb9e: 0x1c02, 0xb9f: 0x1c32, 0xba0: 0x0008, 0xba1: 0x0008, 0xba2: 0x0008, 0xba3: 0x1c61,
+       0xba4: 0x0008, 0xba5: 0x0008, 0xba6: 0x0008, 0xba7: 0x0008, 0xba8: 0xe045, 0xba9: 0xe045,
+       0xbaa: 0x070d, 0xbab: 0x14d1, 0xbac: 0xe04d, 0xbad: 0x1c7a, 0xbae: 0x03d2, 0xbaf: 0x1caa,
+       0xbb0: 0x0040, 0xbb1: 0x0040, 0xbb2: 0x1cb9, 0xbb3: 0x1ce9, 0xbb4: 0x1d11, 0xbb5: 0x0040,
+       0xbb6: 0x0008, 0xbb7: 0x1d39, 0xbb8: 0x0725, 0xbb9: 0x14b9, 0xbba: 0x0515, 0xbbb: 0x14e9,
+       0xbbc: 0x1ce9, 0xbbd: 0x073e, 0xbbe: 0x075e, 0xbbf: 0x0040,
+       // Block 0x2f, offset 0xbc0
+       0xbc0: 0x000a, 0xbc1: 0x000a, 0xbc2: 0x000a, 0xbc3: 0x000a, 0xbc4: 0x000a, 0xbc5: 0x000a,
+       0xbc6: 0x000a, 0xbc7: 0x000a, 0xbc8: 0x000a, 0xbc9: 0x000a, 0xbca: 0x000a, 0xbcb: 0x03c0,
+       0xbcc: 0x0003, 0xbcd: 0x0003, 0xbce: 0x0340, 0xbcf: 0x0b40, 0xbd0: 0x0018, 0xbd1: 0xe00d,
+       0xbd2: 0x0018, 0xbd3: 0x0018, 0xbd4: 0x0018, 0xbd5: 0x0018, 0xbd6: 0x0018, 0xbd7: 0x077e,
+       0xbd8: 0x0018, 0xbd9: 0x0018, 0xbda: 0x0018, 0xbdb: 0x0018, 0xbdc: 0x0018, 0xbdd: 0x0018,
+       0xbde: 0x0018, 0xbdf: 0x0018, 0xbe0: 0x0018, 0xbe1: 0x0018, 0xbe2: 0x0018, 0xbe3: 0x0018,
+       0xbe4: 0x0040, 0xbe5: 0x0040, 0xbe6: 0x0040, 0xbe7: 0x0018, 0xbe8: 0x0040, 0xbe9: 0x0040,
+       0xbea: 0x0340, 0xbeb: 0x0340, 0xbec: 0x0340, 0xbed: 0x0340, 0xbee: 0x0340, 0xbef: 0x000a,
+       0xbf0: 0x0018, 0xbf1: 0x0018, 0xbf2: 0x0018, 0xbf3: 0x1d69, 0xbf4: 0x1da1, 0xbf5: 0x0018,
+       0xbf6: 0x1df1, 0xbf7: 0x1e29, 0xbf8: 0x0018, 0xbf9: 0x0018, 0xbfa: 0x0018, 0xbfb: 0x0018,
+       0xbfc: 0x1e7a, 0xbfd: 0x0018, 0xbfe: 0x079e, 0xbff: 0x0018,
+       // Block 0x30, offset 0xc00
+       0xc00: 0x0018, 0xc01: 0x0018, 0xc02: 0x0018, 0xc03: 0x0018, 0xc04: 0x0018, 0xc05: 0x0018,
+       0xc06: 0x0018, 0xc07: 0x1e92, 0xc08: 0x1eaa, 0xc09: 0x1ec2, 0xc0a: 0x0018, 0xc0b: 0x0018,
+       0xc0c: 0x0018, 0xc0d: 0x0018, 0xc0e: 0x0018, 0xc0f: 0x0018, 0xc10: 0x0018, 0xc11: 0x0018,
+       0xc12: 0x0018, 0xc13: 0x0018, 0xc14: 0x0018, 0xc15: 0x0018, 0xc16: 0x0018, 0xc17: 0x1ed9,
+       0xc18: 0x0018, 0xc19: 0x0018, 0xc1a: 0x0018, 0xc1b: 0x0018, 0xc1c: 0x0018, 0xc1d: 0x0018,
+       0xc1e: 0x0018, 0xc1f: 0x000a, 0xc20: 0x03c0, 0xc21: 0x0340, 0xc22: 0x0340, 0xc23: 0x0340,
+       0xc24: 0x03c0, 0xc25: 0x0040, 0xc26: 0x0040, 0xc27: 0x0040, 0xc28: 0x0040, 0xc29: 0x0040,
+       0xc2a: 0x0340, 0xc2b: 0x0340, 0xc2c: 0x0340, 0xc2d: 0x0340, 0xc2e: 0x0340, 0xc2f: 0x0340,
+       0xc30: 0x1f41, 0xc31: 0x0f41, 0xc32: 0x0040, 0xc33: 0x0040, 0xc34: 0x1f51, 0xc35: 0x1f61,
+       0xc36: 0x1f71, 0xc37: 0x1f81, 0xc38: 0x1f91, 0xc39: 0x1fa1, 0xc3a: 0x1fb2, 0xc3b: 0x07bd,
+       0xc3c: 0x1fc2, 0xc3d: 0x1fd2, 0xc3e: 0x1fe2, 0xc3f: 0x0f71,
+       // Block 0x31, offset 0xc40
+       0xc40: 0x1f41, 0xc41: 0x00c9, 0xc42: 0x0069, 0xc43: 0x0079, 0xc44: 0x1f51, 0xc45: 0x1f61,
+       0xc46: 0x1f71, 0xc47: 0x1f81, 0xc48: 0x1f91, 0xc49: 0x1fa1, 0xc4a: 0x1fb2, 0xc4b: 0x07d5,
+       0xc4c: 0x1fc2, 0xc4d: 0x1fd2, 0xc4e: 0x1fe2, 0xc4f: 0x0040, 0xc50: 0x0039, 0xc51: 0x0f09,
+       0xc52: 0x00d9, 0xc53: 0x0369, 0xc54: 0x0ff9, 0xc55: 0x0249, 0xc56: 0x0f51, 0xc57: 0x0359,
+       0xc58: 0x0f61, 0xc59: 0x0f71, 0xc5a: 0x0f99, 0xc5b: 0x01d9, 0xc5c: 0x0fa9, 0xc5d: 0x0040,
+       0xc5e: 0x0040, 0xc5f: 0x0040, 0xc60: 0x0018, 0xc61: 0x0018, 0xc62: 0x0018, 0xc63: 0x0018,
+       0xc64: 0x0018, 0xc65: 0x0018, 0xc66: 0x0018, 0xc67: 0x0018, 0xc68: 0x1ff1, 0xc69: 0x0018,
+       0xc6a: 0x0018, 0xc6b: 0x0018, 0xc6c: 0x0018, 0xc6d: 0x0018, 0xc6e: 0x0018, 0xc6f: 0x0018,
+       0xc70: 0x0018, 0xc71: 0x0018, 0xc72: 0x0018, 0xc73: 0x0018, 0xc74: 0x0018, 0xc75: 0x0018,
+       0xc76: 0x0018, 0xc77: 0x0018, 0xc78: 0x0018, 0xc79: 0x0018, 0xc7a: 0x0018, 0xc7b: 0x0018,
+       0xc7c: 0x0018, 0xc7d: 0x0018, 0xc7e: 0x0018, 0xc7f: 0x0018,
+       // Block 0x32, offset 0xc80
+       0xc80: 0x07ee, 0xc81: 0x080e, 0xc82: 0x1159, 0xc83: 0x082d, 0xc84: 0x0018, 0xc85: 0x084e,
+       0xc86: 0x086e, 0xc87: 0x1011, 0xc88: 0x0018, 0xc89: 0x088d, 0xc8a: 0x0f31, 0xc8b: 0x0249,
+       0xc8c: 0x0249, 0xc8d: 0x0249, 0xc8e: 0x0249, 0xc8f: 0x2009, 0xc90: 0x0f41, 0xc91: 0x0f41,
+       0xc92: 0x0359, 0xc93: 0x0359, 0xc94: 0x0018, 0xc95: 0x0f71, 0xc96: 0x2021, 0xc97: 0x0018,
+       0xc98: 0x0018, 0xc99: 0x0f99, 0xc9a: 0x2039, 0xc9b: 0x0269, 0xc9c: 0x0269, 0xc9d: 0x0269,
+       0xc9e: 0x0018, 0xc9f: 0x0018, 0xca0: 0x2049, 0xca1: 0x08ad, 0xca2: 0x2061, 0xca3: 0x0018,
+       0xca4: 0x13d1, 0xca5: 0x0018, 0xca6: 0x2079, 0xca7: 0x0018, 0xca8: 0x13d1, 0xca9: 0x0018,
+       0xcaa: 0x0f51, 0xcab: 0x2091, 0xcac: 0x0ee9, 0xcad: 0x1159, 0xcae: 0x0018, 0xcaf: 0x0f09,
+       0xcb0: 0x0f09, 0xcb1: 0x1199, 0xcb2: 0x0040, 0xcb3: 0x0f61, 0xcb4: 0x00d9, 0xcb5: 0x20a9,
+       0xcb6: 0x20c1, 0xcb7: 0x20d9, 0xcb8: 0x20f1, 0xcb9: 0x0f41, 0xcba: 0x0018, 0xcbb: 0x08cd,
+       0xcbc: 0x2109, 0xcbd: 0x10b1, 0xcbe: 0x10b1, 0xcbf: 0x2109,
+       // Block 0x33, offset 0xcc0
+       0xcc0: 0x08ed, 0xcc1: 0x0018, 0xcc2: 0x0018, 0xcc3: 0x0018, 0xcc4: 0x0018, 0xcc5: 0x0ef9,
+       0xcc6: 0x0ef9, 0xcc7: 0x0f09, 0xcc8: 0x0f41, 0xcc9: 0x0259, 0xcca: 0x0018, 0xccb: 0x0018,
+       0xccc: 0x0018, 0xccd: 0x0018, 0xcce: 0x0008, 0xccf: 0x0018, 0xcd0: 0x2121, 0xcd1: 0x2151,
+       0xcd2: 0x2181, 0xcd3: 0x21b9, 0xcd4: 0x21e9, 0xcd5: 0x2219, 0xcd6: 0x2249, 0xcd7: 0x2279,
+       0xcd8: 0x22a9, 0xcd9: 0x22d9, 0xcda: 0x2309, 0xcdb: 0x2339, 0xcdc: 0x2369, 0xcdd: 0x2399,
+       0xcde: 0x23c9, 0xcdf: 0x23f9, 0xce0: 0x0f41, 0xce1: 0x2421, 0xce2: 0x0905, 0xce3: 0x2439,
+       0xce4: 0x1089, 0xce5: 0x2451, 0xce6: 0x0925, 0xce7: 0x2469, 0xce8: 0x2491, 0xce9: 0x0369,
+       0xcea: 0x24a9, 0xceb: 0x0945, 0xcec: 0x0359, 0xced: 0x1159, 0xcee: 0x0ef9, 0xcef: 0x0f61,
+       0xcf0: 0x0f41, 0xcf1: 0x2421, 0xcf2: 0x0965, 0xcf3: 0x2439, 0xcf4: 0x1089, 0xcf5: 0x2451,
+       0xcf6: 0x0985, 0xcf7: 0x2469, 0xcf8: 0x2491, 0xcf9: 0x0369, 0xcfa: 0x24a9, 0xcfb: 0x09a5,
+       0xcfc: 0x0359, 0xcfd: 0x1159, 0xcfe: 0x0ef9, 0xcff: 0x0f61,
+       // Block 0x34, offset 0xd00
+       0xd00: 0x0018, 0xd01: 0x0018, 0xd02: 0x0018, 0xd03: 0x0018, 0xd04: 0x0018, 0xd05: 0x0018,
+       0xd06: 0x0018, 0xd07: 0x0018, 0xd08: 0x0018, 0xd09: 0x0018, 0xd0a: 0x0018, 0xd0b: 0x0040,
+       0xd0c: 0x0040, 0xd0d: 0x0040, 0xd0e: 0x0040, 0xd0f: 0x0040, 0xd10: 0x0040, 0xd11: 0x0040,
+       0xd12: 0x0040, 0xd13: 0x0040, 0xd14: 0x0040, 0xd15: 0x0040, 0xd16: 0x0040, 0xd17: 0x0040,
+       0xd18: 0x0040, 0xd19: 0x0040, 0xd1a: 0x0040, 0xd1b: 0x0040, 0xd1c: 0x0040, 0xd1d: 0x0040,
+       0xd1e: 0x0040, 0xd1f: 0x0040, 0xd20: 0x00c9, 0xd21: 0x0069, 0xd22: 0x0079, 0xd23: 0x1f51,
+       0xd24: 0x1f61, 0xd25: 0x1f71, 0xd26: 0x1f81, 0xd27: 0x1f91, 0xd28: 0x1fa1, 0xd29: 0x2601,
+       0xd2a: 0x2619, 0xd2b: 0x2631, 0xd2c: 0x2649, 0xd2d: 0x2661, 0xd2e: 0x2679, 0xd2f: 0x2691,
+       0xd30: 0x26a9, 0xd31: 0x26c1, 0xd32: 0x26d9, 0xd33: 0x26f1, 0xd34: 0x0a06, 0xd35: 0x0a26,
+       0xd36: 0x0a46, 0xd37: 0x0a66, 0xd38: 0x0a86, 0xd39: 0x0aa6, 0xd3a: 0x0ac6, 0xd3b: 0x0ae6,
+       0xd3c: 0x0b06, 0xd3d: 0x270a, 0xd3e: 0x2732, 0xd3f: 0x275a,
+       // Block 0x35, offset 0xd40
+       0xd40: 0x2782, 0xd41: 0x27aa, 0xd42: 0x27d2, 0xd43: 0x27fa, 0xd44: 0x2822, 0xd45: 0x284a,
+       0xd46: 0x2872, 0xd47: 0x289a, 0xd48: 0x0040, 0xd49: 0x0040, 0xd4a: 0x0040, 0xd4b: 0x0040,
+       0xd4c: 0x0040, 0xd4d: 0x0040, 0xd4e: 0x0040, 0xd4f: 0x0040, 0xd50: 0x0040, 0xd51: 0x0040,
+       0xd52: 0x0040, 0xd53: 0x0040, 0xd54: 0x0040, 0xd55: 0x0040, 0xd56: 0x0040, 0xd57: 0x0040,
+       0xd58: 0x0040, 0xd59: 0x0040, 0xd5a: 0x0040, 0xd5b: 0x0040, 0xd5c: 0x0b26, 0xd5d: 0x0b46,
+       0xd5e: 0x0b66, 0xd5f: 0x0b86, 0xd60: 0x0ba6, 0xd61: 0x0bc6, 0xd62: 0x0be6, 0xd63: 0x0c06,
+       0xd64: 0x0c26, 0xd65: 0x0c46, 0xd66: 0x0c66, 0xd67: 0x0c86, 0xd68: 0x0ca6, 0xd69: 0x0cc6,
+       0xd6a: 0x0ce6, 0xd6b: 0x0d06, 0xd6c: 0x0d26, 0xd6d: 0x0d46, 0xd6e: 0x0d66, 0xd6f: 0x0d86,
+       0xd70: 0x0da6, 0xd71: 0x0dc6, 0xd72: 0x0de6, 0xd73: 0x0e06, 0xd74: 0x0e26, 0xd75: 0x0e46,
+       0xd76: 0x0039, 0xd77: 0x0ee9, 0xd78: 0x1159, 0xd79: 0x0ef9, 0xd7a: 0x0f09, 0xd7b: 0x1199,
+       0xd7c: 0x0f31, 0xd7d: 0x0249, 0xd7e: 0x0f41, 0xd7f: 0x0259,
+       // Block 0x36, offset 0xd80
+       0xd80: 0x0f51, 0xd81: 0x0359, 0xd82: 0x0f61, 0xd83: 0x0f71, 0xd84: 0x00d9, 0xd85: 0x0f99,
+       0xd86: 0x2039, 0xd87: 0x0269, 0xd88: 0x01d9, 0xd89: 0x0fa9, 0xd8a: 0x0fb9, 0xd8b: 0x1089,
+       0xd8c: 0x0279, 0xd8d: 0x0369, 0xd8e: 0x0289, 0xd8f: 0x13d1, 0xd90: 0x0039, 0xd91: 0x0ee9,
+       0xd92: 0x1159, 0xd93: 0x0ef9, 0xd94: 0x0f09, 0xd95: 0x1199, 0xd96: 0x0f31, 0xd97: 0x0249,
+       0xd98: 0x0f41, 0xd99: 0x0259, 0xd9a: 0x0f51, 0xd9b: 0x0359, 0xd9c: 0x0f61, 0xd9d: 0x0f71,
+       0xd9e: 0x00d9, 0xd9f: 0x0f99, 0xda0: 0x2039, 0xda1: 0x0269, 0xda2: 0x01d9, 0xda3: 0x0fa9,
+       0xda4: 0x0fb9, 0xda5: 0x1089, 0xda6: 0x0279, 0xda7: 0x0369, 0xda8: 0x0289, 0xda9: 0x13d1,
+       0xdaa: 0x1f41, 0xdab: 0x0018, 0xdac: 0x0018, 0xdad: 0x0018, 0xdae: 0x0018, 0xdaf: 0x0018,
+       0xdb0: 0x0018, 0xdb1: 0x0018, 0xdb2: 0x0018, 0xdb3: 0x0018, 0xdb4: 0x0018, 0xdb5: 0x0018,
+       0xdb6: 0x0018, 0xdb7: 0x0018, 0xdb8: 0x0018, 0xdb9: 0x0018, 0xdba: 0x0018, 0xdbb: 0x0018,
+       0xdbc: 0x0018, 0xdbd: 0x0018, 0xdbe: 0x0018, 0xdbf: 0x0018,
+       // Block 0x37, offset 0xdc0
+       0xdc0: 0x0008, 0xdc1: 0x0008, 0xdc2: 0x0008, 0xdc3: 0x0008, 0xdc4: 0x0008, 0xdc5: 0x0008,
+       0xdc6: 0x0008, 0xdc7: 0x0008, 0xdc8: 0x0008, 0xdc9: 0x0008, 0xdca: 0x0008, 0xdcb: 0x0008,
+       0xdcc: 0x0008, 0xdcd: 0x0008, 0xdce: 0x0008, 0xdcf: 0x0008, 0xdd0: 0x0008, 0xdd1: 0x0008,
+       0xdd2: 0x0008, 0xdd3: 0x0008, 0xdd4: 0x0008, 0xdd5: 0x0008, 0xdd6: 0x0008, 0xdd7: 0x0008,
+       0xdd8: 0x0008, 0xdd9: 0x0008, 0xdda: 0x0008, 0xddb: 0x0008, 0xddc: 0x0008, 0xddd: 0x0008,
+       0xdde: 0x0008, 0xddf: 0x0040, 0xde0: 0xe00d, 0xde1: 0x0008, 0xde2: 0x2971, 0xde3: 0x0ebd,
+       0xde4: 0x2989, 0xde5: 0x0008, 0xde6: 0x0008, 0xde7: 0xe07d, 0xde8: 0x0008, 0xde9: 0xe01d,
+       0xdea: 0x0008, 0xdeb: 0xe03d, 0xdec: 0x0008, 0xded: 0x0fe1, 0xdee: 0x1281, 0xdef: 0x0fc9,
+       0xdf0: 0x1141, 0xdf1: 0x0008, 0xdf2: 0xe00d, 0xdf3: 0x0008, 0xdf4: 0x0008, 0xdf5: 0xe01d,
+       0xdf6: 0x0008, 0xdf7: 0x0008, 0xdf8: 0x0008, 0xdf9: 0x0008, 0xdfa: 0x0008, 0xdfb: 0x0008,
+       0xdfc: 0x0259, 0xdfd: 0x1089, 0xdfe: 0x29a1, 0xdff: 0x29b9,
+       // Block 0x38, offset 0xe00
+       0xe00: 0xe00d, 0xe01: 0x0008, 0xe02: 0xe00d, 0xe03: 0x0008, 0xe04: 0xe00d, 0xe05: 0x0008,
+       0xe06: 0xe00d, 0xe07: 0x0008, 0xe08: 0xe00d, 0xe09: 0x0008, 0xe0a: 0xe00d, 0xe0b: 0x0008,
+       0xe0c: 0xe00d, 0xe0d: 0x0008, 0xe0e: 0xe00d, 0xe0f: 0x0008, 0xe10: 0xe00d, 0xe11: 0x0008,
+       0xe12: 0xe00d, 0xe13: 0x0008, 0xe14: 0xe00d, 0xe15: 0x0008, 0xe16: 0xe00d, 0xe17: 0x0008,
+       0xe18: 0xe00d, 0xe19: 0x0008, 0xe1a: 0xe00d, 0xe1b: 0x0008, 0xe1c: 0xe00d, 0xe1d: 0x0008,
+       0xe1e: 0xe00d, 0xe1f: 0x0008, 0xe20: 0xe00d, 0xe21: 0x0008, 0xe22: 0xe00d, 0xe23: 0x0008,
+       0xe24: 0x0008, 0xe25: 0x0018, 0xe26: 0x0018, 0xe27: 0x0018, 0xe28: 0x0018, 0xe29: 0x0018,
+       0xe2a: 0x0018, 0xe2b: 0xe03d, 0xe2c: 0x0008, 0xe2d: 0xe01d, 0xe2e: 0x0008, 0xe2f: 0x3308,
+       0xe30: 0x3308, 0xe31: 0x3308, 0xe32: 0xe00d, 0xe33: 0x0008, 0xe34: 0x0040, 0xe35: 0x0040,
+       0xe36: 0x0040, 0xe37: 0x0040, 0xe38: 0x0040, 0xe39: 0x0018, 0xe3a: 0x0018, 0xe3b: 0x0018,
+       0xe3c: 0x0018, 0xe3d: 0x0018, 0xe3e: 0x0018, 0xe3f: 0x0018,
+       // Block 0x39, offset 0xe40
+       0xe40: 0x26fd, 0xe41: 0x271d, 0xe42: 0x273d, 0xe43: 0x275d, 0xe44: 0x277d, 0xe45: 0x279d,
+       0xe46: 0x27bd, 0xe47: 0x27dd, 0xe48: 0x27fd, 0xe49: 0x281d, 0xe4a: 0x283d, 0xe4b: 0x285d,
+       0xe4c: 0x287d, 0xe4d: 0x289d, 0xe4e: 0x28bd, 0xe4f: 0x28dd, 0xe50: 0x28fd, 0xe51: 0x291d,
+       0xe52: 0x293d, 0xe53: 0x295d, 0xe54: 0x297d, 0xe55: 0x299d, 0xe56: 0x0040, 0xe57: 0x0040,
+       0xe58: 0x0040, 0xe59: 0x0040, 0xe5a: 0x0040, 0xe5b: 0x0040, 0xe5c: 0x0040, 0xe5d: 0x0040,
+       0xe5e: 0x0040, 0xe5f: 0x0040, 0xe60: 0x0040, 0xe61: 0x0040, 0xe62: 0x0040, 0xe63: 0x0040,
+       0xe64: 0x0040, 0xe65: 0x0040, 0xe66: 0x0040, 0xe67: 0x0040, 0xe68: 0x0040, 0xe69: 0x0040,
+       0xe6a: 0x0040, 0xe6b: 0x0040, 0xe6c: 0x0040, 0xe6d: 0x0040, 0xe6e: 0x0040, 0xe6f: 0x0040,
+       0xe70: 0x0040, 0xe71: 0x0040, 0xe72: 0x0040, 0xe73: 0x0040, 0xe74: 0x0040, 0xe75: 0x0040,
+       0xe76: 0x0040, 0xe77: 0x0040, 0xe78: 0x0040, 0xe79: 0x0040, 0xe7a: 0x0040, 0xe7b: 0x0040,
+       0xe7c: 0x0040, 0xe7d: 0x0040, 0xe7e: 0x0040, 0xe7f: 0x0040,
+       // Block 0x3a, offset 0xe80
+       0xe80: 0x000a, 0xe81: 0x0018, 0xe82: 0x29d1, 0xe83: 0x0018, 0xe84: 0x0018, 0xe85: 0x0008,
+       0xe86: 0x0008, 0xe87: 0x0008, 0xe88: 0x0018, 0xe89: 0x0018, 0xe8a: 0x0018, 0xe8b: 0x0018,
+       0xe8c: 0x0018, 0xe8d: 0x0018, 0xe8e: 0x0018, 0xe8f: 0x0018, 0xe90: 0x0018, 0xe91: 0x0018,
+       0xe92: 0x0018, 0xe93: 0x0018, 0xe94: 0x0018, 0xe95: 0x0018, 0xe96: 0x0018, 0xe97: 0x0018,
+       0xe98: 0x0018, 0xe99: 0x0018, 0xe9a: 0x0018, 0xe9b: 0x0018, 0xe9c: 0x0018, 0xe9d: 0x0018,
+       0xe9e: 0x0018, 0xe9f: 0x0018, 0xea0: 0x0018, 0xea1: 0x0018, 0xea2: 0x0018, 0xea3: 0x0018,
+       0xea4: 0x0018, 0xea5: 0x0018, 0xea6: 0x0018, 0xea7: 0x0018, 0xea8: 0x0018, 0xea9: 0x0018,
+       0xeaa: 0x3308, 0xeab: 0x3308, 0xeac: 0x3308, 0xead: 0x3308, 0xeae: 0x3018, 0xeaf: 0x3018,
+       0xeb0: 0x0018, 0xeb1: 0x0018, 0xeb2: 0x0018, 0xeb3: 0x0018, 0xeb4: 0x0018, 0xeb5: 0x0018,
+       0xeb6: 0xe125, 0xeb7: 0x0018, 0xeb8: 0x29bd, 0xeb9: 0x29dd, 0xeba: 0x29fd, 0xebb: 0x0018,
+       0xebc: 0x0008, 0xebd: 0x0018, 0xebe: 0x0018, 0xebf: 0x0018,
+       // Block 0x3b, offset 0xec0
+       0xec0: 0x2b3d, 0xec1: 0x2b5d, 0xec2: 0x2b7d, 0xec3: 0x2b9d, 0xec4: 0x2bbd, 0xec5: 0x2bdd,
+       0xec6: 0x2bdd, 0xec7: 0x2bdd, 0xec8: 0x2bfd, 0xec9: 0x2bfd, 0xeca: 0x2bfd, 0xecb: 0x2bfd,
+       0xecc: 0x2c1d, 0xecd: 0x2c1d, 0xece: 0x2c1d, 0xecf: 0x2c3d, 0xed0: 0x2c5d, 0xed1: 0x2c5d,
+       0xed2: 0x2a7d, 0xed3: 0x2a7d, 0xed4: 0x2c5d, 0xed5: 0x2c5d, 0xed6: 0x2c7d, 0xed7: 0x2c7d,
+       0xed8: 0x2c5d, 0xed9: 0x2c5d, 0xeda: 0x2a7d, 0xedb: 0x2a7d, 0xedc: 0x2c5d, 0xedd: 0x2c5d,
+       0xede: 0x2c3d, 0xedf: 0x2c3d, 0xee0: 0x2c9d, 0xee1: 0x2c9d, 0xee2: 0x2cbd, 0xee3: 0x2cbd,
+       0xee4: 0x0040, 0xee5: 0x2cdd, 0xee6: 0x2cfd, 0xee7: 0x2d1d, 0xee8: 0x2d1d, 0xee9: 0x2d3d,
+       0xeea: 0x2d5d, 0xeeb: 0x2d7d, 0xeec: 0x2d9d, 0xeed: 0x2dbd, 0xeee: 0x2ddd, 0xeef: 0x2dfd,
+       0xef0: 0x2e1d, 0xef1: 0x2e3d, 0xef2: 0x2e3d, 0xef3: 0x2e5d, 0xef4: 0x2e7d, 0xef5: 0x2e7d,
+       0xef6: 0x2e9d, 0xef7: 0x2ebd, 0xef8: 0x2e5d, 0xef9: 0x2edd, 0xefa: 0x2efd, 0xefb: 0x2edd,
+       0xefc: 0x2e5d, 0xefd: 0x2f1d, 0xefe: 0x2f3d, 0xeff: 0x2f5d,
+       // Block 0x3c, offset 0xf00
+       0xf00: 0x2f7d, 0xf01: 0x2f9d, 0xf02: 0x2cfd, 0xf03: 0x2cdd, 0xf04: 0x2fbd, 0xf05: 0x2fdd,
+       0xf06: 0x2ffd, 0xf07: 0x301d, 0xf08: 0x303d, 0xf09: 0x305d, 0xf0a: 0x307d, 0xf0b: 0x309d,
+       0xf0c: 0x30bd, 0xf0d: 0x30dd, 0xf0e: 0x30fd, 0xf0f: 0x0040, 0xf10: 0x0018, 0xf11: 0x0018,
+       0xf12: 0x311d, 0xf13: 0x313d, 0xf14: 0x315d, 0xf15: 0x317d, 0xf16: 0x319d, 0xf17: 0x31bd,
+       0xf18: 0x31dd, 0xf19: 0x31fd, 0xf1a: 0x321d, 0xf1b: 0x323d, 0xf1c: 0x315d, 0xf1d: 0x325d,
+       0xf1e: 0x327d, 0xf1f: 0x329d, 0xf20: 0x0008, 0xf21: 0x0008, 0xf22: 0x0008, 0xf23: 0x0008,
+       0xf24: 0x0008, 0xf25: 0x0008, 0xf26: 0x0008, 0xf27: 0x0008, 0xf28: 0x0008, 0xf29: 0x0008,
+       0xf2a: 0x0008, 0xf2b: 0x0008, 0xf2c: 0x0008, 0xf2d: 0x0008, 0xf2e: 0x0008, 0xf2f: 0x0008,
+       0xf30: 0x0008, 0xf31: 0x0008, 0xf32: 0x0008, 0xf33: 0x0008, 0xf34: 0x0008, 0xf35: 0x0008,
+       0xf36: 0x0008, 0xf37: 0x0008, 0xf38: 0x0008, 0xf39: 0x0008, 0xf3a: 0x0008, 0xf3b: 0x0040,
+       0xf3c: 0x0040, 0xf3d: 0x0040, 0xf3e: 0x0040, 0xf3f: 0x0040,
+       // Block 0x3d, offset 0xf40
+       0xf40: 0x36a2, 0xf41: 0x36d2, 0xf42: 0x3702, 0xf43: 0x3732, 0xf44: 0x32bd, 0xf45: 0x32dd,
+       0xf46: 0x32fd, 0xf47: 0x331d, 0xf48: 0x0018, 0xf49: 0x0018, 0xf4a: 0x0018, 0xf4b: 0x0018,
+       0xf4c: 0x0018, 0xf4d: 0x0018, 0xf4e: 0x0018, 0xf4f: 0x0018, 0xf50: 0x333d, 0xf51: 0x3761,
+       0xf52: 0x3779, 0xf53: 0x3791, 0xf54: 0x37a9, 0xf55: 0x37c1, 0xf56: 0x37d9, 0xf57: 0x37f1,
+       0xf58: 0x3809, 0xf59: 0x3821, 0xf5a: 0x3839, 0xf5b: 0x3851, 0xf5c: 0x3869, 0xf5d: 0x3881,
+       0xf5e: 0x3899, 0xf5f: 0x38b1, 0xf60: 0x335d, 0xf61: 0x337d, 0xf62: 0x339d, 0xf63: 0x33bd,
+       0xf64: 0x33dd, 0xf65: 0x33dd, 0xf66: 0x33fd, 0xf67: 0x341d, 0xf68: 0x343d, 0xf69: 0x345d,
+       0xf6a: 0x347d, 0xf6b: 0x349d, 0xf6c: 0x34bd, 0xf6d: 0x34dd, 0xf6e: 0x34fd, 0xf6f: 0x351d,
+       0xf70: 0x353d, 0xf71: 0x355d, 0xf72: 0x357d, 0xf73: 0x359d, 0xf74: 0x35bd, 0xf75: 0x35dd,
+       0xf76: 0x35fd, 0xf77: 0x361d, 0xf78: 0x363d, 0xf79: 0x365d, 0xf7a: 0x367d, 0xf7b: 0x369d,
+       0xf7c: 0x38c9, 0xf7d: 0x3901, 0xf7e: 0x36bd, 0xf7f: 0x0018,
+       // Block 0x3e, offset 0xf80
+       0xf80: 0x36dd, 0xf81: 0x36fd, 0xf82: 0x371d, 0xf83: 0x373d, 0xf84: 0x375d, 0xf85: 0x377d,
+       0xf86: 0x379d, 0xf87: 0x37bd, 0xf88: 0x37dd, 0xf89: 0x37fd, 0xf8a: 0x381d, 0xf8b: 0x383d,
+       0xf8c: 0x385d, 0xf8d: 0x387d, 0xf8e: 0x389d, 0xf8f: 0x38bd, 0xf90: 0x38dd, 0xf91: 0x38fd,
+       0xf92: 0x391d, 0xf93: 0x393d, 0xf94: 0x395d, 0xf95: 0x397d, 0xf96: 0x399d, 0xf97: 0x39bd,
+       0xf98: 0x39dd, 0xf99: 0x39fd, 0xf9a: 0x3a1d, 0xf9b: 0x3a3d, 0xf9c: 0x3a5d, 0xf9d: 0x3a7d,
+       0xf9e: 0x3a9d, 0xf9f: 0x3abd, 0xfa0: 0x3add, 0xfa1: 0x3afd, 0xfa2: 0x3b1d, 0xfa3: 0x3b3d,
+       0xfa4: 0x3b5d, 0xfa5: 0x3b7d, 0xfa6: 0x127d, 0xfa7: 0x3b9d, 0xfa8: 0x3bbd, 0xfa9: 0x3bdd,
+       0xfaa: 0x3bfd, 0xfab: 0x3c1d, 0xfac: 0x3c3d, 0xfad: 0x3c5d, 0xfae: 0x239d, 0xfaf: 0x3c7d,
+       0xfb0: 0x3c9d, 0xfb1: 0x3939, 0xfb2: 0x3951, 0xfb3: 0x3969, 0xfb4: 0x3981, 0xfb5: 0x3999,
+       0xfb6: 0x39b1, 0xfb7: 0x39c9, 0xfb8: 0x39e1, 0xfb9: 0x39f9, 0xfba: 0x3a11, 0xfbb: 0x3a29,
+       0xfbc: 0x3a41, 0xfbd: 0x3a59, 0xfbe: 0x3a71, 0xfbf: 0x3a89,
+       // Block 0x3f, offset 0xfc0
+       0xfc0: 0x3aa1, 0xfc1: 0x3ac9, 0xfc2: 0x3af1, 0xfc3: 0x3b19, 0xfc4: 0x3b41, 0xfc5: 0x3b69,
+       0xfc6: 0x3b91, 0xfc7: 0x3bb9, 0xfc8: 0x3be1, 0xfc9: 0x3c09, 0xfca: 0x3c39, 0xfcb: 0x3c69,
+       0xfcc: 0x3c99, 0xfcd: 0x3cbd, 0xfce: 0x3cb1, 0xfcf: 0x3cdd, 0xfd0: 0x3cfd, 0xfd1: 0x3d15,
+       0xfd2: 0x3d2d, 0xfd3: 0x3d45, 0xfd4: 0x3d5d, 0xfd5: 0x3d5d, 0xfd6: 0x3d45, 0xfd7: 0x3d75,
+       0xfd8: 0x07bd, 0xfd9: 0x3d8d, 0xfda: 0x3da5, 0xfdb: 0x3dbd, 0xfdc: 0x3dd5, 0xfdd: 0x3ded,
+       0xfde: 0x3e05, 0xfdf: 0x3e1d, 0xfe0: 0x3e35, 0xfe1: 0x3e4d, 0xfe2: 0x3e65, 0xfe3: 0x3e7d,
+       0xfe4: 0x3e95, 0xfe5: 0x3e95, 0xfe6: 0x3ead, 0xfe7: 0x3ead, 0xfe8: 0x3ec5, 0xfe9: 0x3ec5,
+       0xfea: 0x3edd, 0xfeb: 0x3ef5, 0xfec: 0x3f0d, 0xfed: 0x3f25, 0xfee: 0x3f3d, 0xfef: 0x3f3d,
+       0xff0: 0x3f55, 0xff1: 0x3f55, 0xff2: 0x3f55, 0xff3: 0x3f6d, 0xff4: 0x3f85, 0xff5: 0x3f9d,
+       0xff6: 0x3fb5, 0xff7: 0x3f9d, 0xff8: 0x3fcd, 0xff9: 0x3fe5, 0xffa: 0x3f6d, 0xffb: 0x3ffd,
+       0xffc: 0x4015, 0xffd: 0x4015, 0xffe: 0x4015, 0xfff: 0x0040,
+       // Block 0x40, offset 0x1000
+       0x1000: 0x3cc9, 0x1001: 0x3d31, 0x1002: 0x3d99, 0x1003: 0x3e01, 0x1004: 0x3e51, 0x1005: 0x3eb9,
+       0x1006: 0x3f09, 0x1007: 0x3f59, 0x1008: 0x3fd9, 0x1009: 0x4041, 0x100a: 0x4091, 0x100b: 0x40e1,
+       0x100c: 0x4131, 0x100d: 0x4199, 0x100e: 0x4201, 0x100f: 0x4251, 0x1010: 0x42a1, 0x1011: 0x42d9,
+       0x1012: 0x4329, 0x1013: 0x4391, 0x1014: 0x43f9, 0x1015: 0x4431, 0x1016: 0x44b1, 0x1017: 0x4549,
+       0x1018: 0x45c9, 0x1019: 0x4619, 0x101a: 0x4699, 0x101b: 0x4719, 0x101c: 0x4781, 0x101d: 0x47d1,
+       0x101e: 0x4821, 0x101f: 0x4871, 0x1020: 0x48d9, 0x1021: 0x4959, 0x1022: 0x49c1, 0x1023: 0x4a11,
+       0x1024: 0x4a61, 0x1025: 0x4ab1, 0x1026: 0x4ae9, 0x1027: 0x4b21, 0x1028: 0x4b59, 0x1029: 0x4b91,
+       0x102a: 0x4be1, 0x102b: 0x4c31, 0x102c: 0x4cb1, 0x102d: 0x4d01, 0x102e: 0x4d69, 0x102f: 0x4de9,
+       0x1030: 0x4e39, 0x1031: 0x4e71, 0x1032: 0x4ea9, 0x1033: 0x4f29, 0x1034: 0x4f91, 0x1035: 0x5011,
+       0x1036: 0x5061, 0x1037: 0x50e1, 0x1038: 0x5119, 0x1039: 0x5169, 0x103a: 0x51b9, 0x103b: 0x5209,
+       0x103c: 0x5259, 0x103d: 0x52a9, 0x103e: 0x5311, 0x103f: 0x5361,
+       // Block 0x41, offset 0x1040
+       0x1040: 0x5399, 0x1041: 0x53e9, 0x1042: 0x5439, 0x1043: 0x5489, 0x1044: 0x54f1, 0x1045: 0x5541,
+       0x1046: 0x5591, 0x1047: 0x55e1, 0x1048: 0x5661, 0x1049: 0x56c9, 0x104a: 0x5701, 0x104b: 0x5781,
+       0x104c: 0x57b9, 0x104d: 0x5821, 0x104e: 0x5889, 0x104f: 0x58d9, 0x1050: 0x5929, 0x1051: 0x5979,
+       0x1052: 0x59e1, 0x1053: 0x5a19, 0x1054: 0x5a69, 0x1055: 0x5ad1, 0x1056: 0x5b09, 0x1057: 0x5b89,
+       0x1058: 0x5bd9, 0x1059: 0x5c01, 0x105a: 0x5c29, 0x105b: 0x5c51, 0x105c: 0x5c79, 0x105d: 0x5ca1,
+       0x105e: 0x5cc9, 0x105f: 0x5cf1, 0x1060: 0x5d19, 0x1061: 0x5d41, 0x1062: 0x5d69, 0x1063: 0x5d99,
+       0x1064: 0x5dc9, 0x1065: 0x5df9, 0x1066: 0x5e29, 0x1067: 0x5e59, 0x1068: 0x5e89, 0x1069: 0x5eb9,
+       0x106a: 0x5ee9, 0x106b: 0x5f19, 0x106c: 0x5f49, 0x106d: 0x5f79, 0x106e: 0x5fa9, 0x106f: 0x5fd9,
+       0x1070: 0x6009, 0x1071: 0x402d, 0x1072: 0x6039, 0x1073: 0x6051, 0x1074: 0x404d, 0x1075: 0x6069,
+       0x1076: 0x6081, 0x1077: 0x6099, 0x1078: 0x406d, 0x1079: 0x406d, 0x107a: 0x60b1, 0x107b: 0x60c9,
+       0x107c: 0x6101, 0x107d: 0x6139, 0x107e: 0x6171, 0x107f: 0x61a9,
+       // Block 0x42, offset 0x1080
+       0x1080: 0x6211, 0x1081: 0x6229, 0x1082: 0x408d, 0x1083: 0x6241, 0x1084: 0x6259, 0x1085: 0x6271,
+       0x1086: 0x6289, 0x1087: 0x62a1, 0x1088: 0x40ad, 0x1089: 0x62b9, 0x108a: 0x62e1, 0x108b: 0x62f9,
+       0x108c: 0x40cd, 0x108d: 0x40cd, 0x108e: 0x6311, 0x108f: 0x6329, 0x1090: 0x6341, 0x1091: 0x40ed,
+       0x1092: 0x410d, 0x1093: 0x412d, 0x1094: 0x414d, 0x1095: 0x416d, 0x1096: 0x6359, 0x1097: 0x6371,
+       0x1098: 0x6389, 0x1099: 0x63a1, 0x109a: 0x63b9, 0x109b: 0x418d, 0x109c: 0x63d1, 0x109d: 0x63e9,
+       0x109e: 0x6401, 0x109f: 0x41ad, 0x10a0: 0x41cd, 0x10a1: 0x6419, 0x10a2: 0x41ed, 0x10a3: 0x420d,
+       0x10a4: 0x422d, 0x10a5: 0x6431, 0x10a6: 0x424d, 0x10a7: 0x6449, 0x10a8: 0x6479, 0x10a9: 0x6211,
+       0x10aa: 0x426d, 0x10ab: 0x428d, 0x10ac: 0x42ad, 0x10ad: 0x42cd, 0x10ae: 0x64b1, 0x10af: 0x64f1,
+       0x10b0: 0x6539, 0x10b1: 0x6551, 0x10b2: 0x42ed, 0x10b3: 0x6569, 0x10b4: 0x6581, 0x10b5: 0x6599,
+       0x10b6: 0x430d, 0x10b7: 0x65b1, 0x10b8: 0x65c9, 0x10b9: 0x65b1, 0x10ba: 0x65e1, 0x10bb: 0x65f9,
+       0x10bc: 0x432d, 0x10bd: 0x6611, 0x10be: 0x6629, 0x10bf: 0x6611,
+       // Block 0x43, offset 0x10c0
+       0x10c0: 0x434d, 0x10c1: 0x436d, 0x10c2: 0x0040, 0x10c3: 0x6641, 0x10c4: 0x6659, 0x10c5: 0x6671,
+       0x10c6: 0x6689, 0x10c7: 0x0040, 0x10c8: 0x66c1, 0x10c9: 0x66d9, 0x10ca: 0x66f1, 0x10cb: 0x6709,
+       0x10cc: 0x6721, 0x10cd: 0x6739, 0x10ce: 0x6401, 0x10cf: 0x6751, 0x10d0: 0x6769, 0x10d1: 0x6781,
+       0x10d2: 0x438d, 0x10d3: 0x6799, 0x10d4: 0x6289, 0x10d5: 0x43ad, 0x10d6: 0x43cd, 0x10d7: 0x67b1,
+       0x10d8: 0x0040, 0x10d9: 0x43ed, 0x10da: 0x67c9, 0x10db: 0x67e1, 0x10dc: 0x67f9, 0x10dd: 0x6811,
+       0x10de: 0x6829, 0x10df: 0x6859, 0x10e0: 0x6889, 0x10e1: 0x68b1, 0x10e2: 0x68d9, 0x10e3: 0x6901,
+       0x10e4: 0x6929, 0x10e5: 0x6951, 0x10e6: 0x6979, 0x10e7: 0x69a1, 0x10e8: 0x69c9, 0x10e9: 0x69f1,
+       0x10ea: 0x6a21, 0x10eb: 0x6a51, 0x10ec: 0x6a81, 0x10ed: 0x6ab1, 0x10ee: 0x6ae1, 0x10ef: 0x6b11,
+       0x10f0: 0x6b41, 0x10f1: 0x6b71, 0x10f2: 0x6ba1, 0x10f3: 0x6bd1, 0x10f4: 0x6c01, 0x10f5: 0x6c31,
+       0x10f6: 0x6c61, 0x10f7: 0x6c91, 0x10f8: 0x6cc1, 0x10f9: 0x6cf1, 0x10fa: 0x6d21, 0x10fb: 0x6d51,
+       0x10fc: 0x6d81, 0x10fd: 0x6db1, 0x10fe: 0x6de1, 0x10ff: 0x440d,
+       // Block 0x44, offset 0x1100
+       0x1100: 0xe00d, 0x1101: 0x0008, 0x1102: 0xe00d, 0x1103: 0x0008, 0x1104: 0xe00d, 0x1105: 0x0008,
+       0x1106: 0xe00d, 0x1107: 0x0008, 0x1108: 0xe00d, 0x1109: 0x0008, 0x110a: 0xe00d, 0x110b: 0x0008,
+       0x110c: 0xe00d, 0x110d: 0x0008, 0x110e: 0xe00d, 0x110f: 0x0008, 0x1110: 0xe00d, 0x1111: 0x0008,
+       0x1112: 0xe00d, 0x1113: 0x0008, 0x1114: 0xe00d, 0x1115: 0x0008, 0x1116: 0xe00d, 0x1117: 0x0008,
+       0x1118: 0xe00d, 0x1119: 0x0008, 0x111a: 0xe00d, 0x111b: 0x0008, 0x111c: 0xe00d, 0x111d: 0x0008,
+       0x111e: 0xe00d, 0x111f: 0x0008, 0x1120: 0xe00d, 0x1121: 0x0008, 0x1122: 0xe00d, 0x1123: 0x0008,
+       0x1124: 0xe00d, 0x1125: 0x0008, 0x1126: 0xe00d, 0x1127: 0x0008, 0x1128: 0xe00d, 0x1129: 0x0008,
+       0x112a: 0xe00d, 0x112b: 0x0008, 0x112c: 0xe00d, 0x112d: 0x0008, 0x112e: 0x0008, 0x112f: 0x3308,
+       0x1130: 0x3318, 0x1131: 0x3318, 0x1132: 0x3318, 0x1133: 0x0018, 0x1134: 0x3308, 0x1135: 0x3308,
+       0x1136: 0x3308, 0x1137: 0x3308, 0x1138: 0x3308, 0x1139: 0x3308, 0x113a: 0x3308, 0x113b: 0x3308,
+       0x113c: 0x3308, 0x113d: 0x3308, 0x113e: 0x0018, 0x113f: 0x0008,
+       // Block 0x45, offset 0x1140
+       0x1140: 0xe00d, 0x1141: 0x0008, 0x1142: 0xe00d, 0x1143: 0x0008, 0x1144: 0xe00d, 0x1145: 0x0008,
+       0x1146: 0xe00d, 0x1147: 0x0008, 0x1148: 0xe00d, 0x1149: 0x0008, 0x114a: 0xe00d, 0x114b: 0x0008,
+       0x114c: 0xe00d, 0x114d: 0x0008, 0x114e: 0xe00d, 0x114f: 0x0008, 0x1150: 0xe00d, 0x1151: 0x0008,
+       0x1152: 0xe00d, 0x1153: 0x0008, 0x1154: 0xe00d, 0x1155: 0x0008, 0x1156: 0xe00d, 0x1157: 0x0008,
+       0x1158: 0xe00d, 0x1159: 0x0008, 0x115a: 0xe00d, 0x115b: 0x0008, 0x115c: 0x0ea1, 0x115d: 0x6e11,
+       0x115e: 0x3308, 0x115f: 0x3308, 0x1160: 0x0008, 0x1161: 0x0008, 0x1162: 0x0008, 0x1163: 0x0008,
+       0x1164: 0x0008, 0x1165: 0x0008, 0x1166: 0x0008, 0x1167: 0x0008, 0x1168: 0x0008, 0x1169: 0x0008,
+       0x116a: 0x0008, 0x116b: 0x0008, 0x116c: 0x0008, 0x116d: 0x0008, 0x116e: 0x0008, 0x116f: 0x0008,
+       0x1170: 0x0008, 0x1171: 0x0008, 0x1172: 0x0008, 0x1173: 0x0008, 0x1174: 0x0008, 0x1175: 0x0008,
+       0x1176: 0x0008, 0x1177: 0x0008, 0x1178: 0x0008, 0x1179: 0x0008, 0x117a: 0x0008, 0x117b: 0x0008,
+       0x117c: 0x0008, 0x117d: 0x0008, 0x117e: 0x0008, 0x117f: 0x0008,
+       // Block 0x46, offset 0x1180
+       0x1180: 0x0018, 0x1181: 0x0018, 0x1182: 0x0018, 0x1183: 0x0018, 0x1184: 0x0018, 0x1185: 0x0018,
+       0x1186: 0x0018, 0x1187: 0x0018, 0x1188: 0x0018, 0x1189: 0x0018, 0x118a: 0x0018, 0x118b: 0x0018,
+       0x118c: 0x0018, 0x118d: 0x0018, 0x118e: 0x0018, 0x118f: 0x0018, 0x1190: 0x0018, 0x1191: 0x0018,
+       0x1192: 0x0018, 0x1193: 0x0018, 0x1194: 0x0018, 0x1195: 0x0018, 0x1196: 0x0018, 0x1197: 0x0008,
+       0x1198: 0x0008, 0x1199: 0x0008, 0x119a: 0x0008, 0x119b: 0x0008, 0x119c: 0x0008, 0x119d: 0x0008,
+       0x119e: 0x0008, 0x119f: 0x0008, 0x11a0: 0x0018, 0x11a1: 0x0018, 0x11a2: 0xe00d, 0x11a3: 0x0008,
+       0x11a4: 0xe00d, 0x11a5: 0x0008, 0x11a6: 0xe00d, 0x11a7: 0x0008, 0x11a8: 0xe00d, 0x11a9: 0x0008,
+       0x11aa: 0xe00d, 0x11ab: 0x0008, 0x11ac: 0xe00d, 0x11ad: 0x0008, 0x11ae: 0xe00d, 0x11af: 0x0008,
+       0x11b0: 0x0008, 0x11b1: 0x0008, 0x11b2: 0xe00d, 0x11b3: 0x0008, 0x11b4: 0xe00d, 0x11b5: 0x0008,
+       0x11b6: 0xe00d, 0x11b7: 0x0008, 0x11b8: 0xe00d, 0x11b9: 0x0008, 0x11ba: 0xe00d, 0x11bb: 0x0008,
+       0x11bc: 0xe00d, 0x11bd: 0x0008, 0x11be: 0xe00d, 0x11bf: 0x0008,
+       // Block 0x47, offset 0x11c0
+       0x11c0: 0xe00d, 0x11c1: 0x0008, 0x11c2: 0xe00d, 0x11c3: 0x0008, 0x11c4: 0xe00d, 0x11c5: 0x0008,
+       0x11c6: 0xe00d, 0x11c7: 0x0008, 0x11c8: 0xe00d, 0x11c9: 0x0008, 0x11ca: 0xe00d, 0x11cb: 0x0008,
+       0x11cc: 0xe00d, 0x11cd: 0x0008, 0x11ce: 0xe00d, 0x11cf: 0x0008, 0x11d0: 0xe00d, 0x11d1: 0x0008,
+       0x11d2: 0xe00d, 0x11d3: 0x0008, 0x11d4: 0xe00d, 0x11d5: 0x0008, 0x11d6: 0xe00d, 0x11d7: 0x0008,
+       0x11d8: 0xe00d, 0x11d9: 0x0008, 0x11da: 0xe00d, 0x11db: 0x0008, 0x11dc: 0xe00d, 0x11dd: 0x0008,
+       0x11de: 0xe00d, 0x11df: 0x0008, 0x11e0: 0xe00d, 0x11e1: 0x0008, 0x11e2: 0xe00d, 0x11e3: 0x0008,
+       0x11e4: 0xe00d, 0x11e5: 0x0008, 0x11e6: 0xe00d, 0x11e7: 0x0008, 0x11e8: 0xe00d, 0x11e9: 0x0008,
+       0x11ea: 0xe00d, 0x11eb: 0x0008, 0x11ec: 0xe00d, 0x11ed: 0x0008, 0x11ee: 0xe00d, 0x11ef: 0x0008,
+       0x11f0: 0xe0fd, 0x11f1: 0x0008, 0x11f2: 0x0008, 0x11f3: 0x0008, 0x11f4: 0x0008, 0x11f5: 0x0008,
+       0x11f6: 0x0008, 0x11f7: 0x0008, 0x11f8: 0x0008, 0x11f9: 0xe01d, 0x11fa: 0x0008, 0x11fb: 0xe03d,
+       0x11fc: 0x0008, 0x11fd: 0x442d, 0x11fe: 0xe00d, 0x11ff: 0x0008,
+       // Block 0x48, offset 0x1200
+       0x1200: 0xe00d, 0x1201: 0x0008, 0x1202: 0xe00d, 0x1203: 0x0008, 0x1204: 0xe00d, 0x1205: 0x0008,
+       0x1206: 0xe00d, 0x1207: 0x0008, 0x1208: 0x0008, 0x1209: 0x0018, 0x120a: 0x0018, 0x120b: 0xe03d,
+       0x120c: 0x0008, 0x120d: 0x11d9, 0x120e: 0x0008, 0x120f: 0x0008, 0x1210: 0xe00d, 0x1211: 0x0008,
+       0x1212: 0xe00d, 0x1213: 0x0008, 0x1214: 0x0008, 0x1215: 0x0008, 0x1216: 0xe00d, 0x1217: 0x0008,
+       0x1218: 0xe00d, 0x1219: 0x0008, 0x121a: 0xe00d, 0x121b: 0x0008, 0x121c: 0xe00d, 0x121d: 0x0008,
+       0x121e: 0xe00d, 0x121f: 0x0008, 0x1220: 0xe00d, 0x1221: 0x0008, 0x1222: 0xe00d, 0x1223: 0x0008,
+       0x1224: 0xe00d, 0x1225: 0x0008, 0x1226: 0xe00d, 0x1227: 0x0008, 0x1228: 0xe00d, 0x1229: 0x0008,
+       0x122a: 0x6e29, 0x122b: 0x1029, 0x122c: 0x11c1, 0x122d: 0x6e41, 0x122e: 0x1221, 0x122f: 0x0040,
+       0x1230: 0x6e59, 0x1231: 0x6e71, 0x1232: 0x1239, 0x1233: 0x444d, 0x1234: 0xe00d, 0x1235: 0x0008,
+       0x1236: 0xe00d, 0x1237: 0x0008, 0x1238: 0x0040, 0x1239: 0x0040, 0x123a: 0x0040, 0x123b: 0x0040,
+       0x123c: 0x0040, 0x123d: 0x0040, 0x123e: 0x0040, 0x123f: 0x0040,
+       // Block 0x49, offset 0x1240
+       0x1240: 0x64d5, 0x1241: 0x64f5, 0x1242: 0x6515, 0x1243: 0x6535, 0x1244: 0x6555, 0x1245: 0x6575,
+       0x1246: 0x6595, 0x1247: 0x65b5, 0x1248: 0x65d5, 0x1249: 0x65f5, 0x124a: 0x6615, 0x124b: 0x6635,
+       0x124c: 0x6655, 0x124d: 0x6675, 0x124e: 0x0008, 0x124f: 0x0008, 0x1250: 0x6695, 0x1251: 0x0008,
+       0x1252: 0x66b5, 0x1253: 0x0008, 0x1254: 0x0008, 0x1255: 0x66d5, 0x1256: 0x66f5, 0x1257: 0x6715,
+       0x1258: 0x6735, 0x1259: 0x6755, 0x125a: 0x6775, 0x125b: 0x6795, 0x125c: 0x67b5, 0x125d: 0x67d5,
+       0x125e: 0x67f5, 0x125f: 0x0008, 0x1260: 0x6815, 0x1261: 0x0008, 0x1262: 0x6835, 0x1263: 0x0008,
+       0x1264: 0x0008, 0x1265: 0x6855, 0x1266: 0x6875, 0x1267: 0x0008, 0x1268: 0x0008, 0x1269: 0x0008,
+       0x126a: 0x6895, 0x126b: 0x68b5, 0x126c: 0x68d5, 0x126d: 0x68f5, 0x126e: 0x6915, 0x126f: 0x6935,
+       0x1270: 0x6955, 0x1271: 0x6975, 0x1272: 0x6995, 0x1273: 0x69b5, 0x1274: 0x69d5, 0x1275: 0x69f5,
+       0x1276: 0x6a15, 0x1277: 0x6a35, 0x1278: 0x6a55, 0x1279: 0x6a75, 0x127a: 0x6a95, 0x127b: 0x6ab5,
+       0x127c: 0x6ad5, 0x127d: 0x6af5, 0x127e: 0x6b15, 0x127f: 0x6b35,
+       // Block 0x4a, offset 0x1280
+       0x1280: 0x7a95, 0x1281: 0x7ab5, 0x1282: 0x7ad5, 0x1283: 0x7af5, 0x1284: 0x7b15, 0x1285: 0x7b35,
+       0x1286: 0x7b55, 0x1287: 0x7b75, 0x1288: 0x7b95, 0x1289: 0x7bb5, 0x128a: 0x7bd5, 0x128b: 0x7bf5,
+       0x128c: 0x7c15, 0x128d: 0x7c35, 0x128e: 0x7c55, 0x128f: 0x6ec9, 0x1290: 0x6ef1, 0x1291: 0x6f19,
+       0x1292: 0x7c75, 0x1293: 0x7c95, 0x1294: 0x7cb5, 0x1295: 0x6f41, 0x1296: 0x6f69, 0x1297: 0x6f91,
+       0x1298: 0x7cd5, 0x1299: 0x7cf5, 0x129a: 0x0040, 0x129b: 0x0040, 0x129c: 0x0040, 0x129d: 0x0040,
+       0x129e: 0x0040, 0x129f: 0x0040, 0x12a0: 0x0040, 0x12a1: 0x0040, 0x12a2: 0x0040, 0x12a3: 0x0040,
+       0x12a4: 0x0040, 0x12a5: 0x0040, 0x12a6: 0x0040, 0x12a7: 0x0040, 0x12a8: 0x0040, 0x12a9: 0x0040,
+       0x12aa: 0x0040, 0x12ab: 0x0040, 0x12ac: 0x0040, 0x12ad: 0x0040, 0x12ae: 0x0040, 0x12af: 0x0040,
+       0x12b0: 0x0040, 0x12b1: 0x0040, 0x12b2: 0x0040, 0x12b3: 0x0040, 0x12b4: 0x0040, 0x12b5: 0x0040,
+       0x12b6: 0x0040, 0x12b7: 0x0040, 0x12b8: 0x0040, 0x12b9: 0x0040, 0x12ba: 0x0040, 0x12bb: 0x0040,
+       0x12bc: 0x0040, 0x12bd: 0x0040, 0x12be: 0x0040, 0x12bf: 0x0040,
+       // Block 0x4b, offset 0x12c0
+       0x12c0: 0x6fb9, 0x12c1: 0x6fd1, 0x12c2: 0x6fe9, 0x12c3: 0x7d15, 0x12c4: 0x7d35, 0x12c5: 0x7001,
+       0x12c6: 0x7001, 0x12c7: 0x0040, 0x12c8: 0x0040, 0x12c9: 0x0040, 0x12ca: 0x0040, 0x12cb: 0x0040,
+       0x12cc: 0x0040, 0x12cd: 0x0040, 0x12ce: 0x0040, 0x12cf: 0x0040, 0x12d0: 0x0040, 0x12d1: 0x0040,
+       0x12d2: 0x0040, 0x12d3: 0x7019, 0x12d4: 0x7041, 0x12d5: 0x7069, 0x12d6: 0x7091, 0x12d7: 0x70b9,
+       0x12d8: 0x0040, 0x12d9: 0x0040, 0x12da: 0x0040, 0x12db: 0x0040, 0x12dc: 0x0040, 0x12dd: 0x70e1,
+       0x12de: 0x3308, 0x12df: 0x7109, 0x12e0: 0x7131, 0x12e1: 0x20a9, 0x12e2: 0x20f1, 0x12e3: 0x7149,
+       0x12e4: 0x7161, 0x12e5: 0x7179, 0x12e6: 0x7191, 0x12e7: 0x71a9, 0x12e8: 0x71c1, 0x12e9: 0x1fb2,
+       0x12ea: 0x71d9, 0x12eb: 0x7201, 0x12ec: 0x7229, 0x12ed: 0x7261, 0x12ee: 0x7299, 0x12ef: 0x72c1,
+       0x12f0: 0x72e9, 0x12f1: 0x7311, 0x12f2: 0x7339, 0x12f3: 0x7361, 0x12f4: 0x7389, 0x12f5: 0x73b1,
+       0x12f6: 0x73d9, 0x12f7: 0x0040, 0x12f8: 0x7401, 0x12f9: 0x7429, 0x12fa: 0x7451, 0x12fb: 0x7479,
+       0x12fc: 0x74a1, 0x12fd: 0x0040, 0x12fe: 0x74c9, 0x12ff: 0x0040,
+       // Block 0x4c, offset 0x1300
+       0x1300: 0x74f1, 0x1301: 0x7519, 0x1302: 0x0040, 0x1303: 0x7541, 0x1304: 0x7569, 0x1305: 0x0040,
+       0x1306: 0x7591, 0x1307: 0x75b9, 0x1308: 0x75e1, 0x1309: 0x7609, 0x130a: 0x7631, 0x130b: 0x7659,
+       0x130c: 0x7681, 0x130d: 0x76a9, 0x130e: 0x76d1, 0x130f: 0x76f9, 0x1310: 0x7721, 0x1311: 0x7721,
+       0x1312: 0x7739, 0x1313: 0x7739, 0x1314: 0x7739, 0x1315: 0x7739, 0x1316: 0x7751, 0x1317: 0x7751,
+       0x1318: 0x7751, 0x1319: 0x7751, 0x131a: 0x7769, 0x131b: 0x7769, 0x131c: 0x7769, 0x131d: 0x7769,
+       0x131e: 0x7781, 0x131f: 0x7781, 0x1320: 0x7781, 0x1321: 0x7781, 0x1322: 0x7799, 0x1323: 0x7799,
+       0x1324: 0x7799, 0x1325: 0x7799, 0x1326: 0x77b1, 0x1327: 0x77b1, 0x1328: 0x77b1, 0x1329: 0x77b1,
+       0x132a: 0x77c9, 0x132b: 0x77c9, 0x132c: 0x77c9, 0x132d: 0x77c9, 0x132e: 0x77e1, 0x132f: 0x77e1,
+       0x1330: 0x77e1, 0x1331: 0x77e1, 0x1332: 0x77f9, 0x1333: 0x77f9, 0x1334: 0x77f9, 0x1335: 0x77f9,
+       0x1336: 0x7811, 0x1337: 0x7811, 0x1338: 0x7811, 0x1339: 0x7811, 0x133a: 0x7829, 0x133b: 0x7829,
+       0x133c: 0x7829, 0x133d: 0x7829, 0x133e: 0x7841, 0x133f: 0x7841,
+       // Block 0x4d, offset 0x1340
+       0x1340: 0x7841, 0x1341: 0x7841, 0x1342: 0x7859, 0x1343: 0x7859, 0x1344: 0x7871, 0x1345: 0x7871,
+       0x1346: 0x7889, 0x1347: 0x7889, 0x1348: 0x78a1, 0x1349: 0x78a1, 0x134a: 0x78b9, 0x134b: 0x78b9,
+       0x134c: 0x78d1, 0x134d: 0x78d1, 0x134e: 0x78e9, 0x134f: 0x78e9, 0x1350: 0x78e9, 0x1351: 0x78e9,
+       0x1352: 0x7901, 0x1353: 0x7901, 0x1354: 0x7901, 0x1355: 0x7901, 0x1356: 0x7919, 0x1357: 0x7919,
+       0x1358: 0x7919, 0x1359: 0x7919, 0x135a: 0x7931, 0x135b: 0x7931, 0x135c: 0x7931, 0x135d: 0x7931,
+       0x135e: 0x7949, 0x135f: 0x7949, 0x1360: 0x7961, 0x1361: 0x7961, 0x1362: 0x7961, 0x1363: 0x7961,
+       0x1364: 0x7979, 0x1365: 0x7979, 0x1366: 0x7991, 0x1367: 0x7991, 0x1368: 0x7991, 0x1369: 0x7991,
+       0x136a: 0x79a9, 0x136b: 0x79a9, 0x136c: 0x79a9, 0x136d: 0x79a9, 0x136e: 0x79c1, 0x136f: 0x79c1,
+       0x1370: 0x79d9, 0x1371: 0x79d9, 0x1372: 0x0818, 0x1373: 0x0818, 0x1374: 0x0818, 0x1375: 0x0818,
+       0x1376: 0x0818, 0x1377: 0x0818, 0x1378: 0x0818, 0x1379: 0x0818, 0x137a: 0x0818, 0x137b: 0x0818,
+       0x137c: 0x0818, 0x137d: 0x0818, 0x137e: 0x0818, 0x137f: 0x0818,
+       // Block 0x4e, offset 0x1380
+       0x1380: 0x0818, 0x1381: 0x0818, 0x1382: 0x0040, 0x1383: 0x0040, 0x1384: 0x0040, 0x1385: 0x0040,
+       0x1386: 0x0040, 0x1387: 0x0040, 0x1388: 0x0040, 0x1389: 0x0040, 0x138a: 0x0040, 0x138b: 0x0040,
+       0x138c: 0x0040, 0x138d: 0x0040, 0x138e: 0x0040, 0x138f: 0x0040, 0x1390: 0x0040, 0x1391: 0x0040,
+       0x1392: 0x0040, 0x1393: 0x79f1, 0x1394: 0x79f1, 0x1395: 0x79f1, 0x1396: 0x79f1, 0x1397: 0x7a09,
+       0x1398: 0x7a09, 0x1399: 0x7a21, 0x139a: 0x7a21, 0x139b: 0x7a39, 0x139c: 0x7a39, 0x139d: 0x0479,
+       0x139e: 0x7a51, 0x139f: 0x7a51, 0x13a0: 0x7a69, 0x13a1: 0x7a69, 0x13a2: 0x7a81, 0x13a3: 0x7a81,
+       0x13a4: 0x7a99, 0x13a5: 0x7a99, 0x13a6: 0x7a99, 0x13a7: 0x7a99, 0x13a8: 0x7ab1, 0x13a9: 0x7ab1,
+       0x13aa: 0x7ac9, 0x13ab: 0x7ac9, 0x13ac: 0x7af1, 0x13ad: 0x7af1, 0x13ae: 0x7b19, 0x13af: 0x7b19,
+       0x13b0: 0x7b41, 0x13b1: 0x7b41, 0x13b2: 0x7b69, 0x13b3: 0x7b69, 0x13b4: 0x7b91, 0x13b5: 0x7b91,
+       0x13b6: 0x7bb9, 0x13b7: 0x7bb9, 0x13b8: 0x7bb9, 0x13b9: 0x7be1, 0x13ba: 0x7be1, 0x13bb: 0x7be1,
+       0x13bc: 0x7c09, 0x13bd: 0x7c09, 0x13be: 0x7c09, 0x13bf: 0x7c09,
+       // Block 0x4f, offset 0x13c0
+       0x13c0: 0x85f9, 0x13c1: 0x8621, 0x13c2: 0x8649, 0x13c3: 0x8671, 0x13c4: 0x8699, 0x13c5: 0x86c1,
+       0x13c6: 0x86e9, 0x13c7: 0x8711, 0x13c8: 0x8739, 0x13c9: 0x8761, 0x13ca: 0x8789, 0x13cb: 0x87b1,
+       0x13cc: 0x87d9, 0x13cd: 0x8801, 0x13ce: 0x8829, 0x13cf: 0x8851, 0x13d0: 0x8879, 0x13d1: 0x88a1,
+       0x13d2: 0x88c9, 0x13d3: 0x88f1, 0x13d4: 0x8919, 0x13d5: 0x8941, 0x13d6: 0x8969, 0x13d7: 0x8991,
+       0x13d8: 0x89b9, 0x13d9: 0x89e1, 0x13da: 0x8a09, 0x13db: 0x8a31, 0x13dc: 0x8a59, 0x13dd: 0x8a81,
+       0x13de: 0x8aaa, 0x13df: 0x8ada, 0x13e0: 0x8b0a, 0x13e1: 0x8b3a, 0x13e2: 0x8b6a, 0x13e3: 0x8b9a,
+       0x13e4: 0x8bc9, 0x13e5: 0x8bf1, 0x13e6: 0x7c71, 0x13e7: 0x8c19, 0x13e8: 0x7be1, 0x13e9: 0x7c99,
+       0x13ea: 0x8c41, 0x13eb: 0x8c69, 0x13ec: 0x7d39, 0x13ed: 0x8c91, 0x13ee: 0x7d61, 0x13ef: 0x7d89,
+       0x13f0: 0x8cb9, 0x13f1: 0x8ce1, 0x13f2: 0x7e29, 0x13f3: 0x8d09, 0x13f4: 0x7e51, 0x13f5: 0x7e79,
+       0x13f6: 0x8d31, 0x13f7: 0x8d59, 0x13f8: 0x7ec9, 0x13f9: 0x8d81, 0x13fa: 0x7ef1, 0x13fb: 0x7f19,
+       0x13fc: 0x83a1, 0x13fd: 0x83c9, 0x13fe: 0x8441, 0x13ff: 0x8469,
+       // Block 0x50, offset 0x1400
+       0x1400: 0x8491, 0x1401: 0x8531, 0x1402: 0x8559, 0x1403: 0x8581, 0x1404: 0x85a9, 0x1405: 0x8649,
+       0x1406: 0x8671, 0x1407: 0x8699, 0x1408: 0x8da9, 0x1409: 0x8739, 0x140a: 0x8dd1, 0x140b: 0x8df9,
+       0x140c: 0x8829, 0x140d: 0x8e21, 0x140e: 0x8851, 0x140f: 0x8879, 0x1410: 0x8a81, 0x1411: 0x8e49,
+       0x1412: 0x8e71, 0x1413: 0x89b9, 0x1414: 0x8e99, 0x1415: 0x89e1, 0x1416: 0x8a09, 0x1417: 0x7c21,
+       0x1418: 0x7c49, 0x1419: 0x8ec1, 0x141a: 0x7c71, 0x141b: 0x8ee9, 0x141c: 0x7cc1, 0x141d: 0x7ce9,
+       0x141e: 0x7d11, 0x141f: 0x7d39, 0x1420: 0x8f11, 0x1421: 0x7db1, 0x1422: 0x7dd9, 0x1423: 0x7e01,
+       0x1424: 0x7e29, 0x1425: 0x8f39, 0x1426: 0x7ec9, 0x1427: 0x7f41, 0x1428: 0x7f69, 0x1429: 0x7f91,
+       0x142a: 0x7fb9, 0x142b: 0x7fe1, 0x142c: 0x8031, 0x142d: 0x8059, 0x142e: 0x8081, 0x142f: 0x80a9,
+       0x1430: 0x80d1, 0x1431: 0x80f9, 0x1432: 0x8f61, 0x1433: 0x8121, 0x1434: 0x8149, 0x1435: 0x8171,
+       0x1436: 0x8199, 0x1437: 0x81c1, 0x1438: 0x81e9, 0x1439: 0x8239, 0x143a: 0x8261, 0x143b: 0x8289,
+       0x143c: 0x82b1, 0x143d: 0x82d9, 0x143e: 0x8301, 0x143f: 0x8329,
+       // Block 0x51, offset 0x1440
+       0x1440: 0x8351, 0x1441: 0x8379, 0x1442: 0x83f1, 0x1443: 0x8419, 0x1444: 0x84b9, 0x1445: 0x84e1,
+       0x1446: 0x8509, 0x1447: 0x8531, 0x1448: 0x8559, 0x1449: 0x85d1, 0x144a: 0x85f9, 0x144b: 0x8621,
+       0x144c: 0x8649, 0x144d: 0x8f89, 0x144e: 0x86c1, 0x144f: 0x86e9, 0x1450: 0x8711, 0x1451: 0x8739,
+       0x1452: 0x87b1, 0x1453: 0x87d9, 0x1454: 0x8801, 0x1455: 0x8829, 0x1456: 0x8fb1, 0x1457: 0x88a1,
+       0x1458: 0x88c9, 0x1459: 0x8fd9, 0x145a: 0x8941, 0x145b: 0x8969, 0x145c: 0x8991, 0x145d: 0x89b9,
+       0x145e: 0x9001, 0x145f: 0x7c71, 0x1460: 0x8ee9, 0x1461: 0x7d39, 0x1462: 0x8f11, 0x1463: 0x7e29,
+       0x1464: 0x8f39, 0x1465: 0x7ec9, 0x1466: 0x9029, 0x1467: 0x80d1, 0x1468: 0x9051, 0x1469: 0x9079,
+       0x146a: 0x90a1, 0x146b: 0x8531, 0x146c: 0x8559, 0x146d: 0x8649, 0x146e: 0x8829, 0x146f: 0x8fb1,
+       0x1470: 0x89b9, 0x1471: 0x9001, 0x1472: 0x90c9, 0x1473: 0x9101, 0x1474: 0x9139, 0x1475: 0x9171,
+       0x1476: 0x9199, 0x1477: 0x91c1, 0x1478: 0x91e9, 0x1479: 0x9211, 0x147a: 0x9239, 0x147b: 0x9261,
+       0x147c: 0x9289, 0x147d: 0x92b1, 0x147e: 0x92d9, 0x147f: 0x9301,
+       // Block 0x52, offset 0x1480
+       0x1480: 0x9329, 0x1481: 0x9351, 0x1482: 0x9379, 0x1483: 0x93a1, 0x1484: 0x93c9, 0x1485: 0x93f1,
+       0x1486: 0x9419, 0x1487: 0x9441, 0x1488: 0x9469, 0x1489: 0x9491, 0x148a: 0x94b9, 0x148b: 0x94e1,
+       0x148c: 0x9079, 0x148d: 0x9509, 0x148e: 0x9531, 0x148f: 0x9559, 0x1490: 0x9581, 0x1491: 0x9171,
+       0x1492: 0x9199, 0x1493: 0x91c1, 0x1494: 0x91e9, 0x1495: 0x9211, 0x1496: 0x9239, 0x1497: 0x9261,
+       0x1498: 0x9289, 0x1499: 0x92b1, 0x149a: 0x92d9, 0x149b: 0x9301, 0x149c: 0x9329, 0x149d: 0x9351,
+       0x149e: 0x9379, 0x149f: 0x93a1, 0x14a0: 0x93c9, 0x14a1: 0x93f1, 0x14a2: 0x9419, 0x14a3: 0x9441,
+       0x14a4: 0x9469, 0x14a5: 0x9491, 0x14a6: 0x94b9, 0x14a7: 0x94e1, 0x14a8: 0x9079, 0x14a9: 0x9509,
+       0x14aa: 0x9531, 0x14ab: 0x9559, 0x14ac: 0x9581, 0x14ad: 0x9491, 0x14ae: 0x94b9, 0x14af: 0x94e1,
+       0x14b0: 0x9079, 0x14b1: 0x9051, 0x14b2: 0x90a1, 0x14b3: 0x8211, 0x14b4: 0x8059, 0x14b5: 0x8081,
+       0x14b6: 0x80a9, 0x14b7: 0x9491, 0x14b8: 0x94b9, 0x14b9: 0x94e1, 0x14ba: 0x8211, 0x14bb: 0x8239,
+       0x14bc: 0x95a9, 0x14bd: 0x95a9, 0x14be: 0x0018, 0x14bf: 0x0018,
+       // Block 0x53, offset 0x14c0
+       0x14c0: 0x0040, 0x14c1: 0x0040, 0x14c2: 0x0040, 0x14c3: 0x0040, 0x14c4: 0x0040, 0x14c5: 0x0040,
+       0x14c6: 0x0040, 0x14c7: 0x0040, 0x14c8: 0x0040, 0x14c9: 0x0040, 0x14ca: 0x0040, 0x14cb: 0x0040,
+       0x14cc: 0x0040, 0x14cd: 0x0040, 0x14ce: 0x0040, 0x14cf: 0x0040, 0x14d0: 0x95d1, 0x14d1: 0x9609,
+       0x14d2: 0x9609, 0x14d3: 0x9641, 0x14d4: 0x9679, 0x14d5: 0x96b1, 0x14d6: 0x96e9, 0x14d7: 0x9721,
+       0x14d8: 0x9759, 0x14d9: 0x9759, 0x14da: 0x9791, 0x14db: 0x97c9, 0x14dc: 0x9801, 0x14dd: 0x9839,
+       0x14de: 0x9871, 0x14df: 0x98a9, 0x14e0: 0x98a9, 0x14e1: 0x98e1, 0x14e2: 0x9919, 0x14e3: 0x9919,
+       0x14e4: 0x9951, 0x14e5: 0x9951, 0x14e6: 0x9989, 0x14e7: 0x99c1, 0x14e8: 0x99c1, 0x14e9: 0x99f9,
+       0x14ea: 0x9a31, 0x14eb: 0x9a31, 0x14ec: 0x9a69, 0x14ed: 0x9a69, 0x14ee: 0x9aa1, 0x14ef: 0x9ad9,
+       0x14f0: 0x9ad9, 0x14f1: 0x9b11, 0x14f2: 0x9b11, 0x14f3: 0x9b49, 0x14f4: 0x9b81, 0x14f5: 0x9bb9,
+       0x14f6: 0x9bf1, 0x14f7: 0x9bf1, 0x14f8: 0x9c29, 0x14f9: 0x9c61, 0x14fa: 0x9c99, 0x14fb: 0x9cd1,
+       0x14fc: 0x9d09, 0x14fd: 0x9d09, 0x14fe: 0x9d41, 0x14ff: 0x9d79,
+       // Block 0x54, offset 0x1500
+       0x1500: 0xa949, 0x1501: 0xa981, 0x1502: 0xa9b9, 0x1503: 0xa8a1, 0x1504: 0x9bb9, 0x1505: 0x9989,
+       0x1506: 0xa9f1, 0x1507: 0xaa29, 0x1508: 0x0040, 0x1509: 0x0040, 0x150a: 0x0040, 0x150b: 0x0040,
+       0x150c: 0x0040, 0x150d: 0x0040, 0x150e: 0x0040, 0x150f: 0x0040, 0x1510: 0x0040, 0x1511: 0x0040,
+       0x1512: 0x0040, 0x1513: 0x0040, 0x1514: 0x0040, 0x1515: 0x0040, 0x1516: 0x0040, 0x1517: 0x0040,
+       0x1518: 0x0040, 0x1519: 0x0040, 0x151a: 0x0040, 0x151b: 0x0040, 0x151c: 0x0040, 0x151d: 0x0040,
+       0x151e: 0x0040, 0x151f: 0x0040, 0x1520: 0x0040, 0x1521: 0x0040, 0x1522: 0x0040, 0x1523: 0x0040,
+       0x1524: 0x0040, 0x1525: 0x0040, 0x1526: 0x0040, 0x1527: 0x0040, 0x1528: 0x0040, 0x1529: 0x0040,
+       0x152a: 0x0040, 0x152b: 0x0040, 0x152c: 0x0040, 0x152d: 0x0040, 0x152e: 0x0040, 0x152f: 0x0040,
+       0x1530: 0xaa61, 0x1531: 0xaa99, 0x1532: 0xaad1, 0x1533: 0xab19, 0x1534: 0xab61, 0x1535: 0xaba9,
+       0x1536: 0xabf1, 0x1537: 0xac39, 0x1538: 0xac81, 0x1539: 0xacc9, 0x153a: 0xad02, 0x153b: 0xae12,
+       0x153c: 0xae91, 0x153d: 0x0018, 0x153e: 0x0040, 0x153f: 0x0040,
+       // Block 0x55, offset 0x1540
+       0x1540: 0x33c0, 0x1541: 0x33c0, 0x1542: 0x33c0, 0x1543: 0x33c0, 0x1544: 0x33c0, 0x1545: 0x33c0,
+       0x1546: 0x33c0, 0x1547: 0x33c0, 0x1548: 0x33c0, 0x1549: 0x33c0, 0x154a: 0x33c0, 0x154b: 0x33c0,
+       0x154c: 0x33c0, 0x154d: 0x33c0, 0x154e: 0x33c0, 0x154f: 0x33c0, 0x1550: 0xaeda, 0x1551: 0x7d55,
+       0x1552: 0x0040, 0x1553: 0xaeea, 0x1554: 0x03c2, 0x1555: 0xaefa, 0x1556: 0xaf0a, 0x1557: 0x7d75,
+       0x1558: 0x7d95, 0x1559: 0x0040, 0x155a: 0x0040, 0x155b: 0x0040, 0x155c: 0x0040, 0x155d: 0x0040,
+       0x155e: 0x0040, 0x155f: 0x0040, 0x1560: 0x3308, 0x1561: 0x3308, 0x1562: 0x3308, 0x1563: 0x3308,
+       0x1564: 0x3308, 0x1565: 0x3308, 0x1566: 0x3308, 0x1567: 0x3308, 0x1568: 0x3308, 0x1569: 0x3308,
+       0x156a: 0x3308, 0x156b: 0x3308, 0x156c: 0x3308, 0x156d: 0x3308, 0x156e: 0x3308, 0x156f: 0x3308,
+       0x1570: 0x0040, 0x1571: 0x7db5, 0x1572: 0x7dd5, 0x1573: 0xaf1a, 0x1574: 0xaf1a, 0x1575: 0x1fd2,
+       0x1576: 0x1fe2, 0x1577: 0xaf2a, 0x1578: 0xaf3a, 0x1579: 0x7df5, 0x157a: 0x7e15, 0x157b: 0x7e35,
+       0x157c: 0x7df5, 0x157d: 0x7e55, 0x157e: 0x7e75, 0x157f: 0x7e55,
+       // Block 0x56, offset 0x1580
+       0x1580: 0x7e95, 0x1581: 0x7eb5, 0x1582: 0x7ed5, 0x1583: 0x7eb5, 0x1584: 0x7ef5, 0x1585: 0x0018,
+       0x1586: 0x0018, 0x1587: 0xaf4a, 0x1588: 0xaf5a, 0x1589: 0x7f16, 0x158a: 0x7f36, 0x158b: 0x7f56,
+       0x158c: 0x7f76, 0x158d: 0xaf1a, 0x158e: 0xaf1a, 0x158f: 0xaf1a, 0x1590: 0xaeda, 0x1591: 0x7f95,
+       0x1592: 0x0040, 0x1593: 0x0040, 0x1594: 0x03c2, 0x1595: 0xaeea, 0x1596: 0xaf0a, 0x1597: 0xaefa,
+       0x1598: 0x7fb5, 0x1599: 0x1fd2, 0x159a: 0x1fe2, 0x159b: 0xaf2a, 0x159c: 0xaf3a, 0x159d: 0x7e95,
+       0x159e: 0x7ef5, 0x159f: 0xaf6a, 0x15a0: 0xaf7a, 0x15a1: 0xaf8a, 0x15a2: 0x1fb2, 0x15a3: 0xaf99,
+       0x15a4: 0xafaa, 0x15a5: 0xafba, 0x15a6: 0x1fc2, 0x15a7: 0x0040, 0x15a8: 0xafca, 0x15a9: 0xafda,
+       0x15aa: 0xafea, 0x15ab: 0xaffa, 0x15ac: 0x0040, 0x15ad: 0x0040, 0x15ae: 0x0040, 0x15af: 0x0040,
+       0x15b0: 0x7fd6, 0x15b1: 0xb009, 0x15b2: 0x7ff6, 0x15b3: 0x0808, 0x15b4: 0x8016, 0x15b5: 0x0040,
+       0x15b6: 0x8036, 0x15b7: 0xb031, 0x15b8: 0x8056, 0x15b9: 0xb059, 0x15ba: 0x8076, 0x15bb: 0xb081,
+       0x15bc: 0x8096, 0x15bd: 0xb0a9, 0x15be: 0x80b6, 0x15bf: 0xb0d1,
+       // Block 0x57, offset 0x15c0
+       0x15c0: 0xb0f9, 0x15c1: 0xb111, 0x15c2: 0xb111, 0x15c3: 0xb129, 0x15c4: 0xb129, 0x15c5: 0xb141,
+       0x15c6: 0xb141, 0x15c7: 0xb159, 0x15c8: 0xb159, 0x15c9: 0xb171, 0x15ca: 0xb171, 0x15cb: 0xb171,
+       0x15cc: 0xb171, 0x15cd: 0xb189, 0x15ce: 0xb189, 0x15cf: 0xb1a1, 0x15d0: 0xb1a1, 0x15d1: 0xb1a1,
+       0x15d2: 0xb1a1, 0x15d3: 0xb1b9, 0x15d4: 0xb1b9, 0x15d5: 0xb1d1, 0x15d6: 0xb1d1, 0x15d7: 0xb1d1,
+       0x15d8: 0xb1d1, 0x15d9: 0xb1e9, 0x15da: 0xb1e9, 0x15db: 0xb1e9, 0x15dc: 0xb1e9, 0x15dd: 0xb201,
+       0x15de: 0xb201, 0x15df: 0xb201, 0x15e0: 0xb201, 0x15e1: 0xb219, 0x15e2: 0xb219, 0x15e3: 0xb219,
+       0x15e4: 0xb219, 0x15e5: 0xb231, 0x15e6: 0xb231, 0x15e7: 0xb231, 0x15e8: 0xb231, 0x15e9: 0xb249,
+       0x15ea: 0xb249, 0x15eb: 0xb261, 0x15ec: 0xb261, 0x15ed: 0xb279, 0x15ee: 0xb279, 0x15ef: 0xb291,
+       0x15f0: 0xb291, 0x15f1: 0xb2a9, 0x15f2: 0xb2a9, 0x15f3: 0xb2a9, 0x15f4: 0xb2a9, 0x15f5: 0xb2c1,
+       0x15f6: 0xb2c1, 0x15f7: 0xb2c1, 0x15f8: 0xb2c1, 0x15f9: 0xb2d9, 0x15fa: 0xb2d9, 0x15fb: 0xb2d9,
+       0x15fc: 0xb2d9, 0x15fd: 0xb2f1, 0x15fe: 0xb2f1, 0x15ff: 0xb2f1,
+       // Block 0x58, offset 0x1600
+       0x1600: 0xb2f1, 0x1601: 0xb309, 0x1602: 0xb309, 0x1603: 0xb309, 0x1604: 0xb309, 0x1605: 0xb321,
+       0x1606: 0xb321, 0x1607: 0xb321, 0x1608: 0xb321, 0x1609: 0xb339, 0x160a: 0xb339, 0x160b: 0xb339,
+       0x160c: 0xb339, 0x160d: 0xb351, 0x160e: 0xb351, 0x160f: 0xb351, 0x1610: 0xb351, 0x1611: 0xb369,
+       0x1612: 0xb369, 0x1613: 0xb369, 0x1614: 0xb369, 0x1615: 0xb381, 0x1616: 0xb381, 0x1617: 0xb381,
+       0x1618: 0xb381, 0x1619: 0xb399, 0x161a: 0xb399, 0x161b: 0xb399, 0x161c: 0xb399, 0x161d: 0xb3b1,
+       0x161e: 0xb3b1, 0x161f: 0xb3b1, 0x1620: 0xb3b1, 0x1621: 0xb3c9, 0x1622: 0xb3c9, 0x1623: 0xb3c9,
+       0x1624: 0xb3c9, 0x1625: 0xb3e1, 0x1626: 0xb3e1, 0x1627: 0xb3e1, 0x1628: 0xb3e1, 0x1629: 0xb3f9,
+       0x162a: 0xb3f9, 0x162b: 0xb3f9, 0x162c: 0xb3f9, 0x162d: 0xb411, 0x162e: 0xb411, 0x162f: 0x7ab1,
+       0x1630: 0x7ab1, 0x1631: 0xb429, 0x1632: 0xb429, 0x1633: 0xb429, 0x1634: 0xb429, 0x1635: 0xb441,
+       0x1636: 0xb441, 0x1637: 0xb469, 0x1638: 0xb469, 0x1639: 0xb491, 0x163a: 0xb491, 0x163b: 0xb4b9,
+       0x163c: 0xb4b9, 0x163d: 0x0040, 0x163e: 0x0040, 0x163f: 0x03c0,
+       // Block 0x59, offset 0x1640
+       0x1640: 0x0040, 0x1641: 0xaefa, 0x1642: 0xb4e2, 0x1643: 0xaf6a, 0x1644: 0xafda, 0x1645: 0xafea,
+       0x1646: 0xaf7a, 0x1647: 0xb4f2, 0x1648: 0x1fd2, 0x1649: 0x1fe2, 0x164a: 0xaf8a, 0x164b: 0x1fb2,
+       0x164c: 0xaeda, 0x164d: 0xaf99, 0x164e: 0x29d1, 0x164f: 0xb502, 0x1650: 0x1f41, 0x1651: 0x00c9,
+       0x1652: 0x0069, 0x1653: 0x0079, 0x1654: 0x1f51, 0x1655: 0x1f61, 0x1656: 0x1f71, 0x1657: 0x1f81,
+       0x1658: 0x1f91, 0x1659: 0x1fa1, 0x165a: 0xaeea, 0x165b: 0x03c2, 0x165c: 0xafaa, 0x165d: 0x1fc2,
+       0x165e: 0xafba, 0x165f: 0xaf0a, 0x1660: 0xaffa, 0x1661: 0x0039, 0x1662: 0x0ee9, 0x1663: 0x1159,
+       0x1664: 0x0ef9, 0x1665: 0x0f09, 0x1666: 0x1199, 0x1667: 0x0f31, 0x1668: 0x0249, 0x1669: 0x0f41,
+       0x166a: 0x0259, 0x166b: 0x0f51, 0x166c: 0x0359, 0x166d: 0x0f61, 0x166e: 0x0f71, 0x166f: 0x00d9,
+       0x1670: 0x0f99, 0x1671: 0x2039, 0x1672: 0x0269, 0x1673: 0x01d9, 0x1674: 0x0fa9, 0x1675: 0x0fb9,
+       0x1676: 0x1089, 0x1677: 0x0279, 0x1678: 0x0369, 0x1679: 0x0289, 0x167a: 0x13d1, 0x167b: 0xaf4a,
+       0x167c: 0xafca, 0x167d: 0xaf5a, 0x167e: 0xb512, 0x167f: 0xaf1a,
+       // Block 0x5a, offset 0x1680
+       0x1680: 0x1caa, 0x1681: 0x0039, 0x1682: 0x0ee9, 0x1683: 0x1159, 0x1684: 0x0ef9, 0x1685: 0x0f09,
+       0x1686: 0x1199, 0x1687: 0x0f31, 0x1688: 0x0249, 0x1689: 0x0f41, 0x168a: 0x0259, 0x168b: 0x0f51,
+       0x168c: 0x0359, 0x168d: 0x0f61, 0x168e: 0x0f71, 0x168f: 0x00d9, 0x1690: 0x0f99, 0x1691: 0x2039,
+       0x1692: 0x0269, 0x1693: 0x01d9, 0x1694: 0x0fa9, 0x1695: 0x0fb9, 0x1696: 0x1089, 0x1697: 0x0279,
+       0x1698: 0x0369, 0x1699: 0x0289, 0x169a: 0x13d1, 0x169b: 0xaf2a, 0x169c: 0xb522, 0x169d: 0xaf3a,
+       0x169e: 0xb532, 0x169f: 0x80d5, 0x16a0: 0x80f5, 0x16a1: 0x29d1, 0x16a2: 0x8115, 0x16a3: 0x8115,
+       0x16a4: 0x8135, 0x16a5: 0x8155, 0x16a6: 0x8175, 0x16a7: 0x8195, 0x16a8: 0x81b5, 0x16a9: 0x81d5,
+       0x16aa: 0x81f5, 0x16ab: 0x8215, 0x16ac: 0x8235, 0x16ad: 0x8255, 0x16ae: 0x8275, 0x16af: 0x8295,
+       0x16b0: 0x82b5, 0x16b1: 0x82d5, 0x16b2: 0x82f5, 0x16b3: 0x8315, 0x16b4: 0x8335, 0x16b5: 0x8355,
+       0x16b6: 0x8375, 0x16b7: 0x8395, 0x16b8: 0x83b5, 0x16b9: 0x83d5, 0x16ba: 0x83f5, 0x16bb: 0x8415,
+       0x16bc: 0x81b5, 0x16bd: 0x8435, 0x16be: 0x8455, 0x16bf: 0x8215,
+       // Block 0x5b, offset 0x16c0
+       0x16c0: 0x8475, 0x16c1: 0x8495, 0x16c2: 0x84b5, 0x16c3: 0x84d5, 0x16c4: 0x84f5, 0x16c5: 0x8515,
+       0x16c6: 0x8535, 0x16c7: 0x8555, 0x16c8: 0x84d5, 0x16c9: 0x8575, 0x16ca: 0x84d5, 0x16cb: 0x8595,
+       0x16cc: 0x8595, 0x16cd: 0x85b5, 0x16ce: 0x85b5, 0x16cf: 0x85d5, 0x16d0: 0x8515, 0x16d1: 0x85f5,
+       0x16d2: 0x8615, 0x16d3: 0x85f5, 0x16d4: 0x8635, 0x16d5: 0x8615, 0x16d6: 0x8655, 0x16d7: 0x8655,
+       0x16d8: 0x8675, 0x16d9: 0x8675, 0x16da: 0x8695, 0x16db: 0x8695, 0x16dc: 0x8615, 0x16dd: 0x8115,
+       0x16de: 0x86b5, 0x16df: 0x86d5, 0x16e0: 0x0040, 0x16e1: 0x86f5, 0x16e2: 0x8715, 0x16e3: 0x8735,
+       0x16e4: 0x8755, 0x16e5: 0x8735, 0x16e6: 0x8775, 0x16e7: 0x8795, 0x16e8: 0x87b5, 0x16e9: 0x87b5,
+       0x16ea: 0x87d5, 0x16eb: 0x87d5, 0x16ec: 0x87f5, 0x16ed: 0x87f5, 0x16ee: 0x87d5, 0x16ef: 0x87d5,
+       0x16f0: 0x8815, 0x16f1: 0x8835, 0x16f2: 0x8855, 0x16f3: 0x8875, 0x16f4: 0x8895, 0x16f5: 0x88b5,
+       0x16f6: 0x88b5, 0x16f7: 0x88b5, 0x16f8: 0x88d5, 0x16f9: 0x88d5, 0x16fa: 0x88d5, 0x16fb: 0x88d5,
+       0x16fc: 0x87b5, 0x16fd: 0x87b5, 0x16fe: 0x87b5, 0x16ff: 0x0040,
+       // Block 0x5c, offset 0x1700
+       0x1700: 0x0040, 0x1701: 0x0040, 0x1702: 0x8715, 0x1703: 0x86f5, 0x1704: 0x88f5, 0x1705: 0x86f5,
+       0x1706: 0x8715, 0x1707: 0x86f5, 0x1708: 0x0040, 0x1709: 0x0040, 0x170a: 0x8915, 0x170b: 0x8715,
+       0x170c: 0x8935, 0x170d: 0x88f5, 0x170e: 0x8935, 0x170f: 0x8715, 0x1710: 0x0040, 0x1711: 0x0040,
+       0x1712: 0x8955, 0x1713: 0x8975, 0x1714: 0x8875, 0x1715: 0x8935, 0x1716: 0x88f5, 0x1717: 0x8935,
+       0x1718: 0x0040, 0x1719: 0x0040, 0x171a: 0x8995, 0x171b: 0x89b5, 0x171c: 0x8995, 0x171d: 0x0040,
+       0x171e: 0x0040, 0x171f: 0x0040, 0x1720: 0xb541, 0x1721: 0xb559, 0x1722: 0xb571, 0x1723: 0x89d6,
+       0x1724: 0xb589, 0x1725: 0xb5a1, 0x1726: 0x89f5, 0x1727: 0x0040, 0x1728: 0x8a15, 0x1729: 0x8a35,
+       0x172a: 0x8a55, 0x172b: 0x8a35, 0x172c: 0x8a75, 0x172d: 0x8a95, 0x172e: 0x8ab5, 0x172f: 0x0040,
+       0x1730: 0x0040, 0x1731: 0x0040, 0x1732: 0x0040, 0x1733: 0x0040, 0x1734: 0x0040, 0x1735: 0x0040,
+       0x1736: 0x0040, 0x1737: 0x0040, 0x1738: 0x0040, 0x1739: 0x0340, 0x173a: 0x0340, 0x173b: 0x0340,
+       0x173c: 0x0040, 0x173d: 0x0040, 0x173e: 0x0040, 0x173f: 0x0040,
+       // Block 0x5d, offset 0x1740
+       0x1740: 0x0a08, 0x1741: 0x0a08, 0x1742: 0x0a08, 0x1743: 0x0a08, 0x1744: 0x0a08, 0x1745: 0x0c08,
+       0x1746: 0x0808, 0x1747: 0x0c08, 0x1748: 0x0818, 0x1749: 0x0c08, 0x174a: 0x0c08, 0x174b: 0x0808,
+       0x174c: 0x0808, 0x174d: 0x0908, 0x174e: 0x0c08, 0x174f: 0x0c08, 0x1750: 0x0c08, 0x1751: 0x0c08,
+       0x1752: 0x0c08, 0x1753: 0x0a08, 0x1754: 0x0a08, 0x1755: 0x0a08, 0x1756: 0x0a08, 0x1757: 0x0908,
+       0x1758: 0x0a08, 0x1759: 0x0a08, 0x175a: 0x0a08, 0x175b: 0x0a08, 0x175c: 0x0a08, 0x175d: 0x0c08,
+       0x175e: 0x0a08, 0x175f: 0x0a08, 0x1760: 0x0a08, 0x1761: 0x0c08, 0x1762: 0x0808, 0x1763: 0x0808,
+       0x1764: 0x0c08, 0x1765: 0x3308, 0x1766: 0x3308, 0x1767: 0x0040, 0x1768: 0x0040, 0x1769: 0x0040,
+       0x176a: 0x0040, 0x176b: 0x0a18, 0x176c: 0x0a18, 0x176d: 0x0a18, 0x176e: 0x0a18, 0x176f: 0x0c18,
+       0x1770: 0x0818, 0x1771: 0x0818, 0x1772: 0x0818, 0x1773: 0x0818, 0x1774: 0x0818, 0x1775: 0x0818,
+       0x1776: 0x0818, 0x1777: 0x0040, 0x1778: 0x0040, 0x1779: 0x0040, 0x177a: 0x0040, 0x177b: 0x0040,
+       0x177c: 0x0040, 0x177d: 0x0040, 0x177e: 0x0040, 0x177f: 0x0040,
+       // Block 0x5e, offset 0x1780
+       0x1780: 0x0a08, 0x1781: 0x0c08, 0x1782: 0x0a08, 0x1783: 0x0c08, 0x1784: 0x0c08, 0x1785: 0x0c08,
+       0x1786: 0x0a08, 0x1787: 0x0a08, 0x1788: 0x0a08, 0x1789: 0x0c08, 0x178a: 0x0a08, 0x178b: 0x0a08,
+       0x178c: 0x0c08, 0x178d: 0x0a08, 0x178e: 0x0c08, 0x178f: 0x0c08, 0x1790: 0x0a08, 0x1791: 0x0c08,
+       0x1792: 0x0040, 0x1793: 0x0040, 0x1794: 0x0040, 0x1795: 0x0040, 0x1796: 0x0040, 0x1797: 0x0040,
+       0x1798: 0x0040, 0x1799: 0x0818, 0x179a: 0x0818, 0x179b: 0x0818, 0x179c: 0x0818, 0x179d: 0x0040,
+       0x179e: 0x0040, 0x179f: 0x0040, 0x17a0: 0x0040, 0x17a1: 0x0040, 0x17a2: 0x0040, 0x17a3: 0x0040,
+       0x17a4: 0x0040, 0x17a5: 0x0040, 0x17a6: 0x0040, 0x17a7: 0x0040, 0x17a8: 0x0040, 0x17a9: 0x0c18,
+       0x17aa: 0x0c18, 0x17ab: 0x0c18, 0x17ac: 0x0c18, 0x17ad: 0x0a18, 0x17ae: 0x0a18, 0x17af: 0x0818,
+       0x17b0: 0x0040, 0x17b1: 0x0040, 0x17b2: 0x0040, 0x17b3: 0x0040, 0x17b4: 0x0040, 0x17b5: 0x0040,
+       0x17b6: 0x0040, 0x17b7: 0x0040, 0x17b8: 0x0040, 0x17b9: 0x0040, 0x17ba: 0x0040, 0x17bb: 0x0040,
+       0x17bc: 0x0040, 0x17bd: 0x0040, 0x17be: 0x0040, 0x17bf: 0x0040,
+       // Block 0x5f, offset 0x17c0
+       0x17c0: 0x3308, 0x17c1: 0x3308, 0x17c2: 0x3008, 0x17c3: 0x3008, 0x17c4: 0x0040, 0x17c5: 0x0008,
+       0x17c6: 0x0008, 0x17c7: 0x0008, 0x17c8: 0x0008, 0x17c9: 0x0008, 0x17ca: 0x0008, 0x17cb: 0x0008,
+       0x17cc: 0x0008, 0x17cd: 0x0040, 0x17ce: 0x0040, 0x17cf: 0x0008, 0x17d0: 0x0008, 0x17d1: 0x0040,
+       0x17d2: 0x0040, 0x17d3: 0x0008, 0x17d4: 0x0008, 0x17d5: 0x0008, 0x17d6: 0x0008, 0x17d7: 0x0008,
+       0x17d8: 0x0008, 0x17d9: 0x0008, 0x17da: 0x0008, 0x17db: 0x0008, 0x17dc: 0x0008, 0x17dd: 0x0008,
+       0x17de: 0x0008, 0x17df: 0x0008, 0x17e0: 0x0008, 0x17e1: 0x0008, 0x17e2: 0x0008, 0x17e3: 0x0008,
+       0x17e4: 0x0008, 0x17e5: 0x0008, 0x17e6: 0x0008, 0x17e7: 0x0008, 0x17e8: 0x0008, 0x17e9: 0x0040,
+       0x17ea: 0x0008, 0x17eb: 0x0008, 0x17ec: 0x0008, 0x17ed: 0x0008, 0x17ee: 0x0008, 0x17ef: 0x0008,
+       0x17f0: 0x0008, 0x17f1: 0x0040, 0x17f2: 0x0008, 0x17f3: 0x0008, 0x17f4: 0x0040, 0x17f5: 0x0008,
+       0x17f6: 0x0008, 0x17f7: 0x0008, 0x17f8: 0x0008, 0x17f9: 0x0008, 0x17fa: 0x0040, 0x17fb: 0x0040,
+       0x17fc: 0x3308, 0x17fd: 0x0008, 0x17fe: 0x3008, 0x17ff: 0x3008,
+       // Block 0x60, offset 0x1800
+       0x1800: 0x3308, 0x1801: 0x3008, 0x1802: 0x3008, 0x1803: 0x3008, 0x1804: 0x3008, 0x1805: 0x0040,
+       0x1806: 0x0040, 0x1807: 0x3008, 0x1808: 0x3008, 0x1809: 0x0040, 0x180a: 0x0040, 0x180b: 0x3008,
+       0x180c: 0x3008, 0x180d: 0x3808, 0x180e: 0x0040, 0x180f: 0x0040, 0x1810: 0x0008, 0x1811: 0x0040,
+       0x1812: 0x0040, 0x1813: 0x0040, 0x1814: 0x0040, 0x1815: 0x0040, 0x1816: 0x0040, 0x1817: 0x3008,
+       0x1818: 0x0040, 0x1819: 0x0040, 0x181a: 0x0040, 0x181b: 0x0040, 0x181c: 0x0040, 0x181d: 0x0008,
+       0x181e: 0x0008, 0x181f: 0x0008, 0x1820: 0x0008, 0x1821: 0x0008, 0x1822: 0x3008, 0x1823: 0x3008,
+       0x1824: 0x0040, 0x1825: 0x0040, 0x1826: 0x3308, 0x1827: 0x3308, 0x1828: 0x3308, 0x1829: 0x3308,
+       0x182a: 0x3308, 0x182b: 0x3308, 0x182c: 0x3308, 0x182d: 0x0040, 0x182e: 0x0040, 0x182f: 0x0040,
+       0x1830: 0x3308, 0x1831: 0x3308, 0x1832: 0x3308, 0x1833: 0x3308, 0x1834: 0x3308, 0x1835: 0x0040,
+       0x1836: 0x0040, 0x1837: 0x0040, 0x1838: 0x0040, 0x1839: 0x0040, 0x183a: 0x0040, 0x183b: 0x0040,
+       0x183c: 0x0040, 0x183d: 0x0040, 0x183e: 0x0040, 0x183f: 0x0040,
+       // Block 0x61, offset 0x1840
+       0x1840: 0x0039, 0x1841: 0x0ee9, 0x1842: 0x1159, 0x1843: 0x0ef9, 0x1844: 0x0f09, 0x1845: 0x1199,
+       0x1846: 0x0f31, 0x1847: 0x0249, 0x1848: 0x0f41, 0x1849: 0x0259, 0x184a: 0x0f51, 0x184b: 0x0359,
+       0x184c: 0x0f61, 0x184d: 0x0f71, 0x184e: 0x00d9, 0x184f: 0x0f99, 0x1850: 0x2039, 0x1851: 0x0269,
+       0x1852: 0x01d9, 0x1853: 0x0fa9, 0x1854: 0x0fb9, 0x1855: 0x1089, 0x1856: 0x0279, 0x1857: 0x0369,
+       0x1858: 0x0289, 0x1859: 0x13d1, 0x185a: 0x0039, 0x185b: 0x0ee9, 0x185c: 0x1159, 0x185d: 0x0ef9,
+       0x185e: 0x0f09, 0x185f: 0x1199, 0x1860: 0x0f31, 0x1861: 0x0249, 0x1862: 0x0f41, 0x1863: 0x0259,
+       0x1864: 0x0f51, 0x1865: 0x0359, 0x1866: 0x0f61, 0x1867: 0x0f71, 0x1868: 0x00d9, 0x1869: 0x0f99,
+       0x186a: 0x2039, 0x186b: 0x0269, 0x186c: 0x01d9, 0x186d: 0x0fa9, 0x186e: 0x0fb9, 0x186f: 0x1089,
+       0x1870: 0x0279, 0x1871: 0x0369, 0x1872: 0x0289, 0x1873: 0x13d1, 0x1874: 0x0039, 0x1875: 0x0ee9,
+       0x1876: 0x1159, 0x1877: 0x0ef9, 0x1878: 0x0f09, 0x1879: 0x1199, 0x187a: 0x0f31, 0x187b: 0x0249,
+       0x187c: 0x0f41, 0x187d: 0x0259, 0x187e: 0x0f51, 0x187f: 0x0359,
+       // Block 0x62, offset 0x1880
+       0x1880: 0x0f61, 0x1881: 0x0f71, 0x1882: 0x00d9, 0x1883: 0x0f99, 0x1884: 0x2039, 0x1885: 0x0269,
+       0x1886: 0x01d9, 0x1887: 0x0fa9, 0x1888: 0x0fb9, 0x1889: 0x1089, 0x188a: 0x0279, 0x188b: 0x0369,
+       0x188c: 0x0289, 0x188d: 0x13d1, 0x188e: 0x0039, 0x188f: 0x0ee9, 0x1890: 0x1159, 0x1891: 0x0ef9,
+       0x1892: 0x0f09, 0x1893: 0x1199, 0x1894: 0x0f31, 0x1895: 0x0040, 0x1896: 0x0f41, 0x1897: 0x0259,
+       0x1898: 0x0f51, 0x1899: 0x0359, 0x189a: 0x0f61, 0x189b: 0x0f71, 0x189c: 0x00d9, 0x189d: 0x0f99,
+       0x189e: 0x2039, 0x189f: 0x0269, 0x18a0: 0x01d9, 0x18a1: 0x0fa9, 0x18a2: 0x0fb9, 0x18a3: 0x1089,
+       0x18a4: 0x0279, 0x18a5: 0x0369, 0x18a6: 0x0289, 0x18a7: 0x13d1, 0x18a8: 0x0039, 0x18a9: 0x0ee9,
+       0x18aa: 0x1159, 0x18ab: 0x0ef9, 0x18ac: 0x0f09, 0x18ad: 0x1199, 0x18ae: 0x0f31, 0x18af: 0x0249,
+       0x18b0: 0x0f41, 0x18b1: 0x0259, 0x18b2: 0x0f51, 0x18b3: 0x0359, 0x18b4: 0x0f61, 0x18b5: 0x0f71,
+       0x18b6: 0x00d9, 0x18b7: 0x0f99, 0x18b8: 0x2039, 0x18b9: 0x0269, 0x18ba: 0x01d9, 0x18bb: 0x0fa9,
+       0x18bc: 0x0fb9, 0x18bd: 0x1089, 0x18be: 0x0279, 0x18bf: 0x0369,
+       // Block 0x63, offset 0x18c0
+       0x18c0: 0x0289, 0x18c1: 0x13d1, 0x18c2: 0x0039, 0x18c3: 0x0ee9, 0x18c4: 0x1159, 0x18c5: 0x0ef9,
+       0x18c6: 0x0f09, 0x18c7: 0x1199, 0x18c8: 0x0f31, 0x18c9: 0x0249, 0x18ca: 0x0f41, 0x18cb: 0x0259,
+       0x18cc: 0x0f51, 0x18cd: 0x0359, 0x18ce: 0x0f61, 0x18cf: 0x0f71, 0x18d0: 0x00d9, 0x18d1: 0x0f99,
+       0x18d2: 0x2039, 0x18d3: 0x0269, 0x18d4: 0x01d9, 0x18d5: 0x0fa9, 0x18d6: 0x0fb9, 0x18d7: 0x1089,
+       0x18d8: 0x0279, 0x18d9: 0x0369, 0x18da: 0x0289, 0x18db: 0x13d1, 0x18dc: 0x0039, 0x18dd: 0x0040,
+       0x18de: 0x1159, 0x18df: 0x0ef9, 0x18e0: 0x0040, 0x18e1: 0x0040, 0x18e2: 0x0f31, 0x18e3: 0x0040,
+       0x18e4: 0x0040, 0x18e5: 0x0259, 0x18e6: 0x0f51, 0x18e7: 0x0040, 0x18e8: 0x0040, 0x18e9: 0x0f71,
+       0x18ea: 0x00d9, 0x18eb: 0x0f99, 0x18ec: 0x2039, 0x18ed: 0x0040, 0x18ee: 0x01d9, 0x18ef: 0x0fa9,
+       0x18f0: 0x0fb9, 0x18f1: 0x1089, 0x18f2: 0x0279, 0x18f3: 0x0369, 0x18f4: 0x0289, 0x18f5: 0x13d1,
+       0x18f6: 0x0039, 0x18f7: 0x0ee9, 0x18f8: 0x1159, 0x18f9: 0x0ef9, 0x18fa: 0x0040, 0x18fb: 0x1199,
+       0x18fc: 0x0040, 0x18fd: 0x0249, 0x18fe: 0x0f41, 0x18ff: 0x0259,
+       // Block 0x64, offset 0x1900
+       0x1900: 0x0f51, 0x1901: 0x0359, 0x1902: 0x0f61, 0x1903: 0x0f71, 0x1904: 0x0040, 0x1905: 0x0f99,
+       0x1906: 0x2039, 0x1907: 0x0269, 0x1908: 0x01d9, 0x1909: 0x0fa9, 0x190a: 0x0fb9, 0x190b: 0x1089,
+       0x190c: 0x0279, 0x190d: 0x0369, 0x190e: 0x0289, 0x190f: 0x13d1, 0x1910: 0x0039, 0x1911: 0x0ee9,
+       0x1912: 0x1159, 0x1913: 0x0ef9, 0x1914: 0x0f09, 0x1915: 0x1199, 0x1916: 0x0f31, 0x1917: 0x0249,
+       0x1918: 0x0f41, 0x1919: 0x0259, 0x191a: 0x0f51, 0x191b: 0x0359, 0x191c: 0x0f61, 0x191d: 0x0f71,
+       0x191e: 0x00d9, 0x191f: 0x0f99, 0x1920: 0x2039, 0x1921: 0x0269, 0x1922: 0x01d9, 0x1923: 0x0fa9,
+       0x1924: 0x0fb9, 0x1925: 0x1089, 0x1926: 0x0279, 0x1927: 0x0369, 0x1928: 0x0289, 0x1929: 0x13d1,
+       0x192a: 0x0039, 0x192b: 0x0ee9, 0x192c: 0x1159, 0x192d: 0x0ef9, 0x192e: 0x0f09, 0x192f: 0x1199,
+       0x1930: 0x0f31, 0x1931: 0x0249, 0x1932: 0x0f41, 0x1933: 0x0259, 0x1934: 0x0f51, 0x1935: 0x0359,
+       0x1936: 0x0f61, 0x1937: 0x0f71, 0x1938: 0x00d9, 0x1939: 0x0f99, 0x193a: 0x2039, 0x193b: 0x0269,
+       0x193c: 0x01d9, 0x193d: 0x0fa9, 0x193e: 0x0fb9, 0x193f: 0x1089,
+       // Block 0x65, offset 0x1940
+       0x1940: 0x0279, 0x1941: 0x0369, 0x1942: 0x0289, 0x1943: 0x13d1, 0x1944: 0x0039, 0x1945: 0x0ee9,
+       0x1946: 0x0040, 0x1947: 0x0ef9, 0x1948: 0x0f09, 0x1949: 0x1199, 0x194a: 0x0f31, 0x194b: 0x0040,
+       0x194c: 0x0040, 0x194d: 0x0259, 0x194e: 0x0f51, 0x194f: 0x0359, 0x1950: 0x0f61, 0x1951: 0x0f71,
+       0x1952: 0x00d9, 0x1953: 0x0f99, 0x1954: 0x2039, 0x1955: 0x0040, 0x1956: 0x01d9, 0x1957: 0x0fa9,
+       0x1958: 0x0fb9, 0x1959: 0x1089, 0x195a: 0x0279, 0x195b: 0x0369, 0x195c: 0x0289, 0x195d: 0x0040,
+       0x195e: 0x0039, 0x195f: 0x0ee9, 0x1960: 0x1159, 0x1961: 0x0ef9, 0x1962: 0x0f09, 0x1963: 0x1199,
+       0x1964: 0x0f31, 0x1965: 0x0249, 0x1966: 0x0f41, 0x1967: 0x0259, 0x1968: 0x0f51, 0x1969: 0x0359,
+       0x196a: 0x0f61, 0x196b: 0x0f71, 0x196c: 0x00d9, 0x196d: 0x0f99, 0x196e: 0x2039, 0x196f: 0x0269,
+       0x1970: 0x01d9, 0x1971: 0x0fa9, 0x1972: 0x0fb9, 0x1973: 0x1089, 0x1974: 0x0279, 0x1975: 0x0369,
+       0x1976: 0x0289, 0x1977: 0x13d1, 0x1978: 0x0039, 0x1979: 0x0ee9, 0x197a: 0x0040, 0x197b: 0x0ef9,
+       0x197c: 0x0f09, 0x197d: 0x1199, 0x197e: 0x0f31, 0x197f: 0x0040,
+       // Block 0x66, offset 0x1980
+       0x1980: 0x0f41, 0x1981: 0x0259, 0x1982: 0x0f51, 0x1983: 0x0359, 0x1984: 0x0f61, 0x1985: 0x0040,
+       0x1986: 0x00d9, 0x1987: 0x0040, 0x1988: 0x0040, 0x1989: 0x0040, 0x198a: 0x01d9, 0x198b: 0x0fa9,
+       0x198c: 0x0fb9, 0x198d: 0x1089, 0x198e: 0x0279, 0x198f: 0x0369, 0x1990: 0x0289, 0x1991: 0x0040,
+       0x1992: 0x0039, 0x1993: 0x0ee9, 0x1994: 0x1159, 0x1995: 0x0ef9, 0x1996: 0x0f09, 0x1997: 0x1199,
+       0x1998: 0x0f31, 0x1999: 0x0249, 0x199a: 0x0f41, 0x199b: 0x0259, 0x199c: 0x0f51, 0x199d: 0x0359,
+       0x199e: 0x0f61, 0x199f: 0x0f71, 0x19a0: 0x00d9, 0x19a1: 0x0f99, 0x19a2: 0x2039, 0x19a3: 0x0269,
+       0x19a4: 0x01d9, 0x19a5: 0x0fa9, 0x19a6: 0x0fb9, 0x19a7: 0x1089, 0x19a8: 0x0279, 0x19a9: 0x0369,
+       0x19aa: 0x0289, 0x19ab: 0x13d1, 0x19ac: 0x0039, 0x19ad: 0x0ee9, 0x19ae: 0x1159, 0x19af: 0x0ef9,
+       0x19b0: 0x0f09, 0x19b1: 0x1199, 0x19b2: 0x0f31, 0x19b3: 0x0249, 0x19b4: 0x0f41, 0x19b5: 0x0259,
+       0x19b6: 0x0f51, 0x19b7: 0x0359, 0x19b8: 0x0f61, 0x19b9: 0x0f71, 0x19ba: 0x00d9, 0x19bb: 0x0f99,
+       0x19bc: 0x2039, 0x19bd: 0x0269, 0x19be: 0x01d9, 0x19bf: 0x0fa9,
+       // Block 0x67, offset 0x19c0
+       0x19c0: 0x0fb9, 0x19c1: 0x1089, 0x19c2: 0x0279, 0x19c3: 0x0369, 0x19c4: 0x0289, 0x19c5: 0x13d1,
+       0x19c6: 0x0039, 0x19c7: 0x0ee9, 0x19c8: 0x1159, 0x19c9: 0x0ef9, 0x19ca: 0x0f09, 0x19cb: 0x1199,
+       0x19cc: 0x0f31, 0x19cd: 0x0249, 0x19ce: 0x0f41, 0x19cf: 0x0259, 0x19d0: 0x0f51, 0x19d1: 0x0359,
+       0x19d2: 0x0f61, 0x19d3: 0x0f71, 0x19d4: 0x00d9, 0x19d5: 0x0f99, 0x19d6: 0x2039, 0x19d7: 0x0269,
+       0x19d8: 0x01d9, 0x19d9: 0x0fa9, 0x19da: 0x0fb9, 0x19db: 0x1089, 0x19dc: 0x0279, 0x19dd: 0x0369,
+       0x19de: 0x0289, 0x19df: 0x13d1, 0x19e0: 0x0039, 0x19e1: 0x0ee9, 0x19e2: 0x1159, 0x19e3: 0x0ef9,
+       0x19e4: 0x0f09, 0x19e5: 0x1199, 0x19e6: 0x0f31, 0x19e7: 0x0249, 0x19e8: 0x0f41, 0x19e9: 0x0259,
+       0x19ea: 0x0f51, 0x19eb: 0x0359, 0x19ec: 0x0f61, 0x19ed: 0x0f71, 0x19ee: 0x00d9, 0x19ef: 0x0f99,
+       0x19f0: 0x2039, 0x19f1: 0x0269, 0x19f2: 0x01d9, 0x19f3: 0x0fa9, 0x19f4: 0x0fb9, 0x19f5: 0x1089,
+       0x19f6: 0x0279, 0x19f7: 0x0369, 0x19f8: 0x0289, 0x19f9: 0x13d1, 0x19fa: 0x0039, 0x19fb: 0x0ee9,
+       0x19fc: 0x1159, 0x19fd: 0x0ef9, 0x19fe: 0x0f09, 0x19ff: 0x1199,
+       // Block 0x68, offset 0x1a00
+       0x1a00: 0x0f31, 0x1a01: 0x0249, 0x1a02: 0x0f41, 0x1a03: 0x0259, 0x1a04: 0x0f51, 0x1a05: 0x0359,
+       0x1a06: 0x0f61, 0x1a07: 0x0f71, 0x1a08: 0x00d9, 0x1a09: 0x0f99, 0x1a0a: 0x2039, 0x1a0b: 0x0269,
+       0x1a0c: 0x01d9, 0x1a0d: 0x0fa9, 0x1a0e: 0x0fb9, 0x1a0f: 0x1089, 0x1a10: 0x0279, 0x1a11: 0x0369,
+       0x1a12: 0x0289, 0x1a13: 0x13d1, 0x1a14: 0x0039, 0x1a15: 0x0ee9, 0x1a16: 0x1159, 0x1a17: 0x0ef9,
+       0x1a18: 0x0f09, 0x1a19: 0x1199, 0x1a1a: 0x0f31, 0x1a1b: 0x0249, 0x1a1c: 0x0f41, 0x1a1d: 0x0259,
+       0x1a1e: 0x0f51, 0x1a1f: 0x0359, 0x1a20: 0x0f61, 0x1a21: 0x0f71, 0x1a22: 0x00d9, 0x1a23: 0x0f99,
+       0x1a24: 0x2039, 0x1a25: 0x0269, 0x1a26: 0x01d9, 0x1a27: 0x0fa9, 0x1a28: 0x0fb9, 0x1a29: 0x1089,
+       0x1a2a: 0x0279, 0x1a2b: 0x0369, 0x1a2c: 0x0289, 0x1a2d: 0x13d1, 0x1a2e: 0x0039, 0x1a2f: 0x0ee9,
+       0x1a30: 0x1159, 0x1a31: 0x0ef9, 0x1a32: 0x0f09, 0x1a33: 0x1199, 0x1a34: 0x0f31, 0x1a35: 0x0249,
+       0x1a36: 0x0f41, 0x1a37: 0x0259, 0x1a38: 0x0f51, 0x1a39: 0x0359, 0x1a3a: 0x0f61, 0x1a3b: 0x0f71,
+       0x1a3c: 0x00d9, 0x1a3d: 0x0f99, 0x1a3e: 0x2039, 0x1a3f: 0x0269,
+       // Block 0x69, offset 0x1a40
+       0x1a40: 0x01d9, 0x1a41: 0x0fa9, 0x1a42: 0x0fb9, 0x1a43: 0x1089, 0x1a44: 0x0279, 0x1a45: 0x0369,
+       0x1a46: 0x0289, 0x1a47: 0x13d1, 0x1a48: 0x0039, 0x1a49: 0x0ee9, 0x1a4a: 0x1159, 0x1a4b: 0x0ef9,
+       0x1a4c: 0x0f09, 0x1a4d: 0x1199, 0x1a4e: 0x0f31, 0x1a4f: 0x0249, 0x1a50: 0x0f41, 0x1a51: 0x0259,
+       0x1a52: 0x0f51, 0x1a53: 0x0359, 0x1a54: 0x0f61, 0x1a55: 0x0f71, 0x1a56: 0x00d9, 0x1a57: 0x0f99,
+       0x1a58: 0x2039, 0x1a59: 0x0269, 0x1a5a: 0x01d9, 0x1a5b: 0x0fa9, 0x1a5c: 0x0fb9, 0x1a5d: 0x1089,
+       0x1a5e: 0x0279, 0x1a5f: 0x0369, 0x1a60: 0x0289, 0x1a61: 0x13d1, 0x1a62: 0x0039, 0x1a63: 0x0ee9,
+       0x1a64: 0x1159, 0x1a65: 0x0ef9, 0x1a66: 0x0f09, 0x1a67: 0x1199, 0x1a68: 0x0f31, 0x1a69: 0x0249,
+       0x1a6a: 0x0f41, 0x1a6b: 0x0259, 0x1a6c: 0x0f51, 0x1a6d: 0x0359, 0x1a6e: 0x0f61, 0x1a6f: 0x0f71,
+       0x1a70: 0x00d9, 0x1a71: 0x0f99, 0x1a72: 0x2039, 0x1a73: 0x0269, 0x1a74: 0x01d9, 0x1a75: 0x0fa9,
+       0x1a76: 0x0fb9, 0x1a77: 0x1089, 0x1a78: 0x0279, 0x1a79: 0x0369, 0x1a7a: 0x0289, 0x1a7b: 0x13d1,
+       0x1a7c: 0x0039, 0x1a7d: 0x0ee9, 0x1a7e: 0x1159, 0x1a7f: 0x0ef9,
+       // Block 0x6a, offset 0x1a80
+       0x1a80: 0x0f09, 0x1a81: 0x1199, 0x1a82: 0x0f31, 0x1a83: 0x0249, 0x1a84: 0x0f41, 0x1a85: 0x0259,
+       0x1a86: 0x0f51, 0x1a87: 0x0359, 0x1a88: 0x0f61, 0x1a89: 0x0f71, 0x1a8a: 0x00d9, 0x1a8b: 0x0f99,
+       0x1a8c: 0x2039, 0x1a8d: 0x0269, 0x1a8e: 0x01d9, 0x1a8f: 0x0fa9, 0x1a90: 0x0fb9, 0x1a91: 0x1089,
+       0x1a92: 0x0279, 0x1a93: 0x0369, 0x1a94: 0x0289, 0x1a95: 0x13d1, 0x1a96: 0x0039, 0x1a97: 0x0ee9,
+       0x1a98: 0x1159, 0x1a99: 0x0ef9, 0x1a9a: 0x0f09, 0x1a9b: 0x1199, 0x1a9c: 0x0f31, 0x1a9d: 0x0249,
+       0x1a9e: 0x0f41, 0x1a9f: 0x0259, 0x1aa0: 0x0f51, 0x1aa1: 0x0359, 0x1aa2: 0x0f61, 0x1aa3: 0x0f71,
+       0x1aa4: 0x00d9, 0x1aa5: 0x0f99, 0x1aa6: 0x2039, 0x1aa7: 0x0269, 0x1aa8: 0x01d9, 0x1aa9: 0x0fa9,
+       0x1aaa: 0x0fb9, 0x1aab: 0x1089, 0x1aac: 0x0279, 0x1aad: 0x0369, 0x1aae: 0x0289, 0x1aaf: 0x13d1,
+       0x1ab0: 0x0039, 0x1ab1: 0x0ee9, 0x1ab2: 0x1159, 0x1ab3: 0x0ef9, 0x1ab4: 0x0f09, 0x1ab5: 0x1199,
+       0x1ab6: 0x0f31, 0x1ab7: 0x0249, 0x1ab8: 0x0f41, 0x1ab9: 0x0259, 0x1aba: 0x0f51, 0x1abb: 0x0359,
+       0x1abc: 0x0f61, 0x1abd: 0x0f71, 0x1abe: 0x00d9, 0x1abf: 0x0f99,
+       // Block 0x6b, offset 0x1ac0
+       0x1ac0: 0x2039, 0x1ac1: 0x0269, 0x1ac2: 0x01d9, 0x1ac3: 0x0fa9, 0x1ac4: 0x0fb9, 0x1ac5: 0x1089,
+       0x1ac6: 0x0279, 0x1ac7: 0x0369, 0x1ac8: 0x0289, 0x1ac9: 0x13d1, 0x1aca: 0x0039, 0x1acb: 0x0ee9,
+       0x1acc: 0x1159, 0x1acd: 0x0ef9, 0x1ace: 0x0f09, 0x1acf: 0x1199, 0x1ad0: 0x0f31, 0x1ad1: 0x0249,
+       0x1ad2: 0x0f41, 0x1ad3: 0x0259, 0x1ad4: 0x0f51, 0x1ad5: 0x0359, 0x1ad6: 0x0f61, 0x1ad7: 0x0f71,
+       0x1ad8: 0x00d9, 0x1ad9: 0x0f99, 0x1ada: 0x2039, 0x1adb: 0x0269, 0x1adc: 0x01d9, 0x1add: 0x0fa9,
+       0x1ade: 0x0fb9, 0x1adf: 0x1089, 0x1ae0: 0x0279, 0x1ae1: 0x0369, 0x1ae2: 0x0289, 0x1ae3: 0x13d1,
+       0x1ae4: 0xba81, 0x1ae5: 0xba99, 0x1ae6: 0x0040, 0x1ae7: 0x0040, 0x1ae8: 0xbab1, 0x1ae9: 0x1099,
+       0x1aea: 0x10b1, 0x1aeb: 0x10c9, 0x1aec: 0xbac9, 0x1aed: 0xbae1, 0x1aee: 0xbaf9, 0x1aef: 0x1429,
+       0x1af0: 0x1a31, 0x1af1: 0xbb11, 0x1af2: 0xbb29, 0x1af3: 0xbb41, 0x1af4: 0xbb59, 0x1af5: 0xbb71,
+       0x1af6: 0xbb89, 0x1af7: 0x2109, 0x1af8: 0x1111, 0x1af9: 0x1429, 0x1afa: 0xbba1, 0x1afb: 0xbbb9,
+       0x1afc: 0xbbd1, 0x1afd: 0x10e1, 0x1afe: 0x10f9, 0x1aff: 0xbbe9,
+       // Block 0x6c, offset 0x1b00
+       0x1b00: 0x2079, 0x1b01: 0xbc01, 0x1b02: 0xbab1, 0x1b03: 0x1099, 0x1b04: 0x10b1, 0x1b05: 0x10c9,
+       0x1b06: 0xbac9, 0x1b07: 0xbae1, 0x1b08: 0xbaf9, 0x1b09: 0x1429, 0x1b0a: 0x1a31, 0x1b0b: 0xbb11,
+       0x1b0c: 0xbb29, 0x1b0d: 0xbb41, 0x1b0e: 0xbb59, 0x1b0f: 0xbb71, 0x1b10: 0xbb89, 0x1b11: 0x2109,
+       0x1b12: 0x1111, 0x1b13: 0xbba1, 0x1b14: 0xbba1, 0x1b15: 0xbbb9, 0x1b16: 0xbbd1, 0x1b17: 0x10e1,
+       0x1b18: 0x10f9, 0x1b19: 0xbbe9, 0x1b1a: 0x2079, 0x1b1b: 0xbc21, 0x1b1c: 0xbac9, 0x1b1d: 0x1429,
+       0x1b1e: 0xbb11, 0x1b1f: 0x10e1, 0x1b20: 0x1111, 0x1b21: 0x2109, 0x1b22: 0xbab1, 0x1b23: 0x1099,
+       0x1b24: 0x10b1, 0x1b25: 0x10c9, 0x1b26: 0xbac9, 0x1b27: 0xbae1, 0x1b28: 0xbaf9, 0x1b29: 0x1429,
+       0x1b2a: 0x1a31, 0x1b2b: 0xbb11, 0x1b2c: 0xbb29, 0x1b2d: 0xbb41, 0x1b2e: 0xbb59, 0x1b2f: 0xbb71,
+       0x1b30: 0xbb89, 0x1b31: 0x2109, 0x1b32: 0x1111, 0x1b33: 0x1429, 0x1b34: 0xbba1, 0x1b35: 0xbbb9,
+       0x1b36: 0xbbd1, 0x1b37: 0x10e1, 0x1b38: 0x10f9, 0x1b39: 0xbbe9, 0x1b3a: 0x2079, 0x1b3b: 0xbc01,
+       0x1b3c: 0xbab1, 0x1b3d: 0x1099, 0x1b3e: 0x10b1, 0x1b3f: 0x10c9,
+       // Block 0x6d, offset 0x1b40
+       0x1b40: 0xbac9, 0x1b41: 0xbae1, 0x1b42: 0xbaf9, 0x1b43: 0x1429, 0x1b44: 0x1a31, 0x1b45: 0xbb11,
+       0x1b46: 0xbb29, 0x1b47: 0xbb41, 0x1b48: 0xbb59, 0x1b49: 0xbb71, 0x1b4a: 0xbb89, 0x1b4b: 0x2109,
+       0x1b4c: 0x1111, 0x1b4d: 0xbba1, 0x1b4e: 0xbba1, 0x1b4f: 0xbbb9, 0x1b50: 0xbbd1, 0x1b51: 0x10e1,
+       0x1b52: 0x10f9, 0x1b53: 0xbbe9, 0x1b54: 0x2079, 0x1b55: 0xbc21, 0x1b56: 0xbac9, 0x1b57: 0x1429,
+       0x1b58: 0xbb11, 0x1b59: 0x10e1, 0x1b5a: 0x1111, 0x1b5b: 0x2109, 0x1b5c: 0xbab1, 0x1b5d: 0x1099,
+       0x1b5e: 0x10b1, 0x1b5f: 0x10c9, 0x1b60: 0xbac9, 0x1b61: 0xbae1, 0x1b62: 0xbaf9, 0x1b63: 0x1429,
+       0x1b64: 0x1a31, 0x1b65: 0xbb11, 0x1b66: 0xbb29, 0x1b67: 0xbb41, 0x1b68: 0xbb59, 0x1b69: 0xbb71,
+       0x1b6a: 0xbb89, 0x1b6b: 0x2109, 0x1b6c: 0x1111, 0x1b6d: 0x1429, 0x1b6e: 0xbba1, 0x1b6f: 0xbbb9,
+       0x1b70: 0xbbd1, 0x1b71: 0x10e1, 0x1b72: 0x10f9, 0x1b73: 0xbbe9, 0x1b74: 0x2079, 0x1b75: 0xbc01,
+       0x1b76: 0xbab1, 0x1b77: 0x1099, 0x1b78: 0x10b1, 0x1b79: 0x10c9, 0x1b7a: 0xbac9, 0x1b7b: 0xbae1,
+       0x1b7c: 0xbaf9, 0x1b7d: 0x1429, 0x1b7e: 0x1a31, 0x1b7f: 0xbb11,
+       // Block 0x6e, offset 0x1b80
+       0x1b80: 0xbb29, 0x1b81: 0xbb41, 0x1b82: 0xbb59, 0x1b83: 0xbb71, 0x1b84: 0xbb89, 0x1b85: 0x2109,
+       0x1b86: 0x1111, 0x1b87: 0xbba1, 0x1b88: 0xbba1, 0x1b89: 0xbbb9, 0x1b8a: 0xbbd1, 0x1b8b: 0x10e1,
+       0x1b8c: 0x10f9, 0x1b8d: 0xbbe9, 0x1b8e: 0x2079, 0x1b8f: 0xbc21, 0x1b90: 0xbac9, 0x1b91: 0x1429,
+       0x1b92: 0xbb11, 0x1b93: 0x10e1, 0x1b94: 0x1111, 0x1b95: 0x2109, 0x1b96: 0xbab1, 0x1b97: 0x1099,
+       0x1b98: 0x10b1, 0x1b99: 0x10c9, 0x1b9a: 0xbac9, 0x1b9b: 0xbae1, 0x1b9c: 0xbaf9, 0x1b9d: 0x1429,
+       0x1b9e: 0x1a31, 0x1b9f: 0xbb11, 0x1ba0: 0xbb29, 0x1ba1: 0xbb41, 0x1ba2: 0xbb59, 0x1ba3: 0xbb71,
+       0x1ba4: 0xbb89, 0x1ba5: 0x2109, 0x1ba6: 0x1111, 0x1ba7: 0x1429, 0x1ba8: 0xbba1, 0x1ba9: 0xbbb9,
+       0x1baa: 0xbbd1, 0x1bab: 0x10e1, 0x1bac: 0x10f9, 0x1bad: 0xbbe9, 0x1bae: 0x2079, 0x1baf: 0xbc01,
+       0x1bb0: 0xbab1, 0x1bb1: 0x1099, 0x1bb2: 0x10b1, 0x1bb3: 0x10c9, 0x1bb4: 0xbac9, 0x1bb5: 0xbae1,
+       0x1bb6: 0xbaf9, 0x1bb7: 0x1429, 0x1bb8: 0x1a31, 0x1bb9: 0xbb11, 0x1bba: 0xbb29, 0x1bbb: 0xbb41,
+       0x1bbc: 0xbb59, 0x1bbd: 0xbb71, 0x1bbe: 0xbb89, 0x1bbf: 0x2109,
+       // Block 0x6f, offset 0x1bc0
+       0x1bc0: 0x1111, 0x1bc1: 0xbba1, 0x1bc2: 0xbba1, 0x1bc3: 0xbbb9, 0x1bc4: 0xbbd1, 0x1bc5: 0x10e1,
+       0x1bc6: 0x10f9, 0x1bc7: 0xbbe9, 0x1bc8: 0x2079, 0x1bc9: 0xbc21, 0x1bca: 0xbac9, 0x1bcb: 0x1429,
+       0x1bcc: 0xbb11, 0x1bcd: 0x10e1, 0x1bce: 0x1111, 0x1bcf: 0x2109, 0x1bd0: 0xbab1, 0x1bd1: 0x1099,
+       0x1bd2: 0x10b1, 0x1bd3: 0x10c9, 0x1bd4: 0xbac9, 0x1bd5: 0xbae1, 0x1bd6: 0xbaf9, 0x1bd7: 0x1429,
+       0x1bd8: 0x1a31, 0x1bd9: 0xbb11, 0x1bda: 0xbb29, 0x1bdb: 0xbb41, 0x1bdc: 0xbb59, 0x1bdd: 0xbb71,
+       0x1bde: 0xbb89, 0x1bdf: 0x2109, 0x1be0: 0x1111, 0x1be1: 0x1429, 0x1be2: 0xbba1, 0x1be3: 0xbbb9,
+       0x1be4: 0xbbd1, 0x1be5: 0x10e1, 0x1be6: 0x10f9, 0x1be7: 0xbbe9, 0x1be8: 0x2079, 0x1be9: 0xbc01,
+       0x1bea: 0xbab1, 0x1beb: 0x1099, 0x1bec: 0x10b1, 0x1bed: 0x10c9, 0x1bee: 0xbac9, 0x1bef: 0xbae1,
+       0x1bf0: 0xbaf9, 0x1bf1: 0x1429, 0x1bf2: 0x1a31, 0x1bf3: 0xbb11, 0x1bf4: 0xbb29, 0x1bf5: 0xbb41,
+       0x1bf6: 0xbb59, 0x1bf7: 0xbb71, 0x1bf8: 0xbb89, 0x1bf9: 0x2109, 0x1bfa: 0x1111, 0x1bfb: 0xbba1,
+       0x1bfc: 0xbba1, 0x1bfd: 0xbbb9, 0x1bfe: 0xbbd1, 0x1bff: 0x10e1,
+       // Block 0x70, offset 0x1c00
+       0x1c00: 0x10f9, 0x1c01: 0xbbe9, 0x1c02: 0x2079, 0x1c03: 0xbc21, 0x1c04: 0xbac9, 0x1c05: 0x1429,
+       0x1c06: 0xbb11, 0x1c07: 0x10e1, 0x1c08: 0x1111, 0x1c09: 0x2109, 0x1c0a: 0xbc41, 0x1c0b: 0xbc41,
+       0x1c0c: 0x0040, 0x1c0d: 0x0040, 0x1c0e: 0x1f41, 0x1c0f: 0x00c9, 0x1c10: 0x0069, 0x1c11: 0x0079,
+       0x1c12: 0x1f51, 0x1c13: 0x1f61, 0x1c14: 0x1f71, 0x1c15: 0x1f81, 0x1c16: 0x1f91, 0x1c17: 0x1fa1,
+       0x1c18: 0x1f41, 0x1c19: 0x00c9, 0x1c1a: 0x0069, 0x1c1b: 0x0079, 0x1c1c: 0x1f51, 0x1c1d: 0x1f61,
+       0x1c1e: 0x1f71, 0x1c1f: 0x1f81, 0x1c20: 0x1f91, 0x1c21: 0x1fa1, 0x1c22: 0x1f41, 0x1c23: 0x00c9,
+       0x1c24: 0x0069, 0x1c25: 0x0079, 0x1c26: 0x1f51, 0x1c27: 0x1f61, 0x1c28: 0x1f71, 0x1c29: 0x1f81,
+       0x1c2a: 0x1f91, 0x1c2b: 0x1fa1, 0x1c2c: 0x1f41, 0x1c2d: 0x00c9, 0x1c2e: 0x0069, 0x1c2f: 0x0079,
+       0x1c30: 0x1f51, 0x1c31: 0x1f61, 0x1c32: 0x1f71, 0x1c33: 0x1f81, 0x1c34: 0x1f91, 0x1c35: 0x1fa1,
+       0x1c36: 0x1f41, 0x1c37: 0x00c9, 0x1c38: 0x0069, 0x1c39: 0x0079, 0x1c3a: 0x1f51, 0x1c3b: 0x1f61,
+       0x1c3c: 0x1f71, 0x1c3d: 0x1f81, 0x1c3e: 0x1f91, 0x1c3f: 0x1fa1,
+       // Block 0x71, offset 0x1c40
+       0x1c40: 0xe115, 0x1c41: 0xe115, 0x1c42: 0xe135, 0x1c43: 0xe135, 0x1c44: 0xe115, 0x1c45: 0xe115,
+       0x1c46: 0xe175, 0x1c47: 0xe175, 0x1c48: 0xe115, 0x1c49: 0xe115, 0x1c4a: 0xe135, 0x1c4b: 0xe135,
+       0x1c4c: 0xe115, 0x1c4d: 0xe115, 0x1c4e: 0xe1f5, 0x1c4f: 0xe1f5, 0x1c50: 0xe115, 0x1c51: 0xe115,
+       0x1c52: 0xe135, 0x1c53: 0xe135, 0x1c54: 0xe115, 0x1c55: 0xe115, 0x1c56: 0xe175, 0x1c57: 0xe175,
+       0x1c58: 0xe115, 0x1c59: 0xe115, 0x1c5a: 0xe135, 0x1c5b: 0xe135, 0x1c5c: 0xe115, 0x1c5d: 0xe115,
+       0x1c5e: 0x8b05, 0x1c5f: 0x8b05, 0x1c60: 0x04b5, 0x1c61: 0x04b5, 0x1c62: 0x0a08, 0x1c63: 0x0a08,
+       0x1c64: 0x0a08, 0x1c65: 0x0a08, 0x1c66: 0x0a08, 0x1c67: 0x0a08, 0x1c68: 0x0a08, 0x1c69: 0x0a08,
+       0x1c6a: 0x0a08, 0x1c6b: 0x0a08, 0x1c6c: 0x0a08, 0x1c6d: 0x0a08, 0x1c6e: 0x0a08, 0x1c6f: 0x0a08,
+       0x1c70: 0x0a08, 0x1c71: 0x0a08, 0x1c72: 0x0a08, 0x1c73: 0x0a08, 0x1c74: 0x0a08, 0x1c75: 0x0a08,
+       0x1c76: 0x0a08, 0x1c77: 0x0a08, 0x1c78: 0x0a08, 0x1c79: 0x0a08, 0x1c7a: 0x0a08, 0x1c7b: 0x0a08,
+       0x1c7c: 0x0a08, 0x1c7d: 0x0a08, 0x1c7e: 0x0a08, 0x1c7f: 0x0a08,
+       // Block 0x72, offset 0x1c80
+       0x1c80: 0xb189, 0x1c81: 0xb1a1, 0x1c82: 0xb201, 0x1c83: 0xb249, 0x1c84: 0x0040, 0x1c85: 0xb411,
+       0x1c86: 0xb291, 0x1c87: 0xb219, 0x1c88: 0xb309, 0x1c89: 0xb429, 0x1c8a: 0xb399, 0x1c8b: 0xb3b1,
+       0x1c8c: 0xb3c9, 0x1c8d: 0xb3e1, 0x1c8e: 0xb2a9, 0x1c8f: 0xb339, 0x1c90: 0xb369, 0x1c91: 0xb2d9,
+       0x1c92: 0xb381, 0x1c93: 0xb279, 0x1c94: 0xb2c1, 0x1c95: 0xb1d1, 0x1c96: 0xb1e9, 0x1c97: 0xb231,
+       0x1c98: 0xb261, 0x1c99: 0xb2f1, 0x1c9a: 0xb321, 0x1c9b: 0xb351, 0x1c9c: 0xbc59, 0x1c9d: 0x7949,
+       0x1c9e: 0xbc71, 0x1c9f: 0xbc89, 0x1ca0: 0x0040, 0x1ca1: 0xb1a1, 0x1ca2: 0xb201, 0x1ca3: 0x0040,
+       0x1ca4: 0xb3f9, 0x1ca5: 0x0040, 0x1ca6: 0x0040, 0x1ca7: 0xb219, 0x1ca8: 0x0040, 0x1ca9: 0xb429,
+       0x1caa: 0xb399, 0x1cab: 0xb3b1, 0x1cac: 0xb3c9, 0x1cad: 0xb3e1, 0x1cae: 0xb2a9, 0x1caf: 0xb339,
+       0x1cb0: 0xb369, 0x1cb1: 0xb2d9, 0x1cb2: 0xb381, 0x1cb3: 0x0040, 0x1cb4: 0xb2c1, 0x1cb5: 0xb1d1,
+       0x1cb6: 0xb1e9, 0x1cb7: 0xb231, 0x1cb8: 0x0040, 0x1cb9: 0xb2f1, 0x1cba: 0x0040, 0x1cbb: 0xb351,
+       0x1cbc: 0x0040, 0x1cbd: 0x0040, 0x1cbe: 0x0040, 0x1cbf: 0x0040,
+       // Block 0x73, offset 0x1cc0
+       0x1cc0: 0x0040, 0x1cc1: 0x0040, 0x1cc2: 0xb201, 0x1cc3: 0x0040, 0x1cc4: 0x0040, 0x1cc5: 0x0040,
+       0x1cc6: 0x0040, 0x1cc7: 0xb219, 0x1cc8: 0x0040, 0x1cc9: 0xb429, 0x1cca: 0x0040, 0x1ccb: 0xb3b1,
+       0x1ccc: 0x0040, 0x1ccd: 0xb3e1, 0x1cce: 0xb2a9, 0x1ccf: 0xb339, 0x1cd0: 0x0040, 0x1cd1: 0xb2d9,
+       0x1cd2: 0xb381, 0x1cd3: 0x0040, 0x1cd4: 0xb2c1, 0x1cd5: 0x0040, 0x1cd6: 0x0040, 0x1cd7: 0xb231,
+       0x1cd8: 0x0040, 0x1cd9: 0xb2f1, 0x1cda: 0x0040, 0x1cdb: 0xb351, 0x1cdc: 0x0040, 0x1cdd: 0x7949,
+       0x1cde: 0x0040, 0x1cdf: 0xbc89, 0x1ce0: 0x0040, 0x1ce1: 0xb1a1, 0x1ce2: 0xb201, 0x1ce3: 0x0040,
+       0x1ce4: 0xb3f9, 0x1ce5: 0x0040, 0x1ce6: 0x0040, 0x1ce7: 0xb219, 0x1ce8: 0xb309, 0x1ce9: 0xb429,
+       0x1cea: 0xb399, 0x1ceb: 0x0040, 0x1cec: 0xb3c9, 0x1ced: 0xb3e1, 0x1cee: 0xb2a9, 0x1cef: 0xb339,
+       0x1cf0: 0xb369, 0x1cf1: 0xb2d9, 0x1cf2: 0xb381, 0x1cf3: 0x0040, 0x1cf4: 0xb2c1, 0x1cf5: 0xb1d1,
+       0x1cf6: 0xb1e9, 0x1cf7: 0xb231, 0x1cf8: 0x0040, 0x1cf9: 0xb2f1, 0x1cfa: 0xb321, 0x1cfb: 0xb351,
+       0x1cfc: 0xbc59, 0x1cfd: 0x0040, 0x1cfe: 0xbc71, 0x1cff: 0x0040,
+       // Block 0x74, offset 0x1d00
+       0x1d00: 0xb189, 0x1d01: 0xb1a1, 0x1d02: 0xb201, 0x1d03: 0xb249, 0x1d04: 0xb3f9, 0x1d05: 0xb411,
+       0x1d06: 0xb291, 0x1d07: 0xb219, 0x1d08: 0xb309, 0x1d09: 0xb429, 0x1d0a: 0x0040, 0x1d0b: 0xb3b1,
+       0x1d0c: 0xb3c9, 0x1d0d: 0xb3e1, 0x1d0e: 0xb2a9, 0x1d0f: 0xb339, 0x1d10: 0xb369, 0x1d11: 0xb2d9,
+       0x1d12: 0xb381, 0x1d13: 0xb279, 0x1d14: 0xb2c1, 0x1d15: 0xb1d1, 0x1d16: 0xb1e9, 0x1d17: 0xb231,
+       0x1d18: 0xb261, 0x1d19: 0xb2f1, 0x1d1a: 0xb321, 0x1d1b: 0xb351, 0x1d1c: 0x0040, 0x1d1d: 0x0040,
+       0x1d1e: 0x0040, 0x1d1f: 0x0040, 0x1d20: 0x0040, 0x1d21: 0xb1a1, 0x1d22: 0xb201, 0x1d23: 0xb249,
+       0x1d24: 0x0040, 0x1d25: 0xb411, 0x1d26: 0xb291, 0x1d27: 0xb219, 0x1d28: 0xb309, 0x1d29: 0xb429,
+       0x1d2a: 0x0040, 0x1d2b: 0xb3b1, 0x1d2c: 0xb3c9, 0x1d2d: 0xb3e1, 0x1d2e: 0xb2a9, 0x1d2f: 0xb339,
+       0x1d30: 0xb369, 0x1d31: 0xb2d9, 0x1d32: 0xb381, 0x1d33: 0xb279, 0x1d34: 0xb2c1, 0x1d35: 0xb1d1,
+       0x1d36: 0xb1e9, 0x1d37: 0xb231, 0x1d38: 0xb261, 0x1d39: 0xb2f1, 0x1d3a: 0xb321, 0x1d3b: 0xb351,
+       0x1d3c: 0x0040, 0x1d3d: 0x0040, 0x1d3e: 0x0040, 0x1d3f: 0x0040,
+       // Block 0x75, offset 0x1d40
+       0x1d40: 0x0040, 0x1d41: 0xbca2, 0x1d42: 0xbcba, 0x1d43: 0xbcd2, 0x1d44: 0xbcea, 0x1d45: 0xbd02,
+       0x1d46: 0xbd1a, 0x1d47: 0xbd32, 0x1d48: 0xbd4a, 0x1d49: 0xbd62, 0x1d4a: 0xbd7a, 0x1d4b: 0x0018,
+       0x1d4c: 0x0018, 0x1d4d: 0x0040, 0x1d4e: 0x0040, 0x1d4f: 0x0040, 0x1d50: 0xbd92, 0x1d51: 0xbdb2,
+       0x1d52: 0xbdd2, 0x1d53: 0xbdf2, 0x1d54: 0xbe12, 0x1d55: 0xbe32, 0x1d56: 0xbe52, 0x1d57: 0xbe72,
+       0x1d58: 0xbe92, 0x1d59: 0xbeb2, 0x1d5a: 0xbed2, 0x1d5b: 0xbef2, 0x1d5c: 0xbf12, 0x1d5d: 0xbf32,
+       0x1d5e: 0xbf52, 0x1d5f: 0xbf72, 0x1d60: 0xbf92, 0x1d61: 0xbfb2, 0x1d62: 0xbfd2, 0x1d63: 0xbff2,
+       0x1d64: 0xc012, 0x1d65: 0xc032, 0x1d66: 0xc052, 0x1d67: 0xc072, 0x1d68: 0xc092, 0x1d69: 0xc0b2,
+       0x1d6a: 0xc0d1, 0x1d6b: 0x1159, 0x1d6c: 0x0269, 0x1d6d: 0x6671, 0x1d6e: 0xc111, 0x1d6f: 0x0040,
+       0x1d70: 0x0039, 0x1d71: 0x0ee9, 0x1d72: 0x1159, 0x1d73: 0x0ef9, 0x1d74: 0x0f09, 0x1d75: 0x1199,
+       0x1d76: 0x0f31, 0x1d77: 0x0249, 0x1d78: 0x0f41, 0x1d79: 0x0259, 0x1d7a: 0x0f51, 0x1d7b: 0x0359,
+       0x1d7c: 0x0f61, 0x1d7d: 0x0f71, 0x1d7e: 0x00d9, 0x1d7f: 0x0f99,
+       // Block 0x76, offset 0x1d80
+       0x1d80: 0x2039, 0x1d81: 0x0269, 0x1d82: 0x01d9, 0x1d83: 0x0fa9, 0x1d84: 0x0fb9, 0x1d85: 0x1089,
+       0x1d86: 0x0279, 0x1d87: 0x0369, 0x1d88: 0x0289, 0x1d89: 0x13d1, 0x1d8a: 0xc129, 0x1d8b: 0x65b1,
+       0x1d8c: 0xc141, 0x1d8d: 0x1441, 0x1d8e: 0xc159, 0x1d8f: 0xc179, 0x1d90: 0x0018, 0x1d91: 0x0018,
+       0x1d92: 0x0018, 0x1d93: 0x0018, 0x1d94: 0x0018, 0x1d95: 0x0018, 0x1d96: 0x0018, 0x1d97: 0x0018,
+       0x1d98: 0x0018, 0x1d99: 0x0018, 0x1d9a: 0x0018, 0x1d9b: 0x0018, 0x1d9c: 0x0018, 0x1d9d: 0x0018,
+       0x1d9e: 0x0018, 0x1d9f: 0x0018, 0x1da0: 0x0018, 0x1da1: 0x0018, 0x1da2: 0x0018, 0x1da3: 0x0018,
+       0x1da4: 0x0018, 0x1da5: 0x0018, 0x1da6: 0x0018, 0x1da7: 0x0018, 0x1da8: 0x0018, 0x1da9: 0x0018,
+       0x1daa: 0xc191, 0x1dab: 0xc1a9, 0x1dac: 0x0040, 0x1dad: 0x0040, 0x1dae: 0x0040, 0x1daf: 0x0040,
+       0x1db0: 0x0018, 0x1db1: 0x0018, 0x1db2: 0x0018, 0x1db3: 0x0018, 0x1db4: 0x0018, 0x1db5: 0x0018,
+       0x1db6: 0x0018, 0x1db7: 0x0018, 0x1db8: 0x0018, 0x1db9: 0x0018, 0x1dba: 0x0018, 0x1dbb: 0x0018,
+       0x1dbc: 0x0018, 0x1dbd: 0x0018, 0x1dbe: 0x0018, 0x1dbf: 0x0018,
+       // Block 0x77, offset 0x1dc0
+       0x1dc0: 0xc1d9, 0x1dc1: 0xc211, 0x1dc2: 0xc249, 0x1dc3: 0x0040, 0x1dc4: 0x0040, 0x1dc5: 0x0040,
+       0x1dc6: 0x0040, 0x1dc7: 0x0040, 0x1dc8: 0x0040, 0x1dc9: 0x0040, 0x1dca: 0x0040, 0x1dcb: 0x0040,
+       0x1dcc: 0x0040, 0x1dcd: 0x0040, 0x1dce: 0x0040, 0x1dcf: 0x0040, 0x1dd0: 0xc269, 0x1dd1: 0xc289,
+       0x1dd2: 0xc2a9, 0x1dd3: 0xc2c9, 0x1dd4: 0xc2e9, 0x1dd5: 0xc309, 0x1dd6: 0xc329, 0x1dd7: 0xc349,
+       0x1dd8: 0xc369, 0x1dd9: 0xc389, 0x1dda: 0xc3a9, 0x1ddb: 0xc3c9, 0x1ddc: 0xc3e9, 0x1ddd: 0xc409,
+       0x1dde: 0xc429, 0x1ddf: 0xc449, 0x1de0: 0xc469, 0x1de1: 0xc489, 0x1de2: 0xc4a9, 0x1de3: 0xc4c9,
+       0x1de4: 0xc4e9, 0x1de5: 0xc509, 0x1de6: 0xc529, 0x1de7: 0xc549, 0x1de8: 0xc569, 0x1de9: 0xc589,
+       0x1dea: 0xc5a9, 0x1deb: 0xc5c9, 0x1dec: 0xc5e9, 0x1ded: 0xc609, 0x1dee: 0xc629, 0x1def: 0xc649,
+       0x1df0: 0xc669, 0x1df1: 0xc689, 0x1df2: 0xc6a9, 0x1df3: 0xc6c9, 0x1df4: 0xc6e9, 0x1df5: 0xc709,
+       0x1df6: 0xc729, 0x1df7: 0xc749, 0x1df8: 0xc769, 0x1df9: 0xc789, 0x1dfa: 0xc7a9, 0x1dfb: 0xc7c9,
+       0x1dfc: 0x0040, 0x1dfd: 0x0040, 0x1dfe: 0x0040, 0x1dff: 0x0040,
+       // Block 0x78, offset 0x1e00
+       0x1e00: 0xcaf9, 0x1e01: 0xcb19, 0x1e02: 0xcb39, 0x1e03: 0x8b1d, 0x1e04: 0xcb59, 0x1e05: 0xcb79,
+       0x1e06: 0xcb99, 0x1e07: 0xcbb9, 0x1e08: 0xcbd9, 0x1e09: 0xcbf9, 0x1e0a: 0xcc19, 0x1e0b: 0xcc39,
+       0x1e0c: 0xcc59, 0x1e0d: 0x8b3d, 0x1e0e: 0xcc79, 0x1e0f: 0xcc99, 0x1e10: 0xccb9, 0x1e11: 0xccd9,
+       0x1e12: 0x8b5d, 0x1e13: 0xccf9, 0x1e14: 0xcd19, 0x1e15: 0xc429, 0x1e16: 0x8b7d, 0x1e17: 0xcd39,
+       0x1e18: 0xcd59, 0x1e19: 0xcd79, 0x1e1a: 0xcd99, 0x1e1b: 0xcdb9, 0x1e1c: 0x8b9d, 0x1e1d: 0xcdd9,
+       0x1e1e: 0xcdf9, 0x1e1f: 0xce19, 0x1e20: 0xce39, 0x1e21: 0xce59, 0x1e22: 0xc789, 0x1e23: 0xce79,
+       0x1e24: 0xce99, 0x1e25: 0xceb9, 0x1e26: 0xced9, 0x1e27: 0xcef9, 0x1e28: 0xcf19, 0x1e29: 0xcf39,
+       0x1e2a: 0xcf59, 0x1e2b: 0xcf79, 0x1e2c: 0xcf99, 0x1e2d: 0xcfb9, 0x1e2e: 0xcfd9, 0x1e2f: 0xcff9,
+       0x1e30: 0xd019, 0x1e31: 0xd039, 0x1e32: 0xd039, 0x1e33: 0xd039, 0x1e34: 0x8bbd, 0x1e35: 0xd059,
+       0x1e36: 0xd079, 0x1e37: 0xd099, 0x1e38: 0x8bdd, 0x1e39: 0xd0b9, 0x1e3a: 0xd0d9, 0x1e3b: 0xd0f9,
+       0x1e3c: 0xd119, 0x1e3d: 0xd139, 0x1e3e: 0xd159, 0x1e3f: 0xd179,
+       // Block 0x79, offset 0x1e40
+       0x1e40: 0xd199, 0x1e41: 0xd1b9, 0x1e42: 0xd1d9, 0x1e43: 0xd1f9, 0x1e44: 0xd219, 0x1e45: 0xd239,
+       0x1e46: 0xd239, 0x1e47: 0xd259, 0x1e48: 0xd279, 0x1e49: 0xd299, 0x1e4a: 0xd2b9, 0x1e4b: 0xd2d9,
+       0x1e4c: 0xd2f9, 0x1e4d: 0xd319, 0x1e4e: 0xd339, 0x1e4f: 0xd359, 0x1e50: 0xd379, 0x1e51: 0xd399,
+       0x1e52: 0xd3b9, 0x1e53: 0xd3d9, 0x1e54: 0xd3f9, 0x1e55: 0xd419, 0x1e56: 0xd439, 0x1e57: 0xd459,
+       0x1e58: 0xd479, 0x1e59: 0x8bfd, 0x1e5a: 0xd499, 0x1e5b: 0xd4b9, 0x1e5c: 0xd4d9, 0x1e5d: 0xc309,
+       0x1e5e: 0xd4f9, 0x1e5f: 0xd519, 0x1e60: 0x8c1d, 0x1e61: 0x8c3d, 0x1e62: 0xd539, 0x1e63: 0xd559,
+       0x1e64: 0xd579, 0x1e65: 0xd599, 0x1e66: 0xd5b9, 0x1e67: 0xd5d9, 0x1e68: 0x2040, 0x1e69: 0xd5f9,
+       0x1e6a: 0xd619, 0x1e6b: 0xd619, 0x1e6c: 0x8c5d, 0x1e6d: 0xd639, 0x1e6e: 0xd659, 0x1e6f: 0xd679,
+       0x1e70: 0xd699, 0x1e71: 0x8c7d, 0x1e72: 0xd6b9, 0x1e73: 0xd6d9, 0x1e74: 0x2040, 0x1e75: 0xd6f9,
+       0x1e76: 0xd719, 0x1e77: 0xd739, 0x1e78: 0xd759, 0x1e79: 0xd779, 0x1e7a: 0xd799, 0x1e7b: 0x8c9d,
+       0x1e7c: 0xd7b9, 0x1e7d: 0x8cbd, 0x1e7e: 0xd7d9, 0x1e7f: 0xd7f9,
+       // Block 0x7a, offset 0x1e80
+       0x1e80: 0xd819, 0x1e81: 0xd839, 0x1e82: 0xd859, 0x1e83: 0xd879, 0x1e84: 0xd899, 0x1e85: 0xd8b9,
+       0x1e86: 0xd8d9, 0x1e87: 0xd8f9, 0x1e88: 0xd919, 0x1e89: 0x8cdd, 0x1e8a: 0xd939, 0x1e8b: 0xd959,
+       0x1e8c: 0xd979, 0x1e8d: 0xd999, 0x1e8e: 0xd9b9, 0x1e8f: 0x8cfd, 0x1e90: 0xd9d9, 0x1e91: 0x8d1d,
+       0x1e92: 0x8d3d, 0x1e93: 0xd9f9, 0x1e94: 0xda19, 0x1e95: 0xda19, 0x1e96: 0xda39, 0x1e97: 0x8d5d,
+       0x1e98: 0x8d7d, 0x1e99: 0xda59, 0x1e9a: 0xda79, 0x1e9b: 0xda99, 0x1e9c: 0xdab9, 0x1e9d: 0xdad9,
+       0x1e9e: 0xdaf9, 0x1e9f: 0xdb19, 0x1ea0: 0xdb39, 0x1ea1: 0xdb59, 0x1ea2: 0xdb79, 0x1ea3: 0xdb99,
+       0x1ea4: 0x8d9d, 0x1ea5: 0xdbb9, 0x1ea6: 0xdbd9, 0x1ea7: 0xdbf9, 0x1ea8: 0xdc19, 0x1ea9: 0xdbf9,
+       0x1eaa: 0xdc39, 0x1eab: 0xdc59, 0x1eac: 0xdc79, 0x1ead: 0xdc99, 0x1eae: 0xdcb9, 0x1eaf: 0xdcd9,
+       0x1eb0: 0xdcf9, 0x1eb1: 0xdd19, 0x1eb2: 0xdd39, 0x1eb3: 0xdd59, 0x1eb4: 0xdd79, 0x1eb5: 0xdd99,
+       0x1eb6: 0xddb9, 0x1eb7: 0xddd9, 0x1eb8: 0x8dbd, 0x1eb9: 0xddf9, 0x1eba: 0xde19, 0x1ebb: 0xde39,
+       0x1ebc: 0xde59, 0x1ebd: 0xde79, 0x1ebe: 0x8ddd, 0x1ebf: 0xde99,
+       // Block 0x7b, offset 0x1ec0
+       0x1ec0: 0xe599, 0x1ec1: 0xe5b9, 0x1ec2: 0xe5d9, 0x1ec3: 0xe5f9, 0x1ec4: 0xe619, 0x1ec5: 0xe639,
+       0x1ec6: 0x8efd, 0x1ec7: 0xe659, 0x1ec8: 0xe679, 0x1ec9: 0xe699, 0x1eca: 0xe6b9, 0x1ecb: 0xe6d9,
+       0x1ecc: 0xe6f9, 0x1ecd: 0x8f1d, 0x1ece: 0xe719, 0x1ecf: 0xe739, 0x1ed0: 0x8f3d, 0x1ed1: 0x8f5d,
+       0x1ed2: 0xe759, 0x1ed3: 0xe779, 0x1ed4: 0xe799, 0x1ed5: 0xe7b9, 0x1ed6: 0xe7d9, 0x1ed7: 0xe7f9,
+       0x1ed8: 0xe819, 0x1ed9: 0xe839, 0x1eda: 0xe859, 0x1edb: 0x8f7d, 0x1edc: 0xe879, 0x1edd: 0x8f9d,
+       0x1ede: 0xe899, 0x1edf: 0x2040, 0x1ee0: 0xe8b9, 0x1ee1: 0xe8d9, 0x1ee2: 0xe8f9, 0x1ee3: 0x8fbd,
+       0x1ee4: 0xe919, 0x1ee5: 0xe939, 0x1ee6: 0x8fdd, 0x1ee7: 0x8ffd, 0x1ee8: 0xe959, 0x1ee9: 0xe979,
+       0x1eea: 0xe999, 0x1eeb: 0xe9b9, 0x1eec: 0xe9d9, 0x1eed: 0xe9d9, 0x1eee: 0xe9f9, 0x1eef: 0xea19,
+       0x1ef0: 0xea39, 0x1ef1: 0xea59, 0x1ef2: 0xea79, 0x1ef3: 0xea99, 0x1ef4: 0xeab9, 0x1ef5: 0x901d,
+       0x1ef6: 0xead9, 0x1ef7: 0x903d, 0x1ef8: 0xeaf9, 0x1ef9: 0x905d, 0x1efa: 0xeb19, 0x1efb: 0x907d,
+       0x1efc: 0x909d, 0x1efd: 0x90bd, 0x1efe: 0xeb39, 0x1eff: 0xeb59,
+       // Block 0x7c, offset 0x1f00
+       0x1f00: 0xeb79, 0x1f01: 0x90dd, 0x1f02: 0x90fd, 0x1f03: 0x911d, 0x1f04: 0x913d, 0x1f05: 0xeb99,
+       0x1f06: 0xebb9, 0x1f07: 0xebb9, 0x1f08: 0xebd9, 0x1f09: 0xebf9, 0x1f0a: 0xec19, 0x1f0b: 0xec39,
+       0x1f0c: 0xec59, 0x1f0d: 0x915d, 0x1f0e: 0xec79, 0x1f0f: 0xec99, 0x1f10: 0xecb9, 0x1f11: 0xecd9,
+       0x1f12: 0x917d, 0x1f13: 0xecf9, 0x1f14: 0x919d, 0x1f15: 0x91bd, 0x1f16: 0xed19, 0x1f17: 0xed39,
+       0x1f18: 0xed59, 0x1f19: 0xed79, 0x1f1a: 0xed99, 0x1f1b: 0xedb9, 0x1f1c: 0x91dd, 0x1f1d: 0x91fd,
+       0x1f1e: 0x921d, 0x1f1f: 0x2040, 0x1f20: 0xedd9, 0x1f21: 0x923d, 0x1f22: 0xedf9, 0x1f23: 0xee19,
+       0x1f24: 0xee39, 0x1f25: 0x925d, 0x1f26: 0xee59, 0x1f27: 0xee79, 0x1f28: 0xee99, 0x1f29: 0xeeb9,
+       0x1f2a: 0xeed9, 0x1f2b: 0x927d, 0x1f2c: 0xeef9, 0x1f2d: 0xef19, 0x1f2e: 0xef39, 0x1f2f: 0xef59,
+       0x1f30: 0xef79, 0x1f31: 0xef99, 0x1f32: 0x929d, 0x1f33: 0x92bd, 0x1f34: 0xefb9, 0x1f35: 0x92dd,
+       0x1f36: 0xefd9, 0x1f37: 0x92fd, 0x1f38: 0xeff9, 0x1f39: 0xf019, 0x1f3a: 0xf039, 0x1f3b: 0x931d,
+       0x1f3c: 0x933d, 0x1f3d: 0xf059, 0x1f3e: 0x935d, 0x1f3f: 0xf079,
+       // Block 0x7d, offset 0x1f40
+       0x1f40: 0xf6b9, 0x1f41: 0xf6d9, 0x1f42: 0xf6f9, 0x1f43: 0xf719, 0x1f44: 0xf739, 0x1f45: 0x951d,
+       0x1f46: 0xf759, 0x1f47: 0xf779, 0x1f48: 0xf799, 0x1f49: 0xf7b9, 0x1f4a: 0xf7d9, 0x1f4b: 0x953d,
+       0x1f4c: 0x955d, 0x1f4d: 0xf7f9, 0x1f4e: 0xf819, 0x1f4f: 0xf839, 0x1f50: 0xf859, 0x1f51: 0xf879,
+       0x1f52: 0xf899, 0x1f53: 0x957d, 0x1f54: 0xf8b9, 0x1f55: 0xf8d9, 0x1f56: 0xf8f9, 0x1f57: 0xf919,
+       0x1f58: 0x959d, 0x1f59: 0x95bd, 0x1f5a: 0xf939, 0x1f5b: 0xf959, 0x1f5c: 0xf979, 0x1f5d: 0x95dd,
+       0x1f5e: 0xf999, 0x1f5f: 0xf9b9, 0x1f60: 0x6815, 0x1f61: 0x95fd, 0x1f62: 0xf9d9, 0x1f63: 0xf9f9,
+       0x1f64: 0xfa19, 0x1f65: 0x961d, 0x1f66: 0xfa39, 0x1f67: 0xfa59, 0x1f68: 0xfa79, 0x1f69: 0xfa99,
+       0x1f6a: 0xfab9, 0x1f6b: 0xfad9, 0x1f6c: 0xfaf9, 0x1f6d: 0x963d, 0x1f6e: 0xfb19, 0x1f6f: 0xfb39,
+       0x1f70: 0xfb59, 0x1f71: 0x965d, 0x1f72: 0xfb79, 0x1f73: 0xfb99, 0x1f74: 0xfbb9, 0x1f75: 0xfbd9,
+       0x1f76: 0x7b35, 0x1f77: 0x967d, 0x1f78: 0xfbf9, 0x1f79: 0xfc19, 0x1f7a: 0xfc39, 0x1f7b: 0x969d,
+       0x1f7c: 0xfc59, 0x1f7d: 0x96bd, 0x1f7e: 0xfc79, 0x1f7f: 0xfc79,
+       // Block 0x7e, offset 0x1f80
+       0x1f80: 0xfc99, 0x1f81: 0x96dd, 0x1f82: 0xfcb9, 0x1f83: 0xfcd9, 0x1f84: 0xfcf9, 0x1f85: 0xfd19,
+       0x1f86: 0xfd39, 0x1f87: 0xfd59, 0x1f88: 0xfd79, 0x1f89: 0x96fd, 0x1f8a: 0xfd99, 0x1f8b: 0xfdb9,
+       0x1f8c: 0xfdd9, 0x1f8d: 0xfdf9, 0x1f8e: 0xfe19, 0x1f8f: 0xfe39, 0x1f90: 0x971d, 0x1f91: 0xfe59,
+       0x1f92: 0x973d, 0x1f93: 0x975d, 0x1f94: 0x977d, 0x1f95: 0xfe79, 0x1f96: 0xfe99, 0x1f97: 0xfeb9,
+       0x1f98: 0xfed9, 0x1f99: 0xfef9, 0x1f9a: 0xff19, 0x1f9b: 0xff39, 0x1f9c: 0xff59, 0x1f9d: 0x979d,
+       0x1f9e: 0x0040, 0x1f9f: 0x0040, 0x1fa0: 0x0040, 0x1fa1: 0x0040, 0x1fa2: 0x0040, 0x1fa3: 0x0040,
+       0x1fa4: 0x0040, 0x1fa5: 0x0040, 0x1fa6: 0x0040, 0x1fa7: 0x0040, 0x1fa8: 0x0040, 0x1fa9: 0x0040,
+       0x1faa: 0x0040, 0x1fab: 0x0040, 0x1fac: 0x0040, 0x1fad: 0x0040, 0x1fae: 0x0040, 0x1faf: 0x0040,
+       0x1fb0: 0x0040, 0x1fb1: 0x0040, 0x1fb2: 0x0040, 0x1fb3: 0x0040, 0x1fb4: 0x0040, 0x1fb5: 0x0040,
+       0x1fb6: 0x0040, 0x1fb7: 0x0040, 0x1fb8: 0x0040, 0x1fb9: 0x0040, 0x1fba: 0x0040, 0x1fbb: 0x0040,
+       0x1fbc: 0x0040, 0x1fbd: 0x0040, 0x1fbe: 0x0040, 0x1fbf: 0x0040,
+}
+
+// idnaIndex: 36 blocks, 2304 entries, 4608 bytes
+// Block 0 is the zero block.
+var idnaIndex = [2304]uint16{
+       // Block 0x0, offset 0x0
+       // Block 0x1, offset 0x40
+       // Block 0x2, offset 0x80
+       // Block 0x3, offset 0xc0
+       0xc2: 0x01, 0xc3: 0x7d, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x04, 0xc7: 0x05,
+       0xc8: 0x06, 0xc9: 0x7e, 0xca: 0x7f, 0xcb: 0x07, 0xcc: 0x80, 0xcd: 0x08, 0xce: 0x09, 0xcf: 0x0a,
+       0xd0: 0x81, 0xd1: 0x0b, 0xd2: 0x0c, 0xd3: 0x0d, 0xd4: 0x0e, 0xd5: 0x82, 0xd6: 0x83, 0xd7: 0x84,
+       0xd8: 0x0f, 0xd9: 0x10, 0xda: 0x85, 0xdb: 0x11, 0xdc: 0x12, 0xdd: 0x86, 0xde: 0x87, 0xdf: 0x88,
+       0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, 0xe4: 0x06, 0xe5: 0x07, 0xe6: 0x07, 0xe7: 0x07,
+       0xe8: 0x07, 0xe9: 0x08, 0xea: 0x09, 0xeb: 0x07, 0xec: 0x07, 0xed: 0x0a, 0xee: 0x0b, 0xef: 0x0c,
+       0xf0: 0x1d, 0xf1: 0x1e, 0xf2: 0x1e, 0xf3: 0x20, 0xf4: 0x21,
+       // Block 0x4, offset 0x100
+       0x120: 0x89, 0x121: 0x13, 0x122: 0x8a, 0x123: 0x8b, 0x124: 0x8c, 0x125: 0x14, 0x126: 0x15, 0x127: 0x16,
+       0x128: 0x17, 0x129: 0x18, 0x12a: 0x19, 0x12b: 0x1a, 0x12c: 0x1b, 0x12d: 0x1c, 0x12e: 0x1d, 0x12f: 0x8d,
+       0x130: 0x8e, 0x131: 0x1e, 0x132: 0x1f, 0x133: 0x20, 0x134: 0x8f, 0x135: 0x21, 0x136: 0x90, 0x137: 0x91,
+       0x138: 0x92, 0x139: 0x93, 0x13a: 0x22, 0x13b: 0x94, 0x13c: 0x95, 0x13d: 0x23, 0x13e: 0x24, 0x13f: 0x96,
+       // Block 0x5, offset 0x140
+       0x140: 0x97, 0x141: 0x98, 0x142: 0x99, 0x143: 0x9a, 0x144: 0x9b, 0x145: 0x9c, 0x146: 0x9d, 0x147: 0x9e,
+       0x148: 0x9f, 0x149: 0xa0, 0x14a: 0xa1, 0x14b: 0xa2, 0x14c: 0xa3, 0x14d: 0xa4, 0x14e: 0xa5, 0x14f: 0xa6,
+       0x150: 0xa7, 0x151: 0x9f, 0x152: 0x9f, 0x153: 0x9f, 0x154: 0x9f, 0x155: 0x9f, 0x156: 0x9f, 0x157: 0x9f,
+       0x158: 0x9f, 0x159: 0xa8, 0x15a: 0xa9, 0x15b: 0xaa, 0x15c: 0xab, 0x15d: 0xac, 0x15e: 0xad, 0x15f: 0xae,
+       0x160: 0xaf, 0x161: 0xb0, 0x162: 0xb1, 0x163: 0xb2, 0x164: 0xb3, 0x165: 0xb4, 0x166: 0xb5, 0x167: 0xb6,
+       0x168: 0xb7, 0x169: 0xb8, 0x16a: 0xb9, 0x16b: 0xba, 0x16c: 0xbb, 0x16d: 0xbc, 0x16e: 0xbd, 0x16f: 0xbe,
+       0x170: 0xbf, 0x171: 0xc0, 0x172: 0xc1, 0x173: 0xc2, 0x174: 0x25, 0x175: 0x26, 0x176: 0x27, 0x177: 0xc3,
+       0x178: 0x28, 0x179: 0x28, 0x17a: 0x29, 0x17b: 0x28, 0x17c: 0xc4, 0x17d: 0x2a, 0x17e: 0x2b, 0x17f: 0x2c,
+       // Block 0x6, offset 0x180
+       0x180: 0x2d, 0x181: 0x2e, 0x182: 0x2f, 0x183: 0xc5, 0x184: 0x30, 0x185: 0x31, 0x186: 0xc6, 0x187: 0x9b,
+       0x188: 0xc7, 0x189: 0xc8, 0x18a: 0x9b, 0x18b: 0x9b, 0x18c: 0xc9, 0x18d: 0x9b, 0x18e: 0x9b, 0x18f: 0x9b,
+       0x190: 0xca, 0x191: 0x32, 0x192: 0x33, 0x193: 0x34, 0x194: 0x9b, 0x195: 0x9b, 0x196: 0x9b, 0x197: 0x9b,
+       0x198: 0x9b, 0x199: 0x9b, 0x19a: 0x9b, 0x19b: 0x9b, 0x19c: 0x9b, 0x19d: 0x9b, 0x19e: 0x9b, 0x19f: 0x9b,
+       0x1a0: 0x9b, 0x1a1: 0x9b, 0x1a2: 0x9b, 0x1a3: 0x9b, 0x1a4: 0x9b, 0x1a5: 0x9b, 0x1a6: 0x9b, 0x1a7: 0x9b,
+       0x1a8: 0xcb, 0x1a9: 0xcc, 0x1aa: 0x9b, 0x1ab: 0xcd, 0x1ac: 0x9b, 0x1ad: 0xce, 0x1ae: 0xcf, 0x1af: 0xd0,
+       0x1b0: 0xd1, 0x1b1: 0x35, 0x1b2: 0x28, 0x1b3: 0x36, 0x1b4: 0xd2, 0x1b5: 0xd3, 0x1b6: 0xd4, 0x1b7: 0xd5,
+       0x1b8: 0xd6, 0x1b9: 0xd7, 0x1ba: 0xd8, 0x1bb: 0xd9, 0x1bc: 0xda, 0x1bd: 0xdb, 0x1be: 0xdc, 0x1bf: 0x37,
+       // Block 0x7, offset 0x1c0
+       0x1c0: 0x38, 0x1c1: 0xdd, 0x1c2: 0xde, 0x1c3: 0xdf, 0x1c4: 0xe0, 0x1c5: 0x39, 0x1c6: 0x3a, 0x1c7: 0xe1,
+       0x1c8: 0xe2, 0x1c9: 0x3b, 0x1ca: 0x3c, 0x1cb: 0x3d, 0x1cc: 0x3e, 0x1cd: 0x3f, 0x1ce: 0x40, 0x1cf: 0x41,
+       0x1d0: 0x9f, 0x1d1: 0x9f, 0x1d2: 0x9f, 0x1d3: 0x9f, 0x1d4: 0x9f, 0x1d5: 0x9f, 0x1d6: 0x9f, 0x1d7: 0x9f,
+       0x1d8: 0x9f, 0x1d9: 0x9f, 0x1da: 0x9f, 0x1db: 0x9f, 0x1dc: 0x9f, 0x1dd: 0x9f, 0x1de: 0x9f, 0x1df: 0x9f,
+       0x1e0: 0x9f, 0x1e1: 0x9f, 0x1e2: 0x9f, 0x1e3: 0x9f, 0x1e4: 0x9f, 0x1e5: 0x9f, 0x1e6: 0x9f, 0x1e7: 0x9f,
+       0x1e8: 0x9f, 0x1e9: 0x9f, 0x1ea: 0x9f, 0x1eb: 0x9f, 0x1ec: 0x9f, 0x1ed: 0x9f, 0x1ee: 0x9f, 0x1ef: 0x9f,
+       0x1f0: 0x9f, 0x1f1: 0x9f, 0x1f2: 0x9f, 0x1f3: 0x9f, 0x1f4: 0x9f, 0x1f5: 0x9f, 0x1f6: 0x9f, 0x1f7: 0x9f,
+       0x1f8: 0x9f, 0x1f9: 0x9f, 0x1fa: 0x9f, 0x1fb: 0x9f, 0x1fc: 0x9f, 0x1fd: 0x9f, 0x1fe: 0x9f, 0x1ff: 0x9f,
+       // Block 0x8, offset 0x200
+       0x200: 0x9f, 0x201: 0x9f, 0x202: 0x9f, 0x203: 0x9f, 0x204: 0x9f, 0x205: 0x9f, 0x206: 0x9f, 0x207: 0x9f,
+       0x208: 0x9f, 0x209: 0x9f, 0x20a: 0x9f, 0x20b: 0x9f, 0x20c: 0x9f, 0x20d: 0x9f, 0x20e: 0x9f, 0x20f: 0x9f,
+       0x210: 0x9f, 0x211: 0x9f, 0x212: 0x9f, 0x213: 0x9f, 0x214: 0x9f, 0x215: 0x9f, 0x216: 0x9f, 0x217: 0x9f,
+       0x218: 0x9f, 0x219: 0x9f, 0x21a: 0x9f, 0x21b: 0x9f, 0x21c: 0x9f, 0x21d: 0x9f, 0x21e: 0x9f, 0x21f: 0x9f,
+       0x220: 0x9f, 0x221: 0x9f, 0x222: 0x9f, 0x223: 0x9f, 0x224: 0x9f, 0x225: 0x9f, 0x226: 0x9f, 0x227: 0x9f,
+       0x228: 0x9f, 0x229: 0x9f, 0x22a: 0x9f, 0x22b: 0x9f, 0x22c: 0x9f, 0x22d: 0x9f, 0x22e: 0x9f, 0x22f: 0x9f,
+       0x230: 0x9f, 0x231: 0x9f, 0x232: 0x9f, 0x233: 0x9f, 0x234: 0x9f, 0x235: 0x9f, 0x236: 0xb2, 0x237: 0x9b,
+       0x238: 0x9f, 0x239: 0x9f, 0x23a: 0x9f, 0x23b: 0x9f, 0x23c: 0x9f, 0x23d: 0x9f, 0x23e: 0x9f, 0x23f: 0x9f,
+       // Block 0x9, offset 0x240
+       0x240: 0x9f, 0x241: 0x9f, 0x242: 0x9f, 0x243: 0x9f, 0x244: 0x9f, 0x245: 0x9f, 0x246: 0x9f, 0x247: 0x9f,
+       0x248: 0x9f, 0x249: 0x9f, 0x24a: 0x9f, 0x24b: 0x9f, 0x24c: 0x9f, 0x24d: 0x9f, 0x24e: 0x9f, 0x24f: 0x9f,
+       0x250: 0x9f, 0x251: 0x9f, 0x252: 0x9f, 0x253: 0x9f, 0x254: 0x9f, 0x255: 0x9f, 0x256: 0x9f, 0x257: 0x9f,
+       0x258: 0x9f, 0x259: 0x9f, 0x25a: 0x9f, 0x25b: 0x9f, 0x25c: 0x9f, 0x25d: 0x9f, 0x25e: 0x9f, 0x25f: 0x9f,
+       0x260: 0x9f, 0x261: 0x9f, 0x262: 0x9f, 0x263: 0x9f, 0x264: 0x9f, 0x265: 0x9f, 0x266: 0x9f, 0x267: 0x9f,
+       0x268: 0x9f, 0x269: 0x9f, 0x26a: 0x9f, 0x26b: 0x9f, 0x26c: 0x9f, 0x26d: 0x9f, 0x26e: 0x9f, 0x26f: 0x9f,
+       0x270: 0x9f, 0x271: 0x9f, 0x272: 0x9f, 0x273: 0x9f, 0x274: 0x9f, 0x275: 0x9f, 0x276: 0x9f, 0x277: 0x9f,
+       0x278: 0x9f, 0x279: 0x9f, 0x27a: 0x9f, 0x27b: 0x9f, 0x27c: 0x9f, 0x27d: 0x9f, 0x27e: 0x9f, 0x27f: 0x9f,
+       // Block 0xa, offset 0x280
+       0x280: 0x9f, 0x281: 0x9f, 0x282: 0x9f, 0x283: 0x9f, 0x284: 0x9f, 0x285: 0x9f, 0x286: 0x9f, 0x287: 0x9f,
+       0x288: 0x9f, 0x289: 0x9f, 0x28a: 0x9f, 0x28b: 0x9f, 0x28c: 0x9f, 0x28d: 0x9f, 0x28e: 0x9f, 0x28f: 0x9f,
+       0x290: 0x9f, 0x291: 0x9f, 0x292: 0x9f, 0x293: 0x9f, 0x294: 0x9f, 0x295: 0x9f, 0x296: 0x9f, 0x297: 0x9f,
+       0x298: 0x9f, 0x299: 0x9f, 0x29a: 0x9f, 0x29b: 0x9f, 0x29c: 0x9f, 0x29d: 0x9f, 0x29e: 0x9f, 0x29f: 0x9f,
+       0x2a0: 0x9f, 0x2a1: 0x9f, 0x2a2: 0x9f, 0x2a3: 0x9f, 0x2a4: 0x9f, 0x2a5: 0x9f, 0x2a6: 0x9f, 0x2a7: 0x9f,
+       0x2a8: 0x9f, 0x2a9: 0x9f, 0x2aa: 0x9f, 0x2ab: 0x9f, 0x2ac: 0x9f, 0x2ad: 0x9f, 0x2ae: 0x9f, 0x2af: 0x9f,
+       0x2b0: 0x9f, 0x2b1: 0x9f, 0x2b2: 0x9f, 0x2b3: 0x9f, 0x2b4: 0x9f, 0x2b5: 0x9f, 0x2b6: 0x9f, 0x2b7: 0x9f,
+       0x2b8: 0x9f, 0x2b9: 0x9f, 0x2ba: 0x9f, 0x2bb: 0x9f, 0x2bc: 0x9f, 0x2bd: 0x9f, 0x2be: 0x9f, 0x2bf: 0xe3,
+       // Block 0xb, offset 0x2c0
+       0x2c0: 0x9f, 0x2c1: 0x9f, 0x2c2: 0x9f, 0x2c3: 0x9f, 0x2c4: 0x9f, 0x2c5: 0x9f, 0x2c6: 0x9f, 0x2c7: 0x9f,
+       0x2c8: 0x9f, 0x2c9: 0x9f, 0x2ca: 0x9f, 0x2cb: 0x9f, 0x2cc: 0x9f, 0x2cd: 0x9f, 0x2ce: 0x9f, 0x2cf: 0x9f,
+       0x2d0: 0x9f, 0x2d1: 0x9f, 0x2d2: 0xe4, 0x2d3: 0xe5, 0x2d4: 0x9f, 0x2d5: 0x9f, 0x2d6: 0x9f, 0x2d7: 0x9f,
+       0x2d8: 0xe6, 0x2d9: 0x42, 0x2da: 0x43, 0x2db: 0xe7, 0x2dc: 0x44, 0x2dd: 0x45, 0x2de: 0x46, 0x2df: 0xe8,
+       0x2e0: 0xe9, 0x2e1: 0xea, 0x2e2: 0xeb, 0x2e3: 0xec, 0x2e4: 0xed, 0x2e5: 0xee, 0x2e6: 0xef, 0x2e7: 0xf0,
+       0x2e8: 0xf1, 0x2e9: 0xf2, 0x2ea: 0xf3, 0x2eb: 0xf4, 0x2ec: 0xf5, 0x2ed: 0xf6, 0x2ee: 0xf7, 0x2ef: 0xf8,
+       0x2f0: 0x9f, 0x2f1: 0x9f, 0x2f2: 0x9f, 0x2f3: 0x9f, 0x2f4: 0x9f, 0x2f5: 0x9f, 0x2f6: 0x9f, 0x2f7: 0x9f,
+       0x2f8: 0x9f, 0x2f9: 0x9f, 0x2fa: 0x9f, 0x2fb: 0x9f, 0x2fc: 0x9f, 0x2fd: 0x9f, 0x2fe: 0x9f, 0x2ff: 0x9f,
+       // Block 0xc, offset 0x300
+       0x300: 0x9f, 0x301: 0x9f, 0x302: 0x9f, 0x303: 0x9f, 0x304: 0x9f, 0x305: 0x9f, 0x306: 0x9f, 0x307: 0x9f,
+       0x308: 0x9f, 0x309: 0x9f, 0x30a: 0x9f, 0x30b: 0x9f, 0x30c: 0x9f, 0x30d: 0x9f, 0x30e: 0x9f, 0x30f: 0x9f,
+       0x310: 0x9f, 0x311: 0x9f, 0x312: 0x9f, 0x313: 0x9f, 0x314: 0x9f, 0x315: 0x9f, 0x316: 0x9f, 0x317: 0x9f,
+       0x318: 0x9f, 0x319: 0x9f, 0x31a: 0x9f, 0x31b: 0x9f, 0x31c: 0x9f, 0x31d: 0x9f, 0x31e: 0xf9, 0x31f: 0xfa,
+       // Block 0xd, offset 0x340
+       0x340: 0xba, 0x341: 0xba, 0x342: 0xba, 0x343: 0xba, 0x344: 0xba, 0x345: 0xba, 0x346: 0xba, 0x347: 0xba,
+       0x348: 0xba, 0x349: 0xba, 0x34a: 0xba, 0x34b: 0xba, 0x34c: 0xba, 0x34d: 0xba, 0x34e: 0xba, 0x34f: 0xba,
+       0x350: 0xba, 0x351: 0xba, 0x352: 0xba, 0x353: 0xba, 0x354: 0xba, 0x355: 0xba, 0x356: 0xba, 0x357: 0xba,
+       0x358: 0xba, 0x359: 0xba, 0x35a: 0xba, 0x35b: 0xba, 0x35c: 0xba, 0x35d: 0xba, 0x35e: 0xba, 0x35f: 0xba,
+       0x360: 0xba, 0x361: 0xba, 0x362: 0xba, 0x363: 0xba, 0x364: 0xba, 0x365: 0xba, 0x366: 0xba, 0x367: 0xba,
+       0x368: 0xba, 0x369: 0xba, 0x36a: 0xba, 0x36b: 0xba, 0x36c: 0xba, 0x36d: 0xba, 0x36e: 0xba, 0x36f: 0xba,
+       0x370: 0xba, 0x371: 0xba, 0x372: 0xba, 0x373: 0xba, 0x374: 0xba, 0x375: 0xba, 0x376: 0xba, 0x377: 0xba,
+       0x378: 0xba, 0x379: 0xba, 0x37a: 0xba, 0x37b: 0xba, 0x37c: 0xba, 0x37d: 0xba, 0x37e: 0xba, 0x37f: 0xba,
+       // Block 0xe, offset 0x380
+       0x380: 0xba, 0x381: 0xba, 0x382: 0xba, 0x383: 0xba, 0x384: 0xba, 0x385: 0xba, 0x386: 0xba, 0x387: 0xba,
+       0x388: 0xba, 0x389: 0xba, 0x38a: 0xba, 0x38b: 0xba, 0x38c: 0xba, 0x38d: 0xba, 0x38e: 0xba, 0x38f: 0xba,
+       0x390: 0xba, 0x391: 0xba, 0x392: 0xba, 0x393: 0xba, 0x394: 0xba, 0x395: 0xba, 0x396: 0xba, 0x397: 0xba,
+       0x398: 0xba, 0x399: 0xba, 0x39a: 0xba, 0x39b: 0xba, 0x39c: 0xba, 0x39d: 0xba, 0x39e: 0xba, 0x39f: 0xba,
+       0x3a0: 0xba, 0x3a1: 0xba, 0x3a2: 0xba, 0x3a3: 0xba, 0x3a4: 0xfb, 0x3a5: 0xfc, 0x3a6: 0xfd, 0x3a7: 0xfe,
+       0x3a8: 0x47, 0x3a9: 0xff, 0x3aa: 0x100, 0x3ab: 0x48, 0x3ac: 0x49, 0x3ad: 0x4a, 0x3ae: 0x4b, 0x3af: 0x4c,
+       0x3b0: 0x101, 0x3b1: 0x4d, 0x3b2: 0x4e, 0x3b3: 0x4f, 0x3b4: 0x50, 0x3b5: 0x51, 0x3b6: 0x102, 0x3b7: 0x52,
+       0x3b8: 0x53, 0x3b9: 0x54, 0x3ba: 0x55, 0x3bb: 0x56, 0x3bc: 0x57, 0x3bd: 0x58, 0x3be: 0x59, 0x3bf: 0x5a,
+       // Block 0xf, offset 0x3c0
+       0x3c0: 0x103, 0x3c1: 0x104, 0x3c2: 0x9f, 0x3c3: 0x105, 0x3c4: 0x106, 0x3c5: 0x9b, 0x3c6: 0x107, 0x3c7: 0x108,
+       0x3c8: 0xba, 0x3c9: 0xba, 0x3ca: 0x109, 0x3cb: 0x10a, 0x3cc: 0x10b, 0x3cd: 0x10c, 0x3ce: 0x10d, 0x3cf: 0x10e,
+       0x3d0: 0x10f, 0x3d1: 0x9f, 0x3d2: 0x110, 0x3d3: 0x111, 0x3d4: 0x112, 0x3d5: 0x113, 0x3d6: 0xba, 0x3d7: 0xba,
+       0x3d8: 0x9f, 0x3d9: 0x9f, 0x3da: 0x9f, 0x3db: 0x9f, 0x3dc: 0x114, 0x3dd: 0x115, 0x3de: 0xba, 0x3df: 0xba,
+       0x3e0: 0x116, 0x3e1: 0x117, 0x3e2: 0x118, 0x3e3: 0x119, 0x3e4: 0x11a, 0x3e5: 0xba, 0x3e6: 0x11b, 0x3e7: 0x11c,
+       0x3e8: 0x11d, 0x3e9: 0x11e, 0x3ea: 0x11f, 0x3eb: 0x5b, 0x3ec: 0x120, 0x3ed: 0x121, 0x3ee: 0x5c, 0x3ef: 0xba,
+       0x3f0: 0x122, 0x3f1: 0x123, 0x3f2: 0x124, 0x3f3: 0x125, 0x3f4: 0xba, 0x3f5: 0xba, 0x3f6: 0xba, 0x3f7: 0xba,
+       0x3f8: 0xba, 0x3f9: 0x126, 0x3fa: 0xba, 0x3fb: 0xba, 0x3fc: 0xba, 0x3fd: 0xba, 0x3fe: 0xba, 0x3ff: 0xba,
+       // Block 0x10, offset 0x400
+       0x400: 0x127, 0x401: 0x128, 0x402: 0x129, 0x403: 0x12a, 0x404: 0x12b, 0x405: 0x12c, 0x406: 0x12d, 0x407: 0x12e,
+       0x408: 0x12f, 0x409: 0xba, 0x40a: 0x130, 0x40b: 0x131, 0x40c: 0x5d, 0x40d: 0x5e, 0x40e: 0xba, 0x40f: 0xba,
+       0x410: 0x132, 0x411: 0x133, 0x412: 0x134, 0x413: 0x135, 0x414: 0xba, 0x415: 0xba, 0x416: 0x136, 0x417: 0x137,
+       0x418: 0x138, 0x419: 0x139, 0x41a: 0x13a, 0x41b: 0x13b, 0x41c: 0x13c, 0x41d: 0xba, 0x41e: 0xba, 0x41f: 0xba,
+       0x420: 0xba, 0x421: 0xba, 0x422: 0x13d, 0x423: 0x13e, 0x424: 0xba, 0x425: 0xba, 0x426: 0xba, 0x427: 0xba,
+       0x428: 0x13f, 0x429: 0x140, 0x42a: 0x141, 0x42b: 0x142, 0x42c: 0xba, 0x42d: 0xba, 0x42e: 0xba, 0x42f: 0xba,
+       0x430: 0x143, 0x431: 0x144, 0x432: 0x145, 0x433: 0xba, 0x434: 0x146, 0x435: 0x147, 0x436: 0xba, 0x437: 0xba,
+       0x438: 0xba, 0x439: 0xba, 0x43a: 0xba, 0x43b: 0xba, 0x43c: 0xba, 0x43d: 0xba, 0x43e: 0xba, 0x43f: 0xba,
+       // Block 0x11, offset 0x440
+       0x440: 0x9f, 0x441: 0x9f, 0x442: 0x9f, 0x443: 0x9f, 0x444: 0x9f, 0x445: 0x9f, 0x446: 0x9f, 0x447: 0x9f,
+       0x448: 0x9f, 0x449: 0x9f, 0x44a: 0x9f, 0x44b: 0x9f, 0x44c: 0x9f, 0x44d: 0x9f, 0x44e: 0x148, 0x44f: 0xba,
+       0x450: 0x9b, 0x451: 0x149, 0x452: 0x9f, 0x453: 0x9f, 0x454: 0x9f, 0x455: 0x14a, 0x456: 0xba, 0x457: 0xba,
+       0x458: 0xba, 0x459: 0xba, 0x45a: 0xba, 0x45b: 0xba, 0x45c: 0xba, 0x45d: 0xba, 0x45e: 0xba, 0x45f: 0xba,
+       0x460: 0xba, 0x461: 0xba, 0x462: 0xba, 0x463: 0xba, 0x464: 0xba, 0x465: 0xba, 0x466: 0xba, 0x467: 0xba,
+       0x468: 0xba, 0x469: 0xba, 0x46a: 0xba, 0x46b: 0xba, 0x46c: 0xba, 0x46d: 0xba, 0x46e: 0xba, 0x46f: 0xba,
+       0x470: 0xba, 0x471: 0xba, 0x472: 0xba, 0x473: 0xba, 0x474: 0xba, 0x475: 0xba, 0x476: 0xba, 0x477: 0xba,
+       0x478: 0xba, 0x479: 0xba, 0x47a: 0xba, 0x47b: 0xba, 0x47c: 0xba, 0x47d: 0xba, 0x47e: 0xba, 0x47f: 0xba,
+       // Block 0x12, offset 0x480
+       0x480: 0x9f, 0x481: 0x9f, 0x482: 0x9f, 0x483: 0x9f, 0x484: 0x9f, 0x485: 0x9f, 0x486: 0x9f, 0x487: 0x9f,
+       0x488: 0x9f, 0x489: 0x9f, 0x48a: 0x9f, 0x48b: 0x9f, 0x48c: 0x9f, 0x48d: 0x9f, 0x48e: 0x9f, 0x48f: 0x9f,
+       0x490: 0x14b, 0x491: 0xba, 0x492: 0xba, 0x493: 0xba, 0x494: 0xba, 0x495: 0xba, 0x496: 0xba, 0x497: 0xba,
+       0x498: 0xba, 0x499: 0xba, 0x49a: 0xba, 0x49b: 0xba, 0x49c: 0xba, 0x49d: 0xba, 0x49e: 0xba, 0x49f: 0xba,
+       0x4a0: 0xba, 0x4a1: 0xba, 0x4a2: 0xba, 0x4a3: 0xba, 0x4a4: 0xba, 0x4a5: 0xba, 0x4a6: 0xba, 0x4a7: 0xba,
+       0x4a8: 0xba, 0x4a9: 0xba, 0x4aa: 0xba, 0x4ab: 0xba, 0x4ac: 0xba, 0x4ad: 0xba, 0x4ae: 0xba, 0x4af: 0xba,
+       0x4b0: 0xba, 0x4b1: 0xba, 0x4b2: 0xba, 0x4b3: 0xba, 0x4b4: 0xba, 0x4b5: 0xba, 0x4b6: 0xba, 0x4b7: 0xba,
+       0x4b8: 0xba, 0x4b9: 0xba, 0x4ba: 0xba, 0x4bb: 0xba, 0x4bc: 0xba, 0x4bd: 0xba, 0x4be: 0xba, 0x4bf: 0xba,
+       // Block 0x13, offset 0x4c0
+       0x4c0: 0xba, 0x4c1: 0xba, 0x4c2: 0xba, 0x4c3: 0xba, 0x4c4: 0xba, 0x4c5: 0xba, 0x4c6: 0xba, 0x4c7: 0xba,
+       0x4c8: 0xba, 0x4c9: 0xba, 0x4ca: 0xba, 0x4cb: 0xba, 0x4cc: 0xba, 0x4cd: 0xba, 0x4ce: 0xba, 0x4cf: 0xba,
+       0x4d0: 0x9f, 0x4d1: 0x9f, 0x4d2: 0x9f, 0x4d3: 0x9f, 0x4d4: 0x9f, 0x4d5: 0x9f, 0x4d6: 0x9f, 0x4d7: 0x9f,
+       0x4d8: 0x9f, 0x4d9: 0x14c, 0x4da: 0xba, 0x4db: 0xba, 0x4dc: 0xba, 0x4dd: 0xba, 0x4de: 0xba, 0x4df: 0xba,
+       0x4e0: 0xba, 0x4e1: 0xba, 0x4e2: 0xba, 0x4e3: 0xba, 0x4e4: 0xba, 0x4e5: 0xba, 0x4e6: 0xba, 0x4e7: 0xba,
+       0x4e8: 0xba, 0x4e9: 0xba, 0x4ea: 0xba, 0x4eb: 0xba, 0x4ec: 0xba, 0x4ed: 0xba, 0x4ee: 0xba, 0x4ef: 0xba,
+       0x4f0: 0xba, 0x4f1: 0xba, 0x4f2: 0xba, 0x4f3: 0xba, 0x4f4: 0xba, 0x4f5: 0xba, 0x4f6: 0xba, 0x4f7: 0xba,
+       0x4f8: 0xba, 0x4f9: 0xba, 0x4fa: 0xba, 0x4fb: 0xba, 0x4fc: 0xba, 0x4fd: 0xba, 0x4fe: 0xba, 0x4ff: 0xba,
+       // Block 0x14, offset 0x500
+       0x500: 0xba, 0x501: 0xba, 0x502: 0xba, 0x503: 0xba, 0x504: 0xba, 0x505: 0xba, 0x506: 0xba, 0x507: 0xba,
+       0x508: 0xba, 0x509: 0xba, 0x50a: 0xba, 0x50b: 0xba, 0x50c: 0xba, 0x50d: 0xba, 0x50e: 0xba, 0x50f: 0xba,
+       0x510: 0xba, 0x511: 0xba, 0x512: 0xba, 0x513: 0xba, 0x514: 0xba, 0x515: 0xba, 0x516: 0xba, 0x517: 0xba,
+       0x518: 0xba, 0x519: 0xba, 0x51a: 0xba, 0x51b: 0xba, 0x51c: 0xba, 0x51d: 0xba, 0x51e: 0xba, 0x51f: 0xba,
+       0x520: 0x9f, 0x521: 0x9f, 0x522: 0x9f, 0x523: 0x9f, 0x524: 0x9f, 0x525: 0x9f, 0x526: 0x9f, 0x527: 0x9f,
+       0x528: 0x142, 0x529: 0x14d, 0x52a: 0xba, 0x52b: 0x14e, 0x52c: 0x14f, 0x52d: 0x150, 0x52e: 0x151, 0x52f: 0xba,
+       0x530: 0xba, 0x531: 0xba, 0x532: 0xba, 0x533: 0xba, 0x534: 0xba, 0x535: 0xba, 0x536: 0xba, 0x537: 0xba,
+       0x538: 0xba, 0x539: 0xba, 0x53a: 0xba, 0x53b: 0xba, 0x53c: 0x9f, 0x53d: 0x152, 0x53e: 0x153, 0x53f: 0x154,
+       // Block 0x15, offset 0x540
+       0x540: 0x9f, 0x541: 0x9f, 0x542: 0x9f, 0x543: 0x9f, 0x544: 0x9f, 0x545: 0x9f, 0x546: 0x9f, 0x547: 0x9f,
+       0x548: 0x9f, 0x549: 0x9f, 0x54a: 0x9f, 0x54b: 0x9f, 0x54c: 0x9f, 0x54d: 0x9f, 0x54e: 0x9f, 0x54f: 0x9f,
+       0x550: 0x9f, 0x551: 0x9f, 0x552: 0x9f, 0x553: 0x9f, 0x554: 0x9f, 0x555: 0x9f, 0x556: 0x9f, 0x557: 0x9f,
+       0x558: 0x9f, 0x559: 0x9f, 0x55a: 0x9f, 0x55b: 0x9f, 0x55c: 0x9f, 0x55d: 0x9f, 0x55e: 0x9f, 0x55f: 0x155,
+       0x560: 0x9f, 0x561: 0x9f, 0x562: 0x9f, 0x563: 0x9f, 0x564: 0x9f, 0x565: 0x9f, 0x566: 0x9f, 0x567: 0x9f,
+       0x568: 0x9f, 0x569: 0x9f, 0x56a: 0x9f, 0x56b: 0x156, 0x56c: 0xba, 0x56d: 0xba, 0x56e: 0xba, 0x56f: 0xba,
+       0x570: 0xba, 0x571: 0xba, 0x572: 0xba, 0x573: 0xba, 0x574: 0xba, 0x575: 0xba, 0x576: 0xba, 0x577: 0xba,
+       0x578: 0xba, 0x579: 0xba, 0x57a: 0xba, 0x57b: 0xba, 0x57c: 0xba, 0x57d: 0xba, 0x57e: 0xba, 0x57f: 0xba,
+       // Block 0x16, offset 0x580
+       0x580: 0x9f, 0x581: 0x9f, 0x582: 0x9f, 0x583: 0x9f, 0x584: 0x157, 0x585: 0x158, 0x586: 0x9f, 0x587: 0x9f,
+       0x588: 0x9f, 0x589: 0x9f, 0x58a: 0x9f, 0x58b: 0x159, 0x58c: 0xba, 0x58d: 0xba, 0x58e: 0xba, 0x58f: 0xba,
+       0x590: 0xba, 0x591: 0xba, 0x592: 0xba, 0x593: 0xba, 0x594: 0xba, 0x595: 0xba, 0x596: 0xba, 0x597: 0xba,
+       0x598: 0xba, 0x599: 0xba, 0x59a: 0xba, 0x59b: 0xba, 0x59c: 0xba, 0x59d: 0xba, 0x59e: 0xba, 0x59f: 0xba,
+       0x5a0: 0xba, 0x5a1: 0xba, 0x5a2: 0xba, 0x5a3: 0xba, 0x5a4: 0xba, 0x5a5: 0xba, 0x5a6: 0xba, 0x5a7: 0xba,
+       0x5a8: 0xba, 0x5a9: 0xba, 0x5aa: 0xba, 0x5ab: 0xba, 0x5ac: 0xba, 0x5ad: 0xba, 0x5ae: 0xba, 0x5af: 0xba,
+       0x5b0: 0x9f, 0x5b1: 0x15a, 0x5b2: 0x15b, 0x5b3: 0xba, 0x5b4: 0xba, 0x5b5: 0xba, 0x5b6: 0xba, 0x5b7: 0xba,
+       0x5b8: 0xba, 0x5b9: 0xba, 0x5ba: 0xba, 0x5bb: 0xba, 0x5bc: 0xba, 0x5bd: 0xba, 0x5be: 0xba, 0x5bf: 0xba,
+       // Block 0x17, offset 0x5c0
+       0x5c0: 0x9b, 0x5c1: 0x9b, 0x5c2: 0x9b, 0x5c3: 0x15c, 0x5c4: 0x15d, 0x5c5: 0x15e, 0x5c6: 0x15f, 0x5c7: 0x160,
+       0x5c8: 0x9b, 0x5c9: 0x161, 0x5ca: 0xba, 0x5cb: 0xba, 0x5cc: 0x9b, 0x5cd: 0x162, 0x5ce: 0xba, 0x5cf: 0xba,
+       0x5d0: 0x5f, 0x5d1: 0x60, 0x5d2: 0x61, 0x5d3: 0x62, 0x5d4: 0x63, 0x5d5: 0x64, 0x5d6: 0x65, 0x5d7: 0x66,
+       0x5d8: 0x67, 0x5d9: 0x68, 0x5da: 0x69, 0x5db: 0x6a, 0x5dc: 0x6b, 0x5dd: 0x6c, 0x5de: 0x6d, 0x5df: 0x6e,
+       0x5e0: 0x9b, 0x5e1: 0x9b, 0x5e2: 0x9b, 0x5e3: 0x9b, 0x5e4: 0x9b, 0x5e5: 0x9b, 0x5e6: 0x9b, 0x5e7: 0x9b,
+       0x5e8: 0x163, 0x5e9: 0x164, 0x5ea: 0x165, 0x5eb: 0xba, 0x5ec: 0xba, 0x5ed: 0xba, 0x5ee: 0xba, 0x5ef: 0xba,
+       0x5f0: 0xba, 0x5f1: 0xba, 0x5f2: 0xba, 0x5f3: 0xba, 0x5f4: 0xba, 0x5f5: 0xba, 0x5f6: 0xba, 0x5f7: 0xba,
+       0x5f8: 0xba, 0x5f9: 0xba, 0x5fa: 0xba, 0x5fb: 0xba, 0x5fc: 0xba, 0x5fd: 0xba, 0x5fe: 0xba, 0x5ff: 0xba,
+       // Block 0x18, offset 0x600
+       0x600: 0x166, 0x601: 0xba, 0x602: 0xba, 0x603: 0xba, 0x604: 0xba, 0x605: 0xba, 0x606: 0xba, 0x607: 0xba,
+       0x608: 0xba, 0x609: 0xba, 0x60a: 0xba, 0x60b: 0xba, 0x60c: 0xba, 0x60d: 0xba, 0x60e: 0xba, 0x60f: 0xba,
+       0x610: 0xba, 0x611: 0xba, 0x612: 0xba, 0x613: 0xba, 0x614: 0xba, 0x615: 0xba, 0x616: 0xba, 0x617: 0xba,
+       0x618: 0xba, 0x619: 0xba, 0x61a: 0xba, 0x61b: 0xba, 0x61c: 0xba, 0x61d: 0xba, 0x61e: 0xba, 0x61f: 0xba,
+       0x620: 0x122, 0x621: 0x122, 0x622: 0x122, 0x623: 0x167, 0x624: 0x6f, 0x625: 0x168, 0x626: 0xba, 0x627: 0xba,
+       0x628: 0xba, 0x629: 0xba, 0x62a: 0xba, 0x62b: 0xba, 0x62c: 0xba, 0x62d: 0xba, 0x62e: 0xba, 0x62f: 0xba,
+       0x630: 0xba, 0x631: 0xba, 0x632: 0xba, 0x633: 0xba, 0x634: 0xba, 0x635: 0xba, 0x636: 0xba, 0x637: 0xba,
+       0x638: 0x70, 0x639: 0x71, 0x63a: 0x72, 0x63b: 0x169, 0x63c: 0xba, 0x63d: 0xba, 0x63e: 0xba, 0x63f: 0xba,
+       // Block 0x19, offset 0x640
+       0x640: 0x16a, 0x641: 0x9b, 0x642: 0x16b, 0x643: 0x16c, 0x644: 0x73, 0x645: 0x74, 0x646: 0x16d, 0x647: 0x16e,
+       0x648: 0x75, 0x649: 0x16f, 0x64a: 0xba, 0x64b: 0xba, 0x64c: 0x9b, 0x64d: 0x9b, 0x64e: 0x9b, 0x64f: 0x9b,
+       0x650: 0x9b, 0x651: 0x9b, 0x652: 0x9b, 0x653: 0x9b, 0x654: 0x9b, 0x655: 0x9b, 0x656: 0x9b, 0x657: 0x9b,
+       0x658: 0x9b, 0x659: 0x9b, 0x65a: 0x9b, 0x65b: 0x170, 0x65c: 0x9b, 0x65d: 0x171, 0x65e: 0x9b, 0x65f: 0x172,
+       0x660: 0x173, 0x661: 0x174, 0x662: 0x175, 0x663: 0xba, 0x664: 0x176, 0x665: 0x177, 0x666: 0x178, 0x667: 0x179,
+       0x668: 0xba, 0x669: 0xba, 0x66a: 0xba, 0x66b: 0xba, 0x66c: 0xba, 0x66d: 0xba, 0x66e: 0xba, 0x66f: 0xba,
+       0x670: 0xba, 0x671: 0xba, 0x672: 0xba, 0x673: 0xba, 0x674: 0xba, 0x675: 0xba, 0x676: 0xba, 0x677: 0xba,
+       0x678: 0xba, 0x679: 0xba, 0x67a: 0xba, 0x67b: 0xba, 0x67c: 0xba, 0x67d: 0xba, 0x67e: 0xba, 0x67f: 0xba,
+       // Block 0x1a, offset 0x680
+       0x680: 0x9f, 0x681: 0x9f, 0x682: 0x9f, 0x683: 0x9f, 0x684: 0x9f, 0x685: 0x9f, 0x686: 0x9f, 0x687: 0x9f,
+       0x688: 0x9f, 0x689: 0x9f, 0x68a: 0x9f, 0x68b: 0x9f, 0x68c: 0x9f, 0x68d: 0x9f, 0x68e: 0x9f, 0x68f: 0x9f,
+       0x690: 0x9f, 0x691: 0x9f, 0x692: 0x9f, 0x693: 0x9f, 0x694: 0x9f, 0x695: 0x9f, 0x696: 0x9f, 0x697: 0x9f,
+       0x698: 0x9f, 0x699: 0x9f, 0x69a: 0x9f, 0x69b: 0x17a, 0x69c: 0x9f, 0x69d: 0x9f, 0x69e: 0x9f, 0x69f: 0x9f,
+       0x6a0: 0x9f, 0x6a1: 0x9f, 0x6a2: 0x9f, 0x6a3: 0x9f, 0x6a4: 0x9f, 0x6a5: 0x9f, 0x6a6: 0x9f, 0x6a7: 0x9f,
+       0x6a8: 0x9f, 0x6a9: 0x9f, 0x6aa: 0x9f, 0x6ab: 0x9f, 0x6ac: 0x9f, 0x6ad: 0x9f, 0x6ae: 0x9f, 0x6af: 0x9f,
+       0x6b0: 0x9f, 0x6b1: 0x9f, 0x6b2: 0x9f, 0x6b3: 0x9f, 0x6b4: 0x9f, 0x6b5: 0x9f, 0x6b6: 0x9f, 0x6b7: 0x9f,
+       0x6b8: 0x9f, 0x6b9: 0x9f, 0x6ba: 0x9f, 0x6bb: 0x9f, 0x6bc: 0x9f, 0x6bd: 0x9f, 0x6be: 0x9f, 0x6bf: 0x9f,
+       // Block 0x1b, offset 0x6c0
+       0x6c0: 0x9f, 0x6c1: 0x9f, 0x6c2: 0x9f, 0x6c3: 0x9f, 0x6c4: 0x9f, 0x6c5: 0x9f, 0x6c6: 0x9f, 0x6c7: 0x9f,
+       0x6c8: 0x9f, 0x6c9: 0x9f, 0x6ca: 0x9f, 0x6cb: 0x9f, 0x6cc: 0x9f, 0x6cd: 0x9f, 0x6ce: 0x9f, 0x6cf: 0x9f,
+       0x6d0: 0x9f, 0x6d1: 0x9f, 0x6d2: 0x9f, 0x6d3: 0x9f, 0x6d4: 0x9f, 0x6d5: 0x9f, 0x6d6: 0x9f, 0x6d7: 0x9f,
+       0x6d8: 0x9f, 0x6d9: 0x9f, 0x6da: 0x9f, 0x6db: 0x9f, 0x6dc: 0x17b, 0x6dd: 0x9f, 0x6de: 0x9f, 0x6df: 0x9f,
+       0x6e0: 0x17c, 0x6e1: 0x9f, 0x6e2: 0x9f, 0x6e3: 0x9f, 0x6e4: 0x9f, 0x6e5: 0x9f, 0x6e6: 0x9f, 0x6e7: 0x9f,
+       0x6e8: 0x9f, 0x6e9: 0x9f, 0x6ea: 0x9f, 0x6eb: 0x9f, 0x6ec: 0x9f, 0x6ed: 0x9f, 0x6ee: 0x9f, 0x6ef: 0x9f,
+       0x6f0: 0x9f, 0x6f1: 0x9f, 0x6f2: 0x9f, 0x6f3: 0x9f, 0x6f4: 0x9f, 0x6f5: 0x9f, 0x6f6: 0x9f, 0x6f7: 0x9f,
+       0x6f8: 0x9f, 0x6f9: 0x9f, 0x6fa: 0x9f, 0x6fb: 0x9f, 0x6fc: 0x9f, 0x6fd: 0x9f, 0x6fe: 0x9f, 0x6ff: 0x9f,
+       // Block 0x1c, offset 0x700
+       0x700: 0x9f, 0x701: 0x9f, 0x702: 0x9f, 0x703: 0x9f, 0x704: 0x9f, 0x705: 0x9f, 0x706: 0x9f, 0x707: 0x9f,
+       0x708: 0x9f, 0x709: 0x9f, 0x70a: 0x9f, 0x70b: 0x9f, 0x70c: 0x9f, 0x70d: 0x9f, 0x70e: 0x9f, 0x70f: 0x9f,
+       0x710: 0x9f, 0x711: 0x9f, 0x712: 0x9f, 0x713: 0x9f, 0x714: 0x9f, 0x715: 0x9f, 0x716: 0x9f, 0x717: 0x9f,
+       0x718: 0x9f, 0x719: 0x9f, 0x71a: 0x9f, 0x71b: 0x9f, 0x71c: 0x9f, 0x71d: 0x9f, 0x71e: 0x9f, 0x71f: 0x9f,
+       0x720: 0x9f, 0x721: 0x9f, 0x722: 0x9f, 0x723: 0x9f, 0x724: 0x9f, 0x725: 0x9f, 0x726: 0x9f, 0x727: 0x9f,
+       0x728: 0x9f, 0x729: 0x9f, 0x72a: 0x9f, 0x72b: 0x9f, 0x72c: 0x9f, 0x72d: 0x9f, 0x72e: 0x9f, 0x72f: 0x9f,
+       0x730: 0x9f, 0x731: 0x9f, 0x732: 0x9f, 0x733: 0x9f, 0x734: 0x9f, 0x735: 0x9f, 0x736: 0x9f, 0x737: 0x9f,
+       0x738: 0x9f, 0x739: 0x9f, 0x73a: 0x17d, 0x73b: 0x9f, 0x73c: 0x9f, 0x73d: 0x9f, 0x73e: 0x9f, 0x73f: 0x9f,
+       // Block 0x1d, offset 0x740
+       0x740: 0x9f, 0x741: 0x9f, 0x742: 0x9f, 0x743: 0x9f, 0x744: 0x9f, 0x745: 0x9f, 0x746: 0x9f, 0x747: 0x9f,
+       0x748: 0x9f, 0x749: 0x9f, 0x74a: 0x9f, 0x74b: 0x9f, 0x74c: 0x9f, 0x74d: 0x9f, 0x74e: 0x9f, 0x74f: 0x9f,
+       0x750: 0x9f, 0x751: 0x9f, 0x752: 0x9f, 0x753: 0x9f, 0x754: 0x9f, 0x755: 0x9f, 0x756: 0x9f, 0x757: 0x9f,
+       0x758: 0x9f, 0x759: 0x9f, 0x75a: 0x9f, 0x75b: 0x9f, 0x75c: 0x9f, 0x75d: 0x9f, 0x75e: 0x9f, 0x75f: 0x9f,
+       0x760: 0x9f, 0x761: 0x9f, 0x762: 0x9f, 0x763: 0x9f, 0x764: 0x9f, 0x765: 0x9f, 0x766: 0x9f, 0x767: 0x9f,
+       0x768: 0x9f, 0x769: 0x9f, 0x76a: 0x9f, 0x76b: 0x9f, 0x76c: 0x9f, 0x76d: 0x9f, 0x76e: 0x9f, 0x76f: 0x17e,
+       0x770: 0xba, 0x771: 0xba, 0x772: 0xba, 0x773: 0xba, 0x774: 0xba, 0x775: 0xba, 0x776: 0xba, 0x777: 0xba,
+       0x778: 0xba, 0x779: 0xba, 0x77a: 0xba, 0x77b: 0xba, 0x77c: 0xba, 0x77d: 0xba, 0x77e: 0xba, 0x77f: 0xba,
+       // Block 0x1e, offset 0x780
+       0x780: 0xba, 0x781: 0xba, 0x782: 0xba, 0x783: 0xba, 0x784: 0xba, 0x785: 0xba, 0x786: 0xba, 0x787: 0xba,
+       0x788: 0xba, 0x789: 0xba, 0x78a: 0xba, 0x78b: 0xba, 0x78c: 0xba, 0x78d: 0xba, 0x78e: 0xba, 0x78f: 0xba,
+       0x790: 0xba, 0x791: 0xba, 0x792: 0xba, 0x793: 0xba, 0x794: 0xba, 0x795: 0xba, 0x796: 0xba, 0x797: 0xba,
+       0x798: 0xba, 0x799: 0xba, 0x79a: 0xba, 0x79b: 0xba, 0x79c: 0xba, 0x79d: 0xba, 0x79e: 0xba, 0x79f: 0xba,
+       0x7a0: 0x76, 0x7a1: 0x77, 0x7a2: 0x78, 0x7a3: 0x17f, 0x7a4: 0x79, 0x7a5: 0x7a, 0x7a6: 0x180, 0x7a7: 0x7b,
+       0x7a8: 0x7c, 0x7a9: 0xba, 0x7aa: 0xba, 0x7ab: 0xba, 0x7ac: 0xba, 0x7ad: 0xba, 0x7ae: 0xba, 0x7af: 0xba,
+       0x7b0: 0xba, 0x7b1: 0xba, 0x7b2: 0xba, 0x7b3: 0xba, 0x7b4: 0xba, 0x7b5: 0xba, 0x7b6: 0xba, 0x7b7: 0xba,
+       0x7b8: 0xba, 0x7b9: 0xba, 0x7ba: 0xba, 0x7bb: 0xba, 0x7bc: 0xba, 0x7bd: 0xba, 0x7be: 0xba, 0x7bf: 0xba,
+       // Block 0x1f, offset 0x7c0
+       0x7d0: 0x0d, 0x7d1: 0x0e, 0x7d2: 0x0f, 0x7d3: 0x10, 0x7d4: 0x11, 0x7d5: 0x0b, 0x7d6: 0x12, 0x7d7: 0x07,
+       0x7d8: 0x13, 0x7d9: 0x0b, 0x7da: 0x0b, 0x7db: 0x14, 0x7dc: 0x0b, 0x7dd: 0x15, 0x7de: 0x16, 0x7df: 0x17,
+       0x7e0: 0x07, 0x7e1: 0x07, 0x7e2: 0x07, 0x7e3: 0x07, 0x7e4: 0x07, 0x7e5: 0x07, 0x7e6: 0x07, 0x7e7: 0x07,
+       0x7e8: 0x07, 0x7e9: 0x07, 0x7ea: 0x18, 0x7eb: 0x19, 0x7ec: 0x1a, 0x7ed: 0x07, 0x7ee: 0x1b, 0x7ef: 0x1c,
+       0x7f0: 0x0b, 0x7f1: 0x0b, 0x7f2: 0x0b, 0x7f3: 0x0b, 0x7f4: 0x0b, 0x7f5: 0x0b, 0x7f6: 0x0b, 0x7f7: 0x0b,
+       0x7f8: 0x0b, 0x7f9: 0x0b, 0x7fa: 0x0b, 0x7fb: 0x0b, 0x7fc: 0x0b, 0x7fd: 0x0b, 0x7fe: 0x0b, 0x7ff: 0x0b,
+       // Block 0x20, offset 0x800
+       0x800: 0x0b, 0x801: 0x0b, 0x802: 0x0b, 0x803: 0x0b, 0x804: 0x0b, 0x805: 0x0b, 0x806: 0x0b, 0x807: 0x0b,
+       0x808: 0x0b, 0x809: 0x0b, 0x80a: 0x0b, 0x80b: 0x0b, 0x80c: 0x0b, 0x80d: 0x0b, 0x80e: 0x0b, 0x80f: 0x0b,
+       0x810: 0x0b, 0x811: 0x0b, 0x812: 0x0b, 0x813: 0x0b, 0x814: 0x0b, 0x815: 0x0b, 0x816: 0x0b, 0x817: 0x0b,
+       0x818: 0x0b, 0x819: 0x0b, 0x81a: 0x0b, 0x81b: 0x0b, 0x81c: 0x0b, 0x81d: 0x0b, 0x81e: 0x0b, 0x81f: 0x0b,
+       0x820: 0x0b, 0x821: 0x0b, 0x822: 0x0b, 0x823: 0x0b, 0x824: 0x0b, 0x825: 0x0b, 0x826: 0x0b, 0x827: 0x0b,
+       0x828: 0x0b, 0x829: 0x0b, 0x82a: 0x0b, 0x82b: 0x0b, 0x82c: 0x0b, 0x82d: 0x0b, 0x82e: 0x0b, 0x82f: 0x0b,
+       0x830: 0x0b, 0x831: 0x0b, 0x832: 0x0b, 0x833: 0x0b, 0x834: 0x0b, 0x835: 0x0b, 0x836: 0x0b, 0x837: 0x0b,
+       0x838: 0x0b, 0x839: 0x0b, 0x83a: 0x0b, 0x83b: 0x0b, 0x83c: 0x0b, 0x83d: 0x0b, 0x83e: 0x0b, 0x83f: 0x0b,
+       // Block 0x21, offset 0x840
+       0x840: 0x181, 0x841: 0x182, 0x842: 0xba, 0x843: 0xba, 0x844: 0x183, 0x845: 0x183, 0x846: 0x183, 0x847: 0x184,
+       0x848: 0xba, 0x849: 0xba, 0x84a: 0xba, 0x84b: 0xba, 0x84c: 0xba, 0x84d: 0xba, 0x84e: 0xba, 0x84f: 0xba,
+       0x850: 0xba, 0x851: 0xba, 0x852: 0xba, 0x853: 0xba, 0x854: 0xba, 0x855: 0xba, 0x856: 0xba, 0x857: 0xba,
+       0x858: 0xba, 0x859: 0xba, 0x85a: 0xba, 0x85b: 0xba, 0x85c: 0xba, 0x85d: 0xba, 0x85e: 0xba, 0x85f: 0xba,
+       0x860: 0xba, 0x861: 0xba, 0x862: 0xba, 0x863: 0xba, 0x864: 0xba, 0x865: 0xba, 0x866: 0xba, 0x867: 0xba,
+       0x868: 0xba, 0x869: 0xba, 0x86a: 0xba, 0x86b: 0xba, 0x86c: 0xba, 0x86d: 0xba, 0x86e: 0xba, 0x86f: 0xba,
+       0x870: 0xba, 0x871: 0xba, 0x872: 0xba, 0x873: 0xba, 0x874: 0xba, 0x875: 0xba, 0x876: 0xba, 0x877: 0xba,
+       0x878: 0xba, 0x879: 0xba, 0x87a: 0xba, 0x87b: 0xba, 0x87c: 0xba, 0x87d: 0xba, 0x87e: 0xba, 0x87f: 0xba,
+       // Block 0x22, offset 0x880
+       0x880: 0x0b, 0x881: 0x0b, 0x882: 0x0b, 0x883: 0x0b, 0x884: 0x0b, 0x885: 0x0b, 0x886: 0x0b, 0x887: 0x0b,
+       0x888: 0x0b, 0x889: 0x0b, 0x88a: 0x0b, 0x88b: 0x0b, 0x88c: 0x0b, 0x88d: 0x0b, 0x88e: 0x0b, 0x88f: 0x0b,
+       0x890: 0x0b, 0x891: 0x0b, 0x892: 0x0b, 0x893: 0x0b, 0x894: 0x0b, 0x895: 0x0b, 0x896: 0x0b, 0x897: 0x0b,
+       0x898: 0x0b, 0x899: 0x0b, 0x89a: 0x0b, 0x89b: 0x0b, 0x89c: 0x0b, 0x89d: 0x0b, 0x89e: 0x0b, 0x89f: 0x0b,
+       0x8a0: 0x1f, 0x8a1: 0x0b, 0x8a2: 0x0b, 0x8a3: 0x0b, 0x8a4: 0x0b, 0x8a5: 0x0b, 0x8a6: 0x0b, 0x8a7: 0x0b,
+       0x8a8: 0x0b, 0x8a9: 0x0b, 0x8aa: 0x0b, 0x8ab: 0x0b, 0x8ac: 0x0b, 0x8ad: 0x0b, 0x8ae: 0x0b, 0x8af: 0x0b,
+       0x8b0: 0x0b, 0x8b1: 0x0b, 0x8b2: 0x0b, 0x8b3: 0x0b, 0x8b4: 0x0b, 0x8b5: 0x0b, 0x8b6: 0x0b, 0x8b7: 0x0b,
+       0x8b8: 0x0b, 0x8b9: 0x0b, 0x8ba: 0x0b, 0x8bb: 0x0b, 0x8bc: 0x0b, 0x8bd: 0x0b, 0x8be: 0x0b, 0x8bf: 0x0b,
+       // Block 0x23, offset 0x8c0
+       0x8c0: 0x0b, 0x8c1: 0x0b, 0x8c2: 0x0b, 0x8c3: 0x0b, 0x8c4: 0x0b, 0x8c5: 0x0b, 0x8c6: 0x0b, 0x8c7: 0x0b,
+       0x8c8: 0x0b, 0x8c9: 0x0b, 0x8ca: 0x0b, 0x8cb: 0x0b, 0x8cc: 0x0b, 0x8cd: 0x0b, 0x8ce: 0x0b, 0x8cf: 0x0b,
+}
+
+// idnaSparseOffset: 264 entries, 528 bytes
+var idnaSparseOffset = []uint16{0x0, 0x8, 0x19, 0x25, 0x27, 0x2c, 0x34, 0x3f, 0x4b, 0x4f, 0x5e, 0x63, 0x6b, 0x77, 0x85, 0x8a, 0x93, 0xa3, 0xb1, 0xbd, 0xc9, 0xda, 0xe4, 0xeb, 0xf8, 0x109, 0x110, 0x11b, 0x12a, 0x138, 0x142, 0x144, 0x149, 0x14c, 0x14f, 0x151, 0x15d, 0x168, 0x170, 0x176, 0x17c, 0x181, 0x186, 0x189, 0x18d, 0x193, 0x198, 0x1a4, 0x1ae, 0x1b4, 0x1c5, 0x1cf, 0x1d2, 0x1da, 0x1dd, 0x1ea, 0x1f2, 0x1f6, 0x1fd, 0x205, 0x215, 0x221, 0x223, 0x22d, 0x239, 0x245, 0x251, 0x259, 0x25e, 0x268, 0x279, 0x27d, 0x288, 0x28c, 0x295, 0x29d, 0x2a3, 0x2a8, 0x2ab, 0x2af, 0x2b5, 0x2b9, 0x2bd, 0x2c3, 0x2ca, 0x2d0, 0x2d8, 0x2df, 0x2ea, 0x2f4, 0x2f8, 0x2fb, 0x301, 0x305, 0x307, 0x30a, 0x30c, 0x30f, 0x319, 0x31c, 0x32b, 0x32f, 0x334, 0x337, 0x33b, 0x340, 0x345, 0x34b, 0x351, 0x360, 0x366, 0x36a, 0x379, 0x37e, 0x386, 0x390, 0x39b, 0x3a3, 0x3b4, 0x3bd, 0x3cd, 0x3da, 0x3e4, 0x3e9, 0x3f6, 0x3fa, 0x3ff, 0x401, 0x405, 0x407, 0x40b, 0x414, 0x41a, 0x41e, 0x42e, 0x438, 0x43d, 0x440, 0x446, 0x44d, 0x452, 0x456, 0x45c, 0x461, 0x46a, 0x46f, 0x475, 0x47c, 0x483, 0x48a, 0x48e, 0x493, 0x496, 0x49b, 0x4a7, 0x4ad, 0x4b2, 0x4b9, 0x4c1, 0x4c6, 0x4ca, 0x4da, 0x4e1, 0x4e5, 0x4e9, 0x4f0, 0x4f2, 0x4f5, 0x4f8, 0x4fc, 0x500, 0x506, 0x50f, 0x51b, 0x522, 0x52b, 0x533, 0x53a, 0x548, 0x555, 0x562, 0x56b, 0x56f, 0x57d, 0x585, 0x590, 0x599, 0x59f, 0x5a7, 0x5b0, 0x5ba, 0x5bd, 0x5c9, 0x5cc, 0x5d1, 0x5de, 0x5e7, 0x5f3, 0x5f6, 0x600, 0x609, 0x615, 0x622, 0x62a, 0x62d, 0x632, 0x635, 0x638, 0x63b, 0x642, 0x649, 0x64d, 0x658, 0x65b, 0x661, 0x666, 0x66a, 0x66d, 0x670, 0x673, 0x676, 0x679, 0x67e, 0x688, 0x68b, 0x68f, 0x69e, 0x6aa, 0x6ae, 0x6b3, 0x6b8, 0x6bc, 0x6c1, 0x6ca, 0x6d5, 0x6db, 0x6e3, 0x6e7, 0x6eb, 0x6f1, 0x6f7, 0x6fc, 0x6ff, 0x70f, 0x716, 0x719, 0x71c, 0x720, 0x726, 0x72b, 0x730, 0x735, 0x738, 0x73d, 0x740, 0x743, 0x747, 0x74b, 0x74e, 0x75e, 0x76f, 0x774, 0x776, 0x778}
+
+// idnaSparseValues: 1915 entries, 7660 bytes
+var idnaSparseValues = [1915]valueRange{
+       // Block 0x0, offset 0x0
+       {value: 0x0000, lo: 0x07},
+       {value: 0xe105, lo: 0x80, hi: 0x96},
+       {value: 0x0018, lo: 0x97, hi: 0x97},
+       {value: 0xe105, lo: 0x98, hi: 0x9e},
+       {value: 0x001f, lo: 0x9f, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xb6},
+       {value: 0x0018, lo: 0xb7, hi: 0xb7},
+       {value: 0x0008, lo: 0xb8, hi: 0xbf},
+       // Block 0x1, offset 0x8
+       {value: 0x0000, lo: 0x10},
+       {value: 0x0008, lo: 0x80, hi: 0x80},
+       {value: 0xe01d, lo: 0x81, hi: 0x81},
+       {value: 0x0008, lo: 0x82, hi: 0x82},
+       {value: 0x0335, lo: 0x83, hi: 0x83},
+       {value: 0x034d, lo: 0x84, hi: 0x84},
+       {value: 0x0365, lo: 0x85, hi: 0x85},
+       {value: 0xe00d, lo: 0x86, hi: 0x86},
+       {value: 0x0008, lo: 0x87, hi: 0x87},
+       {value: 0xe00d, lo: 0x88, hi: 0x88},
+       {value: 0x0008, lo: 0x89, hi: 0x89},
+       {value: 0xe00d, lo: 0x8a, hi: 0x8a},
+       {value: 0x0008, lo: 0x8b, hi: 0x8b},
+       {value: 0xe00d, lo: 0x8c, hi: 0x8c},
+       {value: 0x0008, lo: 0x8d, hi: 0x8d},
+       {value: 0xe00d, lo: 0x8e, hi: 0x8e},
+       {value: 0x0008, lo: 0x8f, hi: 0xbf},
+       // Block 0x2, offset 0x19
+       {value: 0x0000, lo: 0x0b},
+       {value: 0x0008, lo: 0x80, hi: 0xaf},
+       {value: 0x0249, lo: 0xb0, hi: 0xb0},
+       {value: 0x037d, lo: 0xb1, hi: 0xb1},
+       {value: 0x0259, lo: 0xb2, hi: 0xb2},
+       {value: 0x0269, lo: 0xb3, hi: 0xb3},
+       {value: 0x034d, lo: 0xb4, hi: 0xb4},
+       {value: 0x0395, lo: 0xb5, hi: 0xb5},
+       {value: 0xe1bd, lo: 0xb6, hi: 0xb6},
+       {value: 0x0279, lo: 0xb7, hi: 0xb7},
+       {value: 0x0289, lo: 0xb8, hi: 0xb8},
+       {value: 0x0008, lo: 0xb9, hi: 0xbf},
+       // Block 0x3, offset 0x25
+       {value: 0x0000, lo: 0x01},
+       {value: 0x3308, lo: 0x80, hi: 0xbf},
+       // Block 0x4, offset 0x27
+       {value: 0x0000, lo: 0x04},
+       {value: 0x03f5, lo: 0x80, hi: 0x8f},
+       {value: 0xe105, lo: 0x90, hi: 0x9f},
+       {value: 0x049d, lo: 0xa0, hi: 0xaf},
+       {value: 0x0008, lo: 0xb0, hi: 0xbf},
+       // Block 0x5, offset 0x2c
+       {value: 0x0000, lo: 0x07},
+       {value: 0xe185, lo: 0x80, hi: 0x8f},
+       {value: 0x0545, lo: 0x90, hi: 0x96},
+       {value: 0x0040, lo: 0x97, hi: 0x98},
+       {value: 0x0008, lo: 0x99, hi: 0x99},
+       {value: 0x0018, lo: 0x9a, hi: 0x9f},
+       {value: 0x0040, lo: 0xa0, hi: 0xa0},
+       {value: 0x0008, lo: 0xa1, hi: 0xbf},
+       // Block 0x6, offset 0x34
+       {value: 0x0000, lo: 0x0a},
+       {value: 0x0008, lo: 0x80, hi: 0x86},
+       {value: 0x0401, lo: 0x87, hi: 0x87},
+       {value: 0x0040, lo: 0x88, hi: 0x88},
+       {value: 0x0018, lo: 0x89, hi: 0x8a},
+       {value: 0x0040, lo: 0x8b, hi: 0x8c},
+       {value: 0x0018, lo: 0x8d, hi: 0x8f},
+       {value: 0x0040, lo: 0x90, hi: 0x90},
+       {value: 0x3308, lo: 0x91, hi: 0xbd},
+       {value: 0x0818, lo: 0xbe, hi: 0xbe},
+       {value: 0x3308, lo: 0xbf, hi: 0xbf},
+       // Block 0x7, offset 0x3f
+       {value: 0x0000, lo: 0x0b},
+       {value: 0x0818, lo: 0x80, hi: 0x80},
+       {value: 0x3308, lo: 0x81, hi: 0x82},
+       {value: 0x0818, lo: 0x83, hi: 0x83},
+       {value: 0x3308, lo: 0x84, hi: 0x85},
+       {value: 0x0818, lo: 0x86, hi: 0x86},
+       {value: 0x3308, lo: 0x87, hi: 0x87},
+       {value: 0x0040, lo: 0x88, hi: 0x8f},
+       {value: 0x0808, lo: 0x90, hi: 0xaa},
+       {value: 0x0040, lo: 0xab, hi: 0xaf},
+       {value: 0x0808, lo: 0xb0, hi: 0xb4},
+       {value: 0x0040, lo: 0xb5, hi: 0xbf},
+       // Block 0x8, offset 0x4b
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0a08, lo: 0x80, hi: 0x87},
+       {value: 0x0c08, lo: 0x88, hi: 0x99},
+       {value: 0x0a08, lo: 0x9a, hi: 0xbf},
+       // Block 0x9, offset 0x4f
+       {value: 0x0000, lo: 0x0e},
+       {value: 0x3308, lo: 0x80, hi: 0x8a},
+       {value: 0x0040, lo: 0x8b, hi: 0x8c},
+       {value: 0x0c08, lo: 0x8d, hi: 0x8d},
+       {value: 0x0a08, lo: 0x8e, hi: 0x98},
+       {value: 0x0c08, lo: 0x99, hi: 0x9b},
+       {value: 0x0a08, lo: 0x9c, hi: 0xaa},
+       {value: 0x0c08, lo: 0xab, hi: 0xac},
+       {value: 0x0a08, lo: 0xad, hi: 0xb0},
+       {value: 0x0c08, lo: 0xb1, hi: 0xb1},
+       {value: 0x0a08, lo: 0xb2, hi: 0xb2},
+       {value: 0x0c08, lo: 0xb3, hi: 0xb4},
+       {value: 0x0a08, lo: 0xb5, hi: 0xb7},
+       {value: 0x0c08, lo: 0xb8, hi: 0xb9},
+       {value: 0x0a08, lo: 0xba, hi: 0xbf},
+       // Block 0xa, offset 0x5e
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0808, lo: 0x80, hi: 0xa5},
+       {value: 0x3308, lo: 0xa6, hi: 0xb0},
+       {value: 0x0808, lo: 0xb1, hi: 0xb1},
+       {value: 0x0040, lo: 0xb2, hi: 0xbf},
+       // Block 0xb, offset 0x63
+       {value: 0x0000, lo: 0x07},
+       {value: 0x0808, lo: 0x80, hi: 0x89},
+       {value: 0x0a08, lo: 0x8a, hi: 0xaa},
+       {value: 0x3308, lo: 0xab, hi: 0xb3},
+       {value: 0x0808, lo: 0xb4, hi: 0xb5},
+       {value: 0x0018, lo: 0xb6, hi: 0xb9},
+       {value: 0x0818, lo: 0xba, hi: 0xba},
+       {value: 0x0040, lo: 0xbb, hi: 0xbf},
+       // Block 0xc, offset 0x6b
+       {value: 0x0000, lo: 0x0b},
+       {value: 0x0808, lo: 0x80, hi: 0x95},
+       {value: 0x3308, lo: 0x96, hi: 0x99},
+       {value: 0x0808, lo: 0x9a, hi: 0x9a},
+       {value: 0x3308, lo: 0x9b, hi: 0xa3},
+       {value: 0x0808, lo: 0xa4, hi: 0xa4},
+       {value: 0x3308, lo: 0xa5, hi: 0xa7},
+       {value: 0x0808, lo: 0xa8, hi: 0xa8},
+       {value: 0x3308, lo: 0xa9, hi: 0xad},
+       {value: 0x0040, lo: 0xae, hi: 0xaf},
+       {value: 0x0818, lo: 0xb0, hi: 0xbe},
+       {value: 0x0040, lo: 0xbf, hi: 0xbf},
+       // Block 0xd, offset 0x77
+       {value: 0x0000, lo: 0x0d},
+       {value: 0x0040, lo: 0x80, hi: 0x9f},
+       {value: 0x0a08, lo: 0xa0, hi: 0xa9},
+       {value: 0x0c08, lo: 0xaa, hi: 0xac},
+       {value: 0x0808, lo: 0xad, hi: 0xad},
+       {value: 0x0c08, lo: 0xae, hi: 0xae},
+       {value: 0x0a08, lo: 0xaf, hi: 0xb0},
+       {value: 0x0c08, lo: 0xb1, hi: 0xb2},
+       {value: 0x0a08, lo: 0xb3, hi: 0xb4},
+       {value: 0x0040, lo: 0xb5, hi: 0xb5},
+       {value: 0x0a08, lo: 0xb6, hi: 0xb8},
+       {value: 0x0c08, lo: 0xb9, hi: 0xb9},
+       {value: 0x0a08, lo: 0xba, hi: 0xbd},
+       {value: 0x0040, lo: 0xbe, hi: 0xbf},
+       // Block 0xe, offset 0x85
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0040, lo: 0x80, hi: 0x93},
+       {value: 0x3308, lo: 0x94, hi: 0xa1},
+       {value: 0x0840, lo: 0xa2, hi: 0xa2},
+       {value: 0x3308, lo: 0xa3, hi: 0xbf},
+       // Block 0xf, offset 0x8a
+       {value: 0x0000, lo: 0x08},
+       {value: 0x3308, lo: 0x80, hi: 0x82},
+       {value: 0x3008, lo: 0x83, hi: 0x83},
+       {value: 0x0008, lo: 0x84, hi: 0xb9},
+       {value: 0x3308, lo: 0xba, hi: 0xba},
+       {value: 0x3008, lo: 0xbb, hi: 0xbb},
+       {value: 0x3308, lo: 0xbc, hi: 0xbc},
+       {value: 0x0008, lo: 0xbd, hi: 0xbd},
+       {value: 0x3008, lo: 0xbe, hi: 0xbf},
+       // Block 0x10, offset 0x93
+       {value: 0x0000, lo: 0x0f},
+       {value: 0x3308, lo: 0x80, hi: 0x80},
+       {value: 0x3008, lo: 0x81, hi: 0x82},
+       {value: 0x0040, lo: 0x83, hi: 0x85},
+       {value: 0x3008, lo: 0x86, hi: 0x88},
+       {value: 0x0040, lo: 0x89, hi: 0x89},
+       {value: 0x3008, lo: 0x8a, hi: 0x8c},
+       {value: 0x3b08, lo: 0x8d, hi: 0x8d},
+       {value: 0x0040, lo: 0x8e, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x90},
+       {value: 0x0040, lo: 0x91, hi: 0x96},
+       {value: 0x3008, lo: 0x97, hi: 0x97},
+       {value: 0x0040, lo: 0x98, hi: 0xa5},
+       {value: 0x0008, lo: 0xa6, hi: 0xaf},
+       {value: 0x0018, lo: 0xb0, hi: 0xba},
+       {value: 0x0040, lo: 0xbb, hi: 0xbf},
+       // Block 0x11, offset 0xa3
+       {value: 0x0000, lo: 0x0d},
+       {value: 0x3308, lo: 0x80, hi: 0x80},
+       {value: 0x3008, lo: 0x81, hi: 0x83},
+       {value: 0x0040, lo: 0x84, hi: 0x84},
+       {value: 0x0008, lo: 0x85, hi: 0x8c},
+       {value: 0x0040, lo: 0x8d, hi: 0x8d},
+       {value: 0x0008, lo: 0x8e, hi: 0x90},
+       {value: 0x0040, lo: 0x91, hi: 0x91},
+       {value: 0x0008, lo: 0x92, hi: 0xa8},
+       {value: 0x0040, lo: 0xa9, hi: 0xa9},
+       {value: 0x0008, lo: 0xaa, hi: 0xb9},
+       {value: 0x0040, lo: 0xba, hi: 0xbc},
+       {value: 0x0008, lo: 0xbd, hi: 0xbd},
+       {value: 0x3308, lo: 0xbe, hi: 0xbf},
+       // Block 0x12, offset 0xb1
+       {value: 0x0000, lo: 0x0b},
+       {value: 0x3308, lo: 0x80, hi: 0x81},
+       {value: 0x3008, lo: 0x82, hi: 0x83},
+       {value: 0x0040, lo: 0x84, hi: 0x84},
+       {value: 0x0008, lo: 0x85, hi: 0x8c},
+       {value: 0x0040, lo: 0x8d, hi: 0x8d},
+       {value: 0x0008, lo: 0x8e, hi: 0x90},
+       {value: 0x0040, lo: 0x91, hi: 0x91},
+       {value: 0x0008, lo: 0x92, hi: 0xba},
+       {value: 0x3b08, lo: 0xbb, hi: 0xbc},
+       {value: 0x0008, lo: 0xbd, hi: 0xbd},
+       {value: 0x3008, lo: 0xbe, hi: 0xbf},
+       // Block 0x13, offset 0xbd
+       {value: 0x0000, lo: 0x0b},
+       {value: 0x0040, lo: 0x80, hi: 0x81},
+       {value: 0x3008, lo: 0x82, hi: 0x83},
+       {value: 0x0040, lo: 0x84, hi: 0x84},
+       {value: 0x0008, lo: 0x85, hi: 0x96},
+       {value: 0x0040, lo: 0x97, hi: 0x99},
+       {value: 0x0008, lo: 0x9a, hi: 0xb1},
+       {value: 0x0040, lo: 0xb2, hi: 0xb2},
+       {value: 0x0008, lo: 0xb3, hi: 0xbb},
+       {value: 0x0040, lo: 0xbc, hi: 0xbc},
+       {value: 0x0008, lo: 0xbd, hi: 0xbd},
+       {value: 0x0040, lo: 0xbe, hi: 0xbf},
+       // Block 0x14, offset 0xc9
+       {value: 0x0000, lo: 0x10},
+       {value: 0x0008, lo: 0x80, hi: 0x86},
+       {value: 0x0040, lo: 0x87, hi: 0x89},
+       {value: 0x3b08, lo: 0x8a, hi: 0x8a},
+       {value: 0x0040, lo: 0x8b, hi: 0x8e},
+       {value: 0x3008, lo: 0x8f, hi: 0x91},
+       {value: 0x3308, lo: 0x92, hi: 0x94},
+       {value: 0x0040, lo: 0x95, hi: 0x95},
+       {value: 0x3308, lo: 0x96, hi: 0x96},
+       {value: 0x0040, lo: 0x97, hi: 0x97},
+       {value: 0x3008, lo: 0x98, hi: 0x9f},
+       {value: 0x0040, lo: 0xa0, hi: 0xa5},
+       {value: 0x0008, lo: 0xa6, hi: 0xaf},
+       {value: 0x0040, lo: 0xb0, hi: 0xb1},
+       {value: 0x3008, lo: 0xb2, hi: 0xb3},
+       {value: 0x0018, lo: 0xb4, hi: 0xb4},
+       {value: 0x0040, lo: 0xb5, hi: 0xbf},
+       // Block 0x15, offset 0xda
+       {value: 0x0000, lo: 0x09},
+       {value: 0x0040, lo: 0x80, hi: 0x80},
+       {value: 0x0008, lo: 0x81, hi: 0xb0},
+       {value: 0x3308, lo: 0xb1, hi: 0xb1},
+       {value: 0x0008, lo: 0xb2, hi: 0xb2},
+       {value: 0x08f1, lo: 0xb3, hi: 0xb3},
+       {value: 0x3308, lo: 0xb4, hi: 0xb9},
+       {value: 0x3b08, lo: 0xba, hi: 0xba},
+       {value: 0x0040, lo: 0xbb, hi: 0xbe},
+       {value: 0x0018, lo: 0xbf, hi: 0xbf},
+       // Block 0x16, offset 0xe4
+       {value: 0x0000, lo: 0x06},
+       {value: 0x0008, lo: 0x80, hi: 0x86},
+       {value: 0x3308, lo: 0x87, hi: 0x8e},
+       {value: 0x0018, lo: 0x8f, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x99},
+       {value: 0x0018, lo: 0x9a, hi: 0x9b},
+       {value: 0x0040, lo: 0x9c, hi: 0xbf},
+       // Block 0x17, offset 0xeb
+       {value: 0x0000, lo: 0x0c},
+       {value: 0x0008, lo: 0x80, hi: 0x84},
+       {value: 0x0040, lo: 0x85, hi: 0x85},
+       {value: 0x0008, lo: 0x86, hi: 0x86},
+       {value: 0x0040, lo: 0x87, hi: 0x87},
+       {value: 0x3308, lo: 0x88, hi: 0x8d},
+       {value: 0x0040, lo: 0x8e, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x99},
+       {value: 0x0040, lo: 0x9a, hi: 0x9b},
+       {value: 0x0961, lo: 0x9c, hi: 0x9c},
+       {value: 0x0999, lo: 0x9d, hi: 0x9d},
+       {value: 0x0008, lo: 0x9e, hi: 0x9f},
+       {value: 0x0040, lo: 0xa0, hi: 0xbf},
+       // Block 0x18, offset 0xf8
+       {value: 0x0000, lo: 0x10},
+       {value: 0x0008, lo: 0x80, hi: 0x80},
+       {value: 0x0018, lo: 0x81, hi: 0x8a},
+       {value: 0x0008, lo: 0x8b, hi: 0x8b},
+       {value: 0xe03d, lo: 0x8c, hi: 0x8c},
+       {value: 0x0018, lo: 0x8d, hi: 0x97},
+       {value: 0x3308, lo: 0x98, hi: 0x99},
+       {value: 0x0018, lo: 0x9a, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xa9},
+       {value: 0x0018, lo: 0xaa, hi: 0xb4},
+       {value: 0x3308, lo: 0xb5, hi: 0xb5},
+       {value: 0x0018, lo: 0xb6, hi: 0xb6},
+       {value: 0x3308, lo: 0xb7, hi: 0xb7},
+       {value: 0x0018, lo: 0xb8, hi: 0xb8},
+       {value: 0x3308, lo: 0xb9, hi: 0xb9},
+       {value: 0x0018, lo: 0xba, hi: 0xbd},
+       {value: 0x3008, lo: 0xbe, hi: 0xbf},
+       // Block 0x19, offset 0x109
+       {value: 0x0000, lo: 0x06},
+       {value: 0x0018, lo: 0x80, hi: 0x85},
+       {value: 0x3308, lo: 0x86, hi: 0x86},
+       {value: 0x0018, lo: 0x87, hi: 0x8c},
+       {value: 0x0040, lo: 0x8d, hi: 0x8d},
+       {value: 0x0018, lo: 0x8e, hi: 0x9a},
+       {value: 0x0040, lo: 0x9b, hi: 0xbf},
+       // Block 0x1a, offset 0x110
+       {value: 0x0000, lo: 0x0a},
+       {value: 0x0008, lo: 0x80, hi: 0xaa},
+       {value: 0x3008, lo: 0xab, hi: 0xac},
+       {value: 0x3308, lo: 0xad, hi: 0xb0},
+       {value: 0x3008, lo: 0xb1, hi: 0xb1},
+       {value: 0x3308, lo: 0xb2, hi: 0xb7},
+       {value: 0x3008, lo: 0xb8, hi: 0xb8},
+       {value: 0x3b08, lo: 0xb9, hi: 0xba},
+       {value: 0x3008, lo: 0xbb, hi: 0xbc},
+       {value: 0x3308, lo: 0xbd, hi: 0xbe},
+       {value: 0x0008, lo: 0xbf, hi: 0xbf},
+       // Block 0x1b, offset 0x11b
+       {value: 0x0000, lo: 0x0e},
+       {value: 0x0008, lo: 0x80, hi: 0x89},
+       {value: 0x0018, lo: 0x8a, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x95},
+       {value: 0x3008, lo: 0x96, hi: 0x97},
+       {value: 0x3308, lo: 0x98, hi: 0x99},
+       {value: 0x0008, lo: 0x9a, hi: 0x9d},
+       {value: 0x3308, lo: 0x9e, hi: 0xa0},
+       {value: 0x0008, lo: 0xa1, hi: 0xa1},
+       {value: 0x3008, lo: 0xa2, hi: 0xa4},
+       {value: 0x0008, lo: 0xa5, hi: 0xa6},
+       {value: 0x3008, lo: 0xa7, hi: 0xad},
+       {value: 0x0008, lo: 0xae, hi: 0xb0},
+       {value: 0x3308, lo: 0xb1, hi: 0xb4},
+       {value: 0x0008, lo: 0xb5, hi: 0xbf},
+       // Block 0x1c, offset 0x12a
+       {value: 0x0000, lo: 0x0d},
+       {value: 0x0008, lo: 0x80, hi: 0x81},
+       {value: 0x3308, lo: 0x82, hi: 0x82},
+       {value: 0x3008, lo: 0x83, hi: 0x84},
+       {value: 0x3308, lo: 0x85, hi: 0x86},
+       {value: 0x3008, lo: 0x87, hi: 0x8c},
+       {value: 0x3308, lo: 0x8d, hi: 0x8d},
+       {value: 0x0008, lo: 0x8e, hi: 0x8e},
+       {value: 0x3008, lo: 0x8f, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x99},
+       {value: 0x3008, lo: 0x9a, hi: 0x9c},
+       {value: 0x3308, lo: 0x9d, hi: 0x9d},
+       {value: 0x0018, lo: 0x9e, hi: 0x9f},
+       {value: 0x0040, lo: 0xa0, hi: 0xbf},
+       // Block 0x1d, offset 0x138
+       {value: 0x0000, lo: 0x09},
+       {value: 0x0040, lo: 0x80, hi: 0x86},
+       {value: 0x055d, lo: 0x87, hi: 0x87},
+       {value: 0x0040, lo: 0x88, hi: 0x8c},
+       {value: 0x055d, lo: 0x8d, hi: 0x8d},
+       {value: 0x0040, lo: 0x8e, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0xba},
+       {value: 0x0018, lo: 0xbb, hi: 0xbb},
+       {value: 0xe105, lo: 0xbc, hi: 0xbc},
+       {value: 0x0008, lo: 0xbd, hi: 0xbf},
+       // Block 0x1e, offset 0x142
+       {value: 0x0000, lo: 0x01},
+       {value: 0x0018, lo: 0x80, hi: 0xbf},
+       // Block 0x1f, offset 0x144
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0018, lo: 0x80, hi: 0x9e},
+       {value: 0x0040, lo: 0x9f, hi: 0xa0},
+       {value: 0x2018, lo: 0xa1, hi: 0xb5},
+       {value: 0x0018, lo: 0xb6, hi: 0xbf},
+       // Block 0x20, offset 0x149
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0018, lo: 0x80, hi: 0xa7},
+       {value: 0x2018, lo: 0xa8, hi: 0xbf},
+       // Block 0x21, offset 0x14c
+       {value: 0x0000, lo: 0x02},
+       {value: 0x2018, lo: 0x80, hi: 0x82},
+       {value: 0x0018, lo: 0x83, hi: 0xbf},
+       // Block 0x22, offset 0x14f
+       {value: 0x0000, lo: 0x01},
+       {value: 0x0008, lo: 0x80, hi: 0xbf},
+       // Block 0x23, offset 0x151
+       {value: 0x0000, lo: 0x0b},
+       {value: 0x0008, lo: 0x80, hi: 0x88},
+       {value: 0x0040, lo: 0x89, hi: 0x89},
+       {value: 0x0008, lo: 0x8a, hi: 0x8d},
+       {value: 0x0040, lo: 0x8e, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x96},
+       {value: 0x0040, lo: 0x97, hi: 0x97},
+       {value: 0x0008, lo: 0x98, hi: 0x98},
+       {value: 0x0040, lo: 0x99, hi: 0x99},
+       {value: 0x0008, lo: 0x9a, hi: 0x9d},
+       {value: 0x0040, lo: 0x9e, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xbf},
+       // Block 0x24, offset 0x15d
+       {value: 0x0000, lo: 0x0a},
+       {value: 0x0008, lo: 0x80, hi: 0x88},
+       {value: 0x0040, lo: 0x89, hi: 0x89},
+       {value: 0x0008, lo: 0x8a, hi: 0x8d},
+       {value: 0x0040, lo: 0x8e, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0xb0},
+       {value: 0x0040, lo: 0xb1, hi: 0xb1},
+       {value: 0x0008, lo: 0xb2, hi: 0xb5},
+       {value: 0x0040, lo: 0xb6, hi: 0xb7},
+       {value: 0x0008, lo: 0xb8, hi: 0xbe},
+       {value: 0x0040, lo: 0xbf, hi: 0xbf},
+       // Block 0x25, offset 0x168
+       {value: 0x0000, lo: 0x07},
+       {value: 0x0008, lo: 0x80, hi: 0x80},
+       {value: 0x0040, lo: 0x81, hi: 0x81},
+       {value: 0x0008, lo: 0x82, hi: 0x85},
+       {value: 0x0040, lo: 0x86, hi: 0x87},
+       {value: 0x0008, lo: 0x88, hi: 0x96},
+       {value: 0x0040, lo: 0x97, hi: 0x97},
+       {value: 0x0008, lo: 0x98, hi: 0xbf},
+       // Block 0x26, offset 0x170
+       {value: 0x0000, lo: 0x05},
+       {value: 0x0008, lo: 0x80, hi: 0x90},
+       {value: 0x0040, lo: 0x91, hi: 0x91},
+       {value: 0x0008, lo: 0x92, hi: 0x95},
+       {value: 0x0040, lo: 0x96, hi: 0x97},
+       {value: 0x0008, lo: 0x98, hi: 0xbf},
+       // Block 0x27, offset 0x176
+       {value: 0x0000, lo: 0x05},
+       {value: 0x0008, lo: 0x80, hi: 0x9a},
+       {value: 0x0040, lo: 0x9b, hi: 0x9c},
+       {value: 0x3308, lo: 0x9d, hi: 0x9f},
+       {value: 0x0018, lo: 0xa0, hi: 0xbc},
+       {value: 0x0040, lo: 0xbd, hi: 0xbf},
+       // Block 0x28, offset 0x17c
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0008, lo: 0x80, hi: 0x8f},
+       {value: 0x0018, lo: 0x90, hi: 0x99},
+       {value: 0x0040, lo: 0x9a, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xbf},
+       // Block 0x29, offset 0x181
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0008, lo: 0x80, hi: 0xb5},
+       {value: 0x0040, lo: 0xb6, hi: 0xb7},
+       {value: 0xe045, lo: 0xb8, hi: 0xbd},
+       {value: 0x0040, lo: 0xbe, hi: 0xbf},
+       // Block 0x2a, offset 0x186
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0018, lo: 0x80, hi: 0x80},
+       {value: 0x0008, lo: 0x81, hi: 0xbf},
+       // Block 0x2b, offset 0x189
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0008, lo: 0x80, hi: 0xac},
+       {value: 0x0018, lo: 0xad, hi: 0xae},
+       {value: 0x0008, lo: 0xaf, hi: 0xbf},
+       // Block 0x2c, offset 0x18d
+       {value: 0x0000, lo: 0x05},
+       {value: 0x0040, lo: 0x80, hi: 0x80},
+       {value: 0x0008, lo: 0x81, hi: 0x9a},
+       {value: 0x0018, lo: 0x9b, hi: 0x9c},
+       {value: 0x0040, lo: 0x9d, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xbf},
+       // Block 0x2d, offset 0x193
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0008, lo: 0x80, hi: 0xaa},
+       {value: 0x0018, lo: 0xab, hi: 0xb0},
+       {value: 0x0008, lo: 0xb1, hi: 0xb8},
+       {value: 0x0040, lo: 0xb9, hi: 0xbf},
+       // Block 0x2e, offset 0x198
+       {value: 0x0000, lo: 0x0b},
+       {value: 0x0008, lo: 0x80, hi: 0x8c},
+       {value: 0x0040, lo: 0x8d, hi: 0x8d},
+       {value: 0x0008, lo: 0x8e, hi: 0x91},
+       {value: 0x3308, lo: 0x92, hi: 0x93},
+       {value: 0x3b08, lo: 0x94, hi: 0x94},
+       {value: 0x0040, lo: 0x95, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xb1},
+       {value: 0x3308, lo: 0xb2, hi: 0xb3},
+       {value: 0x3b08, lo: 0xb4, hi: 0xb4},
+       {value: 0x0018, lo: 0xb5, hi: 0xb6},
+       {value: 0x0040, lo: 0xb7, hi: 0xbf},
+       // Block 0x2f, offset 0x1a4
+       {value: 0x0000, lo: 0x09},
+       {value: 0x0008, lo: 0x80, hi: 0x91},
+       {value: 0x3308, lo: 0x92, hi: 0x93},
+       {value: 0x0040, lo: 0x94, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xac},
+       {value: 0x0040, lo: 0xad, hi: 0xad},
+       {value: 0x0008, lo: 0xae, hi: 0xb0},
+       {value: 0x0040, lo: 0xb1, hi: 0xb1},
+       {value: 0x3308, lo: 0xb2, hi: 0xb3},
+       {value: 0x0040, lo: 0xb4, hi: 0xbf},
+       // Block 0x30, offset 0x1ae
+       {value: 0x0000, lo: 0x05},
+       {value: 0x0008, lo: 0x80, hi: 0xb3},
+       {value: 0x3340, lo: 0xb4, hi: 0xb5},
+       {value: 0x3008, lo: 0xb6, hi: 0xb6},
+       {value: 0x3308, lo: 0xb7, hi: 0xbd},
+       {value: 0x3008, lo: 0xbe, hi: 0xbf},
+       // Block 0x31, offset 0x1b4
+       {value: 0x0000, lo: 0x10},
+       {value: 0x3008, lo: 0x80, hi: 0x85},
+       {value: 0x3308, lo: 0x86, hi: 0x86},
+       {value: 0x3008, lo: 0x87, hi: 0x88},
+       {value: 0x3308, lo: 0x89, hi: 0x91},
+       {value: 0x3b08, lo: 0x92, hi: 0x92},
+       {value: 0x3308, lo: 0x93, hi: 0x93},
+       {value: 0x0018, lo: 0x94, hi: 0x96},
+       {value: 0x0008, lo: 0x97, hi: 0x97},
+       {value: 0x0018, lo: 0x98, hi: 0x9b},
+       {value: 0x0008, lo: 0x9c, hi: 0x9c},
+       {value: 0x3308, lo: 0x9d, hi: 0x9d},
+       {value: 0x0040, lo: 0x9e, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xa9},
+       {value: 0x0040, lo: 0xaa, hi: 0xaf},
+       {value: 0x0018, lo: 0xb0, hi: 0xb9},
+       {value: 0x0040, lo: 0xba, hi: 0xbf},
+       // Block 0x32, offset 0x1c5
+       {value: 0x0000, lo: 0x09},
+       {value: 0x0018, lo: 0x80, hi: 0x85},
+       {value: 0x0040, lo: 0x86, hi: 0x86},
+       {value: 0x0218, lo: 0x87, hi: 0x87},
+       {value: 0x0018, lo: 0x88, hi: 0x8a},
+       {value: 0x33c0, lo: 0x8b, hi: 0x8d},
+       {value: 0x0040, lo: 0x8e, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x99},
+       {value: 0x0040, lo: 0x9a, hi: 0x9f},
+       {value: 0x0208, lo: 0xa0, hi: 0xbf},
+       // Block 0x33, offset 0x1cf
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0208, lo: 0x80, hi: 0xb7},
+       {value: 0x0040, lo: 0xb8, hi: 0xbf},
+       // Block 0x34, offset 0x1d2
+       {value: 0x0000, lo: 0x07},
+       {value: 0x0008, lo: 0x80, hi: 0x84},
+       {value: 0x3308, lo: 0x85, hi: 0x86},
+       {value: 0x0208, lo: 0x87, hi: 0xa8},
+       {value: 0x3308, lo: 0xa9, hi: 0xa9},
+       {value: 0x0208, lo: 0xaa, hi: 0xaa},
+       {value: 0x0040, lo: 0xab, hi: 0xaf},
+       {value: 0x0008, lo: 0xb0, hi: 0xbf},
+       // Block 0x35, offset 0x1da
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0008, lo: 0x80, hi: 0xb5},
+       {value: 0x0040, lo: 0xb6, hi: 0xbf},
+       // Block 0x36, offset 0x1dd
+       {value: 0x0000, lo: 0x0c},
+       {value: 0x0008, lo: 0x80, hi: 0x9e},
+       {value: 0x0040, lo: 0x9f, hi: 0x9f},
+       {value: 0x3308, lo: 0xa0, hi: 0xa2},
+       {value: 0x3008, lo: 0xa3, hi: 0xa6},
+       {value: 0x3308, lo: 0xa7, hi: 0xa8},
+       {value: 0x3008, lo: 0xa9, hi: 0xab},
+       {value: 0x0040, lo: 0xac, hi: 0xaf},
+       {value: 0x3008, lo: 0xb0, hi: 0xb1},
+       {value: 0x3308, lo: 0xb2, hi: 0xb2},
+       {value: 0x3008, lo: 0xb3, hi: 0xb8},
+       {value: 0x3308, lo: 0xb9, hi: 0xbb},
+       {value: 0x0040, lo: 0xbc, hi: 0xbf},
+       // Block 0x37, offset 0x1ea
+       {value: 0x0000, lo: 0x07},
+       {value: 0x0018, lo: 0x80, hi: 0x80},
+       {value: 0x0040, lo: 0x81, hi: 0x83},
+       {value: 0x0018, lo: 0x84, hi: 0x85},
+       {value: 0x0008, lo: 0x86, hi: 0xad},
+       {value: 0x0040, lo: 0xae, hi: 0xaf},
+       {value: 0x0008, lo: 0xb0, hi: 0xb4},
+       {value: 0x0040, lo: 0xb5, hi: 0xbf},
+       // Block 0x38, offset 0x1f2
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0008, lo: 0x80, hi: 0xab},
+       {value: 0x0040, lo: 0xac, hi: 0xaf},
+       {value: 0x0008, lo: 0xb0, hi: 0xbf},
+       // Block 0x39, offset 0x1f6
+       {value: 0x0000, lo: 0x06},
+       {value: 0x0008, lo: 0x80, hi: 0x89},
+       {value: 0x0040, lo: 0x8a, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x99},
+       {value: 0x0028, lo: 0x9a, hi: 0x9a},
+       {value: 0x0040, lo: 0x9b, hi: 0x9d},
+       {value: 0x0018, lo: 0x9e, hi: 0xbf},
+       // Block 0x3a, offset 0x1fd
+       {value: 0x0000, lo: 0x07},
+       {value: 0x0008, lo: 0x80, hi: 0x96},
+       {value: 0x3308, lo: 0x97, hi: 0x98},
+       {value: 0x3008, lo: 0x99, hi: 0x9a},
+       {value: 0x3308, lo: 0x9b, hi: 0x9b},
+       {value: 0x0040, lo: 0x9c, hi: 0x9d},
+       {value: 0x0018, lo: 0x9e, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xbf},
+       // Block 0x3b, offset 0x205
+       {value: 0x0000, lo: 0x0f},
+       {value: 0x0008, lo: 0x80, hi: 0x94},
+       {value: 0x3008, lo: 0x95, hi: 0x95},
+       {value: 0x3308, lo: 0x96, hi: 0x96},
+       {value: 0x3008, lo: 0x97, hi: 0x97},
+       {value: 0x3308, lo: 0x98, hi: 0x9e},
+       {value: 0x0040, lo: 0x9f, hi: 0x9f},
+       {value: 0x3b08, lo: 0xa0, hi: 0xa0},
+       {value: 0x3008, lo: 0xa1, hi: 0xa1},
+       {value: 0x3308, lo: 0xa2, hi: 0xa2},
+       {value: 0x3008, lo: 0xa3, hi: 0xa4},
+       {value: 0x3308, lo: 0xa5, hi: 0xac},
+       {value: 0x3008, lo: 0xad, hi: 0xb2},
+       {value: 0x3308, lo: 0xb3, hi: 0xbc},
+       {value: 0x0040, lo: 0xbd, hi: 0xbe},
+       {value: 0x3308, lo: 0xbf, hi: 0xbf},
+       // Block 0x3c, offset 0x215
+       {value: 0x0000, lo: 0x0b},
+       {value: 0x0008, lo: 0x80, hi: 0x89},
+       {value: 0x0040, lo: 0x8a, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x99},
+       {value: 0x0040, lo: 0x9a, hi: 0x9f},
+       {value: 0x0018, lo: 0xa0, hi: 0xa6},
+       {value: 0x0008, lo: 0xa7, hi: 0xa7},
+       {value: 0x0018, lo: 0xa8, hi: 0xad},
+       {value: 0x0040, lo: 0xae, hi: 0xaf},
+       {value: 0x3308, lo: 0xb0, hi: 0xbd},
+       {value: 0x3318, lo: 0xbe, hi: 0xbe},
+       {value: 0x0040, lo: 0xbf, hi: 0xbf},
+       // Block 0x3d, offset 0x221
+       {value: 0x0000, lo: 0x01},
+       {value: 0x0040, lo: 0x80, hi: 0xbf},
+       // Block 0x3e, offset 0x223
+       {value: 0x0000, lo: 0x09},
+       {value: 0x3308, lo: 0x80, hi: 0x83},
+       {value: 0x3008, lo: 0x84, hi: 0x84},
+       {value: 0x0008, lo: 0x85, hi: 0xb3},
+       {value: 0x3308, lo: 0xb4, hi: 0xb4},
+       {value: 0x3008, lo: 0xb5, hi: 0xb5},
+       {value: 0x3308, lo: 0xb6, hi: 0xba},
+       {value: 0x3008, lo: 0xbb, hi: 0xbb},
+       {value: 0x3308, lo: 0xbc, hi: 0xbc},
+       {value: 0x3008, lo: 0xbd, hi: 0xbf},
+       // Block 0x3f, offset 0x22d
+       {value: 0x0000, lo: 0x0b},
+       {value: 0x3008, lo: 0x80, hi: 0x81},
+       {value: 0x3308, lo: 0x82, hi: 0x82},
+       {value: 0x3008, lo: 0x83, hi: 0x83},
+       {value: 0x3808, lo: 0x84, hi: 0x84},
+       {value: 0x0008, lo: 0x85, hi: 0x8b},
+       {value: 0x0040, lo: 0x8c, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x99},
+       {value: 0x0018, lo: 0x9a, hi: 0xaa},
+       {value: 0x3308, lo: 0xab, hi: 0xb3},
+       {value: 0x0018, lo: 0xb4, hi: 0xbc},
+       {value: 0x0040, lo: 0xbd, hi: 0xbf},
+       // Block 0x40, offset 0x239
+       {value: 0x0000, lo: 0x0b},
+       {value: 0x3308, lo: 0x80, hi: 0x81},
+       {value: 0x3008, lo: 0x82, hi: 0x82},
+       {value: 0x0008, lo: 0x83, hi: 0xa0},
+       {value: 0x3008, lo: 0xa1, hi: 0xa1},
+       {value: 0x3308, lo: 0xa2, hi: 0xa5},
+       {value: 0x3008, lo: 0xa6, hi: 0xa7},
+       {value: 0x3308, lo: 0xa8, hi: 0xa9},
+       {value: 0x3808, lo: 0xaa, hi: 0xaa},
+       {value: 0x3b08, lo: 0xab, hi: 0xab},
+       {value: 0x3308, lo: 0xac, hi: 0xad},
+       {value: 0x0008, lo: 0xae, hi: 0xbf},
+       // Block 0x41, offset 0x245
+       {value: 0x0000, lo: 0x0b},
+       {value: 0x0008, lo: 0x80, hi: 0xa5},
+       {value: 0x3308, lo: 0xa6, hi: 0xa6},
+       {value: 0x3008, lo: 0xa7, hi: 0xa7},
+       {value: 0x3308, lo: 0xa8, hi: 0xa9},
+       {value: 0x3008, lo: 0xaa, hi: 0xac},
+       {value: 0x3308, lo: 0xad, hi: 0xad},
+       {value: 0x3008, lo: 0xae, hi: 0xae},
+       {value: 0x3308, lo: 0xaf, hi: 0xb1},
+       {value: 0x3808, lo: 0xb2, hi: 0xb3},
+       {value: 0x0040, lo: 0xb4, hi: 0xbb},
+       {value: 0x0018, lo: 0xbc, hi: 0xbf},
+       // Block 0x42, offset 0x251
+       {value: 0x0000, lo: 0x07},
+       {value: 0x0008, lo: 0x80, hi: 0xa3},
+       {value: 0x3008, lo: 0xa4, hi: 0xab},
+       {value: 0x3308, lo: 0xac, hi: 0xb3},
+       {value: 0x3008, lo: 0xb4, hi: 0xb5},
+       {value: 0x3308, lo: 0xb6, hi: 0xb7},
+       {value: 0x0040, lo: 0xb8, hi: 0xba},
+       {value: 0x0018, lo: 0xbb, hi: 0xbf},
+       // Block 0x43, offset 0x259
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0008, lo: 0x80, hi: 0x89},
+       {value: 0x0040, lo: 0x8a, hi: 0x8c},
+       {value: 0x0008, lo: 0x8d, hi: 0xbd},
+       {value: 0x0018, lo: 0xbe, hi: 0xbf},
+       // Block 0x44, offset 0x25e
+       {value: 0x0000, lo: 0x09},
+       {value: 0x0e29, lo: 0x80, hi: 0x80},
+       {value: 0x0e41, lo: 0x81, hi: 0x81},
+       {value: 0x0e59, lo: 0x82, hi: 0x82},
+       {value: 0x0e71, lo: 0x83, hi: 0x83},
+       {value: 0x0e89, lo: 0x84, hi: 0x85},
+       {value: 0x0ea1, lo: 0x86, hi: 0x86},
+       {value: 0x0eb9, lo: 0x87, hi: 0x87},
+       {value: 0x057d, lo: 0x88, hi: 0x88},
+       {value: 0x0040, lo: 0x89, hi: 0xbf},
+       // Block 0x45, offset 0x268
+       {value: 0x0000, lo: 0x10},
+       {value: 0x0018, lo: 0x80, hi: 0x87},
+       {value: 0x0040, lo: 0x88, hi: 0x8f},
+       {value: 0x3308, lo: 0x90, hi: 0x92},
+       {value: 0x0018, lo: 0x93, hi: 0x93},
+       {value: 0x3308, lo: 0x94, hi: 0xa0},
+       {value: 0x3008, lo: 0xa1, hi: 0xa1},
+       {value: 0x3308, lo: 0xa2, hi: 0xa8},
+       {value: 0x0008, lo: 0xa9, hi: 0xac},
+       {value: 0x3308, lo: 0xad, hi: 0xad},
+       {value: 0x0008, lo: 0xae, hi: 0xb1},
+       {value: 0x3008, lo: 0xb2, hi: 0xb3},
+       {value: 0x3308, lo: 0xb4, hi: 0xb4},
+       {value: 0x0008, lo: 0xb5, hi: 0xb6},
+       {value: 0x3008, lo: 0xb7, hi: 0xb7},
+       {value: 0x3308, lo: 0xb8, hi: 0xb9},
+       {value: 0x0040, lo: 0xba, hi: 0xbf},
+       // Block 0x46, offset 0x279
+       {value: 0x0000, lo: 0x03},
+       {value: 0x3308, lo: 0x80, hi: 0xb9},
+       {value: 0x0040, lo: 0xba, hi: 0xba},
+       {value: 0x3308, lo: 0xbb, hi: 0xbf},
+       // Block 0x47, offset 0x27d
+       {value: 0x0000, lo: 0x0a},
+       {value: 0x0008, lo: 0x80, hi: 0x87},
+       {value: 0xe045, lo: 0x88, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x95},
+       {value: 0x0040, lo: 0x96, hi: 0x97},
+       {value: 0xe045, lo: 0x98, hi: 0x9d},
+       {value: 0x0040, lo: 0x9e, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xa7},
+       {value: 0xe045, lo: 0xa8, hi: 0xaf},
+       {value: 0x0008, lo: 0xb0, hi: 0xb7},
+       {value: 0xe045, lo: 0xb8, hi: 0xbf},
+       // Block 0x48, offset 0x288
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0040, lo: 0x80, hi: 0x8f},
+       {value: 0x3318, lo: 0x90, hi: 0xb0},
+       {value: 0x0040, lo: 0xb1, hi: 0xbf},
+       // Block 0x49, offset 0x28c
+       {value: 0x0000, lo: 0x08},
+       {value: 0x0018, lo: 0x80, hi: 0x82},
+       {value: 0x0040, lo: 0x83, hi: 0x83},
+       {value: 0x0008, lo: 0x84, hi: 0x84},
+       {value: 0x0018, lo: 0x85, hi: 0x88},
+       {value: 0x24c1, lo: 0x89, hi: 0x89},
+       {value: 0x0018, lo: 0x8a, hi: 0x8b},
+       {value: 0x0040, lo: 0x8c, hi: 0x8f},
+       {value: 0x0018, lo: 0x90, hi: 0xbf},
+       // Block 0x4a, offset 0x295
+       {value: 0x0000, lo: 0x07},
+       {value: 0x0018, lo: 0x80, hi: 0xab},
+       {value: 0x24f1, lo: 0xac, hi: 0xac},
+       {value: 0x2529, lo: 0xad, hi: 0xad},
+       {value: 0x0018, lo: 0xae, hi: 0xae},
+       {value: 0x2579, lo: 0xaf, hi: 0xaf},
+       {value: 0x25b1, lo: 0xb0, hi: 0xb0},
+       {value: 0x0018, lo: 0xb1, hi: 0xbf},
+       // Block 0x4b, offset 0x29d
+       {value: 0x0000, lo: 0x05},
+       {value: 0x0018, lo: 0x80, hi: 0x9f},
+       {value: 0x0080, lo: 0xa0, hi: 0xa0},
+       {value: 0x0018, lo: 0xa1, hi: 0xad},
+       {value: 0x0080, lo: 0xae, hi: 0xaf},
+       {value: 0x0018, lo: 0xb0, hi: 0xbf},
+       // Block 0x4c, offset 0x2a3
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0018, lo: 0x80, hi: 0xa8},
+       {value: 0x09c5, lo: 0xa9, hi: 0xa9},
+       {value: 0x09e5, lo: 0xaa, hi: 0xaa},
+       {value: 0x0018, lo: 0xab, hi: 0xbf},
+       // Block 0x4d, offset 0x2a8
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0018, lo: 0x80, hi: 0xa6},
+       {value: 0x0040, lo: 0xa7, hi: 0xbf},
+       // Block 0x4e, offset 0x2ab
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0018, lo: 0x80, hi: 0x8b},
+       {value: 0x28c1, lo: 0x8c, hi: 0x8c},
+       {value: 0x0018, lo: 0x8d, hi: 0xbf},
+       // Block 0x4f, offset 0x2af
+       {value: 0x0000, lo: 0x05},
+       {value: 0x0018, lo: 0x80, hi: 0xb3},
+       {value: 0x0e66, lo: 0xb4, hi: 0xb4},
+       {value: 0x292a, lo: 0xb5, hi: 0xb5},
+       {value: 0x0e86, lo: 0xb6, hi: 0xb6},
+       {value: 0x0018, lo: 0xb7, hi: 0xbf},
+       // Block 0x50, offset 0x2b5
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0018, lo: 0x80, hi: 0x9b},
+       {value: 0x2941, lo: 0x9c, hi: 0x9c},
+       {value: 0x0018, lo: 0x9d, hi: 0xbf},
+       // Block 0x51, offset 0x2b9
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0018, lo: 0x80, hi: 0xb3},
+       {value: 0x0040, lo: 0xb4, hi: 0xb5},
+       {value: 0x0018, lo: 0xb6, hi: 0xbf},
+       // Block 0x52, offset 0x2bd
+       {value: 0x0000, lo: 0x05},
+       {value: 0x0018, lo: 0x80, hi: 0x95},
+       {value: 0x0040, lo: 0x96, hi: 0x97},
+       {value: 0x0018, lo: 0x98, hi: 0xb9},
+       {value: 0x0040, lo: 0xba, hi: 0xbc},
+       {value: 0x0018, lo: 0xbd, hi: 0xbf},
+       // Block 0x53, offset 0x2c3
+       {value: 0x0000, lo: 0x06},
+       {value: 0x0018, lo: 0x80, hi: 0x88},
+       {value: 0x0040, lo: 0x89, hi: 0x89},
+       {value: 0x0018, lo: 0x8a, hi: 0x92},
+       {value: 0x0040, lo: 0x93, hi: 0xab},
+       {value: 0x0018, lo: 0xac, hi: 0xaf},
+       {value: 0x0040, lo: 0xb0, hi: 0xbf},
+       // Block 0x54, offset 0x2ca
+       {value: 0x0000, lo: 0x05},
+       {value: 0xe185, lo: 0x80, hi: 0x8f},
+       {value: 0x03f5, lo: 0x90, hi: 0x9f},
+       {value: 0x0ea5, lo: 0xa0, hi: 0xae},
+       {value: 0x0040, lo: 0xaf, hi: 0xaf},
+       {value: 0x0008, lo: 0xb0, hi: 0xbf},
+       // Block 0x55, offset 0x2d0
+       {value: 0x0000, lo: 0x07},
+       {value: 0x0008, lo: 0x80, hi: 0xa5},
+       {value: 0x0040, lo: 0xa6, hi: 0xa6},
+       {value: 0x0008, lo: 0xa7, hi: 0xa7},
+       {value: 0x0040, lo: 0xa8, hi: 0xac},
+       {value: 0x0008, lo: 0xad, hi: 0xad},
+       {value: 0x0040, lo: 0xae, hi: 0xaf},
+       {value: 0x0008, lo: 0xb0, hi: 0xbf},
+       // Block 0x56, offset 0x2d8
+       {value: 0x0000, lo: 0x06},
+       {value: 0x0008, lo: 0x80, hi: 0xa7},
+       {value: 0x0040, lo: 0xa8, hi: 0xae},
+       {value: 0xe075, lo: 0xaf, hi: 0xaf},
+       {value: 0x0018, lo: 0xb0, hi: 0xb0},
+       {value: 0x0040, lo: 0xb1, hi: 0xbe},
+       {value: 0x3b08, lo: 0xbf, hi: 0xbf},
+       // Block 0x57, offset 0x2df
+       {value: 0x0000, lo: 0x0a},
+       {value: 0x0008, lo: 0x80, hi: 0x96},
+       {value: 0x0040, lo: 0x97, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xa6},
+       {value: 0x0040, lo: 0xa7, hi: 0xa7},
+       {value: 0x0008, lo: 0xa8, hi: 0xae},
+       {value: 0x0040, lo: 0xaf, hi: 0xaf},
+       {value: 0x0008, lo: 0xb0, hi: 0xb6},
+       {value: 0x0040, lo: 0xb7, hi: 0xb7},
+       {value: 0x0008, lo: 0xb8, hi: 0xbe},
+       {value: 0x0040, lo: 0xbf, hi: 0xbf},
+       // Block 0x58, offset 0x2ea
+       {value: 0x0000, lo: 0x09},
+       {value: 0x0008, lo: 0x80, hi: 0x86},
+       {value: 0x0040, lo: 0x87, hi: 0x87},
+       {value: 0x0008, lo: 0x88, hi: 0x8e},
+       {value: 0x0040, lo: 0x8f, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x96},
+       {value: 0x0040, lo: 0x97, hi: 0x97},
+       {value: 0x0008, lo: 0x98, hi: 0x9e},
+       {value: 0x0040, lo: 0x9f, hi: 0x9f},
+       {value: 0x3308, lo: 0xa0, hi: 0xbf},
+       // Block 0x59, offset 0x2f4
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0018, lo: 0x80, hi: 0xae},
+       {value: 0x0008, lo: 0xaf, hi: 0xaf},
+       {value: 0x0018, lo: 0xb0, hi: 0xbf},
+       // Block 0x5a, offset 0x2f8
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0018, lo: 0x80, hi: 0x89},
+       {value: 0x0040, lo: 0x8a, hi: 0xbf},
+       // Block 0x5b, offset 0x2fb
+       {value: 0x0000, lo: 0x05},
+       {value: 0x0018, lo: 0x80, hi: 0x99},
+       {value: 0x0040, lo: 0x9a, hi: 0x9a},
+       {value: 0x0018, lo: 0x9b, hi: 0x9e},
+       {value: 0x0edd, lo: 0x9f, hi: 0x9f},
+       {value: 0x0018, lo: 0xa0, hi: 0xbf},
+       // Block 0x5c, offset 0x301
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0018, lo: 0x80, hi: 0xb2},
+       {value: 0x0efd, lo: 0xb3, hi: 0xb3},
+       {value: 0x0040, lo: 0xb4, hi: 0xbf},
+       // Block 0x5d, offset 0x305
+       {value: 0x0020, lo: 0x01},
+       {value: 0x0f1d, lo: 0x80, hi: 0xbf},
+       // Block 0x5e, offset 0x307
+       {value: 0x0020, lo: 0x02},
+       {value: 0x171d, lo: 0x80, hi: 0x8f},
+       {value: 0x18fd, lo: 0x90, hi: 0xbf},
+       // Block 0x5f, offset 0x30a
+       {value: 0x0020, lo: 0x01},
+       {value: 0x1efd, lo: 0x80, hi: 0xbf},
+       // Block 0x60, offset 0x30c
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0040, lo: 0x80, hi: 0x80},
+       {value: 0x0008, lo: 0x81, hi: 0xbf},
+       // Block 0x61, offset 0x30f
+       {value: 0x0000, lo: 0x09},
+       {value: 0x0008, lo: 0x80, hi: 0x96},
+       {value: 0x0040, lo: 0x97, hi: 0x98},
+       {value: 0x3308, lo: 0x99, hi: 0x9a},
+       {value: 0x29e2, lo: 0x9b, hi: 0x9b},
+       {value: 0x2a0a, lo: 0x9c, hi: 0x9c},
+       {value: 0x0008, lo: 0x9d, hi: 0x9e},
+       {value: 0x2a31, lo: 0x9f, hi: 0x9f},
+       {value: 0x0018, lo: 0xa0, hi: 0xa0},
+       {value: 0x0008, lo: 0xa1, hi: 0xbf},
+       // Block 0x62, offset 0x319
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0008, lo: 0x80, hi: 0xbe},
+       {value: 0x2a69, lo: 0xbf, hi: 0xbf},
+       // Block 0x63, offset 0x31c
+       {value: 0x0000, lo: 0x0e},
+       {value: 0x0040, lo: 0x80, hi: 0x84},
+       {value: 0x0008, lo: 0x85, hi: 0xae},
+       {value: 0x0040, lo: 0xaf, hi: 0xb0},
+       {value: 0x2a1d, lo: 0xb1, hi: 0xb1},
+       {value: 0x2a3d, lo: 0xb2, hi: 0xb2},
+       {value: 0x2a5d, lo: 0xb3, hi: 0xb3},
+       {value: 0x2a7d, lo: 0xb4, hi: 0xb4},
+       {value: 0x2a5d, lo: 0xb5, hi: 0xb5},
+       {value: 0x2a9d, lo: 0xb6, hi: 0xb6},
+       {value: 0x2abd, lo: 0xb7, hi: 0xb7},
+       {value: 0x2add, lo: 0xb8, hi: 0xb9},
+       {value: 0x2afd, lo: 0xba, hi: 0xbb},
+       {value: 0x2b1d, lo: 0xbc, hi: 0xbd},
+       {value: 0x2afd, lo: 0xbe, hi: 0xbf},
+       // Block 0x64, offset 0x32b
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0018, lo: 0x80, hi: 0xa3},
+       {value: 0x0040, lo: 0xa4, hi: 0xaf},
+       {value: 0x0008, lo: 0xb0, hi: 0xbf},
+       // Block 0x65, offset 0x32f
+       {value: 0x0030, lo: 0x04},
+       {value: 0x2aa2, lo: 0x80, hi: 0x9d},
+       {value: 0x305a, lo: 0x9e, hi: 0x9e},
+       {value: 0x0040, lo: 0x9f, hi: 0x9f},
+       {value: 0x30a2, lo: 0xa0, hi: 0xbf},
+       // Block 0x66, offset 0x334
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0008, lo: 0x80, hi: 0xaa},
+       {value: 0x0040, lo: 0xab, hi: 0xbf},
+       // Block 0x67, offset 0x337
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0008, lo: 0x80, hi: 0x8c},
+       {value: 0x0040, lo: 0x8d, hi: 0x8f},
+       {value: 0x0018, lo: 0x90, hi: 0xbf},
+       // Block 0x68, offset 0x33b
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0018, lo: 0x80, hi: 0x86},
+       {value: 0x0040, lo: 0x87, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0xbd},
+       {value: 0x0018, lo: 0xbe, hi: 0xbf},
+       // Block 0x69, offset 0x340
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0008, lo: 0x80, hi: 0x8c},
+       {value: 0x0018, lo: 0x8d, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0xab},
+       {value: 0x0040, lo: 0xac, hi: 0xbf},
+       // Block 0x6a, offset 0x345
+       {value: 0x0000, lo: 0x05},
+       {value: 0x0008, lo: 0x80, hi: 0xa5},
+       {value: 0x0018, lo: 0xa6, hi: 0xaf},
+       {value: 0x3308, lo: 0xb0, hi: 0xb1},
+       {value: 0x0018, lo: 0xb2, hi: 0xb7},
+       {value: 0x0040, lo: 0xb8, hi: 0xbf},
+       // Block 0x6b, offset 0x34b
+       {value: 0x0000, lo: 0x05},
+       {value: 0x0040, lo: 0x80, hi: 0xb6},
+       {value: 0x0008, lo: 0xb7, hi: 0xb7},
+       {value: 0x2009, lo: 0xb8, hi: 0xb8},
+       {value: 0x6e89, lo: 0xb9, hi: 0xb9},
+       {value: 0x0008, lo: 0xba, hi: 0xbf},
+       // Block 0x6c, offset 0x351
+       {value: 0x0000, lo: 0x0e},
+       {value: 0x0008, lo: 0x80, hi: 0x81},
+       {value: 0x3308, lo: 0x82, hi: 0x82},
+       {value: 0x0008, lo: 0x83, hi: 0x85},
+       {value: 0x3b08, lo: 0x86, hi: 0x86},
+       {value: 0x0008, lo: 0x87, hi: 0x8a},
+       {value: 0x3308, lo: 0x8b, hi: 0x8b},
+       {value: 0x0008, lo: 0x8c, hi: 0xa2},
+       {value: 0x3008, lo: 0xa3, hi: 0xa4},
+       {value: 0x3308, lo: 0xa5, hi: 0xa6},
+       {value: 0x3008, lo: 0xa7, hi: 0xa7},
+       {value: 0x0018, lo: 0xa8, hi: 0xab},
+       {value: 0x0040, lo: 0xac, hi: 0xaf},
+       {value: 0x0018, lo: 0xb0, hi: 0xb9},
+       {value: 0x0040, lo: 0xba, hi: 0xbf},
+       // Block 0x6d, offset 0x360
+       {value: 0x0000, lo: 0x05},
+       {value: 0x0208, lo: 0x80, hi: 0xb1},
+       {value: 0x0108, lo: 0xb2, hi: 0xb2},
+       {value: 0x0008, lo: 0xb3, hi: 0xb3},
+       {value: 0x0018, lo: 0xb4, hi: 0xb7},
+       {value: 0x0040, lo: 0xb8, hi: 0xbf},
+       // Block 0x6e, offset 0x366
+       {value: 0x0000, lo: 0x03},
+       {value: 0x3008, lo: 0x80, hi: 0x81},
+       {value: 0x0008, lo: 0x82, hi: 0xb3},
+       {value: 0x3008, lo: 0xb4, hi: 0xbf},
+       // Block 0x6f, offset 0x36a
+       {value: 0x0000, lo: 0x0e},
+       {value: 0x3008, lo: 0x80, hi: 0x83},
+       {value: 0x3b08, lo: 0x84, hi: 0x84},
+       {value: 0x3308, lo: 0x85, hi: 0x85},
+       {value: 0x0040, lo: 0x86, hi: 0x8d},
+       {value: 0x0018, lo: 0x8e, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x99},
+       {value: 0x0040, lo: 0x9a, hi: 0x9f},
+       {value: 0x3308, lo: 0xa0, hi: 0xb1},
+       {value: 0x0008, lo: 0xb2, hi: 0xb7},
+       {value: 0x0018, lo: 0xb8, hi: 0xba},
+       {value: 0x0008, lo: 0xbb, hi: 0xbb},
+       {value: 0x0018, lo: 0xbc, hi: 0xbc},
+       {value: 0x0008, lo: 0xbd, hi: 0xbd},
+       {value: 0x0040, lo: 0xbe, hi: 0xbf},
+       // Block 0x70, offset 0x379
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0008, lo: 0x80, hi: 0xa5},
+       {value: 0x3308, lo: 0xa6, hi: 0xad},
+       {value: 0x0018, lo: 0xae, hi: 0xaf},
+       {value: 0x0008, lo: 0xb0, hi: 0xbf},
+       // Block 0x71, offset 0x37e
+       {value: 0x0000, lo: 0x07},
+       {value: 0x0008, lo: 0x80, hi: 0x86},
+       {value: 0x3308, lo: 0x87, hi: 0x91},
+       {value: 0x3008, lo: 0x92, hi: 0x92},
+       {value: 0x3808, lo: 0x93, hi: 0x93},
+       {value: 0x0040, lo: 0x94, hi: 0x9e},
+       {value: 0x0018, lo: 0x9f, hi: 0xbc},
+       {value: 0x0040, lo: 0xbd, hi: 0xbf},
+       // Block 0x72, offset 0x386
+       {value: 0x0000, lo: 0x09},
+       {value: 0x3308, lo: 0x80, hi: 0x82},
+       {value: 0x3008, lo: 0x83, hi: 0x83},
+       {value: 0x0008, lo: 0x84, hi: 0xb2},
+       {value: 0x3308, lo: 0xb3, hi: 0xb3},
+       {value: 0x3008, lo: 0xb4, hi: 0xb5},
+       {value: 0x3308, lo: 0xb6, hi: 0xb9},
+       {value: 0x3008, lo: 0xba, hi: 0xbb},
+       {value: 0x3308, lo: 0xbc, hi: 0xbc},
+       {value: 0x3008, lo: 0xbd, hi: 0xbf},
+       // Block 0x73, offset 0x390
+       {value: 0x0000, lo: 0x0a},
+       {value: 0x3808, lo: 0x80, hi: 0x80},
+       {value: 0x0018, lo: 0x81, hi: 0x8d},
+       {value: 0x0040, lo: 0x8e, hi: 0x8e},
+       {value: 0x0008, lo: 0x8f, hi: 0x99},
+       {value: 0x0040, lo: 0x9a, hi: 0x9d},
+       {value: 0x0018, lo: 0x9e, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xa4},
+       {value: 0x3308, lo: 0xa5, hi: 0xa5},
+       {value: 0x0008, lo: 0xa6, hi: 0xbe},
+       {value: 0x0040, lo: 0xbf, hi: 0xbf},
+       // Block 0x74, offset 0x39b
+       {value: 0x0000, lo: 0x07},
+       {value: 0x0008, lo: 0x80, hi: 0xa8},
+       {value: 0x3308, lo: 0xa9, hi: 0xae},
+       {value: 0x3008, lo: 0xaf, hi: 0xb0},
+       {value: 0x3308, lo: 0xb1, hi: 0xb2},
+       {value: 0x3008, lo: 0xb3, hi: 0xb4},
+       {value: 0x3308, lo: 0xb5, hi: 0xb6},
+       {value: 0x0040, lo: 0xb7, hi: 0xbf},
+       // Block 0x75, offset 0x3a3
+       {value: 0x0000, lo: 0x10},
+       {value: 0x0008, lo: 0x80, hi: 0x82},
+       {value: 0x3308, lo: 0x83, hi: 0x83},
+       {value: 0x0008, lo: 0x84, hi: 0x8b},
+       {value: 0x3308, lo: 0x8c, hi: 0x8c},
+       {value: 0x3008, lo: 0x8d, hi: 0x8d},
+       {value: 0x0040, lo: 0x8e, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x99},
+       {value: 0x0040, lo: 0x9a, hi: 0x9b},
+       {value: 0x0018, lo: 0x9c, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xb6},
+       {value: 0x0018, lo: 0xb7, hi: 0xb9},
+       {value: 0x0008, lo: 0xba, hi: 0xba},
+       {value: 0x3008, lo: 0xbb, hi: 0xbb},
+       {value: 0x3308, lo: 0xbc, hi: 0xbc},
+       {value: 0x3008, lo: 0xbd, hi: 0xbd},
+       {value: 0x0008, lo: 0xbe, hi: 0xbf},
+       // Block 0x76, offset 0x3b4
+       {value: 0x0000, lo: 0x08},
+       {value: 0x0008, lo: 0x80, hi: 0xaf},
+       {value: 0x3308, lo: 0xb0, hi: 0xb0},
+       {value: 0x0008, lo: 0xb1, hi: 0xb1},
+       {value: 0x3308, lo: 0xb2, hi: 0xb4},
+       {value: 0x0008, lo: 0xb5, hi: 0xb6},
+       {value: 0x3308, lo: 0xb7, hi: 0xb8},
+       {value: 0x0008, lo: 0xb9, hi: 0xbd},
+       {value: 0x3308, lo: 0xbe, hi: 0xbf},
+       // Block 0x77, offset 0x3bd
+       {value: 0x0000, lo: 0x0f},
+       {value: 0x0008, lo: 0x80, hi: 0x80},
+       {value: 0x3308, lo: 0x81, hi: 0x81},
+       {value: 0x0008, lo: 0x82, hi: 0x82},
+       {value: 0x0040, lo: 0x83, hi: 0x9a},
+       {value: 0x0008, lo: 0x9b, hi: 0x9d},
+       {value: 0x0018, lo: 0x9e, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xaa},
+       {value: 0x3008, lo: 0xab, hi: 0xab},
+       {value: 0x3308, lo: 0xac, hi: 0xad},
+       {value: 0x3008, lo: 0xae, hi: 0xaf},
+       {value: 0x0018, lo: 0xb0, hi: 0xb1},
+       {value: 0x0008, lo: 0xb2, hi: 0xb4},
+       {value: 0x3008, lo: 0xb5, hi: 0xb5},
+       {value: 0x3b08, lo: 0xb6, hi: 0xb6},
+       {value: 0x0040, lo: 0xb7, hi: 0xbf},
+       // Block 0x78, offset 0x3cd
+       {value: 0x0000, lo: 0x0c},
+       {value: 0x0040, lo: 0x80, hi: 0x80},
+       {value: 0x0008, lo: 0x81, hi: 0x86},
+       {value: 0x0040, lo: 0x87, hi: 0x88},
+       {value: 0x0008, lo: 0x89, hi: 0x8e},
+       {value: 0x0040, lo: 0x8f, hi: 0x90},
+       {value: 0x0008, lo: 0x91, hi: 0x96},
+       {value: 0x0040, lo: 0x97, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xa6},
+       {value: 0x0040, lo: 0xa7, hi: 0xa7},
+       {value: 0x0008, lo: 0xa8, hi: 0xae},
+       {value: 0x0040, lo: 0xaf, hi: 0xaf},
+       {value: 0x0008, lo: 0xb0, hi: 0xbf},
+       // Block 0x79, offset 0x3da
+       {value: 0x0000, lo: 0x09},
+       {value: 0x0008, lo: 0x80, hi: 0x9a},
+       {value: 0x0018, lo: 0x9b, hi: 0x9b},
+       {value: 0x4465, lo: 0x9c, hi: 0x9c},
+       {value: 0x447d, lo: 0x9d, hi: 0x9d},
+       {value: 0x2971, lo: 0x9e, hi: 0x9e},
+       {value: 0xe06d, lo: 0x9f, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xa5},
+       {value: 0x0040, lo: 0xa6, hi: 0xaf},
+       {value: 0x4495, lo: 0xb0, hi: 0xbf},
+       // Block 0x7a, offset 0x3e4
+       {value: 0x0000, lo: 0x04},
+       {value: 0x44b5, lo: 0x80, hi: 0x8f},
+       {value: 0x44d5, lo: 0x90, hi: 0x9f},
+       {value: 0x44f5, lo: 0xa0, hi: 0xaf},
+       {value: 0x44d5, lo: 0xb0, hi: 0xbf},
+       // Block 0x7b, offset 0x3e9
+       {value: 0x0000, lo: 0x0c},
+       {value: 0x0008, lo: 0x80, hi: 0xa2},
+       {value: 0x3008, lo: 0xa3, hi: 0xa4},
+       {value: 0x3308, lo: 0xa5, hi: 0xa5},
+       {value: 0x3008, lo: 0xa6, hi: 0xa7},
+       {value: 0x3308, lo: 0xa8, hi: 0xa8},
+       {value: 0x3008, lo: 0xa9, hi: 0xaa},
+       {value: 0x0018, lo: 0xab, hi: 0xab},
+       {value: 0x3008, lo: 0xac, hi: 0xac},
+       {value: 0x3b08, lo: 0xad, hi: 0xad},
+       {value: 0x0040, lo: 0xae, hi: 0xaf},
+       {value: 0x0008, lo: 0xb0, hi: 0xb9},
+       {value: 0x0040, lo: 0xba, hi: 0xbf},
+       // Block 0x7c, offset 0x3f6
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0008, lo: 0x80, hi: 0xa3},
+       {value: 0x0040, lo: 0xa4, hi: 0xaf},
+       {value: 0x0018, lo: 0xb0, hi: 0xbf},
+       // Block 0x7d, offset 0x3fa
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0018, lo: 0x80, hi: 0x86},
+       {value: 0x0040, lo: 0x87, hi: 0x8a},
+       {value: 0x0018, lo: 0x8b, hi: 0xbb},
+       {value: 0x0040, lo: 0xbc, hi: 0xbf},
+       // Block 0x7e, offset 0x3ff
+       {value: 0x0020, lo: 0x01},
+       {value: 0x4515, lo: 0x80, hi: 0xbf},
+       // Block 0x7f, offset 0x401
+       {value: 0x0020, lo: 0x03},
+       {value: 0x4d15, lo: 0x80, hi: 0x94},
+       {value: 0x4ad5, lo: 0x95, hi: 0x95},
+       {value: 0x4fb5, lo: 0x96, hi: 0xbf},
+       // Block 0x80, offset 0x405
+       {value: 0x0020, lo: 0x01},
+       {value: 0x54f5, lo: 0x80, hi: 0xbf},
+       // Block 0x81, offset 0x407
+       {value: 0x0020, lo: 0x03},
+       {value: 0x5cf5, lo: 0x80, hi: 0x84},
+       {value: 0x5655, lo: 0x85, hi: 0x85},
+       {value: 0x5d95, lo: 0x86, hi: 0xbf},
+       // Block 0x82, offset 0x40b
+       {value: 0x0020, lo: 0x08},
+       {value: 0x6b55, lo: 0x80, hi: 0x8f},
+       {value: 0x6d15, lo: 0x90, hi: 0x90},
+       {value: 0x6d55, lo: 0x91, hi: 0xab},
+       {value: 0x6ea1, lo: 0xac, hi: 0xac},
+       {value: 0x70b5, lo: 0xad, hi: 0xad},
+       {value: 0x0040, lo: 0xae, hi: 0xae},
+       {value: 0x0040, lo: 0xaf, hi: 0xaf},
+       {value: 0x70d5, lo: 0xb0, hi: 0xbf},
+       // Block 0x83, offset 0x414
+       {value: 0x0020, lo: 0x05},
+       {value: 0x72d5, lo: 0x80, hi: 0xad},
+       {value: 0x6535, lo: 0xae, hi: 0xae},
+       {value: 0x7895, lo: 0xaf, hi: 0xb5},
+       {value: 0x6f55, lo: 0xb6, hi: 0xb6},
+       {value: 0x7975, lo: 0xb7, hi: 0xbf},
+       // Block 0x84, offset 0x41a
+       {value: 0x0028, lo: 0x03},
+       {value: 0x7c21, lo: 0x80, hi: 0x82},
+       {value: 0x7be1, lo: 0x83, hi: 0x83},
+       {value: 0x7c99, lo: 0x84, hi: 0xbf},
+       // Block 0x85, offset 0x41e
+       {value: 0x0038, lo: 0x0f},
+       {value: 0x9db1, lo: 0x80, hi: 0x83},
+       {value: 0x9e59, lo: 0x84, hi: 0x85},
+       {value: 0x9e91, lo: 0x86, hi: 0x87},
+       {value: 0x9ec9, lo: 0x88, hi: 0x8f},
+       {value: 0x0040, lo: 0x90, hi: 0x90},
+       {value: 0x0040, lo: 0x91, hi: 0x91},
+       {value: 0xa089, lo: 0x92, hi: 0x97},
+       {value: 0xa1a1, lo: 0x98, hi: 0x9c},
+       {value: 0xa281, lo: 0x9d, hi: 0xb3},
+       {value: 0x9d41, lo: 0xb4, hi: 0xb4},
+       {value: 0x9db1, lo: 0xb5, hi: 0xb5},
+       {value: 0xa789, lo: 0xb6, hi: 0xbb},
+       {value: 0xa869, lo: 0xbc, hi: 0xbc},
+       {value: 0xa7f9, lo: 0xbd, hi: 0xbd},
+       {value: 0xa8d9, lo: 0xbe, hi: 0xbf},
+       // Block 0x86, offset 0x42e
+       {value: 0x0000, lo: 0x09},
+       {value: 0x0008, lo: 0x80, hi: 0x8b},
+       {value: 0x0040, lo: 0x8c, hi: 0x8c},
+       {value: 0x0008, lo: 0x8d, hi: 0xa6},
+       {value: 0x0040, lo: 0xa7, hi: 0xa7},
+       {value: 0x0008, lo: 0xa8, hi: 0xba},
+       {value: 0x0040, lo: 0xbb, hi: 0xbb},
+       {value: 0x0008, lo: 0xbc, hi: 0xbd},
+       {value: 0x0040, lo: 0xbe, hi: 0xbe},
+       {value: 0x0008, lo: 0xbf, hi: 0xbf},
+       // Block 0x87, offset 0x438
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0008, lo: 0x80, hi: 0x8d},
+       {value: 0x0040, lo: 0x8e, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x9d},
+       {value: 0x0040, lo: 0x9e, hi: 0xbf},
+       // Block 0x88, offset 0x43d
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0008, lo: 0x80, hi: 0xba},
+       {value: 0x0040, lo: 0xbb, hi: 0xbf},
+       // Block 0x89, offset 0x440
+       {value: 0x0000, lo: 0x05},
+       {value: 0x0018, lo: 0x80, hi: 0x82},
+       {value: 0x0040, lo: 0x83, hi: 0x86},
+       {value: 0x0018, lo: 0x87, hi: 0xb3},
+       {value: 0x0040, lo: 0xb4, hi: 0xb6},
+       {value: 0x0018, lo: 0xb7, hi: 0xbf},
+       // Block 0x8a, offset 0x446
+       {value: 0x0000, lo: 0x06},
+       {value: 0x0018, lo: 0x80, hi: 0x8e},
+       {value: 0x0040, lo: 0x8f, hi: 0x8f},
+       {value: 0x0018, lo: 0x90, hi: 0x9b},
+       {value: 0x0040, lo: 0x9c, hi: 0x9f},
+       {value: 0x0018, lo: 0xa0, hi: 0xa0},
+       {value: 0x0040, lo: 0xa1, hi: 0xbf},
+       // Block 0x8b, offset 0x44d
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0040, lo: 0x80, hi: 0x8f},
+       {value: 0x0018, lo: 0x90, hi: 0xbc},
+       {value: 0x3308, lo: 0xbd, hi: 0xbd},
+       {value: 0x0040, lo: 0xbe, hi: 0xbf},
+       // Block 0x8c, offset 0x452
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0008, lo: 0x80, hi: 0x9c},
+       {value: 0x0040, lo: 0x9d, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xbf},
+       // Block 0x8d, offset 0x456
+       {value: 0x0000, lo: 0x05},
+       {value: 0x0008, lo: 0x80, hi: 0x90},
+       {value: 0x0040, lo: 0x91, hi: 0x9f},
+       {value: 0x3308, lo: 0xa0, hi: 0xa0},
+       {value: 0x0018, lo: 0xa1, hi: 0xbb},
+       {value: 0x0040, lo: 0xbc, hi: 0xbf},
+       // Block 0x8e, offset 0x45c
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0008, lo: 0x80, hi: 0x9f},
+       {value: 0x0018, lo: 0xa0, hi: 0xa3},
+       {value: 0x0040, lo: 0xa4, hi: 0xac},
+       {value: 0x0008, lo: 0xad, hi: 0xbf},
+       // Block 0x8f, offset 0x461
+       {value: 0x0000, lo: 0x08},
+       {value: 0x0008, lo: 0x80, hi: 0x80},
+       {value: 0x0018, lo: 0x81, hi: 0x81},
+       {value: 0x0008, lo: 0x82, hi: 0x89},
+       {value: 0x0018, lo: 0x8a, hi: 0x8a},
+       {value: 0x0040, lo: 0x8b, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0xb5},
+       {value: 0x3308, lo: 0xb6, hi: 0xba},
+       {value: 0x0040, lo: 0xbb, hi: 0xbf},
+       // Block 0x90, offset 0x46a
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0008, lo: 0x80, hi: 0x9d},
+       {value: 0x0040, lo: 0x9e, hi: 0x9e},
+       {value: 0x0018, lo: 0x9f, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xbf},
+       // Block 0x91, offset 0x46f
+       {value: 0x0000, lo: 0x05},
+       {value: 0x0008, lo: 0x80, hi: 0x83},
+       {value: 0x0040, lo: 0x84, hi: 0x87},
+       {value: 0x0008, lo: 0x88, hi: 0x8f},
+       {value: 0x0018, lo: 0x90, hi: 0x95},
+       {value: 0x0040, lo: 0x96, hi: 0xbf},
+       // Block 0x92, offset 0x475
+       {value: 0x0000, lo: 0x06},
+       {value: 0xe145, lo: 0x80, hi: 0x87},
+       {value: 0xe1c5, lo: 0x88, hi: 0x8f},
+       {value: 0xe145, lo: 0x90, hi: 0x97},
+       {value: 0x8ad5, lo: 0x98, hi: 0x9f},
+       {value: 0x8aed, lo: 0xa0, hi: 0xa7},
+       {value: 0x0008, lo: 0xa8, hi: 0xbf},
+       // Block 0x93, offset 0x47c
+       {value: 0x0000, lo: 0x06},
+       {value: 0x0008, lo: 0x80, hi: 0x9d},
+       {value: 0x0040, lo: 0x9e, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xa9},
+       {value: 0x0040, lo: 0xaa, hi: 0xaf},
+       {value: 0x8aed, lo: 0xb0, hi: 0xb7},
+       {value: 0x8ad5, lo: 0xb8, hi: 0xbf},
+       // Block 0x94, offset 0x483
+       {value: 0x0000, lo: 0x06},
+       {value: 0xe145, lo: 0x80, hi: 0x87},
+       {value: 0xe1c5, lo: 0x88, hi: 0x8f},
+       {value: 0xe145, lo: 0x90, hi: 0x93},
+       {value: 0x0040, lo: 0x94, hi: 0x97},
+       {value: 0x0008, lo: 0x98, hi: 0xbb},
+       {value: 0x0040, lo: 0xbc, hi: 0xbf},
+       // Block 0x95, offset 0x48a
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0008, lo: 0x80, hi: 0xa7},
+       {value: 0x0040, lo: 0xa8, hi: 0xaf},
+       {value: 0x0008, lo: 0xb0, hi: 0xbf},
+       // Block 0x96, offset 0x48e
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0008, lo: 0x80, hi: 0xa3},
+       {value: 0x0040, lo: 0xa4, hi: 0xae},
+       {value: 0x0018, lo: 0xaf, hi: 0xaf},
+       {value: 0x0040, lo: 0xb0, hi: 0xbf},
+       // Block 0x97, offset 0x493
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0008, lo: 0x80, hi: 0xb6},
+       {value: 0x0040, lo: 0xb7, hi: 0xbf},
+       // Block 0x98, offset 0x496
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0008, lo: 0x80, hi: 0x95},
+       {value: 0x0040, lo: 0x96, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xa7},
+       {value: 0x0040, lo: 0xa8, hi: 0xbf},
+       // Block 0x99, offset 0x49b
+       {value: 0x0000, lo: 0x0b},
+       {value: 0x0808, lo: 0x80, hi: 0x85},
+       {value: 0x0040, lo: 0x86, hi: 0x87},
+       {value: 0x0808, lo: 0x88, hi: 0x88},
+       {value: 0x0040, lo: 0x89, hi: 0x89},
+       {value: 0x0808, lo: 0x8a, hi: 0xb5},
+       {value: 0x0040, lo: 0xb6, hi: 0xb6},
+       {value: 0x0808, lo: 0xb7, hi: 0xb8},
+       {value: 0x0040, lo: 0xb9, hi: 0xbb},
+       {value: 0x0808, lo: 0xbc, hi: 0xbc},
+       {value: 0x0040, lo: 0xbd, hi: 0xbe},
+       {value: 0x0808, lo: 0xbf, hi: 0xbf},
+       // Block 0x9a, offset 0x4a7
+       {value: 0x0000, lo: 0x05},
+       {value: 0x0808, lo: 0x80, hi: 0x95},
+       {value: 0x0040, lo: 0x96, hi: 0x96},
+       {value: 0x0818, lo: 0x97, hi: 0x9f},
+       {value: 0x0808, lo: 0xa0, hi: 0xb6},
+       {value: 0x0818, lo: 0xb7, hi: 0xbf},
+       // Block 0x9b, offset 0x4ad
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0808, lo: 0x80, hi: 0x9e},
+       {value: 0x0040, lo: 0x9f, hi: 0xa6},
+       {value: 0x0818, lo: 0xa7, hi: 0xaf},
+       {value: 0x0040, lo: 0xb0, hi: 0xbf},
+       // Block 0x9c, offset 0x4b2
+       {value: 0x0000, lo: 0x06},
+       {value: 0x0040, lo: 0x80, hi: 0x9f},
+       {value: 0x0808, lo: 0xa0, hi: 0xb2},
+       {value: 0x0040, lo: 0xb3, hi: 0xb3},
+       {value: 0x0808, lo: 0xb4, hi: 0xb5},
+       {value: 0x0040, lo: 0xb6, hi: 0xba},
+       {value: 0x0818, lo: 0xbb, hi: 0xbf},
+       // Block 0x9d, offset 0x4b9
+       {value: 0x0000, lo: 0x07},
+       {value: 0x0808, lo: 0x80, hi: 0x95},
+       {value: 0x0818, lo: 0x96, hi: 0x9b},
+       {value: 0x0040, lo: 0x9c, hi: 0x9e},
+       {value: 0x0018, lo: 0x9f, hi: 0x9f},
+       {value: 0x0808, lo: 0xa0, hi: 0xb9},
+       {value: 0x0040, lo: 0xba, hi: 0xbe},
+       {value: 0x0818, lo: 0xbf, hi: 0xbf},
+       // Block 0x9e, offset 0x4c1
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0808, lo: 0x80, hi: 0xb7},
+       {value: 0x0040, lo: 0xb8, hi: 0xbb},
+       {value: 0x0818, lo: 0xbc, hi: 0xbd},
+       {value: 0x0808, lo: 0xbe, hi: 0xbf},
+       // Block 0x9f, offset 0x4c6
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0818, lo: 0x80, hi: 0x8f},
+       {value: 0x0040, lo: 0x90, hi: 0x91},
+       {value: 0x0818, lo: 0x92, hi: 0xbf},
+       // Block 0xa0, offset 0x4ca
+       {value: 0x0000, lo: 0x0f},
+       {value: 0x0808, lo: 0x80, hi: 0x80},
+       {value: 0x3308, lo: 0x81, hi: 0x83},
+       {value: 0x0040, lo: 0x84, hi: 0x84},
+       {value: 0x3308, lo: 0x85, hi: 0x86},
+       {value: 0x0040, lo: 0x87, hi: 0x8b},
+       {value: 0x3308, lo: 0x8c, hi: 0x8f},
+       {value: 0x0808, lo: 0x90, hi: 0x93},
+       {value: 0x0040, lo: 0x94, hi: 0x94},
+       {value: 0x0808, lo: 0x95, hi: 0x97},
+       {value: 0x0040, lo: 0x98, hi: 0x98},
+       {value: 0x0808, lo: 0x99, hi: 0xb3},
+       {value: 0x0040, lo: 0xb4, hi: 0xb7},
+       {value: 0x3308, lo: 0xb8, hi: 0xba},
+       {value: 0x0040, lo: 0xbb, hi: 0xbe},
+       {value: 0x3b08, lo: 0xbf, hi: 0xbf},
+       // Block 0xa1, offset 0x4da
+       {value: 0x0000, lo: 0x06},
+       {value: 0x0818, lo: 0x80, hi: 0x87},
+       {value: 0x0040, lo: 0x88, hi: 0x8f},
+       {value: 0x0818, lo: 0x90, hi: 0x98},
+       {value: 0x0040, lo: 0x99, hi: 0x9f},
+       {value: 0x0808, lo: 0xa0, hi: 0xbc},
+       {value: 0x0818, lo: 0xbd, hi: 0xbf},
+       // Block 0xa2, offset 0x4e1
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0808, lo: 0x80, hi: 0x9c},
+       {value: 0x0818, lo: 0x9d, hi: 0x9f},
+       {value: 0x0040, lo: 0xa0, hi: 0xbf},
+       // Block 0xa3, offset 0x4e5
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0808, lo: 0x80, hi: 0xb5},
+       {value: 0x0040, lo: 0xb6, hi: 0xb8},
+       {value: 0x0018, lo: 0xb9, hi: 0xbf},
+       // Block 0xa4, offset 0x4e9
+       {value: 0x0000, lo: 0x06},
+       {value: 0x0808, lo: 0x80, hi: 0x95},
+       {value: 0x0040, lo: 0x96, hi: 0x97},
+       {value: 0x0818, lo: 0x98, hi: 0x9f},
+       {value: 0x0808, lo: 0xa0, hi: 0xb2},
+       {value: 0x0040, lo: 0xb3, hi: 0xb7},
+       {value: 0x0818, lo: 0xb8, hi: 0xbf},
+       // Block 0xa5, offset 0x4f0
+       {value: 0x0000, lo: 0x01},
+       {value: 0x0808, lo: 0x80, hi: 0xbf},
+       // Block 0xa6, offset 0x4f2
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0808, lo: 0x80, hi: 0x88},
+       {value: 0x0040, lo: 0x89, hi: 0xbf},
+       // Block 0xa7, offset 0x4f5
+       {value: 0x0000, lo: 0x02},
+       {value: 0x03dd, lo: 0x80, hi: 0xb2},
+       {value: 0x0040, lo: 0xb3, hi: 0xbf},
+       // Block 0xa8, offset 0x4f8
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0808, lo: 0x80, hi: 0xb2},
+       {value: 0x0040, lo: 0xb3, hi: 0xb9},
+       {value: 0x0818, lo: 0xba, hi: 0xbf},
+       // Block 0xa9, offset 0x4fc
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0040, lo: 0x80, hi: 0x9f},
+       {value: 0x0818, lo: 0xa0, hi: 0xbe},
+       {value: 0x0040, lo: 0xbf, hi: 0xbf},
+       // Block 0xaa, offset 0x500
+       {value: 0x0000, lo: 0x05},
+       {value: 0x3008, lo: 0x80, hi: 0x80},
+       {value: 0x3308, lo: 0x81, hi: 0x81},
+       {value: 0x3008, lo: 0x82, hi: 0x82},
+       {value: 0x0008, lo: 0x83, hi: 0xb7},
+       {value: 0x3308, lo: 0xb8, hi: 0xbf},
+       // Block 0xab, offset 0x506
+       {value: 0x0000, lo: 0x08},
+       {value: 0x3308, lo: 0x80, hi: 0x85},
+       {value: 0x3b08, lo: 0x86, hi: 0x86},
+       {value: 0x0018, lo: 0x87, hi: 0x8d},
+       {value: 0x0040, lo: 0x8e, hi: 0x91},
+       {value: 0x0018, lo: 0x92, hi: 0xa5},
+       {value: 0x0008, lo: 0xa6, hi: 0xaf},
+       {value: 0x0040, lo: 0xb0, hi: 0xbe},
+       {value: 0x3b08, lo: 0xbf, hi: 0xbf},
+       // Block 0xac, offset 0x50f
+       {value: 0x0000, lo: 0x0b},
+       {value: 0x3308, lo: 0x80, hi: 0x81},
+       {value: 0x3008, lo: 0x82, hi: 0x82},
+       {value: 0x0008, lo: 0x83, hi: 0xaf},
+       {value: 0x3008, lo: 0xb0, hi: 0xb2},
+       {value: 0x3308, lo: 0xb3, hi: 0xb6},
+       {value: 0x3008, lo: 0xb7, hi: 0xb8},
+       {value: 0x3b08, lo: 0xb9, hi: 0xb9},
+       {value: 0x3308, lo: 0xba, hi: 0xba},
+       {value: 0x0018, lo: 0xbb, hi: 0xbc},
+       {value: 0x0340, lo: 0xbd, hi: 0xbd},
+       {value: 0x0018, lo: 0xbe, hi: 0xbf},
+       // Block 0xad, offset 0x51b
+       {value: 0x0000, lo: 0x06},
+       {value: 0x0018, lo: 0x80, hi: 0x81},
+       {value: 0x0040, lo: 0x82, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0xa8},
+       {value: 0x0040, lo: 0xa9, hi: 0xaf},
+       {value: 0x0008, lo: 0xb0, hi: 0xb9},
+       {value: 0x0040, lo: 0xba, hi: 0xbf},
+       // Block 0xae, offset 0x522
+       {value: 0x0000, lo: 0x08},
+       {value: 0x3308, lo: 0x80, hi: 0x82},
+       {value: 0x0008, lo: 0x83, hi: 0xa6},
+       {value: 0x3308, lo: 0xa7, hi: 0xab},
+       {value: 0x3008, lo: 0xac, hi: 0xac},
+       {value: 0x3308, lo: 0xad, hi: 0xb2},
+       {value: 0x3b08, lo: 0xb3, hi: 0xb4},
+       {value: 0x0040, lo: 0xb5, hi: 0xb5},
+       {value: 0x0008, lo: 0xb6, hi: 0xbf},
+       // Block 0xaf, offset 0x52b
+       {value: 0x0000, lo: 0x07},
+       {value: 0x0018, lo: 0x80, hi: 0x83},
+       {value: 0x0040, lo: 0x84, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0xb2},
+       {value: 0x3308, lo: 0xb3, hi: 0xb3},
+       {value: 0x0018, lo: 0xb4, hi: 0xb5},
+       {value: 0x0008, lo: 0xb6, hi: 0xb6},
+       {value: 0x0040, lo: 0xb7, hi: 0xbf},
+       // Block 0xb0, offset 0x533
+       {value: 0x0000, lo: 0x06},
+       {value: 0x3308, lo: 0x80, hi: 0x81},
+       {value: 0x3008, lo: 0x82, hi: 0x82},
+       {value: 0x0008, lo: 0x83, hi: 0xb2},
+       {value: 0x3008, lo: 0xb3, hi: 0xb5},
+       {value: 0x3308, lo: 0xb6, hi: 0xbe},
+       {value: 0x3008, lo: 0xbf, hi: 0xbf},
+       // Block 0xb1, offset 0x53a
+       {value: 0x0000, lo: 0x0d},
+       {value: 0x3808, lo: 0x80, hi: 0x80},
+       {value: 0x0008, lo: 0x81, hi: 0x84},
+       {value: 0x0018, lo: 0x85, hi: 0x89},
+       {value: 0x3308, lo: 0x8a, hi: 0x8c},
+       {value: 0x0018, lo: 0x8d, hi: 0x8d},
+       {value: 0x0040, lo: 0x8e, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x9a},
+       {value: 0x0018, lo: 0x9b, hi: 0x9b},
+       {value: 0x0008, lo: 0x9c, hi: 0x9c},
+       {value: 0x0018, lo: 0x9d, hi: 0x9f},
+       {value: 0x0040, lo: 0xa0, hi: 0xa0},
+       {value: 0x0018, lo: 0xa1, hi: 0xb4},
+       {value: 0x0040, lo: 0xb5, hi: 0xbf},
+       // Block 0xb2, offset 0x548
+       {value: 0x0000, lo: 0x0c},
+       {value: 0x0008, lo: 0x80, hi: 0x91},
+       {value: 0x0040, lo: 0x92, hi: 0x92},
+       {value: 0x0008, lo: 0x93, hi: 0xab},
+       {value: 0x3008, lo: 0xac, hi: 0xae},
+       {value: 0x3308, lo: 0xaf, hi: 0xb1},
+       {value: 0x3008, lo: 0xb2, hi: 0xb3},
+       {value: 0x3308, lo: 0xb4, hi: 0xb4},
+       {value: 0x3808, lo: 0xb5, hi: 0xb5},
+       {value: 0x3308, lo: 0xb6, hi: 0xb7},
+       {value: 0x0018, lo: 0xb8, hi: 0xbd},
+       {value: 0x3308, lo: 0xbe, hi: 0xbe},
+       {value: 0x0040, lo: 0xbf, hi: 0xbf},
+       // Block 0xb3, offset 0x555
+       {value: 0x0000, lo: 0x0c},
+       {value: 0x0008, lo: 0x80, hi: 0x86},
+       {value: 0x0040, lo: 0x87, hi: 0x87},
+       {value: 0x0008, lo: 0x88, hi: 0x88},
+       {value: 0x0040, lo: 0x89, hi: 0x89},
+       {value: 0x0008, lo: 0x8a, hi: 0x8d},
+       {value: 0x0040, lo: 0x8e, hi: 0x8e},
+       {value: 0x0008, lo: 0x8f, hi: 0x9d},
+       {value: 0x0040, lo: 0x9e, hi: 0x9e},
+       {value: 0x0008, lo: 0x9f, hi: 0xa8},
+       {value: 0x0018, lo: 0xa9, hi: 0xa9},
+       {value: 0x0040, lo: 0xaa, hi: 0xaf},
+       {value: 0x0008, lo: 0xb0, hi: 0xbf},
+       // Block 0xb4, offset 0x562
+       {value: 0x0000, lo: 0x08},
+       {value: 0x0008, lo: 0x80, hi: 0x9e},
+       {value: 0x3308, lo: 0x9f, hi: 0x9f},
+       {value: 0x3008, lo: 0xa0, hi: 0xa2},
+       {value: 0x3308, lo: 0xa3, hi: 0xa9},
+       {value: 0x3b08, lo: 0xaa, hi: 0xaa},
+       {value: 0x0040, lo: 0xab, hi: 0xaf},
+       {value: 0x0008, lo: 0xb0, hi: 0xb9},
+       {value: 0x0040, lo: 0xba, hi: 0xbf},
+       // Block 0xb5, offset 0x56b
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0008, lo: 0x80, hi: 0xb4},
+       {value: 0x3008, lo: 0xb5, hi: 0xb7},
+       {value: 0x3308, lo: 0xb8, hi: 0xbf},
+       // Block 0xb6, offset 0x56f
+       {value: 0x0000, lo: 0x0d},
+       {value: 0x3008, lo: 0x80, hi: 0x81},
+       {value: 0x3b08, lo: 0x82, hi: 0x82},
+       {value: 0x3308, lo: 0x83, hi: 0x84},
+       {value: 0x3008, lo: 0x85, hi: 0x85},
+       {value: 0x3308, lo: 0x86, hi: 0x86},
+       {value: 0x0008, lo: 0x87, hi: 0x8a},
+       {value: 0x0018, lo: 0x8b, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x99},
+       {value: 0x0040, lo: 0x9a, hi: 0x9a},
+       {value: 0x0018, lo: 0x9b, hi: 0x9b},
+       {value: 0x0040, lo: 0x9c, hi: 0x9c},
+       {value: 0x0018, lo: 0x9d, hi: 0x9d},
+       {value: 0x0040, lo: 0x9e, hi: 0xbf},
+       // Block 0xb7, offset 0x57d
+       {value: 0x0000, lo: 0x07},
+       {value: 0x0008, lo: 0x80, hi: 0xaf},
+       {value: 0x3008, lo: 0xb0, hi: 0xb2},
+       {value: 0x3308, lo: 0xb3, hi: 0xb8},
+       {value: 0x3008, lo: 0xb9, hi: 0xb9},
+       {value: 0x3308, lo: 0xba, hi: 0xba},
+       {value: 0x3008, lo: 0xbb, hi: 0xbe},
+       {value: 0x3308, lo: 0xbf, hi: 0xbf},
+       // Block 0xb8, offset 0x585
+       {value: 0x0000, lo: 0x0a},
+       {value: 0x3308, lo: 0x80, hi: 0x80},
+       {value: 0x3008, lo: 0x81, hi: 0x81},
+       {value: 0x3b08, lo: 0x82, hi: 0x82},
+       {value: 0x3308, lo: 0x83, hi: 0x83},
+       {value: 0x0008, lo: 0x84, hi: 0x85},
+       {value: 0x0018, lo: 0x86, hi: 0x86},
+       {value: 0x0008, lo: 0x87, hi: 0x87},
+       {value: 0x0040, lo: 0x88, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x99},
+       {value: 0x0040, lo: 0x9a, hi: 0xbf},
+       // Block 0xb9, offset 0x590
+       {value: 0x0000, lo: 0x08},
+       {value: 0x0008, lo: 0x80, hi: 0xae},
+       {value: 0x3008, lo: 0xaf, hi: 0xb1},
+       {value: 0x3308, lo: 0xb2, hi: 0xb5},
+       {value: 0x0040, lo: 0xb6, hi: 0xb7},
+       {value: 0x3008, lo: 0xb8, hi: 0xbb},
+       {value: 0x3308, lo: 0xbc, hi: 0xbd},
+       {value: 0x3008, lo: 0xbe, hi: 0xbe},
+       {value: 0x3b08, lo: 0xbf, hi: 0xbf},
+       // Block 0xba, offset 0x599
+       {value: 0x0000, lo: 0x05},
+       {value: 0x3308, lo: 0x80, hi: 0x80},
+       {value: 0x0018, lo: 0x81, hi: 0x97},
+       {value: 0x0008, lo: 0x98, hi: 0x9b},
+       {value: 0x3308, lo: 0x9c, hi: 0x9d},
+       {value: 0x0040, lo: 0x9e, hi: 0xbf},
+       // Block 0xbb, offset 0x59f
+       {value: 0x0000, lo: 0x07},
+       {value: 0x0008, lo: 0x80, hi: 0xaf},
+       {value: 0x3008, lo: 0xb0, hi: 0xb2},
+       {value: 0x3308, lo: 0xb3, hi: 0xba},
+       {value: 0x3008, lo: 0xbb, hi: 0xbc},
+       {value: 0x3308, lo: 0xbd, hi: 0xbd},
+       {value: 0x3008, lo: 0xbe, hi: 0xbe},
+       {value: 0x3b08, lo: 0xbf, hi: 0xbf},
+       // Block 0xbc, offset 0x5a7
+       {value: 0x0000, lo: 0x08},
+       {value: 0x3308, lo: 0x80, hi: 0x80},
+       {value: 0x0018, lo: 0x81, hi: 0x83},
+       {value: 0x0008, lo: 0x84, hi: 0x84},
+       {value: 0x0040, lo: 0x85, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x99},
+       {value: 0x0040, lo: 0x9a, hi: 0x9f},
+       {value: 0x0018, lo: 0xa0, hi: 0xac},
+       {value: 0x0040, lo: 0xad, hi: 0xbf},
+       // Block 0xbd, offset 0x5b0
+       {value: 0x0000, lo: 0x09},
+       {value: 0x0008, lo: 0x80, hi: 0xaa},
+       {value: 0x3308, lo: 0xab, hi: 0xab},
+       {value: 0x3008, lo: 0xac, hi: 0xac},
+       {value: 0x3308, lo: 0xad, hi: 0xad},
+       {value: 0x3008, lo: 0xae, hi: 0xaf},
+       {value: 0x3308, lo: 0xb0, hi: 0xb5},
+       {value: 0x3808, lo: 0xb6, hi: 0xb6},
+       {value: 0x3308, lo: 0xb7, hi: 0xb7},
+       {value: 0x0040, lo: 0xb8, hi: 0xbf},
+       // Block 0xbe, offset 0x5ba
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0008, lo: 0x80, hi: 0x89},
+       {value: 0x0040, lo: 0x8a, hi: 0xbf},
+       // Block 0xbf, offset 0x5bd
+       {value: 0x0000, lo: 0x0b},
+       {value: 0x0008, lo: 0x80, hi: 0x99},
+       {value: 0x0040, lo: 0x9a, hi: 0x9c},
+       {value: 0x3308, lo: 0x9d, hi: 0x9f},
+       {value: 0x3008, lo: 0xa0, hi: 0xa1},
+       {value: 0x3308, lo: 0xa2, hi: 0xa5},
+       {value: 0x3008, lo: 0xa6, hi: 0xa6},
+       {value: 0x3308, lo: 0xa7, hi: 0xaa},
+       {value: 0x3b08, lo: 0xab, hi: 0xab},
+       {value: 0x0040, lo: 0xac, hi: 0xaf},
+       {value: 0x0008, lo: 0xb0, hi: 0xb9},
+       {value: 0x0018, lo: 0xba, hi: 0xbf},
+       // Block 0xc0, offset 0x5c9
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0040, lo: 0x80, hi: 0x9f},
+       {value: 0x049d, lo: 0xa0, hi: 0xbf},
+       // Block 0xc1, offset 0x5cc
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0008, lo: 0x80, hi: 0xa9},
+       {value: 0x0018, lo: 0xaa, hi: 0xb2},
+       {value: 0x0040, lo: 0xb3, hi: 0xbe},
+       {value: 0x0008, lo: 0xbf, hi: 0xbf},
+       // Block 0xc2, offset 0x5d1
+       {value: 0x0000, lo: 0x0c},
+       {value: 0x0008, lo: 0x80, hi: 0x80},
+       {value: 0x3308, lo: 0x81, hi: 0x86},
+       {value: 0x3008, lo: 0x87, hi: 0x88},
+       {value: 0x3308, lo: 0x89, hi: 0x8a},
+       {value: 0x0008, lo: 0x8b, hi: 0xb2},
+       {value: 0x3308, lo: 0xb3, hi: 0xb3},
+       {value: 0x3b08, lo: 0xb4, hi: 0xb4},
+       {value: 0x3308, lo: 0xb5, hi: 0xb8},
+       {value: 0x3008, lo: 0xb9, hi: 0xb9},
+       {value: 0x0008, lo: 0xba, hi: 0xba},
+       {value: 0x3308, lo: 0xbb, hi: 0xbe},
+       {value: 0x0018, lo: 0xbf, hi: 0xbf},
+       // Block 0xc3, offset 0x5de
+       {value: 0x0000, lo: 0x08},
+       {value: 0x0018, lo: 0x80, hi: 0x86},
+       {value: 0x3b08, lo: 0x87, hi: 0x87},
+       {value: 0x0040, lo: 0x88, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x90},
+       {value: 0x3308, lo: 0x91, hi: 0x96},
+       {value: 0x3008, lo: 0x97, hi: 0x98},
+       {value: 0x3308, lo: 0x99, hi: 0x9b},
+       {value: 0x0008, lo: 0x9c, hi: 0xbf},
+       // Block 0xc4, offset 0x5e7
+       {value: 0x0000, lo: 0x0b},
+       {value: 0x0008, lo: 0x80, hi: 0x83},
+       {value: 0x0040, lo: 0x84, hi: 0x85},
+       {value: 0x0008, lo: 0x86, hi: 0x89},
+       {value: 0x3308, lo: 0x8a, hi: 0x96},
+       {value: 0x3008, lo: 0x97, hi: 0x97},
+       {value: 0x3308, lo: 0x98, hi: 0x98},
+       {value: 0x3b08, lo: 0x99, hi: 0x99},
+       {value: 0x0018, lo: 0x9a, hi: 0x9c},
+       {value: 0x0040, lo: 0x9d, hi: 0x9d},
+       {value: 0x0018, lo: 0x9e, hi: 0xa2},
+       {value: 0x0040, lo: 0xa3, hi: 0xbf},
+       // Block 0xc5, offset 0x5f3
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0008, lo: 0x80, hi: 0xb8},
+       {value: 0x0040, lo: 0xb9, hi: 0xbf},
+       // Block 0xc6, offset 0x5f6
+       {value: 0x0000, lo: 0x09},
+       {value: 0x0008, lo: 0x80, hi: 0x88},
+       {value: 0x0040, lo: 0x89, hi: 0x89},
+       {value: 0x0008, lo: 0x8a, hi: 0xae},
+       {value: 0x3008, lo: 0xaf, hi: 0xaf},
+       {value: 0x3308, lo: 0xb0, hi: 0xb6},
+       {value: 0x0040, lo: 0xb7, hi: 0xb7},
+       {value: 0x3308, lo: 0xb8, hi: 0xbd},
+       {value: 0x3008, lo: 0xbe, hi: 0xbe},
+       {value: 0x3b08, lo: 0xbf, hi: 0xbf},
+       // Block 0xc7, offset 0x600
+       {value: 0x0000, lo: 0x08},
+       {value: 0x0008, lo: 0x80, hi: 0x80},
+       {value: 0x0018, lo: 0x81, hi: 0x85},
+       {value: 0x0040, lo: 0x86, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x99},
+       {value: 0x0018, lo: 0x9a, hi: 0xac},
+       {value: 0x0040, lo: 0xad, hi: 0xaf},
+       {value: 0x0018, lo: 0xb0, hi: 0xb1},
+       {value: 0x0008, lo: 0xb2, hi: 0xbf},
+       // Block 0xc8, offset 0x609
+       {value: 0x0000, lo: 0x0b},
+       {value: 0x0008, lo: 0x80, hi: 0x8f},
+       {value: 0x0040, lo: 0x90, hi: 0x91},
+       {value: 0x3308, lo: 0x92, hi: 0xa7},
+       {value: 0x0040, lo: 0xa8, hi: 0xa8},
+       {value: 0x3008, lo: 0xa9, hi: 0xa9},
+       {value: 0x3308, lo: 0xaa, hi: 0xb0},
+       {value: 0x3008, lo: 0xb1, hi: 0xb1},
+       {value: 0x3308, lo: 0xb2, hi: 0xb3},
+       {value: 0x3008, lo: 0xb4, hi: 0xb4},
+       {value: 0x3308, lo: 0xb5, hi: 0xb6},
+       {value: 0x0040, lo: 0xb7, hi: 0xbf},
+       // Block 0xc9, offset 0x615
+       {value: 0x0000, lo: 0x0c},
+       {value: 0x0008, lo: 0x80, hi: 0x86},
+       {value: 0x0040, lo: 0x87, hi: 0x87},
+       {value: 0x0008, lo: 0x88, hi: 0x89},
+       {value: 0x0040, lo: 0x8a, hi: 0x8a},
+       {value: 0x0008, lo: 0x8b, hi: 0xb0},
+       {value: 0x3308, lo: 0xb1, hi: 0xb6},
+       {value: 0x0040, lo: 0xb7, hi: 0xb9},
+       {value: 0x3308, lo: 0xba, hi: 0xba},
+       {value: 0x0040, lo: 0xbb, hi: 0xbb},
+       {value: 0x3308, lo: 0xbc, hi: 0xbd},
+       {value: 0x0040, lo: 0xbe, hi: 0xbe},
+       {value: 0x3308, lo: 0xbf, hi: 0xbf},
+       // Block 0xca, offset 0x622
+       {value: 0x0000, lo: 0x07},
+       {value: 0x3308, lo: 0x80, hi: 0x83},
+       {value: 0x3b08, lo: 0x84, hi: 0x85},
+       {value: 0x0008, lo: 0x86, hi: 0x86},
+       {value: 0x3308, lo: 0x87, hi: 0x87},
+       {value: 0x0040, lo: 0x88, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x99},
+       {value: 0x0040, lo: 0x9a, hi: 0xbf},
+       // Block 0xcb, offset 0x62a
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0008, lo: 0x80, hi: 0x99},
+       {value: 0x0040, lo: 0x9a, hi: 0xbf},
+       // Block 0xcc, offset 0x62d
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0018, lo: 0x80, hi: 0xae},
+       {value: 0x0040, lo: 0xaf, hi: 0xaf},
+       {value: 0x0018, lo: 0xb0, hi: 0xb4},
+       {value: 0x0040, lo: 0xb5, hi: 0xbf},
+       // Block 0xcd, offset 0x632
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0008, lo: 0x80, hi: 0x83},
+       {value: 0x0040, lo: 0x84, hi: 0xbf},
+       // Block 0xce, offset 0x635
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0008, lo: 0x80, hi: 0xae},
+       {value: 0x0040, lo: 0xaf, hi: 0xbf},
+       // Block 0xcf, offset 0x638
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0008, lo: 0x80, hi: 0x86},
+       {value: 0x0040, lo: 0x87, hi: 0xbf},
+       // Block 0xd0, offset 0x63b
+       {value: 0x0000, lo: 0x06},
+       {value: 0x0008, lo: 0x80, hi: 0x9e},
+       {value: 0x0040, lo: 0x9f, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xa9},
+       {value: 0x0040, lo: 0xaa, hi: 0xad},
+       {value: 0x0018, lo: 0xae, hi: 0xaf},
+       {value: 0x0040, lo: 0xb0, hi: 0xbf},
+       // Block 0xd1, offset 0x642
+       {value: 0x0000, lo: 0x06},
+       {value: 0x0040, lo: 0x80, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0xad},
+       {value: 0x0040, lo: 0xae, hi: 0xaf},
+       {value: 0x3308, lo: 0xb0, hi: 0xb4},
+       {value: 0x0018, lo: 0xb5, hi: 0xb5},
+       {value: 0x0040, lo: 0xb6, hi: 0xbf},
+       // Block 0xd2, offset 0x649
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0008, lo: 0x80, hi: 0xaf},
+       {value: 0x3308, lo: 0xb0, hi: 0xb6},
+       {value: 0x0018, lo: 0xb7, hi: 0xbf},
+       // Block 0xd3, offset 0x64d
+       {value: 0x0000, lo: 0x0a},
+       {value: 0x0008, lo: 0x80, hi: 0x83},
+       {value: 0x0018, lo: 0x84, hi: 0x85},
+       {value: 0x0040, lo: 0x86, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x99},
+       {value: 0x0040, lo: 0x9a, hi: 0x9a},
+       {value: 0x0018, lo: 0x9b, hi: 0xa1},
+       {value: 0x0040, lo: 0xa2, hi: 0xa2},
+       {value: 0x0008, lo: 0xa3, hi: 0xb7},
+       {value: 0x0040, lo: 0xb8, hi: 0xbc},
+       {value: 0x0008, lo: 0xbd, hi: 0xbf},
+       // Block 0xd4, offset 0x658
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0008, lo: 0x80, hi: 0x8f},
+       {value: 0x0040, lo: 0x90, hi: 0xbf},
+       // Block 0xd5, offset 0x65b
+       {value: 0x0000, lo: 0x05},
+       {value: 0x0008, lo: 0x80, hi: 0x84},
+       {value: 0x0040, lo: 0x85, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x90},
+       {value: 0x3008, lo: 0x91, hi: 0xbe},
+       {value: 0x0040, lo: 0xbf, hi: 0xbf},
+       // Block 0xd6, offset 0x661
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0040, lo: 0x80, hi: 0x8e},
+       {value: 0x3308, lo: 0x8f, hi: 0x92},
+       {value: 0x0008, lo: 0x93, hi: 0x9f},
+       {value: 0x0040, lo: 0xa0, hi: 0xbf},
+       // Block 0xd7, offset 0x666
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0040, lo: 0x80, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xa1},
+       {value: 0x0040, lo: 0xa2, hi: 0xbf},
+       // Block 0xd8, offset 0x66a
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0008, lo: 0x80, hi: 0xac},
+       {value: 0x0040, lo: 0xad, hi: 0xbf},
+       // Block 0xd9, offset 0x66d
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0008, lo: 0x80, hi: 0xb2},
+       {value: 0x0040, lo: 0xb3, hi: 0xbf},
+       // Block 0xda, offset 0x670
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0008, lo: 0x80, hi: 0x9e},
+       {value: 0x0040, lo: 0x9f, hi: 0xbf},
+       // Block 0xdb, offset 0x673
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0040, lo: 0x80, hi: 0xaf},
+       {value: 0x0008, lo: 0xb0, hi: 0xbf},
+       // Block 0xdc, offset 0x676
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0008, lo: 0x80, hi: 0xbb},
+       {value: 0x0040, lo: 0xbc, hi: 0xbf},
+       // Block 0xdd, offset 0x679
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0008, lo: 0x80, hi: 0xaa},
+       {value: 0x0040, lo: 0xab, hi: 0xaf},
+       {value: 0x0008, lo: 0xb0, hi: 0xbc},
+       {value: 0x0040, lo: 0xbd, hi: 0xbf},
+       // Block 0xde, offset 0x67e
+       {value: 0x0000, lo: 0x09},
+       {value: 0x0008, lo: 0x80, hi: 0x88},
+       {value: 0x0040, lo: 0x89, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x99},
+       {value: 0x0040, lo: 0x9a, hi: 0x9b},
+       {value: 0x0018, lo: 0x9c, hi: 0x9c},
+       {value: 0x3308, lo: 0x9d, hi: 0x9e},
+       {value: 0x0018, lo: 0x9f, hi: 0x9f},
+       {value: 0x03c0, lo: 0xa0, hi: 0xa3},
+       {value: 0x0040, lo: 0xa4, hi: 0xbf},
+       // Block 0xdf, offset 0x688
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0018, lo: 0x80, hi: 0xb5},
+       {value: 0x0040, lo: 0xb6, hi: 0xbf},
+       // Block 0xe0, offset 0x68b
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0018, lo: 0x80, hi: 0xa6},
+       {value: 0x0040, lo: 0xa7, hi: 0xa8},
+       {value: 0x0018, lo: 0xa9, hi: 0xbf},
+       // Block 0xe1, offset 0x68f
+       {value: 0x0000, lo: 0x0e},
+       {value: 0x0018, lo: 0x80, hi: 0x9d},
+       {value: 0xb5b9, lo: 0x9e, hi: 0x9e},
+       {value: 0xb601, lo: 0x9f, hi: 0x9f},
+       {value: 0xb649, lo: 0xa0, hi: 0xa0},
+       {value: 0xb6b1, lo: 0xa1, hi: 0xa1},
+       {value: 0xb719, lo: 0xa2, hi: 0xa2},
+       {value: 0xb781, lo: 0xa3, hi: 0xa3},
+       {value: 0xb7e9, lo: 0xa4, hi: 0xa4},
+       {value: 0x3018, lo: 0xa5, hi: 0xa6},
+       {value: 0x3318, lo: 0xa7, hi: 0xa9},
+       {value: 0x0018, lo: 0xaa, hi: 0xac},
+       {value: 0x3018, lo: 0xad, hi: 0xb2},
+       {value: 0x0340, lo: 0xb3, hi: 0xba},
+       {value: 0x3318, lo: 0xbb, hi: 0xbf},
+       // Block 0xe2, offset 0x69e
+       {value: 0x0000, lo: 0x0b},
+       {value: 0x3318, lo: 0x80, hi: 0x82},
+       {value: 0x0018, lo: 0x83, hi: 0x84},
+       {value: 0x3318, lo: 0x85, hi: 0x8b},
+       {value: 0x0018, lo: 0x8c, hi: 0xa9},
+       {value: 0x3318, lo: 0xaa, hi: 0xad},
+       {value: 0x0018, lo: 0xae, hi: 0xba},
+       {value: 0xb851, lo: 0xbb, hi: 0xbb},
+       {value: 0xb899, lo: 0xbc, hi: 0xbc},
+       {value: 0xb8e1, lo: 0xbd, hi: 0xbd},
+       {value: 0xb949, lo: 0xbe, hi: 0xbe},
+       {value: 0xb9b1, lo: 0xbf, hi: 0xbf},
+       // Block 0xe3, offset 0x6aa
+       {value: 0x0000, lo: 0x03},
+       {value: 0xba19, lo: 0x80, hi: 0x80},
+       {value: 0x0018, lo: 0x81, hi: 0xa8},
+       {value: 0x0040, lo: 0xa9, hi: 0xbf},
+       // Block 0xe4, offset 0x6ae
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0018, lo: 0x80, hi: 0x81},
+       {value: 0x3318, lo: 0x82, hi: 0x84},
+       {value: 0x0018, lo: 0x85, hi: 0x85},
+       {value: 0x0040, lo: 0x86, hi: 0xbf},
+       // Block 0xe5, offset 0x6b3
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0018, lo: 0x80, hi: 0x96},
+       {value: 0x0040, lo: 0x97, hi: 0x9f},
+       {value: 0x0018, lo: 0xa0, hi: 0xb1},
+       {value: 0x0040, lo: 0xb2, hi: 0xbf},
+       // Block 0xe6, offset 0x6b8
+       {value: 0x0000, lo: 0x03},
+       {value: 0x3308, lo: 0x80, hi: 0xb6},
+       {value: 0x0018, lo: 0xb7, hi: 0xba},
+       {value: 0x3308, lo: 0xbb, hi: 0xbf},
+       // Block 0xe7, offset 0x6bc
+       {value: 0x0000, lo: 0x04},
+       {value: 0x3308, lo: 0x80, hi: 0xac},
+       {value: 0x0018, lo: 0xad, hi: 0xb4},
+       {value: 0x3308, lo: 0xb5, hi: 0xb5},
+       {value: 0x0018, lo: 0xb6, hi: 0xbf},
+       // Block 0xe8, offset 0x6c1
+       {value: 0x0000, lo: 0x08},
+       {value: 0x0018, lo: 0x80, hi: 0x83},
+       {value: 0x3308, lo: 0x84, hi: 0x84},
+       {value: 0x0018, lo: 0x85, hi: 0x8b},
+       {value: 0x0040, lo: 0x8c, hi: 0x9a},
+       {value: 0x3308, lo: 0x9b, hi: 0x9f},
+       {value: 0x0040, lo: 0xa0, hi: 0xa0},
+       {value: 0x3308, lo: 0xa1, hi: 0xaf},
+       {value: 0x0040, lo: 0xb0, hi: 0xbf},
+       // Block 0xe9, offset 0x6ca
+       {value: 0x0000, lo: 0x0a},
+       {value: 0x3308, lo: 0x80, hi: 0x86},
+       {value: 0x0040, lo: 0x87, hi: 0x87},
+       {value: 0x3308, lo: 0x88, hi: 0x98},
+       {value: 0x0040, lo: 0x99, hi: 0x9a},
+       {value: 0x3308, lo: 0x9b, hi: 0xa1},
+       {value: 0x0040, lo: 0xa2, hi: 0xa2},
+       {value: 0x3308, lo: 0xa3, hi: 0xa4},
+       {value: 0x0040, lo: 0xa5, hi: 0xa5},
+       {value: 0x3308, lo: 0xa6, hi: 0xaa},
+       {value: 0x0040, lo: 0xab, hi: 0xbf},
+       // Block 0xea, offset 0x6d5
+       {value: 0x0000, lo: 0x05},
+       {value: 0x0808, lo: 0x80, hi: 0x84},
+       {value: 0x0040, lo: 0x85, hi: 0x86},
+       {value: 0x0818, lo: 0x87, hi: 0x8f},
+       {value: 0x3308, lo: 0x90, hi: 0x96},
+       {value: 0x0040, lo: 0x97, hi: 0xbf},
+       // Block 0xeb, offset 0x6db
+       {value: 0x0000, lo: 0x07},
+       {value: 0x0a08, lo: 0x80, hi: 0x83},
+       {value: 0x3308, lo: 0x84, hi: 0x8a},
+       {value: 0x0040, lo: 0x8b, hi: 0x8f},
+       {value: 0x0808, lo: 0x90, hi: 0x99},
+       {value: 0x0040, lo: 0x9a, hi: 0x9d},
+       {value: 0x0818, lo: 0x9e, hi: 0x9f},
+       {value: 0x0040, lo: 0xa0, hi: 0xbf},
+       // Block 0xec, offset 0x6e3
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0040, lo: 0x80, hi: 0xaf},
+       {value: 0x0018, lo: 0xb0, hi: 0xb1},
+       {value: 0x0040, lo: 0xb2, hi: 0xbf},
+       // Block 0xed, offset 0x6e7
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0018, lo: 0x80, hi: 0xab},
+       {value: 0x0040, lo: 0xac, hi: 0xaf},
+       {value: 0x0018, lo: 0xb0, hi: 0xbf},
+       // Block 0xee, offset 0x6eb
+       {value: 0x0000, lo: 0x05},
+       {value: 0x0018, lo: 0x80, hi: 0x93},
+       {value: 0x0040, lo: 0x94, hi: 0x9f},
+       {value: 0x0018, lo: 0xa0, hi: 0xae},
+       {value: 0x0040, lo: 0xaf, hi: 0xb0},
+       {value: 0x0018, lo: 0xb1, hi: 0xbf},
+       // Block 0xef, offset 0x6f1
+       {value: 0x0000, lo: 0x05},
+       {value: 0x0040, lo: 0x80, hi: 0x80},
+       {value: 0x0018, lo: 0x81, hi: 0x8f},
+       {value: 0x0040, lo: 0x90, hi: 0x90},
+       {value: 0x0018, lo: 0x91, hi: 0xb5},
+       {value: 0x0040, lo: 0xb6, hi: 0xbf},
+       // Block 0xf0, offset 0x6f7
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0018, lo: 0x80, hi: 0x8f},
+       {value: 0xc1c1, lo: 0x90, hi: 0x90},
+       {value: 0x0018, lo: 0x91, hi: 0xac},
+       {value: 0x0040, lo: 0xad, hi: 0xbf},
+       // Block 0xf1, offset 0x6fc
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0040, lo: 0x80, hi: 0xa5},
+       {value: 0x0018, lo: 0xa6, hi: 0xbf},
+       // Block 0xf2, offset 0x6ff
+       {value: 0x0000, lo: 0x0f},
+       {value: 0xc7e9, lo: 0x80, hi: 0x80},
+       {value: 0xc839, lo: 0x81, hi: 0x81},
+       {value: 0xc889, lo: 0x82, hi: 0x82},
+       {value: 0xc8d9, lo: 0x83, hi: 0x83},
+       {value: 0xc929, lo: 0x84, hi: 0x84},
+       {value: 0xc979, lo: 0x85, hi: 0x85},
+       {value: 0xc9c9, lo: 0x86, hi: 0x86},
+       {value: 0xca19, lo: 0x87, hi: 0x87},
+       {value: 0xca69, lo: 0x88, hi: 0x88},
+       {value: 0x0040, lo: 0x89, hi: 0x8f},
+       {value: 0xcab9, lo: 0x90, hi: 0x90},
+       {value: 0xcad9, lo: 0x91, hi: 0x91},
+       {value: 0x0040, lo: 0x92, hi: 0x9f},
+       {value: 0x0018, lo: 0xa0, hi: 0xa5},
+       {value: 0x0040, lo: 0xa6, hi: 0xbf},
+       // Block 0xf3, offset 0x70f
+       {value: 0x0000, lo: 0x06},
+       {value: 0x0018, lo: 0x80, hi: 0x94},
+       {value: 0x0040, lo: 0x95, hi: 0x9f},
+       {value: 0x0018, lo: 0xa0, hi: 0xac},
+       {value: 0x0040, lo: 0xad, hi: 0xaf},
+       {value: 0x0018, lo: 0xb0, hi: 0xb8},
+       {value: 0x0040, lo: 0xb9, hi: 0xbf},
+       // Block 0xf4, offset 0x716
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0018, lo: 0x80, hi: 0xb3},
+       {value: 0x0040, lo: 0xb4, hi: 0xbf},
+       // Block 0xf5, offset 0x719
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0018, lo: 0x80, hi: 0x94},
+       {value: 0x0040, lo: 0x95, hi: 0xbf},
+       // Block 0xf6, offset 0x71c
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0018, lo: 0x80, hi: 0x8b},
+       {value: 0x0040, lo: 0x8c, hi: 0x8f},
+       {value: 0x0018, lo: 0x90, hi: 0xbf},
+       // Block 0xf7, offset 0x720
+       {value: 0x0000, lo: 0x05},
+       {value: 0x0018, lo: 0x80, hi: 0x87},
+       {value: 0x0040, lo: 0x88, hi: 0x8f},
+       {value: 0x0018, lo: 0x90, hi: 0x99},
+       {value: 0x0040, lo: 0x9a, hi: 0x9f},
+       {value: 0x0018, lo: 0xa0, hi: 0xbf},
+       // Block 0xf8, offset 0x726
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0018, lo: 0x80, hi: 0x87},
+       {value: 0x0040, lo: 0x88, hi: 0x8f},
+       {value: 0x0018, lo: 0x90, hi: 0xad},
+       {value: 0x0040, lo: 0xae, hi: 0xbf},
+       // Block 0xf9, offset 0x72b
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0018, lo: 0x80, hi: 0x8b},
+       {value: 0x0040, lo: 0x8c, hi: 0x8f},
+       {value: 0x0018, lo: 0x90, hi: 0xbe},
+       {value: 0x0040, lo: 0xbf, hi: 0xbf},
+       // Block 0xfa, offset 0x730
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0018, lo: 0x80, hi: 0x8c},
+       {value: 0x0040, lo: 0x8d, hi: 0x8f},
+       {value: 0x0018, lo: 0x90, hi: 0xab},
+       {value: 0x0040, lo: 0xac, hi: 0xbf},
+       // Block 0xfb, offset 0x735
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0018, lo: 0x80, hi: 0x97},
+       {value: 0x0040, lo: 0x98, hi: 0xbf},
+       // Block 0xfc, offset 0x738
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0018, lo: 0x80, hi: 0x80},
+       {value: 0x0040, lo: 0x81, hi: 0x8f},
+       {value: 0x0018, lo: 0x90, hi: 0xa6},
+       {value: 0x0040, lo: 0xa7, hi: 0xbf},
+       // Block 0xfd, offset 0x73d
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0008, lo: 0x80, hi: 0x96},
+       {value: 0x0040, lo: 0x97, hi: 0xbf},
+       // Block 0xfe, offset 0x740
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0008, lo: 0x80, hi: 0xb4},
+       {value: 0x0040, lo: 0xb5, hi: 0xbf},
+       // Block 0xff, offset 0x743
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0008, lo: 0x80, hi: 0x9d},
+       {value: 0x0040, lo: 0x9e, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xbf},
+       // Block 0x100, offset 0x747
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0008, lo: 0x80, hi: 0xa1},
+       {value: 0x0040, lo: 0xa2, hi: 0xaf},
+       {value: 0x0008, lo: 0xb0, hi: 0xbf},
+       // Block 0x101, offset 0x74b
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0008, lo: 0x80, hi: 0xa0},
+       {value: 0x0040, lo: 0xa1, hi: 0xbf},
+       // Block 0x102, offset 0x74e
+       {value: 0x0020, lo: 0x0f},
+       {value: 0xdeb9, lo: 0x80, hi: 0x89},
+       {value: 0x8dfd, lo: 0x8a, hi: 0x8a},
+       {value: 0xdff9, lo: 0x8b, hi: 0x9c},
+       {value: 0x8e1d, lo: 0x9d, hi: 0x9d},
+       {value: 0xe239, lo: 0x9e, hi: 0xa2},
+       {value: 0x8e3d, lo: 0xa3, hi: 0xa3},
+       {value: 0xe2d9, lo: 0xa4, hi: 0xab},
+       {value: 0x7ed5, lo: 0xac, hi: 0xac},
+       {value: 0xe3d9, lo: 0xad, hi: 0xaf},
+       {value: 0x8e5d, lo: 0xb0, hi: 0xb0},
+       {value: 0xe439, lo: 0xb1, hi: 0xb6},
+       {value: 0x8e7d, lo: 0xb7, hi: 0xb9},
+       {value: 0xe4f9, lo: 0xba, hi: 0xba},
+       {value: 0x8edd, lo: 0xbb, hi: 0xbb},
+       {value: 0xe519, lo: 0xbc, hi: 0xbf},
+       // Block 0x103, offset 0x75e
+       {value: 0x0020, lo: 0x10},
+       {value: 0x937d, lo: 0x80, hi: 0x80},
+       {value: 0xf099, lo: 0x81, hi: 0x86},
+       {value: 0x939d, lo: 0x87, hi: 0x8a},
+       {value: 0xd9f9, lo: 0x8b, hi: 0x8b},
+       {value: 0xf159, lo: 0x8c, hi: 0x96},
+       {value: 0x941d, lo: 0x97, hi: 0x97},
+       {value: 0xf2b9, lo: 0x98, hi: 0xa3},
+       {value: 0x943d, lo: 0xa4, hi: 0xa6},
+       {value: 0xf439, lo: 0xa7, hi: 0xaa},
+       {value: 0x949d, lo: 0xab, hi: 0xab},
+       {value: 0xf4b9, lo: 0xac, hi: 0xac},
+       {value: 0x94bd, lo: 0xad, hi: 0xad},
+       {value: 0xf4d9, lo: 0xae, hi: 0xaf},
+       {value: 0x94dd, lo: 0xb0, hi: 0xb1},
+       {value: 0xf519, lo: 0xb2, hi: 0xbe},
+       {value: 0x2040, lo: 0xbf, hi: 0xbf},
+       // Block 0x104, offset 0x76f
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0040, lo: 0x80, hi: 0x80},
+       {value: 0x0340, lo: 0x81, hi: 0x81},
+       {value: 0x0040, lo: 0x82, hi: 0x9f},
+       {value: 0x0340, lo: 0xa0, hi: 0xbf},
+       // Block 0x105, offset 0x774
+       {value: 0x0000, lo: 0x01},
+       {value: 0x0340, lo: 0x80, hi: 0xbf},
+       // Block 0x106, offset 0x776
+       {value: 0x0000, lo: 0x01},
+       {value: 0x33c0, lo: 0x80, hi: 0xbf},
+       // Block 0x107, offset 0x778
+       {value: 0x0000, lo: 0x02},
+       {value: 0x33c0, lo: 0x80, hi: 0xaf},
+       {value: 0x0040, lo: 0xb0, hi: 0xbf},
+}
+
+// Total table size 42114 bytes (41KiB); checksum: 355A58A4
diff --git a/vendor/golang.org/x/net/idna/tables11.0.0.go b/vendor/golang.org/x/net/idna/tables11.0.0.go
new file mode 100644 (file)
index 0000000..c515d7a
--- /dev/null
@@ -0,0 +1,4653 @@
+// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT.
+
+// +build go1.13
+
+package idna
+
+// UnicodeVersion is the Unicode version from which the tables in this package are derived.
+const UnicodeVersion = "11.0.0"
+
+var mappings string = "" + // Size: 8175 bytes
+       "\x00\x01 \x03 ̈\x01a\x03 ̄\x012\x013\x03 ́\x03 ̧\x011\x01o\x051⁄4\x051⁄2" +
+       "\x053⁄4\x03i̇\x03l·\x03ʼn\x01s\x03dž\x03ⱥ\x03ⱦ\x01h\x01j\x01r\x01w\x01y" +
+       "\x03 ̆\x03 ̇\x03 ̊\x03 ̨\x03 ̃\x03 ̋\x01l\x01x\x04̈́\x03 ι\x01;\x05 ̈́" +
+       "\x04եւ\x04اٴ\x04وٴ\x04ۇٴ\x04يٴ\x06क़\x06ख़\x06ग़\x06ज़\x06ड़\x06ढ़\x06फ़" +
+       "\x06य़\x06ড়\x06ঢ়\x06য়\x06ਲ਼\x06ਸ਼\x06ਖ਼\x06ਗ਼\x06ਜ਼\x06ਫ਼\x06ଡ଼\x06ଢ଼" +
+       "\x06ํา\x06ໍາ\x06ຫນ\x06ຫມ\x06གྷ\x06ཌྷ\x06དྷ\x06བྷ\x06ཛྷ\x06ཀྵ\x06ཱི\x06ཱུ" +
+       "\x06ྲྀ\x09ྲཱྀ\x06ླྀ\x09ླཱྀ\x06ཱྀ\x06ྒྷ\x06ྜྷ\x06ྡྷ\x06ྦྷ\x06ྫྷ\x06ྐྵ\x02" +
+       "в\x02д\x02о\x02с\x02т\x02ъ\x02ѣ\x02æ\x01b\x01d\x01e\x02ǝ\x01g\x01i\x01k" +
+       "\x01m\x01n\x02ȣ\x01p\x01t\x01u\x02ɐ\x02ɑ\x02ə\x02ɛ\x02ɜ\x02ŋ\x02ɔ\x02ɯ" +
+       "\x01v\x02β\x02γ\x02δ\x02φ\x02χ\x02ρ\x02н\x02ɒ\x01c\x02ɕ\x02ð\x01f\x02ɟ" +
+       "\x02ɡ\x02ɥ\x02ɨ\x02ɩ\x02ɪ\x02ʝ\x02ɭ\x02ʟ\x02ɱ\x02ɰ\x02ɲ\x02ɳ\x02ɴ\x02ɵ" +
+       "\x02ɸ\x02ʂ\x02ʃ\x02ƫ\x02ʉ\x02ʊ\x02ʋ\x02ʌ\x01z\x02ʐ\x02ʑ\x02ʒ\x02θ\x02ss" +
+       "\x02ά\x02έ\x02ή\x02ί\x02ό\x02ύ\x02ώ\x05ἀι\x05ἁι\x05ἂι\x05ἃι\x05ἄι\x05ἅι" +
+       "\x05ἆι\x05ἇι\x05ἠι\x05ἡι\x05ἢι\x05ἣι\x05ἤι\x05ἥι\x05ἦι\x05ἧι\x05ὠι\x05ὡι" +
+       "\x05ὢι\x05ὣι\x05ὤι\x05ὥι\x05ὦι\x05ὧι\x05ὰι\x04αι\x04άι\x05ᾶι\x02ι\x05 ̈͂" +
+       "\x05ὴι\x04ηι\x04ήι\x05ῆι\x05 ̓̀\x05 ̓́\x05 ̓͂\x02ΐ\x05 ̔̀\x05 ̔́\x05 ̔͂" +
+       "\x02ΰ\x05 ̈̀\x01`\x05ὼι\x04ωι\x04ώι\x05ῶι\x06′′\x09′′′\x06‵‵\x09‵‵‵\x02!" +
+       "!\x02??\x02?!\x02!?\x0c′′′′\x010\x014\x015\x016\x017\x018\x019\x01+\x01=" +
+       "\x01(\x01)\x02rs\x02ħ\x02no\x01q\x02sm\x02tm\x02ω\x02å\x02א\x02ב\x02ג" +
+       "\x02ד\x02π\x051⁄7\x051⁄9\x061⁄10\x051⁄3\x052⁄3\x051⁄5\x052⁄5\x053⁄5\x054" +
+       "⁄5\x051⁄6\x055⁄6\x051⁄8\x053⁄8\x055⁄8\x057⁄8\x041⁄\x02ii\x02iv\x02vi" +
+       "\x04viii\x02ix\x02xi\x050⁄3\x06∫∫\x09∫∫∫\x06∮∮\x09∮∮∮\x0210\x0211\x0212" +
+       "\x0213\x0214\x0215\x0216\x0217\x0218\x0219\x0220\x04(10)\x04(11)\x04(12)" +
+       "\x04(13)\x04(14)\x04(15)\x04(16)\x04(17)\x04(18)\x04(19)\x04(20)\x0c∫∫∫∫" +
+       "\x02==\x05⫝̸\x02ɫ\x02ɽ\x02ȿ\x02ɀ\x01.\x04 ゙\x04 ゚\x06より\x06コト\x05(ᄀ)\x05" +
+       "(ᄂ)\x05(ᄃ)\x05(ᄅ)\x05(ᄆ)\x05(ᄇ)\x05(ᄉ)\x05(ᄋ)\x05(ᄌ)\x05(ᄎ)\x05(ᄏ)\x05(ᄐ" +
+       ")\x05(ᄑ)\x05(ᄒ)\x05(가)\x05(나)\x05(다)\x05(라)\x05(마)\x05(바)\x05(사)\x05(아)" +
+       "\x05(자)\x05(차)\x05(카)\x05(타)\x05(파)\x05(하)\x05(주)\x08(오전)\x08(오후)\x05(一)" +
+       "\x05(二)\x05(三)\x05(四)\x05(五)\x05(六)\x05(七)\x05(八)\x05(九)\x05(十)\x05(月)" +
+       "\x05(火)\x05(水)\x05(木)\x05(金)\x05(土)\x05(日)\x05(株)\x05(有)\x05(社)\x05(名)" +
+       "\x05(特)\x05(財)\x05(祝)\x05(労)\x05(代)\x05(呼)\x05(学)\x05(監)\x05(企)\x05(資)" +
+       "\x05(協)\x05(祭)\x05(休)\x05(自)\x05(至)\x0221\x0222\x0223\x0224\x0225\x0226" +
+       "\x0227\x0228\x0229\x0230\x0231\x0232\x0233\x0234\x0235\x06참고\x06주의\x0236" +
+       "\x0237\x0238\x0239\x0240\x0241\x0242\x0243\x0244\x0245\x0246\x0247\x0248" +
+       "\x0249\x0250\x041月\x042月\x043月\x044月\x045月\x046月\x047月\x048月\x049月\x0510" +
+       "月\x0511月\x0512月\x02hg\x02ev\x0cアパート\x0cアルファ\x0cアンペア\x09アール\x0cイニング\x09" +
+       "インチ\x09ウォン\x0fエスクード\x0cエーカー\x09オンス\x09オーム\x09カイリ\x0cカラット\x0cカロリー\x09ガロ" +
+       "ン\x09ガンマ\x06ギガ\x09ギニー\x0cキュリー\x0cギルダー\x06キロ\x0fキログラム\x12キロメートル\x0fキロワッ" +
+       "ト\x09グラム\x0fグラムトン\x0fクルゼイロ\x0cクローネ\x09ケース\x09コルナ\x09コーポ\x0cサイクル\x0fサンチ" +
+       "ーム\x0cシリング\x09センチ\x09セント\x09ダース\x06デシ\x06ドル\x06トン\x06ナノ\x09ノット\x09ハイツ" +
+       "\x0fパーセント\x09パーツ\x0cバーレル\x0fピアストル\x09ピクル\x06ピコ\x06ビル\x0fファラッド\x0cフィート" +
+       "\x0fブッシェル\x09フラン\x0fヘクタール\x06ペソ\x09ペニヒ\x09ヘルツ\x09ペンス\x09ページ\x09ベータ\x0cポイ" +
+       "ント\x09ボルト\x06ホン\x09ポンド\x09ホール\x09ホーン\x0cマイクロ\x09マイル\x09マッハ\x09マルク\x0fマ" +
+       "ンション\x0cミクロン\x06ミリ\x0fミリバール\x06メガ\x0cメガトン\x0cメートル\x09ヤード\x09ヤール\x09ユアン" +
+       "\x0cリットル\x06リラ\x09ルピー\x0cルーブル\x06レム\x0fレントゲン\x09ワット\x040点\x041点\x042点" +
+       "\x043点\x044点\x045点\x046点\x047点\x048点\x049点\x0510点\x0511点\x0512点\x0513点" +
+       "\x0514点\x0515点\x0516点\x0517点\x0518点\x0519点\x0520点\x0521点\x0522点\x0523点" +
+       "\x0524点\x02da\x02au\x02ov\x02pc\x02dm\x02iu\x06平成\x06昭和\x06大正\x06明治\x0c株" +
+       "式会社\x02pa\x02na\x02ma\x02ka\x02kb\x02mb\x02gb\x04kcal\x02pf\x02nf\x02m" +
+       "g\x02kg\x02hz\x02ml\x02dl\x02kl\x02fm\x02nm\x02mm\x02cm\x02km\x02m2\x02m" +
+       "3\x05m∕s\x06m∕s2\x07rad∕s\x08rad∕s2\x02ps\x02ns\x02ms\x02pv\x02nv\x02mv" +
+       "\x02kv\x02pw\x02nw\x02mw\x02kw\x02bq\x02cc\x02cd\x06c∕kg\x02db\x02gy\x02" +
+       "ha\x02hp\x02in\x02kk\x02kt\x02lm\x02ln\x02lx\x02ph\x02pr\x02sr\x02sv\x02" +
+       "wb\x05v∕m\x05a∕m\x041日\x042日\x043日\x044日\x045日\x046日\x047日\x048日\x049日" +
+       "\x0510日\x0511日\x0512日\x0513日\x0514日\x0515日\x0516日\x0517日\x0518日\x0519日" +
+       "\x0520日\x0521日\x0522日\x0523日\x0524日\x0525日\x0526日\x0527日\x0528日\x0529日" +
+       "\x0530日\x0531日\x02ь\x02ɦ\x02ɬ\x02ʞ\x02ʇ\x02œ\x04𤋮\x04𢡊\x04𢡄\x04𣏕\x04𥉉" +
+       "\x04𥳐\x04𧻓\x02ff\x02fi\x02fl\x02st\x04մն\x04մե\x04մի\x04վն\x04մխ\x04יִ" +
+       "\x04ײַ\x02ע\x02ה\x02כ\x02ל\x02ם\x02ר\x02ת\x04שׁ\x04שׂ\x06שּׁ\x06שּׂ\x04א" +
+       "ַ\x04אָ\x04אּ\x04בּ\x04גּ\x04דּ\x04הּ\x04וּ\x04זּ\x04טּ\x04יּ\x04ךּ\x04" +
+       "כּ\x04לּ\x04מּ\x04נּ\x04סּ\x04ףּ\x04פּ\x04צּ\x04קּ\x04רּ\x04שּ\x04תּ" +
+       "\x04וֹ\x04בֿ\x04כֿ\x04פֿ\x04אל\x02ٱ\x02ٻ\x02پ\x02ڀ\x02ٺ\x02ٿ\x02ٹ\x02ڤ" +
+       "\x02ڦ\x02ڄ\x02ڃ\x02چ\x02ڇ\x02ڍ\x02ڌ\x02ڎ\x02ڈ\x02ژ\x02ڑ\x02ک\x02گ\x02ڳ" +
+       "\x02ڱ\x02ں\x02ڻ\x02ۀ\x02ہ\x02ھ\x02ے\x02ۓ\x02ڭ\x02ۇ\x02ۆ\x02ۈ\x02ۋ\x02ۅ" +
+       "\x02ۉ\x02ې\x02ى\x04ئا\x04ئە\x04ئو\x04ئۇ\x04ئۆ\x04ئۈ\x04ئې\x04ئى\x02ی\x04" +
+       "ئج\x04ئح\x04ئم\x04ئي\x04بج\x04بح\x04بخ\x04بم\x04بى\x04بي\x04تج\x04تح" +
+       "\x04تخ\x04تم\x04تى\x04تي\x04ثج\x04ثم\x04ثى\x04ثي\x04جح\x04جم\x04حج\x04حم" +
+       "\x04خج\x04خح\x04خم\x04سج\x04سح\x04سخ\x04سم\x04صح\x04صم\x04ضج\x04ضح\x04ضخ" +
+       "\x04ضم\x04طح\x04طم\x04ظم\x04عج\x04عم\x04غج\x04غم\x04فج\x04فح\x04فخ\x04فم" +
+       "\x04فى\x04في\x04قح\x04قم\x04قى\x04قي\x04كا\x04كج\x04كح\x04كخ\x04كل\x04كم" +
+       "\x04كى\x04كي\x04لج\x04لح\x04لخ\x04لم\x04لى\x04لي\x04مج\x04مح\x04مخ\x04مم" +
+       "\x04مى\x04مي\x04نج\x04نح\x04نخ\x04نم\x04نى\x04ني\x04هج\x04هم\x04هى\x04هي" +
+       "\x04يج\x04يح\x04يخ\x04يم\x04يى\x04يي\x04ذٰ\x04رٰ\x04ىٰ\x05 ٌّ\x05 ٍّ\x05" +
+       " َّ\x05 ُّ\x05 ِّ\x05 ّٰ\x04ئر\x04ئز\x04ئن\x04بر\x04بز\x04بن\x04تر\x04تز" +
+       "\x04تن\x04ثر\x04ثز\x04ثن\x04ما\x04نر\x04نز\x04نن\x04ير\x04يز\x04ين\x04ئخ" +
+       "\x04ئه\x04به\x04ته\x04صخ\x04له\x04نه\x04هٰ\x04يه\x04ثه\x04سه\x04شم\x04شه" +
+       "\x06ـَّ\x06ـُّ\x06ـِّ\x04طى\x04طي\x04عى\x04عي\x04غى\x04غي\x04سى\x04سي" +
+       "\x04شى\x04شي\x04حى\x04حي\x04جى\x04جي\x04خى\x04خي\x04صى\x04صي\x04ضى\x04ضي" +
+       "\x04شج\x04شح\x04شخ\x04شر\x04سر\x04صر\x04ضر\x04اً\x06تجم\x06تحج\x06تحم" +
+       "\x06تخم\x06تمج\x06تمح\x06تمخ\x06جمح\x06حمي\x06حمى\x06سحج\x06سجح\x06سجى" +
+       "\x06سمح\x06سمج\x06سمم\x06صحح\x06صمم\x06شحم\x06شجي\x06شمخ\x06شمم\x06ضحى" +
+       "\x06ضخم\x06طمح\x06طمم\x06طمي\x06عجم\x06عمم\x06عمى\x06غمم\x06غمي\x06غمى" +
+       "\x06فخم\x06قمح\x06قمم\x06لحم\x06لحي\x06لحى\x06لجج\x06لخم\x06لمح\x06محج" +
+       "\x06محم\x06محي\x06مجح\x06مجم\x06مخج\x06مخم\x06مجخ\x06همج\x06همم\x06نحم" +
+       "\x06نحى\x06نجم\x06نجى\x06نمي\x06نمى\x06يمم\x06بخي\x06تجي\x06تجى\x06تخي" +
+       "\x06تخى\x06تمي\x06تمى\x06جمي\x06جحى\x06جمى\x06سخى\x06صحي\x06شحي\x06ضحي" +
+       "\x06لجي\x06لمي\x06يحي\x06يجي\x06يمي\x06ممي\x06قمي\x06نحي\x06عمي\x06كمي" +
+       "\x06نجح\x06مخي\x06لجم\x06كمم\x06جحي\x06حجي\x06مجي\x06فمي\x06بحي\x06سخي" +
+       "\x06نجي\x06صلے\x06قلے\x08الله\x08اكبر\x08محمد\x08صلعم\x08رسول\x08عليه" +
+       "\x08وسلم\x06صلى!صلى الله عليه وسلم\x0fجل جلاله\x08ریال\x01,\x01:\x01!" +
+       "\x01?\x01_\x01{\x01}\x01[\x01]\x01#\x01&\x01*\x01-\x01<\x01>\x01\\\x01$" +
+       "\x01%\x01@\x04ـً\x04ـَ\x04ـُ\x04ـِ\x04ـّ\x04ـْ\x02ء\x02آ\x02أ\x02ؤ\x02إ" +
+       "\x02ئ\x02ا\x02ب\x02ة\x02ت\x02ث\x02ج\x02ح\x02خ\x02د\x02ذ\x02ر\x02ز\x02س" +
+       "\x02ش\x02ص\x02ض\x02ط\x02ظ\x02ع\x02غ\x02ف\x02ق\x02ك\x02ل\x02م\x02ن\x02ه" +
+       "\x02و\x02ي\x04لآ\x04لأ\x04لإ\x04لا\x01\x22\x01'\x01/\x01^\x01|\x01~\x02¢" +
+       "\x02£\x02¬\x02¦\x02¥\x08𝅗𝅥\x08𝅘𝅥\x0c𝅘𝅥𝅮\x0c𝅘𝅥𝅯\x0c𝅘𝅥𝅰\x0c𝅘𝅥𝅱\x0c𝅘𝅥𝅲\x08𝆹" +
+       "𝅥\x08𝆺𝅥\x0c𝆹𝅥𝅮\x0c𝆺𝅥𝅮\x0c𝆹𝅥𝅯\x0c𝆺𝅥𝅯\x02ı\x02ȷ\x02α\x02ε\x02ζ\x02η\x02" +
+       "κ\x02λ\x02μ\x02ν\x02ξ\x02ο\x02σ\x02τ\x02υ\x02ψ\x03∇\x03∂\x02ϝ\x02ٮ\x02ڡ" +
+       "\x02ٯ\x020,\x021,\x022,\x023,\x024,\x025,\x026,\x027,\x028,\x029,\x03(a)" +
+       "\x03(b)\x03(c)\x03(d)\x03(e)\x03(f)\x03(g)\x03(h)\x03(i)\x03(j)\x03(k)" +
+       "\x03(l)\x03(m)\x03(n)\x03(o)\x03(p)\x03(q)\x03(r)\x03(s)\x03(t)\x03(u)" +
+       "\x03(v)\x03(w)\x03(x)\x03(y)\x03(z)\x07〔s〕\x02wz\x02hv\x02sd\x03ppv\x02w" +
+       "c\x02mc\x02md\x02dj\x06ほか\x06ココ\x03サ\x03手\x03字\x03双\x03デ\x03二\x03多\x03解" +
+       "\x03天\x03交\x03映\x03無\x03料\x03前\x03後\x03再\x03新\x03初\x03終\x03生\x03販\x03声" +
+       "\x03吹\x03演\x03投\x03捕\x03一\x03三\x03遊\x03左\x03中\x03右\x03指\x03走\x03打\x03禁" +
+       "\x03空\x03合\x03満\x03有\x03月\x03申\x03割\x03営\x03配\x09〔本〕\x09〔三〕\x09〔二〕\x09〔安" +
+       "〕\x09〔点〕\x09〔打〕\x09〔盗〕\x09〔勝〕\x09〔敗〕\x03得\x03可\x03丽\x03丸\x03乁\x03你\x03" +
+       "侮\x03侻\x03倂\x03偺\x03備\x03僧\x03像\x03㒞\x03免\x03兔\x03兤\x03具\x03㒹\x03內\x03" +
+       "冗\x03冤\x03仌\x03冬\x03况\x03凵\x03刃\x03㓟\x03刻\x03剆\x03剷\x03㔕\x03勇\x03勉\x03" +
+       "勤\x03勺\x03包\x03匆\x03北\x03卉\x03卑\x03博\x03即\x03卽\x03卿\x03灰\x03及\x03叟\x03" +
+       "叫\x03叱\x03吆\x03咞\x03吸\x03呈\x03周\x03咢\x03哶\x03唐\x03啓\x03啣\x03善\x03喙\x03" +
+       "喫\x03喳\x03嗂\x03圖\x03嘆\x03圗\x03噑\x03噴\x03切\x03壮\x03城\x03埴\x03堍\x03型\x03" +
+       "堲\x03報\x03墬\x03売\x03壷\x03夆\x03夢\x03奢\x03姬\x03娛\x03娧\x03姘\x03婦\x03㛮\x03" +
+       "嬈\x03嬾\x03寃\x03寘\x03寧\x03寳\x03寿\x03将\x03尢\x03㞁\x03屠\x03屮\x03峀\x03岍\x03" +
+       "嵃\x03嵮\x03嵫\x03嵼\x03巡\x03巢\x03㠯\x03巽\x03帨\x03帽\x03幩\x03㡢\x03㡼\x03庰\x03" +
+       "庳\x03庶\x03廊\x03廾\x03舁\x03弢\x03㣇\x03形\x03彫\x03㣣\x03徚\x03忍\x03志\x03忹\x03" +
+       "悁\x03㤺\x03㤜\x03悔\x03惇\x03慈\x03慌\x03慎\x03慺\x03憎\x03憲\x03憤\x03憯\x03懞\x03" +
+       "懲\x03懶\x03成\x03戛\x03扝\x03抱\x03拔\x03捐\x03挽\x03拼\x03捨\x03掃\x03揤\x03搢\x03" +
+       "揅\x03掩\x03㨮\x03摩\x03摾\x03撝\x03摷\x03㩬\x03敏\x03敬\x03旣\x03書\x03晉\x03㬙\x03" +
+       "暑\x03㬈\x03㫤\x03冒\x03冕\x03最\x03暜\x03肭\x03䏙\x03朗\x03望\x03朡\x03杞\x03杓\x03" +
+       "㭉\x03柺\x03枅\x03桒\x03梅\x03梎\x03栟\x03椔\x03㮝\x03楂\x03榣\x03槪\x03檨\x03櫛\x03" +
+       "㰘\x03次\x03歔\x03㱎\x03歲\x03殟\x03殺\x03殻\x03汎\x03沿\x03泍\x03汧\x03洖\x03派\x03" +
+       "海\x03流\x03浩\x03浸\x03涅\x03洴\x03港\x03湮\x03㴳\x03滋\x03滇\x03淹\x03潮\x03濆\x03" +
+       "瀹\x03瀞\x03瀛\x03㶖\x03灊\x03災\x03灷\x03炭\x03煅\x03熜\x03爨\x03爵\x03牐\x03犀\x03" +
+       "犕\x03獺\x03王\x03㺬\x03玥\x03㺸\x03瑇\x03瑜\x03瑱\x03璅\x03瓊\x03㼛\x03甤\x03甾\x03" +
+       "異\x03瘐\x03㿼\x03䀈\x03直\x03眞\x03真\x03睊\x03䀹\x03瞋\x03䁆\x03䂖\x03硎\x03碌\x03" +
+       "磌\x03䃣\x03祖\x03福\x03秫\x03䄯\x03穀\x03穊\x03穏\x03䈂\x03篆\x03築\x03䈧\x03糒\x03" +
+       "䊠\x03糨\x03糣\x03紀\x03絣\x03䌁\x03緇\x03縂\x03繅\x03䌴\x03䍙\x03罺\x03羕\x03翺\x03" +
+       "者\x03聠\x03聰\x03䏕\x03育\x03脃\x03䐋\x03脾\x03媵\x03舄\x03辞\x03䑫\x03芑\x03芋\x03" +
+       "芝\x03劳\x03花\x03芳\x03芽\x03苦\x03若\x03茝\x03荣\x03莭\x03茣\x03莽\x03菧\x03著\x03" +
+       "荓\x03菊\x03菌\x03菜\x03䔫\x03蓱\x03蓳\x03蔖\x03蕤\x03䕝\x03䕡\x03䕫\x03虐\x03虜\x03" +
+       "虧\x03虩\x03蚩\x03蚈\x03蜎\x03蛢\x03蝹\x03蜨\x03蝫\x03螆\x03蟡\x03蠁\x03䗹\x03衠\x03" +
+       "衣\x03裗\x03裞\x03䘵\x03裺\x03㒻\x03䚾\x03䛇\x03誠\x03諭\x03變\x03豕\x03貫\x03賁\x03" +
+       "贛\x03起\x03跋\x03趼\x03跰\x03軔\x03輸\x03邔\x03郱\x03鄑\x03鄛\x03鈸\x03鋗\x03鋘\x03" +
+       "鉼\x03鏹\x03鐕\x03開\x03䦕\x03閷\x03䧦\x03雃\x03嶲\x03霣\x03䩮\x03䩶\x03韠\x03䪲\x03" +
+       "頋\x03頩\x03飢\x03䬳\x03餩\x03馧\x03駂\x03駾\x03䯎\x03鬒\x03鱀\x03鳽\x03䳎\x03䳭\x03" +
+       "鵧\x03䳸\x03麻\x03䵖\x03黹\x03黾\x03鼅\x03鼏\x03鼖\x03鼻"
+
+var xorData string = "" + // Size: 4855 bytes
+       "\x02\x0c\x09\x02\xb0\xec\x02\xad\xd8\x02\xad\xd9\x02\x06\x07\x02\x0f\x12" +
+       "\x02\x0f\x1f\x02\x0f\x1d\x02\x01\x13\x02\x0f\x16\x02\x0f\x0b\x02\x0f3" +
+       "\x02\x0f7\x02\x0f?\x02\x0f/\x02\x0f*\x02\x0c&\x02\x0c*\x02\x0c;\x02\x0c9" +
+       "\x02\x0c%\x02\xab\xed\x02\xab\xe2\x02\xab\xe3\x02\xa9\xe0\x02\xa9\xe1" +
+       "\x02\xa9\xe6\x02\xa3\xcb\x02\xa3\xc8\x02\xa3\xc9\x02\x01#\x02\x01\x08" +
+       "\x02\x0e>\x02\x0e'\x02\x0f\x03\x02\x03\x0d\x02\x03\x09\x02\x03\x17\x02" +
+       "\x03\x0e\x02\x02\x03\x02\x011\x02\x01\x00\x02\x01\x10\x02\x03<\x02\x07" +
+       "\x0d\x02\x02\x0c\x02\x0c0\x02\x01\x03\x02\x01\x01\x02\x01 \x02\x01\x22" +
+       "\x02\x01)\x02\x01\x0a\x02\x01\x0c\x02\x02\x06\x02\x02\x02\x02\x03\x10" +
+       "\x03\x037 \x03\x0b+\x03\x02\x01\x04\x02\x01\x02\x02\x019\x02\x03\x1c\x02" +
+       "\x02$\x03\x80p$\x02\x03:\x02\x03\x0a\x03\xc1r.\x03\xc1r,\x03\xc1r\x02" +
+       "\x02\x02:\x02\x02>\x02\x02,\x02\x02\x10\x02\x02\x00\x03\xc1s<\x03\xc1s*" +
+       "\x03\xc2L$\x03\xc2L;\x02\x09)\x02\x0a\x19\x03\x83\xab\xe3\x03\x83\xab" +
+       "\xf2\x03 4\xe0\x03\x81\xab\xea\x03\x81\xab\xf3\x03 4\xef\x03\x96\xe1\xcd" +
+       "\x03\x84\xe5\xc3\x02\x0d\x11\x03\x8b\xec\xcb\x03\x94\xec\xcf\x03\x9a\xec" +
+       "\xc2\x03\x8b\xec\xdb\x03\x94\xec\xdf\x03\x9a\xec\xd2\x03\x01\x0c!\x03" +
+       "\x01\x0c#\x03ʠ\x9d\x03ʣ\x9c\x03ʢ\x9f\x03ʥ\x9e\x03ʤ\x91\x03ʧ\x90\x03ʦ\x93" +
+       "\x03ʩ\x92\x03ʨ\x95\x03\xca\xf3\xb5\x03\xca\xf0\xb4\x03\xca\xf1\xb7\x03" +
+       "\xca\xf6\xb6\x03\xca\xf7\x89\x03\xca\xf4\x88\x03\xca\xf5\x8b\x03\xca\xfa" +
+       "\x8a\x03\xca\xfb\x8d\x03\xca\xf8\x8c\x03\xca\xf9\x8f\x03\xca\xfe\x8e\x03" +
+       "\xca\xff\x81\x03\xca\xfc\x80\x03\xca\xfd\x83\x03\xca\xe2\x82\x03\xca\xe3" +
+       "\x85\x03\xca\xe0\x84\x03\xca\xe1\x87\x03\xca\xe6\x86\x03\xca\xe7\x99\x03" +
+       "\xca\xe4\x98\x03\xca\xe5\x9b\x03\xca\xea\x9a\x03\xca\xeb\x9d\x03\xca\xe8" +
+       "\x9c\x03ؓ\x89\x03ߔ\x8b\x02\x010\x03\x03\x04\x1e\x03\x04\x15\x12\x03\x0b" +
+       "\x05,\x03\x06\x04\x00\x03\x06\x04)\x03\x06\x044\x03\x06\x04<\x03\x06\x05" +
+       "\x1d\x03\x06\x06\x00\x03\x06\x06\x0a\x03\x06\x06'\x03\x06\x062\x03\x0786" +
+       "\x03\x079/\x03\x079 \x03\x07:\x0e\x03\x07:\x1b\x03\x07:%\x03\x07;/\x03" +
+       "\x07;%\x03\x074\x11\x03\x076\x09\x03\x077*\x03\x070\x01\x03\x070\x0f\x03" +
+       "\x070.\x03\x071\x16\x03\x071\x04\x03\x0710\x03\x072\x18\x03\x072-\x03" +
+       "\x073\x14\x03\x073>\x03\x07'\x09\x03\x07 \x00\x03\x07\x1f\x0b\x03\x07" +
+       "\x18#\x03\x07\x18(\x03\x07\x186\x03\x07\x18\x03\x03\x07\x19\x16\x03\x07" +
+       "\x116\x03\x07\x12'\x03\x07\x13\x10\x03\x07\x0c&\x03\x07\x0c\x08\x03\x07" +
+       "\x0c\x13\x03\x07\x0d\x02\x03\x07\x0d\x1c\x03\x07\x0b5\x03\x07\x0b\x0a" +
+       "\x03\x07\x0b\x01\x03\x07\x0b\x0f\x03\x07\x05\x00\x03\x07\x05\x09\x03\x07" +
+       "\x05\x0b\x03\x07\x07\x01\x03\x07\x07\x08\x03\x07\x00<\x03\x07\x00+\x03" +
+       "\x07\x01)\x03\x07\x01\x1b\x03\x07\x01\x08\x03\x07\x03?\x03\x0445\x03\x04" +
+       "4\x08\x03\x0454\x03\x04)/\x03\x04)5\x03\x04+\x05\x03\x04+\x14\x03\x04+ " +
+       "\x03\x04+<\x03\x04*&\x03\x04*\x22\x03\x04&8\x03\x04!\x01\x03\x04!\x22" +
+       "\x03\x04\x11+\x03\x04\x10.\x03\x04\x104\x03\x04\x13=\x03\x04\x12\x04\x03" +
+       "\x04\x12\x0a\x03\x04\x0d\x1d\x03\x04\x0d\x07\x03\x04\x0d \x03\x05<>\x03" +
+       "\x055<\x03\x055!\x03\x055#\x03\x055&\x03\x054\x1d\x03\x054\x02\x03\x054" +
+       "\x07\x03\x0571\x03\x053\x1a\x03\x053\x16\x03\x05.<\x03\x05.\x07\x03\x05)" +
+       ":\x03\x05)<\x03\x05)\x0c\x03\x05)\x15\x03\x05+-\x03\x05+5\x03\x05$\x1e" +
+       "\x03\x05$\x14\x03\x05'\x04\x03\x05'\x14\x03\x05&\x02\x03\x05\x226\x03" +
+       "\x05\x22\x0c\x03\x05\x22\x1c\x03\x05\x19\x0a\x03\x05\x1b\x09\x03\x05\x1b" +
+       "\x0c\x03\x05\x14\x07\x03\x05\x16?\x03\x05\x16\x0c\x03\x05\x0c\x05\x03" +
+       "\x05\x0e\x0f\x03\x05\x01\x0e\x03\x05\x00(\x03\x05\x030\x03\x05\x03\x06" +
+       "\x03\x0a==\x03\x0a=1\x03\x0a=,\x03\x0a=\x0c\x03\x0a??\x03\x0a<\x08\x03" +
+       "\x0a9!\x03\x0a9)\x03\x0a97\x03\x0a99\x03\x0a6\x0a\x03\x0a6\x1c\x03\x0a6" +
+       "\x17\x03\x0a7'\x03\x0a78\x03\x0a73\x03\x0a'\x01\x03\x0a'&\x03\x0a\x1f" +
+       "\x0e\x03\x0a\x1f\x03\x03\x0a\x1f3\x03\x0a\x1b/\x03\x0a\x18\x19\x03\x0a" +
+       "\x19\x01\x03\x0a\x16\x14\x03\x0a\x0e\x22\x03\x0a\x0f\x10\x03\x0a\x0f\x02" +
+       "\x03\x0a\x0f \x03\x0a\x0c\x04\x03\x0a\x0b>\x03\x0a\x0b+\x03\x0a\x08/\x03" +
+       "\x0a\x046\x03\x0a\x05\x14\x03\x0a\x00\x04\x03\x0a\x00\x10\x03\x0a\x00" +
+       "\x14\x03\x0b<3\x03\x0b;*\x03\x0b9\x22\x03\x0b9)\x03\x0b97\x03\x0b+\x10" +
+       "\x03\x0b((\x03\x0b&5\x03\x0b$\x1c\x03\x0b$\x12\x03\x0b%\x04\x03\x0b#<" +
+       "\x03\x0b#0\x03\x0b#\x0d\x03\x0b#\x19\x03\x0b!:\x03\x0b!\x1f\x03\x0b!\x00" +
+       "\x03\x0b\x1e5\x03\x0b\x1c\x1d\x03\x0b\x1d-\x03\x0b\x1d(\x03\x0b\x18.\x03" +
+       "\x0b\x18 \x03\x0b\x18\x16\x03\x0b\x14\x13\x03\x0b\x15$\x03\x0b\x15\x22" +
+       "\x03\x0b\x12\x1b\x03\x0b\x12\x10\x03\x0b\x132\x03\x0b\x13=\x03\x0b\x12" +
+       "\x18\x03\x0b\x0c&\x03\x0b\x061\x03\x0b\x06:\x03\x0b\x05#\x03\x0b\x05<" +
+       "\x03\x0b\x04\x0b\x03\x0b\x04\x04\x03\x0b\x04\x1b\x03\x0b\x042\x03\x0b" +
+       "\x041\x03\x0b\x03\x03\x03\x0b\x03\x1d\x03\x0b\x03/\x03\x0b\x03+\x03\x0b" +
+       "\x02\x1b\x03\x0b\x02\x00\x03\x0b\x01\x1e\x03\x0b\x01\x08\x03\x0b\x015" +
+       "\x03\x06\x0d9\x03\x06\x0d=\x03\x06\x0d?\x03\x02\x001\x03\x02\x003\x03" +
+       "\x02\x02\x19\x03\x02\x006\x03\x02\x02\x1b\x03\x02\x004\x03\x02\x00<\x03" +
+       "\x02\x02\x0a\x03\x02\x02\x0e\x03\x02\x01\x1a\x03\x02\x01\x07\x03\x02\x01" +
+       "\x05\x03\x02\x01\x0b\x03\x02\x01%\x03\x02\x01\x0c\x03\x02\x01\x04\x03" +
+       "\x02\x01\x1c\x03\x02\x00.\x03\x02\x002\x03\x02\x00>\x03\x02\x00\x12\x03" +
+       "\x02\x00\x16\x03\x02\x011\x03\x02\x013\x03\x02\x02 \x03\x02\x02%\x03\x02" +
+       "\x02$\x03\x02\x028\x03\x02\x02;\x03\x02\x024\x03\x02\x012\x03\x02\x022" +
+       "\x03\x02\x02/\x03\x02\x01,\x03\x02\x01\x13\x03\x02\x01\x16\x03\x02\x01" +
+       "\x11\x03\x02\x01\x1e\x03\x02\x01\x15\x03\x02\x01\x17\x03\x02\x01\x0f\x03" +
+       "\x02\x01\x08\x03\x02\x00?\x03\x02\x03\x07\x03\x02\x03\x0d\x03\x02\x03" +
+       "\x13\x03\x02\x03\x1d\x03\x02\x03\x1f\x03\x02\x00\x03\x03\x02\x00\x0d\x03" +
+       "\x02\x00\x01\x03\x02\x00\x1b\x03\x02\x00\x19\x03\x02\x00\x18\x03\x02\x00" +
+       "\x13\x03\x02\x00/\x03\x07>\x12\x03\x07<\x1f\x03\x07>\x1d\x03\x06\x1d\x0e" +
+       "\x03\x07>\x1c\x03\x07>:\x03\x07>\x13\x03\x04\x12+\x03\x07?\x03\x03\x07>" +
+       "\x02\x03\x06\x224\x03\x06\x1a.\x03\x07<%\x03\x06\x1c\x0b\x03\x0609\x03" +
+       "\x05\x1f\x01\x03\x04'\x08\x03\x93\xfd\xf5\x03\x02\x0d \x03\x02\x0d#\x03" +
+       "\x02\x0d!\x03\x02\x0d&\x03\x02\x0d\x22\x03\x02\x0d/\x03\x02\x0d,\x03\x02" +
+       "\x0d$\x03\x02\x0d'\x03\x02\x0d%\x03\x02\x0d;\x03\x02\x0d=\x03\x02\x0d?" +
+       "\x03\x099.\x03\x08\x0b7\x03\x08\x02\x14\x03\x08\x14\x0d\x03\x08.:\x03" +
+       "\x089'\x03\x0f\x0b\x18\x03\x0f\x1c1\x03\x0f\x17&\x03\x0f9\x1f\x03\x0f0" +
+       "\x0c\x03\x0e\x0a9\x03\x0e\x056\x03\x0e\x1c#\x03\x0f\x13\x0e\x03\x072\x00" +
+       "\x03\x070\x0d\x03\x072\x0b\x03\x06\x11\x18\x03\x070\x10\x03\x06\x0f(\x03" +
+       "\x072\x05\x03\x06\x0f,\x03\x073\x15\x03\x06\x07\x08\x03\x05\x16\x02\x03" +
+       "\x04\x0b \x03\x05:8\x03\x05\x16%\x03\x0a\x0d\x1f\x03\x06\x16\x10\x03\x05" +
+       "\x1d5\x03\x05*;\x03\x05\x16\x1b\x03\x04.-\x03\x06\x1a\x19\x03\x04\x03," +
+       "\x03\x0b87\x03\x04/\x0a\x03\x06\x00,\x03\x04-\x01\x03\x04\x1e-\x03\x06/(" +
+       "\x03\x0a\x0b5\x03\x06\x0e7\x03\x06\x07.\x03\x0597\x03\x0a*%\x03\x0760" +
+       "\x03\x06\x0c;\x03\x05'\x00\x03\x072.\x03\x072\x08\x03\x06=\x01\x03\x06" +
+       "\x05\x1b\x03\x06\x06\x12\x03\x06$=\x03\x06'\x0d\x03\x04\x11\x0f\x03\x076" +
+       ",\x03\x06\x07;\x03\x06.,\x03\x86\xf9\xea\x03\x8f\xff\xeb\x02\x092\x02" +
+       "\x095\x02\x094\x02\x09;\x02\x09>\x02\x098\x02\x09*\x02\x09/\x02\x09,\x02" +
+       "\x09%\x02\x09&\x02\x09#\x02\x09 \x02\x08!\x02\x08%\x02\x08$\x02\x08+\x02" +
+       "\x08.\x02\x08*\x02\x08&\x02\x088\x02\x08>\x02\x084\x02\x086\x02\x080\x02" +
+       "\x08\x10\x02\x08\x17\x02\x08\x12\x02\x08\x1d\x02\x08\x1f\x02\x08\x13\x02" +
+       "\x08\x15\x02\x08\x14\x02\x08\x0c\x03\x8b\xfd\xd0\x03\x81\xec\xc6\x03\x87" +
+       "\xe0\x8a\x03-2\xe3\x03\x80\xef\xe4\x03-2\xea\x03\x88\xe6\xeb\x03\x8e\xe6" +
+       "\xe8\x03\x84\xe6\xe9\x03\x97\xe6\xee\x03-2\xf9\x03-2\xf6\x03\x8e\xe3\xad" +
+       "\x03\x80\xe3\x92\x03\x88\xe3\x90\x03\x8e\xe3\x90\x03\x80\xe3\x97\x03\x88" +
+       "\xe3\x95\x03\x88\xfe\xcb\x03\x8e\xfe\xca\x03\x84\xfe\xcd\x03\x91\xef\xc9" +
+       "\x03-2\xc1\x03-2\xc0\x03-2\xcb\x03\x88@\x09\x03\x8e@\x08\x03\x8f\xe0\xf5" +
+       "\x03\x8e\xe6\xf9\x03\x8e\xe0\xfa\x03\x93\xff\xf4\x03\x84\xee\xd3\x03\x0b" +
+       "(\x04\x023 \x021;\x02\x01*\x03\x0b#\x10\x03\x0b 0\x03\x0b!\x10\x03\x0b!0" +
+       "\x03\x07\x15\x08\x03\x09?5\x03\x07\x1f\x08\x03\x07\x17\x0b\x03\x09\x1f" +
+       "\x15\x03\x0b\x1c7\x03\x0a+#\x03\x06\x1a\x1b\x03\x06\x1a\x14\x03\x0a\x01" +
+       "\x18\x03\x06#\x1b\x03\x0a2\x0c\x03\x0a\x01\x04\x03\x09#;\x03\x08='\x03" +
+       "\x08\x1a\x0a\x03\x07</\x03\x07:+\x03\x07\x07*\x03\x06&\x1c\x03\x09\x0c" +
+       "\x16\x03\x09\x10\x0e\x03\x08'\x0f\x03\x08+\x09\x03\x074%\x03\x06!3\x03" +
+       "\x06\x03+\x03\x0b\x1e\x19\x03\x0a))\x03\x09\x08\x19\x03\x08,\x05\x03\x07" +
+       "<2\x03\x06\x1c>\x03\x0a\x111\x03\x09\x1b\x09\x03\x073.\x03\x07\x01\x00" +
+       "\x03\x09/,\x03\x07#>\x03\x07\x048\x03\x0a\x1f\x22\x03\x098>\x03\x09\x11" +
+       "\x00\x03\x08/\x17\x03\x06'\x22\x03\x0b\x1a+\x03\x0a\x22\x19\x03\x0a/1" +
+       "\x03\x0974\x03\x09\x0f\x22\x03\x08,\x22\x03\x08?\x14\x03\x07$5\x03\x07<3" +
+       "\x03\x07=*\x03\x07\x13\x18\x03\x068\x0a\x03\x06\x09\x16\x03\x06\x13\x00" +
+       "\x03\x08\x067\x03\x08\x01\x03\x03\x08\x12\x1d\x03\x07+7\x03\x06(;\x03" +
+       "\x06\x1c?\x03\x07\x0e\x17\x03\x0a\x06\x1d\x03\x0a\x19\x07\x03\x08\x14$" +
+       "\x03\x07$;\x03\x08,$\x03\x08\x06\x0d\x03\x07\x16\x0a\x03\x06>>\x03\x0a" +
+       "\x06\x12\x03\x0a\x14)\x03\x09\x0d\x1f\x03\x09\x12\x17\x03\x09\x19\x01" +
+       "\x03\x08\x11 \x03\x08\x1d'\x03\x06<\x1a\x03\x0a.\x00\x03\x07'\x18\x03" +
+       "\x0a\x22\x08\x03\x08\x0d\x0a\x03\x08\x13)\x03\x07*)\x03\x06<,\x03\x07" +
+       "\x0b\x1a\x03\x09.\x14\x03\x09\x0d\x1e\x03\x07\x0e#\x03\x0b\x1d'\x03\x0a" +
+       "\x0a8\x03\x09%2\x03\x08+&\x03\x080\x12\x03\x0a)4\x03\x08\x06\x1f\x03\x0b" +
+       "\x1b\x1a\x03\x0a\x1b\x0f\x03\x0b\x1d*\x03\x09\x16$\x03\x090\x11\x03\x08" +
+       "\x11\x08\x03\x0a*(\x03\x0a\x042\x03\x089,\x03\x074'\x03\x07\x0f\x05\x03" +
+       "\x09\x0b\x0a\x03\x07\x1b\x01\x03\x09\x17:\x03\x09.\x0d\x03\x07.\x11\x03" +
+       "\x09+\x15\x03\x080\x13\x03\x0b\x1f\x19\x03\x0a \x11\x03\x0a\x220\x03\x09" +
+       "\x07;\x03\x08\x16\x1c\x03\x07,\x13\x03\x07\x0e/\x03\x06\x221\x03\x0a." +
+       "\x0a\x03\x0a7\x02\x03\x0a\x032\x03\x0a\x1d.\x03\x091\x06\x03\x09\x19:" +
+       "\x03\x08\x02/\x03\x060+\x03\x06\x0f-\x03\x06\x1c\x1f\x03\x06\x1d\x07\x03" +
+       "\x0a,\x11\x03\x09=\x0d\x03\x09\x0b;\x03\x07\x1b/\x03\x0a\x1f:\x03\x09 " +
+       "\x1f\x03\x09.\x10\x03\x094\x0b\x03\x09\x1a1\x03\x08#\x1a\x03\x084\x1d" +
+       "\x03\x08\x01\x1f\x03\x08\x11\x22\x03\x07'8\x03\x07\x1a>\x03\x0757\x03" +
+       "\x06&9\x03\x06+\x11\x03\x0a.\x0b\x03\x0a,>\x03\x0a4#\x03\x08%\x17\x03" +
+       "\x07\x05\x22\x03\x07\x0c\x0b\x03\x0a\x1d+\x03\x0a\x19\x16\x03\x09+\x1f" +
+       "\x03\x09\x08\x0b\x03\x08\x16\x18\x03\x08+\x12\x03\x0b\x1d\x0c\x03\x0a=" +
+       "\x10\x03\x0a\x09\x0d\x03\x0a\x10\x11\x03\x09&0\x03\x08(\x1f\x03\x087\x07" +
+       "\x03\x08\x185\x03\x07'6\x03\x06.\x05\x03\x06=\x04\x03\x06;;\x03\x06\x06," +
+       "\x03\x0b\x18>\x03\x08\x00\x18\x03\x06 \x03\x03\x06<\x00\x03\x09%\x18\x03" +
+       "\x0b\x1c<\x03\x0a%!\x03\x0a\x09\x12\x03\x0a\x16\x02\x03\x090'\x03\x09" +
+       "\x0e=\x03\x08 \x0e\x03\x08>\x03\x03\x074>\x03\x06&?\x03\x06\x19\x09\x03" +
+       "\x06?(\x03\x0a-\x0e\x03\x09:3\x03\x098:\x03\x09\x12\x0b\x03\x09\x1d\x17" +
+       "\x03\x087\x05\x03\x082\x14\x03\x08\x06%\x03\x08\x13\x1f\x03\x06\x06\x0e" +
+       "\x03\x0a\x22<\x03\x09/<\x03\x06>+\x03\x0a'?\x03\x0a\x13\x0c\x03\x09\x10<" +
+       "\x03\x07\x1b=\x03\x0a\x19\x13\x03\x09\x22\x1d\x03\x09\x07\x0d\x03\x08)" +
+       "\x1c\x03\x06=\x1a\x03\x0a/4\x03\x0a7\x11\x03\x0a\x16:\x03\x09?3\x03\x09:" +
+       "/\x03\x09\x05\x0a\x03\x09\x14\x06\x03\x087\x22\x03\x080\x07\x03\x08\x1a" +
+       "\x1f\x03\x07\x04(\x03\x07\x04\x09\x03\x06 %\x03\x06<\x08\x03\x0a+\x14" +
+       "\x03\x09\x1d\x16\x03\x0a70\x03\x08 >\x03\x0857\x03\x070\x0a\x03\x06=\x12" +
+       "\x03\x06\x16%\x03\x06\x1d,\x03\x099#\x03\x09\x10>\x03\x07 \x1e\x03\x08" +
+       "\x0c<\x03\x08\x0b\x18\x03\x08\x15+\x03\x08,:\x03\x08%\x22\x03\x07\x0a$" +
+       "\x03\x0b\x1c=\x03\x07+\x08\x03\x0a/\x05\x03\x0a \x07\x03\x0a\x12'\x03" +
+       "\x09#\x11\x03\x08\x1b\x15\x03\x0a\x06\x01\x03\x09\x1c\x1b\x03\x0922\x03" +
+       "\x07\x14<\x03\x07\x09\x04\x03\x061\x04\x03\x07\x0e\x01\x03\x0a\x13\x18" +
+       "\x03\x0a-\x0c\x03\x0a?\x0d\x03\x0a\x09\x0a\x03\x091&\x03\x0a/\x0b\x03" +
+       "\x08$<\x03\x083\x1d\x03\x08\x0c$\x03\x08\x0d\x07\x03\x08\x0d?\x03\x08" +
+       "\x0e\x14\x03\x065\x0a\x03\x08\x1a#\x03\x08\x16#\x03\x0702\x03\x07\x03" +
+       "\x1a\x03\x06(\x1d\x03\x06+\x1b\x03\x06\x0b\x05\x03\x06\x0b\x17\x03\x06" +
+       "\x0c\x04\x03\x06\x1e\x19\x03\x06+0\x03\x062\x18\x03\x0b\x16\x1e\x03\x0a+" +
+       "\x16\x03\x0a-?\x03\x0a#:\x03\x0a#\x10\x03\x0a%$\x03\x0a>+\x03\x0a01\x03" +
+       "\x0a1\x10\x03\x0a\x099\x03\x0a\x0a\x12\x03\x0a\x19\x1f\x03\x0a\x19\x12" +
+       "\x03\x09*)\x03\x09-\x16\x03\x09.1\x03\x09.2\x03\x09<\x0e\x03\x09> \x03" +
+       "\x093\x12\x03\x09\x0b\x01\x03\x09\x1c2\x03\x09\x11\x1c\x03\x09\x15%\x03" +
+       "\x08,&\x03\x08!\x22\x03\x089(\x03\x08\x0b\x1a\x03\x08\x0d2\x03\x08\x0c" +
+       "\x04\x03\x08\x0c\x06\x03\x08\x0c\x1f\x03\x08\x0c\x0c\x03\x08\x0f\x1f\x03" +
+       "\x08\x0f\x1d\x03\x08\x00\x14\x03\x08\x03\x14\x03\x08\x06\x16\x03\x08\x1e" +
+       "#\x03\x08\x11\x11\x03\x08\x10\x18\x03\x08\x14(\x03\x07)\x1e\x03\x07.1" +
+       "\x03\x07 $\x03\x07 '\x03\x078\x08\x03\x07\x0d0\x03\x07\x0f7\x03\x07\x05#" +
+       "\x03\x07\x05\x1a\x03\x07\x1a7\x03\x07\x1d-\x03\x07\x17\x10\x03\x06)\x1f" +
+       "\x03\x062\x0b\x03\x066\x16\x03\x06\x09\x11\x03\x09(\x1e\x03\x07!5\x03" +
+       "\x0b\x11\x16\x03\x0a/\x04\x03\x0a,\x1a\x03\x0b\x173\x03\x0a,1\x03\x0a/5" +
+       "\x03\x0a\x221\x03\x0a\x22\x0d\x03\x0a?%\x03\x0a<,\x03\x0a?#\x03\x0a>\x19" +
+       "\x03\x0a\x08&\x03\x0a\x0b\x0e\x03\x0a\x0c:\x03\x0a\x0c+\x03\x0a\x03\x22" +
+       "\x03\x0a\x06)\x03\x0a\x11\x10\x03\x0a\x11\x1a\x03\x0a\x17-\x03\x0a\x14(" +
+       "\x03\x09)\x1e\x03\x09/\x09\x03\x09.\x00\x03\x09,\x07\x03\x09/*\x03\x09-9" +
+       "\x03\x09\x228\x03\x09%\x09\x03\x09:\x12\x03\x09;\x1d\x03\x09?\x06\x03" +
+       "\x093%\x03\x096\x05\x03\x096\x08\x03\x097\x02\x03\x09\x07,\x03\x09\x04," +
+       "\x03\x09\x1f\x16\x03\x09\x11\x03\x03\x09\x11\x12\x03\x09\x168\x03\x08*" +
+       "\x05\x03\x08/2\x03\x084:\x03\x08\x22+\x03\x08 0\x03\x08&\x0a\x03\x08;" +
+       "\x10\x03\x08>$\x03\x08>\x18\x03\x0829\x03\x082:\x03\x081,\x03\x081<\x03" +
+       "\x081\x1c\x03\x087#\x03\x087*\x03\x08\x09'\x03\x08\x00\x1d\x03\x08\x05-" +
+       "\x03\x08\x1f4\x03\x08\x1d\x04\x03\x08\x16\x0f\x03\x07*7\x03\x07'!\x03" +
+       "\x07%\x1b\x03\x077\x0c\x03\x07\x0c1\x03\x07\x0c.\x03\x07\x00\x06\x03\x07" +
+       "\x01\x02\x03\x07\x010\x03\x07\x06=\x03\x07\x01\x03\x03\x07\x01\x13\x03" +
+       "\x07\x06\x06\x03\x07\x05\x0a\x03\x07\x1f\x09\x03\x07\x17:\x03\x06*1\x03" +
+       "\x06-\x1d\x03\x06\x223\x03\x062:\x03\x060$\x03\x066\x1e\x03\x064\x12\x03" +
+       "\x0645\x03\x06\x0b\x00\x03\x06\x0b7\x03\x06\x07\x1f\x03\x06\x15\x12\x03" +
+       "\x0c\x05\x0f\x03\x0b+\x0b\x03\x0b+-\x03\x06\x16\x1b\x03\x06\x15\x17\x03" +
+       "\x89\xca\xea\x03\x89\xca\xe8\x03\x0c8\x10\x03\x0c8\x01\x03\x0c8\x0f\x03" +
+       "\x0d8%\x03\x0d8!\x03\x0c8-\x03\x0c8/\x03\x0c8+\x03\x0c87\x03\x0c85\x03" +
+       "\x0c9\x09\x03\x0c9\x0d\x03\x0c9\x0f\x03\x0c9\x0b\x03\xcfu\x0c\x03\xcfu" +
+       "\x0f\x03\xcfu\x0e\x03\xcfu\x09\x03\x0c9\x10\x03\x0d9\x0c\x03\xcf`;\x03" +
+       "\xcf`>\x03\xcf`9\x03\xcf`8\x03\xcf`7\x03\xcf`*\x03\xcf`-\x03\xcf`,\x03" +
+       "\x0d\x1b\x1a\x03\x0d\x1b&\x03\x0c=.\x03\x0c=%\x03\x0c>\x1e\x03\x0c>\x14" +
+       "\x03\x0c?\x06\x03\x0c?\x0b\x03\x0c?\x0c\x03\x0c?\x0d\x03\x0c?\x02\x03" +
+       "\x0c>\x0f\x03\x0c>\x08\x03\x0c>\x09\x03\x0c>,\x03\x0c>\x0c\x03\x0c?\x13" +
+       "\x03\x0c?\x16\x03\x0c?\x15\x03\x0c?\x1c\x03\x0c?\x1f\x03\x0c?\x1d\x03" +
+       "\x0c?\x1a\x03\x0c?\x17\x03\x0c?\x08\x03\x0c?\x09\x03\x0c?\x0e\x03\x0c?" +
+       "\x04\x03\x0c?\x05\x03\x0c<?\x03\x0c=\x00\x03\x0c=\x06\x03\x0c=\x05\x03" +
+       "\x0c=\x0c\x03\x0c=\x0f\x03\x0c=\x0d\x03\x0c=\x0b\x03\x0c=\x07\x03\x0c=" +
+       "\x19\x03\x0c=\x15\x03\x0c=\x11\x03\x0c=1\x03\x0c=3\x03\x0c=0\x03\x0c=>" +
+       "\x03\x0c=2\x03\x0c=6\x03\x0c<\x07\x03\x0c<\x05\x03\x0e:!\x03\x0e:#\x03" +
+       "\x0e8\x09\x03\x0e:&\x03\x0e8\x0b\x03\x0e:$\x03\x0e:,\x03\x0e8\x1a\x03" +
+       "\x0e8\x1e\x03\x0e:*\x03\x0e:7\x03\x0e:5\x03\x0e:;\x03\x0e:\x15\x03\x0e:<" +
+       "\x03\x0e:4\x03\x0e:'\x03\x0e:-\x03\x0e:%\x03\x0e:?\x03\x0e:=\x03\x0e:)" +
+       "\x03\x0e:/\x03\xcfs'\x03\x0d=\x0f\x03\x0d+*\x03\x0d99\x03\x0d9;\x03\x0d9" +
+       "?\x03\x0d)\x0d\x03\x0d(%\x02\x01\x18\x02\x01(\x02\x01\x1e\x03\x0f$!\x03" +
+       "\x0f87\x03\x0f4\x0e\x03\x0f5\x1d\x03\x06'\x03\x03\x0f\x08\x18\x03\x0f" +
+       "\x0d\x1b\x03\x0e2=\x03\x0e;\x08\x03\x0e:\x0b\x03\x0e\x06$\x03\x0e\x0d)" +
+       "\x03\x0e\x16\x1f\x03\x0e\x16\x1b\x03\x0d$\x0a\x03\x05,\x1d\x03\x0d. \x03" +
+       "\x0d.#\x03\x0c(/\x03\x09%\x02\x03\x0d90\x03\x0d\x0e4\x03\x0d\x0d\x0f\x03" +
+       "\x0c#\x00\x03\x0c,\x1e\x03\x0c2\x0e\x03\x0c\x01\x17\x03\x0c\x09:\x03\x0e" +
+       "\x173\x03\x0c\x08\x03\x03\x0c\x11\x07\x03\x0c\x10\x18\x03\x0c\x1f\x1c" +
+       "\x03\x0c\x19\x0e\x03\x0c\x1a\x1f\x03\x0f0>\x03\x0b->\x03\x0b<+\x03\x0b8" +
+       "\x13\x03\x0b\x043\x03\x0b\x14\x03\x03\x0b\x16%\x03\x0d\x22&\x03\x0b\x1a" +
+       "\x1a\x03\x0b\x1a\x04\x03\x0a%9\x03\x0a&2\x03\x0a&0\x03\x0a!\x1a\x03\x0a!" +
+       "7\x03\x0a5\x10\x03\x0a=4\x03\x0a?\x0e\x03\x0a>\x10\x03\x0a\x00 \x03\x0a" +
+       "\x0f:\x03\x0a\x0f9\x03\x0a\x0b\x0a\x03\x0a\x17%\x03\x0a\x1b-\x03\x09-" +
+       "\x1a\x03\x09,4\x03\x09.,\x03\x09)\x09\x03\x096!\x03\x091\x1f\x03\x093" +
+       "\x16\x03\x0c+\x1f\x03\x098 \x03\x098=\x03\x0c(\x1a\x03\x0c(\x16\x03\x09" +
+       "\x0a+\x03\x09\x16\x12\x03\x09\x13\x0e\x03\x09\x153\x03\x08)!\x03\x09\x1a" +
+       "\x01\x03\x09\x18\x01\x03\x08%#\x03\x08>\x22\x03\x08\x05%\x03\x08\x02*" +
+       "\x03\x08\x15;\x03\x08\x1b7\x03\x0f\x07\x1d\x03\x0f\x04\x03\x03\x070\x0c" +
+       "\x03\x07;\x0b\x03\x07\x08\x17\x03\x07\x12\x06\x03\x06/-\x03\x0671\x03" +
+       "\x065+\x03\x06>7\x03\x06\x049\x03\x05+\x1e\x03\x05,\x17\x03\x05 \x1d\x03" +
+       "\x05\x22\x05\x03\x050\x1d"
+
+// 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 *idnaTrie) lookup(s []byte) (v uint16, sz int) {
+       c0 := s[0]
+       switch {
+       case c0 < 0x80: // is ASCII
+               return idnaValues[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 := idnaIndex[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 := idnaIndex[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 = idnaIndex[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 := idnaIndex[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 = idnaIndex[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 = idnaIndex[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 *idnaTrie) lookupUnsafe(s []byte) uint16 {
+       c0 := s[0]
+       if c0 < 0x80 { // is ASCII
+               return idnaValues[c0]
+       }
+       i := idnaIndex[c0]
+       if c0 < 0xE0 { // 2-byte UTF-8
+               return t.lookupValue(uint32(i), s[1])
+       }
+       i = idnaIndex[uint32(i)<<6+uint32(s[1])]
+       if c0 < 0xF0 { // 3-byte UTF-8
+               return t.lookupValue(uint32(i), s[2])
+       }
+       i = idnaIndex[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 *idnaTrie) lookupString(s string) (v uint16, sz int) {
+       c0 := s[0]
+       switch {
+       case c0 < 0x80: // is ASCII
+               return idnaValues[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 := idnaIndex[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 := idnaIndex[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 = idnaIndex[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 := idnaIndex[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 = idnaIndex[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 = idnaIndex[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 *idnaTrie) lookupStringUnsafe(s string) uint16 {
+       c0 := s[0]
+       if c0 < 0x80 { // is ASCII
+               return idnaValues[c0]
+       }
+       i := idnaIndex[c0]
+       if c0 < 0xE0 { // 2-byte UTF-8
+               return t.lookupValue(uint32(i), s[1])
+       }
+       i = idnaIndex[uint32(i)<<6+uint32(s[1])]
+       if c0 < 0xF0 { // 3-byte UTF-8
+               return t.lookupValue(uint32(i), s[2])
+       }
+       i = idnaIndex[uint32(i)<<6+uint32(s[2])]
+       if c0 < 0xF8 { // 4-byte UTF-8
+               return t.lookupValue(uint32(i), s[3])
+       }
+       return 0
+}
+
+// idnaTrie. Total size: 29404 bytes (28.71 KiB). Checksum: 848c45acb5f7991c.
+type idnaTrie struct{}
+
+func newIdnaTrie(i int) *idnaTrie {
+       return &idnaTrie{}
+}
+
+// lookupValue determines the type of block n and looks up the value for b.
+func (t *idnaTrie) lookupValue(n uint32, b byte) uint16 {
+       switch {
+       case n < 125:
+               return uint16(idnaValues[n<<6+uint32(b)])
+       default:
+               n -= 125
+               return uint16(idnaSparse.lookup(n, b))
+       }
+}
+
+// idnaValues: 127 blocks, 8128 entries, 16256 bytes
+// The third block is the zero block.
+var idnaValues = [8128]uint16{
+       // Block 0x0, offset 0x0
+       0x00: 0x0080, 0x01: 0x0080, 0x02: 0x0080, 0x03: 0x0080, 0x04: 0x0080, 0x05: 0x0080,
+       0x06: 0x0080, 0x07: 0x0080, 0x08: 0x0080, 0x09: 0x0080, 0x0a: 0x0080, 0x0b: 0x0080,
+       0x0c: 0x0080, 0x0d: 0x0080, 0x0e: 0x0080, 0x0f: 0x0080, 0x10: 0x0080, 0x11: 0x0080,
+       0x12: 0x0080, 0x13: 0x0080, 0x14: 0x0080, 0x15: 0x0080, 0x16: 0x0080, 0x17: 0x0080,
+       0x18: 0x0080, 0x19: 0x0080, 0x1a: 0x0080, 0x1b: 0x0080, 0x1c: 0x0080, 0x1d: 0x0080,
+       0x1e: 0x0080, 0x1f: 0x0080, 0x20: 0x0080, 0x21: 0x0080, 0x22: 0x0080, 0x23: 0x0080,
+       0x24: 0x0080, 0x25: 0x0080, 0x26: 0x0080, 0x27: 0x0080, 0x28: 0x0080, 0x29: 0x0080,
+       0x2a: 0x0080, 0x2b: 0x0080, 0x2c: 0x0080, 0x2d: 0x0008, 0x2e: 0x0008, 0x2f: 0x0080,
+       0x30: 0x0008, 0x31: 0x0008, 0x32: 0x0008, 0x33: 0x0008, 0x34: 0x0008, 0x35: 0x0008,
+       0x36: 0x0008, 0x37: 0x0008, 0x38: 0x0008, 0x39: 0x0008, 0x3a: 0x0080, 0x3b: 0x0080,
+       0x3c: 0x0080, 0x3d: 0x0080, 0x3e: 0x0080, 0x3f: 0x0080,
+       // Block 0x1, offset 0x40
+       0x40: 0x0080, 0x41: 0xe105, 0x42: 0xe105, 0x43: 0xe105, 0x44: 0xe105, 0x45: 0xe105,
+       0x46: 0xe105, 0x47: 0xe105, 0x48: 0xe105, 0x49: 0xe105, 0x4a: 0xe105, 0x4b: 0xe105,
+       0x4c: 0xe105, 0x4d: 0xe105, 0x4e: 0xe105, 0x4f: 0xe105, 0x50: 0xe105, 0x51: 0xe105,
+       0x52: 0xe105, 0x53: 0xe105, 0x54: 0xe105, 0x55: 0xe105, 0x56: 0xe105, 0x57: 0xe105,
+       0x58: 0xe105, 0x59: 0xe105, 0x5a: 0xe105, 0x5b: 0x0080, 0x5c: 0x0080, 0x5d: 0x0080,
+       0x5e: 0x0080, 0x5f: 0x0080, 0x60: 0x0080, 0x61: 0x0008, 0x62: 0x0008, 0x63: 0x0008,
+       0x64: 0x0008, 0x65: 0x0008, 0x66: 0x0008, 0x67: 0x0008, 0x68: 0x0008, 0x69: 0x0008,
+       0x6a: 0x0008, 0x6b: 0x0008, 0x6c: 0x0008, 0x6d: 0x0008, 0x6e: 0x0008, 0x6f: 0x0008,
+       0x70: 0x0008, 0x71: 0x0008, 0x72: 0x0008, 0x73: 0x0008, 0x74: 0x0008, 0x75: 0x0008,
+       0x76: 0x0008, 0x77: 0x0008, 0x78: 0x0008, 0x79: 0x0008, 0x7a: 0x0008, 0x7b: 0x0080,
+       0x7c: 0x0080, 0x7d: 0x0080, 0x7e: 0x0080, 0x7f: 0x0080,
+       // Block 0x2, offset 0x80
+       // Block 0x3, offset 0xc0
+       0xc0: 0x0040, 0xc1: 0x0040, 0xc2: 0x0040, 0xc3: 0x0040, 0xc4: 0x0040, 0xc5: 0x0040,
+       0xc6: 0x0040, 0xc7: 0x0040, 0xc8: 0x0040, 0xc9: 0x0040, 0xca: 0x0040, 0xcb: 0x0040,
+       0xcc: 0x0040, 0xcd: 0x0040, 0xce: 0x0040, 0xcf: 0x0040, 0xd0: 0x0040, 0xd1: 0x0040,
+       0xd2: 0x0040, 0xd3: 0x0040, 0xd4: 0x0040, 0xd5: 0x0040, 0xd6: 0x0040, 0xd7: 0x0040,
+       0xd8: 0x0040, 0xd9: 0x0040, 0xda: 0x0040, 0xdb: 0x0040, 0xdc: 0x0040, 0xdd: 0x0040,
+       0xde: 0x0040, 0xdf: 0x0040, 0xe0: 0x000a, 0xe1: 0x0018, 0xe2: 0x0018, 0xe3: 0x0018,
+       0xe4: 0x0018, 0xe5: 0x0018, 0xe6: 0x0018, 0xe7: 0x0018, 0xe8: 0x001a, 0xe9: 0x0018,
+       0xea: 0x0039, 0xeb: 0x0018, 0xec: 0x0018, 0xed: 0x03c0, 0xee: 0x0018, 0xef: 0x004a,
+       0xf0: 0x0018, 0xf1: 0x0018, 0xf2: 0x0069, 0xf3: 0x0079, 0xf4: 0x008a, 0xf5: 0x0005,
+       0xf6: 0x0018, 0xf7: 0x0008, 0xf8: 0x00aa, 0xf9: 0x00c9, 0xfa: 0x00d9, 0xfb: 0x0018,
+       0xfc: 0x00e9, 0xfd: 0x0119, 0xfe: 0x0149, 0xff: 0x0018,
+       // Block 0x4, offset 0x100
+       0x100: 0xe00d, 0x101: 0x0008, 0x102: 0xe00d, 0x103: 0x0008, 0x104: 0xe00d, 0x105: 0x0008,
+       0x106: 0xe00d, 0x107: 0x0008, 0x108: 0xe00d, 0x109: 0x0008, 0x10a: 0xe00d, 0x10b: 0x0008,
+       0x10c: 0xe00d, 0x10d: 0x0008, 0x10e: 0xe00d, 0x10f: 0x0008, 0x110: 0xe00d, 0x111: 0x0008,
+       0x112: 0xe00d, 0x113: 0x0008, 0x114: 0xe00d, 0x115: 0x0008, 0x116: 0xe00d, 0x117: 0x0008,
+       0x118: 0xe00d, 0x119: 0x0008, 0x11a: 0xe00d, 0x11b: 0x0008, 0x11c: 0xe00d, 0x11d: 0x0008,
+       0x11e: 0xe00d, 0x11f: 0x0008, 0x120: 0xe00d, 0x121: 0x0008, 0x122: 0xe00d, 0x123: 0x0008,
+       0x124: 0xe00d, 0x125: 0x0008, 0x126: 0xe00d, 0x127: 0x0008, 0x128: 0xe00d, 0x129: 0x0008,
+       0x12a: 0xe00d, 0x12b: 0x0008, 0x12c: 0xe00d, 0x12d: 0x0008, 0x12e: 0xe00d, 0x12f: 0x0008,
+       0x130: 0x0179, 0x131: 0x0008, 0x132: 0x0035, 0x133: 0x004d, 0x134: 0xe00d, 0x135: 0x0008,
+       0x136: 0xe00d, 0x137: 0x0008, 0x138: 0x0008, 0x139: 0xe01d, 0x13a: 0x0008, 0x13b: 0xe03d,
+       0x13c: 0x0008, 0x13d: 0xe01d, 0x13e: 0x0008, 0x13f: 0x0199,
+       // Block 0x5, offset 0x140
+       0x140: 0x0199, 0x141: 0xe01d, 0x142: 0x0008, 0x143: 0xe03d, 0x144: 0x0008, 0x145: 0xe01d,
+       0x146: 0x0008, 0x147: 0xe07d, 0x148: 0x0008, 0x149: 0x01b9, 0x14a: 0xe00d, 0x14b: 0x0008,
+       0x14c: 0xe00d, 0x14d: 0x0008, 0x14e: 0xe00d, 0x14f: 0x0008, 0x150: 0xe00d, 0x151: 0x0008,
+       0x152: 0xe00d, 0x153: 0x0008, 0x154: 0xe00d, 0x155: 0x0008, 0x156: 0xe00d, 0x157: 0x0008,
+       0x158: 0xe00d, 0x159: 0x0008, 0x15a: 0xe00d, 0x15b: 0x0008, 0x15c: 0xe00d, 0x15d: 0x0008,
+       0x15e: 0xe00d, 0x15f: 0x0008, 0x160: 0xe00d, 0x161: 0x0008, 0x162: 0xe00d, 0x163: 0x0008,
+       0x164: 0xe00d, 0x165: 0x0008, 0x166: 0xe00d, 0x167: 0x0008, 0x168: 0xe00d, 0x169: 0x0008,
+       0x16a: 0xe00d, 0x16b: 0x0008, 0x16c: 0xe00d, 0x16d: 0x0008, 0x16e: 0xe00d, 0x16f: 0x0008,
+       0x170: 0xe00d, 0x171: 0x0008, 0x172: 0xe00d, 0x173: 0x0008, 0x174: 0xe00d, 0x175: 0x0008,
+       0x176: 0xe00d, 0x177: 0x0008, 0x178: 0x0065, 0x179: 0xe01d, 0x17a: 0x0008, 0x17b: 0xe03d,
+       0x17c: 0x0008, 0x17d: 0xe01d, 0x17e: 0x0008, 0x17f: 0x01d9,
+       // Block 0x6, offset 0x180
+       0x180: 0x0008, 0x181: 0x007d, 0x182: 0xe00d, 0x183: 0x0008, 0x184: 0xe00d, 0x185: 0x0008,
+       0x186: 0x007d, 0x187: 0xe07d, 0x188: 0x0008, 0x189: 0x0095, 0x18a: 0x00ad, 0x18b: 0xe03d,
+       0x18c: 0x0008, 0x18d: 0x0008, 0x18e: 0x00c5, 0x18f: 0x00dd, 0x190: 0x00f5, 0x191: 0xe01d,
+       0x192: 0x0008, 0x193: 0x010d, 0x194: 0x0125, 0x195: 0x0008, 0x196: 0x013d, 0x197: 0x013d,
+       0x198: 0xe00d, 0x199: 0x0008, 0x19a: 0x0008, 0x19b: 0x0008, 0x19c: 0x010d, 0x19d: 0x0155,
+       0x19e: 0x0008, 0x19f: 0x016d, 0x1a0: 0xe00d, 0x1a1: 0x0008, 0x1a2: 0xe00d, 0x1a3: 0x0008,
+       0x1a4: 0xe00d, 0x1a5: 0x0008, 0x1a6: 0x0185, 0x1a7: 0xe07d, 0x1a8: 0x0008, 0x1a9: 0x019d,
+       0x1aa: 0x0008, 0x1ab: 0x0008, 0x1ac: 0xe00d, 0x1ad: 0x0008, 0x1ae: 0x0185, 0x1af: 0xe0fd,
+       0x1b0: 0x0008, 0x1b1: 0x01b5, 0x1b2: 0x01cd, 0x1b3: 0xe03d, 0x1b4: 0x0008, 0x1b5: 0xe01d,
+       0x1b6: 0x0008, 0x1b7: 0x01e5, 0x1b8: 0xe00d, 0x1b9: 0x0008, 0x1ba: 0x0008, 0x1bb: 0x0008,
+       0x1bc: 0xe00d, 0x1bd: 0x0008, 0x1be: 0x0008, 0x1bf: 0x0008,
+       // Block 0x7, offset 0x1c0
+       0x1c0: 0x0008, 0x1c1: 0x0008, 0x1c2: 0x0008, 0x1c3: 0x0008, 0x1c4: 0x01e9, 0x1c5: 0x01e9,
+       0x1c6: 0x01e9, 0x1c7: 0x01fd, 0x1c8: 0x0215, 0x1c9: 0x022d, 0x1ca: 0x0245, 0x1cb: 0x025d,
+       0x1cc: 0x0275, 0x1cd: 0xe01d, 0x1ce: 0x0008, 0x1cf: 0xe0fd, 0x1d0: 0x0008, 0x1d1: 0xe01d,
+       0x1d2: 0x0008, 0x1d3: 0xe03d, 0x1d4: 0x0008, 0x1d5: 0xe01d, 0x1d6: 0x0008, 0x1d7: 0xe07d,
+       0x1d8: 0x0008, 0x1d9: 0xe01d, 0x1da: 0x0008, 0x1db: 0xe03d, 0x1dc: 0x0008, 0x1dd: 0x0008,
+       0x1de: 0xe00d, 0x1df: 0x0008, 0x1e0: 0xe00d, 0x1e1: 0x0008, 0x1e2: 0xe00d, 0x1e3: 0x0008,
+       0x1e4: 0xe00d, 0x1e5: 0x0008, 0x1e6: 0xe00d, 0x1e7: 0x0008, 0x1e8: 0xe00d, 0x1e9: 0x0008,
+       0x1ea: 0xe00d, 0x1eb: 0x0008, 0x1ec: 0xe00d, 0x1ed: 0x0008, 0x1ee: 0xe00d, 0x1ef: 0x0008,
+       0x1f0: 0x0008, 0x1f1: 0x028d, 0x1f2: 0x02a5, 0x1f3: 0x02bd, 0x1f4: 0xe00d, 0x1f5: 0x0008,
+       0x1f6: 0x02d5, 0x1f7: 0x02ed, 0x1f8: 0xe00d, 0x1f9: 0x0008, 0x1fa: 0xe00d, 0x1fb: 0x0008,
+       0x1fc: 0xe00d, 0x1fd: 0x0008, 0x1fe: 0xe00d, 0x1ff: 0x0008,
+       // Block 0x8, offset 0x200
+       0x200: 0xe00d, 0x201: 0x0008, 0x202: 0xe00d, 0x203: 0x0008, 0x204: 0xe00d, 0x205: 0x0008,
+       0x206: 0xe00d, 0x207: 0x0008, 0x208: 0xe00d, 0x209: 0x0008, 0x20a: 0xe00d, 0x20b: 0x0008,
+       0x20c: 0xe00d, 0x20d: 0x0008, 0x20e: 0xe00d, 0x20f: 0x0008, 0x210: 0xe00d, 0x211: 0x0008,
+       0x212: 0xe00d, 0x213: 0x0008, 0x214: 0xe00d, 0x215: 0x0008, 0x216: 0xe00d, 0x217: 0x0008,
+       0x218: 0xe00d, 0x219: 0x0008, 0x21a: 0xe00d, 0x21b: 0x0008, 0x21c: 0xe00d, 0x21d: 0x0008,
+       0x21e: 0xe00d, 0x21f: 0x0008, 0x220: 0x0305, 0x221: 0x0008, 0x222: 0xe00d, 0x223: 0x0008,
+       0x224: 0xe00d, 0x225: 0x0008, 0x226: 0xe00d, 0x227: 0x0008, 0x228: 0xe00d, 0x229: 0x0008,
+       0x22a: 0xe00d, 0x22b: 0x0008, 0x22c: 0xe00d, 0x22d: 0x0008, 0x22e: 0xe00d, 0x22f: 0x0008,
+       0x230: 0xe00d, 0x231: 0x0008, 0x232: 0xe00d, 0x233: 0x0008, 0x234: 0x0008, 0x235: 0x0008,
+       0x236: 0x0008, 0x237: 0x0008, 0x238: 0x0008, 0x239: 0x0008, 0x23a: 0x0209, 0x23b: 0xe03d,
+       0x23c: 0x0008, 0x23d: 0x031d, 0x23e: 0x0229, 0x23f: 0x0008,
+       // Block 0x9, offset 0x240
+       0x240: 0x0008, 0x241: 0x0008, 0x242: 0x0018, 0x243: 0x0018, 0x244: 0x0018, 0x245: 0x0018,
+       0x246: 0x0008, 0x247: 0x0008, 0x248: 0x0008, 0x249: 0x0008, 0x24a: 0x0008, 0x24b: 0x0008,
+       0x24c: 0x0008, 0x24d: 0x0008, 0x24e: 0x0008, 0x24f: 0x0008, 0x250: 0x0008, 0x251: 0x0008,
+       0x252: 0x0018, 0x253: 0x0018, 0x254: 0x0018, 0x255: 0x0018, 0x256: 0x0018, 0x257: 0x0018,
+       0x258: 0x029a, 0x259: 0x02ba, 0x25a: 0x02da, 0x25b: 0x02fa, 0x25c: 0x031a, 0x25d: 0x033a,
+       0x25e: 0x0018, 0x25f: 0x0018, 0x260: 0x03ad, 0x261: 0x0359, 0x262: 0x01d9, 0x263: 0x0369,
+       0x264: 0x03c5, 0x265: 0x0018, 0x266: 0x0018, 0x267: 0x0018, 0x268: 0x0018, 0x269: 0x0018,
+       0x26a: 0x0018, 0x26b: 0x0018, 0x26c: 0x0008, 0x26d: 0x0018, 0x26e: 0x0008, 0x26f: 0x0018,
+       0x270: 0x0018, 0x271: 0x0018, 0x272: 0x0018, 0x273: 0x0018, 0x274: 0x0018, 0x275: 0x0018,
+       0x276: 0x0018, 0x277: 0x0018, 0x278: 0x0018, 0x279: 0x0018, 0x27a: 0x0018, 0x27b: 0x0018,
+       0x27c: 0x0018, 0x27d: 0x0018, 0x27e: 0x0018, 0x27f: 0x0018,
+       // Block 0xa, offset 0x280
+       0x280: 0x03dd, 0x281: 0x03dd, 0x282: 0x3308, 0x283: 0x03f5, 0x284: 0x0379, 0x285: 0x040d,
+       0x286: 0x3308, 0x287: 0x3308, 0x288: 0x3308, 0x289: 0x3308, 0x28a: 0x3308, 0x28b: 0x3308,
+       0x28c: 0x3308, 0x28d: 0x3308, 0x28e: 0x3308, 0x28f: 0x33c0, 0x290: 0x3308, 0x291: 0x3308,
+       0x292: 0x3308, 0x293: 0x3308, 0x294: 0x3308, 0x295: 0x3308, 0x296: 0x3308, 0x297: 0x3308,
+       0x298: 0x3308, 0x299: 0x3308, 0x29a: 0x3308, 0x29b: 0x3308, 0x29c: 0x3308, 0x29d: 0x3308,
+       0x29e: 0x3308, 0x29f: 0x3308, 0x2a0: 0x3308, 0x2a1: 0x3308, 0x2a2: 0x3308, 0x2a3: 0x3308,
+       0x2a4: 0x3308, 0x2a5: 0x3308, 0x2a6: 0x3308, 0x2a7: 0x3308, 0x2a8: 0x3308, 0x2a9: 0x3308,
+       0x2aa: 0x3308, 0x2ab: 0x3308, 0x2ac: 0x3308, 0x2ad: 0x3308, 0x2ae: 0x3308, 0x2af: 0x3308,
+       0x2b0: 0xe00d, 0x2b1: 0x0008, 0x2b2: 0xe00d, 0x2b3: 0x0008, 0x2b4: 0x0425, 0x2b5: 0x0008,
+       0x2b6: 0xe00d, 0x2b7: 0x0008, 0x2b8: 0x0040, 0x2b9: 0x0040, 0x2ba: 0x03a2, 0x2bb: 0x0008,
+       0x2bc: 0x0008, 0x2bd: 0x0008, 0x2be: 0x03c2, 0x2bf: 0x043d,
+       // Block 0xb, offset 0x2c0
+       0x2c0: 0x0040, 0x2c1: 0x0040, 0x2c2: 0x0040, 0x2c3: 0x0040, 0x2c4: 0x008a, 0x2c5: 0x03d2,
+       0x2c6: 0xe155, 0x2c7: 0x0455, 0x2c8: 0xe12d, 0x2c9: 0xe13d, 0x2ca: 0xe12d, 0x2cb: 0x0040,
+       0x2cc: 0x03dd, 0x2cd: 0x0040, 0x2ce: 0x046d, 0x2cf: 0x0485, 0x2d0: 0x0008, 0x2d1: 0xe105,
+       0x2d2: 0xe105, 0x2d3: 0xe105, 0x2d4: 0xe105, 0x2d5: 0xe105, 0x2d6: 0xe105, 0x2d7: 0xe105,
+       0x2d8: 0xe105, 0x2d9: 0xe105, 0x2da: 0xe105, 0x2db: 0xe105, 0x2dc: 0xe105, 0x2dd: 0xe105,
+       0x2de: 0xe105, 0x2df: 0xe105, 0x2e0: 0x049d, 0x2e1: 0x049d, 0x2e2: 0x0040, 0x2e3: 0x049d,
+       0x2e4: 0x049d, 0x2e5: 0x049d, 0x2e6: 0x049d, 0x2e7: 0x049d, 0x2e8: 0x049d, 0x2e9: 0x049d,
+       0x2ea: 0x049d, 0x2eb: 0x049d, 0x2ec: 0x0008, 0x2ed: 0x0008, 0x2ee: 0x0008, 0x2ef: 0x0008,
+       0x2f0: 0x0008, 0x2f1: 0x0008, 0x2f2: 0x0008, 0x2f3: 0x0008, 0x2f4: 0x0008, 0x2f5: 0x0008,
+       0x2f6: 0x0008, 0x2f7: 0x0008, 0x2f8: 0x0008, 0x2f9: 0x0008, 0x2fa: 0x0008, 0x2fb: 0x0008,
+       0x2fc: 0x0008, 0x2fd: 0x0008, 0x2fe: 0x0008, 0x2ff: 0x0008,
+       // Block 0xc, offset 0x300
+       0x300: 0x0008, 0x301: 0x0008, 0x302: 0xe00f, 0x303: 0x0008, 0x304: 0x0008, 0x305: 0x0008,
+       0x306: 0x0008, 0x307: 0x0008, 0x308: 0x0008, 0x309: 0x0008, 0x30a: 0x0008, 0x30b: 0x0008,
+       0x30c: 0x0008, 0x30d: 0x0008, 0x30e: 0x0008, 0x30f: 0xe0c5, 0x310: 0x04b5, 0x311: 0x04cd,
+       0x312: 0xe0bd, 0x313: 0xe0f5, 0x314: 0xe0fd, 0x315: 0xe09d, 0x316: 0xe0b5, 0x317: 0x0008,
+       0x318: 0xe00d, 0x319: 0x0008, 0x31a: 0xe00d, 0x31b: 0x0008, 0x31c: 0xe00d, 0x31d: 0x0008,
+       0x31e: 0xe00d, 0x31f: 0x0008, 0x320: 0xe00d, 0x321: 0x0008, 0x322: 0xe00d, 0x323: 0x0008,
+       0x324: 0xe00d, 0x325: 0x0008, 0x326: 0xe00d, 0x327: 0x0008, 0x328: 0xe00d, 0x329: 0x0008,
+       0x32a: 0xe00d, 0x32b: 0x0008, 0x32c: 0xe00d, 0x32d: 0x0008, 0x32e: 0xe00d, 0x32f: 0x0008,
+       0x330: 0x04e5, 0x331: 0xe185, 0x332: 0xe18d, 0x333: 0x0008, 0x334: 0x04fd, 0x335: 0x03dd,
+       0x336: 0x0018, 0x337: 0xe07d, 0x338: 0x0008, 0x339: 0xe1d5, 0x33a: 0xe00d, 0x33b: 0x0008,
+       0x33c: 0x0008, 0x33d: 0x0515, 0x33e: 0x052d, 0x33f: 0x052d,
+       // Block 0xd, offset 0x340
+       0x340: 0x0008, 0x341: 0x0008, 0x342: 0x0008, 0x343: 0x0008, 0x344: 0x0008, 0x345: 0x0008,
+       0x346: 0x0008, 0x347: 0x0008, 0x348: 0x0008, 0x349: 0x0008, 0x34a: 0x0008, 0x34b: 0x0008,
+       0x34c: 0x0008, 0x34d: 0x0008, 0x34e: 0x0008, 0x34f: 0x0008, 0x350: 0x0008, 0x351: 0x0008,
+       0x352: 0x0008, 0x353: 0x0008, 0x354: 0x0008, 0x355: 0x0008, 0x356: 0x0008, 0x357: 0x0008,
+       0x358: 0x0008, 0x359: 0x0008, 0x35a: 0x0008, 0x35b: 0x0008, 0x35c: 0x0008, 0x35d: 0x0008,
+       0x35e: 0x0008, 0x35f: 0x0008, 0x360: 0xe00d, 0x361: 0x0008, 0x362: 0xe00d, 0x363: 0x0008,
+       0x364: 0xe00d, 0x365: 0x0008, 0x366: 0xe00d, 0x367: 0x0008, 0x368: 0xe00d, 0x369: 0x0008,
+       0x36a: 0xe00d, 0x36b: 0x0008, 0x36c: 0xe00d, 0x36d: 0x0008, 0x36e: 0xe00d, 0x36f: 0x0008,
+       0x370: 0xe00d, 0x371: 0x0008, 0x372: 0xe00d, 0x373: 0x0008, 0x374: 0xe00d, 0x375: 0x0008,
+       0x376: 0xe00d, 0x377: 0x0008, 0x378: 0xe00d, 0x379: 0x0008, 0x37a: 0xe00d, 0x37b: 0x0008,
+       0x37c: 0xe00d, 0x37d: 0x0008, 0x37e: 0xe00d, 0x37f: 0x0008,
+       // Block 0xe, offset 0x380
+       0x380: 0xe00d, 0x381: 0x0008, 0x382: 0x0018, 0x383: 0x3308, 0x384: 0x3308, 0x385: 0x3308,
+       0x386: 0x3308, 0x387: 0x3308, 0x388: 0x3318, 0x389: 0x3318, 0x38a: 0xe00d, 0x38b: 0x0008,
+       0x38c: 0xe00d, 0x38d: 0x0008, 0x38e: 0xe00d, 0x38f: 0x0008, 0x390: 0xe00d, 0x391: 0x0008,
+       0x392: 0xe00d, 0x393: 0x0008, 0x394: 0xe00d, 0x395: 0x0008, 0x396: 0xe00d, 0x397: 0x0008,
+       0x398: 0xe00d, 0x399: 0x0008, 0x39a: 0xe00d, 0x39b: 0x0008, 0x39c: 0xe00d, 0x39d: 0x0008,
+       0x39e: 0xe00d, 0x39f: 0x0008, 0x3a0: 0xe00d, 0x3a1: 0x0008, 0x3a2: 0xe00d, 0x3a3: 0x0008,
+       0x3a4: 0xe00d, 0x3a5: 0x0008, 0x3a6: 0xe00d, 0x3a7: 0x0008, 0x3a8: 0xe00d, 0x3a9: 0x0008,
+       0x3aa: 0xe00d, 0x3ab: 0x0008, 0x3ac: 0xe00d, 0x3ad: 0x0008, 0x3ae: 0xe00d, 0x3af: 0x0008,
+       0x3b0: 0xe00d, 0x3b1: 0x0008, 0x3b2: 0xe00d, 0x3b3: 0x0008, 0x3b4: 0xe00d, 0x3b5: 0x0008,
+       0x3b6: 0xe00d, 0x3b7: 0x0008, 0x3b8: 0xe00d, 0x3b9: 0x0008, 0x3ba: 0xe00d, 0x3bb: 0x0008,
+       0x3bc: 0xe00d, 0x3bd: 0x0008, 0x3be: 0xe00d, 0x3bf: 0x0008,
+       // Block 0xf, offset 0x3c0
+       0x3c0: 0x0040, 0x3c1: 0xe01d, 0x3c2: 0x0008, 0x3c3: 0xe03d, 0x3c4: 0x0008, 0x3c5: 0xe01d,
+       0x3c6: 0x0008, 0x3c7: 0xe07d, 0x3c8: 0x0008, 0x3c9: 0xe01d, 0x3ca: 0x0008, 0x3cb: 0xe03d,
+       0x3cc: 0x0008, 0x3cd: 0xe01d, 0x3ce: 0x0008, 0x3cf: 0x0008, 0x3d0: 0xe00d, 0x3d1: 0x0008,
+       0x3d2: 0xe00d, 0x3d3: 0x0008, 0x3d4: 0xe00d, 0x3d5: 0x0008, 0x3d6: 0xe00d, 0x3d7: 0x0008,
+       0x3d8: 0xe00d, 0x3d9: 0x0008, 0x3da: 0xe00d, 0x3db: 0x0008, 0x3dc: 0xe00d, 0x3dd: 0x0008,
+       0x3de: 0xe00d, 0x3df: 0x0008, 0x3e0: 0xe00d, 0x3e1: 0x0008, 0x3e2: 0xe00d, 0x3e3: 0x0008,
+       0x3e4: 0xe00d, 0x3e5: 0x0008, 0x3e6: 0xe00d, 0x3e7: 0x0008, 0x3e8: 0xe00d, 0x3e9: 0x0008,
+       0x3ea: 0xe00d, 0x3eb: 0x0008, 0x3ec: 0xe00d, 0x3ed: 0x0008, 0x3ee: 0xe00d, 0x3ef: 0x0008,
+       0x3f0: 0xe00d, 0x3f1: 0x0008, 0x3f2: 0xe00d, 0x3f3: 0x0008, 0x3f4: 0xe00d, 0x3f5: 0x0008,
+       0x3f6: 0xe00d, 0x3f7: 0x0008, 0x3f8: 0xe00d, 0x3f9: 0x0008, 0x3fa: 0xe00d, 0x3fb: 0x0008,
+       0x3fc: 0xe00d, 0x3fd: 0x0008, 0x3fe: 0xe00d, 0x3ff: 0x0008,
+       // Block 0x10, offset 0x400
+       0x400: 0xe00d, 0x401: 0x0008, 0x402: 0xe00d, 0x403: 0x0008, 0x404: 0xe00d, 0x405: 0x0008,
+       0x406: 0xe00d, 0x407: 0x0008, 0x408: 0xe00d, 0x409: 0x0008, 0x40a: 0xe00d, 0x40b: 0x0008,
+       0x40c: 0xe00d, 0x40d: 0x0008, 0x40e: 0xe00d, 0x40f: 0x0008, 0x410: 0xe00d, 0x411: 0x0008,
+       0x412: 0xe00d, 0x413: 0x0008, 0x414: 0xe00d, 0x415: 0x0008, 0x416: 0xe00d, 0x417: 0x0008,
+       0x418: 0xe00d, 0x419: 0x0008, 0x41a: 0xe00d, 0x41b: 0x0008, 0x41c: 0xe00d, 0x41d: 0x0008,
+       0x41e: 0xe00d, 0x41f: 0x0008, 0x420: 0xe00d, 0x421: 0x0008, 0x422: 0xe00d, 0x423: 0x0008,
+       0x424: 0xe00d, 0x425: 0x0008, 0x426: 0xe00d, 0x427: 0x0008, 0x428: 0xe00d, 0x429: 0x0008,
+       0x42a: 0xe00d, 0x42b: 0x0008, 0x42c: 0xe00d, 0x42d: 0x0008, 0x42e: 0xe00d, 0x42f: 0x0008,
+       0x430: 0x0040, 0x431: 0x03f5, 0x432: 0x03f5, 0x433: 0x03f5, 0x434: 0x03f5, 0x435: 0x03f5,
+       0x436: 0x03f5, 0x437: 0x03f5, 0x438: 0x03f5, 0x439: 0x03f5, 0x43a: 0x03f5, 0x43b: 0x03f5,
+       0x43c: 0x03f5, 0x43d: 0x03f5, 0x43e: 0x03f5, 0x43f: 0x03f5,
+       // Block 0x11, offset 0x440
+       0x440: 0x0840, 0x441: 0x0840, 0x442: 0x0840, 0x443: 0x0840, 0x444: 0x0840, 0x445: 0x0840,
+       0x446: 0x0018, 0x447: 0x0018, 0x448: 0x0818, 0x449: 0x0018, 0x44a: 0x0018, 0x44b: 0x0818,
+       0x44c: 0x0018, 0x44d: 0x0818, 0x44e: 0x0018, 0x44f: 0x0018, 0x450: 0x3308, 0x451: 0x3308,
+       0x452: 0x3308, 0x453: 0x3308, 0x454: 0x3308, 0x455: 0x3308, 0x456: 0x3308, 0x457: 0x3308,
+       0x458: 0x3308, 0x459: 0x3308, 0x45a: 0x3308, 0x45b: 0x0818, 0x45c: 0x0b40, 0x45d: 0x0040,
+       0x45e: 0x0818, 0x45f: 0x0818, 0x460: 0x0a08, 0x461: 0x0808, 0x462: 0x0c08, 0x463: 0x0c08,
+       0x464: 0x0c08, 0x465: 0x0c08, 0x466: 0x0a08, 0x467: 0x0c08, 0x468: 0x0a08, 0x469: 0x0c08,
+       0x46a: 0x0a08, 0x46b: 0x0a08, 0x46c: 0x0a08, 0x46d: 0x0a08, 0x46e: 0x0a08, 0x46f: 0x0c08,
+       0x470: 0x0c08, 0x471: 0x0c08, 0x472: 0x0c08, 0x473: 0x0a08, 0x474: 0x0a08, 0x475: 0x0a08,
+       0x476: 0x0a08, 0x477: 0x0a08, 0x478: 0x0a08, 0x479: 0x0a08, 0x47a: 0x0a08, 0x47b: 0x0a08,
+       0x47c: 0x0a08, 0x47d: 0x0a08, 0x47e: 0x0a08, 0x47f: 0x0a08,
+       // Block 0x12, offset 0x480
+       0x480: 0x0818, 0x481: 0x0a08, 0x482: 0x0a08, 0x483: 0x0a08, 0x484: 0x0a08, 0x485: 0x0a08,
+       0x486: 0x0a08, 0x487: 0x0a08, 0x488: 0x0c08, 0x489: 0x0a08, 0x48a: 0x0a08, 0x48b: 0x3308,
+       0x48c: 0x3308, 0x48d: 0x3308, 0x48e: 0x3308, 0x48f: 0x3308, 0x490: 0x3308, 0x491: 0x3308,
+       0x492: 0x3308, 0x493: 0x3308, 0x494: 0x3308, 0x495: 0x3308, 0x496: 0x3308, 0x497: 0x3308,
+       0x498: 0x3308, 0x499: 0x3308, 0x49a: 0x3308, 0x49b: 0x3308, 0x49c: 0x3308, 0x49d: 0x3308,
+       0x49e: 0x3308, 0x49f: 0x3308, 0x4a0: 0x0808, 0x4a1: 0x0808, 0x4a2: 0x0808, 0x4a3: 0x0808,
+       0x4a4: 0x0808, 0x4a5: 0x0808, 0x4a6: 0x0808, 0x4a7: 0x0808, 0x4a8: 0x0808, 0x4a9: 0x0808,
+       0x4aa: 0x0018, 0x4ab: 0x0818, 0x4ac: 0x0818, 0x4ad: 0x0818, 0x4ae: 0x0a08, 0x4af: 0x0a08,
+       0x4b0: 0x3308, 0x4b1: 0x0c08, 0x4b2: 0x0c08, 0x4b3: 0x0c08, 0x4b4: 0x0808, 0x4b5: 0x0429,
+       0x4b6: 0x0451, 0x4b7: 0x0479, 0x4b8: 0x04a1, 0x4b9: 0x0a08, 0x4ba: 0x0a08, 0x4bb: 0x0a08,
+       0x4bc: 0x0a08, 0x4bd: 0x0a08, 0x4be: 0x0a08, 0x4bf: 0x0a08,
+       // Block 0x13, offset 0x4c0
+       0x4c0: 0x0c08, 0x4c1: 0x0a08, 0x4c2: 0x0a08, 0x4c3: 0x0c08, 0x4c4: 0x0c08, 0x4c5: 0x0c08,
+       0x4c6: 0x0c08, 0x4c7: 0x0c08, 0x4c8: 0x0c08, 0x4c9: 0x0c08, 0x4ca: 0x0c08, 0x4cb: 0x0c08,
+       0x4cc: 0x0a08, 0x4cd: 0x0c08, 0x4ce: 0x0a08, 0x4cf: 0x0c08, 0x4d0: 0x0a08, 0x4d1: 0x0a08,
+       0x4d2: 0x0c08, 0x4d3: 0x0c08, 0x4d4: 0x0818, 0x4d5: 0x0c08, 0x4d6: 0x3308, 0x4d7: 0x3308,
+       0x4d8: 0x3308, 0x4d9: 0x3308, 0x4da: 0x3308, 0x4db: 0x3308, 0x4dc: 0x3308, 0x4dd: 0x0840,
+       0x4de: 0x0018, 0x4df: 0x3308, 0x4e0: 0x3308, 0x4e1: 0x3308, 0x4e2: 0x3308, 0x4e3: 0x3308,
+       0x4e4: 0x3308, 0x4e5: 0x0808, 0x4e6: 0x0808, 0x4e7: 0x3308, 0x4e8: 0x3308, 0x4e9: 0x0018,
+       0x4ea: 0x3308, 0x4eb: 0x3308, 0x4ec: 0x3308, 0x4ed: 0x3308, 0x4ee: 0x0c08, 0x4ef: 0x0c08,
+       0x4f0: 0x0008, 0x4f1: 0x0008, 0x4f2: 0x0008, 0x4f3: 0x0008, 0x4f4: 0x0008, 0x4f5: 0x0008,
+       0x4f6: 0x0008, 0x4f7: 0x0008, 0x4f8: 0x0008, 0x4f9: 0x0008, 0x4fa: 0x0a08, 0x4fb: 0x0a08,
+       0x4fc: 0x0a08, 0x4fd: 0x0808, 0x4fe: 0x0808, 0x4ff: 0x0a08,
+       // Block 0x14, offset 0x500
+       0x500: 0x0818, 0x501: 0x0818, 0x502: 0x0818, 0x503: 0x0818, 0x504: 0x0818, 0x505: 0x0818,
+       0x506: 0x0818, 0x507: 0x0818, 0x508: 0x0818, 0x509: 0x0818, 0x50a: 0x0818, 0x50b: 0x0818,
+       0x50c: 0x0818, 0x50d: 0x0818, 0x50e: 0x0040, 0x50f: 0x0b40, 0x510: 0x0c08, 0x511: 0x3308,
+       0x512: 0x0a08, 0x513: 0x0a08, 0x514: 0x0a08, 0x515: 0x0c08, 0x516: 0x0c08, 0x517: 0x0c08,
+       0x518: 0x0c08, 0x519: 0x0c08, 0x51a: 0x0a08, 0x51b: 0x0a08, 0x51c: 0x0a08, 0x51d: 0x0a08,
+       0x51e: 0x0c08, 0x51f: 0x0a08, 0x520: 0x0a08, 0x521: 0x0a08, 0x522: 0x0a08, 0x523: 0x0a08,
+       0x524: 0x0a08, 0x525: 0x0a08, 0x526: 0x0a08, 0x527: 0x0a08, 0x528: 0x0c08, 0x529: 0x0a08,
+       0x52a: 0x0c08, 0x52b: 0x0a08, 0x52c: 0x0c08, 0x52d: 0x0a08, 0x52e: 0x0a08, 0x52f: 0x0c08,
+       0x530: 0x3308, 0x531: 0x3308, 0x532: 0x3308, 0x533: 0x3308, 0x534: 0x3308, 0x535: 0x3308,
+       0x536: 0x3308, 0x537: 0x3308, 0x538: 0x3308, 0x539: 0x3308, 0x53a: 0x3308, 0x53b: 0x3308,
+       0x53c: 0x3308, 0x53d: 0x3308, 0x53e: 0x3308, 0x53f: 0x3308,
+       // Block 0x15, offset 0x540
+       0x540: 0x0c08, 0x541: 0x0a08, 0x542: 0x0a08, 0x543: 0x0a08, 0x544: 0x0a08, 0x545: 0x0a08,
+       0x546: 0x0c08, 0x547: 0x0c08, 0x548: 0x0a08, 0x549: 0x0c08, 0x54a: 0x0a08, 0x54b: 0x0a08,
+       0x54c: 0x0a08, 0x54d: 0x0a08, 0x54e: 0x0a08, 0x54f: 0x0a08, 0x550: 0x0a08, 0x551: 0x0a08,
+       0x552: 0x0a08, 0x553: 0x0a08, 0x554: 0x0c08, 0x555: 0x0a08, 0x556: 0x0808, 0x557: 0x0808,
+       0x558: 0x0808, 0x559: 0x3308, 0x55a: 0x3308, 0x55b: 0x3308, 0x55c: 0x0040, 0x55d: 0x0040,
+       0x55e: 0x0818, 0x55f: 0x0040, 0x560: 0x0a08, 0x561: 0x0808, 0x562: 0x0a08, 0x563: 0x0a08,
+       0x564: 0x0a08, 0x565: 0x0a08, 0x566: 0x0808, 0x567: 0x0c08, 0x568: 0x0a08, 0x569: 0x0c08,
+       0x56a: 0x0c08, 0x56b: 0x0040, 0x56c: 0x0040, 0x56d: 0x0040, 0x56e: 0x0040, 0x56f: 0x0040,
+       0x570: 0x0040, 0x571: 0x0040, 0x572: 0x0040, 0x573: 0x0040, 0x574: 0x0040, 0x575: 0x0040,
+       0x576: 0x0040, 0x577: 0x0040, 0x578: 0x0040, 0x579: 0x0040, 0x57a: 0x0040, 0x57b: 0x0040,
+       0x57c: 0x0040, 0x57d: 0x0040, 0x57e: 0x0040, 0x57f: 0x0040,
+       // Block 0x16, offset 0x580
+       0x580: 0x3008, 0x581: 0x3308, 0x582: 0x3308, 0x583: 0x3308, 0x584: 0x3308, 0x585: 0x3308,
+       0x586: 0x3308, 0x587: 0x3308, 0x588: 0x3308, 0x589: 0x3008, 0x58a: 0x3008, 0x58b: 0x3008,
+       0x58c: 0x3008, 0x58d: 0x3b08, 0x58e: 0x3008, 0x58f: 0x3008, 0x590: 0x0008, 0x591: 0x3308,
+       0x592: 0x3308, 0x593: 0x3308, 0x594: 0x3308, 0x595: 0x3308, 0x596: 0x3308, 0x597: 0x3308,
+       0x598: 0x04c9, 0x599: 0x0501, 0x59a: 0x0539, 0x59b: 0x0571, 0x59c: 0x05a9, 0x59d: 0x05e1,
+       0x59e: 0x0619, 0x59f: 0x0651, 0x5a0: 0x0008, 0x5a1: 0x0008, 0x5a2: 0x3308, 0x5a3: 0x3308,
+       0x5a4: 0x0018, 0x5a5: 0x0018, 0x5a6: 0x0008, 0x5a7: 0x0008, 0x5a8: 0x0008, 0x5a9: 0x0008,
+       0x5aa: 0x0008, 0x5ab: 0x0008, 0x5ac: 0x0008, 0x5ad: 0x0008, 0x5ae: 0x0008, 0x5af: 0x0008,
+       0x5b0: 0x0018, 0x5b1: 0x0008, 0x5b2: 0x0008, 0x5b3: 0x0008, 0x5b4: 0x0008, 0x5b5: 0x0008,
+       0x5b6: 0x0008, 0x5b7: 0x0008, 0x5b8: 0x0008, 0x5b9: 0x0008, 0x5ba: 0x0008, 0x5bb: 0x0008,
+       0x5bc: 0x0008, 0x5bd: 0x0008, 0x5be: 0x0008, 0x5bf: 0x0008,
+       // Block 0x17, offset 0x5c0
+       0x5c0: 0x0008, 0x5c1: 0x3308, 0x5c2: 0x3008, 0x5c3: 0x3008, 0x5c4: 0x0040, 0x5c5: 0x0008,
+       0x5c6: 0x0008, 0x5c7: 0x0008, 0x5c8: 0x0008, 0x5c9: 0x0008, 0x5ca: 0x0008, 0x5cb: 0x0008,
+       0x5cc: 0x0008, 0x5cd: 0x0040, 0x5ce: 0x0040, 0x5cf: 0x0008, 0x5d0: 0x0008, 0x5d1: 0x0040,
+       0x5d2: 0x0040, 0x5d3: 0x0008, 0x5d4: 0x0008, 0x5d5: 0x0008, 0x5d6: 0x0008, 0x5d7: 0x0008,
+       0x5d8: 0x0008, 0x5d9: 0x0008, 0x5da: 0x0008, 0x5db: 0x0008, 0x5dc: 0x0008, 0x5dd: 0x0008,
+       0x5de: 0x0008, 0x5df: 0x0008, 0x5e0: 0x0008, 0x5e1: 0x0008, 0x5e2: 0x0008, 0x5e3: 0x0008,
+       0x5e4: 0x0008, 0x5e5: 0x0008, 0x5e6: 0x0008, 0x5e7: 0x0008, 0x5e8: 0x0008, 0x5e9: 0x0040,
+       0x5ea: 0x0008, 0x5eb: 0x0008, 0x5ec: 0x0008, 0x5ed: 0x0008, 0x5ee: 0x0008, 0x5ef: 0x0008,
+       0x5f0: 0x0008, 0x5f1: 0x0040, 0x5f2: 0x0008, 0x5f3: 0x0040, 0x5f4: 0x0040, 0x5f5: 0x0040,
+       0x5f6: 0x0008, 0x5f7: 0x0008, 0x5f8: 0x0008, 0x5f9: 0x0008, 0x5fa: 0x0040, 0x5fb: 0x0040,
+       0x5fc: 0x3308, 0x5fd: 0x0008, 0x5fe: 0x3008, 0x5ff: 0x3008,
+       // Block 0x18, offset 0x600
+       0x600: 0x3008, 0x601: 0x3308, 0x602: 0x3308, 0x603: 0x3308, 0x604: 0x3308, 0x605: 0x0040,
+       0x606: 0x0040, 0x607: 0x3008, 0x608: 0x3008, 0x609: 0x0040, 0x60a: 0x0040, 0x60b: 0x3008,
+       0x60c: 0x3008, 0x60d: 0x3b08, 0x60e: 0x0008, 0x60f: 0x0040, 0x610: 0x0040, 0x611: 0x0040,
+       0x612: 0x0040, 0x613: 0x0040, 0x614: 0x0040, 0x615: 0x0040, 0x616: 0x0040, 0x617: 0x3008,
+       0x618: 0x0040, 0x619: 0x0040, 0x61a: 0x0040, 0x61b: 0x0040, 0x61c: 0x0689, 0x61d: 0x06c1,
+       0x61e: 0x0040, 0x61f: 0x06f9, 0x620: 0x0008, 0x621: 0x0008, 0x622: 0x3308, 0x623: 0x3308,
+       0x624: 0x0040, 0x625: 0x0040, 0x626: 0x0008, 0x627: 0x0008, 0x628: 0x0008, 0x629: 0x0008,
+       0x62a: 0x0008, 0x62b: 0x0008, 0x62c: 0x0008, 0x62d: 0x0008, 0x62e: 0x0008, 0x62f: 0x0008,
+       0x630: 0x0008, 0x631: 0x0008, 0x632: 0x0018, 0x633: 0x0018, 0x634: 0x0018, 0x635: 0x0018,
+       0x636: 0x0018, 0x637: 0x0018, 0x638: 0x0018, 0x639: 0x0018, 0x63a: 0x0018, 0x63b: 0x0018,
+       0x63c: 0x0008, 0x63d: 0x0018, 0x63e: 0x3308, 0x63f: 0x0040,
+       // Block 0x19, offset 0x640
+       0x640: 0x0040, 0x641: 0x3308, 0x642: 0x3308, 0x643: 0x3008, 0x644: 0x0040, 0x645: 0x0008,
+       0x646: 0x0008, 0x647: 0x0008, 0x648: 0x0008, 0x649: 0x0008, 0x64a: 0x0008, 0x64b: 0x0040,
+       0x64c: 0x0040, 0x64d: 0x0040, 0x64e: 0x0040, 0x64f: 0x0008, 0x650: 0x0008, 0x651: 0x0040,
+       0x652: 0x0040, 0x653: 0x0008, 0x654: 0x0008, 0x655: 0x0008, 0x656: 0x0008, 0x657: 0x0008,
+       0x658: 0x0008, 0x659: 0x0008, 0x65a: 0x0008, 0x65b: 0x0008, 0x65c: 0x0008, 0x65d: 0x0008,
+       0x65e: 0x0008, 0x65f: 0x0008, 0x660: 0x0008, 0x661: 0x0008, 0x662: 0x0008, 0x663: 0x0008,
+       0x664: 0x0008, 0x665: 0x0008, 0x666: 0x0008, 0x667: 0x0008, 0x668: 0x0008, 0x669: 0x0040,
+       0x66a: 0x0008, 0x66b: 0x0008, 0x66c: 0x0008, 0x66d: 0x0008, 0x66e: 0x0008, 0x66f: 0x0008,
+       0x670: 0x0008, 0x671: 0x0040, 0x672: 0x0008, 0x673: 0x0731, 0x674: 0x0040, 0x675: 0x0008,
+       0x676: 0x0769, 0x677: 0x0040, 0x678: 0x0008, 0x679: 0x0008, 0x67a: 0x0040, 0x67b: 0x0040,
+       0x67c: 0x3308, 0x67d: 0x0040, 0x67e: 0x3008, 0x67f: 0x3008,
+       // Block 0x1a, offset 0x680
+       0x680: 0x3008, 0x681: 0x3308, 0x682: 0x3308, 0x683: 0x0040, 0x684: 0x0040, 0x685: 0x0040,
+       0x686: 0x0040, 0x687: 0x3308, 0x688: 0x3308, 0x689: 0x0040, 0x68a: 0x0040, 0x68b: 0x3308,
+       0x68c: 0x3308, 0x68d: 0x3b08, 0x68e: 0x0040, 0x68f: 0x0040, 0x690: 0x0040, 0x691: 0x3308,
+       0x692: 0x0040, 0x693: 0x0040, 0x694: 0x0040, 0x695: 0x0040, 0x696: 0x0040, 0x697: 0x0040,
+       0x698: 0x0040, 0x699: 0x07a1, 0x69a: 0x07d9, 0x69b: 0x0811, 0x69c: 0x0008, 0x69d: 0x0040,
+       0x69e: 0x0849, 0x69f: 0x0040, 0x6a0: 0x0040, 0x6a1: 0x0040, 0x6a2: 0x0040, 0x6a3: 0x0040,
+       0x6a4: 0x0040, 0x6a5: 0x0040, 0x6a6: 0x0008, 0x6a7: 0x0008, 0x6a8: 0x0008, 0x6a9: 0x0008,
+       0x6aa: 0x0008, 0x6ab: 0x0008, 0x6ac: 0x0008, 0x6ad: 0x0008, 0x6ae: 0x0008, 0x6af: 0x0008,
+       0x6b0: 0x3308, 0x6b1: 0x3308, 0x6b2: 0x0008, 0x6b3: 0x0008, 0x6b4: 0x0008, 0x6b5: 0x3308,
+       0x6b6: 0x0018, 0x6b7: 0x0040, 0x6b8: 0x0040, 0x6b9: 0x0040, 0x6ba: 0x0040, 0x6bb: 0x0040,
+       0x6bc: 0x0040, 0x6bd: 0x0040, 0x6be: 0x0040, 0x6bf: 0x0040,
+       // Block 0x1b, offset 0x6c0
+       0x6c0: 0x0040, 0x6c1: 0x3308, 0x6c2: 0x3308, 0x6c3: 0x3008, 0x6c4: 0x0040, 0x6c5: 0x0008,
+       0x6c6: 0x0008, 0x6c7: 0x0008, 0x6c8: 0x0008, 0x6c9: 0x0008, 0x6ca: 0x0008, 0x6cb: 0x0008,
+       0x6cc: 0x0008, 0x6cd: 0x0008, 0x6ce: 0x0040, 0x6cf: 0x0008, 0x6d0: 0x0008, 0x6d1: 0x0008,
+       0x6d2: 0x0040, 0x6d3: 0x0008, 0x6d4: 0x0008, 0x6d5: 0x0008, 0x6d6: 0x0008, 0x6d7: 0x0008,
+       0x6d8: 0x0008, 0x6d9: 0x0008, 0x6da: 0x0008, 0x6db: 0x0008, 0x6dc: 0x0008, 0x6dd: 0x0008,
+       0x6de: 0x0008, 0x6df: 0x0008, 0x6e0: 0x0008, 0x6e1: 0x0008, 0x6e2: 0x0008, 0x6e3: 0x0008,
+       0x6e4: 0x0008, 0x6e5: 0x0008, 0x6e6: 0x0008, 0x6e7: 0x0008, 0x6e8: 0x0008, 0x6e9: 0x0040,
+       0x6ea: 0x0008, 0x6eb: 0x0008, 0x6ec: 0x0008, 0x6ed: 0x0008, 0x6ee: 0x0008, 0x6ef: 0x0008,
+       0x6f0: 0x0008, 0x6f1: 0x0040, 0x6f2: 0x0008, 0x6f3: 0x0008, 0x6f4: 0x0040, 0x6f5: 0x0008,
+       0x6f6: 0x0008, 0x6f7: 0x0008, 0x6f8: 0x0008, 0x6f9: 0x0008, 0x6fa: 0x0040, 0x6fb: 0x0040,
+       0x6fc: 0x3308, 0x6fd: 0x0008, 0x6fe: 0x3008, 0x6ff: 0x3008,
+       // Block 0x1c, offset 0x700
+       0x700: 0x3008, 0x701: 0x3308, 0x702: 0x3308, 0x703: 0x3308, 0x704: 0x3308, 0x705: 0x3308,
+       0x706: 0x0040, 0x707: 0x3308, 0x708: 0x3308, 0x709: 0x3008, 0x70a: 0x0040, 0x70b: 0x3008,
+       0x70c: 0x3008, 0x70d: 0x3b08, 0x70e: 0x0040, 0x70f: 0x0040, 0x710: 0x0008, 0x711: 0x0040,
+       0x712: 0x0040, 0x713: 0x0040, 0x714: 0x0040, 0x715: 0x0040, 0x716: 0x0040, 0x717: 0x0040,
+       0x718: 0x0040, 0x719: 0x0040, 0x71a: 0x0040, 0x71b: 0x0040, 0x71c: 0x0040, 0x71d: 0x0040,
+       0x71e: 0x0040, 0x71f: 0x0040, 0x720: 0x0008, 0x721: 0x0008, 0x722: 0x3308, 0x723: 0x3308,
+       0x724: 0x0040, 0x725: 0x0040, 0x726: 0x0008, 0x727: 0x0008, 0x728: 0x0008, 0x729: 0x0008,
+       0x72a: 0x0008, 0x72b: 0x0008, 0x72c: 0x0008, 0x72d: 0x0008, 0x72e: 0x0008, 0x72f: 0x0008,
+       0x730: 0x0018, 0x731: 0x0018, 0x732: 0x0040, 0x733: 0x0040, 0x734: 0x0040, 0x735: 0x0040,
+       0x736: 0x0040, 0x737: 0x0040, 0x738: 0x0040, 0x739: 0x0008, 0x73a: 0x3308, 0x73b: 0x3308,
+       0x73c: 0x3308, 0x73d: 0x3308, 0x73e: 0x3308, 0x73f: 0x3308,
+       // Block 0x1d, offset 0x740
+       0x740: 0x0040, 0x741: 0x3308, 0x742: 0x3008, 0x743: 0x3008, 0x744: 0x0040, 0x745: 0x0008,
+       0x746: 0x0008, 0x747: 0x0008, 0x748: 0x0008, 0x749: 0x0008, 0x74a: 0x0008, 0x74b: 0x0008,
+       0x74c: 0x0008, 0x74d: 0x0040, 0x74e: 0x0040, 0x74f: 0x0008, 0x750: 0x0008, 0x751: 0x0040,
+       0x752: 0x0040, 0x753: 0x0008, 0x754: 0x0008, 0x755: 0x0008, 0x756: 0x0008, 0x757: 0x0008,
+       0x758: 0x0008, 0x759: 0x0008, 0x75a: 0x0008, 0x75b: 0x0008, 0x75c: 0x0008, 0x75d: 0x0008,
+       0x75e: 0x0008, 0x75f: 0x0008, 0x760: 0x0008, 0x761: 0x0008, 0x762: 0x0008, 0x763: 0x0008,
+       0x764: 0x0008, 0x765: 0x0008, 0x766: 0x0008, 0x767: 0x0008, 0x768: 0x0008, 0x769: 0x0040,
+       0x76a: 0x0008, 0x76b: 0x0008, 0x76c: 0x0008, 0x76d: 0x0008, 0x76e: 0x0008, 0x76f: 0x0008,
+       0x770: 0x0008, 0x771: 0x0040, 0x772: 0x0008, 0x773: 0x0008, 0x774: 0x0040, 0x775: 0x0008,
+       0x776: 0x0008, 0x777: 0x0008, 0x778: 0x0008, 0x779: 0x0008, 0x77a: 0x0040, 0x77b: 0x0040,
+       0x77c: 0x3308, 0x77d: 0x0008, 0x77e: 0x3008, 0x77f: 0x3308,
+       // Block 0x1e, offset 0x780
+       0x780: 0x3008, 0x781: 0x3308, 0x782: 0x3308, 0x783: 0x3308, 0x784: 0x3308, 0x785: 0x0040,
+       0x786: 0x0040, 0x787: 0x3008, 0x788: 0x3008, 0x789: 0x0040, 0x78a: 0x0040, 0x78b: 0x3008,
+       0x78c: 0x3008, 0x78d: 0x3b08, 0x78e: 0x0040, 0x78f: 0x0040, 0x790: 0x0040, 0x791: 0x0040,
+       0x792: 0x0040, 0x793: 0x0040, 0x794: 0x0040, 0x795: 0x0040, 0x796: 0x3308, 0x797: 0x3008,
+       0x798: 0x0040, 0x799: 0x0040, 0x79a: 0x0040, 0x79b: 0x0040, 0x79c: 0x0881, 0x79d: 0x08b9,
+       0x79e: 0x0040, 0x79f: 0x0008, 0x7a0: 0x0008, 0x7a1: 0x0008, 0x7a2: 0x3308, 0x7a3: 0x3308,
+       0x7a4: 0x0040, 0x7a5: 0x0040, 0x7a6: 0x0008, 0x7a7: 0x0008, 0x7a8: 0x0008, 0x7a9: 0x0008,
+       0x7aa: 0x0008, 0x7ab: 0x0008, 0x7ac: 0x0008, 0x7ad: 0x0008, 0x7ae: 0x0008, 0x7af: 0x0008,
+       0x7b0: 0x0018, 0x7b1: 0x0008, 0x7b2: 0x0018, 0x7b3: 0x0018, 0x7b4: 0x0018, 0x7b5: 0x0018,
+       0x7b6: 0x0018, 0x7b7: 0x0018, 0x7b8: 0x0040, 0x7b9: 0x0040, 0x7ba: 0x0040, 0x7bb: 0x0040,
+       0x7bc: 0x0040, 0x7bd: 0x0040, 0x7be: 0x0040, 0x7bf: 0x0040,
+       // Block 0x1f, offset 0x7c0
+       0x7c0: 0x0040, 0x7c1: 0x0040, 0x7c2: 0x3308, 0x7c3: 0x0008, 0x7c4: 0x0040, 0x7c5: 0x0008,
+       0x7c6: 0x0008, 0x7c7: 0x0008, 0x7c8: 0x0008, 0x7c9: 0x0008, 0x7ca: 0x0008, 0x7cb: 0x0040,
+       0x7cc: 0x0040, 0x7cd: 0x0040, 0x7ce: 0x0008, 0x7cf: 0x0008, 0x7d0: 0x0008, 0x7d1: 0x0040,
+       0x7d2: 0x0008, 0x7d3: 0x0008, 0x7d4: 0x0008, 0x7d5: 0x0008, 0x7d6: 0x0040, 0x7d7: 0x0040,
+       0x7d8: 0x0040, 0x7d9: 0x0008, 0x7da: 0x0008, 0x7db: 0x0040, 0x7dc: 0x0008, 0x7dd: 0x0040,
+       0x7de: 0x0008, 0x7df: 0x0008, 0x7e0: 0x0040, 0x7e1: 0x0040, 0x7e2: 0x0040, 0x7e3: 0x0008,
+       0x7e4: 0x0008, 0x7e5: 0x0040, 0x7e6: 0x0040, 0x7e7: 0x0040, 0x7e8: 0x0008, 0x7e9: 0x0008,
+       0x7ea: 0x0008, 0x7eb: 0x0040, 0x7ec: 0x0040, 0x7ed: 0x0040, 0x7ee: 0x0008, 0x7ef: 0x0008,
+       0x7f0: 0x0008, 0x7f1: 0x0008, 0x7f2: 0x0008, 0x7f3: 0x0008, 0x7f4: 0x0008, 0x7f5: 0x0008,
+       0x7f6: 0x0008, 0x7f7: 0x0008, 0x7f8: 0x0008, 0x7f9: 0x0008, 0x7fa: 0x0040, 0x7fb: 0x0040,
+       0x7fc: 0x0040, 0x7fd: 0x0040, 0x7fe: 0x3008, 0x7ff: 0x3008,
+       // Block 0x20, offset 0x800
+       0x800: 0x3308, 0x801: 0x3008, 0x802: 0x3008, 0x803: 0x3008, 0x804: 0x3008, 0x805: 0x0040,
+       0x806: 0x3308, 0x807: 0x3308, 0x808: 0x3308, 0x809: 0x0040, 0x80a: 0x3308, 0x80b: 0x3308,
+       0x80c: 0x3308, 0x80d: 0x3b08, 0x80e: 0x0040, 0x80f: 0x0040, 0x810: 0x0040, 0x811: 0x0040,
+       0x812: 0x0040, 0x813: 0x0040, 0x814: 0x0040, 0x815: 0x3308, 0x816: 0x3308, 0x817: 0x0040,
+       0x818: 0x0008, 0x819: 0x0008, 0x81a: 0x0008, 0x81b: 0x0040, 0x81c: 0x0040, 0x81d: 0x0040,
+       0x81e: 0x0040, 0x81f: 0x0040, 0x820: 0x0008, 0x821: 0x0008, 0x822: 0x3308, 0x823: 0x3308,
+       0x824: 0x0040, 0x825: 0x0040, 0x826: 0x0008, 0x827: 0x0008, 0x828: 0x0008, 0x829: 0x0008,
+       0x82a: 0x0008, 0x82b: 0x0008, 0x82c: 0x0008, 0x82d: 0x0008, 0x82e: 0x0008, 0x82f: 0x0008,
+       0x830: 0x0040, 0x831: 0x0040, 0x832: 0x0040, 0x833: 0x0040, 0x834: 0x0040, 0x835: 0x0040,
+       0x836: 0x0040, 0x837: 0x0040, 0x838: 0x0018, 0x839: 0x0018, 0x83a: 0x0018, 0x83b: 0x0018,
+       0x83c: 0x0018, 0x83d: 0x0018, 0x83e: 0x0018, 0x83f: 0x0018,
+       // Block 0x21, offset 0x840
+       0x840: 0x0008, 0x841: 0x3308, 0x842: 0x3008, 0x843: 0x3008, 0x844: 0x0018, 0x845: 0x0008,
+       0x846: 0x0008, 0x847: 0x0008, 0x848: 0x0008, 0x849: 0x0008, 0x84a: 0x0008, 0x84b: 0x0008,
+       0x84c: 0x0008, 0x84d: 0x0040, 0x84e: 0x0008, 0x84f: 0x0008, 0x850: 0x0008, 0x851: 0x0040,
+       0x852: 0x0008, 0x853: 0x0008, 0x854: 0x0008, 0x855: 0x0008, 0x856: 0x0008, 0x857: 0x0008,
+       0x858: 0x0008, 0x859: 0x0008, 0x85a: 0x0008, 0x85b: 0x0008, 0x85c: 0x0008, 0x85d: 0x0008,
+       0x85e: 0x0008, 0x85f: 0x0008, 0x860: 0x0008, 0x861: 0x0008, 0x862: 0x0008, 0x863: 0x0008,
+       0x864: 0x0008, 0x865: 0x0008, 0x866: 0x0008, 0x867: 0x0008, 0x868: 0x0008, 0x869: 0x0040,
+       0x86a: 0x0008, 0x86b: 0x0008, 0x86c: 0x0008, 0x86d: 0x0008, 0x86e: 0x0008, 0x86f: 0x0008,
+       0x870: 0x0008, 0x871: 0x0008, 0x872: 0x0008, 0x873: 0x0008, 0x874: 0x0040, 0x875: 0x0008,
+       0x876: 0x0008, 0x877: 0x0008, 0x878: 0x0008, 0x879: 0x0008, 0x87a: 0x0040, 0x87b: 0x0040,
+       0x87c: 0x3308, 0x87d: 0x0008, 0x87e: 0x3008, 0x87f: 0x3308,
+       // Block 0x22, offset 0x880
+       0x880: 0x3008, 0x881: 0x3008, 0x882: 0x3008, 0x883: 0x3008, 0x884: 0x3008, 0x885: 0x0040,
+       0x886: 0x3308, 0x887: 0x3008, 0x888: 0x3008, 0x889: 0x0040, 0x88a: 0x3008, 0x88b: 0x3008,
+       0x88c: 0x3308, 0x88d: 0x3b08, 0x88e: 0x0040, 0x88f: 0x0040, 0x890: 0x0040, 0x891: 0x0040,
+       0x892: 0x0040, 0x893: 0x0040, 0x894: 0x0040, 0x895: 0x3008, 0x896: 0x3008, 0x897: 0x0040,
+       0x898: 0x0040, 0x899: 0x0040, 0x89a: 0x0040, 0x89b: 0x0040, 0x89c: 0x0040, 0x89d: 0x0040,
+       0x89e: 0x0008, 0x89f: 0x0040, 0x8a0: 0x0008, 0x8a1: 0x0008, 0x8a2: 0x3308, 0x8a3: 0x3308,
+       0x8a4: 0x0040, 0x8a5: 0x0040, 0x8a6: 0x0008, 0x8a7: 0x0008, 0x8a8: 0x0008, 0x8a9: 0x0008,
+       0x8aa: 0x0008, 0x8ab: 0x0008, 0x8ac: 0x0008, 0x8ad: 0x0008, 0x8ae: 0x0008, 0x8af: 0x0008,
+       0x8b0: 0x0040, 0x8b1: 0x0008, 0x8b2: 0x0008, 0x8b3: 0x0040, 0x8b4: 0x0040, 0x8b5: 0x0040,
+       0x8b6: 0x0040, 0x8b7: 0x0040, 0x8b8: 0x0040, 0x8b9: 0x0040, 0x8ba: 0x0040, 0x8bb: 0x0040,
+       0x8bc: 0x0040, 0x8bd: 0x0040, 0x8be: 0x0040, 0x8bf: 0x0040,
+       // Block 0x23, offset 0x8c0
+       0x8c0: 0x3008, 0x8c1: 0x3308, 0x8c2: 0x3308, 0x8c3: 0x3308, 0x8c4: 0x3308, 0x8c5: 0x0040,
+       0x8c6: 0x3008, 0x8c7: 0x3008, 0x8c8: 0x3008, 0x8c9: 0x0040, 0x8ca: 0x3008, 0x8cb: 0x3008,
+       0x8cc: 0x3008, 0x8cd: 0x3b08, 0x8ce: 0x0008, 0x8cf: 0x0018, 0x8d0: 0x0040, 0x8d1: 0x0040,
+       0x8d2: 0x0040, 0x8d3: 0x0040, 0x8d4: 0x0008, 0x8d5: 0x0008, 0x8d6: 0x0008, 0x8d7: 0x3008,
+       0x8d8: 0x0018, 0x8d9: 0x0018, 0x8da: 0x0018, 0x8db: 0x0018, 0x8dc: 0x0018, 0x8dd: 0x0018,
+       0x8de: 0x0018, 0x8df: 0x0008, 0x8e0: 0x0008, 0x8e1: 0x0008, 0x8e2: 0x3308, 0x8e3: 0x3308,
+       0x8e4: 0x0040, 0x8e5: 0x0040, 0x8e6: 0x0008, 0x8e7: 0x0008, 0x8e8: 0x0008, 0x8e9: 0x0008,
+       0x8ea: 0x0008, 0x8eb: 0x0008, 0x8ec: 0x0008, 0x8ed: 0x0008, 0x8ee: 0x0008, 0x8ef: 0x0008,
+       0x8f0: 0x0018, 0x8f1: 0x0018, 0x8f2: 0x0018, 0x8f3: 0x0018, 0x8f4: 0x0018, 0x8f5: 0x0018,
+       0x8f6: 0x0018, 0x8f7: 0x0018, 0x8f8: 0x0018, 0x8f9: 0x0018, 0x8fa: 0x0008, 0x8fb: 0x0008,
+       0x8fc: 0x0008, 0x8fd: 0x0008, 0x8fe: 0x0008, 0x8ff: 0x0008,
+       // Block 0x24, offset 0x900
+       0x900: 0x0040, 0x901: 0x0008, 0x902: 0x0008, 0x903: 0x0040, 0x904: 0x0008, 0x905: 0x0040,
+       0x906: 0x0040, 0x907: 0x0008, 0x908: 0x0008, 0x909: 0x0040, 0x90a: 0x0008, 0x90b: 0x0040,
+       0x90c: 0x0040, 0x90d: 0x0008, 0x90e: 0x0040, 0x90f: 0x0040, 0x910: 0x0040, 0x911: 0x0040,
+       0x912: 0x0040, 0x913: 0x0040, 0x914: 0x0008, 0x915: 0x0008, 0x916: 0x0008, 0x917: 0x0008,
+       0x918: 0x0040, 0x919: 0x0008, 0x91a: 0x0008, 0x91b: 0x0008, 0x91c: 0x0008, 0x91d: 0x0008,
+       0x91e: 0x0008, 0x91f: 0x0008, 0x920: 0x0040, 0x921: 0x0008, 0x922: 0x0008, 0x923: 0x0008,
+       0x924: 0x0040, 0x925: 0x0008, 0x926: 0x0040, 0x927: 0x0008, 0x928: 0x0040, 0x929: 0x0040,
+       0x92a: 0x0008, 0x92b: 0x0008, 0x92c: 0x0040, 0x92d: 0x0008, 0x92e: 0x0008, 0x92f: 0x0008,
+       0x930: 0x0008, 0x931: 0x3308, 0x932: 0x0008, 0x933: 0x0929, 0x934: 0x3308, 0x935: 0x3308,
+       0x936: 0x3308, 0x937: 0x3308, 0x938: 0x3308, 0x939: 0x3308, 0x93a: 0x0040, 0x93b: 0x3308,
+       0x93c: 0x3308, 0x93d: 0x0008, 0x93e: 0x0040, 0x93f: 0x0040,
+       // Block 0x25, offset 0x940
+       0x940: 0x0008, 0x941: 0x0008, 0x942: 0x0008, 0x943: 0x09d1, 0x944: 0x0008, 0x945: 0x0008,
+       0x946: 0x0008, 0x947: 0x0008, 0x948: 0x0040, 0x949: 0x0008, 0x94a: 0x0008, 0x94b: 0x0008,
+       0x94c: 0x0008, 0x94d: 0x0a09, 0x94e: 0x0008, 0x94f: 0x0008, 0x950: 0x0008, 0x951: 0x0008,
+       0x952: 0x0a41, 0x953: 0x0008, 0x954: 0x0008, 0x955: 0x0008, 0x956: 0x0008, 0x957: 0x0a79,
+       0x958: 0x0008, 0x959: 0x0008, 0x95a: 0x0008, 0x95b: 0x0008, 0x95c: 0x0ab1, 0x95d: 0x0008,
+       0x95e: 0x0008, 0x95f: 0x0008, 0x960: 0x0008, 0x961: 0x0008, 0x962: 0x0008, 0x963: 0x0008,
+       0x964: 0x0008, 0x965: 0x0008, 0x966: 0x0008, 0x967: 0x0008, 0x968: 0x0008, 0x969: 0x0ae9,
+       0x96a: 0x0008, 0x96b: 0x0008, 0x96c: 0x0008, 0x96d: 0x0040, 0x96e: 0x0040, 0x96f: 0x0040,
+       0x970: 0x0040, 0x971: 0x3308, 0x972: 0x3308, 0x973: 0x0b21, 0x974: 0x3308, 0x975: 0x0b59,
+       0x976: 0x0b91, 0x977: 0x0bc9, 0x978: 0x0c19, 0x979: 0x0c51, 0x97a: 0x3308, 0x97b: 0x3308,
+       0x97c: 0x3308, 0x97d: 0x3308, 0x97e: 0x3308, 0x97f: 0x3008,
+       // Block 0x26, offset 0x980
+       0x980: 0x3308, 0x981: 0x0ca1, 0x982: 0x3308, 0x983: 0x3308, 0x984: 0x3b08, 0x985: 0x0018,
+       0x986: 0x3308, 0x987: 0x3308, 0x988: 0x0008, 0x989: 0x0008, 0x98a: 0x0008, 0x98b: 0x0008,
+       0x98c: 0x0008, 0x98d: 0x3308, 0x98e: 0x3308, 0x98f: 0x3308, 0x990: 0x3308, 0x991: 0x3308,
+       0x992: 0x3308, 0x993: 0x0cd9, 0x994: 0x3308, 0x995: 0x3308, 0x996: 0x3308, 0x997: 0x3308,
+       0x998: 0x0040, 0x999: 0x3308, 0x99a: 0x3308, 0x99b: 0x3308, 0x99c: 0x3308, 0x99d: 0x0d11,
+       0x99e: 0x3308, 0x99f: 0x3308, 0x9a0: 0x3308, 0x9a1: 0x3308, 0x9a2: 0x0d49, 0x9a3: 0x3308,
+       0x9a4: 0x3308, 0x9a5: 0x3308, 0x9a6: 0x3308, 0x9a7: 0x0d81, 0x9a8: 0x3308, 0x9a9: 0x3308,
+       0x9aa: 0x3308, 0x9ab: 0x3308, 0x9ac: 0x0db9, 0x9ad: 0x3308, 0x9ae: 0x3308, 0x9af: 0x3308,
+       0x9b0: 0x3308, 0x9b1: 0x3308, 0x9b2: 0x3308, 0x9b3: 0x3308, 0x9b4: 0x3308, 0x9b5: 0x3308,
+       0x9b6: 0x3308, 0x9b7: 0x3308, 0x9b8: 0x3308, 0x9b9: 0x0df1, 0x9ba: 0x3308, 0x9bb: 0x3308,
+       0x9bc: 0x3308, 0x9bd: 0x0040, 0x9be: 0x0018, 0x9bf: 0x0018,
+       // Block 0x27, offset 0x9c0
+       0x9c0: 0x0008, 0x9c1: 0x0008, 0x9c2: 0x0008, 0x9c3: 0x0008, 0x9c4: 0x0008, 0x9c5: 0x0008,
+       0x9c6: 0x0008, 0x9c7: 0x0008, 0x9c8: 0x0008, 0x9c9: 0x0008, 0x9ca: 0x0008, 0x9cb: 0x0008,
+       0x9cc: 0x0008, 0x9cd: 0x0008, 0x9ce: 0x0008, 0x9cf: 0x0008, 0x9d0: 0x0008, 0x9d1: 0x0008,
+       0x9d2: 0x0008, 0x9d3: 0x0008, 0x9d4: 0x0008, 0x9d5: 0x0008, 0x9d6: 0x0008, 0x9d7: 0x0008,
+       0x9d8: 0x0008, 0x9d9: 0x0008, 0x9da: 0x0008, 0x9db: 0x0008, 0x9dc: 0x0008, 0x9dd: 0x0008,
+       0x9de: 0x0008, 0x9df: 0x0008, 0x9e0: 0x0008, 0x9e1: 0x0008, 0x9e2: 0x0008, 0x9e3: 0x0008,
+       0x9e4: 0x0008, 0x9e5: 0x0008, 0x9e6: 0x0008, 0x9e7: 0x0008, 0x9e8: 0x0008, 0x9e9: 0x0008,
+       0x9ea: 0x0008, 0x9eb: 0x0008, 0x9ec: 0x0039, 0x9ed: 0x0ed1, 0x9ee: 0x0ee9, 0x9ef: 0x0008,
+       0x9f0: 0x0ef9, 0x9f1: 0x0f09, 0x9f2: 0x0f19, 0x9f3: 0x0f31, 0x9f4: 0x0249, 0x9f5: 0x0f41,
+       0x9f6: 0x0259, 0x9f7: 0x0f51, 0x9f8: 0x0359, 0x9f9: 0x0f61, 0x9fa: 0x0f71, 0x9fb: 0x0008,
+       0x9fc: 0x00d9, 0x9fd: 0x0f81, 0x9fe: 0x0f99, 0x9ff: 0x0269,
+       // Block 0x28, offset 0xa00
+       0xa00: 0x0fa9, 0xa01: 0x0fb9, 0xa02: 0x0279, 0xa03: 0x0039, 0xa04: 0x0fc9, 0xa05: 0x0fe1,
+       0xa06: 0x059d, 0xa07: 0x0ee9, 0xa08: 0x0ef9, 0xa09: 0x0f09, 0xa0a: 0x0ff9, 0xa0b: 0x1011,
+       0xa0c: 0x1029, 0xa0d: 0x0f31, 0xa0e: 0x0008, 0xa0f: 0x0f51, 0xa10: 0x0f61, 0xa11: 0x1041,
+       0xa12: 0x00d9, 0xa13: 0x1059, 0xa14: 0x05b5, 0xa15: 0x05b5, 0xa16: 0x0f99, 0xa17: 0x0fa9,
+       0xa18: 0x0fb9, 0xa19: 0x059d, 0xa1a: 0x1071, 0xa1b: 0x1089, 0xa1c: 0x05cd, 0xa1d: 0x1099,
+       0xa1e: 0x10b1, 0xa1f: 0x10c9, 0xa20: 0x10e1, 0xa21: 0x10f9, 0xa22: 0x0f41, 0xa23: 0x0269,
+       0xa24: 0x0fb9, 0xa25: 0x1089, 0xa26: 0x1099, 0xa27: 0x10b1, 0xa28: 0x1111, 0xa29: 0x10e1,
+       0xa2a: 0x10f9, 0xa2b: 0x0008, 0xa2c: 0x0008, 0xa2d: 0x0008, 0xa2e: 0x0008, 0xa2f: 0x0008,
+       0xa30: 0x0008, 0xa31: 0x0008, 0xa32: 0x0008, 0xa33: 0x0008, 0xa34: 0x0008, 0xa35: 0x0008,
+       0xa36: 0x0008, 0xa37: 0x0008, 0xa38: 0x1129, 0xa39: 0x0008, 0xa3a: 0x0008, 0xa3b: 0x0008,
+       0xa3c: 0x0008, 0xa3d: 0x0008, 0xa3e: 0x0008, 0xa3f: 0x0008,
+       // Block 0x29, offset 0xa40
+       0xa40: 0x0008, 0xa41: 0x0008, 0xa42: 0x0008, 0xa43: 0x0008, 0xa44: 0x0008, 0xa45: 0x0008,
+       0xa46: 0x0008, 0xa47: 0x0008, 0xa48: 0x0008, 0xa49: 0x0008, 0xa4a: 0x0008, 0xa4b: 0x0008,
+       0xa4c: 0x0008, 0xa4d: 0x0008, 0xa4e: 0x0008, 0xa4f: 0x0008, 0xa50: 0x0008, 0xa51: 0x0008,
+       0xa52: 0x0008, 0xa53: 0x0008, 0xa54: 0x0008, 0xa55: 0x0008, 0xa56: 0x0008, 0xa57: 0x0008,
+       0xa58: 0x0008, 0xa59: 0x0008, 0xa5a: 0x0008, 0xa5b: 0x1141, 0xa5c: 0x1159, 0xa5d: 0x1169,
+       0xa5e: 0x1181, 0xa5f: 0x1029, 0xa60: 0x1199, 0xa61: 0x11a9, 0xa62: 0x11c1, 0xa63: 0x11d9,
+       0xa64: 0x11f1, 0xa65: 0x1209, 0xa66: 0x1221, 0xa67: 0x05e5, 0xa68: 0x1239, 0xa69: 0x1251,
+       0xa6a: 0xe17d, 0xa6b: 0x1269, 0xa6c: 0x1281, 0xa6d: 0x1299, 0xa6e: 0x12b1, 0xa6f: 0x12c9,
+       0xa70: 0x12e1, 0xa71: 0x12f9, 0xa72: 0x1311, 0xa73: 0x1329, 0xa74: 0x1341, 0xa75: 0x1359,
+       0xa76: 0x1371, 0xa77: 0x1389, 0xa78: 0x05fd, 0xa79: 0x13a1, 0xa7a: 0x13b9, 0xa7b: 0x13d1,
+       0xa7c: 0x13e1, 0xa7d: 0x13f9, 0xa7e: 0x1411, 0xa7f: 0x1429,
+       // Block 0x2a, offset 0xa80
+       0xa80: 0xe00d, 0xa81: 0x0008, 0xa82: 0xe00d, 0xa83: 0x0008, 0xa84: 0xe00d, 0xa85: 0x0008,
+       0xa86: 0xe00d, 0xa87: 0x0008, 0xa88: 0xe00d, 0xa89: 0x0008, 0xa8a: 0xe00d, 0xa8b: 0x0008,
+       0xa8c: 0xe00d, 0xa8d: 0x0008, 0xa8e: 0xe00d, 0xa8f: 0x0008, 0xa90: 0xe00d, 0xa91: 0x0008,
+       0xa92: 0xe00d, 0xa93: 0x0008, 0xa94: 0xe00d, 0xa95: 0x0008, 0xa96: 0xe00d, 0xa97: 0x0008,
+       0xa98: 0xe00d, 0xa99: 0x0008, 0xa9a: 0xe00d, 0xa9b: 0x0008, 0xa9c: 0xe00d, 0xa9d: 0x0008,
+       0xa9e: 0xe00d, 0xa9f: 0x0008, 0xaa0: 0xe00d, 0xaa1: 0x0008, 0xaa2: 0xe00d, 0xaa3: 0x0008,
+       0xaa4: 0xe00d, 0xaa5: 0x0008, 0xaa6: 0xe00d, 0xaa7: 0x0008, 0xaa8: 0xe00d, 0xaa9: 0x0008,
+       0xaaa: 0xe00d, 0xaab: 0x0008, 0xaac: 0xe00d, 0xaad: 0x0008, 0xaae: 0xe00d, 0xaaf: 0x0008,
+       0xab0: 0xe00d, 0xab1: 0x0008, 0xab2: 0xe00d, 0xab3: 0x0008, 0xab4: 0xe00d, 0xab5: 0x0008,
+       0xab6: 0xe00d, 0xab7: 0x0008, 0xab8: 0xe00d, 0xab9: 0x0008, 0xaba: 0xe00d, 0xabb: 0x0008,
+       0xabc: 0xe00d, 0xabd: 0x0008, 0xabe: 0xe00d, 0xabf: 0x0008,
+       // Block 0x2b, offset 0xac0
+       0xac0: 0xe00d, 0xac1: 0x0008, 0xac2: 0xe00d, 0xac3: 0x0008, 0xac4: 0xe00d, 0xac5: 0x0008,
+       0xac6: 0xe00d, 0xac7: 0x0008, 0xac8: 0xe00d, 0xac9: 0x0008, 0xaca: 0xe00d, 0xacb: 0x0008,
+       0xacc: 0xe00d, 0xacd: 0x0008, 0xace: 0xe00d, 0xacf: 0x0008, 0xad0: 0xe00d, 0xad1: 0x0008,
+       0xad2: 0xe00d, 0xad3: 0x0008, 0xad4: 0xe00d, 0xad5: 0x0008, 0xad6: 0x0008, 0xad7: 0x0008,
+       0xad8: 0x0008, 0xad9: 0x0008, 0xada: 0x0615, 0xadb: 0x0635, 0xadc: 0x0008, 0xadd: 0x0008,
+       0xade: 0x1441, 0xadf: 0x0008, 0xae0: 0xe00d, 0xae1: 0x0008, 0xae2: 0xe00d, 0xae3: 0x0008,
+       0xae4: 0xe00d, 0xae5: 0x0008, 0xae6: 0xe00d, 0xae7: 0x0008, 0xae8: 0xe00d, 0xae9: 0x0008,
+       0xaea: 0xe00d, 0xaeb: 0x0008, 0xaec: 0xe00d, 0xaed: 0x0008, 0xaee: 0xe00d, 0xaef: 0x0008,
+       0xaf0: 0xe00d, 0xaf1: 0x0008, 0xaf2: 0xe00d, 0xaf3: 0x0008, 0xaf4: 0xe00d, 0xaf5: 0x0008,
+       0xaf6: 0xe00d, 0xaf7: 0x0008, 0xaf8: 0xe00d, 0xaf9: 0x0008, 0xafa: 0xe00d, 0xafb: 0x0008,
+       0xafc: 0xe00d, 0xafd: 0x0008, 0xafe: 0xe00d, 0xaff: 0x0008,
+       // Block 0x2c, offset 0xb00
+       0xb00: 0x0008, 0xb01: 0x0008, 0xb02: 0x0008, 0xb03: 0x0008, 0xb04: 0x0008, 0xb05: 0x0008,
+       0xb06: 0x0040, 0xb07: 0x0040, 0xb08: 0xe045, 0xb09: 0xe045, 0xb0a: 0xe045, 0xb0b: 0xe045,
+       0xb0c: 0xe045, 0xb0d: 0xe045, 0xb0e: 0x0040, 0xb0f: 0x0040, 0xb10: 0x0008, 0xb11: 0x0008,
+       0xb12: 0x0008, 0xb13: 0x0008, 0xb14: 0x0008, 0xb15: 0x0008, 0xb16: 0x0008, 0xb17: 0x0008,
+       0xb18: 0x0040, 0xb19: 0xe045, 0xb1a: 0x0040, 0xb1b: 0xe045, 0xb1c: 0x0040, 0xb1d: 0xe045,
+       0xb1e: 0x0040, 0xb1f: 0xe045, 0xb20: 0x0008, 0xb21: 0x0008, 0xb22: 0x0008, 0xb23: 0x0008,
+       0xb24: 0x0008, 0xb25: 0x0008, 0xb26: 0x0008, 0xb27: 0x0008, 0xb28: 0xe045, 0xb29: 0xe045,
+       0xb2a: 0xe045, 0xb2b: 0xe045, 0xb2c: 0xe045, 0xb2d: 0xe045, 0xb2e: 0xe045, 0xb2f: 0xe045,
+       0xb30: 0x0008, 0xb31: 0x1459, 0xb32: 0x0008, 0xb33: 0x1471, 0xb34: 0x0008, 0xb35: 0x1489,
+       0xb36: 0x0008, 0xb37: 0x14a1, 0xb38: 0x0008, 0xb39: 0x14b9, 0xb3a: 0x0008, 0xb3b: 0x14d1,
+       0xb3c: 0x0008, 0xb3d: 0x14e9, 0xb3e: 0x0040, 0xb3f: 0x0040,
+       // Block 0x2d, offset 0xb40
+       0xb40: 0x1501, 0xb41: 0x1531, 0xb42: 0x1561, 0xb43: 0x1591, 0xb44: 0x15c1, 0xb45: 0x15f1,
+       0xb46: 0x1621, 0xb47: 0x1651, 0xb48: 0x1501, 0xb49: 0x1531, 0xb4a: 0x1561, 0xb4b: 0x1591,
+       0xb4c: 0x15c1, 0xb4d: 0x15f1, 0xb4e: 0x1621, 0xb4f: 0x1651, 0xb50: 0x1681, 0xb51: 0x16b1,
+       0xb52: 0x16e1, 0xb53: 0x1711, 0xb54: 0x1741, 0xb55: 0x1771, 0xb56: 0x17a1, 0xb57: 0x17d1,
+       0xb58: 0x1681, 0xb59: 0x16b1, 0xb5a: 0x16e1, 0xb5b: 0x1711, 0xb5c: 0x1741, 0xb5d: 0x1771,
+       0xb5e: 0x17a1, 0xb5f: 0x17d1, 0xb60: 0x1801, 0xb61: 0x1831, 0xb62: 0x1861, 0xb63: 0x1891,
+       0xb64: 0x18c1, 0xb65: 0x18f1, 0xb66: 0x1921, 0xb67: 0x1951, 0xb68: 0x1801, 0xb69: 0x1831,
+       0xb6a: 0x1861, 0xb6b: 0x1891, 0xb6c: 0x18c1, 0xb6d: 0x18f1, 0xb6e: 0x1921, 0xb6f: 0x1951,
+       0xb70: 0x0008, 0xb71: 0x0008, 0xb72: 0x1981, 0xb73: 0x19b1, 0xb74: 0x19d9, 0xb75: 0x0040,
+       0xb76: 0x0008, 0xb77: 0x1a01, 0xb78: 0xe045, 0xb79: 0xe045, 0xb7a: 0x064d, 0xb7b: 0x1459,
+       0xb7c: 0x19b1, 0xb7d: 0x0666, 0xb7e: 0x1a31, 0xb7f: 0x0686,
+       // Block 0x2e, offset 0xb80
+       0xb80: 0x06a6, 0xb81: 0x1a4a, 0xb82: 0x1a79, 0xb83: 0x1aa9, 0xb84: 0x1ad1, 0xb85: 0x0040,
+       0xb86: 0x0008, 0xb87: 0x1af9, 0xb88: 0x06c5, 0xb89: 0x1471, 0xb8a: 0x06dd, 0xb8b: 0x1489,
+       0xb8c: 0x1aa9, 0xb8d: 0x1b2a, 0xb8e: 0x1b5a, 0xb8f: 0x1b8a, 0xb90: 0x0008, 0xb91: 0x0008,
+       0xb92: 0x0008, 0xb93: 0x1bb9, 0xb94: 0x0040, 0xb95: 0x0040, 0xb96: 0x0008, 0xb97: 0x0008,
+       0xb98: 0xe045, 0xb99: 0xe045, 0xb9a: 0x06f5, 0xb9b: 0x14a1, 0xb9c: 0x0040, 0xb9d: 0x1bd2,
+       0xb9e: 0x1c02, 0xb9f: 0x1c32, 0xba0: 0x0008, 0xba1: 0x0008, 0xba2: 0x0008, 0xba3: 0x1c61,
+       0xba4: 0x0008, 0xba5: 0x0008, 0xba6: 0x0008, 0xba7: 0x0008, 0xba8: 0xe045, 0xba9: 0xe045,
+       0xbaa: 0x070d, 0xbab: 0x14d1, 0xbac: 0xe04d, 0xbad: 0x1c7a, 0xbae: 0x03d2, 0xbaf: 0x1caa,
+       0xbb0: 0x0040, 0xbb1: 0x0040, 0xbb2: 0x1cb9, 0xbb3: 0x1ce9, 0xbb4: 0x1d11, 0xbb5: 0x0040,
+       0xbb6: 0x0008, 0xbb7: 0x1d39, 0xbb8: 0x0725, 0xbb9: 0x14b9, 0xbba: 0x0515, 0xbbb: 0x14e9,
+       0xbbc: 0x1ce9, 0xbbd: 0x073e, 0xbbe: 0x075e, 0xbbf: 0x0040,
+       // Block 0x2f, offset 0xbc0
+       0xbc0: 0x000a, 0xbc1: 0x000a, 0xbc2: 0x000a, 0xbc3: 0x000a, 0xbc4: 0x000a, 0xbc5: 0x000a,
+       0xbc6: 0x000a, 0xbc7: 0x000a, 0xbc8: 0x000a, 0xbc9: 0x000a, 0xbca: 0x000a, 0xbcb: 0x03c0,
+       0xbcc: 0x0003, 0xbcd: 0x0003, 0xbce: 0x0340, 0xbcf: 0x0b40, 0xbd0: 0x0018, 0xbd1: 0xe00d,
+       0xbd2: 0x0018, 0xbd3: 0x0018, 0xbd4: 0x0018, 0xbd5: 0x0018, 0xbd6: 0x0018, 0xbd7: 0x077e,
+       0xbd8: 0x0018, 0xbd9: 0x0018, 0xbda: 0x0018, 0xbdb: 0x0018, 0xbdc: 0x0018, 0xbdd: 0x0018,
+       0xbde: 0x0018, 0xbdf: 0x0018, 0xbe0: 0x0018, 0xbe1: 0x0018, 0xbe2: 0x0018, 0xbe3: 0x0018,
+       0xbe4: 0x0040, 0xbe5: 0x0040, 0xbe6: 0x0040, 0xbe7: 0x0018, 0xbe8: 0x0040, 0xbe9: 0x0040,
+       0xbea: 0x0340, 0xbeb: 0x0340, 0xbec: 0x0340, 0xbed: 0x0340, 0xbee: 0x0340, 0xbef: 0x000a,
+       0xbf0: 0x0018, 0xbf1: 0x0018, 0xbf2: 0x0018, 0xbf3: 0x1d69, 0xbf4: 0x1da1, 0xbf5: 0x0018,
+       0xbf6: 0x1df1, 0xbf7: 0x1e29, 0xbf8: 0x0018, 0xbf9: 0x0018, 0xbfa: 0x0018, 0xbfb: 0x0018,
+       0xbfc: 0x1e7a, 0xbfd: 0x0018, 0xbfe: 0x079e, 0xbff: 0x0018,
+       // Block 0x30, offset 0xc00
+       0xc00: 0x0018, 0xc01: 0x0018, 0xc02: 0x0018, 0xc03: 0x0018, 0xc04: 0x0018, 0xc05: 0x0018,
+       0xc06: 0x0018, 0xc07: 0x1e92, 0xc08: 0x1eaa, 0xc09: 0x1ec2, 0xc0a: 0x0018, 0xc0b: 0x0018,
+       0xc0c: 0x0018, 0xc0d: 0x0018, 0xc0e: 0x0018, 0xc0f: 0x0018, 0xc10: 0x0018, 0xc11: 0x0018,
+       0xc12: 0x0018, 0xc13: 0x0018, 0xc14: 0x0018, 0xc15: 0x0018, 0xc16: 0x0018, 0xc17: 0x1ed9,
+       0xc18: 0x0018, 0xc19: 0x0018, 0xc1a: 0x0018, 0xc1b: 0x0018, 0xc1c: 0x0018, 0xc1d: 0x0018,
+       0xc1e: 0x0018, 0xc1f: 0x000a, 0xc20: 0x03c0, 0xc21: 0x0340, 0xc22: 0x0340, 0xc23: 0x0340,
+       0xc24: 0x03c0, 0xc25: 0x0040, 0xc26: 0x0040, 0xc27: 0x0040, 0xc28: 0x0040, 0xc29: 0x0040,
+       0xc2a: 0x0340, 0xc2b: 0x0340, 0xc2c: 0x0340, 0xc2d: 0x0340, 0xc2e: 0x0340, 0xc2f: 0x0340,
+       0xc30: 0x1f41, 0xc31: 0x0f41, 0xc32: 0x0040, 0xc33: 0x0040, 0xc34: 0x1f51, 0xc35: 0x1f61,
+       0xc36: 0x1f71, 0xc37: 0x1f81, 0xc38: 0x1f91, 0xc39: 0x1fa1, 0xc3a: 0x1fb2, 0xc3b: 0x07bd,
+       0xc3c: 0x1fc2, 0xc3d: 0x1fd2, 0xc3e: 0x1fe2, 0xc3f: 0x0f71,
+       // Block 0x31, offset 0xc40
+       0xc40: 0x1f41, 0xc41: 0x00c9, 0xc42: 0x0069, 0xc43: 0x0079, 0xc44: 0x1f51, 0xc45: 0x1f61,
+       0xc46: 0x1f71, 0xc47: 0x1f81, 0xc48: 0x1f91, 0xc49: 0x1fa1, 0xc4a: 0x1fb2, 0xc4b: 0x07d5,
+       0xc4c: 0x1fc2, 0xc4d: 0x1fd2, 0xc4e: 0x1fe2, 0xc4f: 0x0040, 0xc50: 0x0039, 0xc51: 0x0f09,
+       0xc52: 0x00d9, 0xc53: 0x0369, 0xc54: 0x0ff9, 0xc55: 0x0249, 0xc56: 0x0f51, 0xc57: 0x0359,
+       0xc58: 0x0f61, 0xc59: 0x0f71, 0xc5a: 0x0f99, 0xc5b: 0x01d9, 0xc5c: 0x0fa9, 0xc5d: 0x0040,
+       0xc5e: 0x0040, 0xc5f: 0x0040, 0xc60: 0x0018, 0xc61: 0x0018, 0xc62: 0x0018, 0xc63: 0x0018,
+       0xc64: 0x0018, 0xc65: 0x0018, 0xc66: 0x0018, 0xc67: 0x0018, 0xc68: 0x1ff1, 0xc69: 0x0018,
+       0xc6a: 0x0018, 0xc6b: 0x0018, 0xc6c: 0x0018, 0xc6d: 0x0018, 0xc6e: 0x0018, 0xc6f: 0x0018,
+       0xc70: 0x0018, 0xc71: 0x0018, 0xc72: 0x0018, 0xc73: 0x0018, 0xc74: 0x0018, 0xc75: 0x0018,
+       0xc76: 0x0018, 0xc77: 0x0018, 0xc78: 0x0018, 0xc79: 0x0018, 0xc7a: 0x0018, 0xc7b: 0x0018,
+       0xc7c: 0x0018, 0xc7d: 0x0018, 0xc7e: 0x0018, 0xc7f: 0x0018,
+       // Block 0x32, offset 0xc80
+       0xc80: 0x07ee, 0xc81: 0x080e, 0xc82: 0x1159, 0xc83: 0x082d, 0xc84: 0x0018, 0xc85: 0x084e,
+       0xc86: 0x086e, 0xc87: 0x1011, 0xc88: 0x0018, 0xc89: 0x088d, 0xc8a: 0x0f31, 0xc8b: 0x0249,
+       0xc8c: 0x0249, 0xc8d: 0x0249, 0xc8e: 0x0249, 0xc8f: 0x2009, 0xc90: 0x0f41, 0xc91: 0x0f41,
+       0xc92: 0x0359, 0xc93: 0x0359, 0xc94: 0x0018, 0xc95: 0x0f71, 0xc96: 0x2021, 0xc97: 0x0018,
+       0xc98: 0x0018, 0xc99: 0x0f99, 0xc9a: 0x2039, 0xc9b: 0x0269, 0xc9c: 0x0269, 0xc9d: 0x0269,
+       0xc9e: 0x0018, 0xc9f: 0x0018, 0xca0: 0x2049, 0xca1: 0x08ad, 0xca2: 0x2061, 0xca3: 0x0018,
+       0xca4: 0x13d1, 0xca5: 0x0018, 0xca6: 0x2079, 0xca7: 0x0018, 0xca8: 0x13d1, 0xca9: 0x0018,
+       0xcaa: 0x0f51, 0xcab: 0x2091, 0xcac: 0x0ee9, 0xcad: 0x1159, 0xcae: 0x0018, 0xcaf: 0x0f09,
+       0xcb0: 0x0f09, 0xcb1: 0x1199, 0xcb2: 0x0040, 0xcb3: 0x0f61, 0xcb4: 0x00d9, 0xcb5: 0x20a9,
+       0xcb6: 0x20c1, 0xcb7: 0x20d9, 0xcb8: 0x20f1, 0xcb9: 0x0f41, 0xcba: 0x0018, 0xcbb: 0x08cd,
+       0xcbc: 0x2109, 0xcbd: 0x10b1, 0xcbe: 0x10b1, 0xcbf: 0x2109,
+       // Block 0x33, offset 0xcc0
+       0xcc0: 0x08ed, 0xcc1: 0x0018, 0xcc2: 0x0018, 0xcc3: 0x0018, 0xcc4: 0x0018, 0xcc5: 0x0ef9,
+       0xcc6: 0x0ef9, 0xcc7: 0x0f09, 0xcc8: 0x0f41, 0xcc9: 0x0259, 0xcca: 0x0018, 0xccb: 0x0018,
+       0xccc: 0x0018, 0xccd: 0x0018, 0xcce: 0x0008, 0xccf: 0x0018, 0xcd0: 0x2121, 0xcd1: 0x2151,
+       0xcd2: 0x2181, 0xcd3: 0x21b9, 0xcd4: 0x21e9, 0xcd5: 0x2219, 0xcd6: 0x2249, 0xcd7: 0x2279,
+       0xcd8: 0x22a9, 0xcd9: 0x22d9, 0xcda: 0x2309, 0xcdb: 0x2339, 0xcdc: 0x2369, 0xcdd: 0x2399,
+       0xcde: 0x23c9, 0xcdf: 0x23f9, 0xce0: 0x0f41, 0xce1: 0x2421, 0xce2: 0x0905, 0xce3: 0x2439,
+       0xce4: 0x1089, 0xce5: 0x2451, 0xce6: 0x0925, 0xce7: 0x2469, 0xce8: 0x2491, 0xce9: 0x0369,
+       0xcea: 0x24a9, 0xceb: 0x0945, 0xcec: 0x0359, 0xced: 0x1159, 0xcee: 0x0ef9, 0xcef: 0x0f61,
+       0xcf0: 0x0f41, 0xcf1: 0x2421, 0xcf2: 0x0965, 0xcf3: 0x2439, 0xcf4: 0x1089, 0xcf5: 0x2451,
+       0xcf6: 0x0985, 0xcf7: 0x2469, 0xcf8: 0x2491, 0xcf9: 0x0369, 0xcfa: 0x24a9, 0xcfb: 0x09a5,
+       0xcfc: 0x0359, 0xcfd: 0x1159, 0xcfe: 0x0ef9, 0xcff: 0x0f61,
+       // Block 0x34, offset 0xd00
+       0xd00: 0x0018, 0xd01: 0x0018, 0xd02: 0x0018, 0xd03: 0x0018, 0xd04: 0x0018, 0xd05: 0x0018,
+       0xd06: 0x0018, 0xd07: 0x0018, 0xd08: 0x0018, 0xd09: 0x0018, 0xd0a: 0x0018, 0xd0b: 0x0040,
+       0xd0c: 0x0040, 0xd0d: 0x0040, 0xd0e: 0x0040, 0xd0f: 0x0040, 0xd10: 0x0040, 0xd11: 0x0040,
+       0xd12: 0x0040, 0xd13: 0x0040, 0xd14: 0x0040, 0xd15: 0x0040, 0xd16: 0x0040, 0xd17: 0x0040,
+       0xd18: 0x0040, 0xd19: 0x0040, 0xd1a: 0x0040, 0xd1b: 0x0040, 0xd1c: 0x0040, 0xd1d: 0x0040,
+       0xd1e: 0x0040, 0xd1f: 0x0040, 0xd20: 0x00c9, 0xd21: 0x0069, 0xd22: 0x0079, 0xd23: 0x1f51,
+       0xd24: 0x1f61, 0xd25: 0x1f71, 0xd26: 0x1f81, 0xd27: 0x1f91, 0xd28: 0x1fa1, 0xd29: 0x2601,
+       0xd2a: 0x2619, 0xd2b: 0x2631, 0xd2c: 0x2649, 0xd2d: 0x2661, 0xd2e: 0x2679, 0xd2f: 0x2691,
+       0xd30: 0x26a9, 0xd31: 0x26c1, 0xd32: 0x26d9, 0xd33: 0x26f1, 0xd34: 0x0a06, 0xd35: 0x0a26,
+       0xd36: 0x0a46, 0xd37: 0x0a66, 0xd38: 0x0a86, 0xd39: 0x0aa6, 0xd3a: 0x0ac6, 0xd3b: 0x0ae6,
+       0xd3c: 0x0b06, 0xd3d: 0x270a, 0xd3e: 0x2732, 0xd3f: 0x275a,
+       // Block 0x35, offset 0xd40
+       0xd40: 0x2782, 0xd41: 0x27aa, 0xd42: 0x27d2, 0xd43: 0x27fa, 0xd44: 0x2822, 0xd45: 0x284a,
+       0xd46: 0x2872, 0xd47: 0x289a, 0xd48: 0x0040, 0xd49: 0x0040, 0xd4a: 0x0040, 0xd4b: 0x0040,
+       0xd4c: 0x0040, 0xd4d: 0x0040, 0xd4e: 0x0040, 0xd4f: 0x0040, 0xd50: 0x0040, 0xd51: 0x0040,
+       0xd52: 0x0040, 0xd53: 0x0040, 0xd54: 0x0040, 0xd55: 0x0040, 0xd56: 0x0040, 0xd57: 0x0040,
+       0xd58: 0x0040, 0xd59: 0x0040, 0xd5a: 0x0040, 0xd5b: 0x0040, 0xd5c: 0x0b26, 0xd5d: 0x0b46,
+       0xd5e: 0x0b66, 0xd5f: 0x0b86, 0xd60: 0x0ba6, 0xd61: 0x0bc6, 0xd62: 0x0be6, 0xd63: 0x0c06,
+       0xd64: 0x0c26, 0xd65: 0x0c46, 0xd66: 0x0c66, 0xd67: 0x0c86, 0xd68: 0x0ca6, 0xd69: 0x0cc6,
+       0xd6a: 0x0ce6, 0xd6b: 0x0d06, 0xd6c: 0x0d26, 0xd6d: 0x0d46, 0xd6e: 0x0d66, 0xd6f: 0x0d86,
+       0xd70: 0x0da6, 0xd71: 0x0dc6, 0xd72: 0x0de6, 0xd73: 0x0e06, 0xd74: 0x0e26, 0xd75: 0x0e46,
+       0xd76: 0x0039, 0xd77: 0x0ee9, 0xd78: 0x1159, 0xd79: 0x0ef9, 0xd7a: 0x0f09, 0xd7b: 0x1199,
+       0xd7c: 0x0f31, 0xd7d: 0x0249, 0xd7e: 0x0f41, 0xd7f: 0x0259,
+       // Block 0x36, offset 0xd80
+       0xd80: 0x0f51, 0xd81: 0x0359, 0xd82: 0x0f61, 0xd83: 0x0f71, 0xd84: 0x00d9, 0xd85: 0x0f99,
+       0xd86: 0x2039, 0xd87: 0x0269, 0xd88: 0x01d9, 0xd89: 0x0fa9, 0xd8a: 0x0fb9, 0xd8b: 0x1089,
+       0xd8c: 0x0279, 0xd8d: 0x0369, 0xd8e: 0x0289, 0xd8f: 0x13d1, 0xd90: 0x0039, 0xd91: 0x0ee9,
+       0xd92: 0x1159, 0xd93: 0x0ef9, 0xd94: 0x0f09, 0xd95: 0x1199, 0xd96: 0x0f31, 0xd97: 0x0249,
+       0xd98: 0x0f41, 0xd99: 0x0259, 0xd9a: 0x0f51, 0xd9b: 0x0359, 0xd9c: 0x0f61, 0xd9d: 0x0f71,
+       0xd9e: 0x00d9, 0xd9f: 0x0f99, 0xda0: 0x2039, 0xda1: 0x0269, 0xda2: 0x01d9, 0xda3: 0x0fa9,
+       0xda4: 0x0fb9, 0xda5: 0x1089, 0xda6: 0x0279, 0xda7: 0x0369, 0xda8: 0x0289, 0xda9: 0x13d1,
+       0xdaa: 0x1f41, 0xdab: 0x0018, 0xdac: 0x0018, 0xdad: 0x0018, 0xdae: 0x0018, 0xdaf: 0x0018,
+       0xdb0: 0x0018, 0xdb1: 0x0018, 0xdb2: 0x0018, 0xdb3: 0x0018, 0xdb4: 0x0018, 0xdb5: 0x0018,
+       0xdb6: 0x0018, 0xdb7: 0x0018, 0xdb8: 0x0018, 0xdb9: 0x0018, 0xdba: 0x0018, 0xdbb: 0x0018,
+       0xdbc: 0x0018, 0xdbd: 0x0018, 0xdbe: 0x0018, 0xdbf: 0x0018,
+       // Block 0x37, offset 0xdc0
+       0xdc0: 0x0008, 0xdc1: 0x0008, 0xdc2: 0x0008, 0xdc3: 0x0008, 0xdc4: 0x0008, 0xdc5: 0x0008,
+       0xdc6: 0x0008, 0xdc7: 0x0008, 0xdc8: 0x0008, 0xdc9: 0x0008, 0xdca: 0x0008, 0xdcb: 0x0008,
+       0xdcc: 0x0008, 0xdcd: 0x0008, 0xdce: 0x0008, 0xdcf: 0x0008, 0xdd0: 0x0008, 0xdd1: 0x0008,
+       0xdd2: 0x0008, 0xdd3: 0x0008, 0xdd4: 0x0008, 0xdd5: 0x0008, 0xdd6: 0x0008, 0xdd7: 0x0008,
+       0xdd8: 0x0008, 0xdd9: 0x0008, 0xdda: 0x0008, 0xddb: 0x0008, 0xddc: 0x0008, 0xddd: 0x0008,
+       0xdde: 0x0008, 0xddf: 0x0040, 0xde0: 0xe00d, 0xde1: 0x0008, 0xde2: 0x2971, 0xde3: 0x0ebd,
+       0xde4: 0x2989, 0xde5: 0x0008, 0xde6: 0x0008, 0xde7: 0xe07d, 0xde8: 0x0008, 0xde9: 0xe01d,
+       0xdea: 0x0008, 0xdeb: 0xe03d, 0xdec: 0x0008, 0xded: 0x0fe1, 0xdee: 0x1281, 0xdef: 0x0fc9,
+       0xdf0: 0x1141, 0xdf1: 0x0008, 0xdf2: 0xe00d, 0xdf3: 0x0008, 0xdf4: 0x0008, 0xdf5: 0xe01d,
+       0xdf6: 0x0008, 0xdf7: 0x0008, 0xdf8: 0x0008, 0xdf9: 0x0008, 0xdfa: 0x0008, 0xdfb: 0x0008,
+       0xdfc: 0x0259, 0xdfd: 0x1089, 0xdfe: 0x29a1, 0xdff: 0x29b9,
+       // Block 0x38, offset 0xe00
+       0xe00: 0xe00d, 0xe01: 0x0008, 0xe02: 0xe00d, 0xe03: 0x0008, 0xe04: 0xe00d, 0xe05: 0x0008,
+       0xe06: 0xe00d, 0xe07: 0x0008, 0xe08: 0xe00d, 0xe09: 0x0008, 0xe0a: 0xe00d, 0xe0b: 0x0008,
+       0xe0c: 0xe00d, 0xe0d: 0x0008, 0xe0e: 0xe00d, 0xe0f: 0x0008, 0xe10: 0xe00d, 0xe11: 0x0008,
+       0xe12: 0xe00d, 0xe13: 0x0008, 0xe14: 0xe00d, 0xe15: 0x0008, 0xe16: 0xe00d, 0xe17: 0x0008,
+       0xe18: 0xe00d, 0xe19: 0x0008, 0xe1a: 0xe00d, 0xe1b: 0x0008, 0xe1c: 0xe00d, 0xe1d: 0x0008,
+       0xe1e: 0xe00d, 0xe1f: 0x0008, 0xe20: 0xe00d, 0xe21: 0x0008, 0xe22: 0xe00d, 0xe23: 0x0008,
+       0xe24: 0x0008, 0xe25: 0x0018, 0xe26: 0x0018, 0xe27: 0x0018, 0xe28: 0x0018, 0xe29: 0x0018,
+       0xe2a: 0x0018, 0xe2b: 0xe03d, 0xe2c: 0x0008, 0xe2d: 0xe01d, 0xe2e: 0x0008, 0xe2f: 0x3308,
+       0xe30: 0x3308, 0xe31: 0x3308, 0xe32: 0xe00d, 0xe33: 0x0008, 0xe34: 0x0040, 0xe35: 0x0040,
+       0xe36: 0x0040, 0xe37: 0x0040, 0xe38: 0x0040, 0xe39: 0x0018, 0xe3a: 0x0018, 0xe3b: 0x0018,
+       0xe3c: 0x0018, 0xe3d: 0x0018, 0xe3e: 0x0018, 0xe3f: 0x0018,
+       // Block 0x39, offset 0xe40
+       0xe40: 0x26fd, 0xe41: 0x271d, 0xe42: 0x273d, 0xe43: 0x275d, 0xe44: 0x277d, 0xe45: 0x279d,
+       0xe46: 0x27bd, 0xe47: 0x27dd, 0xe48: 0x27fd, 0xe49: 0x281d, 0xe4a: 0x283d, 0xe4b: 0x285d,
+       0xe4c: 0x287d, 0xe4d: 0x289d, 0xe4e: 0x28bd, 0xe4f: 0x28dd, 0xe50: 0x28fd, 0xe51: 0x291d,
+       0xe52: 0x293d, 0xe53: 0x295d, 0xe54: 0x297d, 0xe55: 0x299d, 0xe56: 0x0040, 0xe57: 0x0040,
+       0xe58: 0x0040, 0xe59: 0x0040, 0xe5a: 0x0040, 0xe5b: 0x0040, 0xe5c: 0x0040, 0xe5d: 0x0040,
+       0xe5e: 0x0040, 0xe5f: 0x0040, 0xe60: 0x0040, 0xe61: 0x0040, 0xe62: 0x0040, 0xe63: 0x0040,
+       0xe64: 0x0040, 0xe65: 0x0040, 0xe66: 0x0040, 0xe67: 0x0040, 0xe68: 0x0040, 0xe69: 0x0040,
+       0xe6a: 0x0040, 0xe6b: 0x0040, 0xe6c: 0x0040, 0xe6d: 0x0040, 0xe6e: 0x0040, 0xe6f: 0x0040,
+       0xe70: 0x0040, 0xe71: 0x0040, 0xe72: 0x0040, 0xe73: 0x0040, 0xe74: 0x0040, 0xe75: 0x0040,
+       0xe76: 0x0040, 0xe77: 0x0040, 0xe78: 0x0040, 0xe79: 0x0040, 0xe7a: 0x0040, 0xe7b: 0x0040,
+       0xe7c: 0x0040, 0xe7d: 0x0040, 0xe7e: 0x0040, 0xe7f: 0x0040,
+       // Block 0x3a, offset 0xe80
+       0xe80: 0x000a, 0xe81: 0x0018, 0xe82: 0x29d1, 0xe83: 0x0018, 0xe84: 0x0018, 0xe85: 0x0008,
+       0xe86: 0x0008, 0xe87: 0x0008, 0xe88: 0x0018, 0xe89: 0x0018, 0xe8a: 0x0018, 0xe8b: 0x0018,
+       0xe8c: 0x0018, 0xe8d: 0x0018, 0xe8e: 0x0018, 0xe8f: 0x0018, 0xe90: 0x0018, 0xe91: 0x0018,
+       0xe92: 0x0018, 0xe93: 0x0018, 0xe94: 0x0018, 0xe95: 0x0018, 0xe96: 0x0018, 0xe97: 0x0018,
+       0xe98: 0x0018, 0xe99: 0x0018, 0xe9a: 0x0018, 0xe9b: 0x0018, 0xe9c: 0x0018, 0xe9d: 0x0018,
+       0xe9e: 0x0018, 0xe9f: 0x0018, 0xea0: 0x0018, 0xea1: 0x0018, 0xea2: 0x0018, 0xea3: 0x0018,
+       0xea4: 0x0018, 0xea5: 0x0018, 0xea6: 0x0018, 0xea7: 0x0018, 0xea8: 0x0018, 0xea9: 0x0018,
+       0xeaa: 0x3308, 0xeab: 0x3308, 0xeac: 0x3308, 0xead: 0x3308, 0xeae: 0x3018, 0xeaf: 0x3018,
+       0xeb0: 0x0018, 0xeb1: 0x0018, 0xeb2: 0x0018, 0xeb3: 0x0018, 0xeb4: 0x0018, 0xeb5: 0x0018,
+       0xeb6: 0xe125, 0xeb7: 0x0018, 0xeb8: 0x29bd, 0xeb9: 0x29dd, 0xeba: 0x29fd, 0xebb: 0x0018,
+       0xebc: 0x0008, 0xebd: 0x0018, 0xebe: 0x0018, 0xebf: 0x0018,
+       // Block 0x3b, offset 0xec0
+       0xec0: 0x2b3d, 0xec1: 0x2b5d, 0xec2: 0x2b7d, 0xec3: 0x2b9d, 0xec4: 0x2bbd, 0xec5: 0x2bdd,
+       0xec6: 0x2bdd, 0xec7: 0x2bdd, 0xec8: 0x2bfd, 0xec9: 0x2bfd, 0xeca: 0x2bfd, 0xecb: 0x2bfd,
+       0xecc: 0x2c1d, 0xecd: 0x2c1d, 0xece: 0x2c1d, 0xecf: 0x2c3d, 0xed0: 0x2c5d, 0xed1: 0x2c5d,
+       0xed2: 0x2a7d, 0xed3: 0x2a7d, 0xed4: 0x2c5d, 0xed5: 0x2c5d, 0xed6: 0x2c7d, 0xed7: 0x2c7d,
+       0xed8: 0x2c5d, 0xed9: 0x2c5d, 0xeda: 0x2a7d, 0xedb: 0x2a7d, 0xedc: 0x2c5d, 0xedd: 0x2c5d,
+       0xede: 0x2c3d, 0xedf: 0x2c3d, 0xee0: 0x2c9d, 0xee1: 0x2c9d, 0xee2: 0x2cbd, 0xee3: 0x2cbd,
+       0xee4: 0x0040, 0xee5: 0x2cdd, 0xee6: 0x2cfd, 0xee7: 0x2d1d, 0xee8: 0x2d1d, 0xee9: 0x2d3d,
+       0xeea: 0x2d5d, 0xeeb: 0x2d7d, 0xeec: 0x2d9d, 0xeed: 0x2dbd, 0xeee: 0x2ddd, 0xeef: 0x2dfd,
+       0xef0: 0x2e1d, 0xef1: 0x2e3d, 0xef2: 0x2e3d, 0xef3: 0x2e5d, 0xef4: 0x2e7d, 0xef5: 0x2e7d,
+       0xef6: 0x2e9d, 0xef7: 0x2ebd, 0xef8: 0x2e5d, 0xef9: 0x2edd, 0xefa: 0x2efd, 0xefb: 0x2edd,
+       0xefc: 0x2e5d, 0xefd: 0x2f1d, 0xefe: 0x2f3d, 0xeff: 0x2f5d,
+       // Block 0x3c, offset 0xf00
+       0xf00: 0x2f7d, 0xf01: 0x2f9d, 0xf02: 0x2cfd, 0xf03: 0x2cdd, 0xf04: 0x2fbd, 0xf05: 0x2fdd,
+       0xf06: 0x2ffd, 0xf07: 0x301d, 0xf08: 0x303d, 0xf09: 0x305d, 0xf0a: 0x307d, 0xf0b: 0x309d,
+       0xf0c: 0x30bd, 0xf0d: 0x30dd, 0xf0e: 0x30fd, 0xf0f: 0x0040, 0xf10: 0x0018, 0xf11: 0x0018,
+       0xf12: 0x311d, 0xf13: 0x313d, 0xf14: 0x315d, 0xf15: 0x317d, 0xf16: 0x319d, 0xf17: 0x31bd,
+       0xf18: 0x31dd, 0xf19: 0x31fd, 0xf1a: 0x321d, 0xf1b: 0x323d, 0xf1c: 0x315d, 0xf1d: 0x325d,
+       0xf1e: 0x327d, 0xf1f: 0x329d, 0xf20: 0x0008, 0xf21: 0x0008, 0xf22: 0x0008, 0xf23: 0x0008,
+       0xf24: 0x0008, 0xf25: 0x0008, 0xf26: 0x0008, 0xf27: 0x0008, 0xf28: 0x0008, 0xf29: 0x0008,
+       0xf2a: 0x0008, 0xf2b: 0x0008, 0xf2c: 0x0008, 0xf2d: 0x0008, 0xf2e: 0x0008, 0xf2f: 0x0008,
+       0xf30: 0x0008, 0xf31: 0x0008, 0xf32: 0x0008, 0xf33: 0x0008, 0xf34: 0x0008, 0xf35: 0x0008,
+       0xf36: 0x0008, 0xf37: 0x0008, 0xf38: 0x0008, 0xf39: 0x0008, 0xf3a: 0x0008, 0xf3b: 0x0040,
+       0xf3c: 0x0040, 0xf3d: 0x0040, 0xf3e: 0x0040, 0xf3f: 0x0040,
+       // Block 0x3d, offset 0xf40
+       0xf40: 0x36a2, 0xf41: 0x36d2, 0xf42: 0x3702, 0xf43: 0x3732, 0xf44: 0x32bd, 0xf45: 0x32dd,
+       0xf46: 0x32fd, 0xf47: 0x331d, 0xf48: 0x0018, 0xf49: 0x0018, 0xf4a: 0x0018, 0xf4b: 0x0018,
+       0xf4c: 0x0018, 0xf4d: 0x0018, 0xf4e: 0x0018, 0xf4f: 0x0018, 0xf50: 0x333d, 0xf51: 0x3761,
+       0xf52: 0x3779, 0xf53: 0x3791, 0xf54: 0x37a9, 0xf55: 0x37c1, 0xf56: 0x37d9, 0xf57: 0x37f1,
+       0xf58: 0x3809, 0xf59: 0x3821, 0xf5a: 0x3839, 0xf5b: 0x3851, 0xf5c: 0x3869, 0xf5d: 0x3881,
+       0xf5e: 0x3899, 0xf5f: 0x38b1, 0xf60: 0x335d, 0xf61: 0x337d, 0xf62: 0x339d, 0xf63: 0x33bd,
+       0xf64: 0x33dd, 0xf65: 0x33dd, 0xf66: 0x33fd, 0xf67: 0x341d, 0xf68: 0x343d, 0xf69: 0x345d,
+       0xf6a: 0x347d, 0xf6b: 0x349d, 0xf6c: 0x34bd, 0xf6d: 0x34dd, 0xf6e: 0x34fd, 0xf6f: 0x351d,
+       0xf70: 0x353d, 0xf71: 0x355d, 0xf72: 0x357d, 0xf73: 0x359d, 0xf74: 0x35bd, 0xf75: 0x35dd,
+       0xf76: 0x35fd, 0xf77: 0x361d, 0xf78: 0x363d, 0xf79: 0x365d, 0xf7a: 0x367d, 0xf7b: 0x369d,
+       0xf7c: 0x38c9, 0xf7d: 0x3901, 0xf7e: 0x36bd, 0xf7f: 0x0018,
+       // Block 0x3e, offset 0xf80
+       0xf80: 0x36dd, 0xf81: 0x36fd, 0xf82: 0x371d, 0xf83: 0x373d, 0xf84: 0x375d, 0xf85: 0x377d,
+       0xf86: 0x379d, 0xf87: 0x37bd, 0xf88: 0x37dd, 0xf89: 0x37fd, 0xf8a: 0x381d, 0xf8b: 0x383d,
+       0xf8c: 0x385d, 0xf8d: 0x387d, 0xf8e: 0x389d, 0xf8f: 0x38bd, 0xf90: 0x38dd, 0xf91: 0x38fd,
+       0xf92: 0x391d, 0xf93: 0x393d, 0xf94: 0x395d, 0xf95: 0x397d, 0xf96: 0x399d, 0xf97: 0x39bd,
+       0xf98: 0x39dd, 0xf99: 0x39fd, 0xf9a: 0x3a1d, 0xf9b: 0x3a3d, 0xf9c: 0x3a5d, 0xf9d: 0x3a7d,
+       0xf9e: 0x3a9d, 0xf9f: 0x3abd, 0xfa0: 0x3add, 0xfa1: 0x3afd, 0xfa2: 0x3b1d, 0xfa3: 0x3b3d,
+       0xfa4: 0x3b5d, 0xfa5: 0x3b7d, 0xfa6: 0x127d, 0xfa7: 0x3b9d, 0xfa8: 0x3bbd, 0xfa9: 0x3bdd,
+       0xfaa: 0x3bfd, 0xfab: 0x3c1d, 0xfac: 0x3c3d, 0xfad: 0x3c5d, 0xfae: 0x239d, 0xfaf: 0x3c7d,
+       0xfb0: 0x3c9d, 0xfb1: 0x3939, 0xfb2: 0x3951, 0xfb3: 0x3969, 0xfb4: 0x3981, 0xfb5: 0x3999,
+       0xfb6: 0x39b1, 0xfb7: 0x39c9, 0xfb8: 0x39e1, 0xfb9: 0x39f9, 0xfba: 0x3a11, 0xfbb: 0x3a29,
+       0xfbc: 0x3a41, 0xfbd: 0x3a59, 0xfbe: 0x3a71, 0xfbf: 0x3a89,
+       // Block 0x3f, offset 0xfc0
+       0xfc0: 0x3aa1, 0xfc1: 0x3ac9, 0xfc2: 0x3af1, 0xfc3: 0x3b19, 0xfc4: 0x3b41, 0xfc5: 0x3b69,
+       0xfc6: 0x3b91, 0xfc7: 0x3bb9, 0xfc8: 0x3be1, 0xfc9: 0x3c09, 0xfca: 0x3c39, 0xfcb: 0x3c69,
+       0xfcc: 0x3c99, 0xfcd: 0x3cbd, 0xfce: 0x3cb1, 0xfcf: 0x3cdd, 0xfd0: 0x3cfd, 0xfd1: 0x3d15,
+       0xfd2: 0x3d2d, 0xfd3: 0x3d45, 0xfd4: 0x3d5d, 0xfd5: 0x3d5d, 0xfd6: 0x3d45, 0xfd7: 0x3d75,
+       0xfd8: 0x07bd, 0xfd9: 0x3d8d, 0xfda: 0x3da5, 0xfdb: 0x3dbd, 0xfdc: 0x3dd5, 0xfdd: 0x3ded,
+       0xfde: 0x3e05, 0xfdf: 0x3e1d, 0xfe0: 0x3e35, 0xfe1: 0x3e4d, 0xfe2: 0x3e65, 0xfe3: 0x3e7d,
+       0xfe4: 0x3e95, 0xfe5: 0x3e95, 0xfe6: 0x3ead, 0xfe7: 0x3ead, 0xfe8: 0x3ec5, 0xfe9: 0x3ec5,
+       0xfea: 0x3edd, 0xfeb: 0x3ef5, 0xfec: 0x3f0d, 0xfed: 0x3f25, 0xfee: 0x3f3d, 0xfef: 0x3f3d,
+       0xff0: 0x3f55, 0xff1: 0x3f55, 0xff2: 0x3f55, 0xff3: 0x3f6d, 0xff4: 0x3f85, 0xff5: 0x3f9d,
+       0xff6: 0x3fb5, 0xff7: 0x3f9d, 0xff8: 0x3fcd, 0xff9: 0x3fe5, 0xffa: 0x3f6d, 0xffb: 0x3ffd,
+       0xffc: 0x4015, 0xffd: 0x4015, 0xffe: 0x4015, 0xfff: 0x0040,
+       // Block 0x40, offset 0x1000
+       0x1000: 0x3cc9, 0x1001: 0x3d31, 0x1002: 0x3d99, 0x1003: 0x3e01, 0x1004: 0x3e51, 0x1005: 0x3eb9,
+       0x1006: 0x3f09, 0x1007: 0x3f59, 0x1008: 0x3fd9, 0x1009: 0x4041, 0x100a: 0x4091, 0x100b: 0x40e1,
+       0x100c: 0x4131, 0x100d: 0x4199, 0x100e: 0x4201, 0x100f: 0x4251, 0x1010: 0x42a1, 0x1011: 0x42d9,
+       0x1012: 0x4329, 0x1013: 0x4391, 0x1014: 0x43f9, 0x1015: 0x4431, 0x1016: 0x44b1, 0x1017: 0x4549,
+       0x1018: 0x45c9, 0x1019: 0x4619, 0x101a: 0x4699, 0x101b: 0x4719, 0x101c: 0x4781, 0x101d: 0x47d1,
+       0x101e: 0x4821, 0x101f: 0x4871, 0x1020: 0x48d9, 0x1021: 0x4959, 0x1022: 0x49c1, 0x1023: 0x4a11,
+       0x1024: 0x4a61, 0x1025: 0x4ab1, 0x1026: 0x4ae9, 0x1027: 0x4b21, 0x1028: 0x4b59, 0x1029: 0x4b91,
+       0x102a: 0x4be1, 0x102b: 0x4c31, 0x102c: 0x4cb1, 0x102d: 0x4d01, 0x102e: 0x4d69, 0x102f: 0x4de9,
+       0x1030: 0x4e39, 0x1031: 0x4e71, 0x1032: 0x4ea9, 0x1033: 0x4f29, 0x1034: 0x4f91, 0x1035: 0x5011,
+       0x1036: 0x5061, 0x1037: 0x50e1, 0x1038: 0x5119, 0x1039: 0x5169, 0x103a: 0x51b9, 0x103b: 0x5209,
+       0x103c: 0x5259, 0x103d: 0x52a9, 0x103e: 0x5311, 0x103f: 0x5361,
+       // Block 0x41, offset 0x1040
+       0x1040: 0x5399, 0x1041: 0x53e9, 0x1042: 0x5439, 0x1043: 0x5489, 0x1044: 0x54f1, 0x1045: 0x5541,
+       0x1046: 0x5591, 0x1047: 0x55e1, 0x1048: 0x5661, 0x1049: 0x56c9, 0x104a: 0x5701, 0x104b: 0x5781,
+       0x104c: 0x57b9, 0x104d: 0x5821, 0x104e: 0x5889, 0x104f: 0x58d9, 0x1050: 0x5929, 0x1051: 0x5979,
+       0x1052: 0x59e1, 0x1053: 0x5a19, 0x1054: 0x5a69, 0x1055: 0x5ad1, 0x1056: 0x5b09, 0x1057: 0x5b89,
+       0x1058: 0x5bd9, 0x1059: 0x5c01, 0x105a: 0x5c29, 0x105b: 0x5c51, 0x105c: 0x5c79, 0x105d: 0x5ca1,
+       0x105e: 0x5cc9, 0x105f: 0x5cf1, 0x1060: 0x5d19, 0x1061: 0x5d41, 0x1062: 0x5d69, 0x1063: 0x5d99,
+       0x1064: 0x5dc9, 0x1065: 0x5df9, 0x1066: 0x5e29, 0x1067: 0x5e59, 0x1068: 0x5e89, 0x1069: 0x5eb9,
+       0x106a: 0x5ee9, 0x106b: 0x5f19, 0x106c: 0x5f49, 0x106d: 0x5f79, 0x106e: 0x5fa9, 0x106f: 0x5fd9,
+       0x1070: 0x6009, 0x1071: 0x402d, 0x1072: 0x6039, 0x1073: 0x6051, 0x1074: 0x404d, 0x1075: 0x6069,
+       0x1076: 0x6081, 0x1077: 0x6099, 0x1078: 0x406d, 0x1079: 0x406d, 0x107a: 0x60b1, 0x107b: 0x60c9,
+       0x107c: 0x6101, 0x107d: 0x6139, 0x107e: 0x6171, 0x107f: 0x61a9,
+       // Block 0x42, offset 0x1080
+       0x1080: 0x6211, 0x1081: 0x6229, 0x1082: 0x408d, 0x1083: 0x6241, 0x1084: 0x6259, 0x1085: 0x6271,
+       0x1086: 0x6289, 0x1087: 0x62a1, 0x1088: 0x40ad, 0x1089: 0x62b9, 0x108a: 0x62e1, 0x108b: 0x62f9,
+       0x108c: 0x40cd, 0x108d: 0x40cd, 0x108e: 0x6311, 0x108f: 0x6329, 0x1090: 0x6341, 0x1091: 0x40ed,
+       0x1092: 0x410d, 0x1093: 0x412d, 0x1094: 0x414d, 0x1095: 0x416d, 0x1096: 0x6359, 0x1097: 0x6371,
+       0x1098: 0x6389, 0x1099: 0x63a1, 0x109a: 0x63b9, 0x109b: 0x418d, 0x109c: 0x63d1, 0x109d: 0x63e9,
+       0x109e: 0x6401, 0x109f: 0x41ad, 0x10a0: 0x41cd, 0x10a1: 0x6419, 0x10a2: 0x41ed, 0x10a3: 0x420d,
+       0x10a4: 0x422d, 0x10a5: 0x6431, 0x10a6: 0x424d, 0x10a7: 0x6449, 0x10a8: 0x6479, 0x10a9: 0x6211,
+       0x10aa: 0x426d, 0x10ab: 0x428d, 0x10ac: 0x42ad, 0x10ad: 0x42cd, 0x10ae: 0x64b1, 0x10af: 0x64f1,
+       0x10b0: 0x6539, 0x10b1: 0x6551, 0x10b2: 0x42ed, 0x10b3: 0x6569, 0x10b4: 0x6581, 0x10b5: 0x6599,
+       0x10b6: 0x430d, 0x10b7: 0x65b1, 0x10b8: 0x65c9, 0x10b9: 0x65b1, 0x10ba: 0x65e1, 0x10bb: 0x65f9,
+       0x10bc: 0x432d, 0x10bd: 0x6611, 0x10be: 0x6629, 0x10bf: 0x6611,
+       // Block 0x43, offset 0x10c0
+       0x10c0: 0x434d, 0x10c1: 0x436d, 0x10c2: 0x0040, 0x10c3: 0x6641, 0x10c4: 0x6659, 0x10c5: 0x6671,
+       0x10c6: 0x6689, 0x10c7: 0x0040, 0x10c8: 0x66c1, 0x10c9: 0x66d9, 0x10ca: 0x66f1, 0x10cb: 0x6709,
+       0x10cc: 0x6721, 0x10cd: 0x6739, 0x10ce: 0x6401, 0x10cf: 0x6751, 0x10d0: 0x6769, 0x10d1: 0x6781,
+       0x10d2: 0x438d, 0x10d3: 0x6799, 0x10d4: 0x6289, 0x10d5: 0x43ad, 0x10d6: 0x43cd, 0x10d7: 0x67b1,
+       0x10d8: 0x0040, 0x10d9: 0x43ed, 0x10da: 0x67c9, 0x10db: 0x67e1, 0x10dc: 0x67f9, 0x10dd: 0x6811,
+       0x10de: 0x6829, 0x10df: 0x6859, 0x10e0: 0x6889, 0x10e1: 0x68b1, 0x10e2: 0x68d9, 0x10e3: 0x6901,
+       0x10e4: 0x6929, 0x10e5: 0x6951, 0x10e6: 0x6979, 0x10e7: 0x69a1, 0x10e8: 0x69c9, 0x10e9: 0x69f1,
+       0x10ea: 0x6a21, 0x10eb: 0x6a51, 0x10ec: 0x6a81, 0x10ed: 0x6ab1, 0x10ee: 0x6ae1, 0x10ef: 0x6b11,
+       0x10f0: 0x6b41, 0x10f1: 0x6b71, 0x10f2: 0x6ba1, 0x10f3: 0x6bd1, 0x10f4: 0x6c01, 0x10f5: 0x6c31,
+       0x10f6: 0x6c61, 0x10f7: 0x6c91, 0x10f8: 0x6cc1, 0x10f9: 0x6cf1, 0x10fa: 0x6d21, 0x10fb: 0x6d51,
+       0x10fc: 0x6d81, 0x10fd: 0x6db1, 0x10fe: 0x6de1, 0x10ff: 0x440d,
+       // Block 0x44, offset 0x1100
+       0x1100: 0xe00d, 0x1101: 0x0008, 0x1102: 0xe00d, 0x1103: 0x0008, 0x1104: 0xe00d, 0x1105: 0x0008,
+       0x1106: 0xe00d, 0x1107: 0x0008, 0x1108: 0xe00d, 0x1109: 0x0008, 0x110a: 0xe00d, 0x110b: 0x0008,
+       0x110c: 0xe00d, 0x110d: 0x0008, 0x110e: 0xe00d, 0x110f: 0x0008, 0x1110: 0xe00d, 0x1111: 0x0008,
+       0x1112: 0xe00d, 0x1113: 0x0008, 0x1114: 0xe00d, 0x1115: 0x0008, 0x1116: 0xe00d, 0x1117: 0x0008,
+       0x1118: 0xe00d, 0x1119: 0x0008, 0x111a: 0xe00d, 0x111b: 0x0008, 0x111c: 0xe00d, 0x111d: 0x0008,
+       0x111e: 0xe00d, 0x111f: 0x0008, 0x1120: 0xe00d, 0x1121: 0x0008, 0x1122: 0xe00d, 0x1123: 0x0008,
+       0x1124: 0xe00d, 0x1125: 0x0008, 0x1126: 0xe00d, 0x1127: 0x0008, 0x1128: 0xe00d, 0x1129: 0x0008,
+       0x112a: 0xe00d, 0x112b: 0x0008, 0x112c: 0xe00d, 0x112d: 0x0008, 0x112e: 0x0008, 0x112f: 0x3308,
+       0x1130: 0x3318, 0x1131: 0x3318, 0x1132: 0x3318, 0x1133: 0x0018, 0x1134: 0x3308, 0x1135: 0x3308,
+       0x1136: 0x3308, 0x1137: 0x3308, 0x1138: 0x3308, 0x1139: 0x3308, 0x113a: 0x3308, 0x113b: 0x3308,
+       0x113c: 0x3308, 0x113d: 0x3308, 0x113e: 0x0018, 0x113f: 0x0008,
+       // Block 0x45, offset 0x1140
+       0x1140: 0xe00d, 0x1141: 0x0008, 0x1142: 0xe00d, 0x1143: 0x0008, 0x1144: 0xe00d, 0x1145: 0x0008,
+       0x1146: 0xe00d, 0x1147: 0x0008, 0x1148: 0xe00d, 0x1149: 0x0008, 0x114a: 0xe00d, 0x114b: 0x0008,
+       0x114c: 0xe00d, 0x114d: 0x0008, 0x114e: 0xe00d, 0x114f: 0x0008, 0x1150: 0xe00d, 0x1151: 0x0008,
+       0x1152: 0xe00d, 0x1153: 0x0008, 0x1154: 0xe00d, 0x1155: 0x0008, 0x1156: 0xe00d, 0x1157: 0x0008,
+       0x1158: 0xe00d, 0x1159: 0x0008, 0x115a: 0xe00d, 0x115b: 0x0008, 0x115c: 0x0ea1, 0x115d: 0x6e11,
+       0x115e: 0x3308, 0x115f: 0x3308, 0x1160: 0x0008, 0x1161: 0x0008, 0x1162: 0x0008, 0x1163: 0x0008,
+       0x1164: 0x0008, 0x1165: 0x0008, 0x1166: 0x0008, 0x1167: 0x0008, 0x1168: 0x0008, 0x1169: 0x0008,
+       0x116a: 0x0008, 0x116b: 0x0008, 0x116c: 0x0008, 0x116d: 0x0008, 0x116e: 0x0008, 0x116f: 0x0008,
+       0x1170: 0x0008, 0x1171: 0x0008, 0x1172: 0x0008, 0x1173: 0x0008, 0x1174: 0x0008, 0x1175: 0x0008,
+       0x1176: 0x0008, 0x1177: 0x0008, 0x1178: 0x0008, 0x1179: 0x0008, 0x117a: 0x0008, 0x117b: 0x0008,
+       0x117c: 0x0008, 0x117d: 0x0008, 0x117e: 0x0008, 0x117f: 0x0008,
+       // Block 0x46, offset 0x1180
+       0x1180: 0x0018, 0x1181: 0x0018, 0x1182: 0x0018, 0x1183: 0x0018, 0x1184: 0x0018, 0x1185: 0x0018,
+       0x1186: 0x0018, 0x1187: 0x0018, 0x1188: 0x0018, 0x1189: 0x0018, 0x118a: 0x0018, 0x118b: 0x0018,
+       0x118c: 0x0018, 0x118d: 0x0018, 0x118e: 0x0018, 0x118f: 0x0018, 0x1190: 0x0018, 0x1191: 0x0018,
+       0x1192: 0x0018, 0x1193: 0x0018, 0x1194: 0x0018, 0x1195: 0x0018, 0x1196: 0x0018, 0x1197: 0x0008,
+       0x1198: 0x0008, 0x1199: 0x0008, 0x119a: 0x0008, 0x119b: 0x0008, 0x119c: 0x0008, 0x119d: 0x0008,
+       0x119e: 0x0008, 0x119f: 0x0008, 0x11a0: 0x0018, 0x11a1: 0x0018, 0x11a2: 0xe00d, 0x11a3: 0x0008,
+       0x11a4: 0xe00d, 0x11a5: 0x0008, 0x11a6: 0xe00d, 0x11a7: 0x0008, 0x11a8: 0xe00d, 0x11a9: 0x0008,
+       0x11aa: 0xe00d, 0x11ab: 0x0008, 0x11ac: 0xe00d, 0x11ad: 0x0008, 0x11ae: 0xe00d, 0x11af: 0x0008,
+       0x11b0: 0x0008, 0x11b1: 0x0008, 0x11b2: 0xe00d, 0x11b3: 0x0008, 0x11b4: 0xe00d, 0x11b5: 0x0008,
+       0x11b6: 0xe00d, 0x11b7: 0x0008, 0x11b8: 0xe00d, 0x11b9: 0x0008, 0x11ba: 0xe00d, 0x11bb: 0x0008,
+       0x11bc: 0xe00d, 0x11bd: 0x0008, 0x11be: 0xe00d, 0x11bf: 0x0008,
+       // Block 0x47, offset 0x11c0
+       0x11c0: 0xe00d, 0x11c1: 0x0008, 0x11c2: 0xe00d, 0x11c3: 0x0008, 0x11c4: 0xe00d, 0x11c5: 0x0008,
+       0x11c6: 0xe00d, 0x11c7: 0x0008, 0x11c8: 0xe00d, 0x11c9: 0x0008, 0x11ca: 0xe00d, 0x11cb: 0x0008,
+       0x11cc: 0xe00d, 0x11cd: 0x0008, 0x11ce: 0xe00d, 0x11cf: 0x0008, 0x11d0: 0xe00d, 0x11d1: 0x0008,
+       0x11d2: 0xe00d, 0x11d3: 0x0008, 0x11d4: 0xe00d, 0x11d5: 0x0008, 0x11d6: 0xe00d, 0x11d7: 0x0008,
+       0x11d8: 0xe00d, 0x11d9: 0x0008, 0x11da: 0xe00d, 0x11db: 0x0008, 0x11dc: 0xe00d, 0x11dd: 0x0008,
+       0x11de: 0xe00d, 0x11df: 0x0008, 0x11e0: 0xe00d, 0x11e1: 0x0008, 0x11e2: 0xe00d, 0x11e3: 0x0008,
+       0x11e4: 0xe00d, 0x11e5: 0x0008, 0x11e6: 0xe00d, 0x11e7: 0x0008, 0x11e8: 0xe00d, 0x11e9: 0x0008,
+       0x11ea: 0xe00d, 0x11eb: 0x0008, 0x11ec: 0xe00d, 0x11ed: 0x0008, 0x11ee: 0xe00d, 0x11ef: 0x0008,
+       0x11f0: 0xe0fd, 0x11f1: 0x0008, 0x11f2: 0x0008, 0x11f3: 0x0008, 0x11f4: 0x0008, 0x11f5: 0x0008,
+       0x11f6: 0x0008, 0x11f7: 0x0008, 0x11f8: 0x0008, 0x11f9: 0xe01d, 0x11fa: 0x0008, 0x11fb: 0xe03d,
+       0x11fc: 0x0008, 0x11fd: 0x442d, 0x11fe: 0xe00d, 0x11ff: 0x0008,
+       // Block 0x48, offset 0x1200
+       0x1200: 0xe00d, 0x1201: 0x0008, 0x1202: 0xe00d, 0x1203: 0x0008, 0x1204: 0xe00d, 0x1205: 0x0008,
+       0x1206: 0xe00d, 0x1207: 0x0008, 0x1208: 0x0008, 0x1209: 0x0018, 0x120a: 0x0018, 0x120b: 0xe03d,
+       0x120c: 0x0008, 0x120d: 0x11d9, 0x120e: 0x0008, 0x120f: 0x0008, 0x1210: 0xe00d, 0x1211: 0x0008,
+       0x1212: 0xe00d, 0x1213: 0x0008, 0x1214: 0x0008, 0x1215: 0x0008, 0x1216: 0xe00d, 0x1217: 0x0008,
+       0x1218: 0xe00d, 0x1219: 0x0008, 0x121a: 0xe00d, 0x121b: 0x0008, 0x121c: 0xe00d, 0x121d: 0x0008,
+       0x121e: 0xe00d, 0x121f: 0x0008, 0x1220: 0xe00d, 0x1221: 0x0008, 0x1222: 0xe00d, 0x1223: 0x0008,
+       0x1224: 0xe00d, 0x1225: 0x0008, 0x1226: 0xe00d, 0x1227: 0x0008, 0x1228: 0xe00d, 0x1229: 0x0008,
+       0x122a: 0x6e29, 0x122b: 0x1029, 0x122c: 0x11c1, 0x122d: 0x6e41, 0x122e: 0x1221, 0x122f: 0x0008,
+       0x1230: 0x6e59, 0x1231: 0x6e71, 0x1232: 0x1239, 0x1233: 0x444d, 0x1234: 0xe00d, 0x1235: 0x0008,
+       0x1236: 0xe00d, 0x1237: 0x0008, 0x1238: 0x0040, 0x1239: 0x0008, 0x123a: 0x0040, 0x123b: 0x0040,
+       0x123c: 0x0040, 0x123d: 0x0040, 0x123e: 0x0040, 0x123f: 0x0040,
+       // Block 0x49, offset 0x1240
+       0x1240: 0x64d5, 0x1241: 0x64f5, 0x1242: 0x6515, 0x1243: 0x6535, 0x1244: 0x6555, 0x1245: 0x6575,
+       0x1246: 0x6595, 0x1247: 0x65b5, 0x1248: 0x65d5, 0x1249: 0x65f5, 0x124a: 0x6615, 0x124b: 0x6635,
+       0x124c: 0x6655, 0x124d: 0x6675, 0x124e: 0x0008, 0x124f: 0x0008, 0x1250: 0x6695, 0x1251: 0x0008,
+       0x1252: 0x66b5, 0x1253: 0x0008, 0x1254: 0x0008, 0x1255: 0x66d5, 0x1256: 0x66f5, 0x1257: 0x6715,
+       0x1258: 0x6735, 0x1259: 0x6755, 0x125a: 0x6775, 0x125b: 0x6795, 0x125c: 0x67b5, 0x125d: 0x67d5,
+       0x125e: 0x67f5, 0x125f: 0x0008, 0x1260: 0x6815, 0x1261: 0x0008, 0x1262: 0x6835, 0x1263: 0x0008,
+       0x1264: 0x0008, 0x1265: 0x6855, 0x1266: 0x6875, 0x1267: 0x0008, 0x1268: 0x0008, 0x1269: 0x0008,
+       0x126a: 0x6895, 0x126b: 0x68b5, 0x126c: 0x68d5, 0x126d: 0x68f5, 0x126e: 0x6915, 0x126f: 0x6935,
+       0x1270: 0x6955, 0x1271: 0x6975, 0x1272: 0x6995, 0x1273: 0x69b5, 0x1274: 0x69d5, 0x1275: 0x69f5,
+       0x1276: 0x6a15, 0x1277: 0x6a35, 0x1278: 0x6a55, 0x1279: 0x6a75, 0x127a: 0x6a95, 0x127b: 0x6ab5,
+       0x127c: 0x6ad5, 0x127d: 0x6af5, 0x127e: 0x6b15, 0x127f: 0x6b35,
+       // Block 0x4a, offset 0x1280
+       0x1280: 0x7a95, 0x1281: 0x7ab5, 0x1282: 0x7ad5, 0x1283: 0x7af5, 0x1284: 0x7b15, 0x1285: 0x7b35,
+       0x1286: 0x7b55, 0x1287: 0x7b75, 0x1288: 0x7b95, 0x1289: 0x7bb5, 0x128a: 0x7bd5, 0x128b: 0x7bf5,
+       0x128c: 0x7c15, 0x128d: 0x7c35, 0x128e: 0x7c55, 0x128f: 0x6ec9, 0x1290: 0x6ef1, 0x1291: 0x6f19,
+       0x1292: 0x7c75, 0x1293: 0x7c95, 0x1294: 0x7cb5, 0x1295: 0x6f41, 0x1296: 0x6f69, 0x1297: 0x6f91,
+       0x1298: 0x7cd5, 0x1299: 0x7cf5, 0x129a: 0x0040, 0x129b: 0x0040, 0x129c: 0x0040, 0x129d: 0x0040,
+       0x129e: 0x0040, 0x129f: 0x0040, 0x12a0: 0x0040, 0x12a1: 0x0040, 0x12a2: 0x0040, 0x12a3: 0x0040,
+       0x12a4: 0x0040, 0x12a5: 0x0040, 0x12a6: 0x0040, 0x12a7: 0x0040, 0x12a8: 0x0040, 0x12a9: 0x0040,
+       0x12aa: 0x0040, 0x12ab: 0x0040, 0x12ac: 0x0040, 0x12ad: 0x0040, 0x12ae: 0x0040, 0x12af: 0x0040,
+       0x12b0: 0x0040, 0x12b1: 0x0040, 0x12b2: 0x0040, 0x12b3: 0x0040, 0x12b4: 0x0040, 0x12b5: 0x0040,
+       0x12b6: 0x0040, 0x12b7: 0x0040, 0x12b8: 0x0040, 0x12b9: 0x0040, 0x12ba: 0x0040, 0x12bb: 0x0040,
+       0x12bc: 0x0040, 0x12bd: 0x0040, 0x12be: 0x0040, 0x12bf: 0x0040,
+       // Block 0x4b, offset 0x12c0
+       0x12c0: 0x6fb9, 0x12c1: 0x6fd1, 0x12c2: 0x6fe9, 0x12c3: 0x7d15, 0x12c4: 0x7d35, 0x12c5: 0x7001,
+       0x12c6: 0x7001, 0x12c7: 0x0040, 0x12c8: 0x0040, 0x12c9: 0x0040, 0x12ca: 0x0040, 0x12cb: 0x0040,
+       0x12cc: 0x0040, 0x12cd: 0x0040, 0x12ce: 0x0040, 0x12cf: 0x0040, 0x12d0: 0x0040, 0x12d1: 0x0040,
+       0x12d2: 0x0040, 0x12d3: 0x7019, 0x12d4: 0x7041, 0x12d5: 0x7069, 0x12d6: 0x7091, 0x12d7: 0x70b9,
+       0x12d8: 0x0040, 0x12d9: 0x0040, 0x12da: 0x0040, 0x12db: 0x0040, 0x12dc: 0x0040, 0x12dd: 0x70e1,
+       0x12de: 0x3308, 0x12df: 0x7109, 0x12e0: 0x7131, 0x12e1: 0x20a9, 0x12e2: 0x20f1, 0x12e3: 0x7149,
+       0x12e4: 0x7161, 0x12e5: 0x7179, 0x12e6: 0x7191, 0x12e7: 0x71a9, 0x12e8: 0x71c1, 0x12e9: 0x1fb2,
+       0x12ea: 0x71d9, 0x12eb: 0x7201, 0x12ec: 0x7229, 0x12ed: 0x7261, 0x12ee: 0x7299, 0x12ef: 0x72c1,
+       0x12f0: 0x72e9, 0x12f1: 0x7311, 0x12f2: 0x7339, 0x12f3: 0x7361, 0x12f4: 0x7389, 0x12f5: 0x73b1,
+       0x12f6: 0x73d9, 0x12f7: 0x0040, 0x12f8: 0x7401, 0x12f9: 0x7429, 0x12fa: 0x7451, 0x12fb: 0x7479,
+       0x12fc: 0x74a1, 0x12fd: 0x0040, 0x12fe: 0x74c9, 0x12ff: 0x0040,
+       // Block 0x4c, offset 0x1300
+       0x1300: 0x74f1, 0x1301: 0x7519, 0x1302: 0x0040, 0x1303: 0x7541, 0x1304: 0x7569, 0x1305: 0x0040,
+       0x1306: 0x7591, 0x1307: 0x75b9, 0x1308: 0x75e1, 0x1309: 0x7609, 0x130a: 0x7631, 0x130b: 0x7659,
+       0x130c: 0x7681, 0x130d: 0x76a9, 0x130e: 0x76d1, 0x130f: 0x76f9, 0x1310: 0x7721, 0x1311: 0x7721,
+       0x1312: 0x7739, 0x1313: 0x7739, 0x1314: 0x7739, 0x1315: 0x7739, 0x1316: 0x7751, 0x1317: 0x7751,
+       0x1318: 0x7751, 0x1319: 0x7751, 0x131a: 0x7769, 0x131b: 0x7769, 0x131c: 0x7769, 0x131d: 0x7769,
+       0x131e: 0x7781, 0x131f: 0x7781, 0x1320: 0x7781, 0x1321: 0x7781, 0x1322: 0x7799, 0x1323: 0x7799,
+       0x1324: 0x7799, 0x1325: 0x7799, 0x1326: 0x77b1, 0x1327: 0x77b1, 0x1328: 0x77b1, 0x1329: 0x77b1,
+       0x132a: 0x77c9, 0x132b: 0x77c9, 0x132c: 0x77c9, 0x132d: 0x77c9, 0x132e: 0x77e1, 0x132f: 0x77e1,
+       0x1330: 0x77e1, 0x1331: 0x77e1, 0x1332: 0x77f9, 0x1333: 0x77f9, 0x1334: 0x77f9, 0x1335: 0x77f9,
+       0x1336: 0x7811, 0x1337: 0x7811, 0x1338: 0x7811, 0x1339: 0x7811, 0x133a: 0x7829, 0x133b: 0x7829,
+       0x133c: 0x7829, 0x133d: 0x7829, 0x133e: 0x7841, 0x133f: 0x7841,
+       // Block 0x4d, offset 0x1340
+       0x1340: 0x7841, 0x1341: 0x7841, 0x1342: 0x7859, 0x1343: 0x7859, 0x1344: 0x7871, 0x1345: 0x7871,
+       0x1346: 0x7889, 0x1347: 0x7889, 0x1348: 0x78a1, 0x1349: 0x78a1, 0x134a: 0x78b9, 0x134b: 0x78b9,
+       0x134c: 0x78d1, 0x134d: 0x78d1, 0x134e: 0x78e9, 0x134f: 0x78e9, 0x1350: 0x78e9, 0x1351: 0x78e9,
+       0x1352: 0x7901, 0x1353: 0x7901, 0x1354: 0x7901, 0x1355: 0x7901, 0x1356: 0x7919, 0x1357: 0x7919,
+       0x1358: 0x7919, 0x1359: 0x7919, 0x135a: 0x7931, 0x135b: 0x7931, 0x135c: 0x7931, 0x135d: 0x7931,
+       0x135e: 0x7949, 0x135f: 0x7949, 0x1360: 0x7961, 0x1361: 0x7961, 0x1362: 0x7961, 0x1363: 0x7961,
+       0x1364: 0x7979, 0x1365: 0x7979, 0x1366: 0x7991, 0x1367: 0x7991, 0x1368: 0x7991, 0x1369: 0x7991,
+       0x136a: 0x79a9, 0x136b: 0x79a9, 0x136c: 0x79a9, 0x136d: 0x79a9, 0x136e: 0x79c1, 0x136f: 0x79c1,
+       0x1370: 0x79d9, 0x1371: 0x79d9, 0x1372: 0x0818, 0x1373: 0x0818, 0x1374: 0x0818, 0x1375: 0x0818,
+       0x1376: 0x0818, 0x1377: 0x0818, 0x1378: 0x0818, 0x1379: 0x0818, 0x137a: 0x0818, 0x137b: 0x0818,
+       0x137c: 0x0818, 0x137d: 0x0818, 0x137e: 0x0818, 0x137f: 0x0818,
+       // Block 0x4e, offset 0x1380
+       0x1380: 0x0818, 0x1381: 0x0818, 0x1382: 0x0040, 0x1383: 0x0040, 0x1384: 0x0040, 0x1385: 0x0040,
+       0x1386: 0x0040, 0x1387: 0x0040, 0x1388: 0x0040, 0x1389: 0x0040, 0x138a: 0x0040, 0x138b: 0x0040,
+       0x138c: 0x0040, 0x138d: 0x0040, 0x138e: 0x0040, 0x138f: 0x0040, 0x1390: 0x0040, 0x1391: 0x0040,
+       0x1392: 0x0040, 0x1393: 0x79f1, 0x1394: 0x79f1, 0x1395: 0x79f1, 0x1396: 0x79f1, 0x1397: 0x7a09,
+       0x1398: 0x7a09, 0x1399: 0x7a21, 0x139a: 0x7a21, 0x139b: 0x7a39, 0x139c: 0x7a39, 0x139d: 0x0479,
+       0x139e: 0x7a51, 0x139f: 0x7a51, 0x13a0: 0x7a69, 0x13a1: 0x7a69, 0x13a2: 0x7a81, 0x13a3: 0x7a81,
+       0x13a4: 0x7a99, 0x13a5: 0x7a99, 0x13a6: 0x7a99, 0x13a7: 0x7a99, 0x13a8: 0x7ab1, 0x13a9: 0x7ab1,
+       0x13aa: 0x7ac9, 0x13ab: 0x7ac9, 0x13ac: 0x7af1, 0x13ad: 0x7af1, 0x13ae: 0x7b19, 0x13af: 0x7b19,
+       0x13b0: 0x7b41, 0x13b1: 0x7b41, 0x13b2: 0x7b69, 0x13b3: 0x7b69, 0x13b4: 0x7b91, 0x13b5: 0x7b91,
+       0x13b6: 0x7bb9, 0x13b7: 0x7bb9, 0x13b8: 0x7bb9, 0x13b9: 0x7be1, 0x13ba: 0x7be1, 0x13bb: 0x7be1,
+       0x13bc: 0x7c09, 0x13bd: 0x7c09, 0x13be: 0x7c09, 0x13bf: 0x7c09,
+       // Block 0x4f, offset 0x13c0
+       0x13c0: 0x85f9, 0x13c1: 0x8621, 0x13c2: 0x8649, 0x13c3: 0x8671, 0x13c4: 0x8699, 0x13c5: 0x86c1,
+       0x13c6: 0x86e9, 0x13c7: 0x8711, 0x13c8: 0x8739, 0x13c9: 0x8761, 0x13ca: 0x8789, 0x13cb: 0x87b1,
+       0x13cc: 0x87d9, 0x13cd: 0x8801, 0x13ce: 0x8829, 0x13cf: 0x8851, 0x13d0: 0x8879, 0x13d1: 0x88a1,
+       0x13d2: 0x88c9, 0x13d3: 0x88f1, 0x13d4: 0x8919, 0x13d5: 0x8941, 0x13d6: 0x8969, 0x13d7: 0x8991,
+       0x13d8: 0x89b9, 0x13d9: 0x89e1, 0x13da: 0x8a09, 0x13db: 0x8a31, 0x13dc: 0x8a59, 0x13dd: 0x8a81,
+       0x13de: 0x8aaa, 0x13df: 0x8ada, 0x13e0: 0x8b0a, 0x13e1: 0x8b3a, 0x13e2: 0x8b6a, 0x13e3: 0x8b9a,
+       0x13e4: 0x8bc9, 0x13e5: 0x8bf1, 0x13e6: 0x7c71, 0x13e7: 0x8c19, 0x13e8: 0x7be1, 0x13e9: 0x7c99,
+       0x13ea: 0x8c41, 0x13eb: 0x8c69, 0x13ec: 0x7d39, 0x13ed: 0x8c91, 0x13ee: 0x7d61, 0x13ef: 0x7d89,
+       0x13f0: 0x8cb9, 0x13f1: 0x8ce1, 0x13f2: 0x7e29, 0x13f3: 0x8d09, 0x13f4: 0x7e51, 0x13f5: 0x7e79,
+       0x13f6: 0x8d31, 0x13f7: 0x8d59, 0x13f8: 0x7ec9, 0x13f9: 0x8d81, 0x13fa: 0x7ef1, 0x13fb: 0x7f19,
+       0x13fc: 0x83a1, 0x13fd: 0x83c9, 0x13fe: 0x8441, 0x13ff: 0x8469,
+       // Block 0x50, offset 0x1400
+       0x1400: 0x8491, 0x1401: 0x8531, 0x1402: 0x8559, 0x1403: 0x8581, 0x1404: 0x85a9, 0x1405: 0x8649,
+       0x1406: 0x8671, 0x1407: 0x8699, 0x1408: 0x8da9, 0x1409: 0x8739, 0x140a: 0x8dd1, 0x140b: 0x8df9,
+       0x140c: 0x8829, 0x140d: 0x8e21, 0x140e: 0x8851, 0x140f: 0x8879, 0x1410: 0x8a81, 0x1411: 0x8e49,
+       0x1412: 0x8e71, 0x1413: 0x89b9, 0x1414: 0x8e99, 0x1415: 0x89e1, 0x1416: 0x8a09, 0x1417: 0x7c21,
+       0x1418: 0x7c49, 0x1419: 0x8ec1, 0x141a: 0x7c71, 0x141b: 0x8ee9, 0x141c: 0x7cc1, 0x141d: 0x7ce9,
+       0x141e: 0x7d11, 0x141f: 0x7d39, 0x1420: 0x8f11, 0x1421: 0x7db1, 0x1422: 0x7dd9, 0x1423: 0x7e01,
+       0x1424: 0x7e29, 0x1425: 0x8f39, 0x1426: 0x7ec9, 0x1427: 0x7f41, 0x1428: 0x7f69, 0x1429: 0x7f91,
+       0x142a: 0x7fb9, 0x142b: 0x7fe1, 0x142c: 0x8031, 0x142d: 0x8059, 0x142e: 0x8081, 0x142f: 0x80a9,
+       0x1430: 0x80d1, 0x1431: 0x80f9, 0x1432: 0x8f61, 0x1433: 0x8121, 0x1434: 0x8149, 0x1435: 0x8171,
+       0x1436: 0x8199, 0x1437: 0x81c1, 0x1438: 0x81e9, 0x1439: 0x8239, 0x143a: 0x8261, 0x143b: 0x8289,
+       0x143c: 0x82b1, 0x143d: 0x82d9, 0x143e: 0x8301, 0x143f: 0x8329,
+       // Block 0x51, offset 0x1440
+       0x1440: 0x8351, 0x1441: 0x8379, 0x1442: 0x83f1, 0x1443: 0x8419, 0x1444: 0x84b9, 0x1445: 0x84e1,
+       0x1446: 0x8509, 0x1447: 0x8531, 0x1448: 0x8559, 0x1449: 0x85d1, 0x144a: 0x85f9, 0x144b: 0x8621,
+       0x144c: 0x8649, 0x144d: 0x8f89, 0x144e: 0x86c1, 0x144f: 0x86e9, 0x1450: 0x8711, 0x1451: 0x8739,
+       0x1452: 0x87b1, 0x1453: 0x87d9, 0x1454: 0x8801, 0x1455: 0x8829, 0x1456: 0x8fb1, 0x1457: 0x88a1,
+       0x1458: 0x88c9, 0x1459: 0x8fd9, 0x145a: 0x8941, 0x145b: 0x8969, 0x145c: 0x8991, 0x145d: 0x89b9,
+       0x145e: 0x9001, 0x145f: 0x7c71, 0x1460: 0x8ee9, 0x1461: 0x7d39, 0x1462: 0x8f11, 0x1463: 0x7e29,
+       0x1464: 0x8f39, 0x1465: 0x7ec9, 0x1466: 0x9029, 0x1467: 0x80d1, 0x1468: 0x9051, 0x1469: 0x9079,
+       0x146a: 0x90a1, 0x146b: 0x8531, 0x146c: 0x8559, 0x146d: 0x8649, 0x146e: 0x8829, 0x146f: 0x8fb1,
+       0x1470: 0x89b9, 0x1471: 0x9001, 0x1472: 0x90c9, 0x1473: 0x9101, 0x1474: 0x9139, 0x1475: 0x9171,
+       0x1476: 0x9199, 0x1477: 0x91c1, 0x1478: 0x91e9, 0x1479: 0x9211, 0x147a: 0x9239, 0x147b: 0x9261,
+       0x147c: 0x9289, 0x147d: 0x92b1, 0x147e: 0x92d9, 0x147f: 0x9301,
+       // Block 0x52, offset 0x1480
+       0x1480: 0x9329, 0x1481: 0x9351, 0x1482: 0x9379, 0x1483: 0x93a1, 0x1484: 0x93c9, 0x1485: 0x93f1,
+       0x1486: 0x9419, 0x1487: 0x9441, 0x1488: 0x9469, 0x1489: 0x9491, 0x148a: 0x94b9, 0x148b: 0x94e1,
+       0x148c: 0x9079, 0x148d: 0x9509, 0x148e: 0x9531, 0x148f: 0x9559, 0x1490: 0x9581, 0x1491: 0x9171,
+       0x1492: 0x9199, 0x1493: 0x91c1, 0x1494: 0x91e9, 0x1495: 0x9211, 0x1496: 0x9239, 0x1497: 0x9261,
+       0x1498: 0x9289, 0x1499: 0x92b1, 0x149a: 0x92d9, 0x149b: 0x9301, 0x149c: 0x9329, 0x149d: 0x9351,
+       0x149e: 0x9379, 0x149f: 0x93a1, 0x14a0: 0x93c9, 0x14a1: 0x93f1, 0x14a2: 0x9419, 0x14a3: 0x9441,
+       0x14a4: 0x9469, 0x14a5: 0x9491, 0x14a6: 0x94b9, 0x14a7: 0x94e1, 0x14a8: 0x9079, 0x14a9: 0x9509,
+       0x14aa: 0x9531, 0x14ab: 0x9559, 0x14ac: 0x9581, 0x14ad: 0x9491, 0x14ae: 0x94b9, 0x14af: 0x94e1,
+       0x14b0: 0x9079, 0x14b1: 0x9051, 0x14b2: 0x90a1, 0x14b3: 0x8211, 0x14b4: 0x8059, 0x14b5: 0x8081,
+       0x14b6: 0x80a9, 0x14b7: 0x9491, 0x14b8: 0x94b9, 0x14b9: 0x94e1, 0x14ba: 0x8211, 0x14bb: 0x8239,
+       0x14bc: 0x95a9, 0x14bd: 0x95a9, 0x14be: 0x0018, 0x14bf: 0x0018,
+       // Block 0x53, offset 0x14c0
+       0x14c0: 0x0040, 0x14c1: 0x0040, 0x14c2: 0x0040, 0x14c3: 0x0040, 0x14c4: 0x0040, 0x14c5: 0x0040,
+       0x14c6: 0x0040, 0x14c7: 0x0040, 0x14c8: 0x0040, 0x14c9: 0x0040, 0x14ca: 0x0040, 0x14cb: 0x0040,
+       0x14cc: 0x0040, 0x14cd: 0x0040, 0x14ce: 0x0040, 0x14cf: 0x0040, 0x14d0: 0x95d1, 0x14d1: 0x9609,
+       0x14d2: 0x9609, 0x14d3: 0x9641, 0x14d4: 0x9679, 0x14d5: 0x96b1, 0x14d6: 0x96e9, 0x14d7: 0x9721,
+       0x14d8: 0x9759, 0x14d9: 0x9759, 0x14da: 0x9791, 0x14db: 0x97c9, 0x14dc: 0x9801, 0x14dd: 0x9839,
+       0x14de: 0x9871, 0x14df: 0x98a9, 0x14e0: 0x98a9, 0x14e1: 0x98e1, 0x14e2: 0x9919, 0x14e3: 0x9919,
+       0x14e4: 0x9951, 0x14e5: 0x9951, 0x14e6: 0x9989, 0x14e7: 0x99c1, 0x14e8: 0x99c1, 0x14e9: 0x99f9,
+       0x14ea: 0x9a31, 0x14eb: 0x9a31, 0x14ec: 0x9a69, 0x14ed: 0x9a69, 0x14ee: 0x9aa1, 0x14ef: 0x9ad9,
+       0x14f0: 0x9ad9, 0x14f1: 0x9b11, 0x14f2: 0x9b11, 0x14f3: 0x9b49, 0x14f4: 0x9b81, 0x14f5: 0x9bb9,
+       0x14f6: 0x9bf1, 0x14f7: 0x9bf1, 0x14f8: 0x9c29, 0x14f9: 0x9c61, 0x14fa: 0x9c99, 0x14fb: 0x9cd1,
+       0x14fc: 0x9d09, 0x14fd: 0x9d09, 0x14fe: 0x9d41, 0x14ff: 0x9d79,
+       // Block 0x54, offset 0x1500
+       0x1500: 0xa949, 0x1501: 0xa981, 0x1502: 0xa9b9, 0x1503: 0xa8a1, 0x1504: 0x9bb9, 0x1505: 0x9989,
+       0x1506: 0xa9f1, 0x1507: 0xaa29, 0x1508: 0x0040, 0x1509: 0x0040, 0x150a: 0x0040, 0x150b: 0x0040,
+       0x150c: 0x0040, 0x150d: 0x0040, 0x150e: 0x0040, 0x150f: 0x0040, 0x1510: 0x0040, 0x1511: 0x0040,
+       0x1512: 0x0040, 0x1513: 0x0040, 0x1514: 0x0040, 0x1515: 0x0040, 0x1516: 0x0040, 0x1517: 0x0040,
+       0x1518: 0x0040, 0x1519: 0x0040, 0x151a: 0x0040, 0x151b: 0x0040, 0x151c: 0x0040, 0x151d: 0x0040,
+       0x151e: 0x0040, 0x151f: 0x0040, 0x1520: 0x0040, 0x1521: 0x0040, 0x1522: 0x0040, 0x1523: 0x0040,
+       0x1524: 0x0040, 0x1525: 0x0040, 0x1526: 0x0040, 0x1527: 0x0040, 0x1528: 0x0040, 0x1529: 0x0040,
+       0x152a: 0x0040, 0x152b: 0x0040, 0x152c: 0x0040, 0x152d: 0x0040, 0x152e: 0x0040, 0x152f: 0x0040,
+       0x1530: 0xaa61, 0x1531: 0xaa99, 0x1532: 0xaad1, 0x1533: 0xab19, 0x1534: 0xab61, 0x1535: 0xaba9,
+       0x1536: 0xabf1, 0x1537: 0xac39, 0x1538: 0xac81, 0x1539: 0xacc9, 0x153a: 0xad02, 0x153b: 0xae12,
+       0x153c: 0xae91, 0x153d: 0x0018, 0x153e: 0x0040, 0x153f: 0x0040,
+       // Block 0x55, offset 0x1540
+       0x1540: 0x33c0, 0x1541: 0x33c0, 0x1542: 0x33c0, 0x1543: 0x33c0, 0x1544: 0x33c0, 0x1545: 0x33c0,
+       0x1546: 0x33c0, 0x1547: 0x33c0, 0x1548: 0x33c0, 0x1549: 0x33c0, 0x154a: 0x33c0, 0x154b: 0x33c0,
+       0x154c: 0x33c0, 0x154d: 0x33c0, 0x154e: 0x33c0, 0x154f: 0x33c0, 0x1550: 0xaeda, 0x1551: 0x7d55,
+       0x1552: 0x0040, 0x1553: 0xaeea, 0x1554: 0x03c2, 0x1555: 0xaefa, 0x1556: 0xaf0a, 0x1557: 0x7d75,
+       0x1558: 0x7d95, 0x1559: 0x0040, 0x155a: 0x0040, 0x155b: 0x0040, 0x155c: 0x0040, 0x155d: 0x0040,
+       0x155e: 0x0040, 0x155f: 0x0040, 0x1560: 0x3308, 0x1561: 0x3308, 0x1562: 0x3308, 0x1563: 0x3308,
+       0x1564: 0x3308, 0x1565: 0x3308, 0x1566: 0x3308, 0x1567: 0x3308, 0x1568: 0x3308, 0x1569: 0x3308,
+       0x156a: 0x3308, 0x156b: 0x3308, 0x156c: 0x3308, 0x156d: 0x3308, 0x156e: 0x3308, 0x156f: 0x3308,
+       0x1570: 0x0040, 0x1571: 0x7db5, 0x1572: 0x7dd5, 0x1573: 0xaf1a, 0x1574: 0xaf1a, 0x1575: 0x1fd2,
+       0x1576: 0x1fe2, 0x1577: 0xaf2a, 0x1578: 0xaf3a, 0x1579: 0x7df5, 0x157a: 0x7e15, 0x157b: 0x7e35,
+       0x157c: 0x7df5, 0x157d: 0x7e55, 0x157e: 0x7e75, 0x157f: 0x7e55,
+       // Block 0x56, offset 0x1580
+       0x1580: 0x7e95, 0x1581: 0x7eb5, 0x1582: 0x7ed5, 0x1583: 0x7eb5, 0x1584: 0x7ef5, 0x1585: 0x0018,
+       0x1586: 0x0018, 0x1587: 0xaf4a, 0x1588: 0xaf5a, 0x1589: 0x7f16, 0x158a: 0x7f36, 0x158b: 0x7f56,
+       0x158c: 0x7f76, 0x158d: 0xaf1a, 0x158e: 0xaf1a, 0x158f: 0xaf1a, 0x1590: 0xaeda, 0x1591: 0x7f95,
+       0x1592: 0x0040, 0x1593: 0x0040, 0x1594: 0x03c2, 0x1595: 0xaeea, 0x1596: 0xaf0a, 0x1597: 0xaefa,
+       0x1598: 0x7fb5, 0x1599: 0x1fd2, 0x159a: 0x1fe2, 0x159b: 0xaf2a, 0x159c: 0xaf3a, 0x159d: 0x7e95,
+       0x159e: 0x7ef5, 0x159f: 0xaf6a, 0x15a0: 0xaf7a, 0x15a1: 0xaf8a, 0x15a2: 0x1fb2, 0x15a3: 0xaf99,
+       0x15a4: 0xafaa, 0x15a5: 0xafba, 0x15a6: 0x1fc2, 0x15a7: 0x0040, 0x15a8: 0xafca, 0x15a9: 0xafda,
+       0x15aa: 0xafea, 0x15ab: 0xaffa, 0x15ac: 0x0040, 0x15ad: 0x0040, 0x15ae: 0x0040, 0x15af: 0x0040,
+       0x15b0: 0x7fd6, 0x15b1: 0xb009, 0x15b2: 0x7ff6, 0x15b3: 0x0808, 0x15b4: 0x8016, 0x15b5: 0x0040,
+       0x15b6: 0x8036, 0x15b7: 0xb031, 0x15b8: 0x8056, 0x15b9: 0xb059, 0x15ba: 0x8076, 0x15bb: 0xb081,
+       0x15bc: 0x8096, 0x15bd: 0xb0a9, 0x15be: 0x80b6, 0x15bf: 0xb0d1,
+       // Block 0x57, offset 0x15c0
+       0x15c0: 0xb0f9, 0x15c1: 0xb111, 0x15c2: 0xb111, 0x15c3: 0xb129, 0x15c4: 0xb129, 0x15c5: 0xb141,
+       0x15c6: 0xb141, 0x15c7: 0xb159, 0x15c8: 0xb159, 0x15c9: 0xb171, 0x15ca: 0xb171, 0x15cb: 0xb171,
+       0x15cc: 0xb171, 0x15cd: 0xb189, 0x15ce: 0xb189, 0x15cf: 0xb1a1, 0x15d0: 0xb1a1, 0x15d1: 0xb1a1,
+       0x15d2: 0xb1a1, 0x15d3: 0xb1b9, 0x15d4: 0xb1b9, 0x15d5: 0xb1d1, 0x15d6: 0xb1d1, 0x15d7: 0xb1d1,
+       0x15d8: 0xb1d1, 0x15d9: 0xb1e9, 0x15da: 0xb1e9, 0x15db: 0xb1e9, 0x15dc: 0xb1e9, 0x15dd: 0xb201,
+       0x15de: 0xb201, 0x15df: 0xb201, 0x15e0: 0xb201, 0x15e1: 0xb219, 0x15e2: 0xb219, 0x15e3: 0xb219,
+       0x15e4: 0xb219, 0x15e5: 0xb231, 0x15e6: 0xb231, 0x15e7: 0xb231, 0x15e8: 0xb231, 0x15e9: 0xb249,
+       0x15ea: 0xb249, 0x15eb: 0xb261, 0x15ec: 0xb261, 0x15ed: 0xb279, 0x15ee: 0xb279, 0x15ef: 0xb291,
+       0x15f0: 0xb291, 0x15f1: 0xb2a9, 0x15f2: 0xb2a9, 0x15f3: 0xb2a9, 0x15f4: 0xb2a9, 0x15f5: 0xb2c1,
+       0x15f6: 0xb2c1, 0x15f7: 0xb2c1, 0x15f8: 0xb2c1, 0x15f9: 0xb2d9, 0x15fa: 0xb2d9, 0x15fb: 0xb2d9,
+       0x15fc: 0xb2d9, 0x15fd: 0xb2f1, 0x15fe: 0xb2f1, 0x15ff: 0xb2f1,
+       // Block 0x58, offset 0x1600
+       0x1600: 0xb2f1, 0x1601: 0xb309, 0x1602: 0xb309, 0x1603: 0xb309, 0x1604: 0xb309, 0x1605: 0xb321,
+       0x1606: 0xb321, 0x1607: 0xb321, 0x1608: 0xb321, 0x1609: 0xb339, 0x160a: 0xb339, 0x160b: 0xb339,
+       0x160c: 0xb339, 0x160d: 0xb351, 0x160e: 0xb351, 0x160f: 0xb351, 0x1610: 0xb351, 0x1611: 0xb369,
+       0x1612: 0xb369, 0x1613: 0xb369, 0x1614: 0xb369, 0x1615: 0xb381, 0x1616: 0xb381, 0x1617: 0xb381,
+       0x1618: 0xb381, 0x1619: 0xb399, 0x161a: 0xb399, 0x161b: 0xb399, 0x161c: 0xb399, 0x161d: 0xb3b1,
+       0x161e: 0xb3b1, 0x161f: 0xb3b1, 0x1620: 0xb3b1, 0x1621: 0xb3c9, 0x1622: 0xb3c9, 0x1623: 0xb3c9,
+       0x1624: 0xb3c9, 0x1625: 0xb3e1, 0x1626: 0xb3e1, 0x1627: 0xb3e1, 0x1628: 0xb3e1, 0x1629: 0xb3f9,
+       0x162a: 0xb3f9, 0x162b: 0xb3f9, 0x162c: 0xb3f9, 0x162d: 0xb411, 0x162e: 0xb411, 0x162f: 0x7ab1,
+       0x1630: 0x7ab1, 0x1631: 0xb429, 0x1632: 0xb429, 0x1633: 0xb429, 0x1634: 0xb429, 0x1635: 0xb441,
+       0x1636: 0xb441, 0x1637: 0xb469, 0x1638: 0xb469, 0x1639: 0xb491, 0x163a: 0xb491, 0x163b: 0xb4b9,
+       0x163c: 0xb4b9, 0x163d: 0x0040, 0x163e: 0x0040, 0x163f: 0x03c0,
+       // Block 0x59, offset 0x1640
+       0x1640: 0x0040, 0x1641: 0xaefa, 0x1642: 0xb4e2, 0x1643: 0xaf6a, 0x1644: 0xafda, 0x1645: 0xafea,
+       0x1646: 0xaf7a, 0x1647: 0xb4f2, 0x1648: 0x1fd2, 0x1649: 0x1fe2, 0x164a: 0xaf8a, 0x164b: 0x1fb2,
+       0x164c: 0xaeda, 0x164d: 0xaf99, 0x164e: 0x29d1, 0x164f: 0xb502, 0x1650: 0x1f41, 0x1651: 0x00c9,
+       0x1652: 0x0069, 0x1653: 0x0079, 0x1654: 0x1f51, 0x1655: 0x1f61, 0x1656: 0x1f71, 0x1657: 0x1f81,
+       0x1658: 0x1f91, 0x1659: 0x1fa1, 0x165a: 0xaeea, 0x165b: 0x03c2, 0x165c: 0xafaa, 0x165d: 0x1fc2,
+       0x165e: 0xafba, 0x165f: 0xaf0a, 0x1660: 0xaffa, 0x1661: 0x0039, 0x1662: 0x0ee9, 0x1663: 0x1159,
+       0x1664: 0x0ef9, 0x1665: 0x0f09, 0x1666: 0x1199, 0x1667: 0x0f31, 0x1668: 0x0249, 0x1669: 0x0f41,
+       0x166a: 0x0259, 0x166b: 0x0f51, 0x166c: 0x0359, 0x166d: 0x0f61, 0x166e: 0x0f71, 0x166f: 0x00d9,
+       0x1670: 0x0f99, 0x1671: 0x2039, 0x1672: 0x0269, 0x1673: 0x01d9, 0x1674: 0x0fa9, 0x1675: 0x0fb9,
+       0x1676: 0x1089, 0x1677: 0x0279, 0x1678: 0x0369, 0x1679: 0x0289, 0x167a: 0x13d1, 0x167b: 0xaf4a,
+       0x167c: 0xafca, 0x167d: 0xaf5a, 0x167e: 0xb512, 0x167f: 0xaf1a,
+       // Block 0x5a, offset 0x1680
+       0x1680: 0x1caa, 0x1681: 0x0039, 0x1682: 0x0ee9, 0x1683: 0x1159, 0x1684: 0x0ef9, 0x1685: 0x0f09,
+       0x1686: 0x1199, 0x1687: 0x0f31, 0x1688: 0x0249, 0x1689: 0x0f41, 0x168a: 0x0259, 0x168b: 0x0f51,
+       0x168c: 0x0359, 0x168d: 0x0f61, 0x168e: 0x0f71, 0x168f: 0x00d9, 0x1690: 0x0f99, 0x1691: 0x2039,
+       0x1692: 0x0269, 0x1693: 0x01d9, 0x1694: 0x0fa9, 0x1695: 0x0fb9, 0x1696: 0x1089, 0x1697: 0x0279,
+       0x1698: 0x0369, 0x1699: 0x0289, 0x169a: 0x13d1, 0x169b: 0xaf2a, 0x169c: 0xb522, 0x169d: 0xaf3a,
+       0x169e: 0xb532, 0x169f: 0x80d5, 0x16a0: 0x80f5, 0x16a1: 0x29d1, 0x16a2: 0x8115, 0x16a3: 0x8115,
+       0x16a4: 0x8135, 0x16a5: 0x8155, 0x16a6: 0x8175, 0x16a7: 0x8195, 0x16a8: 0x81b5, 0x16a9: 0x81d5,
+       0x16aa: 0x81f5, 0x16ab: 0x8215, 0x16ac: 0x8235, 0x16ad: 0x8255, 0x16ae: 0x8275, 0x16af: 0x8295,
+       0x16b0: 0x82b5, 0x16b1: 0x82d5, 0x16b2: 0x82f5, 0x16b3: 0x8315, 0x16b4: 0x8335, 0x16b5: 0x8355,
+       0x16b6: 0x8375, 0x16b7: 0x8395, 0x16b8: 0x83b5, 0x16b9: 0x83d5, 0x16ba: 0x83f5, 0x16bb: 0x8415,
+       0x16bc: 0x81b5, 0x16bd: 0x8435, 0x16be: 0x8455, 0x16bf: 0x8215,
+       // Block 0x5b, offset 0x16c0
+       0x16c0: 0x8475, 0x16c1: 0x8495, 0x16c2: 0x84b5, 0x16c3: 0x84d5, 0x16c4: 0x84f5, 0x16c5: 0x8515,
+       0x16c6: 0x8535, 0x16c7: 0x8555, 0x16c8: 0x84d5, 0x16c9: 0x8575, 0x16ca: 0x84d5, 0x16cb: 0x8595,
+       0x16cc: 0x8595, 0x16cd: 0x85b5, 0x16ce: 0x85b5, 0x16cf: 0x85d5, 0x16d0: 0x8515, 0x16d1: 0x85f5,
+       0x16d2: 0x8615, 0x16d3: 0x85f5, 0x16d4: 0x8635, 0x16d5: 0x8615, 0x16d6: 0x8655, 0x16d7: 0x8655,
+       0x16d8: 0x8675, 0x16d9: 0x8675, 0x16da: 0x8695, 0x16db: 0x8695, 0x16dc: 0x8615, 0x16dd: 0x8115,
+       0x16de: 0x86b5, 0x16df: 0x86d5, 0x16e0: 0x0040, 0x16e1: 0x86f5, 0x16e2: 0x8715, 0x16e3: 0x8735,
+       0x16e4: 0x8755, 0x16e5: 0x8735, 0x16e6: 0x8775, 0x16e7: 0x8795, 0x16e8: 0x87b5, 0x16e9: 0x87b5,
+       0x16ea: 0x87d5, 0x16eb: 0x87d5, 0x16ec: 0x87f5, 0x16ed: 0x87f5, 0x16ee: 0x87d5, 0x16ef: 0x87d5,
+       0x16f0: 0x8815, 0x16f1: 0x8835, 0x16f2: 0x8855, 0x16f3: 0x8875, 0x16f4: 0x8895, 0x16f5: 0x88b5,
+       0x16f6: 0x88b5, 0x16f7: 0x88b5, 0x16f8: 0x88d5, 0x16f9: 0x88d5, 0x16fa: 0x88d5, 0x16fb: 0x88d5,
+       0x16fc: 0x87b5, 0x16fd: 0x87b5, 0x16fe: 0x87b5, 0x16ff: 0x0040,
+       // Block 0x5c, offset 0x1700
+       0x1700: 0x0040, 0x1701: 0x0040, 0x1702: 0x8715, 0x1703: 0x86f5, 0x1704: 0x88f5, 0x1705: 0x86f5,
+       0x1706: 0x8715, 0x1707: 0x86f5, 0x1708: 0x0040, 0x1709: 0x0040, 0x170a: 0x8915, 0x170b: 0x8715,
+       0x170c: 0x8935, 0x170d: 0x88f5, 0x170e: 0x8935, 0x170f: 0x8715, 0x1710: 0x0040, 0x1711: 0x0040,
+       0x1712: 0x8955, 0x1713: 0x8975, 0x1714: 0x8875, 0x1715: 0x8935, 0x1716: 0x88f5, 0x1717: 0x8935,
+       0x1718: 0x0040, 0x1719: 0x0040, 0x171a: 0x8995, 0x171b: 0x89b5, 0x171c: 0x8995, 0x171d: 0x0040,
+       0x171e: 0x0040, 0x171f: 0x0040, 0x1720: 0xb541, 0x1721: 0xb559, 0x1722: 0xb571, 0x1723: 0x89d6,
+       0x1724: 0xb589, 0x1725: 0xb5a1, 0x1726: 0x89f5, 0x1727: 0x0040, 0x1728: 0x8a15, 0x1729: 0x8a35,
+       0x172a: 0x8a55, 0x172b: 0x8a35, 0x172c: 0x8a75, 0x172d: 0x8a95, 0x172e: 0x8ab5, 0x172f: 0x0040,
+       0x1730: 0x0040, 0x1731: 0x0040, 0x1732: 0x0040, 0x1733: 0x0040, 0x1734: 0x0040, 0x1735: 0x0040,
+       0x1736: 0x0040, 0x1737: 0x0040, 0x1738: 0x0040, 0x1739: 0x0340, 0x173a: 0x0340, 0x173b: 0x0340,
+       0x173c: 0x0040, 0x173d: 0x0040, 0x173e: 0x0040, 0x173f: 0x0040,
+       // Block 0x5d, offset 0x1740
+       0x1740: 0x0a08, 0x1741: 0x0a08, 0x1742: 0x0a08, 0x1743: 0x0a08, 0x1744: 0x0a08, 0x1745: 0x0c08,
+       0x1746: 0x0808, 0x1747: 0x0c08, 0x1748: 0x0818, 0x1749: 0x0c08, 0x174a: 0x0c08, 0x174b: 0x0808,
+       0x174c: 0x0808, 0x174d: 0x0908, 0x174e: 0x0c08, 0x174f: 0x0c08, 0x1750: 0x0c08, 0x1751: 0x0c08,
+       0x1752: 0x0c08, 0x1753: 0x0a08, 0x1754: 0x0a08, 0x1755: 0x0a08, 0x1756: 0x0a08, 0x1757: 0x0908,
+       0x1758: 0x0a08, 0x1759: 0x0a08, 0x175a: 0x0a08, 0x175b: 0x0a08, 0x175c: 0x0a08, 0x175d: 0x0c08,
+       0x175e: 0x0a08, 0x175f: 0x0a08, 0x1760: 0x0a08, 0x1761: 0x0c08, 0x1762: 0x0808, 0x1763: 0x0808,
+       0x1764: 0x0c08, 0x1765: 0x3308, 0x1766: 0x3308, 0x1767: 0x0040, 0x1768: 0x0040, 0x1769: 0x0040,
+       0x176a: 0x0040, 0x176b: 0x0a18, 0x176c: 0x0a18, 0x176d: 0x0a18, 0x176e: 0x0a18, 0x176f: 0x0c18,
+       0x1770: 0x0818, 0x1771: 0x0818, 0x1772: 0x0818, 0x1773: 0x0818, 0x1774: 0x0818, 0x1775: 0x0818,
+       0x1776: 0x0818, 0x1777: 0x0040, 0x1778: 0x0040, 0x1779: 0x0040, 0x177a: 0x0040, 0x177b: 0x0040,
+       0x177c: 0x0040, 0x177d: 0x0040, 0x177e: 0x0040, 0x177f: 0x0040,
+       // Block 0x5e, offset 0x1780
+       0x1780: 0x0a08, 0x1781: 0x0c08, 0x1782: 0x0a08, 0x1783: 0x0c08, 0x1784: 0x0c08, 0x1785: 0x0c08,
+       0x1786: 0x0a08, 0x1787: 0x0a08, 0x1788: 0x0a08, 0x1789: 0x0c08, 0x178a: 0x0a08, 0x178b: 0x0a08,
+       0x178c: 0x0c08, 0x178d: 0x0a08, 0x178e: 0x0c08, 0x178f: 0x0c08, 0x1790: 0x0a08, 0x1791: 0x0c08,
+       0x1792: 0x0040, 0x1793: 0x0040, 0x1794: 0x0040, 0x1795: 0x0040, 0x1796: 0x0040, 0x1797: 0x0040,
+       0x1798: 0x0040, 0x1799: 0x0818, 0x179a: 0x0818, 0x179b: 0x0818, 0x179c: 0x0818, 0x179d: 0x0040,
+       0x179e: 0x0040, 0x179f: 0x0040, 0x17a0: 0x0040, 0x17a1: 0x0040, 0x17a2: 0x0040, 0x17a3: 0x0040,
+       0x17a4: 0x0040, 0x17a5: 0x0040, 0x17a6: 0x0040, 0x17a7: 0x0040, 0x17a8: 0x0040, 0x17a9: 0x0c18,
+       0x17aa: 0x0c18, 0x17ab: 0x0c18, 0x17ac: 0x0c18, 0x17ad: 0x0a18, 0x17ae: 0x0a18, 0x17af: 0x0818,
+       0x17b0: 0x0040, 0x17b1: 0x0040, 0x17b2: 0x0040, 0x17b3: 0x0040, 0x17b4: 0x0040, 0x17b5: 0x0040,
+       0x17b6: 0x0040, 0x17b7: 0x0040, 0x17b8: 0x0040, 0x17b9: 0x0040, 0x17ba: 0x0040, 0x17bb: 0x0040,
+       0x17bc: 0x0040, 0x17bd: 0x0040, 0x17be: 0x0040, 0x17bf: 0x0040,
+       // Block 0x5f, offset 0x17c0
+       0x17c0: 0x3308, 0x17c1: 0x3308, 0x17c2: 0x3008, 0x17c3: 0x3008, 0x17c4: 0x0040, 0x17c5: 0x0008,
+       0x17c6: 0x0008, 0x17c7: 0x0008, 0x17c8: 0x0008, 0x17c9: 0x0008, 0x17ca: 0x0008, 0x17cb: 0x0008,
+       0x17cc: 0x0008, 0x17cd: 0x0040, 0x17ce: 0x0040, 0x17cf: 0x0008, 0x17d0: 0x0008, 0x17d1: 0x0040,
+       0x17d2: 0x0040, 0x17d3: 0x0008, 0x17d4: 0x0008, 0x17d5: 0x0008, 0x17d6: 0x0008, 0x17d7: 0x0008,
+       0x17d8: 0x0008, 0x17d9: 0x0008, 0x17da: 0x0008, 0x17db: 0x0008, 0x17dc: 0x0008, 0x17dd: 0x0008,
+       0x17de: 0x0008, 0x17df: 0x0008, 0x17e0: 0x0008, 0x17e1: 0x0008, 0x17e2: 0x0008, 0x17e3: 0x0008,
+       0x17e4: 0x0008, 0x17e5: 0x0008, 0x17e6: 0x0008, 0x17e7: 0x0008, 0x17e8: 0x0008, 0x17e9: 0x0040,
+       0x17ea: 0x0008, 0x17eb: 0x0008, 0x17ec: 0x0008, 0x17ed: 0x0008, 0x17ee: 0x0008, 0x17ef: 0x0008,
+       0x17f0: 0x0008, 0x17f1: 0x0040, 0x17f2: 0x0008, 0x17f3: 0x0008, 0x17f4: 0x0040, 0x17f5: 0x0008,
+       0x17f6: 0x0008, 0x17f7: 0x0008, 0x17f8: 0x0008, 0x17f9: 0x0008, 0x17fa: 0x0040, 0x17fb: 0x3308,
+       0x17fc: 0x3308, 0x17fd: 0x0008, 0x17fe: 0x3008, 0x17ff: 0x3008,
+       // Block 0x60, offset 0x1800
+       0x1800: 0x3308, 0x1801: 0x3008, 0x1802: 0x3008, 0x1803: 0x3008, 0x1804: 0x3008, 0x1805: 0x0040,
+       0x1806: 0x0040, 0x1807: 0x3008, 0x1808: 0x3008, 0x1809: 0x0040, 0x180a: 0x0040, 0x180b: 0x3008,
+       0x180c: 0x3008, 0x180d: 0x3808, 0x180e: 0x0040, 0x180f: 0x0040, 0x1810: 0x0008, 0x1811: 0x0040,
+       0x1812: 0x0040, 0x1813: 0x0040, 0x1814: 0x0040, 0x1815: 0x0040, 0x1816: 0x0040, 0x1817: 0x3008,
+       0x1818: 0x0040, 0x1819: 0x0040, 0x181a: 0x0040, 0x181b: 0x0040, 0x181c: 0x0040, 0x181d: 0x0008,
+       0x181e: 0x0008, 0x181f: 0x0008, 0x1820: 0x0008, 0x1821: 0x0008, 0x1822: 0x3008, 0x1823: 0x3008,
+       0x1824: 0x0040, 0x1825: 0x0040, 0x1826: 0x3308, 0x1827: 0x3308, 0x1828: 0x3308, 0x1829: 0x3308,
+       0x182a: 0x3308, 0x182b: 0x3308, 0x182c: 0x3308, 0x182d: 0x0040, 0x182e: 0x0040, 0x182f: 0x0040,
+       0x1830: 0x3308, 0x1831: 0x3308, 0x1832: 0x3308, 0x1833: 0x3308, 0x1834: 0x3308, 0x1835: 0x0040,
+       0x1836: 0x0040, 0x1837: 0x0040, 0x1838: 0x0040, 0x1839: 0x0040, 0x183a: 0x0040, 0x183b: 0x0040,
+       0x183c: 0x0040, 0x183d: 0x0040, 0x183e: 0x0040, 0x183f: 0x0040,
+       // Block 0x61, offset 0x1840
+       0x1840: 0x0039, 0x1841: 0x0ee9, 0x1842: 0x1159, 0x1843: 0x0ef9, 0x1844: 0x0f09, 0x1845: 0x1199,
+       0x1846: 0x0f31, 0x1847: 0x0249, 0x1848: 0x0f41, 0x1849: 0x0259, 0x184a: 0x0f51, 0x184b: 0x0359,
+       0x184c: 0x0f61, 0x184d: 0x0f71, 0x184e: 0x00d9, 0x184f: 0x0f99, 0x1850: 0x2039, 0x1851: 0x0269,
+       0x1852: 0x01d9, 0x1853: 0x0fa9, 0x1854: 0x0fb9, 0x1855: 0x1089, 0x1856: 0x0279, 0x1857: 0x0369,
+       0x1858: 0x0289, 0x1859: 0x13d1, 0x185a: 0x0039, 0x185b: 0x0ee9, 0x185c: 0x1159, 0x185d: 0x0ef9,
+       0x185e: 0x0f09, 0x185f: 0x1199, 0x1860: 0x0f31, 0x1861: 0x0249, 0x1862: 0x0f41, 0x1863: 0x0259,
+       0x1864: 0x0f51, 0x1865: 0x0359, 0x1866: 0x0f61, 0x1867: 0x0f71, 0x1868: 0x00d9, 0x1869: 0x0f99,
+       0x186a: 0x2039, 0x186b: 0x0269, 0x186c: 0x01d9, 0x186d: 0x0fa9, 0x186e: 0x0fb9, 0x186f: 0x1089,
+       0x1870: 0x0279, 0x1871: 0x0369, 0x1872: 0x0289, 0x1873: 0x13d1, 0x1874: 0x0039, 0x1875: 0x0ee9,
+       0x1876: 0x1159, 0x1877: 0x0ef9, 0x1878: 0x0f09, 0x1879: 0x1199, 0x187a: 0x0f31, 0x187b: 0x0249,
+       0x187c: 0x0f41, 0x187d: 0x0259, 0x187e: 0x0f51, 0x187f: 0x0359,
+       // Block 0x62, offset 0x1880
+       0x1880: 0x0f61, 0x1881: 0x0f71, 0x1882: 0x00d9, 0x1883: 0x0f99, 0x1884: 0x2039, 0x1885: 0x0269,
+       0x1886: 0x01d9, 0x1887: 0x0fa9, 0x1888: 0x0fb9, 0x1889: 0x1089, 0x188a: 0x0279, 0x188b: 0x0369,
+       0x188c: 0x0289, 0x188d: 0x13d1, 0x188e: 0x0039, 0x188f: 0x0ee9, 0x1890: 0x1159, 0x1891: 0x0ef9,
+       0x1892: 0x0f09, 0x1893: 0x1199, 0x1894: 0x0f31, 0x1895: 0x0040, 0x1896: 0x0f41, 0x1897: 0x0259,
+       0x1898: 0x0f51, 0x1899: 0x0359, 0x189a: 0x0f61, 0x189b: 0x0f71, 0x189c: 0x00d9, 0x189d: 0x0f99,
+       0x189e: 0x2039, 0x189f: 0x0269, 0x18a0: 0x01d9, 0x18a1: 0x0fa9, 0x18a2: 0x0fb9, 0x18a3: 0x1089,
+       0x18a4: 0x0279, 0x18a5: 0x0369, 0x18a6: 0x0289, 0x18a7: 0x13d1, 0x18a8: 0x0039, 0x18a9: 0x0ee9,
+       0x18aa: 0x1159, 0x18ab: 0x0ef9, 0x18ac: 0x0f09, 0x18ad: 0x1199, 0x18ae: 0x0f31, 0x18af: 0x0249,
+       0x18b0: 0x0f41, 0x18b1: 0x0259, 0x18b2: 0x0f51, 0x18b3: 0x0359, 0x18b4: 0x0f61, 0x18b5: 0x0f71,
+       0x18b6: 0x00d9, 0x18b7: 0x0f99, 0x18b8: 0x2039, 0x18b9: 0x0269, 0x18ba: 0x01d9, 0x18bb: 0x0fa9,
+       0x18bc: 0x0fb9, 0x18bd: 0x1089, 0x18be: 0x0279, 0x18bf: 0x0369,
+       // Block 0x63, offset 0x18c0
+       0x18c0: 0x0289, 0x18c1: 0x13d1, 0x18c2: 0x0039, 0x18c3: 0x0ee9, 0x18c4: 0x1159, 0x18c5: 0x0ef9,
+       0x18c6: 0x0f09, 0x18c7: 0x1199, 0x18c8: 0x0f31, 0x18c9: 0x0249, 0x18ca: 0x0f41, 0x18cb: 0x0259,
+       0x18cc: 0x0f51, 0x18cd: 0x0359, 0x18ce: 0x0f61, 0x18cf: 0x0f71, 0x18d0: 0x00d9, 0x18d1: 0x0f99,
+       0x18d2: 0x2039, 0x18d3: 0x0269, 0x18d4: 0x01d9, 0x18d5: 0x0fa9, 0x18d6: 0x0fb9, 0x18d7: 0x1089,
+       0x18d8: 0x0279, 0x18d9: 0x0369, 0x18da: 0x0289, 0x18db: 0x13d1, 0x18dc: 0x0039, 0x18dd: 0x0040,
+       0x18de: 0x1159, 0x18df: 0x0ef9, 0x18e0: 0x0040, 0x18e1: 0x0040, 0x18e2: 0x0f31, 0x18e3: 0x0040,
+       0x18e4: 0x0040, 0x18e5: 0x0259, 0x18e6: 0x0f51, 0x18e7: 0x0040, 0x18e8: 0x0040, 0x18e9: 0x0f71,
+       0x18ea: 0x00d9, 0x18eb: 0x0f99, 0x18ec: 0x2039, 0x18ed: 0x0040, 0x18ee: 0x01d9, 0x18ef: 0x0fa9,
+       0x18f0: 0x0fb9, 0x18f1: 0x1089, 0x18f2: 0x0279, 0x18f3: 0x0369, 0x18f4: 0x0289, 0x18f5: 0x13d1,
+       0x18f6: 0x0039, 0x18f7: 0x0ee9, 0x18f8: 0x1159, 0x18f9: 0x0ef9, 0x18fa: 0x0040, 0x18fb: 0x1199,
+       0x18fc: 0x0040, 0x18fd: 0x0249, 0x18fe: 0x0f41, 0x18ff: 0x0259,
+       // Block 0x64, offset 0x1900
+       0x1900: 0x0f51, 0x1901: 0x0359, 0x1902: 0x0f61, 0x1903: 0x0f71, 0x1904: 0x0040, 0x1905: 0x0f99,
+       0x1906: 0x2039, 0x1907: 0x0269, 0x1908: 0x01d9, 0x1909: 0x0fa9, 0x190a: 0x0fb9, 0x190b: 0x1089,
+       0x190c: 0x0279, 0x190d: 0x0369, 0x190e: 0x0289, 0x190f: 0x13d1, 0x1910: 0x0039, 0x1911: 0x0ee9,
+       0x1912: 0x1159, 0x1913: 0x0ef9, 0x1914: 0x0f09, 0x1915: 0x1199, 0x1916: 0x0f31, 0x1917: 0x0249,
+       0x1918: 0x0f41, 0x1919: 0x0259, 0x191a: 0x0f51, 0x191b: 0x0359, 0x191c: 0x0f61, 0x191d: 0x0f71,
+       0x191e: 0x00d9, 0x191f: 0x0f99, 0x1920: 0x2039, 0x1921: 0x0269, 0x1922: 0x01d9, 0x1923: 0x0fa9,
+       0x1924: 0x0fb9, 0x1925: 0x1089, 0x1926: 0x0279, 0x1927: 0x0369, 0x1928: 0x0289, 0x1929: 0x13d1,
+       0x192a: 0x0039, 0x192b: 0x0ee9, 0x192c: 0x1159, 0x192d: 0x0ef9, 0x192e: 0x0f09, 0x192f: 0x1199,
+       0x1930: 0x0f31, 0x1931: 0x0249, 0x1932: 0x0f41, 0x1933: 0x0259, 0x1934: 0x0f51, 0x1935: 0x0359,
+       0x1936: 0x0f61, 0x1937: 0x0f71, 0x1938: 0x00d9, 0x1939: 0x0f99, 0x193a: 0x2039, 0x193b: 0x0269,
+       0x193c: 0x01d9, 0x193d: 0x0fa9, 0x193e: 0x0fb9, 0x193f: 0x1089,
+       // Block 0x65, offset 0x1940
+       0x1940: 0x0279, 0x1941: 0x0369, 0x1942: 0x0289, 0x1943: 0x13d1, 0x1944: 0x0039, 0x1945: 0x0ee9,
+       0x1946: 0x0040, 0x1947: 0x0ef9, 0x1948: 0x0f09, 0x1949: 0x1199, 0x194a: 0x0f31, 0x194b: 0x0040,
+       0x194c: 0x0040, 0x194d: 0x0259, 0x194e: 0x0f51, 0x194f: 0x0359, 0x1950: 0x0f61, 0x1951: 0x0f71,
+       0x1952: 0x00d9, 0x1953: 0x0f99, 0x1954: 0x2039, 0x1955: 0x0040, 0x1956: 0x01d9, 0x1957: 0x0fa9,
+       0x1958: 0x0fb9, 0x1959: 0x1089, 0x195a: 0x0279, 0x195b: 0x0369, 0x195c: 0x0289, 0x195d: 0x0040,
+       0x195e: 0x0039, 0x195f: 0x0ee9, 0x1960: 0x1159, 0x1961: 0x0ef9, 0x1962: 0x0f09, 0x1963: 0x1199,
+       0x1964: 0x0f31, 0x1965: 0x0249, 0x1966: 0x0f41, 0x1967: 0x0259, 0x1968: 0x0f51, 0x1969: 0x0359,
+       0x196a: 0x0f61, 0x196b: 0x0f71, 0x196c: 0x00d9, 0x196d: 0x0f99, 0x196e: 0x2039, 0x196f: 0x0269,
+       0x1970: 0x01d9, 0x1971: 0x0fa9, 0x1972: 0x0fb9, 0x1973: 0x1089, 0x1974: 0x0279, 0x1975: 0x0369,
+       0x1976: 0x0289, 0x1977: 0x13d1, 0x1978: 0x0039, 0x1979: 0x0ee9, 0x197a: 0x0040, 0x197b: 0x0ef9,
+       0x197c: 0x0f09, 0x197d: 0x1199, 0x197e: 0x0f31, 0x197f: 0x0040,
+       // Block 0x66, offset 0x1980
+       0x1980: 0x0f41, 0x1981: 0x0259, 0x1982: 0x0f51, 0x1983: 0x0359, 0x1984: 0x0f61, 0x1985: 0x0040,
+       0x1986: 0x00d9, 0x1987: 0x0040, 0x1988: 0x0040, 0x1989: 0x0040, 0x198a: 0x01d9, 0x198b: 0x0fa9,
+       0x198c: 0x0fb9, 0x198d: 0x1089, 0x198e: 0x0279, 0x198f: 0x0369, 0x1990: 0x0289, 0x1991: 0x0040,
+       0x1992: 0x0039, 0x1993: 0x0ee9, 0x1994: 0x1159, 0x1995: 0x0ef9, 0x1996: 0x0f09, 0x1997: 0x1199,
+       0x1998: 0x0f31, 0x1999: 0x0249, 0x199a: 0x0f41, 0x199b: 0x0259, 0x199c: 0x0f51, 0x199d: 0x0359,
+       0x199e: 0x0f61, 0x199f: 0x0f71, 0x19a0: 0x00d9, 0x19a1: 0x0f99, 0x19a2: 0x2039, 0x19a3: 0x0269,
+       0x19a4: 0x01d9, 0x19a5: 0x0fa9, 0x19a6: 0x0fb9, 0x19a7: 0x1089, 0x19a8: 0x0279, 0x19a9: 0x0369,
+       0x19aa: 0x0289, 0x19ab: 0x13d1, 0x19ac: 0x0039, 0x19ad: 0x0ee9, 0x19ae: 0x1159, 0x19af: 0x0ef9,
+       0x19b0: 0x0f09, 0x19b1: 0x1199, 0x19b2: 0x0f31, 0x19b3: 0x0249, 0x19b4: 0x0f41, 0x19b5: 0x0259,
+       0x19b6: 0x0f51, 0x19b7: 0x0359, 0x19b8: 0x0f61, 0x19b9: 0x0f71, 0x19ba: 0x00d9, 0x19bb: 0x0f99,
+       0x19bc: 0x2039, 0x19bd: 0x0269, 0x19be: 0x01d9, 0x19bf: 0x0fa9,
+       // Block 0x67, offset 0x19c0
+       0x19c0: 0x0fb9, 0x19c1: 0x1089, 0x19c2: 0x0279, 0x19c3: 0x0369, 0x19c4: 0x0289, 0x19c5: 0x13d1,
+       0x19c6: 0x0039, 0x19c7: 0x0ee9, 0x19c8: 0x1159, 0x19c9: 0x0ef9, 0x19ca: 0x0f09, 0x19cb: 0x1199,
+       0x19cc: 0x0f31, 0x19cd: 0x0249, 0x19ce: 0x0f41, 0x19cf: 0x0259, 0x19d0: 0x0f51, 0x19d1: 0x0359,
+       0x19d2: 0x0f61, 0x19d3: 0x0f71, 0x19d4: 0x00d9, 0x19d5: 0x0f99, 0x19d6: 0x2039, 0x19d7: 0x0269,
+       0x19d8: 0x01d9, 0x19d9: 0x0fa9, 0x19da: 0x0fb9, 0x19db: 0x1089, 0x19dc: 0x0279, 0x19dd: 0x0369,
+       0x19de: 0x0289, 0x19df: 0x13d1, 0x19e0: 0x0039, 0x19e1: 0x0ee9, 0x19e2: 0x1159, 0x19e3: 0x0ef9,
+       0x19e4: 0x0f09, 0x19e5: 0x1199, 0x19e6: 0x0f31, 0x19e7: 0x0249, 0x19e8: 0x0f41, 0x19e9: 0x0259,
+       0x19ea: 0x0f51, 0x19eb: 0x0359, 0x19ec: 0x0f61, 0x19ed: 0x0f71, 0x19ee: 0x00d9, 0x19ef: 0x0f99,
+       0x19f0: 0x2039, 0x19f1: 0x0269, 0x19f2: 0x01d9, 0x19f3: 0x0fa9, 0x19f4: 0x0fb9, 0x19f5: 0x1089,
+       0x19f6: 0x0279, 0x19f7: 0x0369, 0x19f8: 0x0289, 0x19f9: 0x13d1, 0x19fa: 0x0039, 0x19fb: 0x0ee9,
+       0x19fc: 0x1159, 0x19fd: 0x0ef9, 0x19fe: 0x0f09, 0x19ff: 0x1199,
+       // Block 0x68, offset 0x1a00
+       0x1a00: 0x0f31, 0x1a01: 0x0249, 0x1a02: 0x0f41, 0x1a03: 0x0259, 0x1a04: 0x0f51, 0x1a05: 0x0359,
+       0x1a06: 0x0f61, 0x1a07: 0x0f71, 0x1a08: 0x00d9, 0x1a09: 0x0f99, 0x1a0a: 0x2039, 0x1a0b: 0x0269,
+       0x1a0c: 0x01d9, 0x1a0d: 0x0fa9, 0x1a0e: 0x0fb9, 0x1a0f: 0x1089, 0x1a10: 0x0279, 0x1a11: 0x0369,
+       0x1a12: 0x0289, 0x1a13: 0x13d1, 0x1a14: 0x0039, 0x1a15: 0x0ee9, 0x1a16: 0x1159, 0x1a17: 0x0ef9,
+       0x1a18: 0x0f09, 0x1a19: 0x1199, 0x1a1a: 0x0f31, 0x1a1b: 0x0249, 0x1a1c: 0x0f41, 0x1a1d: 0x0259,
+       0x1a1e: 0x0f51, 0x1a1f: 0x0359, 0x1a20: 0x0f61, 0x1a21: 0x0f71, 0x1a22: 0x00d9, 0x1a23: 0x0f99,
+       0x1a24: 0x2039, 0x1a25: 0x0269, 0x1a26: 0x01d9, 0x1a27: 0x0fa9, 0x1a28: 0x0fb9, 0x1a29: 0x1089,
+       0x1a2a: 0x0279, 0x1a2b: 0x0369, 0x1a2c: 0x0289, 0x1a2d: 0x13d1, 0x1a2e: 0x0039, 0x1a2f: 0x0ee9,
+       0x1a30: 0x1159, 0x1a31: 0x0ef9, 0x1a32: 0x0f09, 0x1a33: 0x1199, 0x1a34: 0x0f31, 0x1a35: 0x0249,
+       0x1a36: 0x0f41, 0x1a37: 0x0259, 0x1a38: 0x0f51, 0x1a39: 0x0359, 0x1a3a: 0x0f61, 0x1a3b: 0x0f71,
+       0x1a3c: 0x00d9, 0x1a3d: 0x0f99, 0x1a3e: 0x2039, 0x1a3f: 0x0269,
+       // Block 0x69, offset 0x1a40
+       0x1a40: 0x01d9, 0x1a41: 0x0fa9, 0x1a42: 0x0fb9, 0x1a43: 0x1089, 0x1a44: 0x0279, 0x1a45: 0x0369,
+       0x1a46: 0x0289, 0x1a47: 0x13d1, 0x1a48: 0x0039, 0x1a49: 0x0ee9, 0x1a4a: 0x1159, 0x1a4b: 0x0ef9,
+       0x1a4c: 0x0f09, 0x1a4d: 0x1199, 0x1a4e: 0x0f31, 0x1a4f: 0x0249, 0x1a50: 0x0f41, 0x1a51: 0x0259,
+       0x1a52: 0x0f51, 0x1a53: 0x0359, 0x1a54: 0x0f61, 0x1a55: 0x0f71, 0x1a56: 0x00d9, 0x1a57: 0x0f99,
+       0x1a58: 0x2039, 0x1a59: 0x0269, 0x1a5a: 0x01d9, 0x1a5b: 0x0fa9, 0x1a5c: 0x0fb9, 0x1a5d: 0x1089,
+       0x1a5e: 0x0279, 0x1a5f: 0x0369, 0x1a60: 0x0289, 0x1a61: 0x13d1, 0x1a62: 0x0039, 0x1a63: 0x0ee9,
+       0x1a64: 0x1159, 0x1a65: 0x0ef9, 0x1a66: 0x0f09, 0x1a67: 0x1199, 0x1a68: 0x0f31, 0x1a69: 0x0249,
+       0x1a6a: 0x0f41, 0x1a6b: 0x0259, 0x1a6c: 0x0f51, 0x1a6d: 0x0359, 0x1a6e: 0x0f61, 0x1a6f: 0x0f71,
+       0x1a70: 0x00d9, 0x1a71: 0x0f99, 0x1a72: 0x2039, 0x1a73: 0x0269, 0x1a74: 0x01d9, 0x1a75: 0x0fa9,
+       0x1a76: 0x0fb9, 0x1a77: 0x1089, 0x1a78: 0x0279, 0x1a79: 0x0369, 0x1a7a: 0x0289, 0x1a7b: 0x13d1,
+       0x1a7c: 0x0039, 0x1a7d: 0x0ee9, 0x1a7e: 0x1159, 0x1a7f: 0x0ef9,
+       // Block 0x6a, offset 0x1a80
+       0x1a80: 0x0f09, 0x1a81: 0x1199, 0x1a82: 0x0f31, 0x1a83: 0x0249, 0x1a84: 0x0f41, 0x1a85: 0x0259,
+       0x1a86: 0x0f51, 0x1a87: 0x0359, 0x1a88: 0x0f61, 0x1a89: 0x0f71, 0x1a8a: 0x00d9, 0x1a8b: 0x0f99,
+       0x1a8c: 0x2039, 0x1a8d: 0x0269, 0x1a8e: 0x01d9, 0x1a8f: 0x0fa9, 0x1a90: 0x0fb9, 0x1a91: 0x1089,
+       0x1a92: 0x0279, 0x1a93: 0x0369, 0x1a94: 0x0289, 0x1a95: 0x13d1, 0x1a96: 0x0039, 0x1a97: 0x0ee9,
+       0x1a98: 0x1159, 0x1a99: 0x0ef9, 0x1a9a: 0x0f09, 0x1a9b: 0x1199, 0x1a9c: 0x0f31, 0x1a9d: 0x0249,
+       0x1a9e: 0x0f41, 0x1a9f: 0x0259, 0x1aa0: 0x0f51, 0x1aa1: 0x0359, 0x1aa2: 0x0f61, 0x1aa3: 0x0f71,
+       0x1aa4: 0x00d9, 0x1aa5: 0x0f99, 0x1aa6: 0x2039, 0x1aa7: 0x0269, 0x1aa8: 0x01d9, 0x1aa9: 0x0fa9,
+       0x1aaa: 0x0fb9, 0x1aab: 0x1089, 0x1aac: 0x0279, 0x1aad: 0x0369, 0x1aae: 0x0289, 0x1aaf: 0x13d1,
+       0x1ab0: 0x0039, 0x1ab1: 0x0ee9, 0x1ab2: 0x1159, 0x1ab3: 0x0ef9, 0x1ab4: 0x0f09, 0x1ab5: 0x1199,
+       0x1ab6: 0x0f31, 0x1ab7: 0x0249, 0x1ab8: 0x0f41, 0x1ab9: 0x0259, 0x1aba: 0x0f51, 0x1abb: 0x0359,
+       0x1abc: 0x0f61, 0x1abd: 0x0f71, 0x1abe: 0x00d9, 0x1abf: 0x0f99,
+       // Block 0x6b, offset 0x1ac0
+       0x1ac0: 0x2039, 0x1ac1: 0x0269, 0x1ac2: 0x01d9, 0x1ac3: 0x0fa9, 0x1ac4: 0x0fb9, 0x1ac5: 0x1089,
+       0x1ac6: 0x0279, 0x1ac7: 0x0369, 0x1ac8: 0x0289, 0x1ac9: 0x13d1, 0x1aca: 0x0039, 0x1acb: 0x0ee9,
+       0x1acc: 0x1159, 0x1acd: 0x0ef9, 0x1ace: 0x0f09, 0x1acf: 0x1199, 0x1ad0: 0x0f31, 0x1ad1: 0x0249,
+       0x1ad2: 0x0f41, 0x1ad3: 0x0259, 0x1ad4: 0x0f51, 0x1ad5: 0x0359, 0x1ad6: 0x0f61, 0x1ad7: 0x0f71,
+       0x1ad8: 0x00d9, 0x1ad9: 0x0f99, 0x1ada: 0x2039, 0x1adb: 0x0269, 0x1adc: 0x01d9, 0x1add: 0x0fa9,
+       0x1ade: 0x0fb9, 0x1adf: 0x1089, 0x1ae0: 0x0279, 0x1ae1: 0x0369, 0x1ae2: 0x0289, 0x1ae3: 0x13d1,
+       0x1ae4: 0xba81, 0x1ae5: 0xba99, 0x1ae6: 0x0040, 0x1ae7: 0x0040, 0x1ae8: 0xbab1, 0x1ae9: 0x1099,
+       0x1aea: 0x10b1, 0x1aeb: 0x10c9, 0x1aec: 0xbac9, 0x1aed: 0xbae1, 0x1aee: 0xbaf9, 0x1aef: 0x1429,
+       0x1af0: 0x1a31, 0x1af1: 0xbb11, 0x1af2: 0xbb29, 0x1af3: 0xbb41, 0x1af4: 0xbb59, 0x1af5: 0xbb71,
+       0x1af6: 0xbb89, 0x1af7: 0x2109, 0x1af8: 0x1111, 0x1af9: 0x1429, 0x1afa: 0xbba1, 0x1afb: 0xbbb9,
+       0x1afc: 0xbbd1, 0x1afd: 0x10e1, 0x1afe: 0x10f9, 0x1aff: 0xbbe9,
+       // Block 0x6c, offset 0x1b00
+       0x1b00: 0x2079, 0x1b01: 0xbc01, 0x1b02: 0xbab1, 0x1b03: 0x1099, 0x1b04: 0x10b1, 0x1b05: 0x10c9,
+       0x1b06: 0xbac9, 0x1b07: 0xbae1, 0x1b08: 0xbaf9, 0x1b09: 0x1429, 0x1b0a: 0x1a31, 0x1b0b: 0xbb11,
+       0x1b0c: 0xbb29, 0x1b0d: 0xbb41, 0x1b0e: 0xbb59, 0x1b0f: 0xbb71, 0x1b10: 0xbb89, 0x1b11: 0x2109,
+       0x1b12: 0x1111, 0x1b13: 0xbba1, 0x1b14: 0xbba1, 0x1b15: 0xbbb9, 0x1b16: 0xbbd1, 0x1b17: 0x10e1,
+       0x1b18: 0x10f9, 0x1b19: 0xbbe9, 0x1b1a: 0x2079, 0x1b1b: 0xbc21, 0x1b1c: 0xbac9, 0x1b1d: 0x1429,
+       0x1b1e: 0xbb11, 0x1b1f: 0x10e1, 0x1b20: 0x1111, 0x1b21: 0x2109, 0x1b22: 0xbab1, 0x1b23: 0x1099,
+       0x1b24: 0x10b1, 0x1b25: 0x10c9, 0x1b26: 0xbac9, 0x1b27: 0xbae1, 0x1b28: 0xbaf9, 0x1b29: 0x1429,
+       0x1b2a: 0x1a31, 0x1b2b: 0xbb11, 0x1b2c: 0xbb29, 0x1b2d: 0xbb41, 0x1b2e: 0xbb59, 0x1b2f: 0xbb71,
+       0x1b30: 0xbb89, 0x1b31: 0x2109, 0x1b32: 0x1111, 0x1b33: 0x1429, 0x1b34: 0xbba1, 0x1b35: 0xbbb9,
+       0x1b36: 0xbbd1, 0x1b37: 0x10e1, 0x1b38: 0x10f9, 0x1b39: 0xbbe9, 0x1b3a: 0x2079, 0x1b3b: 0xbc01,
+       0x1b3c: 0xbab1, 0x1b3d: 0x1099, 0x1b3e: 0x10b1, 0x1b3f: 0x10c9,
+       // Block 0x6d, offset 0x1b40
+       0x1b40: 0xbac9, 0x1b41: 0xbae1, 0x1b42: 0xbaf9, 0x1b43: 0x1429, 0x1b44: 0x1a31, 0x1b45: 0xbb11,
+       0x1b46: 0xbb29, 0x1b47: 0xbb41, 0x1b48: 0xbb59, 0x1b49: 0xbb71, 0x1b4a: 0xbb89, 0x1b4b: 0x2109,
+       0x1b4c: 0x1111, 0x1b4d: 0xbba1, 0x1b4e: 0xbba1, 0x1b4f: 0xbbb9, 0x1b50: 0xbbd1, 0x1b51: 0x10e1,
+       0x1b52: 0x10f9, 0x1b53: 0xbbe9, 0x1b54: 0x2079, 0x1b55: 0xbc21, 0x1b56: 0xbac9, 0x1b57: 0x1429,
+       0x1b58: 0xbb11, 0x1b59: 0x10e1, 0x1b5a: 0x1111, 0x1b5b: 0x2109, 0x1b5c: 0xbab1, 0x1b5d: 0x1099,
+       0x1b5e: 0x10b1, 0x1b5f: 0x10c9, 0x1b60: 0xbac9, 0x1b61: 0xbae1, 0x1b62: 0xbaf9, 0x1b63: 0x1429,
+       0x1b64: 0x1a31, 0x1b65: 0xbb11, 0x1b66: 0xbb29, 0x1b67: 0xbb41, 0x1b68: 0xbb59, 0x1b69: 0xbb71,
+       0x1b6a: 0xbb89, 0x1b6b: 0x2109, 0x1b6c: 0x1111, 0x1b6d: 0x1429, 0x1b6e: 0xbba1, 0x1b6f: 0xbbb9,
+       0x1b70: 0xbbd1, 0x1b71: 0x10e1, 0x1b72: 0x10f9, 0x1b73: 0xbbe9, 0x1b74: 0x2079, 0x1b75: 0xbc01,
+       0x1b76: 0xbab1, 0x1b77: 0x1099, 0x1b78: 0x10b1, 0x1b79: 0x10c9, 0x1b7a: 0xbac9, 0x1b7b: 0xbae1,
+       0x1b7c: 0xbaf9, 0x1b7d: 0x1429, 0x1b7e: 0x1a31, 0x1b7f: 0xbb11,
+       // Block 0x6e, offset 0x1b80
+       0x1b80: 0xbb29, 0x1b81: 0xbb41, 0x1b82: 0xbb59, 0x1b83: 0xbb71, 0x1b84: 0xbb89, 0x1b85: 0x2109,
+       0x1b86: 0x1111, 0x1b87: 0xbba1, 0x1b88: 0xbba1, 0x1b89: 0xbbb9, 0x1b8a: 0xbbd1, 0x1b8b: 0x10e1,
+       0x1b8c: 0x10f9, 0x1b8d: 0xbbe9, 0x1b8e: 0x2079, 0x1b8f: 0xbc21, 0x1b90: 0xbac9, 0x1b91: 0x1429,
+       0x1b92: 0xbb11, 0x1b93: 0x10e1, 0x1b94: 0x1111, 0x1b95: 0x2109, 0x1b96: 0xbab1, 0x1b97: 0x1099,
+       0x1b98: 0x10b1, 0x1b99: 0x10c9, 0x1b9a: 0xbac9, 0x1b9b: 0xbae1, 0x1b9c: 0xbaf9, 0x1b9d: 0x1429,
+       0x1b9e: 0x1a31, 0x1b9f: 0xbb11, 0x1ba0: 0xbb29, 0x1ba1: 0xbb41, 0x1ba2: 0xbb59, 0x1ba3: 0xbb71,
+       0x1ba4: 0xbb89, 0x1ba5: 0x2109, 0x1ba6: 0x1111, 0x1ba7: 0x1429, 0x1ba8: 0xbba1, 0x1ba9: 0xbbb9,
+       0x1baa: 0xbbd1, 0x1bab: 0x10e1, 0x1bac: 0x10f9, 0x1bad: 0xbbe9, 0x1bae: 0x2079, 0x1baf: 0xbc01,
+       0x1bb0: 0xbab1, 0x1bb1: 0x1099, 0x1bb2: 0x10b1, 0x1bb3: 0x10c9, 0x1bb4: 0xbac9, 0x1bb5: 0xbae1,
+       0x1bb6: 0xbaf9, 0x1bb7: 0x1429, 0x1bb8: 0x1a31, 0x1bb9: 0xbb11, 0x1bba: 0xbb29, 0x1bbb: 0xbb41,
+       0x1bbc: 0xbb59, 0x1bbd: 0xbb71, 0x1bbe: 0xbb89, 0x1bbf: 0x2109,
+       // Block 0x6f, offset 0x1bc0
+       0x1bc0: 0x1111, 0x1bc1: 0xbba1, 0x1bc2: 0xbba1, 0x1bc3: 0xbbb9, 0x1bc4: 0xbbd1, 0x1bc5: 0x10e1,
+       0x1bc6: 0x10f9, 0x1bc7: 0xbbe9, 0x1bc8: 0x2079, 0x1bc9: 0xbc21, 0x1bca: 0xbac9, 0x1bcb: 0x1429,
+       0x1bcc: 0xbb11, 0x1bcd: 0x10e1, 0x1bce: 0x1111, 0x1bcf: 0x2109, 0x1bd0: 0xbab1, 0x1bd1: 0x1099,
+       0x1bd2: 0x10b1, 0x1bd3: 0x10c9, 0x1bd4: 0xbac9, 0x1bd5: 0xbae1, 0x1bd6: 0xbaf9, 0x1bd7: 0x1429,
+       0x1bd8: 0x1a31, 0x1bd9: 0xbb11, 0x1bda: 0xbb29, 0x1bdb: 0xbb41, 0x1bdc: 0xbb59, 0x1bdd: 0xbb71,
+       0x1bde: 0xbb89, 0x1bdf: 0x2109, 0x1be0: 0x1111, 0x1be1: 0x1429, 0x1be2: 0xbba1, 0x1be3: 0xbbb9,
+       0x1be4: 0xbbd1, 0x1be5: 0x10e1, 0x1be6: 0x10f9, 0x1be7: 0xbbe9, 0x1be8: 0x2079, 0x1be9: 0xbc01,
+       0x1bea: 0xbab1, 0x1beb: 0x1099, 0x1bec: 0x10b1, 0x1bed: 0x10c9, 0x1bee: 0xbac9, 0x1bef: 0xbae1,
+       0x1bf0: 0xbaf9, 0x1bf1: 0x1429, 0x1bf2: 0x1a31, 0x1bf3: 0xbb11, 0x1bf4: 0xbb29, 0x1bf5: 0xbb41,
+       0x1bf6: 0xbb59, 0x1bf7: 0xbb71, 0x1bf8: 0xbb89, 0x1bf9: 0x2109, 0x1bfa: 0x1111, 0x1bfb: 0xbba1,
+       0x1bfc: 0xbba1, 0x1bfd: 0xbbb9, 0x1bfe: 0xbbd1, 0x1bff: 0x10e1,
+       // Block 0x70, offset 0x1c00
+       0x1c00: 0x10f9, 0x1c01: 0xbbe9, 0x1c02: 0x2079, 0x1c03: 0xbc21, 0x1c04: 0xbac9, 0x1c05: 0x1429,
+       0x1c06: 0xbb11, 0x1c07: 0x10e1, 0x1c08: 0x1111, 0x1c09: 0x2109, 0x1c0a: 0xbc41, 0x1c0b: 0xbc41,
+       0x1c0c: 0x0040, 0x1c0d: 0x0040, 0x1c0e: 0x1f41, 0x1c0f: 0x00c9, 0x1c10: 0x0069, 0x1c11: 0x0079,
+       0x1c12: 0x1f51, 0x1c13: 0x1f61, 0x1c14: 0x1f71, 0x1c15: 0x1f81, 0x1c16: 0x1f91, 0x1c17: 0x1fa1,
+       0x1c18: 0x1f41, 0x1c19: 0x00c9, 0x1c1a: 0x0069, 0x1c1b: 0x0079, 0x1c1c: 0x1f51, 0x1c1d: 0x1f61,
+       0x1c1e: 0x1f71, 0x1c1f: 0x1f81, 0x1c20: 0x1f91, 0x1c21: 0x1fa1, 0x1c22: 0x1f41, 0x1c23: 0x00c9,
+       0x1c24: 0x0069, 0x1c25: 0x0079, 0x1c26: 0x1f51, 0x1c27: 0x1f61, 0x1c28: 0x1f71, 0x1c29: 0x1f81,
+       0x1c2a: 0x1f91, 0x1c2b: 0x1fa1, 0x1c2c: 0x1f41, 0x1c2d: 0x00c9, 0x1c2e: 0x0069, 0x1c2f: 0x0079,
+       0x1c30: 0x1f51, 0x1c31: 0x1f61, 0x1c32: 0x1f71, 0x1c33: 0x1f81, 0x1c34: 0x1f91, 0x1c35: 0x1fa1,
+       0x1c36: 0x1f41, 0x1c37: 0x00c9, 0x1c38: 0x0069, 0x1c39: 0x0079, 0x1c3a: 0x1f51, 0x1c3b: 0x1f61,
+       0x1c3c: 0x1f71, 0x1c3d: 0x1f81, 0x1c3e: 0x1f91, 0x1c3f: 0x1fa1,
+       // Block 0x71, offset 0x1c40
+       0x1c40: 0xe115, 0x1c41: 0xe115, 0x1c42: 0xe135, 0x1c43: 0xe135, 0x1c44: 0xe115, 0x1c45: 0xe115,
+       0x1c46: 0xe175, 0x1c47: 0xe175, 0x1c48: 0xe115, 0x1c49: 0xe115, 0x1c4a: 0xe135, 0x1c4b: 0xe135,
+       0x1c4c: 0xe115, 0x1c4d: 0xe115, 0x1c4e: 0xe1f5, 0x1c4f: 0xe1f5, 0x1c50: 0xe115, 0x1c51: 0xe115,
+       0x1c52: 0xe135, 0x1c53: 0xe135, 0x1c54: 0xe115, 0x1c55: 0xe115, 0x1c56: 0xe175, 0x1c57: 0xe175,
+       0x1c58: 0xe115, 0x1c59: 0xe115, 0x1c5a: 0xe135, 0x1c5b: 0xe135, 0x1c5c: 0xe115, 0x1c5d: 0xe115,
+       0x1c5e: 0x8b05, 0x1c5f: 0x8b05, 0x1c60: 0x04b5, 0x1c61: 0x04b5, 0x1c62: 0x0a08, 0x1c63: 0x0a08,
+       0x1c64: 0x0a08, 0x1c65: 0x0a08, 0x1c66: 0x0a08, 0x1c67: 0x0a08, 0x1c68: 0x0a08, 0x1c69: 0x0a08,
+       0x1c6a: 0x0a08, 0x1c6b: 0x0a08, 0x1c6c: 0x0a08, 0x1c6d: 0x0a08, 0x1c6e: 0x0a08, 0x1c6f: 0x0a08,
+       0x1c70: 0x0a08, 0x1c71: 0x0a08, 0x1c72: 0x0a08, 0x1c73: 0x0a08, 0x1c74: 0x0a08, 0x1c75: 0x0a08,
+       0x1c76: 0x0a08, 0x1c77: 0x0a08, 0x1c78: 0x0a08, 0x1c79: 0x0a08, 0x1c7a: 0x0a08, 0x1c7b: 0x0a08,
+       0x1c7c: 0x0a08, 0x1c7d: 0x0a08, 0x1c7e: 0x0a08, 0x1c7f: 0x0a08,
+       // Block 0x72, offset 0x1c80
+       0x1c80: 0xb189, 0x1c81: 0xb1a1, 0x1c82: 0xb201, 0x1c83: 0xb249, 0x1c84: 0x0040, 0x1c85: 0xb411,
+       0x1c86: 0xb291, 0x1c87: 0xb219, 0x1c88: 0xb309, 0x1c89: 0xb429, 0x1c8a: 0xb399, 0x1c8b: 0xb3b1,
+       0x1c8c: 0xb3c9, 0x1c8d: 0xb3e1, 0x1c8e: 0xb2a9, 0x1c8f: 0xb339, 0x1c90: 0xb369, 0x1c91: 0xb2d9,
+       0x1c92: 0xb381, 0x1c93: 0xb279, 0x1c94: 0xb2c1, 0x1c95: 0xb1d1, 0x1c96: 0xb1e9, 0x1c97: 0xb231,
+       0x1c98: 0xb261, 0x1c99: 0xb2f1, 0x1c9a: 0xb321, 0x1c9b: 0xb351, 0x1c9c: 0xbc59, 0x1c9d: 0x7949,
+       0x1c9e: 0xbc71, 0x1c9f: 0xbc89, 0x1ca0: 0x0040, 0x1ca1: 0xb1a1, 0x1ca2: 0xb201, 0x1ca3: 0x0040,
+       0x1ca4: 0xb3f9, 0x1ca5: 0x0040, 0x1ca6: 0x0040, 0x1ca7: 0xb219, 0x1ca8: 0x0040, 0x1ca9: 0xb429,
+       0x1caa: 0xb399, 0x1cab: 0xb3b1, 0x1cac: 0xb3c9, 0x1cad: 0xb3e1, 0x1cae: 0xb2a9, 0x1caf: 0xb339,
+       0x1cb0: 0xb369, 0x1cb1: 0xb2d9, 0x1cb2: 0xb381, 0x1cb3: 0x0040, 0x1cb4: 0xb2c1, 0x1cb5: 0xb1d1,
+       0x1cb6: 0xb1e9, 0x1cb7: 0xb231, 0x1cb8: 0x0040, 0x1cb9: 0xb2f1, 0x1cba: 0x0040, 0x1cbb: 0xb351,
+       0x1cbc: 0x0040, 0x1cbd: 0x0040, 0x1cbe: 0x0040, 0x1cbf: 0x0040,
+       // Block 0x73, offset 0x1cc0
+       0x1cc0: 0x0040, 0x1cc1: 0x0040, 0x1cc2: 0xb201, 0x1cc3: 0x0040, 0x1cc4: 0x0040, 0x1cc5: 0x0040,
+       0x1cc6: 0x0040, 0x1cc7: 0xb219, 0x1cc8: 0x0040, 0x1cc9: 0xb429, 0x1cca: 0x0040, 0x1ccb: 0xb3b1,
+       0x1ccc: 0x0040, 0x1ccd: 0xb3e1, 0x1cce: 0xb2a9, 0x1ccf: 0xb339, 0x1cd0: 0x0040, 0x1cd1: 0xb2d9,
+       0x1cd2: 0xb381, 0x1cd3: 0x0040, 0x1cd4: 0xb2c1, 0x1cd5: 0x0040, 0x1cd6: 0x0040, 0x1cd7: 0xb231,
+       0x1cd8: 0x0040, 0x1cd9: 0xb2f1, 0x1cda: 0x0040, 0x1cdb: 0xb351, 0x1cdc: 0x0040, 0x1cdd: 0x7949,
+       0x1cde: 0x0040, 0x1cdf: 0xbc89, 0x1ce0: 0x0040, 0x1ce1: 0xb1a1, 0x1ce2: 0xb201, 0x1ce3: 0x0040,
+       0x1ce4: 0xb3f9, 0x1ce5: 0x0040, 0x1ce6: 0x0040, 0x1ce7: 0xb219, 0x1ce8: 0xb309, 0x1ce9: 0xb429,
+       0x1cea: 0xb399, 0x1ceb: 0x0040, 0x1cec: 0xb3c9, 0x1ced: 0xb3e1, 0x1cee: 0xb2a9, 0x1cef: 0xb339,
+       0x1cf0: 0xb369, 0x1cf1: 0xb2d9, 0x1cf2: 0xb381, 0x1cf3: 0x0040, 0x1cf4: 0xb2c1, 0x1cf5: 0xb1d1,
+       0x1cf6: 0xb1e9, 0x1cf7: 0xb231, 0x1cf8: 0x0040, 0x1cf9: 0xb2f1, 0x1cfa: 0xb321, 0x1cfb: 0xb351,
+       0x1cfc: 0xbc59, 0x1cfd: 0x0040, 0x1cfe: 0xbc71, 0x1cff: 0x0040,
+       // Block 0x74, offset 0x1d00
+       0x1d00: 0xb189, 0x1d01: 0xb1a1, 0x1d02: 0xb201, 0x1d03: 0xb249, 0x1d04: 0xb3f9, 0x1d05: 0xb411,
+       0x1d06: 0xb291, 0x1d07: 0xb219, 0x1d08: 0xb309, 0x1d09: 0xb429, 0x1d0a: 0x0040, 0x1d0b: 0xb3b1,
+       0x1d0c: 0xb3c9, 0x1d0d: 0xb3e1, 0x1d0e: 0xb2a9, 0x1d0f: 0xb339, 0x1d10: 0xb369, 0x1d11: 0xb2d9,
+       0x1d12: 0xb381, 0x1d13: 0xb279, 0x1d14: 0xb2c1, 0x1d15: 0xb1d1, 0x1d16: 0xb1e9, 0x1d17: 0xb231,
+       0x1d18: 0xb261, 0x1d19: 0xb2f1, 0x1d1a: 0xb321, 0x1d1b: 0xb351, 0x1d1c: 0x0040, 0x1d1d: 0x0040,
+       0x1d1e: 0x0040, 0x1d1f: 0x0040, 0x1d20: 0x0040, 0x1d21: 0xb1a1, 0x1d22: 0xb201, 0x1d23: 0xb249,
+       0x1d24: 0x0040, 0x1d25: 0xb411, 0x1d26: 0xb291, 0x1d27: 0xb219, 0x1d28: 0xb309, 0x1d29: 0xb429,
+       0x1d2a: 0x0040, 0x1d2b: 0xb3b1, 0x1d2c: 0xb3c9, 0x1d2d: 0xb3e1, 0x1d2e: 0xb2a9, 0x1d2f: 0xb339,
+       0x1d30: 0xb369, 0x1d31: 0xb2d9, 0x1d32: 0xb381, 0x1d33: 0xb279, 0x1d34: 0xb2c1, 0x1d35: 0xb1d1,
+       0x1d36: 0xb1e9, 0x1d37: 0xb231, 0x1d38: 0xb261, 0x1d39: 0xb2f1, 0x1d3a: 0xb321, 0x1d3b: 0xb351,
+       0x1d3c: 0x0040, 0x1d3d: 0x0040, 0x1d3e: 0x0040, 0x1d3f: 0x0040,
+       // Block 0x75, offset 0x1d40
+       0x1d40: 0x0040, 0x1d41: 0xbca2, 0x1d42: 0xbcba, 0x1d43: 0xbcd2, 0x1d44: 0xbcea, 0x1d45: 0xbd02,
+       0x1d46: 0xbd1a, 0x1d47: 0xbd32, 0x1d48: 0xbd4a, 0x1d49: 0xbd62, 0x1d4a: 0xbd7a, 0x1d4b: 0x0018,
+       0x1d4c: 0x0018, 0x1d4d: 0x0040, 0x1d4e: 0x0040, 0x1d4f: 0x0040, 0x1d50: 0xbd92, 0x1d51: 0xbdb2,
+       0x1d52: 0xbdd2, 0x1d53: 0xbdf2, 0x1d54: 0xbe12, 0x1d55: 0xbe32, 0x1d56: 0xbe52, 0x1d57: 0xbe72,
+       0x1d58: 0xbe92, 0x1d59: 0xbeb2, 0x1d5a: 0xbed2, 0x1d5b: 0xbef2, 0x1d5c: 0xbf12, 0x1d5d: 0xbf32,
+       0x1d5e: 0xbf52, 0x1d5f: 0xbf72, 0x1d60: 0xbf92, 0x1d61: 0xbfb2, 0x1d62: 0xbfd2, 0x1d63: 0xbff2,
+       0x1d64: 0xc012, 0x1d65: 0xc032, 0x1d66: 0xc052, 0x1d67: 0xc072, 0x1d68: 0xc092, 0x1d69: 0xc0b2,
+       0x1d6a: 0xc0d1, 0x1d6b: 0x1159, 0x1d6c: 0x0269, 0x1d6d: 0x6671, 0x1d6e: 0xc111, 0x1d6f: 0x0018,
+       0x1d70: 0x0039, 0x1d71: 0x0ee9, 0x1d72: 0x1159, 0x1d73: 0x0ef9, 0x1d74: 0x0f09, 0x1d75: 0x1199,
+       0x1d76: 0x0f31, 0x1d77: 0x0249, 0x1d78: 0x0f41, 0x1d79: 0x0259, 0x1d7a: 0x0f51, 0x1d7b: 0x0359,
+       0x1d7c: 0x0f61, 0x1d7d: 0x0f71, 0x1d7e: 0x00d9, 0x1d7f: 0x0f99,
+       // Block 0x76, offset 0x1d80
+       0x1d80: 0x2039, 0x1d81: 0x0269, 0x1d82: 0x01d9, 0x1d83: 0x0fa9, 0x1d84: 0x0fb9, 0x1d85: 0x1089,
+       0x1d86: 0x0279, 0x1d87: 0x0369, 0x1d88: 0x0289, 0x1d89: 0x13d1, 0x1d8a: 0xc129, 0x1d8b: 0x65b1,
+       0x1d8c: 0xc141, 0x1d8d: 0x1441, 0x1d8e: 0xc159, 0x1d8f: 0xc179, 0x1d90: 0x0018, 0x1d91: 0x0018,
+       0x1d92: 0x0018, 0x1d93: 0x0018, 0x1d94: 0x0018, 0x1d95: 0x0018, 0x1d96: 0x0018, 0x1d97: 0x0018,
+       0x1d98: 0x0018, 0x1d99: 0x0018, 0x1d9a: 0x0018, 0x1d9b: 0x0018, 0x1d9c: 0x0018, 0x1d9d: 0x0018,
+       0x1d9e: 0x0018, 0x1d9f: 0x0018, 0x1da0: 0x0018, 0x1da1: 0x0018, 0x1da2: 0x0018, 0x1da3: 0x0018,
+       0x1da4: 0x0018, 0x1da5: 0x0018, 0x1da6: 0x0018, 0x1da7: 0x0018, 0x1da8: 0x0018, 0x1da9: 0x0018,
+       0x1daa: 0xc191, 0x1dab: 0xc1a9, 0x1dac: 0x0040, 0x1dad: 0x0040, 0x1dae: 0x0040, 0x1daf: 0x0040,
+       0x1db0: 0x0018, 0x1db1: 0x0018, 0x1db2: 0x0018, 0x1db3: 0x0018, 0x1db4: 0x0018, 0x1db5: 0x0018,
+       0x1db6: 0x0018, 0x1db7: 0x0018, 0x1db8: 0x0018, 0x1db9: 0x0018, 0x1dba: 0x0018, 0x1dbb: 0x0018,
+       0x1dbc: 0x0018, 0x1dbd: 0x0018, 0x1dbe: 0x0018, 0x1dbf: 0x0018,
+       // Block 0x77, offset 0x1dc0
+       0x1dc0: 0xc1d9, 0x1dc1: 0xc211, 0x1dc2: 0xc249, 0x1dc3: 0x0040, 0x1dc4: 0x0040, 0x1dc5: 0x0040,
+       0x1dc6: 0x0040, 0x1dc7: 0x0040, 0x1dc8: 0x0040, 0x1dc9: 0x0040, 0x1dca: 0x0040, 0x1dcb: 0x0040,
+       0x1dcc: 0x0040, 0x1dcd: 0x0040, 0x1dce: 0x0040, 0x1dcf: 0x0040, 0x1dd0: 0xc269, 0x1dd1: 0xc289,
+       0x1dd2: 0xc2a9, 0x1dd3: 0xc2c9, 0x1dd4: 0xc2e9, 0x1dd5: 0xc309, 0x1dd6: 0xc329, 0x1dd7: 0xc349,
+       0x1dd8: 0xc369, 0x1dd9: 0xc389, 0x1dda: 0xc3a9, 0x1ddb: 0xc3c9, 0x1ddc: 0xc3e9, 0x1ddd: 0xc409,
+       0x1dde: 0xc429, 0x1ddf: 0xc449, 0x1de0: 0xc469, 0x1de1: 0xc489, 0x1de2: 0xc4a9, 0x1de3: 0xc4c9,
+       0x1de4: 0xc4e9, 0x1de5: 0xc509, 0x1de6: 0xc529, 0x1de7: 0xc549, 0x1de8: 0xc569, 0x1de9: 0xc589,
+       0x1dea: 0xc5a9, 0x1deb: 0xc5c9, 0x1dec: 0xc5e9, 0x1ded: 0xc609, 0x1dee: 0xc629, 0x1def: 0xc649,
+       0x1df0: 0xc669, 0x1df1: 0xc689, 0x1df2: 0xc6a9, 0x1df3: 0xc6c9, 0x1df4: 0xc6e9, 0x1df5: 0xc709,
+       0x1df6: 0xc729, 0x1df7: 0xc749, 0x1df8: 0xc769, 0x1df9: 0xc789, 0x1dfa: 0xc7a9, 0x1dfb: 0xc7c9,
+       0x1dfc: 0x0040, 0x1dfd: 0x0040, 0x1dfe: 0x0040, 0x1dff: 0x0040,
+       // Block 0x78, offset 0x1e00
+       0x1e00: 0xcaf9, 0x1e01: 0xcb19, 0x1e02: 0xcb39, 0x1e03: 0x8b1d, 0x1e04: 0xcb59, 0x1e05: 0xcb79,
+       0x1e06: 0xcb99, 0x1e07: 0xcbb9, 0x1e08: 0xcbd9, 0x1e09: 0xcbf9, 0x1e0a: 0xcc19, 0x1e0b: 0xcc39,
+       0x1e0c: 0xcc59, 0x1e0d: 0x8b3d, 0x1e0e: 0xcc79, 0x1e0f: 0xcc99, 0x1e10: 0xccb9, 0x1e11: 0xccd9,
+       0x1e12: 0x8b5d, 0x1e13: 0xccf9, 0x1e14: 0xcd19, 0x1e15: 0xc429, 0x1e16: 0x8b7d, 0x1e17: 0xcd39,
+       0x1e18: 0xcd59, 0x1e19: 0xcd79, 0x1e1a: 0xcd99, 0x1e1b: 0xcdb9, 0x1e1c: 0x8b9d, 0x1e1d: 0xcdd9,
+       0x1e1e: 0xcdf9, 0x1e1f: 0xce19, 0x1e20: 0xce39, 0x1e21: 0xce59, 0x1e22: 0xc789, 0x1e23: 0xce79,
+       0x1e24: 0xce99, 0x1e25: 0xceb9, 0x1e26: 0xced9, 0x1e27: 0xcef9, 0x1e28: 0xcf19, 0x1e29: 0xcf39,
+       0x1e2a: 0xcf59, 0x1e2b: 0xcf79, 0x1e2c: 0xcf99, 0x1e2d: 0xcfb9, 0x1e2e: 0xcfd9, 0x1e2f: 0xcff9,
+       0x1e30: 0xd019, 0x1e31: 0xd039, 0x1e32: 0xd039, 0x1e33: 0xd039, 0x1e34: 0x8bbd, 0x1e35: 0xd059,
+       0x1e36: 0xd079, 0x1e37: 0xd099, 0x1e38: 0x8bdd, 0x1e39: 0xd0b9, 0x1e3a: 0xd0d9, 0x1e3b: 0xd0f9,
+       0x1e3c: 0xd119, 0x1e3d: 0xd139, 0x1e3e: 0xd159, 0x1e3f: 0xd179,
+       // Block 0x79, offset 0x1e40
+       0x1e40: 0xd199, 0x1e41: 0xd1b9, 0x1e42: 0xd1d9, 0x1e43: 0xd1f9, 0x1e44: 0xd219, 0x1e45: 0xd239,
+       0x1e46: 0xd239, 0x1e47: 0xd259, 0x1e48: 0xd279, 0x1e49: 0xd299, 0x1e4a: 0xd2b9, 0x1e4b: 0xd2d9,
+       0x1e4c: 0xd2f9, 0x1e4d: 0xd319, 0x1e4e: 0xd339, 0x1e4f: 0xd359, 0x1e50: 0xd379, 0x1e51: 0xd399,
+       0x1e52: 0xd3b9, 0x1e53: 0xd3d9, 0x1e54: 0xd3f9, 0x1e55: 0xd419, 0x1e56: 0xd439, 0x1e57: 0xd459,
+       0x1e58: 0xd479, 0x1e59: 0x8bfd, 0x1e5a: 0xd499, 0x1e5b: 0xd4b9, 0x1e5c: 0xd4d9, 0x1e5d: 0xc309,
+       0x1e5e: 0xd4f9, 0x1e5f: 0xd519, 0x1e60: 0x8c1d, 0x1e61: 0x8c3d, 0x1e62: 0xd539, 0x1e63: 0xd559,
+       0x1e64: 0xd579, 0x1e65: 0xd599, 0x1e66: 0xd5b9, 0x1e67: 0xd5d9, 0x1e68: 0x2040, 0x1e69: 0xd5f9,
+       0x1e6a: 0xd619, 0x1e6b: 0xd619, 0x1e6c: 0x8c5d, 0x1e6d: 0xd639, 0x1e6e: 0xd659, 0x1e6f: 0xd679,
+       0x1e70: 0xd699, 0x1e71: 0x8c7d, 0x1e72: 0xd6b9, 0x1e73: 0xd6d9, 0x1e74: 0x2040, 0x1e75: 0xd6f9,
+       0x1e76: 0xd719, 0x1e77: 0xd739, 0x1e78: 0xd759, 0x1e79: 0xd779, 0x1e7a: 0xd799, 0x1e7b: 0x8c9d,
+       0x1e7c: 0xd7b9, 0x1e7d: 0x8cbd, 0x1e7e: 0xd7d9, 0x1e7f: 0xd7f9,
+       // Block 0x7a, offset 0x1e80
+       0x1e80: 0xd819, 0x1e81: 0xd839, 0x1e82: 0xd859, 0x1e83: 0xd879, 0x1e84: 0xd899, 0x1e85: 0xd8b9,
+       0x1e86: 0xd8d9, 0x1e87: 0xd8f9, 0x1e88: 0xd919, 0x1e89: 0x8cdd, 0x1e8a: 0xd939, 0x1e8b: 0xd959,
+       0x1e8c: 0xd979, 0x1e8d: 0xd999, 0x1e8e: 0xd9b9, 0x1e8f: 0x8cfd, 0x1e90: 0xd9d9, 0x1e91: 0x8d1d,
+       0x1e92: 0x8d3d, 0x1e93: 0xd9f9, 0x1e94: 0xda19, 0x1e95: 0xda19, 0x1e96: 0xda39, 0x1e97: 0x8d5d,
+       0x1e98: 0x8d7d, 0x1e99: 0xda59, 0x1e9a: 0xda79, 0x1e9b: 0xda99, 0x1e9c: 0xdab9, 0x1e9d: 0xdad9,
+       0x1e9e: 0xdaf9, 0x1e9f: 0xdb19, 0x1ea0: 0xdb39, 0x1ea1: 0xdb59, 0x1ea2: 0xdb79, 0x1ea3: 0xdb99,
+       0x1ea4: 0x8d9d, 0x1ea5: 0xdbb9, 0x1ea6: 0xdbd9, 0x1ea7: 0xdbf9, 0x1ea8: 0xdc19, 0x1ea9: 0xdbf9,
+       0x1eaa: 0xdc39, 0x1eab: 0xdc59, 0x1eac: 0xdc79, 0x1ead: 0xdc99, 0x1eae: 0xdcb9, 0x1eaf: 0xdcd9,
+       0x1eb0: 0xdcf9, 0x1eb1: 0xdd19, 0x1eb2: 0xdd39, 0x1eb3: 0xdd59, 0x1eb4: 0xdd79, 0x1eb5: 0xdd99,
+       0x1eb6: 0xddb9, 0x1eb7: 0xddd9, 0x1eb8: 0x8dbd, 0x1eb9: 0xddf9, 0x1eba: 0xde19, 0x1ebb: 0xde39,
+       0x1ebc: 0xde59, 0x1ebd: 0xde79, 0x1ebe: 0x8ddd, 0x1ebf: 0xde99,
+       // Block 0x7b, offset 0x1ec0
+       0x1ec0: 0xe599, 0x1ec1: 0xe5b9, 0x1ec2: 0xe5d9, 0x1ec3: 0xe5f9, 0x1ec4: 0xe619, 0x1ec5: 0xe639,
+       0x1ec6: 0x8efd, 0x1ec7: 0xe659, 0x1ec8: 0xe679, 0x1ec9: 0xe699, 0x1eca: 0xe6b9, 0x1ecb: 0xe6d9,
+       0x1ecc: 0xe6f9, 0x1ecd: 0x8f1d, 0x1ece: 0xe719, 0x1ecf: 0xe739, 0x1ed0: 0x8f3d, 0x1ed1: 0x8f5d,
+       0x1ed2: 0xe759, 0x1ed3: 0xe779, 0x1ed4: 0xe799, 0x1ed5: 0xe7b9, 0x1ed6: 0xe7d9, 0x1ed7: 0xe7f9,
+       0x1ed8: 0xe819, 0x1ed9: 0xe839, 0x1eda: 0xe859, 0x1edb: 0x8f7d, 0x1edc: 0xe879, 0x1edd: 0x8f9d,
+       0x1ede: 0xe899, 0x1edf: 0x2040, 0x1ee0: 0xe8b9, 0x1ee1: 0xe8d9, 0x1ee2: 0xe8f9, 0x1ee3: 0x8fbd,
+       0x1ee4: 0xe919, 0x1ee5: 0xe939, 0x1ee6: 0x8fdd, 0x1ee7: 0x8ffd, 0x1ee8: 0xe959, 0x1ee9: 0xe979,
+       0x1eea: 0xe999, 0x1eeb: 0xe9b9, 0x1eec: 0xe9d9, 0x1eed: 0xe9d9, 0x1eee: 0xe9f9, 0x1eef: 0xea19,
+       0x1ef0: 0xea39, 0x1ef1: 0xea59, 0x1ef2: 0xea79, 0x1ef3: 0xea99, 0x1ef4: 0xeab9, 0x1ef5: 0x901d,
+       0x1ef6: 0xead9, 0x1ef7: 0x903d, 0x1ef8: 0xeaf9, 0x1ef9: 0x905d, 0x1efa: 0xeb19, 0x1efb: 0x907d,
+       0x1efc: 0x909d, 0x1efd: 0x90bd, 0x1efe: 0xeb39, 0x1eff: 0xeb59,
+       // Block 0x7c, offset 0x1f00
+       0x1f00: 0xeb79, 0x1f01: 0x90dd, 0x1f02: 0x90fd, 0x1f03: 0x911d, 0x1f04: 0x913d, 0x1f05: 0xeb99,
+       0x1f06: 0xebb9, 0x1f07: 0xebb9, 0x1f08: 0xebd9, 0x1f09: 0xebf9, 0x1f0a: 0xec19, 0x1f0b: 0xec39,
+       0x1f0c: 0xec59, 0x1f0d: 0x915d, 0x1f0e: 0xec79, 0x1f0f: 0xec99, 0x1f10: 0xecb9, 0x1f11: 0xecd9,
+       0x1f12: 0x917d, 0x1f13: 0xecf9, 0x1f14: 0x919d, 0x1f15: 0x91bd, 0x1f16: 0xed19, 0x1f17: 0xed39,
+       0x1f18: 0xed59, 0x1f19: 0xed79, 0x1f1a: 0xed99, 0x1f1b: 0xedb9, 0x1f1c: 0x91dd, 0x1f1d: 0x91fd,
+       0x1f1e: 0x921d, 0x1f1f: 0x2040, 0x1f20: 0xedd9, 0x1f21: 0x923d, 0x1f22: 0xedf9, 0x1f23: 0xee19,
+       0x1f24: 0xee39, 0x1f25: 0x925d, 0x1f26: 0xee59, 0x1f27: 0xee79, 0x1f28: 0xee99, 0x1f29: 0xeeb9,
+       0x1f2a: 0xeed9, 0x1f2b: 0x927d, 0x1f2c: 0xeef9, 0x1f2d: 0xef19, 0x1f2e: 0xef39, 0x1f2f: 0xef59,
+       0x1f30: 0xef79, 0x1f31: 0xef99, 0x1f32: 0x929d, 0x1f33: 0x92bd, 0x1f34: 0xefb9, 0x1f35: 0x92dd,
+       0x1f36: 0xefd9, 0x1f37: 0x92fd, 0x1f38: 0xeff9, 0x1f39: 0xf019, 0x1f3a: 0xf039, 0x1f3b: 0x931d,
+       0x1f3c: 0x933d, 0x1f3d: 0xf059, 0x1f3e: 0x935d, 0x1f3f: 0xf079,
+       // Block 0x7d, offset 0x1f40
+       0x1f40: 0xf6b9, 0x1f41: 0xf6d9, 0x1f42: 0xf6f9, 0x1f43: 0xf719, 0x1f44: 0xf739, 0x1f45: 0x951d,
+       0x1f46: 0xf759, 0x1f47: 0xf779, 0x1f48: 0xf799, 0x1f49: 0xf7b9, 0x1f4a: 0xf7d9, 0x1f4b: 0x953d,
+       0x1f4c: 0x955d, 0x1f4d: 0xf7f9, 0x1f4e: 0xf819, 0x1f4f: 0xf839, 0x1f50: 0xf859, 0x1f51: 0xf879,
+       0x1f52: 0xf899, 0x1f53: 0x957d, 0x1f54: 0xf8b9, 0x1f55: 0xf8d9, 0x1f56: 0xf8f9, 0x1f57: 0xf919,
+       0x1f58: 0x959d, 0x1f59: 0x95bd, 0x1f5a: 0xf939, 0x1f5b: 0xf959, 0x1f5c: 0xf979, 0x1f5d: 0x95dd,
+       0x1f5e: 0xf999, 0x1f5f: 0xf9b9, 0x1f60: 0x6815, 0x1f61: 0x95fd, 0x1f62: 0xf9d9, 0x1f63: 0xf9f9,
+       0x1f64: 0xfa19, 0x1f65: 0x961d, 0x1f66: 0xfa39, 0x1f67: 0xfa59, 0x1f68: 0xfa79, 0x1f69: 0xfa99,
+       0x1f6a: 0xfab9, 0x1f6b: 0xfad9, 0x1f6c: 0xfaf9, 0x1f6d: 0x963d, 0x1f6e: 0xfb19, 0x1f6f: 0xfb39,
+       0x1f70: 0xfb59, 0x1f71: 0x965d, 0x1f72: 0xfb79, 0x1f73: 0xfb99, 0x1f74: 0xfbb9, 0x1f75: 0xfbd9,
+       0x1f76: 0x7b35, 0x1f77: 0x967d, 0x1f78: 0xfbf9, 0x1f79: 0xfc19, 0x1f7a: 0xfc39, 0x1f7b: 0x969d,
+       0x1f7c: 0xfc59, 0x1f7d: 0x96bd, 0x1f7e: 0xfc79, 0x1f7f: 0xfc79,
+       // Block 0x7e, offset 0x1f80
+       0x1f80: 0xfc99, 0x1f81: 0x96dd, 0x1f82: 0xfcb9, 0x1f83: 0xfcd9, 0x1f84: 0xfcf9, 0x1f85: 0xfd19,
+       0x1f86: 0xfd39, 0x1f87: 0xfd59, 0x1f88: 0xfd79, 0x1f89: 0x96fd, 0x1f8a: 0xfd99, 0x1f8b: 0xfdb9,
+       0x1f8c: 0xfdd9, 0x1f8d: 0xfdf9, 0x1f8e: 0xfe19, 0x1f8f: 0xfe39, 0x1f90: 0x971d, 0x1f91: 0xfe59,
+       0x1f92: 0x973d, 0x1f93: 0x975d, 0x1f94: 0x977d, 0x1f95: 0xfe79, 0x1f96: 0xfe99, 0x1f97: 0xfeb9,
+       0x1f98: 0xfed9, 0x1f99: 0xfef9, 0x1f9a: 0xff19, 0x1f9b: 0xff39, 0x1f9c: 0xff59, 0x1f9d: 0x979d,
+       0x1f9e: 0x0040, 0x1f9f: 0x0040, 0x1fa0: 0x0040, 0x1fa1: 0x0040, 0x1fa2: 0x0040, 0x1fa3: 0x0040,
+       0x1fa4: 0x0040, 0x1fa5: 0x0040, 0x1fa6: 0x0040, 0x1fa7: 0x0040, 0x1fa8: 0x0040, 0x1fa9: 0x0040,
+       0x1faa: 0x0040, 0x1fab: 0x0040, 0x1fac: 0x0040, 0x1fad: 0x0040, 0x1fae: 0x0040, 0x1faf: 0x0040,
+       0x1fb0: 0x0040, 0x1fb1: 0x0040, 0x1fb2: 0x0040, 0x1fb3: 0x0040, 0x1fb4: 0x0040, 0x1fb5: 0x0040,
+       0x1fb6: 0x0040, 0x1fb7: 0x0040, 0x1fb8: 0x0040, 0x1fb9: 0x0040, 0x1fba: 0x0040, 0x1fbb: 0x0040,
+       0x1fbc: 0x0040, 0x1fbd: 0x0040, 0x1fbe: 0x0040, 0x1fbf: 0x0040,
+}
+
+// idnaIndex: 36 blocks, 2304 entries, 4608 bytes
+// Block 0 is the zero block.
+var idnaIndex = [2304]uint16{
+       // Block 0x0, offset 0x0
+       // Block 0x1, offset 0x40
+       // Block 0x2, offset 0x80
+       // Block 0x3, offset 0xc0
+       0xc2: 0x01, 0xc3: 0x7d, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x04, 0xc7: 0x05,
+       0xc8: 0x06, 0xc9: 0x7e, 0xca: 0x7f, 0xcb: 0x07, 0xcc: 0x80, 0xcd: 0x08, 0xce: 0x09, 0xcf: 0x0a,
+       0xd0: 0x81, 0xd1: 0x0b, 0xd2: 0x0c, 0xd3: 0x0d, 0xd4: 0x0e, 0xd5: 0x82, 0xd6: 0x83, 0xd7: 0x84,
+       0xd8: 0x0f, 0xd9: 0x10, 0xda: 0x85, 0xdb: 0x11, 0xdc: 0x12, 0xdd: 0x86, 0xde: 0x87, 0xdf: 0x88,
+       0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, 0xe4: 0x06, 0xe5: 0x07, 0xe6: 0x07, 0xe7: 0x07,
+       0xe8: 0x07, 0xe9: 0x08, 0xea: 0x09, 0xeb: 0x07, 0xec: 0x07, 0xed: 0x0a, 0xee: 0x0b, 0xef: 0x0c,
+       0xf0: 0x1d, 0xf1: 0x1e, 0xf2: 0x1e, 0xf3: 0x20, 0xf4: 0x21,
+       // Block 0x4, offset 0x100
+       0x120: 0x89, 0x121: 0x13, 0x122: 0x8a, 0x123: 0x8b, 0x124: 0x8c, 0x125: 0x14, 0x126: 0x15, 0x127: 0x16,
+       0x128: 0x17, 0x129: 0x18, 0x12a: 0x19, 0x12b: 0x1a, 0x12c: 0x1b, 0x12d: 0x1c, 0x12e: 0x1d, 0x12f: 0x8d,
+       0x130: 0x8e, 0x131: 0x1e, 0x132: 0x1f, 0x133: 0x20, 0x134: 0x8f, 0x135: 0x21, 0x136: 0x90, 0x137: 0x91,
+       0x138: 0x92, 0x139: 0x93, 0x13a: 0x22, 0x13b: 0x94, 0x13c: 0x95, 0x13d: 0x23, 0x13e: 0x24, 0x13f: 0x96,
+       // Block 0x5, offset 0x140
+       0x140: 0x97, 0x141: 0x98, 0x142: 0x99, 0x143: 0x9a, 0x144: 0x9b, 0x145: 0x9c, 0x146: 0x9d, 0x147: 0x9e,
+       0x148: 0x9f, 0x149: 0xa0, 0x14a: 0xa1, 0x14b: 0xa2, 0x14c: 0xa3, 0x14d: 0xa4, 0x14e: 0xa5, 0x14f: 0xa6,
+       0x150: 0xa7, 0x151: 0x9f, 0x152: 0x9f, 0x153: 0x9f, 0x154: 0x9f, 0x155: 0x9f, 0x156: 0x9f, 0x157: 0x9f,
+       0x158: 0x9f, 0x159: 0xa8, 0x15a: 0xa9, 0x15b: 0xaa, 0x15c: 0xab, 0x15d: 0xac, 0x15e: 0xad, 0x15f: 0xae,
+       0x160: 0xaf, 0x161: 0xb0, 0x162: 0xb1, 0x163: 0xb2, 0x164: 0xb3, 0x165: 0xb4, 0x166: 0xb5, 0x167: 0xb6,
+       0x168: 0xb7, 0x169: 0xb8, 0x16a: 0xb9, 0x16b: 0xba, 0x16c: 0xbb, 0x16d: 0xbc, 0x16e: 0xbd, 0x16f: 0xbe,
+       0x170: 0xbf, 0x171: 0xc0, 0x172: 0xc1, 0x173: 0xc2, 0x174: 0x25, 0x175: 0x26, 0x176: 0x27, 0x177: 0xc3,
+       0x178: 0x28, 0x179: 0x28, 0x17a: 0x29, 0x17b: 0x28, 0x17c: 0xc4, 0x17d: 0x2a, 0x17e: 0x2b, 0x17f: 0x2c,
+       // Block 0x6, offset 0x180
+       0x180: 0x2d, 0x181: 0x2e, 0x182: 0x2f, 0x183: 0xc5, 0x184: 0x30, 0x185: 0x31, 0x186: 0xc6, 0x187: 0x9b,
+       0x188: 0xc7, 0x189: 0xc8, 0x18a: 0x9b, 0x18b: 0x9b, 0x18c: 0xc9, 0x18d: 0x9b, 0x18e: 0x9b, 0x18f: 0x9b,
+       0x190: 0xca, 0x191: 0x32, 0x192: 0x33, 0x193: 0x34, 0x194: 0x9b, 0x195: 0x9b, 0x196: 0x9b, 0x197: 0x9b,
+       0x198: 0x9b, 0x199: 0x9b, 0x19a: 0x9b, 0x19b: 0x9b, 0x19c: 0x9b, 0x19d: 0x9b, 0x19e: 0x9b, 0x19f: 0x9b,
+       0x1a0: 0x9b, 0x1a1: 0x9b, 0x1a2: 0x9b, 0x1a3: 0x9b, 0x1a4: 0x9b, 0x1a5: 0x9b, 0x1a6: 0x9b, 0x1a7: 0x9b,
+       0x1a8: 0xcb, 0x1a9: 0xcc, 0x1aa: 0x9b, 0x1ab: 0xcd, 0x1ac: 0x9b, 0x1ad: 0xce, 0x1ae: 0xcf, 0x1af: 0xd0,
+       0x1b0: 0xd1, 0x1b1: 0x35, 0x1b2: 0x28, 0x1b3: 0x36, 0x1b4: 0xd2, 0x1b5: 0xd3, 0x1b6: 0xd4, 0x1b7: 0xd5,
+       0x1b8: 0xd6, 0x1b9: 0xd7, 0x1ba: 0xd8, 0x1bb: 0xd9, 0x1bc: 0xda, 0x1bd: 0xdb, 0x1be: 0xdc, 0x1bf: 0x37,
+       // Block 0x7, offset 0x1c0
+       0x1c0: 0x38, 0x1c1: 0xdd, 0x1c2: 0xde, 0x1c3: 0xdf, 0x1c4: 0xe0, 0x1c5: 0x39, 0x1c6: 0x3a, 0x1c7: 0xe1,
+       0x1c8: 0xe2, 0x1c9: 0x3b, 0x1ca: 0x3c, 0x1cb: 0x3d, 0x1cc: 0x3e, 0x1cd: 0x3f, 0x1ce: 0x40, 0x1cf: 0x41,
+       0x1d0: 0x9f, 0x1d1: 0x9f, 0x1d2: 0x9f, 0x1d3: 0x9f, 0x1d4: 0x9f, 0x1d5: 0x9f, 0x1d6: 0x9f, 0x1d7: 0x9f,
+       0x1d8: 0x9f, 0x1d9: 0x9f, 0x1da: 0x9f, 0x1db: 0x9f, 0x1dc: 0x9f, 0x1dd: 0x9f, 0x1de: 0x9f, 0x1df: 0x9f,
+       0x1e0: 0x9f, 0x1e1: 0x9f, 0x1e2: 0x9f, 0x1e3: 0x9f, 0x1e4: 0x9f, 0x1e5: 0x9f, 0x1e6: 0x9f, 0x1e7: 0x9f,
+       0x1e8: 0x9f, 0x1e9: 0x9f, 0x1ea: 0x9f, 0x1eb: 0x9f, 0x1ec: 0x9f, 0x1ed: 0x9f, 0x1ee: 0x9f, 0x1ef: 0x9f,
+       0x1f0: 0x9f, 0x1f1: 0x9f, 0x1f2: 0x9f, 0x1f3: 0x9f, 0x1f4: 0x9f, 0x1f5: 0x9f, 0x1f6: 0x9f, 0x1f7: 0x9f,
+       0x1f8: 0x9f, 0x1f9: 0x9f, 0x1fa: 0x9f, 0x1fb: 0x9f, 0x1fc: 0x9f, 0x1fd: 0x9f, 0x1fe: 0x9f, 0x1ff: 0x9f,
+       // Block 0x8, offset 0x200
+       0x200: 0x9f, 0x201: 0x9f, 0x202: 0x9f, 0x203: 0x9f, 0x204: 0x9f, 0x205: 0x9f, 0x206: 0x9f, 0x207: 0x9f,
+       0x208: 0x9f, 0x209: 0x9f, 0x20a: 0x9f, 0x20b: 0x9f, 0x20c: 0x9f, 0x20d: 0x9f, 0x20e: 0x9f, 0x20f: 0x9f,
+       0x210: 0x9f, 0x211: 0x9f, 0x212: 0x9f, 0x213: 0x9f, 0x214: 0x9f, 0x215: 0x9f, 0x216: 0x9f, 0x217: 0x9f,
+       0x218: 0x9f, 0x219: 0x9f, 0x21a: 0x9f, 0x21b: 0x9f, 0x21c: 0x9f, 0x21d: 0x9f, 0x21e: 0x9f, 0x21f: 0x9f,
+       0x220: 0x9f, 0x221: 0x9f, 0x222: 0x9f, 0x223: 0x9f, 0x224: 0x9f, 0x225: 0x9f, 0x226: 0x9f, 0x227: 0x9f,
+       0x228: 0x9f, 0x229: 0x9f, 0x22a: 0x9f, 0x22b: 0x9f, 0x22c: 0x9f, 0x22d: 0x9f, 0x22e: 0x9f, 0x22f: 0x9f,
+       0x230: 0x9f, 0x231: 0x9f, 0x232: 0x9f, 0x233: 0x9f, 0x234: 0x9f, 0x235: 0x9f, 0x236: 0xb2, 0x237: 0x9b,
+       0x238: 0x9f, 0x239: 0x9f, 0x23a: 0x9f, 0x23b: 0x9f, 0x23c: 0x9f, 0x23d: 0x9f, 0x23e: 0x9f, 0x23f: 0x9f,
+       // Block 0x9, offset 0x240
+       0x240: 0x9f, 0x241: 0x9f, 0x242: 0x9f, 0x243: 0x9f, 0x244: 0x9f, 0x245: 0x9f, 0x246: 0x9f, 0x247: 0x9f,
+       0x248: 0x9f, 0x249: 0x9f, 0x24a: 0x9f, 0x24b: 0x9f, 0x24c: 0x9f, 0x24d: 0x9f, 0x24e: 0x9f, 0x24f: 0x9f,
+       0x250: 0x9f, 0x251: 0x9f, 0x252: 0x9f, 0x253: 0x9f, 0x254: 0x9f, 0x255: 0x9f, 0x256: 0x9f, 0x257: 0x9f,
+       0x258: 0x9f, 0x259: 0x9f, 0x25a: 0x9f, 0x25b: 0x9f, 0x25c: 0x9f, 0x25d: 0x9f, 0x25e: 0x9f, 0x25f: 0x9f,
+       0x260: 0x9f, 0x261: 0x9f, 0x262: 0x9f, 0x263: 0x9f, 0x264: 0x9f, 0x265: 0x9f, 0x266: 0x9f, 0x267: 0x9f,
+       0x268: 0x9f, 0x269: 0x9f, 0x26a: 0x9f, 0x26b: 0x9f, 0x26c: 0x9f, 0x26d: 0x9f, 0x26e: 0x9f, 0x26f: 0x9f,
+       0x270: 0x9f, 0x271: 0x9f, 0x272: 0x9f, 0x273: 0x9f, 0x274: 0x9f, 0x275: 0x9f, 0x276: 0x9f, 0x277: 0x9f,
+       0x278: 0x9f, 0x279: 0x9f, 0x27a: 0x9f, 0x27b: 0x9f, 0x27c: 0x9f, 0x27d: 0x9f, 0x27e: 0x9f, 0x27f: 0x9f,
+       // Block 0xa, offset 0x280
+       0x280: 0x9f, 0x281: 0x9f, 0x282: 0x9f, 0x283: 0x9f, 0x284: 0x9f, 0x285: 0x9f, 0x286: 0x9f, 0x287: 0x9f,
+       0x288: 0x9f, 0x289: 0x9f, 0x28a: 0x9f, 0x28b: 0x9f, 0x28c: 0x9f, 0x28d: 0x9f, 0x28e: 0x9f, 0x28f: 0x9f,
+       0x290: 0x9f, 0x291: 0x9f, 0x292: 0x9f, 0x293: 0x9f, 0x294: 0x9f, 0x295: 0x9f, 0x296: 0x9f, 0x297: 0x9f,
+       0x298: 0x9f, 0x299: 0x9f, 0x29a: 0x9f, 0x29b: 0x9f, 0x29c: 0x9f, 0x29d: 0x9f, 0x29e: 0x9f, 0x29f: 0x9f,
+       0x2a0: 0x9f, 0x2a1: 0x9f, 0x2a2: 0x9f, 0x2a3: 0x9f, 0x2a4: 0x9f, 0x2a5: 0x9f, 0x2a6: 0x9f, 0x2a7: 0x9f,
+       0x2a8: 0x9f, 0x2a9: 0x9f, 0x2aa: 0x9f, 0x2ab: 0x9f, 0x2ac: 0x9f, 0x2ad: 0x9f, 0x2ae: 0x9f, 0x2af: 0x9f,
+       0x2b0: 0x9f, 0x2b1: 0x9f, 0x2b2: 0x9f, 0x2b3: 0x9f, 0x2b4: 0x9f, 0x2b5: 0x9f, 0x2b6: 0x9f, 0x2b7: 0x9f,
+       0x2b8: 0x9f, 0x2b9: 0x9f, 0x2ba: 0x9f, 0x2bb: 0x9f, 0x2bc: 0x9f, 0x2bd: 0x9f, 0x2be: 0x9f, 0x2bf: 0xe3,
+       // Block 0xb, offset 0x2c0
+       0x2c0: 0x9f, 0x2c1: 0x9f, 0x2c2: 0x9f, 0x2c3: 0x9f, 0x2c4: 0x9f, 0x2c5: 0x9f, 0x2c6: 0x9f, 0x2c7: 0x9f,
+       0x2c8: 0x9f, 0x2c9: 0x9f, 0x2ca: 0x9f, 0x2cb: 0x9f, 0x2cc: 0x9f, 0x2cd: 0x9f, 0x2ce: 0x9f, 0x2cf: 0x9f,
+       0x2d0: 0x9f, 0x2d1: 0x9f, 0x2d2: 0xe4, 0x2d3: 0xe5, 0x2d4: 0x9f, 0x2d5: 0x9f, 0x2d6: 0x9f, 0x2d7: 0x9f,
+       0x2d8: 0xe6, 0x2d9: 0x42, 0x2da: 0x43, 0x2db: 0xe7, 0x2dc: 0x44, 0x2dd: 0x45, 0x2de: 0x46, 0x2df: 0xe8,
+       0x2e0: 0xe9, 0x2e1: 0xea, 0x2e2: 0xeb, 0x2e3: 0xec, 0x2e4: 0xed, 0x2e5: 0xee, 0x2e6: 0xef, 0x2e7: 0xf0,
+       0x2e8: 0xf1, 0x2e9: 0xf2, 0x2ea: 0xf3, 0x2eb: 0xf4, 0x2ec: 0xf5, 0x2ed: 0xf6, 0x2ee: 0xf7, 0x2ef: 0xf8,
+       0x2f0: 0x9f, 0x2f1: 0x9f, 0x2f2: 0x9f, 0x2f3: 0x9f, 0x2f4: 0x9f, 0x2f5: 0x9f, 0x2f6: 0x9f, 0x2f7: 0x9f,
+       0x2f8: 0x9f, 0x2f9: 0x9f, 0x2fa: 0x9f, 0x2fb: 0x9f, 0x2fc: 0x9f, 0x2fd: 0x9f, 0x2fe: 0x9f, 0x2ff: 0x9f,
+       // Block 0xc, offset 0x300
+       0x300: 0x9f, 0x301: 0x9f, 0x302: 0x9f, 0x303: 0x9f, 0x304: 0x9f, 0x305: 0x9f, 0x306: 0x9f, 0x307: 0x9f,
+       0x308: 0x9f, 0x309: 0x9f, 0x30a: 0x9f, 0x30b: 0x9f, 0x30c: 0x9f, 0x30d: 0x9f, 0x30e: 0x9f, 0x30f: 0x9f,
+       0x310: 0x9f, 0x311: 0x9f, 0x312: 0x9f, 0x313: 0x9f, 0x314: 0x9f, 0x315: 0x9f, 0x316: 0x9f, 0x317: 0x9f,
+       0x318: 0x9f, 0x319: 0x9f, 0x31a: 0x9f, 0x31b: 0x9f, 0x31c: 0x9f, 0x31d: 0x9f, 0x31e: 0xf9, 0x31f: 0xfa,
+       // Block 0xd, offset 0x340
+       0x340: 0xba, 0x341: 0xba, 0x342: 0xba, 0x343: 0xba, 0x344: 0xba, 0x345: 0xba, 0x346: 0xba, 0x347: 0xba,
+       0x348: 0xba, 0x349: 0xba, 0x34a: 0xba, 0x34b: 0xba, 0x34c: 0xba, 0x34d: 0xba, 0x34e: 0xba, 0x34f: 0xba,
+       0x350: 0xba, 0x351: 0xba, 0x352: 0xba, 0x353: 0xba, 0x354: 0xba, 0x355: 0xba, 0x356: 0xba, 0x357: 0xba,
+       0x358: 0xba, 0x359: 0xba, 0x35a: 0xba, 0x35b: 0xba, 0x35c: 0xba, 0x35d: 0xba, 0x35e: 0xba, 0x35f: 0xba,
+       0x360: 0xba, 0x361: 0xba, 0x362: 0xba, 0x363: 0xba, 0x364: 0xba, 0x365: 0xba, 0x366: 0xba, 0x367: 0xba,
+       0x368: 0xba, 0x369: 0xba, 0x36a: 0xba, 0x36b: 0xba, 0x36c: 0xba, 0x36d: 0xba, 0x36e: 0xba, 0x36f: 0xba,
+       0x370: 0xba, 0x371: 0xba, 0x372: 0xba, 0x373: 0xba, 0x374: 0xba, 0x375: 0xba, 0x376: 0xba, 0x377: 0xba,
+       0x378: 0xba, 0x379: 0xba, 0x37a: 0xba, 0x37b: 0xba, 0x37c: 0xba, 0x37d: 0xba, 0x37e: 0xba, 0x37f: 0xba,
+       // Block 0xe, offset 0x380
+       0x380: 0xba, 0x381: 0xba, 0x382: 0xba, 0x383: 0xba, 0x384: 0xba, 0x385: 0xba, 0x386: 0xba, 0x387: 0xba,
+       0x388: 0xba, 0x389: 0xba, 0x38a: 0xba, 0x38b: 0xba, 0x38c: 0xba, 0x38d: 0xba, 0x38e: 0xba, 0x38f: 0xba,
+       0x390: 0xba, 0x391: 0xba, 0x392: 0xba, 0x393: 0xba, 0x394: 0xba, 0x395: 0xba, 0x396: 0xba, 0x397: 0xba,
+       0x398: 0xba, 0x399: 0xba, 0x39a: 0xba, 0x39b: 0xba, 0x39c: 0xba, 0x39d: 0xba, 0x39e: 0xba, 0x39f: 0xba,
+       0x3a0: 0xba, 0x3a1: 0xba, 0x3a2: 0xba, 0x3a3: 0xba, 0x3a4: 0xfb, 0x3a5: 0xfc, 0x3a6: 0xfd, 0x3a7: 0xfe,
+       0x3a8: 0x47, 0x3a9: 0xff, 0x3aa: 0x100, 0x3ab: 0x48, 0x3ac: 0x49, 0x3ad: 0x4a, 0x3ae: 0x4b, 0x3af: 0x4c,
+       0x3b0: 0x101, 0x3b1: 0x4d, 0x3b2: 0x4e, 0x3b3: 0x4f, 0x3b4: 0x50, 0x3b5: 0x51, 0x3b6: 0x102, 0x3b7: 0x52,
+       0x3b8: 0x53, 0x3b9: 0x54, 0x3ba: 0x55, 0x3bb: 0x56, 0x3bc: 0x57, 0x3bd: 0x58, 0x3be: 0x59, 0x3bf: 0x5a,
+       // Block 0xf, offset 0x3c0
+       0x3c0: 0x103, 0x3c1: 0x104, 0x3c2: 0x9f, 0x3c3: 0x105, 0x3c4: 0x106, 0x3c5: 0x9b, 0x3c6: 0x107, 0x3c7: 0x108,
+       0x3c8: 0xba, 0x3c9: 0xba, 0x3ca: 0x109, 0x3cb: 0x10a, 0x3cc: 0x10b, 0x3cd: 0x10c, 0x3ce: 0x10d, 0x3cf: 0x10e,
+       0x3d0: 0x10f, 0x3d1: 0x9f, 0x3d2: 0x110, 0x3d3: 0x111, 0x3d4: 0x112, 0x3d5: 0x113, 0x3d6: 0xba, 0x3d7: 0xba,
+       0x3d8: 0x9f, 0x3d9: 0x9f, 0x3da: 0x9f, 0x3db: 0x9f, 0x3dc: 0x114, 0x3dd: 0x115, 0x3de: 0xba, 0x3df: 0xba,
+       0x3e0: 0x116, 0x3e1: 0x117, 0x3e2: 0x118, 0x3e3: 0x119, 0x3e4: 0x11a, 0x3e5: 0xba, 0x3e6: 0x11b, 0x3e7: 0x11c,
+       0x3e8: 0x11d, 0x3e9: 0x11e, 0x3ea: 0x11f, 0x3eb: 0x5b, 0x3ec: 0x120, 0x3ed: 0x121, 0x3ee: 0x5c, 0x3ef: 0xba,
+       0x3f0: 0x122, 0x3f1: 0x123, 0x3f2: 0x124, 0x3f3: 0x125, 0x3f4: 0x126, 0x3f5: 0xba, 0x3f6: 0xba, 0x3f7: 0xba,
+       0x3f8: 0xba, 0x3f9: 0x127, 0x3fa: 0xba, 0x3fb: 0xba, 0x3fc: 0x128, 0x3fd: 0x129, 0x3fe: 0xba, 0x3ff: 0xba,
+       // Block 0x10, offset 0x400
+       0x400: 0x12a, 0x401: 0x12b, 0x402: 0x12c, 0x403: 0x12d, 0x404: 0x12e, 0x405: 0x12f, 0x406: 0x130, 0x407: 0x131,
+       0x408: 0x132, 0x409: 0xba, 0x40a: 0x133, 0x40b: 0x134, 0x40c: 0x5d, 0x40d: 0x5e, 0x40e: 0xba, 0x40f: 0xba,
+       0x410: 0x135, 0x411: 0x136, 0x412: 0x137, 0x413: 0x138, 0x414: 0xba, 0x415: 0xba, 0x416: 0x139, 0x417: 0x13a,
+       0x418: 0x13b, 0x419: 0x13c, 0x41a: 0x13d, 0x41b: 0x13e, 0x41c: 0x13f, 0x41d: 0xba, 0x41e: 0xba, 0x41f: 0xba,
+       0x420: 0x140, 0x421: 0xba, 0x422: 0x141, 0x423: 0x142, 0x424: 0xba, 0x425: 0xba, 0x426: 0xba, 0x427: 0xba,
+       0x428: 0x143, 0x429: 0x144, 0x42a: 0x145, 0x42b: 0x146, 0x42c: 0xba, 0x42d: 0xba, 0x42e: 0xba, 0x42f: 0xba,
+       0x430: 0x147, 0x431: 0x148, 0x432: 0x149, 0x433: 0xba, 0x434: 0x14a, 0x435: 0x14b, 0x436: 0x14c, 0x437: 0xba,
+       0x438: 0xba, 0x439: 0xba, 0x43a: 0xba, 0x43b: 0x14d, 0x43c: 0xba, 0x43d: 0xba, 0x43e: 0xba, 0x43f: 0xba,
+       // Block 0x11, offset 0x440
+       0x440: 0x9f, 0x441: 0x9f, 0x442: 0x9f, 0x443: 0x9f, 0x444: 0x9f, 0x445: 0x9f, 0x446: 0x9f, 0x447: 0x9f,
+       0x448: 0x9f, 0x449: 0x9f, 0x44a: 0x9f, 0x44b: 0x9f, 0x44c: 0x9f, 0x44d: 0x9f, 0x44e: 0x14e, 0x44f: 0xba,
+       0x450: 0x9b, 0x451: 0x14f, 0x452: 0x9f, 0x453: 0x9f, 0x454: 0x9f, 0x455: 0x150, 0x456: 0xba, 0x457: 0xba,
+       0x458: 0xba, 0x459: 0xba, 0x45a: 0xba, 0x45b: 0xba, 0x45c: 0xba, 0x45d: 0xba, 0x45e: 0xba, 0x45f: 0xba,
+       0x460: 0xba, 0x461: 0xba, 0x462: 0xba, 0x463: 0xba, 0x464: 0xba, 0x465: 0xba, 0x466: 0xba, 0x467: 0xba,
+       0x468: 0xba, 0x469: 0xba, 0x46a: 0xba, 0x46b: 0xba, 0x46c: 0xba, 0x46d: 0xba, 0x46e: 0xba, 0x46f: 0xba,
+       0x470: 0xba, 0x471: 0xba, 0x472: 0xba, 0x473: 0xba, 0x474: 0xba, 0x475: 0xba, 0x476: 0xba, 0x477: 0xba,
+       0x478: 0xba, 0x479: 0xba, 0x47a: 0xba, 0x47b: 0xba, 0x47c: 0xba, 0x47d: 0xba, 0x47e: 0xba, 0x47f: 0xba,
+       // Block 0x12, offset 0x480
+       0x480: 0x9f, 0x481: 0x9f, 0x482: 0x9f, 0x483: 0x9f, 0x484: 0x9f, 0x485: 0x9f, 0x486: 0x9f, 0x487: 0x9f,
+       0x488: 0x9f, 0x489: 0x9f, 0x48a: 0x9f, 0x48b: 0x9f, 0x48c: 0x9f, 0x48d: 0x9f, 0x48e: 0x9f, 0x48f: 0x9f,
+       0x490: 0x151, 0x491: 0xba, 0x492: 0xba, 0x493: 0xba, 0x494: 0xba, 0x495: 0xba, 0x496: 0xba, 0x497: 0xba,
+       0x498: 0xba, 0x499: 0xba, 0x49a: 0xba, 0x49b: 0xba, 0x49c: 0xba, 0x49d: 0xba, 0x49e: 0xba, 0x49f: 0xba,
+       0x4a0: 0xba, 0x4a1: 0xba, 0x4a2: 0xba, 0x4a3: 0xba, 0x4a4: 0xba, 0x4a5: 0xba, 0x4a6: 0xba, 0x4a7: 0xba,
+       0x4a8: 0xba, 0x4a9: 0xba, 0x4aa: 0xba, 0x4ab: 0xba, 0x4ac: 0xba, 0x4ad: 0xba, 0x4ae: 0xba, 0x4af: 0xba,
+       0x4b0: 0xba, 0x4b1: 0xba, 0x4b2: 0xba, 0x4b3: 0xba, 0x4b4: 0xba, 0x4b5: 0xba, 0x4b6: 0xba, 0x4b7: 0xba,
+       0x4b8: 0xba, 0x4b9: 0xba, 0x4ba: 0xba, 0x4bb: 0xba, 0x4bc: 0xba, 0x4bd: 0xba, 0x4be: 0xba, 0x4bf: 0xba,
+       // Block 0x13, offset 0x4c0
+       0x4c0: 0xba, 0x4c1: 0xba, 0x4c2: 0xba, 0x4c3: 0xba, 0x4c4: 0xba, 0x4c5: 0xba, 0x4c6: 0xba, 0x4c7: 0xba,
+       0x4c8: 0xba, 0x4c9: 0xba, 0x4ca: 0xba, 0x4cb: 0xba, 0x4cc: 0xba, 0x4cd: 0xba, 0x4ce: 0xba, 0x4cf: 0xba,
+       0x4d0: 0x9f, 0x4d1: 0x9f, 0x4d2: 0x9f, 0x4d3: 0x9f, 0x4d4: 0x9f, 0x4d5: 0x9f, 0x4d6: 0x9f, 0x4d7: 0x9f,
+       0x4d8: 0x9f, 0x4d9: 0x152, 0x4da: 0xba, 0x4db: 0xba, 0x4dc: 0xba, 0x4dd: 0xba, 0x4de: 0xba, 0x4df: 0xba,
+       0x4e0: 0xba, 0x4e1: 0xba, 0x4e2: 0xba, 0x4e3: 0xba, 0x4e4: 0xba, 0x4e5: 0xba, 0x4e6: 0xba, 0x4e7: 0xba,
+       0x4e8: 0xba, 0x4e9: 0xba, 0x4ea: 0xba, 0x4eb: 0xba, 0x4ec: 0xba, 0x4ed: 0xba, 0x4ee: 0xba, 0x4ef: 0xba,
+       0x4f0: 0xba, 0x4f1: 0xba, 0x4f2: 0xba, 0x4f3: 0xba, 0x4f4: 0xba, 0x4f5: 0xba, 0x4f6: 0xba, 0x4f7: 0xba,
+       0x4f8: 0xba, 0x4f9: 0xba, 0x4fa: 0xba, 0x4fb: 0xba, 0x4fc: 0xba, 0x4fd: 0xba, 0x4fe: 0xba, 0x4ff: 0xba,
+       // Block 0x14, offset 0x500
+       0x500: 0xba, 0x501: 0xba, 0x502: 0xba, 0x503: 0xba, 0x504: 0xba, 0x505: 0xba, 0x506: 0xba, 0x507: 0xba,
+       0x508: 0xba, 0x509: 0xba, 0x50a: 0xba, 0x50b: 0xba, 0x50c: 0xba, 0x50d: 0xba, 0x50e: 0xba, 0x50f: 0xba,
+       0x510: 0xba, 0x511: 0xba, 0x512: 0xba, 0x513: 0xba, 0x514: 0xba, 0x515: 0xba, 0x516: 0xba, 0x517: 0xba,
+       0x518: 0xba, 0x519: 0xba, 0x51a: 0xba, 0x51b: 0xba, 0x51c: 0xba, 0x51d: 0xba, 0x51e: 0xba, 0x51f: 0xba,
+       0x520: 0x9f, 0x521: 0x9f, 0x522: 0x9f, 0x523: 0x9f, 0x524: 0x9f, 0x525: 0x9f, 0x526: 0x9f, 0x527: 0x9f,
+       0x528: 0x146, 0x529: 0x153, 0x52a: 0xba, 0x52b: 0x154, 0x52c: 0x155, 0x52d: 0x156, 0x52e: 0x157, 0x52f: 0xba,
+       0x530: 0xba, 0x531: 0xba, 0x532: 0xba, 0x533: 0xba, 0x534: 0xba, 0x535: 0xba, 0x536: 0xba, 0x537: 0xba,
+       0x538: 0xba, 0x539: 0x158, 0x53a: 0x159, 0x53b: 0xba, 0x53c: 0x9f, 0x53d: 0x15a, 0x53e: 0x15b, 0x53f: 0x15c,
+       // Block 0x15, offset 0x540
+       0x540: 0x9f, 0x541: 0x9f, 0x542: 0x9f, 0x543: 0x9f, 0x544: 0x9f, 0x545: 0x9f, 0x546: 0x9f, 0x547: 0x9f,
+       0x548: 0x9f, 0x549: 0x9f, 0x54a: 0x9f, 0x54b: 0x9f, 0x54c: 0x9f, 0x54d: 0x9f, 0x54e: 0x9f, 0x54f: 0x9f,
+       0x550: 0x9f, 0x551: 0x9f, 0x552: 0x9f, 0x553: 0x9f, 0x554: 0x9f, 0x555: 0x9f, 0x556: 0x9f, 0x557: 0x9f,
+       0x558: 0x9f, 0x559: 0x9f, 0x55a: 0x9f, 0x55b: 0x9f, 0x55c: 0x9f, 0x55d: 0x9f, 0x55e: 0x9f, 0x55f: 0x15d,
+       0x560: 0x9f, 0x561: 0x9f, 0x562: 0x9f, 0x563: 0x9f, 0x564: 0x9f, 0x565: 0x9f, 0x566: 0x9f, 0x567: 0x9f,
+       0x568: 0x9f, 0x569: 0x9f, 0x56a: 0x9f, 0x56b: 0x15e, 0x56c: 0xba, 0x56d: 0xba, 0x56e: 0xba, 0x56f: 0xba,
+       0x570: 0xba, 0x571: 0xba, 0x572: 0xba, 0x573: 0xba, 0x574: 0xba, 0x575: 0xba, 0x576: 0xba, 0x577: 0xba,
+       0x578: 0xba, 0x579: 0xba, 0x57a: 0xba, 0x57b: 0xba, 0x57c: 0xba, 0x57d: 0xba, 0x57e: 0xba, 0x57f: 0xba,
+       // Block 0x16, offset 0x580
+       0x580: 0x9f, 0x581: 0x9f, 0x582: 0x9f, 0x583: 0x9f, 0x584: 0x15f, 0x585: 0x160, 0x586: 0x9f, 0x587: 0x9f,
+       0x588: 0x9f, 0x589: 0x9f, 0x58a: 0x9f, 0x58b: 0x161, 0x58c: 0xba, 0x58d: 0xba, 0x58e: 0xba, 0x58f: 0xba,
+       0x590: 0xba, 0x591: 0xba, 0x592: 0xba, 0x593: 0xba, 0x594: 0xba, 0x595: 0xba, 0x596: 0xba, 0x597: 0xba,
+       0x598: 0xba, 0x599: 0xba, 0x59a: 0xba, 0x59b: 0xba, 0x59c: 0xba, 0x59d: 0xba, 0x59e: 0xba, 0x59f: 0xba,
+       0x5a0: 0xba, 0x5a1: 0xba, 0x5a2: 0xba, 0x5a3: 0xba, 0x5a4: 0xba, 0x5a5: 0xba, 0x5a6: 0xba, 0x5a7: 0xba,
+       0x5a8: 0xba, 0x5a9: 0xba, 0x5aa: 0xba, 0x5ab: 0xba, 0x5ac: 0xba, 0x5ad: 0xba, 0x5ae: 0xba, 0x5af: 0xba,
+       0x5b0: 0x9f, 0x5b1: 0x162, 0x5b2: 0x163, 0x5b3: 0xba, 0x5b4: 0xba, 0x5b5: 0xba, 0x5b6: 0xba, 0x5b7: 0xba,
+       0x5b8: 0xba, 0x5b9: 0xba, 0x5ba: 0xba, 0x5bb: 0xba, 0x5bc: 0xba, 0x5bd: 0xba, 0x5be: 0xba, 0x5bf: 0xba,
+       // Block 0x17, offset 0x5c0
+       0x5c0: 0x9b, 0x5c1: 0x9b, 0x5c2: 0x9b, 0x5c3: 0x164, 0x5c4: 0x165, 0x5c5: 0x166, 0x5c6: 0x167, 0x5c7: 0x168,
+       0x5c8: 0x9b, 0x5c9: 0x169, 0x5ca: 0xba, 0x5cb: 0x16a, 0x5cc: 0x9b, 0x5cd: 0x16b, 0x5ce: 0xba, 0x5cf: 0xba,
+       0x5d0: 0x5f, 0x5d1: 0x60, 0x5d2: 0x61, 0x5d3: 0x62, 0x5d4: 0x63, 0x5d5: 0x64, 0x5d6: 0x65, 0x5d7: 0x66,
+       0x5d8: 0x67, 0x5d9: 0x68, 0x5da: 0x69, 0x5db: 0x6a, 0x5dc: 0x6b, 0x5dd: 0x6c, 0x5de: 0x6d, 0x5df: 0x6e,
+       0x5e0: 0x9b, 0x5e1: 0x9b, 0x5e2: 0x9b, 0x5e3: 0x9b, 0x5e4: 0x9b, 0x5e5: 0x9b, 0x5e6: 0x9b, 0x5e7: 0x9b,
+       0x5e8: 0x16c, 0x5e9: 0x16d, 0x5ea: 0x16e, 0x5eb: 0xba, 0x5ec: 0xba, 0x5ed: 0xba, 0x5ee: 0xba, 0x5ef: 0xba,
+       0x5f0: 0xba, 0x5f1: 0xba, 0x5f2: 0xba, 0x5f3: 0xba, 0x5f4: 0xba, 0x5f5: 0xba, 0x5f6: 0xba, 0x5f7: 0xba,
+       0x5f8: 0xba, 0x5f9: 0xba, 0x5fa: 0xba, 0x5fb: 0xba, 0x5fc: 0xba, 0x5fd: 0xba, 0x5fe: 0xba, 0x5ff: 0xba,
+       // Block 0x18, offset 0x600
+       0x600: 0x16f, 0x601: 0xba, 0x602: 0xba, 0x603: 0xba, 0x604: 0xba, 0x605: 0xba, 0x606: 0xba, 0x607: 0xba,
+       0x608: 0xba, 0x609: 0xba, 0x60a: 0xba, 0x60b: 0xba, 0x60c: 0xba, 0x60d: 0xba, 0x60e: 0xba, 0x60f: 0xba,
+       0x610: 0xba, 0x611: 0xba, 0x612: 0xba, 0x613: 0xba, 0x614: 0xba, 0x615: 0xba, 0x616: 0xba, 0x617: 0xba,
+       0x618: 0xba, 0x619: 0xba, 0x61a: 0xba, 0x61b: 0xba, 0x61c: 0xba, 0x61d: 0xba, 0x61e: 0xba, 0x61f: 0xba,
+       0x620: 0x122, 0x621: 0x122, 0x622: 0x122, 0x623: 0x170, 0x624: 0x6f, 0x625: 0x171, 0x626: 0xba, 0x627: 0xba,
+       0x628: 0xba, 0x629: 0xba, 0x62a: 0xba, 0x62b: 0xba, 0x62c: 0xba, 0x62d: 0xba, 0x62e: 0xba, 0x62f: 0xba,
+       0x630: 0xba, 0x631: 0x172, 0x632: 0x173, 0x633: 0xba, 0x634: 0xba, 0x635: 0xba, 0x636: 0xba, 0x637: 0xba,
+       0x638: 0x70, 0x639: 0x71, 0x63a: 0x72, 0x63b: 0x174, 0x63c: 0xba, 0x63d: 0xba, 0x63e: 0xba, 0x63f: 0xba,
+       // Block 0x19, offset 0x640
+       0x640: 0x175, 0x641: 0x9b, 0x642: 0x176, 0x643: 0x177, 0x644: 0x73, 0x645: 0x74, 0x646: 0x178, 0x647: 0x179,
+       0x648: 0x75, 0x649: 0x17a, 0x64a: 0xba, 0x64b: 0xba, 0x64c: 0x9b, 0x64d: 0x9b, 0x64e: 0x9b, 0x64f: 0x9b,
+       0x650: 0x9b, 0x651: 0x9b, 0x652: 0x9b, 0x653: 0x9b, 0x654: 0x9b, 0x655: 0x9b, 0x656: 0x9b, 0x657: 0x9b,
+       0x658: 0x9b, 0x659: 0x9b, 0x65a: 0x9b, 0x65b: 0x17b, 0x65c: 0x9b, 0x65d: 0x17c, 0x65e: 0x9b, 0x65f: 0x17d,
+       0x660: 0x17e, 0x661: 0x17f, 0x662: 0x180, 0x663: 0xba, 0x664: 0x181, 0x665: 0x182, 0x666: 0x183, 0x667: 0x184,
+       0x668: 0xba, 0x669: 0x185, 0x66a: 0xba, 0x66b: 0xba, 0x66c: 0xba, 0x66d: 0xba, 0x66e: 0xba, 0x66f: 0xba,
+       0x670: 0xba, 0x671: 0xba, 0x672: 0xba, 0x673: 0xba, 0x674: 0xba, 0x675: 0xba, 0x676: 0xba, 0x677: 0xba,
+       0x678: 0xba, 0x679: 0xba, 0x67a: 0xba, 0x67b: 0xba, 0x67c: 0xba, 0x67d: 0xba, 0x67e: 0xba, 0x67f: 0xba,
+       // Block 0x1a, offset 0x680
+       0x680: 0x9f, 0x681: 0x9f, 0x682: 0x9f, 0x683: 0x9f, 0x684: 0x9f, 0x685: 0x9f, 0x686: 0x9f, 0x687: 0x9f,
+       0x688: 0x9f, 0x689: 0x9f, 0x68a: 0x9f, 0x68b: 0x9f, 0x68c: 0x9f, 0x68d: 0x9f, 0x68e: 0x9f, 0x68f: 0x9f,
+       0x690: 0x9f, 0x691: 0x9f, 0x692: 0x9f, 0x693: 0x9f, 0x694: 0x9f, 0x695: 0x9f, 0x696: 0x9f, 0x697: 0x9f,
+       0x698: 0x9f, 0x699: 0x9f, 0x69a: 0x9f, 0x69b: 0x186, 0x69c: 0x9f, 0x69d: 0x9f, 0x69e: 0x9f, 0x69f: 0x9f,
+       0x6a0: 0x9f, 0x6a1: 0x9f, 0x6a2: 0x9f, 0x6a3: 0x9f, 0x6a4: 0x9f, 0x6a5: 0x9f, 0x6a6: 0x9f, 0x6a7: 0x9f,
+       0x6a8: 0x9f, 0x6a9: 0x9f, 0x6aa: 0x9f, 0x6ab: 0x9f, 0x6ac: 0x9f, 0x6ad: 0x9f, 0x6ae: 0x9f, 0x6af: 0x9f,
+       0x6b0: 0x9f, 0x6b1: 0x9f, 0x6b2: 0x9f, 0x6b3: 0x9f, 0x6b4: 0x9f, 0x6b5: 0x9f, 0x6b6: 0x9f, 0x6b7: 0x9f,
+       0x6b8: 0x9f, 0x6b9: 0x9f, 0x6ba: 0x9f, 0x6bb: 0x9f, 0x6bc: 0x9f, 0x6bd: 0x9f, 0x6be: 0x9f, 0x6bf: 0x9f,
+       // Block 0x1b, offset 0x6c0
+       0x6c0: 0x9f, 0x6c1: 0x9f, 0x6c2: 0x9f, 0x6c3: 0x9f, 0x6c4: 0x9f, 0x6c5: 0x9f, 0x6c6: 0x9f, 0x6c7: 0x9f,
+       0x6c8: 0x9f, 0x6c9: 0x9f, 0x6ca: 0x9f, 0x6cb: 0x9f, 0x6cc: 0x9f, 0x6cd: 0x9f, 0x6ce: 0x9f, 0x6cf: 0x9f,
+       0x6d0: 0x9f, 0x6d1: 0x9f, 0x6d2: 0x9f, 0x6d3: 0x9f, 0x6d4: 0x9f, 0x6d5: 0x9f, 0x6d6: 0x9f, 0x6d7: 0x9f,
+       0x6d8: 0x9f, 0x6d9: 0x9f, 0x6da: 0x9f, 0x6db: 0x9f, 0x6dc: 0x187, 0x6dd: 0x9f, 0x6de: 0x9f, 0x6df: 0x9f,
+       0x6e0: 0x188, 0x6e1: 0x9f, 0x6e2: 0x9f, 0x6e3: 0x9f, 0x6e4: 0x9f, 0x6e5: 0x9f, 0x6e6: 0x9f, 0x6e7: 0x9f,
+       0x6e8: 0x9f, 0x6e9: 0x9f, 0x6ea: 0x9f, 0x6eb: 0x9f, 0x6ec: 0x9f, 0x6ed: 0x9f, 0x6ee: 0x9f, 0x6ef: 0x9f,
+       0x6f0: 0x9f, 0x6f1: 0x9f, 0x6f2: 0x9f, 0x6f3: 0x9f, 0x6f4: 0x9f, 0x6f5: 0x9f, 0x6f6: 0x9f, 0x6f7: 0x9f,
+       0x6f8: 0x9f, 0x6f9: 0x9f, 0x6fa: 0x9f, 0x6fb: 0x9f, 0x6fc: 0x9f, 0x6fd: 0x9f, 0x6fe: 0x9f, 0x6ff: 0x9f,
+       // Block 0x1c, offset 0x700
+       0x700: 0x9f, 0x701: 0x9f, 0x702: 0x9f, 0x703: 0x9f, 0x704: 0x9f, 0x705: 0x9f, 0x706: 0x9f, 0x707: 0x9f,
+       0x708: 0x9f, 0x709: 0x9f, 0x70a: 0x9f, 0x70b: 0x9f, 0x70c: 0x9f, 0x70d: 0x9f, 0x70e: 0x9f, 0x70f: 0x9f,
+       0x710: 0x9f, 0x711: 0x9f, 0x712: 0x9f, 0x713: 0x9f, 0x714: 0x9f, 0x715: 0x9f, 0x716: 0x9f, 0x717: 0x9f,
+       0x718: 0x9f, 0x719: 0x9f, 0x71a: 0x9f, 0x71b: 0x9f, 0x71c: 0x9f, 0x71d: 0x9f, 0x71e: 0x9f, 0x71f: 0x9f,
+       0x720: 0x9f, 0x721: 0x9f, 0x722: 0x9f, 0x723: 0x9f, 0x724: 0x9f, 0x725: 0x9f, 0x726: 0x9f, 0x727: 0x9f,
+       0x728: 0x9f, 0x729: 0x9f, 0x72a: 0x9f, 0x72b: 0x9f, 0x72c: 0x9f, 0x72d: 0x9f, 0x72e: 0x9f, 0x72f: 0x9f,
+       0x730: 0x9f, 0x731: 0x9f, 0x732: 0x9f, 0x733: 0x9f, 0x734: 0x9f, 0x735: 0x9f, 0x736: 0x9f, 0x737: 0x9f,
+       0x738: 0x9f, 0x739: 0x9f, 0x73a: 0x189, 0x73b: 0x9f, 0x73c: 0x9f, 0x73d: 0x9f, 0x73e: 0x9f, 0x73f: 0x9f,
+       // Block 0x1d, offset 0x740
+       0x740: 0x9f, 0x741: 0x9f, 0x742: 0x9f, 0x743: 0x9f, 0x744: 0x9f, 0x745: 0x9f, 0x746: 0x9f, 0x747: 0x9f,
+       0x748: 0x9f, 0x749: 0x9f, 0x74a: 0x9f, 0x74b: 0x9f, 0x74c: 0x9f, 0x74d: 0x9f, 0x74e: 0x9f, 0x74f: 0x9f,
+       0x750: 0x9f, 0x751: 0x9f, 0x752: 0x9f, 0x753: 0x9f, 0x754: 0x9f, 0x755: 0x9f, 0x756: 0x9f, 0x757: 0x9f,
+       0x758: 0x9f, 0x759: 0x9f, 0x75a: 0x9f, 0x75b: 0x9f, 0x75c: 0x9f, 0x75d: 0x9f, 0x75e: 0x9f, 0x75f: 0x9f,
+       0x760: 0x9f, 0x761: 0x9f, 0x762: 0x9f, 0x763: 0x9f, 0x764: 0x9f, 0x765: 0x9f, 0x766: 0x9f, 0x767: 0x9f,
+       0x768: 0x9f, 0x769: 0x9f, 0x76a: 0x9f, 0x76b: 0x9f, 0x76c: 0x9f, 0x76d: 0x9f, 0x76e: 0x9f, 0x76f: 0x18a,
+       0x770: 0xba, 0x771: 0xba, 0x772: 0xba, 0x773: 0xba, 0x774: 0xba, 0x775: 0xba, 0x776: 0xba, 0x777: 0xba,
+       0x778: 0xba, 0x779: 0xba, 0x77a: 0xba, 0x77b: 0xba, 0x77c: 0xba, 0x77d: 0xba, 0x77e: 0xba, 0x77f: 0xba,
+       // Block 0x1e, offset 0x780
+       0x780: 0xba, 0x781: 0xba, 0x782: 0xba, 0x783: 0xba, 0x784: 0xba, 0x785: 0xba, 0x786: 0xba, 0x787: 0xba,
+       0x788: 0xba, 0x789: 0xba, 0x78a: 0xba, 0x78b: 0xba, 0x78c: 0xba, 0x78d: 0xba, 0x78e: 0xba, 0x78f: 0xba,
+       0x790: 0xba, 0x791: 0xba, 0x792: 0xba, 0x793: 0xba, 0x794: 0xba, 0x795: 0xba, 0x796: 0xba, 0x797: 0xba,
+       0x798: 0xba, 0x799: 0xba, 0x79a: 0xba, 0x79b: 0xba, 0x79c: 0xba, 0x79d: 0xba, 0x79e: 0xba, 0x79f: 0xba,
+       0x7a0: 0x76, 0x7a1: 0x77, 0x7a2: 0x78, 0x7a3: 0x18b, 0x7a4: 0x79, 0x7a5: 0x7a, 0x7a6: 0x18c, 0x7a7: 0x7b,
+       0x7a8: 0x7c, 0x7a9: 0xba, 0x7aa: 0xba, 0x7ab: 0xba, 0x7ac: 0xba, 0x7ad: 0xba, 0x7ae: 0xba, 0x7af: 0xba,
+       0x7b0: 0xba, 0x7b1: 0xba, 0x7b2: 0xba, 0x7b3: 0xba, 0x7b4: 0xba, 0x7b5: 0xba, 0x7b6: 0xba, 0x7b7: 0xba,
+       0x7b8: 0xba, 0x7b9: 0xba, 0x7ba: 0xba, 0x7bb: 0xba, 0x7bc: 0xba, 0x7bd: 0xba, 0x7be: 0xba, 0x7bf: 0xba,
+       // Block 0x1f, offset 0x7c0
+       0x7d0: 0x0d, 0x7d1: 0x0e, 0x7d2: 0x0f, 0x7d3: 0x10, 0x7d4: 0x11, 0x7d5: 0x0b, 0x7d6: 0x12, 0x7d7: 0x07,
+       0x7d8: 0x13, 0x7d9: 0x0b, 0x7da: 0x0b, 0x7db: 0x14, 0x7dc: 0x0b, 0x7dd: 0x15, 0x7de: 0x16, 0x7df: 0x17,
+       0x7e0: 0x07, 0x7e1: 0x07, 0x7e2: 0x07, 0x7e3: 0x07, 0x7e4: 0x07, 0x7e5: 0x07, 0x7e6: 0x07, 0x7e7: 0x07,
+       0x7e8: 0x07, 0x7e9: 0x07, 0x7ea: 0x18, 0x7eb: 0x19, 0x7ec: 0x1a, 0x7ed: 0x07, 0x7ee: 0x1b, 0x7ef: 0x1c,
+       0x7f0: 0x0b, 0x7f1: 0x0b, 0x7f2: 0x0b, 0x7f3: 0x0b, 0x7f4: 0x0b, 0x7f5: 0x0b, 0x7f6: 0x0b, 0x7f7: 0x0b,
+       0x7f8: 0x0b, 0x7f9: 0x0b, 0x7fa: 0x0b, 0x7fb: 0x0b, 0x7fc: 0x0b, 0x7fd: 0x0b, 0x7fe: 0x0b, 0x7ff: 0x0b,
+       // Block 0x20, offset 0x800
+       0x800: 0x0b, 0x801: 0x0b, 0x802: 0x0b, 0x803: 0x0b, 0x804: 0x0b, 0x805: 0x0b, 0x806: 0x0b, 0x807: 0x0b,
+       0x808: 0x0b, 0x809: 0x0b, 0x80a: 0x0b, 0x80b: 0x0b, 0x80c: 0x0b, 0x80d: 0x0b, 0x80e: 0x0b, 0x80f: 0x0b,
+       0x810: 0x0b, 0x811: 0x0b, 0x812: 0x0b, 0x813: 0x0b, 0x814: 0x0b, 0x815: 0x0b, 0x816: 0x0b, 0x817: 0x0b,
+       0x818: 0x0b, 0x819: 0x0b, 0x81a: 0x0b, 0x81b: 0x0b, 0x81c: 0x0b, 0x81d: 0x0b, 0x81e: 0x0b, 0x81f: 0x0b,
+       0x820: 0x0b, 0x821: 0x0b, 0x822: 0x0b, 0x823: 0x0b, 0x824: 0x0b, 0x825: 0x0b, 0x826: 0x0b, 0x827: 0x0b,
+       0x828: 0x0b, 0x829: 0x0b, 0x82a: 0x0b, 0x82b: 0x0b, 0x82c: 0x0b, 0x82d: 0x0b, 0x82e: 0x0b, 0x82f: 0x0b,
+       0x830: 0x0b, 0x831: 0x0b, 0x832: 0x0b, 0x833: 0x0b, 0x834: 0x0b, 0x835: 0x0b, 0x836: 0x0b, 0x837: 0x0b,
+       0x838: 0x0b, 0x839: 0x0b, 0x83a: 0x0b, 0x83b: 0x0b, 0x83c: 0x0b, 0x83d: 0x0b, 0x83e: 0x0b, 0x83f: 0x0b,
+       // Block 0x21, offset 0x840
+       0x840: 0x18d, 0x841: 0x18e, 0x842: 0xba, 0x843: 0xba, 0x844: 0x18f, 0x845: 0x18f, 0x846: 0x18f, 0x847: 0x190,
+       0x848: 0xba, 0x849: 0xba, 0x84a: 0xba, 0x84b: 0xba, 0x84c: 0xba, 0x84d: 0xba, 0x84e: 0xba, 0x84f: 0xba,
+       0x850: 0xba, 0x851: 0xba, 0x852: 0xba, 0x853: 0xba, 0x854: 0xba, 0x855: 0xba, 0x856: 0xba, 0x857: 0xba,
+       0x858: 0xba, 0x859: 0xba, 0x85a: 0xba, 0x85b: 0xba, 0x85c: 0xba, 0x85d: 0xba, 0x85e: 0xba, 0x85f: 0xba,
+       0x860: 0xba, 0x861: 0xba, 0x862: 0xba, 0x863: 0xba, 0x864: 0xba, 0x865: 0xba, 0x866: 0xba, 0x867: 0xba,
+       0x868: 0xba, 0x869: 0xba, 0x86a: 0xba, 0x86b: 0xba, 0x86c: 0xba, 0x86d: 0xba, 0x86e: 0xba, 0x86f: 0xba,
+       0x870: 0xba, 0x871: 0xba, 0x872: 0xba, 0x873: 0xba, 0x874: 0xba, 0x875: 0xba, 0x876: 0xba, 0x877: 0xba,
+       0x878: 0xba, 0x879: 0xba, 0x87a: 0xba, 0x87b: 0xba, 0x87c: 0xba, 0x87d: 0xba, 0x87e: 0xba, 0x87f: 0xba,
+       // Block 0x22, offset 0x880
+       0x880: 0x0b, 0x881: 0x0b, 0x882: 0x0b, 0x883: 0x0b, 0x884: 0x0b, 0x885: 0x0b, 0x886: 0x0b, 0x887: 0x0b,
+       0x888: 0x0b, 0x889: 0x0b, 0x88a: 0x0b, 0x88b: 0x0b, 0x88c: 0x0b, 0x88d: 0x0b, 0x88e: 0x0b, 0x88f: 0x0b,
+       0x890: 0x0b, 0x891: 0x0b, 0x892: 0x0b, 0x893: 0x0b, 0x894: 0x0b, 0x895: 0x0b, 0x896: 0x0b, 0x897: 0x0b,
+       0x898: 0x0b, 0x899: 0x0b, 0x89a: 0x0b, 0x89b: 0x0b, 0x89c: 0x0b, 0x89d: 0x0b, 0x89e: 0x0b, 0x89f: 0x0b,
+       0x8a0: 0x1f, 0x8a1: 0x0b, 0x8a2: 0x0b, 0x8a3: 0x0b, 0x8a4: 0x0b, 0x8a5: 0x0b, 0x8a6: 0x0b, 0x8a7: 0x0b,
+       0x8a8: 0x0b, 0x8a9: 0x0b, 0x8aa: 0x0b, 0x8ab: 0x0b, 0x8ac: 0x0b, 0x8ad: 0x0b, 0x8ae: 0x0b, 0x8af: 0x0b,
+       0x8b0: 0x0b, 0x8b1: 0x0b, 0x8b2: 0x0b, 0x8b3: 0x0b, 0x8b4: 0x0b, 0x8b5: 0x0b, 0x8b6: 0x0b, 0x8b7: 0x0b,
+       0x8b8: 0x0b, 0x8b9: 0x0b, 0x8ba: 0x0b, 0x8bb: 0x0b, 0x8bc: 0x0b, 0x8bd: 0x0b, 0x8be: 0x0b, 0x8bf: 0x0b,
+       // Block 0x23, offset 0x8c0
+       0x8c0: 0x0b, 0x8c1: 0x0b, 0x8c2: 0x0b, 0x8c3: 0x0b, 0x8c4: 0x0b, 0x8c5: 0x0b, 0x8c6: 0x0b, 0x8c7: 0x0b,
+       0x8c8: 0x0b, 0x8c9: 0x0b, 0x8ca: 0x0b, 0x8cb: 0x0b, 0x8cc: 0x0b, 0x8cd: 0x0b, 0x8ce: 0x0b, 0x8cf: 0x0b,
+}
+
+// idnaSparseOffset: 276 entries, 552 bytes
+var idnaSparseOffset = []uint16{0x0, 0x8, 0x19, 0x25, 0x27, 0x2c, 0x33, 0x3e, 0x4a, 0x4e, 0x5d, 0x62, 0x6c, 0x78, 0x86, 0x8b, 0x94, 0xa4, 0xb2, 0xbe, 0xca, 0xdb, 0xe5, 0xec, 0xf9, 0x10a, 0x111, 0x11c, 0x12b, 0x139, 0x143, 0x145, 0x14a, 0x14d, 0x150, 0x152, 0x15e, 0x169, 0x171, 0x177, 0x17d, 0x182, 0x187, 0x18a, 0x18e, 0x194, 0x199, 0x1a5, 0x1af, 0x1b5, 0x1c6, 0x1d0, 0x1d3, 0x1db, 0x1de, 0x1eb, 0x1f3, 0x1f7, 0x1fe, 0x206, 0x216, 0x222, 0x224, 0x22e, 0x23a, 0x246, 0x252, 0x25a, 0x25f, 0x269, 0x27a, 0x27e, 0x289, 0x28d, 0x296, 0x29e, 0x2a4, 0x2a9, 0x2ac, 0x2b0, 0x2b6, 0x2ba, 0x2be, 0x2c2, 0x2c7, 0x2cd, 0x2d5, 0x2dc, 0x2e7, 0x2f1, 0x2f5, 0x2f8, 0x2fe, 0x302, 0x304, 0x307, 0x309, 0x30c, 0x316, 0x319, 0x328, 0x32c, 0x331, 0x334, 0x338, 0x33d, 0x342, 0x348, 0x34e, 0x35d, 0x363, 0x367, 0x376, 0x37b, 0x383, 0x38d, 0x398, 0x3a0, 0x3b1, 0x3ba, 0x3ca, 0x3d7, 0x3e1, 0x3e6, 0x3f3, 0x3f7, 0x3fc, 0x3fe, 0x402, 0x404, 0x408, 0x411, 0x417, 0x41b, 0x42b, 0x435, 0x43a, 0x43d, 0x443, 0x44a, 0x44f, 0x453, 0x459, 0x45e, 0x467, 0x46c, 0x472, 0x479, 0x480, 0x487, 0x48b, 0x490, 0x493, 0x498, 0x4a4, 0x4aa, 0x4af, 0x4b6, 0x4be, 0x4c3, 0x4c7, 0x4d7, 0x4de, 0x4e2, 0x4e6, 0x4ed, 0x4ef, 0x4f2, 0x4f5, 0x4f9, 0x502, 0x506, 0x50e, 0x516, 0x51c, 0x525, 0x531, 0x538, 0x541, 0x54b, 0x552, 0x560, 0x56d, 0x57a, 0x583, 0x587, 0x596, 0x59e, 0x5a9, 0x5b2, 0x5b8, 0x5c0, 0x5c9, 0x5d3, 0x5d6, 0x5e2, 0x5eb, 0x5ee, 0x5f3, 0x5fe, 0x607, 0x613, 0x616, 0x620, 0x629, 0x635, 0x642, 0x64f, 0x65d, 0x664, 0x667, 0x66c, 0x66f, 0x672, 0x675, 0x67c, 0x683, 0x687, 0x692, 0x695, 0x698, 0x69b, 0x6a1, 0x6a6, 0x6aa, 0x6ad, 0x6b0, 0x6b3, 0x6b6, 0x6b9, 0x6be, 0x6c8, 0x6cb, 0x6cf, 0x6de, 0x6ea, 0x6ee, 0x6f3, 0x6f7, 0x6fc, 0x700, 0x705, 0x70e, 0x719, 0x71f, 0x727, 0x72a, 0x72d, 0x731, 0x735, 0x73b, 0x741, 0x746, 0x749, 0x759, 0x760, 0x763, 0x766, 0x76a, 0x770, 0x775, 0x77a, 0x782, 0x787, 0x78b, 0x78f, 0x792, 0x795, 0x799, 0x79d, 0x7a0, 0x7b0, 0x7c1, 0x7c6, 0x7c8, 0x7ca}
+
+// idnaSparseValues: 1997 entries, 7988 bytes
+var idnaSparseValues = [1997]valueRange{
+       // Block 0x0, offset 0x0
+       {value: 0x0000, lo: 0x07},
+       {value: 0xe105, lo: 0x80, hi: 0x96},
+       {value: 0x0018, lo: 0x97, hi: 0x97},
+       {value: 0xe105, lo: 0x98, hi: 0x9e},
+       {value: 0x001f, lo: 0x9f, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xb6},
+       {value: 0x0018, lo: 0xb7, hi: 0xb7},
+       {value: 0x0008, lo: 0xb8, hi: 0xbf},
+       // Block 0x1, offset 0x8
+       {value: 0x0000, lo: 0x10},
+       {value: 0x0008, lo: 0x80, hi: 0x80},
+       {value: 0xe01d, lo: 0x81, hi: 0x81},
+       {value: 0x0008, lo: 0x82, hi: 0x82},
+       {value: 0x0335, lo: 0x83, hi: 0x83},
+       {value: 0x034d, lo: 0x84, hi: 0x84},
+       {value: 0x0365, lo: 0x85, hi: 0x85},
+       {value: 0xe00d, lo: 0x86, hi: 0x86},
+       {value: 0x0008, lo: 0x87, hi: 0x87},
+       {value: 0xe00d, lo: 0x88, hi: 0x88},
+       {value: 0x0008, lo: 0x89, hi: 0x89},
+       {value: 0xe00d, lo: 0x8a, hi: 0x8a},
+       {value: 0x0008, lo: 0x8b, hi: 0x8b},
+       {value: 0xe00d, lo: 0x8c, hi: 0x8c},
+       {value: 0x0008, lo: 0x8d, hi: 0x8d},
+       {value: 0xe00d, lo: 0x8e, hi: 0x8e},
+       {value: 0x0008, lo: 0x8f, hi: 0xbf},
+       // Block 0x2, offset 0x19
+       {value: 0x0000, lo: 0x0b},
+       {value: 0x0008, lo: 0x80, hi: 0xaf},
+       {value: 0x0249, lo: 0xb0, hi: 0xb0},
+       {value: 0x037d, lo: 0xb1, hi: 0xb1},
+       {value: 0x0259, lo: 0xb2, hi: 0xb2},
+       {value: 0x0269, lo: 0xb3, hi: 0xb3},
+       {value: 0x034d, lo: 0xb4, hi: 0xb4},
+       {value: 0x0395, lo: 0xb5, hi: 0xb5},
+       {value: 0xe1bd, lo: 0xb6, hi: 0xb6},
+       {value: 0x0279, lo: 0xb7, hi: 0xb7},
+       {value: 0x0289, lo: 0xb8, hi: 0xb8},
+       {value: 0x0008, lo: 0xb9, hi: 0xbf},
+       // Block 0x3, offset 0x25
+       {value: 0x0000, lo: 0x01},
+       {value: 0x3308, lo: 0x80, hi: 0xbf},
+       // Block 0x4, offset 0x27
+       {value: 0x0000, lo: 0x04},
+       {value: 0x03f5, lo: 0x80, hi: 0x8f},
+       {value: 0xe105, lo: 0x90, hi: 0x9f},
+       {value: 0x049d, lo: 0xa0, hi: 0xaf},
+       {value: 0x0008, lo: 0xb0, hi: 0xbf},
+       // Block 0x5, offset 0x2c
+       {value: 0x0000, lo: 0x06},
+       {value: 0xe185, lo: 0x80, hi: 0x8f},
+       {value: 0x0545, lo: 0x90, hi: 0x96},
+       {value: 0x0040, lo: 0x97, hi: 0x98},
+       {value: 0x0008, lo: 0x99, hi: 0x99},
+       {value: 0x0018, lo: 0x9a, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xbf},
+       // Block 0x6, offset 0x33
+       {value: 0x0000, lo: 0x0a},
+       {value: 0x0008, lo: 0x80, hi: 0x86},
+       {value: 0x0401, lo: 0x87, hi: 0x87},
+       {value: 0x0008, lo: 0x88, hi: 0x88},
+       {value: 0x0018, lo: 0x89, hi: 0x8a},
+       {value: 0x0040, lo: 0x8b, hi: 0x8c},
+       {value: 0x0018, lo: 0x8d, hi: 0x8f},
+       {value: 0x0040, lo: 0x90, hi: 0x90},
+       {value: 0x3308, lo: 0x91, hi: 0xbd},
+       {value: 0x0818, lo: 0xbe, hi: 0xbe},
+       {value: 0x3308, lo: 0xbf, hi: 0xbf},
+       // Block 0x7, offset 0x3e
+       {value: 0x0000, lo: 0x0b},
+       {value: 0x0818, lo: 0x80, hi: 0x80},
+       {value: 0x3308, lo: 0x81, hi: 0x82},
+       {value: 0x0818, lo: 0x83, hi: 0x83},
+       {value: 0x3308, lo: 0x84, hi: 0x85},
+       {value: 0x0818, lo: 0x86, hi: 0x86},
+       {value: 0x3308, lo: 0x87, hi: 0x87},
+       {value: 0x0040, lo: 0x88, hi: 0x8f},
+       {value: 0x0808, lo: 0x90, hi: 0xaa},
+       {value: 0x0040, lo: 0xab, hi: 0xae},
+       {value: 0x0808, lo: 0xaf, hi: 0xb4},
+       {value: 0x0040, lo: 0xb5, hi: 0xbf},
+       // Block 0x8, offset 0x4a
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0a08, lo: 0x80, hi: 0x87},
+       {value: 0x0c08, lo: 0x88, hi: 0x99},
+       {value: 0x0a08, lo: 0x9a, hi: 0xbf},
+       // Block 0x9, offset 0x4e
+       {value: 0x0000, lo: 0x0e},
+       {value: 0x3308, lo: 0x80, hi: 0x8a},
+       {value: 0x0040, lo: 0x8b, hi: 0x8c},
+       {value: 0x0c08, lo: 0x8d, hi: 0x8d},
+       {value: 0x0a08, lo: 0x8e, hi: 0x98},
+       {value: 0x0c08, lo: 0x99, hi: 0x9b},
+       {value: 0x0a08, lo: 0x9c, hi: 0xaa},
+       {value: 0x0c08, lo: 0xab, hi: 0xac},
+       {value: 0x0a08, lo: 0xad, hi: 0xb0},
+       {value: 0x0c08, lo: 0xb1, hi: 0xb1},
+       {value: 0x0a08, lo: 0xb2, hi: 0xb2},
+       {value: 0x0c08, lo: 0xb3, hi: 0xb4},
+       {value: 0x0a08, lo: 0xb5, hi: 0xb7},
+       {value: 0x0c08, lo: 0xb8, hi: 0xb9},
+       {value: 0x0a08, lo: 0xba, hi: 0xbf},
+       // Block 0xa, offset 0x5d
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0808, lo: 0x80, hi: 0xa5},
+       {value: 0x3308, lo: 0xa6, hi: 0xb0},
+       {value: 0x0808, lo: 0xb1, hi: 0xb1},
+       {value: 0x0040, lo: 0xb2, hi: 0xbf},
+       // Block 0xb, offset 0x62
+       {value: 0x0000, lo: 0x09},
+       {value: 0x0808, lo: 0x80, hi: 0x89},
+       {value: 0x0a08, lo: 0x8a, hi: 0xaa},
+       {value: 0x3308, lo: 0xab, hi: 0xb3},
+       {value: 0x0808, lo: 0xb4, hi: 0xb5},
+       {value: 0x0018, lo: 0xb6, hi: 0xb9},
+       {value: 0x0818, lo: 0xba, hi: 0xba},
+       {value: 0x0040, lo: 0xbb, hi: 0xbc},
+       {value: 0x3308, lo: 0xbd, hi: 0xbd},
+       {value: 0x0818, lo: 0xbe, hi: 0xbf},
+       // Block 0xc, offset 0x6c
+       {value: 0x0000, lo: 0x0b},
+       {value: 0x0808, lo: 0x80, hi: 0x95},
+       {value: 0x3308, lo: 0x96, hi: 0x99},
+       {value: 0x0808, lo: 0x9a, hi: 0x9a},
+       {value: 0x3308, lo: 0x9b, hi: 0xa3},
+       {value: 0x0808, lo: 0xa4, hi: 0xa4},
+       {value: 0x3308, lo: 0xa5, hi: 0xa7},
+       {value: 0x0808, lo: 0xa8, hi: 0xa8},
+       {value: 0x3308, lo: 0xa9, hi: 0xad},
+       {value: 0x0040, lo: 0xae, hi: 0xaf},
+       {value: 0x0818, lo: 0xb0, hi: 0xbe},
+       {value: 0x0040, lo: 0xbf, hi: 0xbf},
+       // Block 0xd, offset 0x78
+       {value: 0x0000, lo: 0x0d},
+       {value: 0x0040, lo: 0x80, hi: 0x9f},
+       {value: 0x0a08, lo: 0xa0, hi: 0xa9},
+       {value: 0x0c08, lo: 0xaa, hi: 0xac},
+       {value: 0x0808, lo: 0xad, hi: 0xad},
+       {value: 0x0c08, lo: 0xae, hi: 0xae},
+       {value: 0x0a08, lo: 0xaf, hi: 0xb0},
+       {value: 0x0c08, lo: 0xb1, hi: 0xb2},
+       {value: 0x0a08, lo: 0xb3, hi: 0xb4},
+       {value: 0x0040, lo: 0xb5, hi: 0xb5},
+       {value: 0x0a08, lo: 0xb6, hi: 0xb8},
+       {value: 0x0c08, lo: 0xb9, hi: 0xb9},
+       {value: 0x0a08, lo: 0xba, hi: 0xbd},
+       {value: 0x0040, lo: 0xbe, hi: 0xbf},
+       // Block 0xe, offset 0x86
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0040, lo: 0x80, hi: 0x92},
+       {value: 0x3308, lo: 0x93, hi: 0xa1},
+       {value: 0x0840, lo: 0xa2, hi: 0xa2},
+       {value: 0x3308, lo: 0xa3, hi: 0xbf},
+       // Block 0xf, offset 0x8b
+       {value: 0x0000, lo: 0x08},
+       {value: 0x3308, lo: 0x80, hi: 0x82},
+       {value: 0x3008, lo: 0x83, hi: 0x83},
+       {value: 0x0008, lo: 0x84, hi: 0xb9},
+       {value: 0x3308, lo: 0xba, hi: 0xba},
+       {value: 0x3008, lo: 0xbb, hi: 0xbb},
+       {value: 0x3308, lo: 0xbc, hi: 0xbc},
+       {value: 0x0008, lo: 0xbd, hi: 0xbd},
+       {value: 0x3008, lo: 0xbe, hi: 0xbf},
+       // Block 0x10, offset 0x94
+       {value: 0x0000, lo: 0x0f},
+       {value: 0x3308, lo: 0x80, hi: 0x80},
+       {value: 0x3008, lo: 0x81, hi: 0x82},
+       {value: 0x0040, lo: 0x83, hi: 0x85},
+       {value: 0x3008, lo: 0x86, hi: 0x88},
+       {value: 0x0040, lo: 0x89, hi: 0x89},
+       {value: 0x3008, lo: 0x8a, hi: 0x8c},
+       {value: 0x3b08, lo: 0x8d, hi: 0x8d},
+       {value: 0x0040, lo: 0x8e, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x90},
+       {value: 0x0040, lo: 0x91, hi: 0x96},
+       {value: 0x3008, lo: 0x97, hi: 0x97},
+       {value: 0x0040, lo: 0x98, hi: 0xa5},
+       {value: 0x0008, lo: 0xa6, hi: 0xaf},
+       {value: 0x0018, lo: 0xb0, hi: 0xba},
+       {value: 0x0040, lo: 0xbb, hi: 0xbf},
+       // Block 0x11, offset 0xa4
+       {value: 0x0000, lo: 0x0d},
+       {value: 0x3308, lo: 0x80, hi: 0x80},
+       {value: 0x3008, lo: 0x81, hi: 0x83},
+       {value: 0x3308, lo: 0x84, hi: 0x84},
+       {value: 0x0008, lo: 0x85, hi: 0x8c},
+       {value: 0x0040, lo: 0x8d, hi: 0x8d},
+       {value: 0x0008, lo: 0x8e, hi: 0x90},
+       {value: 0x0040, lo: 0x91, hi: 0x91},
+       {value: 0x0008, lo: 0x92, hi: 0xa8},
+       {value: 0x0040, lo: 0xa9, hi: 0xa9},
+       {value: 0x0008, lo: 0xaa, hi: 0xb9},
+       {value: 0x0040, lo: 0xba, hi: 0xbc},
+       {value: 0x0008, lo: 0xbd, hi: 0xbd},
+       {value: 0x3308, lo: 0xbe, hi: 0xbf},
+       // Block 0x12, offset 0xb2
+       {value: 0x0000, lo: 0x0b},
+       {value: 0x3308, lo: 0x80, hi: 0x81},
+       {value: 0x3008, lo: 0x82, hi: 0x83},
+       {value: 0x0040, lo: 0x84, hi: 0x84},
+       {value: 0x0008, lo: 0x85, hi: 0x8c},
+       {value: 0x0040, lo: 0x8d, hi: 0x8d},
+       {value: 0x0008, lo: 0x8e, hi: 0x90},
+       {value: 0x0040, lo: 0x91, hi: 0x91},
+       {value: 0x0008, lo: 0x92, hi: 0xba},
+       {value: 0x3b08, lo: 0xbb, hi: 0xbc},
+       {value: 0x0008, lo: 0xbd, hi: 0xbd},
+       {value: 0x3008, lo: 0xbe, hi: 0xbf},
+       // Block 0x13, offset 0xbe
+       {value: 0x0000, lo: 0x0b},
+       {value: 0x0040, lo: 0x80, hi: 0x81},
+       {value: 0x3008, lo: 0x82, hi: 0x83},
+       {value: 0x0040, lo: 0x84, hi: 0x84},
+       {value: 0x0008, lo: 0x85, hi: 0x96},
+       {value: 0x0040, lo: 0x97, hi: 0x99},
+       {value: 0x0008, lo: 0x9a, hi: 0xb1},
+       {value: 0x0040, lo: 0xb2, hi: 0xb2},
+       {value: 0x0008, lo: 0xb3, hi: 0xbb},
+       {value: 0x0040, lo: 0xbc, hi: 0xbc},
+       {value: 0x0008, lo: 0xbd, hi: 0xbd},
+       {value: 0x0040, lo: 0xbe, hi: 0xbf},
+       // Block 0x14, offset 0xca
+       {value: 0x0000, lo: 0x10},
+       {value: 0x0008, lo: 0x80, hi: 0x86},
+       {value: 0x0040, lo: 0x87, hi: 0x89},
+       {value: 0x3b08, lo: 0x8a, hi: 0x8a},
+       {value: 0x0040, lo: 0x8b, hi: 0x8e},
+       {value: 0x3008, lo: 0x8f, hi: 0x91},
+       {value: 0x3308, lo: 0x92, hi: 0x94},
+       {value: 0x0040, lo: 0x95, hi: 0x95},
+       {value: 0x3308, lo: 0x96, hi: 0x96},
+       {value: 0x0040, lo: 0x97, hi: 0x97},
+       {value: 0x3008, lo: 0x98, hi: 0x9f},
+       {value: 0x0040, lo: 0xa0, hi: 0xa5},
+       {value: 0x0008, lo: 0xa6, hi: 0xaf},
+       {value: 0x0040, lo: 0xb0, hi: 0xb1},
+       {value: 0x3008, lo: 0xb2, hi: 0xb3},
+       {value: 0x0018, lo: 0xb4, hi: 0xb4},
+       {value: 0x0040, lo: 0xb5, hi: 0xbf},
+       // Block 0x15, offset 0xdb
+       {value: 0x0000, lo: 0x09},
+       {value: 0x0040, lo: 0x80, hi: 0x80},
+       {value: 0x0008, lo: 0x81, hi: 0xb0},
+       {value: 0x3308, lo: 0xb1, hi: 0xb1},
+       {value: 0x0008, lo: 0xb2, hi: 0xb2},
+       {value: 0x08f1, lo: 0xb3, hi: 0xb3},
+       {value: 0x3308, lo: 0xb4, hi: 0xb9},
+       {value: 0x3b08, lo: 0xba, hi: 0xba},
+       {value: 0x0040, lo: 0xbb, hi: 0xbe},
+       {value: 0x0018, lo: 0xbf, hi: 0xbf},
+       // Block 0x16, offset 0xe5
+       {value: 0x0000, lo: 0x06},
+       {value: 0x0008, lo: 0x80, hi: 0x86},
+       {value: 0x3308, lo: 0x87, hi: 0x8e},
+       {value: 0x0018, lo: 0x8f, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x99},
+       {value: 0x0018, lo: 0x9a, hi: 0x9b},
+       {value: 0x0040, lo: 0x9c, hi: 0xbf},
+       // Block 0x17, offset 0xec
+       {value: 0x0000, lo: 0x0c},
+       {value: 0x0008, lo: 0x80, hi: 0x84},
+       {value: 0x0040, lo: 0x85, hi: 0x85},
+       {value: 0x0008, lo: 0x86, hi: 0x86},
+       {value: 0x0040, lo: 0x87, hi: 0x87},
+       {value: 0x3308, lo: 0x88, hi: 0x8d},
+       {value: 0x0040, lo: 0x8e, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x99},
+       {value: 0x0040, lo: 0x9a, hi: 0x9b},
+       {value: 0x0961, lo: 0x9c, hi: 0x9c},
+       {value: 0x0999, lo: 0x9d, hi: 0x9d},
+       {value: 0x0008, lo: 0x9e, hi: 0x9f},
+       {value: 0x0040, lo: 0xa0, hi: 0xbf},
+       // Block 0x18, offset 0xf9
+       {value: 0x0000, lo: 0x10},
+       {value: 0x0008, lo: 0x80, hi: 0x80},
+       {value: 0x0018, lo: 0x81, hi: 0x8a},
+       {value: 0x0008, lo: 0x8b, hi: 0x8b},
+       {value: 0xe03d, lo: 0x8c, hi: 0x8c},
+       {value: 0x0018, lo: 0x8d, hi: 0x97},
+       {value: 0x3308, lo: 0x98, hi: 0x99},
+       {value: 0x0018, lo: 0x9a, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xa9},
+       {value: 0x0018, lo: 0xaa, hi: 0xb4},
+       {value: 0x3308, lo: 0xb5, hi: 0xb5},
+       {value: 0x0018, lo: 0xb6, hi: 0xb6},
+       {value: 0x3308, lo: 0xb7, hi: 0xb7},
+       {value: 0x0018, lo: 0xb8, hi: 0xb8},
+       {value: 0x3308, lo: 0xb9, hi: 0xb9},
+       {value: 0x0018, lo: 0xba, hi: 0xbd},
+       {value: 0x3008, lo: 0xbe, hi: 0xbf},
+       // Block 0x19, offset 0x10a
+       {value: 0x0000, lo: 0x06},
+       {value: 0x0018, lo: 0x80, hi: 0x85},
+       {value: 0x3308, lo: 0x86, hi: 0x86},
+       {value: 0x0018, lo: 0x87, hi: 0x8c},
+       {value: 0x0040, lo: 0x8d, hi: 0x8d},
+       {value: 0x0018, lo: 0x8e, hi: 0x9a},
+       {value: 0x0040, lo: 0x9b, hi: 0xbf},
+       // Block 0x1a, offset 0x111
+       {value: 0x0000, lo: 0x0a},
+       {value: 0x0008, lo: 0x80, hi: 0xaa},
+       {value: 0x3008, lo: 0xab, hi: 0xac},
+       {value: 0x3308, lo: 0xad, hi: 0xb0},
+       {value: 0x3008, lo: 0xb1, hi: 0xb1},
+       {value: 0x3308, lo: 0xb2, hi: 0xb7},
+       {value: 0x3008, lo: 0xb8, hi: 0xb8},
+       {value: 0x3b08, lo: 0xb9, hi: 0xba},
+       {value: 0x3008, lo: 0xbb, hi: 0xbc},
+       {value: 0x3308, lo: 0xbd, hi: 0xbe},
+       {value: 0x0008, lo: 0xbf, hi: 0xbf},
+       // Block 0x1b, offset 0x11c
+       {value: 0x0000, lo: 0x0e},
+       {value: 0x0008, lo: 0x80, hi: 0x89},
+       {value: 0x0018, lo: 0x8a, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x95},
+       {value: 0x3008, lo: 0x96, hi: 0x97},
+       {value: 0x3308, lo: 0x98, hi: 0x99},
+       {value: 0x0008, lo: 0x9a, hi: 0x9d},
+       {value: 0x3308, lo: 0x9e, hi: 0xa0},
+       {value: 0x0008, lo: 0xa1, hi: 0xa1},
+       {value: 0x3008, lo: 0xa2, hi: 0xa4},
+       {value: 0x0008, lo: 0xa5, hi: 0xa6},
+       {value: 0x3008, lo: 0xa7, hi: 0xad},
+       {value: 0x0008, lo: 0xae, hi: 0xb0},
+       {value: 0x3308, lo: 0xb1, hi: 0xb4},
+       {value: 0x0008, lo: 0xb5, hi: 0xbf},
+       // Block 0x1c, offset 0x12b
+       {value: 0x0000, lo: 0x0d},
+       {value: 0x0008, lo: 0x80, hi: 0x81},
+       {value: 0x3308, lo: 0x82, hi: 0x82},
+       {value: 0x3008, lo: 0x83, hi: 0x84},
+       {value: 0x3308, lo: 0x85, hi: 0x86},
+       {value: 0x3008, lo: 0x87, hi: 0x8c},
+       {value: 0x3308, lo: 0x8d, hi: 0x8d},
+       {value: 0x0008, lo: 0x8e, hi: 0x8e},
+       {value: 0x3008, lo: 0x8f, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x99},
+       {value: 0x3008, lo: 0x9a, hi: 0x9c},
+       {value: 0x3308, lo: 0x9d, hi: 0x9d},
+       {value: 0x0018, lo: 0x9e, hi: 0x9f},
+       {value: 0x0040, lo: 0xa0, hi: 0xbf},
+       // Block 0x1d, offset 0x139
+       {value: 0x0000, lo: 0x09},
+       {value: 0x0040, lo: 0x80, hi: 0x86},
+       {value: 0x055d, lo: 0x87, hi: 0x87},
+       {value: 0x0040, lo: 0x88, hi: 0x8c},
+       {value: 0x055d, lo: 0x8d, hi: 0x8d},
+       {value: 0x0040, lo: 0x8e, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0xba},
+       {value: 0x0018, lo: 0xbb, hi: 0xbb},
+       {value: 0xe105, lo: 0xbc, hi: 0xbc},
+       {value: 0x0008, lo: 0xbd, hi: 0xbf},
+       // Block 0x1e, offset 0x143
+       {value: 0x0000, lo: 0x01},
+       {value: 0x0018, lo: 0x80, hi: 0xbf},
+       // Block 0x1f, offset 0x145
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0018, lo: 0x80, hi: 0x9e},
+       {value: 0x0040, lo: 0x9f, hi: 0xa0},
+       {value: 0x2018, lo: 0xa1, hi: 0xb5},
+       {value: 0x0018, lo: 0xb6, hi: 0xbf},
+       // Block 0x20, offset 0x14a
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0018, lo: 0x80, hi: 0xa7},
+       {value: 0x2018, lo: 0xa8, hi: 0xbf},
+       // Block 0x21, offset 0x14d
+       {value: 0x0000, lo: 0x02},
+       {value: 0x2018, lo: 0x80, hi: 0x82},
+       {value: 0x0018, lo: 0x83, hi: 0xbf},
+       // Block 0x22, offset 0x150
+       {value: 0x0000, lo: 0x01},
+       {value: 0x0008, lo: 0x80, hi: 0xbf},
+       // Block 0x23, offset 0x152
+       {value: 0x0000, lo: 0x0b},
+       {value: 0x0008, lo: 0x80, hi: 0x88},
+       {value: 0x0040, lo: 0x89, hi: 0x89},
+       {value: 0x0008, lo: 0x8a, hi: 0x8d},
+       {value: 0x0040, lo: 0x8e, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x96},
+       {value: 0x0040, lo: 0x97, hi: 0x97},
+       {value: 0x0008, lo: 0x98, hi: 0x98},
+       {value: 0x0040, lo: 0x99, hi: 0x99},
+       {value: 0x0008, lo: 0x9a, hi: 0x9d},
+       {value: 0x0040, lo: 0x9e, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xbf},
+       // Block 0x24, offset 0x15e
+       {value: 0x0000, lo: 0x0a},
+       {value: 0x0008, lo: 0x80, hi: 0x88},
+       {value: 0x0040, lo: 0x89, hi: 0x89},
+       {value: 0x0008, lo: 0x8a, hi: 0x8d},
+       {value: 0x0040, lo: 0x8e, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0xb0},
+       {value: 0x0040, lo: 0xb1, hi: 0xb1},
+       {value: 0x0008, lo: 0xb2, hi: 0xb5},
+       {value: 0x0040, lo: 0xb6, hi: 0xb7},
+       {value: 0x0008, lo: 0xb8, hi: 0xbe},
+       {value: 0x0040, lo: 0xbf, hi: 0xbf},
+       // Block 0x25, offset 0x169
+       {value: 0x0000, lo: 0x07},
+       {value: 0x0008, lo: 0x80, hi: 0x80},
+       {value: 0x0040, lo: 0x81, hi: 0x81},
+       {value: 0x0008, lo: 0x82, hi: 0x85},
+       {value: 0x0040, lo: 0x86, hi: 0x87},
+       {value: 0x0008, lo: 0x88, hi: 0x96},
+       {value: 0x0040, lo: 0x97, hi: 0x97},
+       {value: 0x0008, lo: 0x98, hi: 0xbf},
+       // Block 0x26, offset 0x171
+       {value: 0x0000, lo: 0x05},
+       {value: 0x0008, lo: 0x80, hi: 0x90},
+       {value: 0x0040, lo: 0x91, hi: 0x91},
+       {value: 0x0008, lo: 0x92, hi: 0x95},
+       {value: 0x0040, lo: 0x96, hi: 0x97},
+       {value: 0x0008, lo: 0x98, hi: 0xbf},
+       // Block 0x27, offset 0x177
+       {value: 0x0000, lo: 0x05},
+       {value: 0x0008, lo: 0x80, hi: 0x9a},
+       {value: 0x0040, lo: 0x9b, hi: 0x9c},
+       {value: 0x3308, lo: 0x9d, hi: 0x9f},
+       {value: 0x0018, lo: 0xa0, hi: 0xbc},
+       {value: 0x0040, lo: 0xbd, hi: 0xbf},
+       // Block 0x28, offset 0x17d
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0008, lo: 0x80, hi: 0x8f},
+       {value: 0x0018, lo: 0x90, hi: 0x99},
+       {value: 0x0040, lo: 0x9a, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xbf},
+       // Block 0x29, offset 0x182
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0008, lo: 0x80, hi: 0xb5},
+       {value: 0x0040, lo: 0xb6, hi: 0xb7},
+       {value: 0xe045, lo: 0xb8, hi: 0xbd},
+       {value: 0x0040, lo: 0xbe, hi: 0xbf},
+       // Block 0x2a, offset 0x187
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0018, lo: 0x80, hi: 0x80},
+       {value: 0x0008, lo: 0x81, hi: 0xbf},
+       // Block 0x2b, offset 0x18a
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0008, lo: 0x80, hi: 0xac},
+       {value: 0x0018, lo: 0xad, hi: 0xae},
+       {value: 0x0008, lo: 0xaf, hi: 0xbf},
+       // Block 0x2c, offset 0x18e
+       {value: 0x0000, lo: 0x05},
+       {value: 0x0040, lo: 0x80, hi: 0x80},
+       {value: 0x0008, lo: 0x81, hi: 0x9a},
+       {value: 0x0018, lo: 0x9b, hi: 0x9c},
+       {value: 0x0040, lo: 0x9d, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xbf},
+       // Block 0x2d, offset 0x194
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0008, lo: 0x80, hi: 0xaa},
+       {value: 0x0018, lo: 0xab, hi: 0xb0},
+       {value: 0x0008, lo: 0xb1, hi: 0xb8},
+       {value: 0x0040, lo: 0xb9, hi: 0xbf},
+       // Block 0x2e, offset 0x199
+       {value: 0x0000, lo: 0x0b},
+       {value: 0x0008, lo: 0x80, hi: 0x8c},
+       {value: 0x0040, lo: 0x8d, hi: 0x8d},
+       {value: 0x0008, lo: 0x8e, hi: 0x91},
+       {value: 0x3308, lo: 0x92, hi: 0x93},
+       {value: 0x3b08, lo: 0x94, hi: 0x94},
+       {value: 0x0040, lo: 0x95, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xb1},
+       {value: 0x3308, lo: 0xb2, hi: 0xb3},
+       {value: 0x3b08, lo: 0xb4, hi: 0xb4},
+       {value: 0x0018, lo: 0xb5, hi: 0xb6},
+       {value: 0x0040, lo: 0xb7, hi: 0xbf},
+       // Block 0x2f, offset 0x1a5
+       {value: 0x0000, lo: 0x09},
+       {value: 0x0008, lo: 0x80, hi: 0x91},
+       {value: 0x3308, lo: 0x92, hi: 0x93},
+       {value: 0x0040, lo: 0x94, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xac},
+       {value: 0x0040, lo: 0xad, hi: 0xad},
+       {value: 0x0008, lo: 0xae, hi: 0xb0},
+       {value: 0x0040, lo: 0xb1, hi: 0xb1},
+       {value: 0x3308, lo: 0xb2, hi: 0xb3},
+       {value: 0x0040, lo: 0xb4, hi: 0xbf},
+       // Block 0x30, offset 0x1af
+       {value: 0x0000, lo: 0x05},
+       {value: 0x0008, lo: 0x80, hi: 0xb3},
+       {value: 0x3340, lo: 0xb4, hi: 0xb5},
+       {value: 0x3008, lo: 0xb6, hi: 0xb6},
+       {value: 0x3308, lo: 0xb7, hi: 0xbd},
+       {value: 0x3008, lo: 0xbe, hi: 0xbf},
+       // Block 0x31, offset 0x1b5
+       {value: 0x0000, lo: 0x10},
+       {value: 0x3008, lo: 0x80, hi: 0x85},
+       {value: 0x3308, lo: 0x86, hi: 0x86},
+       {value: 0x3008, lo: 0x87, hi: 0x88},
+       {value: 0x3308, lo: 0x89, hi: 0x91},
+       {value: 0x3b08, lo: 0x92, hi: 0x92},
+       {value: 0x3308, lo: 0x93, hi: 0x93},
+       {value: 0x0018, lo: 0x94, hi: 0x96},
+       {value: 0x0008, lo: 0x97, hi: 0x97},
+       {value: 0x0018, lo: 0x98, hi: 0x9b},
+       {value: 0x0008, lo: 0x9c, hi: 0x9c},
+       {value: 0x3308, lo: 0x9d, hi: 0x9d},
+       {value: 0x0040, lo: 0x9e, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xa9},
+       {value: 0x0040, lo: 0xaa, hi: 0xaf},
+       {value: 0x0018, lo: 0xb0, hi: 0xb9},
+       {value: 0x0040, lo: 0xba, hi: 0xbf},
+       // Block 0x32, offset 0x1c6
+       {value: 0x0000, lo: 0x09},
+       {value: 0x0018, lo: 0x80, hi: 0x85},
+       {value: 0x0040, lo: 0x86, hi: 0x86},
+       {value: 0x0218, lo: 0x87, hi: 0x87},
+       {value: 0x0018, lo: 0x88, hi: 0x8a},
+       {value: 0x33c0, lo: 0x8b, hi: 0x8d},
+       {value: 0x0040, lo: 0x8e, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x99},
+       {value: 0x0040, lo: 0x9a, hi: 0x9f},
+       {value: 0x0208, lo: 0xa0, hi: 0xbf},
+       // Block 0x33, offset 0x1d0
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0208, lo: 0x80, hi: 0xb8},
+       {value: 0x0040, lo: 0xb9, hi: 0xbf},
+       // Block 0x34, offset 0x1d3
+       {value: 0x0000, lo: 0x07},
+       {value: 0x0008, lo: 0x80, hi: 0x84},
+       {value: 0x3308, lo: 0x85, hi: 0x86},
+       {value: 0x0208, lo: 0x87, hi: 0xa8},
+       {value: 0x3308, lo: 0xa9, hi: 0xa9},
+       {value: 0x0208, lo: 0xaa, hi: 0xaa},
+       {value: 0x0040, lo: 0xab, hi: 0xaf},
+       {value: 0x0008, lo: 0xb0, hi: 0xbf},
+       // Block 0x35, offset 0x1db
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0008, lo: 0x80, hi: 0xb5},
+       {value: 0x0040, lo: 0xb6, hi: 0xbf},
+       // Block 0x36, offset 0x1de
+       {value: 0x0000, lo: 0x0c},
+       {value: 0x0008, lo: 0x80, hi: 0x9e},
+       {value: 0x0040, lo: 0x9f, hi: 0x9f},
+       {value: 0x3308, lo: 0xa0, hi: 0xa2},
+       {value: 0x3008, lo: 0xa3, hi: 0xa6},
+       {value: 0x3308, lo: 0xa7, hi: 0xa8},
+       {value: 0x3008, lo: 0xa9, hi: 0xab},
+       {value: 0x0040, lo: 0xac, hi: 0xaf},
+       {value: 0x3008, lo: 0xb0, hi: 0xb1},
+       {value: 0x3308, lo: 0xb2, hi: 0xb2},
+       {value: 0x3008, lo: 0xb3, hi: 0xb8},
+       {value: 0x3308, lo: 0xb9, hi: 0xbb},
+       {value: 0x0040, lo: 0xbc, hi: 0xbf},
+       // Block 0x37, offset 0x1eb
+       {value: 0x0000, lo: 0x07},
+       {value: 0x0018, lo: 0x80, hi: 0x80},
+       {value: 0x0040, lo: 0x81, hi: 0x83},
+       {value: 0x0018, lo: 0x84, hi: 0x85},
+       {value: 0x0008, lo: 0x86, hi: 0xad},
+       {value: 0x0040, lo: 0xae, hi: 0xaf},
+       {value: 0x0008, lo: 0xb0, hi: 0xb4},
+       {value: 0x0040, lo: 0xb5, hi: 0xbf},
+       // Block 0x38, offset 0x1f3
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0008, lo: 0x80, hi: 0xab},
+       {value: 0x0040, lo: 0xac, hi: 0xaf},
+       {value: 0x0008, lo: 0xb0, hi: 0xbf},
+       // Block 0x39, offset 0x1f7
+       {value: 0x0000, lo: 0x06},
+       {value: 0x0008, lo: 0x80, hi: 0x89},
+       {value: 0x0040, lo: 0x8a, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x99},
+       {value: 0x0028, lo: 0x9a, hi: 0x9a},
+       {value: 0x0040, lo: 0x9b, hi: 0x9d},
+       {value: 0x0018, lo: 0x9e, hi: 0xbf},
+       // Block 0x3a, offset 0x1fe
+       {value: 0x0000, lo: 0x07},
+       {value: 0x0008, lo: 0x80, hi: 0x96},
+       {value: 0x3308, lo: 0x97, hi: 0x98},
+       {value: 0x3008, lo: 0x99, hi: 0x9a},
+       {value: 0x3308, lo: 0x9b, hi: 0x9b},
+       {value: 0x0040, lo: 0x9c, hi: 0x9d},
+       {value: 0x0018, lo: 0x9e, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xbf},
+       // Block 0x3b, offset 0x206
+       {value: 0x0000, lo: 0x0f},
+       {value: 0x0008, lo: 0x80, hi: 0x94},
+       {value: 0x3008, lo: 0x95, hi: 0x95},
+       {value: 0x3308, lo: 0x96, hi: 0x96},
+       {value: 0x3008, lo: 0x97, hi: 0x97},
+       {value: 0x3308, lo: 0x98, hi: 0x9e},
+       {value: 0x0040, lo: 0x9f, hi: 0x9f},
+       {value: 0x3b08, lo: 0xa0, hi: 0xa0},
+       {value: 0x3008, lo: 0xa1, hi: 0xa1},
+       {value: 0x3308, lo: 0xa2, hi: 0xa2},
+       {value: 0x3008, lo: 0xa3, hi: 0xa4},
+       {value: 0x3308, lo: 0xa5, hi: 0xac},
+       {value: 0x3008, lo: 0xad, hi: 0xb2},
+       {value: 0x3308, lo: 0xb3, hi: 0xbc},
+       {value: 0x0040, lo: 0xbd, hi: 0xbe},
+       {value: 0x3308, lo: 0xbf, hi: 0xbf},
+       // Block 0x3c, offset 0x216
+       {value: 0x0000, lo: 0x0b},
+       {value: 0x0008, lo: 0x80, hi: 0x89},
+       {value: 0x0040, lo: 0x8a, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x99},
+       {value: 0x0040, lo: 0x9a, hi: 0x9f},
+       {value: 0x0018, lo: 0xa0, hi: 0xa6},
+       {value: 0x0008, lo: 0xa7, hi: 0xa7},
+       {value: 0x0018, lo: 0xa8, hi: 0xad},
+       {value: 0x0040, lo: 0xae, hi: 0xaf},
+       {value: 0x3308, lo: 0xb0, hi: 0xbd},
+       {value: 0x3318, lo: 0xbe, hi: 0xbe},
+       {value: 0x0040, lo: 0xbf, hi: 0xbf},
+       // Block 0x3d, offset 0x222
+       {value: 0x0000, lo: 0x01},
+       {value: 0x0040, lo: 0x80, hi: 0xbf},
+       // Block 0x3e, offset 0x224
+       {value: 0x0000, lo: 0x09},
+       {value: 0x3308, lo: 0x80, hi: 0x83},
+       {value: 0x3008, lo: 0x84, hi: 0x84},
+       {value: 0x0008, lo: 0x85, hi: 0xb3},
+       {value: 0x3308, lo: 0xb4, hi: 0xb4},
+       {value: 0x3008, lo: 0xb5, hi: 0xb5},
+       {value: 0x3308, lo: 0xb6, hi: 0xba},
+       {value: 0x3008, lo: 0xbb, hi: 0xbb},
+       {value: 0x3308, lo: 0xbc, hi: 0xbc},
+       {value: 0x3008, lo: 0xbd, hi: 0xbf},
+       // Block 0x3f, offset 0x22e
+       {value: 0x0000, lo: 0x0b},
+       {value: 0x3008, lo: 0x80, hi: 0x81},
+       {value: 0x3308, lo: 0x82, hi: 0x82},
+       {value: 0x3008, lo: 0x83, hi: 0x83},
+       {value: 0x3808, lo: 0x84, hi: 0x84},
+       {value: 0x0008, lo: 0x85, hi: 0x8b},
+       {value: 0x0040, lo: 0x8c, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x99},
+       {value: 0x0018, lo: 0x9a, hi: 0xaa},
+       {value: 0x3308, lo: 0xab, hi: 0xb3},
+       {value: 0x0018, lo: 0xb4, hi: 0xbc},
+       {value: 0x0040, lo: 0xbd, hi: 0xbf},
+       // Block 0x40, offset 0x23a
+       {value: 0x0000, lo: 0x0b},
+       {value: 0x3308, lo: 0x80, hi: 0x81},
+       {value: 0x3008, lo: 0x82, hi: 0x82},
+       {value: 0x0008, lo: 0x83, hi: 0xa0},
+       {value: 0x3008, lo: 0xa1, hi: 0xa1},
+       {value: 0x3308, lo: 0xa2, hi: 0xa5},
+       {value: 0x3008, lo: 0xa6, hi: 0xa7},
+       {value: 0x3308, lo: 0xa8, hi: 0xa9},
+       {value: 0x3808, lo: 0xaa, hi: 0xaa},
+       {value: 0x3b08, lo: 0xab, hi: 0xab},
+       {value: 0x3308, lo: 0xac, hi: 0xad},
+       {value: 0x0008, lo: 0xae, hi: 0xbf},
+       // Block 0x41, offset 0x246
+       {value: 0x0000, lo: 0x0b},
+       {value: 0x0008, lo: 0x80, hi: 0xa5},
+       {value: 0x3308, lo: 0xa6, hi: 0xa6},
+       {value: 0x3008, lo: 0xa7, hi: 0xa7},
+       {value: 0x3308, lo: 0xa8, hi: 0xa9},
+       {value: 0x3008, lo: 0xaa, hi: 0xac},
+       {value: 0x3308, lo: 0xad, hi: 0xad},
+       {value: 0x3008, lo: 0xae, hi: 0xae},
+       {value: 0x3308, lo: 0xaf, hi: 0xb1},
+       {value: 0x3808, lo: 0xb2, hi: 0xb3},
+       {value: 0x0040, lo: 0xb4, hi: 0xbb},
+       {value: 0x0018, lo: 0xbc, hi: 0xbf},
+       // Block 0x42, offset 0x252
+       {value: 0x0000, lo: 0x07},
+       {value: 0x0008, lo: 0x80, hi: 0xa3},
+       {value: 0x3008, lo: 0xa4, hi: 0xab},
+       {value: 0x3308, lo: 0xac, hi: 0xb3},
+       {value: 0x3008, lo: 0xb4, hi: 0xb5},
+       {value: 0x3308, lo: 0xb6, hi: 0xb7},
+       {value: 0x0040, lo: 0xb8, hi: 0xba},
+       {value: 0x0018, lo: 0xbb, hi: 0xbf},
+       // Block 0x43, offset 0x25a
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0008, lo: 0x80, hi: 0x89},
+       {value: 0x0040, lo: 0x8a, hi: 0x8c},
+       {value: 0x0008, lo: 0x8d, hi: 0xbd},
+       {value: 0x0018, lo: 0xbe, hi: 0xbf},
+       // Block 0x44, offset 0x25f
+       {value: 0x0000, lo: 0x09},
+       {value: 0x0e29, lo: 0x80, hi: 0x80},
+       {value: 0x0e41, lo: 0x81, hi: 0x81},
+       {value: 0x0e59, lo: 0x82, hi: 0x82},
+       {value: 0x0e71, lo: 0x83, hi: 0x83},
+       {value: 0x0e89, lo: 0x84, hi: 0x85},
+       {value: 0x0ea1, lo: 0x86, hi: 0x86},
+       {value: 0x0eb9, lo: 0x87, hi: 0x87},
+       {value: 0x057d, lo: 0x88, hi: 0x88},
+       {value: 0x0040, lo: 0x89, hi: 0xbf},
+       // Block 0x45, offset 0x269
+       {value: 0x0000, lo: 0x10},
+       {value: 0x0018, lo: 0x80, hi: 0x87},
+       {value: 0x0040, lo: 0x88, hi: 0x8f},
+       {value: 0x3308, lo: 0x90, hi: 0x92},
+       {value: 0x0018, lo: 0x93, hi: 0x93},
+       {value: 0x3308, lo: 0x94, hi: 0xa0},
+       {value: 0x3008, lo: 0xa1, hi: 0xa1},
+       {value: 0x3308, lo: 0xa2, hi: 0xa8},
+       {value: 0x0008, lo: 0xa9, hi: 0xac},
+       {value: 0x3308, lo: 0xad, hi: 0xad},
+       {value: 0x0008, lo: 0xae, hi: 0xb1},
+       {value: 0x3008, lo: 0xb2, hi: 0xb3},
+       {value: 0x3308, lo: 0xb4, hi: 0xb4},
+       {value: 0x0008, lo: 0xb5, hi: 0xb6},
+       {value: 0x3008, lo: 0xb7, hi: 0xb7},
+       {value: 0x3308, lo: 0xb8, hi: 0xb9},
+       {value: 0x0040, lo: 0xba, hi: 0xbf},
+       // Block 0x46, offset 0x27a
+       {value: 0x0000, lo: 0x03},
+       {value: 0x3308, lo: 0x80, hi: 0xb9},
+       {value: 0x0040, lo: 0xba, hi: 0xba},
+       {value: 0x3308, lo: 0xbb, hi: 0xbf},
+       // Block 0x47, offset 0x27e
+       {value: 0x0000, lo: 0x0a},
+       {value: 0x0008, lo: 0x80, hi: 0x87},
+       {value: 0xe045, lo: 0x88, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x95},
+       {value: 0x0040, lo: 0x96, hi: 0x97},
+       {value: 0xe045, lo: 0x98, hi: 0x9d},
+       {value: 0x0040, lo: 0x9e, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xa7},
+       {value: 0xe045, lo: 0xa8, hi: 0xaf},
+       {value: 0x0008, lo: 0xb0, hi: 0xb7},
+       {value: 0xe045, lo: 0xb8, hi: 0xbf},
+       // Block 0x48, offset 0x289
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0040, lo: 0x80, hi: 0x8f},
+       {value: 0x3318, lo: 0x90, hi: 0xb0},
+       {value: 0x0040, lo: 0xb1, hi: 0xbf},
+       // Block 0x49, offset 0x28d
+       {value: 0x0000, lo: 0x08},
+       {value: 0x0018, lo: 0x80, hi: 0x82},
+       {value: 0x0040, lo: 0x83, hi: 0x83},
+       {value: 0x0008, lo: 0x84, hi: 0x84},
+       {value: 0x0018, lo: 0x85, hi: 0x88},
+       {value: 0x24c1, lo: 0x89, hi: 0x89},
+       {value: 0x0018, lo: 0x8a, hi: 0x8b},
+       {value: 0x0040, lo: 0x8c, hi: 0x8f},
+       {value: 0x0018, lo: 0x90, hi: 0xbf},
+       // Block 0x4a, offset 0x296
+       {value: 0x0000, lo: 0x07},
+       {value: 0x0018, lo: 0x80, hi: 0xab},
+       {value: 0x24f1, lo: 0xac, hi: 0xac},
+       {value: 0x2529, lo: 0xad, hi: 0xad},
+       {value: 0x0018, lo: 0xae, hi: 0xae},
+       {value: 0x2579, lo: 0xaf, hi: 0xaf},
+       {value: 0x25b1, lo: 0xb0, hi: 0xb0},
+       {value: 0x0018, lo: 0xb1, hi: 0xbf},
+       // Block 0x4b, offset 0x29e
+       {value: 0x0000, lo: 0x05},
+       {value: 0x0018, lo: 0x80, hi: 0x9f},
+       {value: 0x0080, lo: 0xa0, hi: 0xa0},
+       {value: 0x0018, lo: 0xa1, hi: 0xad},
+       {value: 0x0080, lo: 0xae, hi: 0xaf},
+       {value: 0x0018, lo: 0xb0, hi: 0xbf},
+       // Block 0x4c, offset 0x2a4
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0018, lo: 0x80, hi: 0xa8},
+       {value: 0x09c5, lo: 0xa9, hi: 0xa9},
+       {value: 0x09e5, lo: 0xaa, hi: 0xaa},
+       {value: 0x0018, lo: 0xab, hi: 0xbf},
+       // Block 0x4d, offset 0x2a9
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0018, lo: 0x80, hi: 0xa6},
+       {value: 0x0040, lo: 0xa7, hi: 0xbf},
+       // Block 0x4e, offset 0x2ac
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0018, lo: 0x80, hi: 0x8b},
+       {value: 0x28c1, lo: 0x8c, hi: 0x8c},
+       {value: 0x0018, lo: 0x8d, hi: 0xbf},
+       // Block 0x4f, offset 0x2b0
+       {value: 0x0000, lo: 0x05},
+       {value: 0x0018, lo: 0x80, hi: 0xb3},
+       {value: 0x0e66, lo: 0xb4, hi: 0xb4},
+       {value: 0x292a, lo: 0xb5, hi: 0xb5},
+       {value: 0x0e86, lo: 0xb6, hi: 0xb6},
+       {value: 0x0018, lo: 0xb7, hi: 0xbf},
+       // Block 0x50, offset 0x2b6
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0018, lo: 0x80, hi: 0x9b},
+       {value: 0x2941, lo: 0x9c, hi: 0x9c},
+       {value: 0x0018, lo: 0x9d, hi: 0xbf},
+       // Block 0x51, offset 0x2ba
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0018, lo: 0x80, hi: 0xb3},
+       {value: 0x0040, lo: 0xb4, hi: 0xb5},
+       {value: 0x0018, lo: 0xb6, hi: 0xbf},
+       // Block 0x52, offset 0x2be
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0018, lo: 0x80, hi: 0x95},
+       {value: 0x0040, lo: 0x96, hi: 0x97},
+       {value: 0x0018, lo: 0x98, hi: 0xbf},
+       // Block 0x53, offset 0x2c2
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0018, lo: 0x80, hi: 0x88},
+       {value: 0x0040, lo: 0x89, hi: 0x89},
+       {value: 0x0018, lo: 0x8a, hi: 0xbe},
+       {value: 0x0040, lo: 0xbf, hi: 0xbf},
+       // Block 0x54, offset 0x2c7
+       {value: 0x0000, lo: 0x05},
+       {value: 0xe185, lo: 0x80, hi: 0x8f},
+       {value: 0x03f5, lo: 0x90, hi: 0x9f},
+       {value: 0x0ea5, lo: 0xa0, hi: 0xae},
+       {value: 0x0040, lo: 0xaf, hi: 0xaf},
+       {value: 0x0008, lo: 0xb0, hi: 0xbf},
+       // Block 0x55, offset 0x2cd
+       {value: 0x0000, lo: 0x07},
+       {value: 0x0008, lo: 0x80, hi: 0xa5},
+       {value: 0x0040, lo: 0xa6, hi: 0xa6},
+       {value: 0x0008, lo: 0xa7, hi: 0xa7},
+       {value: 0x0040, lo: 0xa8, hi: 0xac},
+       {value: 0x0008, lo: 0xad, hi: 0xad},
+       {value: 0x0040, lo: 0xae, hi: 0xaf},
+       {value: 0x0008, lo: 0xb0, hi: 0xbf},
+       // Block 0x56, offset 0x2d5
+       {value: 0x0000, lo: 0x06},
+       {value: 0x0008, lo: 0x80, hi: 0xa7},
+       {value: 0x0040, lo: 0xa8, hi: 0xae},
+       {value: 0xe075, lo: 0xaf, hi: 0xaf},
+       {value: 0x0018, lo: 0xb0, hi: 0xb0},
+       {value: 0x0040, lo: 0xb1, hi: 0xbe},
+       {value: 0x3b08, lo: 0xbf, hi: 0xbf},
+       // Block 0x57, offset 0x2dc
+       {value: 0x0000, lo: 0x0a},
+       {value: 0x0008, lo: 0x80, hi: 0x96},
+       {value: 0x0040, lo: 0x97, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xa6},
+       {value: 0x0040, lo: 0xa7, hi: 0xa7},
+       {value: 0x0008, lo: 0xa8, hi: 0xae},
+       {value: 0x0040, lo: 0xaf, hi: 0xaf},
+       {value: 0x0008, lo: 0xb0, hi: 0xb6},
+       {value: 0x0040, lo: 0xb7, hi: 0xb7},
+       {value: 0x0008, lo: 0xb8, hi: 0xbe},
+       {value: 0x0040, lo: 0xbf, hi: 0xbf},
+       // Block 0x58, offset 0x2e7
+       {value: 0x0000, lo: 0x09},
+       {value: 0x0008, lo: 0x80, hi: 0x86},
+       {value: 0x0040, lo: 0x87, hi: 0x87},
+       {value: 0x0008, lo: 0x88, hi: 0x8e},
+       {value: 0x0040, lo: 0x8f, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x96},
+       {value: 0x0040, lo: 0x97, hi: 0x97},
+       {value: 0x0008, lo: 0x98, hi: 0x9e},
+       {value: 0x0040, lo: 0x9f, hi: 0x9f},
+       {value: 0x3308, lo: 0xa0, hi: 0xbf},
+       // Block 0x59, offset 0x2f1
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0018, lo: 0x80, hi: 0xae},
+       {value: 0x0008, lo: 0xaf, hi: 0xaf},
+       {value: 0x0018, lo: 0xb0, hi: 0xbf},
+       // Block 0x5a, offset 0x2f5
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0018, lo: 0x80, hi: 0x8e},
+       {value: 0x0040, lo: 0x8f, hi: 0xbf},
+       // Block 0x5b, offset 0x2f8
+       {value: 0x0000, lo: 0x05},
+       {value: 0x0018, lo: 0x80, hi: 0x99},
+       {value: 0x0040, lo: 0x9a, hi: 0x9a},
+       {value: 0x0018, lo: 0x9b, hi: 0x9e},
+       {value: 0x0edd, lo: 0x9f, hi: 0x9f},
+       {value: 0x0018, lo: 0xa0, hi: 0xbf},
+       // Block 0x5c, offset 0x2fe
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0018, lo: 0x80, hi: 0xb2},
+       {value: 0x0efd, lo: 0xb3, hi: 0xb3},
+       {value: 0x0040, lo: 0xb4, hi: 0xbf},
+       // Block 0x5d, offset 0x302
+       {value: 0x0020, lo: 0x01},
+       {value: 0x0f1d, lo: 0x80, hi: 0xbf},
+       // Block 0x5e, offset 0x304
+       {value: 0x0020, lo: 0x02},
+       {value: 0x171d, lo: 0x80, hi: 0x8f},
+       {value: 0x18fd, lo: 0x90, hi: 0xbf},
+       // Block 0x5f, offset 0x307
+       {value: 0x0020, lo: 0x01},
+       {value: 0x1efd, lo: 0x80, hi: 0xbf},
+       // Block 0x60, offset 0x309
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0040, lo: 0x80, hi: 0x80},
+       {value: 0x0008, lo: 0x81, hi: 0xbf},
+       // Block 0x61, offset 0x30c
+       {value: 0x0000, lo: 0x09},
+       {value: 0x0008, lo: 0x80, hi: 0x96},
+       {value: 0x0040, lo: 0x97, hi: 0x98},
+       {value: 0x3308, lo: 0x99, hi: 0x9a},
+       {value: 0x29e2, lo: 0x9b, hi: 0x9b},
+       {value: 0x2a0a, lo: 0x9c, hi: 0x9c},
+       {value: 0x0008, lo: 0x9d, hi: 0x9e},
+       {value: 0x2a31, lo: 0x9f, hi: 0x9f},
+       {value: 0x0018, lo: 0xa0, hi: 0xa0},
+       {value: 0x0008, lo: 0xa1, hi: 0xbf},
+       // Block 0x62, offset 0x316
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0008, lo: 0x80, hi: 0xbe},
+       {value: 0x2a69, lo: 0xbf, hi: 0xbf},
+       // Block 0x63, offset 0x319
+       {value: 0x0000, lo: 0x0e},
+       {value: 0x0040, lo: 0x80, hi: 0x84},
+       {value: 0x0008, lo: 0x85, hi: 0xaf},
+       {value: 0x0040, lo: 0xb0, hi: 0xb0},
+       {value: 0x2a1d, lo: 0xb1, hi: 0xb1},
+       {value: 0x2a3d, lo: 0xb2, hi: 0xb2},
+       {value: 0x2a5d, lo: 0xb3, hi: 0xb3},
+       {value: 0x2a7d, lo: 0xb4, hi: 0xb4},
+       {value: 0x2a5d, lo: 0xb5, hi: 0xb5},
+       {value: 0x2a9d, lo: 0xb6, hi: 0xb6},
+       {value: 0x2abd, lo: 0xb7, hi: 0xb7},
+       {value: 0x2add, lo: 0xb8, hi: 0xb9},
+       {value: 0x2afd, lo: 0xba, hi: 0xbb},
+       {value: 0x2b1d, lo: 0xbc, hi: 0xbd},
+       {value: 0x2afd, lo: 0xbe, hi: 0xbf},
+       // Block 0x64, offset 0x328
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0018, lo: 0x80, hi: 0xa3},
+       {value: 0x0040, lo: 0xa4, hi: 0xaf},
+       {value: 0x0008, lo: 0xb0, hi: 0xbf},
+       // Block 0x65, offset 0x32c
+       {value: 0x0030, lo: 0x04},
+       {value: 0x2aa2, lo: 0x80, hi: 0x9d},
+       {value: 0x305a, lo: 0x9e, hi: 0x9e},
+       {value: 0x0040, lo: 0x9f, hi: 0x9f},
+       {value: 0x30a2, lo: 0xa0, hi: 0xbf},
+       // Block 0x66, offset 0x331
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0008, lo: 0x80, hi: 0xaf},
+       {value: 0x0040, lo: 0xb0, hi: 0xbf},
+       // Block 0x67, offset 0x334
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0008, lo: 0x80, hi: 0x8c},
+       {value: 0x0040, lo: 0x8d, hi: 0x8f},
+       {value: 0x0018, lo: 0x90, hi: 0xbf},
+       // Block 0x68, offset 0x338
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0018, lo: 0x80, hi: 0x86},
+       {value: 0x0040, lo: 0x87, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0xbd},
+       {value: 0x0018, lo: 0xbe, hi: 0xbf},
+       // Block 0x69, offset 0x33d
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0008, lo: 0x80, hi: 0x8c},
+       {value: 0x0018, lo: 0x8d, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0xab},
+       {value: 0x0040, lo: 0xac, hi: 0xbf},
+       // Block 0x6a, offset 0x342
+       {value: 0x0000, lo: 0x05},
+       {value: 0x0008, lo: 0x80, hi: 0xa5},
+       {value: 0x0018, lo: 0xa6, hi: 0xaf},
+       {value: 0x3308, lo: 0xb0, hi: 0xb1},
+       {value: 0x0018, lo: 0xb2, hi: 0xb7},
+       {value: 0x0040, lo: 0xb8, hi: 0xbf},
+       // Block 0x6b, offset 0x348
+       {value: 0x0000, lo: 0x05},
+       {value: 0x0040, lo: 0x80, hi: 0xb6},
+       {value: 0x0008, lo: 0xb7, hi: 0xb7},
+       {value: 0x2009, lo: 0xb8, hi: 0xb8},
+       {value: 0x6e89, lo: 0xb9, hi: 0xb9},
+       {value: 0x0008, lo: 0xba, hi: 0xbf},
+       // Block 0x6c, offset 0x34e
+       {value: 0x0000, lo: 0x0e},
+       {value: 0x0008, lo: 0x80, hi: 0x81},
+       {value: 0x3308, lo: 0x82, hi: 0x82},
+       {value: 0x0008, lo: 0x83, hi: 0x85},
+       {value: 0x3b08, lo: 0x86, hi: 0x86},
+       {value: 0x0008, lo: 0x87, hi: 0x8a},
+       {value: 0x3308, lo: 0x8b, hi: 0x8b},
+       {value: 0x0008, lo: 0x8c, hi: 0xa2},
+       {value: 0x3008, lo: 0xa3, hi: 0xa4},
+       {value: 0x3308, lo: 0xa5, hi: 0xa6},
+       {value: 0x3008, lo: 0xa7, hi: 0xa7},
+       {value: 0x0018, lo: 0xa8, hi: 0xab},
+       {value: 0x0040, lo: 0xac, hi: 0xaf},
+       {value: 0x0018, lo: 0xb0, hi: 0xb9},
+       {value: 0x0040, lo: 0xba, hi: 0xbf},
+       // Block 0x6d, offset 0x35d
+       {value: 0x0000, lo: 0x05},
+       {value: 0x0208, lo: 0x80, hi: 0xb1},
+       {value: 0x0108, lo: 0xb2, hi: 0xb2},
+       {value: 0x0008, lo: 0xb3, hi: 0xb3},
+       {value: 0x0018, lo: 0xb4, hi: 0xb7},
+       {value: 0x0040, lo: 0xb8, hi: 0xbf},
+       // Block 0x6e, offset 0x363
+       {value: 0x0000, lo: 0x03},
+       {value: 0x3008, lo: 0x80, hi: 0x81},
+       {value: 0x0008, lo: 0x82, hi: 0xb3},
+       {value: 0x3008, lo: 0xb4, hi: 0xbf},
+       // Block 0x6f, offset 0x367
+       {value: 0x0000, lo: 0x0e},
+       {value: 0x3008, lo: 0x80, hi: 0x83},
+       {value: 0x3b08, lo: 0x84, hi: 0x84},
+       {value: 0x3308, lo: 0x85, hi: 0x85},
+       {value: 0x0040, lo: 0x86, hi: 0x8d},
+       {value: 0x0018, lo: 0x8e, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x99},
+       {value: 0x0040, lo: 0x9a, hi: 0x9f},
+       {value: 0x3308, lo: 0xa0, hi: 0xb1},
+       {value: 0x0008, lo: 0xb2, hi: 0xb7},
+       {value: 0x0018, lo: 0xb8, hi: 0xba},
+       {value: 0x0008, lo: 0xbb, hi: 0xbb},
+       {value: 0x0018, lo: 0xbc, hi: 0xbc},
+       {value: 0x0008, lo: 0xbd, hi: 0xbe},
+       {value: 0x3308, lo: 0xbf, hi: 0xbf},
+       // Block 0x70, offset 0x376
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0008, lo: 0x80, hi: 0xa5},
+       {value: 0x3308, lo: 0xa6, hi: 0xad},
+       {value: 0x0018, lo: 0xae, hi: 0xaf},
+       {value: 0x0008, lo: 0xb0, hi: 0xbf},
+       // Block 0x71, offset 0x37b
+       {value: 0x0000, lo: 0x07},
+       {value: 0x0008, lo: 0x80, hi: 0x86},
+       {value: 0x3308, lo: 0x87, hi: 0x91},
+       {value: 0x3008, lo: 0x92, hi: 0x92},
+       {value: 0x3808, lo: 0x93, hi: 0x93},
+       {value: 0x0040, lo: 0x94, hi: 0x9e},
+       {value: 0x0018, lo: 0x9f, hi: 0xbc},
+       {value: 0x0040, lo: 0xbd, hi: 0xbf},
+       // Block 0x72, offset 0x383
+       {value: 0x0000, lo: 0x09},
+       {value: 0x3308, lo: 0x80, hi: 0x82},
+       {value: 0x3008, lo: 0x83, hi: 0x83},
+       {value: 0x0008, lo: 0x84, hi: 0xb2},
+       {value: 0x3308, lo: 0xb3, hi: 0xb3},
+       {value: 0x3008, lo: 0xb4, hi: 0xb5},
+       {value: 0x3308, lo: 0xb6, hi: 0xb9},
+       {value: 0x3008, lo: 0xba, hi: 0xbb},
+       {value: 0x3308, lo: 0xbc, hi: 0xbc},
+       {value: 0x3008, lo: 0xbd, hi: 0xbf},
+       // Block 0x73, offset 0x38d
+       {value: 0x0000, lo: 0x0a},
+       {value: 0x3808, lo: 0x80, hi: 0x80},
+       {value: 0x0018, lo: 0x81, hi: 0x8d},
+       {value: 0x0040, lo: 0x8e, hi: 0x8e},
+       {value: 0x0008, lo: 0x8f, hi: 0x99},
+       {value: 0x0040, lo: 0x9a, hi: 0x9d},
+       {value: 0x0018, lo: 0x9e, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xa4},
+       {value: 0x3308, lo: 0xa5, hi: 0xa5},
+       {value: 0x0008, lo: 0xa6, hi: 0xbe},
+       {value: 0x0040, lo: 0xbf, hi: 0xbf},
+       // Block 0x74, offset 0x398
+       {value: 0x0000, lo: 0x07},
+       {value: 0x0008, lo: 0x80, hi: 0xa8},
+       {value: 0x3308, lo: 0xa9, hi: 0xae},
+       {value: 0x3008, lo: 0xaf, hi: 0xb0},
+       {value: 0x3308, lo: 0xb1, hi: 0xb2},
+       {value: 0x3008, lo: 0xb3, hi: 0xb4},
+       {value: 0x3308, lo: 0xb5, hi: 0xb6},
+       {value: 0x0040, lo: 0xb7, hi: 0xbf},
+       // Block 0x75, offset 0x3a0
+       {value: 0x0000, lo: 0x10},
+       {value: 0x0008, lo: 0x80, hi: 0x82},
+       {value: 0x3308, lo: 0x83, hi: 0x83},
+       {value: 0x0008, lo: 0x84, hi: 0x8b},
+       {value: 0x3308, lo: 0x8c, hi: 0x8c},
+       {value: 0x3008, lo: 0x8d, hi: 0x8d},
+       {value: 0x0040, lo: 0x8e, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x99},
+       {value: 0x0040, lo: 0x9a, hi: 0x9b},
+       {value: 0x0018, lo: 0x9c, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xb6},
+       {value: 0x0018, lo: 0xb7, hi: 0xb9},
+       {value: 0x0008, lo: 0xba, hi: 0xba},
+       {value: 0x3008, lo: 0xbb, hi: 0xbb},
+       {value: 0x3308, lo: 0xbc, hi: 0xbc},
+       {value: 0x3008, lo: 0xbd, hi: 0xbd},
+       {value: 0x0008, lo: 0xbe, hi: 0xbf},
+       // Block 0x76, offset 0x3b1
+       {value: 0x0000, lo: 0x08},
+       {value: 0x0008, lo: 0x80, hi: 0xaf},
+       {value: 0x3308, lo: 0xb0, hi: 0xb0},
+       {value: 0x0008, lo: 0xb1, hi: 0xb1},
+       {value: 0x3308, lo: 0xb2, hi: 0xb4},
+       {value: 0x0008, lo: 0xb5, hi: 0xb6},
+       {value: 0x3308, lo: 0xb7, hi: 0xb8},
+       {value: 0x0008, lo: 0xb9, hi: 0xbd},
+       {value: 0x3308, lo: 0xbe, hi: 0xbf},
+       // Block 0x77, offset 0x3ba
+       {value: 0x0000, lo: 0x0f},
+       {value: 0x0008, lo: 0x80, hi: 0x80},
+       {value: 0x3308, lo: 0x81, hi: 0x81},
+       {value: 0x0008, lo: 0x82, hi: 0x82},
+       {value: 0x0040, lo: 0x83, hi: 0x9a},
+       {value: 0x0008, lo: 0x9b, hi: 0x9d},
+       {value: 0x0018, lo: 0x9e, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xaa},
+       {value: 0x3008, lo: 0xab, hi: 0xab},
+       {value: 0x3308, lo: 0xac, hi: 0xad},
+       {value: 0x3008, lo: 0xae, hi: 0xaf},
+       {value: 0x0018, lo: 0xb0, hi: 0xb1},
+       {value: 0x0008, lo: 0xb2, hi: 0xb4},
+       {value: 0x3008, lo: 0xb5, hi: 0xb5},
+       {value: 0x3b08, lo: 0xb6, hi: 0xb6},
+       {value: 0x0040, lo: 0xb7, hi: 0xbf},
+       // Block 0x78, offset 0x3ca
+       {value: 0x0000, lo: 0x0c},
+       {value: 0x0040, lo: 0x80, hi: 0x80},
+       {value: 0x0008, lo: 0x81, hi: 0x86},
+       {value: 0x0040, lo: 0x87, hi: 0x88},
+       {value: 0x0008, lo: 0x89, hi: 0x8e},
+       {value: 0x0040, lo: 0x8f, hi: 0x90},
+       {value: 0x0008, lo: 0x91, hi: 0x96},
+       {value: 0x0040, lo: 0x97, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xa6},
+       {value: 0x0040, lo: 0xa7, hi: 0xa7},
+       {value: 0x0008, lo: 0xa8, hi: 0xae},
+       {value: 0x0040, lo: 0xaf, hi: 0xaf},
+       {value: 0x0008, lo: 0xb0, hi: 0xbf},
+       // Block 0x79, offset 0x3d7
+       {value: 0x0000, lo: 0x09},
+       {value: 0x0008, lo: 0x80, hi: 0x9a},
+       {value: 0x0018, lo: 0x9b, hi: 0x9b},
+       {value: 0x4465, lo: 0x9c, hi: 0x9c},
+       {value: 0x447d, lo: 0x9d, hi: 0x9d},
+       {value: 0x2971, lo: 0x9e, hi: 0x9e},
+       {value: 0xe06d, lo: 0x9f, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xa5},
+       {value: 0x0040, lo: 0xa6, hi: 0xaf},
+       {value: 0x4495, lo: 0xb0, hi: 0xbf},
+       // Block 0x7a, offset 0x3e1
+       {value: 0x0000, lo: 0x04},
+       {value: 0x44b5, lo: 0x80, hi: 0x8f},
+       {value: 0x44d5, lo: 0x90, hi: 0x9f},
+       {value: 0x44f5, lo: 0xa0, hi: 0xaf},
+       {value: 0x44d5, lo: 0xb0, hi: 0xbf},
+       // Block 0x7b, offset 0x3e6
+       {value: 0x0000, lo: 0x0c},
+       {value: 0x0008, lo: 0x80, hi: 0xa2},
+       {value: 0x3008, lo: 0xa3, hi: 0xa4},
+       {value: 0x3308, lo: 0xa5, hi: 0xa5},
+       {value: 0x3008, lo: 0xa6, hi: 0xa7},
+       {value: 0x3308, lo: 0xa8, hi: 0xa8},
+       {value: 0x3008, lo: 0xa9, hi: 0xaa},
+       {value: 0x0018, lo: 0xab, hi: 0xab},
+       {value: 0x3008, lo: 0xac, hi: 0xac},
+       {value: 0x3b08, lo: 0xad, hi: 0xad},
+       {value: 0x0040, lo: 0xae, hi: 0xaf},
+       {value: 0x0008, lo: 0xb0, hi: 0xb9},
+       {value: 0x0040, lo: 0xba, hi: 0xbf},
+       // Block 0x7c, offset 0x3f3
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0008, lo: 0x80, hi: 0xa3},
+       {value: 0x0040, lo: 0xa4, hi: 0xaf},
+       {value: 0x0018, lo: 0xb0, hi: 0xbf},
+       // Block 0x7d, offset 0x3f7
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0018, lo: 0x80, hi: 0x86},
+       {value: 0x0040, lo: 0x87, hi: 0x8a},
+       {value: 0x0018, lo: 0x8b, hi: 0xbb},
+       {value: 0x0040, lo: 0xbc, hi: 0xbf},
+       // Block 0x7e, offset 0x3fc
+       {value: 0x0020, lo: 0x01},
+       {value: 0x4515, lo: 0x80, hi: 0xbf},
+       // Block 0x7f, offset 0x3fe
+       {value: 0x0020, lo: 0x03},
+       {value: 0x4d15, lo: 0x80, hi: 0x94},
+       {value: 0x4ad5, lo: 0x95, hi: 0x95},
+       {value: 0x4fb5, lo: 0x96, hi: 0xbf},
+       // Block 0x80, offset 0x402
+       {value: 0x0020, lo: 0x01},
+       {value: 0x54f5, lo: 0x80, hi: 0xbf},
+       // Block 0x81, offset 0x404
+       {value: 0x0020, lo: 0x03},
+       {value: 0x5cf5, lo: 0x80, hi: 0x84},
+       {value: 0x5655, lo: 0x85, hi: 0x85},
+       {value: 0x5d95, lo: 0x86, hi: 0xbf},
+       // Block 0x82, offset 0x408
+       {value: 0x0020, lo: 0x08},
+       {value: 0x6b55, lo: 0x80, hi: 0x8f},
+       {value: 0x6d15, lo: 0x90, hi: 0x90},
+       {value: 0x6d55, lo: 0x91, hi: 0xab},
+       {value: 0x6ea1, lo: 0xac, hi: 0xac},
+       {value: 0x70b5, lo: 0xad, hi: 0xad},
+       {value: 0x0040, lo: 0xae, hi: 0xae},
+       {value: 0x0040, lo: 0xaf, hi: 0xaf},
+       {value: 0x70d5, lo: 0xb0, hi: 0xbf},
+       // Block 0x83, offset 0x411
+       {value: 0x0020, lo: 0x05},
+       {value: 0x72d5, lo: 0x80, hi: 0xad},
+       {value: 0x6535, lo: 0xae, hi: 0xae},
+       {value: 0x7895, lo: 0xaf, hi: 0xb5},
+       {value: 0x6f55, lo: 0xb6, hi: 0xb6},
+       {value: 0x7975, lo: 0xb7, hi: 0xbf},
+       // Block 0x84, offset 0x417
+       {value: 0x0028, lo: 0x03},
+       {value: 0x7c21, lo: 0x80, hi: 0x82},
+       {value: 0x7be1, lo: 0x83, hi: 0x83},
+       {value: 0x7c99, lo: 0x84, hi: 0xbf},
+       // Block 0x85, offset 0x41b
+       {value: 0x0038, lo: 0x0f},
+       {value: 0x9db1, lo: 0x80, hi: 0x83},
+       {value: 0x9e59, lo: 0x84, hi: 0x85},
+       {value: 0x9e91, lo: 0x86, hi: 0x87},
+       {value: 0x9ec9, lo: 0x88, hi: 0x8f},
+       {value: 0x0040, lo: 0x90, hi: 0x90},
+       {value: 0x0040, lo: 0x91, hi: 0x91},
+       {value: 0xa089, lo: 0x92, hi: 0x97},
+       {value: 0xa1a1, lo: 0x98, hi: 0x9c},
+       {value: 0xa281, lo: 0x9d, hi: 0xb3},
+       {value: 0x9d41, lo: 0xb4, hi: 0xb4},
+       {value: 0x9db1, lo: 0xb5, hi: 0xb5},
+       {value: 0xa789, lo: 0xb6, hi: 0xbb},
+       {value: 0xa869, lo: 0xbc, hi: 0xbc},
+       {value: 0xa7f9, lo: 0xbd, hi: 0xbd},
+       {value: 0xa8d9, lo: 0xbe, hi: 0xbf},
+       // Block 0x86, offset 0x42b
+       {value: 0x0000, lo: 0x09},
+       {value: 0x0008, lo: 0x80, hi: 0x8b},
+       {value: 0x0040, lo: 0x8c, hi: 0x8c},
+       {value: 0x0008, lo: 0x8d, hi: 0xa6},
+       {value: 0x0040, lo: 0xa7, hi: 0xa7},
+       {value: 0x0008, lo: 0xa8, hi: 0xba},
+       {value: 0x0040, lo: 0xbb, hi: 0xbb},
+       {value: 0x0008, lo: 0xbc, hi: 0xbd},
+       {value: 0x0040, lo: 0xbe, hi: 0xbe},
+       {value: 0x0008, lo: 0xbf, hi: 0xbf},
+       // Block 0x87, offset 0x435
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0008, lo: 0x80, hi: 0x8d},
+       {value: 0x0040, lo: 0x8e, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x9d},
+       {value: 0x0040, lo: 0x9e, hi: 0xbf},
+       // Block 0x88, offset 0x43a
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0008, lo: 0x80, hi: 0xba},
+       {value: 0x0040, lo: 0xbb, hi: 0xbf},
+       // Block 0x89, offset 0x43d
+       {value: 0x0000, lo: 0x05},
+       {value: 0x0018, lo: 0x80, hi: 0x82},
+       {value: 0x0040, lo: 0x83, hi: 0x86},
+       {value: 0x0018, lo: 0x87, hi: 0xb3},
+       {value: 0x0040, lo: 0xb4, hi: 0xb6},
+       {value: 0x0018, lo: 0xb7, hi: 0xbf},
+       // Block 0x8a, offset 0x443
+       {value: 0x0000, lo: 0x06},
+       {value: 0x0018, lo: 0x80, hi: 0x8e},
+       {value: 0x0040, lo: 0x8f, hi: 0x8f},
+       {value: 0x0018, lo: 0x90, hi: 0x9b},
+       {value: 0x0040, lo: 0x9c, hi: 0x9f},
+       {value: 0x0018, lo: 0xa0, hi: 0xa0},
+       {value: 0x0040, lo: 0xa1, hi: 0xbf},
+       // Block 0x8b, offset 0x44a
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0040, lo: 0x80, hi: 0x8f},
+       {value: 0x0018, lo: 0x90, hi: 0xbc},
+       {value: 0x3308, lo: 0xbd, hi: 0xbd},
+       {value: 0x0040, lo: 0xbe, hi: 0xbf},
+       // Block 0x8c, offset 0x44f
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0008, lo: 0x80, hi: 0x9c},
+       {value: 0x0040, lo: 0x9d, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xbf},
+       // Block 0x8d, offset 0x453
+       {value: 0x0000, lo: 0x05},
+       {value: 0x0008, lo: 0x80, hi: 0x90},
+       {value: 0x0040, lo: 0x91, hi: 0x9f},
+       {value: 0x3308, lo: 0xa0, hi: 0xa0},
+       {value: 0x0018, lo: 0xa1, hi: 0xbb},
+       {value: 0x0040, lo: 0xbc, hi: 0xbf},
+       // Block 0x8e, offset 0x459
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0008, lo: 0x80, hi: 0x9f},
+       {value: 0x0018, lo: 0xa0, hi: 0xa3},
+       {value: 0x0040, lo: 0xa4, hi: 0xac},
+       {value: 0x0008, lo: 0xad, hi: 0xbf},
+       // Block 0x8f, offset 0x45e
+       {value: 0x0000, lo: 0x08},
+       {value: 0x0008, lo: 0x80, hi: 0x80},
+       {value: 0x0018, lo: 0x81, hi: 0x81},
+       {value: 0x0008, lo: 0x82, hi: 0x89},
+       {value: 0x0018, lo: 0x8a, hi: 0x8a},
+       {value: 0x0040, lo: 0x8b, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0xb5},
+       {value: 0x3308, lo: 0xb6, hi: 0xba},
+       {value: 0x0040, lo: 0xbb, hi: 0xbf},
+       // Block 0x90, offset 0x467
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0008, lo: 0x80, hi: 0x9d},
+       {value: 0x0040, lo: 0x9e, hi: 0x9e},
+       {value: 0x0018, lo: 0x9f, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xbf},
+       // Block 0x91, offset 0x46c
+       {value: 0x0000, lo: 0x05},
+       {value: 0x0008, lo: 0x80, hi: 0x83},
+       {value: 0x0040, lo: 0x84, hi: 0x87},
+       {value: 0x0008, lo: 0x88, hi: 0x8f},
+       {value: 0x0018, lo: 0x90, hi: 0x95},
+       {value: 0x0040, lo: 0x96, hi: 0xbf},
+       // Block 0x92, offset 0x472
+       {value: 0x0000, lo: 0x06},
+       {value: 0xe145, lo: 0x80, hi: 0x87},
+       {value: 0xe1c5, lo: 0x88, hi: 0x8f},
+       {value: 0xe145, lo: 0x90, hi: 0x97},
+       {value: 0x8ad5, lo: 0x98, hi: 0x9f},
+       {value: 0x8aed, lo: 0xa0, hi: 0xa7},
+       {value: 0x0008, lo: 0xa8, hi: 0xbf},
+       // Block 0x93, offset 0x479
+       {value: 0x0000, lo: 0x06},
+       {value: 0x0008, lo: 0x80, hi: 0x9d},
+       {value: 0x0040, lo: 0x9e, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xa9},
+       {value: 0x0040, lo: 0xaa, hi: 0xaf},
+       {value: 0x8aed, lo: 0xb0, hi: 0xb7},
+       {value: 0x8ad5, lo: 0xb8, hi: 0xbf},
+       // Block 0x94, offset 0x480
+       {value: 0x0000, lo: 0x06},
+       {value: 0xe145, lo: 0x80, hi: 0x87},
+       {value: 0xe1c5, lo: 0x88, hi: 0x8f},
+       {value: 0xe145, lo: 0x90, hi: 0x93},
+       {value: 0x0040, lo: 0x94, hi: 0x97},
+       {value: 0x0008, lo: 0x98, hi: 0xbb},
+       {value: 0x0040, lo: 0xbc, hi: 0xbf},
+       // Block 0x95, offset 0x487
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0008, lo: 0x80, hi: 0xa7},
+       {value: 0x0040, lo: 0xa8, hi: 0xaf},
+       {value: 0x0008, lo: 0xb0, hi: 0xbf},
+       // Block 0x96, offset 0x48b
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0008, lo: 0x80, hi: 0xa3},
+       {value: 0x0040, lo: 0xa4, hi: 0xae},
+       {value: 0x0018, lo: 0xaf, hi: 0xaf},
+       {value: 0x0040, lo: 0xb0, hi: 0xbf},
+       // Block 0x97, offset 0x490
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0008, lo: 0x80, hi: 0xb6},
+       {value: 0x0040, lo: 0xb7, hi: 0xbf},
+       // Block 0x98, offset 0x493
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0008, lo: 0x80, hi: 0x95},
+       {value: 0x0040, lo: 0x96, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xa7},
+       {value: 0x0040, lo: 0xa8, hi: 0xbf},
+       // Block 0x99, offset 0x498
+       {value: 0x0000, lo: 0x0b},
+       {value: 0x0808, lo: 0x80, hi: 0x85},
+       {value: 0x0040, lo: 0x86, hi: 0x87},
+       {value: 0x0808, lo: 0x88, hi: 0x88},
+       {value: 0x0040, lo: 0x89, hi: 0x89},
+       {value: 0x0808, lo: 0x8a, hi: 0xb5},
+       {value: 0x0040, lo: 0xb6, hi: 0xb6},
+       {value: 0x0808, lo: 0xb7, hi: 0xb8},
+       {value: 0x0040, lo: 0xb9, hi: 0xbb},
+       {value: 0x0808, lo: 0xbc, hi: 0xbc},
+       {value: 0x0040, lo: 0xbd, hi: 0xbe},
+       {value: 0x0808, lo: 0xbf, hi: 0xbf},
+       // Block 0x9a, offset 0x4a4
+       {value: 0x0000, lo: 0x05},
+       {value: 0x0808, lo: 0x80, hi: 0x95},
+       {value: 0x0040, lo: 0x96, hi: 0x96},
+       {value: 0x0818, lo: 0x97, hi: 0x9f},
+       {value: 0x0808, lo: 0xa0, hi: 0xb6},
+       {value: 0x0818, lo: 0xb7, hi: 0xbf},
+       // Block 0x9b, offset 0x4aa
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0808, lo: 0x80, hi: 0x9e},
+       {value: 0x0040, lo: 0x9f, hi: 0xa6},
+       {value: 0x0818, lo: 0xa7, hi: 0xaf},
+       {value: 0x0040, lo: 0xb0, hi: 0xbf},
+       // Block 0x9c, offset 0x4af
+       {value: 0x0000, lo: 0x06},
+       {value: 0x0040, lo: 0x80, hi: 0x9f},
+       {value: 0x0808, lo: 0xa0, hi: 0xb2},
+       {value: 0x0040, lo: 0xb3, hi: 0xb3},
+       {value: 0x0808, lo: 0xb4, hi: 0xb5},
+       {value: 0x0040, lo: 0xb6, hi: 0xba},
+       {value: 0x0818, lo: 0xbb, hi: 0xbf},
+       // Block 0x9d, offset 0x4b6
+       {value: 0x0000, lo: 0x07},
+       {value: 0x0808, lo: 0x80, hi: 0x95},
+       {value: 0x0818, lo: 0x96, hi: 0x9b},
+       {value: 0x0040, lo: 0x9c, hi: 0x9e},
+       {value: 0x0018, lo: 0x9f, hi: 0x9f},
+       {value: 0x0808, lo: 0xa0, hi: 0xb9},
+       {value: 0x0040, lo: 0xba, hi: 0xbe},
+       {value: 0x0818, lo: 0xbf, hi: 0xbf},
+       // Block 0x9e, offset 0x4be
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0808, lo: 0x80, hi: 0xb7},
+       {value: 0x0040, lo: 0xb8, hi: 0xbb},
+       {value: 0x0818, lo: 0xbc, hi: 0xbd},
+       {value: 0x0808, lo: 0xbe, hi: 0xbf},
+       // Block 0x9f, offset 0x4c3
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0818, lo: 0x80, hi: 0x8f},
+       {value: 0x0040, lo: 0x90, hi: 0x91},
+       {value: 0x0818, lo: 0x92, hi: 0xbf},
+       // Block 0xa0, offset 0x4c7
+       {value: 0x0000, lo: 0x0f},
+       {value: 0x0808, lo: 0x80, hi: 0x80},
+       {value: 0x3308, lo: 0x81, hi: 0x83},
+       {value: 0x0040, lo: 0x84, hi: 0x84},
+       {value: 0x3308, lo: 0x85, hi: 0x86},
+       {value: 0x0040, lo: 0x87, hi: 0x8b},
+       {value: 0x3308, lo: 0x8c, hi: 0x8f},
+       {value: 0x0808, lo: 0x90, hi: 0x93},
+       {value: 0x0040, lo: 0x94, hi: 0x94},
+       {value: 0x0808, lo: 0x95, hi: 0x97},
+       {value: 0x0040, lo: 0x98, hi: 0x98},
+       {value: 0x0808, lo: 0x99, hi: 0xb5},
+       {value: 0x0040, lo: 0xb6, hi: 0xb7},
+       {value: 0x3308, lo: 0xb8, hi: 0xba},
+       {value: 0x0040, lo: 0xbb, hi: 0xbe},
+       {value: 0x3b08, lo: 0xbf, hi: 0xbf},
+       // Block 0xa1, offset 0x4d7
+       {value: 0x0000, lo: 0x06},
+       {value: 0x0818, lo: 0x80, hi: 0x88},
+       {value: 0x0040, lo: 0x89, hi: 0x8f},
+       {value: 0x0818, lo: 0x90, hi: 0x98},
+       {value: 0x0040, lo: 0x99, hi: 0x9f},
+       {value: 0x0808, lo: 0xa0, hi: 0xbc},
+       {value: 0x0818, lo: 0xbd, hi: 0xbf},
+       // Block 0xa2, offset 0x4de
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0808, lo: 0x80, hi: 0x9c},
+       {value: 0x0818, lo: 0x9d, hi: 0x9f},
+       {value: 0x0040, lo: 0xa0, hi: 0xbf},
+       // Block 0xa3, offset 0x4e2
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0808, lo: 0x80, hi: 0xb5},
+       {value: 0x0040, lo: 0xb6, hi: 0xb8},
+       {value: 0x0018, lo: 0xb9, hi: 0xbf},
+       // Block 0xa4, offset 0x4e6
+       {value: 0x0000, lo: 0x06},
+       {value: 0x0808, lo: 0x80, hi: 0x95},
+       {value: 0x0040, lo: 0x96, hi: 0x97},
+       {value: 0x0818, lo: 0x98, hi: 0x9f},
+       {value: 0x0808, lo: 0xa0, hi: 0xb2},
+       {value: 0x0040, lo: 0xb3, hi: 0xb7},
+       {value: 0x0818, lo: 0xb8, hi: 0xbf},
+       // Block 0xa5, offset 0x4ed
+       {value: 0x0000, lo: 0x01},
+       {value: 0x0808, lo: 0x80, hi: 0xbf},
+       // Block 0xa6, offset 0x4ef
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0808, lo: 0x80, hi: 0x88},
+       {value: 0x0040, lo: 0x89, hi: 0xbf},
+       // Block 0xa7, offset 0x4f2
+       {value: 0x0000, lo: 0x02},
+       {value: 0x03dd, lo: 0x80, hi: 0xb2},
+       {value: 0x0040, lo: 0xb3, hi: 0xbf},
+       // Block 0xa8, offset 0x4f5
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0808, lo: 0x80, hi: 0xb2},
+       {value: 0x0040, lo: 0xb3, hi: 0xb9},
+       {value: 0x0818, lo: 0xba, hi: 0xbf},
+       // Block 0xa9, offset 0x4f9
+       {value: 0x0000, lo: 0x08},
+       {value: 0x0908, lo: 0x80, hi: 0x80},
+       {value: 0x0a08, lo: 0x81, hi: 0xa1},
+       {value: 0x0c08, lo: 0xa2, hi: 0xa2},
+       {value: 0x0a08, lo: 0xa3, hi: 0xa3},
+       {value: 0x3308, lo: 0xa4, hi: 0xa7},
+       {value: 0x0040, lo: 0xa8, hi: 0xaf},
+       {value: 0x0808, lo: 0xb0, hi: 0xb9},
+       {value: 0x0040, lo: 0xba, hi: 0xbf},
+       // Block 0xaa, offset 0x502
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0040, lo: 0x80, hi: 0x9f},
+       {value: 0x0818, lo: 0xa0, hi: 0xbe},
+       {value: 0x0040, lo: 0xbf, hi: 0xbf},
+       // Block 0xab, offset 0x506
+       {value: 0x0000, lo: 0x07},
+       {value: 0x0808, lo: 0x80, hi: 0x9c},
+       {value: 0x0818, lo: 0x9d, hi: 0xa6},
+       {value: 0x0808, lo: 0xa7, hi: 0xa7},
+       {value: 0x0040, lo: 0xa8, hi: 0xaf},
+       {value: 0x0a08, lo: 0xb0, hi: 0xb2},
+       {value: 0x0c08, lo: 0xb3, hi: 0xb3},
+       {value: 0x0a08, lo: 0xb4, hi: 0xbf},
+       // Block 0xac, offset 0x50e
+       {value: 0x0000, lo: 0x07},
+       {value: 0x0a08, lo: 0x80, hi: 0x84},
+       {value: 0x0808, lo: 0x85, hi: 0x85},
+       {value: 0x3308, lo: 0x86, hi: 0x90},
+       {value: 0x0a18, lo: 0x91, hi: 0x93},
+       {value: 0x0c18, lo: 0x94, hi: 0x94},
+       {value: 0x0818, lo: 0x95, hi: 0x99},
+       {value: 0x0040, lo: 0x9a, hi: 0xbf},
+       // Block 0xad, offset 0x516
+       {value: 0x0000, lo: 0x05},
+       {value: 0x3008, lo: 0x80, hi: 0x80},
+       {value: 0x3308, lo: 0x81, hi: 0x81},
+       {value: 0x3008, lo: 0x82, hi: 0x82},
+       {value: 0x0008, lo: 0x83, hi: 0xb7},
+       {value: 0x3308, lo: 0xb8, hi: 0xbf},
+       // Block 0xae, offset 0x51c
+       {value: 0x0000, lo: 0x08},
+       {value: 0x3308, lo: 0x80, hi: 0x85},
+       {value: 0x3b08, lo: 0x86, hi: 0x86},
+       {value: 0x0018, lo: 0x87, hi: 0x8d},
+       {value: 0x0040, lo: 0x8e, hi: 0x91},
+       {value: 0x0018, lo: 0x92, hi: 0xa5},
+       {value: 0x0008, lo: 0xa6, hi: 0xaf},
+       {value: 0x0040, lo: 0xb0, hi: 0xbe},
+       {value: 0x3b08, lo: 0xbf, hi: 0xbf},
+       // Block 0xaf, offset 0x525
+       {value: 0x0000, lo: 0x0b},
+       {value: 0x3308, lo: 0x80, hi: 0x81},
+       {value: 0x3008, lo: 0x82, hi: 0x82},
+       {value: 0x0008, lo: 0x83, hi: 0xaf},
+       {value: 0x3008, lo: 0xb0, hi: 0xb2},
+       {value: 0x3308, lo: 0xb3, hi: 0xb6},
+       {value: 0x3008, lo: 0xb7, hi: 0xb8},
+       {value: 0x3b08, lo: 0xb9, hi: 0xb9},
+       {value: 0x3308, lo: 0xba, hi: 0xba},
+       {value: 0x0018, lo: 0xbb, hi: 0xbc},
+       {value: 0x0040, lo: 0xbd, hi: 0xbd},
+       {value: 0x0018, lo: 0xbe, hi: 0xbf},
+       // Block 0xb0, offset 0x531
+       {value: 0x0000, lo: 0x06},
+       {value: 0x0018, lo: 0x80, hi: 0x81},
+       {value: 0x0040, lo: 0x82, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0xa8},
+       {value: 0x0040, lo: 0xa9, hi: 0xaf},
+       {value: 0x0008, lo: 0xb0, hi: 0xb9},
+       {value: 0x0040, lo: 0xba, hi: 0xbf},
+       // Block 0xb1, offset 0x538
+       {value: 0x0000, lo: 0x08},
+       {value: 0x3308, lo: 0x80, hi: 0x82},
+       {value: 0x0008, lo: 0x83, hi: 0xa6},
+       {value: 0x3308, lo: 0xa7, hi: 0xab},
+       {value: 0x3008, lo: 0xac, hi: 0xac},
+       {value: 0x3308, lo: 0xad, hi: 0xb2},
+       {value: 0x3b08, lo: 0xb3, hi: 0xb4},
+       {value: 0x0040, lo: 0xb5, hi: 0xb5},
+       {value: 0x0008, lo: 0xb6, hi: 0xbf},
+       // Block 0xb2, offset 0x541
+       {value: 0x0000, lo: 0x09},
+       {value: 0x0018, lo: 0x80, hi: 0x83},
+       {value: 0x0008, lo: 0x84, hi: 0x84},
+       {value: 0x3008, lo: 0x85, hi: 0x86},
+       {value: 0x0040, lo: 0x87, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0xb2},
+       {value: 0x3308, lo: 0xb3, hi: 0xb3},
+       {value: 0x0018, lo: 0xb4, hi: 0xb5},
+       {value: 0x0008, lo: 0xb6, hi: 0xb6},
+       {value: 0x0040, lo: 0xb7, hi: 0xbf},
+       // Block 0xb3, offset 0x54b
+       {value: 0x0000, lo: 0x06},
+       {value: 0x3308, lo: 0x80, hi: 0x81},
+       {value: 0x3008, lo: 0x82, hi: 0x82},
+       {value: 0x0008, lo: 0x83, hi: 0xb2},
+       {value: 0x3008, lo: 0xb3, hi: 0xb5},
+       {value: 0x3308, lo: 0xb6, hi: 0xbe},
+       {value: 0x3008, lo: 0xbf, hi: 0xbf},
+       // Block 0xb4, offset 0x552
+       {value: 0x0000, lo: 0x0d},
+       {value: 0x3808, lo: 0x80, hi: 0x80},
+       {value: 0x0008, lo: 0x81, hi: 0x84},
+       {value: 0x0018, lo: 0x85, hi: 0x88},
+       {value: 0x3308, lo: 0x89, hi: 0x8c},
+       {value: 0x0018, lo: 0x8d, hi: 0x8d},
+       {value: 0x0040, lo: 0x8e, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x9a},
+       {value: 0x0018, lo: 0x9b, hi: 0x9b},
+       {value: 0x0008, lo: 0x9c, hi: 0x9c},
+       {value: 0x0018, lo: 0x9d, hi: 0x9f},
+       {value: 0x0040, lo: 0xa0, hi: 0xa0},
+       {value: 0x0018, lo: 0xa1, hi: 0xb4},
+       {value: 0x0040, lo: 0xb5, hi: 0xbf},
+       // Block 0xb5, offset 0x560
+       {value: 0x0000, lo: 0x0c},
+       {value: 0x0008, lo: 0x80, hi: 0x91},
+       {value: 0x0040, lo: 0x92, hi: 0x92},
+       {value: 0x0008, lo: 0x93, hi: 0xab},
+       {value: 0x3008, lo: 0xac, hi: 0xae},
+       {value: 0x3308, lo: 0xaf, hi: 0xb1},
+       {value: 0x3008, lo: 0xb2, hi: 0xb3},
+       {value: 0x3308, lo: 0xb4, hi: 0xb4},
+       {value: 0x3808, lo: 0xb5, hi: 0xb5},
+       {value: 0x3308, lo: 0xb6, hi: 0xb7},
+       {value: 0x0018, lo: 0xb8, hi: 0xbd},
+       {value: 0x3308, lo: 0xbe, hi: 0xbe},
+       {value: 0x0040, lo: 0xbf, hi: 0xbf},
+       // Block 0xb6, offset 0x56d
+       {value: 0x0000, lo: 0x0c},
+       {value: 0x0008, lo: 0x80, hi: 0x86},
+       {value: 0x0040, lo: 0x87, hi: 0x87},
+       {value: 0x0008, lo: 0x88, hi: 0x88},
+       {value: 0x0040, lo: 0x89, hi: 0x89},
+       {value: 0x0008, lo: 0x8a, hi: 0x8d},
+       {value: 0x0040, lo: 0x8e, hi: 0x8e},
+       {value: 0x0008, lo: 0x8f, hi: 0x9d},
+       {value: 0x0040, lo: 0x9e, hi: 0x9e},
+       {value: 0x0008, lo: 0x9f, hi: 0xa8},
+       {value: 0x0018, lo: 0xa9, hi: 0xa9},
+       {value: 0x0040, lo: 0xaa, hi: 0xaf},
+       {value: 0x0008, lo: 0xb0, hi: 0xbf},
+       // Block 0xb7, offset 0x57a
+       {value: 0x0000, lo: 0x08},
+       {value: 0x0008, lo: 0x80, hi: 0x9e},
+       {value: 0x3308, lo: 0x9f, hi: 0x9f},
+       {value: 0x3008, lo: 0xa0, hi: 0xa2},
+       {value: 0x3308, lo: 0xa3, hi: 0xa9},
+       {value: 0x3b08, lo: 0xaa, hi: 0xaa},
+       {value: 0x0040, lo: 0xab, hi: 0xaf},
+       {value: 0x0008, lo: 0xb0, hi: 0xb9},
+       {value: 0x0040, lo: 0xba, hi: 0xbf},
+       // Block 0xb8, offset 0x583
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0008, lo: 0x80, hi: 0xb4},
+       {value: 0x3008, lo: 0xb5, hi: 0xb7},
+       {value: 0x3308, lo: 0xb8, hi: 0xbf},
+       // Block 0xb9, offset 0x587
+       {value: 0x0000, lo: 0x0e},
+       {value: 0x3008, lo: 0x80, hi: 0x81},
+       {value: 0x3b08, lo: 0x82, hi: 0x82},
+       {value: 0x3308, lo: 0x83, hi: 0x84},
+       {value: 0x3008, lo: 0x85, hi: 0x85},
+       {value: 0x3308, lo: 0x86, hi: 0x86},
+       {value: 0x0008, lo: 0x87, hi: 0x8a},
+       {value: 0x0018, lo: 0x8b, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x99},
+       {value: 0x0040, lo: 0x9a, hi: 0x9a},
+       {value: 0x0018, lo: 0x9b, hi: 0x9b},
+       {value: 0x0040, lo: 0x9c, hi: 0x9c},
+       {value: 0x0018, lo: 0x9d, hi: 0x9d},
+       {value: 0x3308, lo: 0x9e, hi: 0x9e},
+       {value: 0x0040, lo: 0x9f, hi: 0xbf},
+       // Block 0xba, offset 0x596
+       {value: 0x0000, lo: 0x07},
+       {value: 0x0008, lo: 0x80, hi: 0xaf},
+       {value: 0x3008, lo: 0xb0, hi: 0xb2},
+       {value: 0x3308, lo: 0xb3, hi: 0xb8},
+       {value: 0x3008, lo: 0xb9, hi: 0xb9},
+       {value: 0x3308, lo: 0xba, hi: 0xba},
+       {value: 0x3008, lo: 0xbb, hi: 0xbe},
+       {value: 0x3308, lo: 0xbf, hi: 0xbf},
+       // Block 0xbb, offset 0x59e
+       {value: 0x0000, lo: 0x0a},
+       {value: 0x3308, lo: 0x80, hi: 0x80},
+       {value: 0x3008, lo: 0x81, hi: 0x81},
+       {value: 0x3b08, lo: 0x82, hi: 0x82},
+       {value: 0x3308, lo: 0x83, hi: 0x83},
+       {value: 0x0008, lo: 0x84, hi: 0x85},
+       {value: 0x0018, lo: 0x86, hi: 0x86},
+       {value: 0x0008, lo: 0x87, hi: 0x87},
+       {value: 0x0040, lo: 0x88, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x99},
+       {value: 0x0040, lo: 0x9a, hi: 0xbf},
+       // Block 0xbc, offset 0x5a9
+       {value: 0x0000, lo: 0x08},
+       {value: 0x0008, lo: 0x80, hi: 0xae},
+       {value: 0x3008, lo: 0xaf, hi: 0xb1},
+       {value: 0x3308, lo: 0xb2, hi: 0xb5},
+       {value: 0x0040, lo: 0xb6, hi: 0xb7},
+       {value: 0x3008, lo: 0xb8, hi: 0xbb},
+       {value: 0x3308, lo: 0xbc, hi: 0xbd},
+       {value: 0x3008, lo: 0xbe, hi: 0xbe},
+       {value: 0x3b08, lo: 0xbf, hi: 0xbf},
+       // Block 0xbd, offset 0x5b2
+       {value: 0x0000, lo: 0x05},
+       {value: 0x3308, lo: 0x80, hi: 0x80},
+       {value: 0x0018, lo: 0x81, hi: 0x97},
+       {value: 0x0008, lo: 0x98, hi: 0x9b},
+       {value: 0x3308, lo: 0x9c, hi: 0x9d},
+       {value: 0x0040, lo: 0x9e, hi: 0xbf},
+       // Block 0xbe, offset 0x5b8
+       {value: 0x0000, lo: 0x07},
+       {value: 0x0008, lo: 0x80, hi: 0xaf},
+       {value: 0x3008, lo: 0xb0, hi: 0xb2},
+       {value: 0x3308, lo: 0xb3, hi: 0xba},
+       {value: 0x3008, lo: 0xbb, hi: 0xbc},
+       {value: 0x3308, lo: 0xbd, hi: 0xbd},
+       {value: 0x3008, lo: 0xbe, hi: 0xbe},
+       {value: 0x3b08, lo: 0xbf, hi: 0xbf},
+       // Block 0xbf, offset 0x5c0
+       {value: 0x0000, lo: 0x08},
+       {value: 0x3308, lo: 0x80, hi: 0x80},
+       {value: 0x0018, lo: 0x81, hi: 0x83},
+       {value: 0x0008, lo: 0x84, hi: 0x84},
+       {value: 0x0040, lo: 0x85, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x99},
+       {value: 0x0040, lo: 0x9a, hi: 0x9f},
+       {value: 0x0018, lo: 0xa0, hi: 0xac},
+       {value: 0x0040, lo: 0xad, hi: 0xbf},
+       // Block 0xc0, offset 0x5c9
+       {value: 0x0000, lo: 0x09},
+       {value: 0x0008, lo: 0x80, hi: 0xaa},
+       {value: 0x3308, lo: 0xab, hi: 0xab},
+       {value: 0x3008, lo: 0xac, hi: 0xac},
+       {value: 0x3308, lo: 0xad, hi: 0xad},
+       {value: 0x3008, lo: 0xae, hi: 0xaf},
+       {value: 0x3308, lo: 0xb0, hi: 0xb5},
+       {value: 0x3808, lo: 0xb6, hi: 0xb6},
+       {value: 0x3308, lo: 0xb7, hi: 0xb7},
+       {value: 0x0040, lo: 0xb8, hi: 0xbf},
+       // Block 0xc1, offset 0x5d3
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0008, lo: 0x80, hi: 0x89},
+       {value: 0x0040, lo: 0x8a, hi: 0xbf},
+       // Block 0xc2, offset 0x5d6
+       {value: 0x0000, lo: 0x0b},
+       {value: 0x0008, lo: 0x80, hi: 0x9a},
+       {value: 0x0040, lo: 0x9b, hi: 0x9c},
+       {value: 0x3308, lo: 0x9d, hi: 0x9f},
+       {value: 0x3008, lo: 0xa0, hi: 0xa1},
+       {value: 0x3308, lo: 0xa2, hi: 0xa5},
+       {value: 0x3008, lo: 0xa6, hi: 0xa6},
+       {value: 0x3308, lo: 0xa7, hi: 0xaa},
+       {value: 0x3b08, lo: 0xab, hi: 0xab},
+       {value: 0x0040, lo: 0xac, hi: 0xaf},
+       {value: 0x0008, lo: 0xb0, hi: 0xb9},
+       {value: 0x0018, lo: 0xba, hi: 0xbf},
+       // Block 0xc3, offset 0x5e2
+       {value: 0x0000, lo: 0x08},
+       {value: 0x0008, lo: 0x80, hi: 0xab},
+       {value: 0x3008, lo: 0xac, hi: 0xae},
+       {value: 0x3308, lo: 0xaf, hi: 0xb7},
+       {value: 0x3008, lo: 0xb8, hi: 0xb8},
+       {value: 0x3b08, lo: 0xb9, hi: 0xb9},
+       {value: 0x3308, lo: 0xba, hi: 0xba},
+       {value: 0x0018, lo: 0xbb, hi: 0xbb},
+       {value: 0x0040, lo: 0xbc, hi: 0xbf},
+       // Block 0xc4, offset 0x5eb
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0040, lo: 0x80, hi: 0x9f},
+       {value: 0x049d, lo: 0xa0, hi: 0xbf},
+       // Block 0xc5, offset 0x5ee
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0008, lo: 0x80, hi: 0xa9},
+       {value: 0x0018, lo: 0xaa, hi: 0xb2},
+       {value: 0x0040, lo: 0xb3, hi: 0xbe},
+       {value: 0x0008, lo: 0xbf, hi: 0xbf},
+       // Block 0xc6, offset 0x5f3
+       {value: 0x0000, lo: 0x0a},
+       {value: 0x0008, lo: 0x80, hi: 0x80},
+       {value: 0x3308, lo: 0x81, hi: 0x8a},
+       {value: 0x0008, lo: 0x8b, hi: 0xb2},
+       {value: 0x3308, lo: 0xb3, hi: 0xb3},
+       {value: 0x3b08, lo: 0xb4, hi: 0xb4},
+       {value: 0x3308, lo: 0xb5, hi: 0xb8},
+       {value: 0x3008, lo: 0xb9, hi: 0xb9},
+       {value: 0x0008, lo: 0xba, hi: 0xba},
+       {value: 0x3308, lo: 0xbb, hi: 0xbe},
+       {value: 0x0018, lo: 0xbf, hi: 0xbf},
+       // Block 0xc7, offset 0x5fe
+       {value: 0x0000, lo: 0x08},
+       {value: 0x0018, lo: 0x80, hi: 0x86},
+       {value: 0x3b08, lo: 0x87, hi: 0x87},
+       {value: 0x0040, lo: 0x88, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x90},
+       {value: 0x3308, lo: 0x91, hi: 0x96},
+       {value: 0x3008, lo: 0x97, hi: 0x98},
+       {value: 0x3308, lo: 0x99, hi: 0x9b},
+       {value: 0x0008, lo: 0x9c, hi: 0xbf},
+       // Block 0xc8, offset 0x607
+       {value: 0x0000, lo: 0x0b},
+       {value: 0x0008, lo: 0x80, hi: 0x83},
+       {value: 0x0040, lo: 0x84, hi: 0x85},
+       {value: 0x0008, lo: 0x86, hi: 0x89},
+       {value: 0x3308, lo: 0x8a, hi: 0x96},
+       {value: 0x3008, lo: 0x97, hi: 0x97},
+       {value: 0x3308, lo: 0x98, hi: 0x98},
+       {value: 0x3b08, lo: 0x99, hi: 0x99},
+       {value: 0x0018, lo: 0x9a, hi: 0x9c},
+       {value: 0x0008, lo: 0x9d, hi: 0x9d},
+       {value: 0x0018, lo: 0x9e, hi: 0xa2},
+       {value: 0x0040, lo: 0xa3, hi: 0xbf},
+       // Block 0xc9, offset 0x613
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0008, lo: 0x80, hi: 0xb8},
+       {value: 0x0040, lo: 0xb9, hi: 0xbf},
+       // Block 0xca, offset 0x616
+       {value: 0x0000, lo: 0x09},
+       {value: 0x0008, lo: 0x80, hi: 0x88},
+       {value: 0x0040, lo: 0x89, hi: 0x89},
+       {value: 0x0008, lo: 0x8a, hi: 0xae},
+       {value: 0x3008, lo: 0xaf, hi: 0xaf},
+       {value: 0x3308, lo: 0xb0, hi: 0xb6},
+       {value: 0x0040, lo: 0xb7, hi: 0xb7},
+       {value: 0x3308, lo: 0xb8, hi: 0xbd},
+       {value: 0x3008, lo: 0xbe, hi: 0xbe},
+       {value: 0x3b08, lo: 0xbf, hi: 0xbf},
+       // Block 0xcb, offset 0x620
+       {value: 0x0000, lo: 0x08},
+       {value: 0x0008, lo: 0x80, hi: 0x80},
+       {value: 0x0018, lo: 0x81, hi: 0x85},
+       {value: 0x0040, lo: 0x86, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x99},
+       {value: 0x0018, lo: 0x9a, hi: 0xac},
+       {value: 0x0040, lo: 0xad, hi: 0xaf},
+       {value: 0x0018, lo: 0xb0, hi: 0xb1},
+       {value: 0x0008, lo: 0xb2, hi: 0xbf},
+       // Block 0xcc, offset 0x629
+       {value: 0x0000, lo: 0x0b},
+       {value: 0x0008, lo: 0x80, hi: 0x8f},
+       {value: 0x0040, lo: 0x90, hi: 0x91},
+       {value: 0x3308, lo: 0x92, hi: 0xa7},
+       {value: 0x0040, lo: 0xa8, hi: 0xa8},
+       {value: 0x3008, lo: 0xa9, hi: 0xa9},
+       {value: 0x3308, lo: 0xaa, hi: 0xb0},
+       {value: 0x3008, lo: 0xb1, hi: 0xb1},
+       {value: 0x3308, lo: 0xb2, hi: 0xb3},
+       {value: 0x3008, lo: 0xb4, hi: 0xb4},
+       {value: 0x3308, lo: 0xb5, hi: 0xb6},
+       {value: 0x0040, lo: 0xb7, hi: 0xbf},
+       // Block 0xcd, offset 0x635
+       {value: 0x0000, lo: 0x0c},
+       {value: 0x0008, lo: 0x80, hi: 0x86},
+       {value: 0x0040, lo: 0x87, hi: 0x87},
+       {value: 0x0008, lo: 0x88, hi: 0x89},
+       {value: 0x0040, lo: 0x8a, hi: 0x8a},
+       {value: 0x0008, lo: 0x8b, hi: 0xb0},
+       {value: 0x3308, lo: 0xb1, hi: 0xb6},
+       {value: 0x0040, lo: 0xb7, hi: 0xb9},
+       {value: 0x3308, lo: 0xba, hi: 0xba},
+       {value: 0x0040, lo: 0xbb, hi: 0xbb},
+       {value: 0x3308, lo: 0xbc, hi: 0xbd},
+       {value: 0x0040, lo: 0xbe, hi: 0xbe},
+       {value: 0x3308, lo: 0xbf, hi: 0xbf},
+       // Block 0xce, offset 0x642
+       {value: 0x0000, lo: 0x0c},
+       {value: 0x3308, lo: 0x80, hi: 0x83},
+       {value: 0x3b08, lo: 0x84, hi: 0x85},
+       {value: 0x0008, lo: 0x86, hi: 0x86},
+       {value: 0x3308, lo: 0x87, hi: 0x87},
+       {value: 0x0040, lo: 0x88, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x99},
+       {value: 0x0040, lo: 0x9a, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xa5},
+       {value: 0x0040, lo: 0xa6, hi: 0xa6},
+       {value: 0x0008, lo: 0xa7, hi: 0xa8},
+       {value: 0x0040, lo: 0xa9, hi: 0xa9},
+       {value: 0x0008, lo: 0xaa, hi: 0xbf},
+       // Block 0xcf, offset 0x64f
+       {value: 0x0000, lo: 0x0d},
+       {value: 0x0008, lo: 0x80, hi: 0x89},
+       {value: 0x3008, lo: 0x8a, hi: 0x8e},
+       {value: 0x0040, lo: 0x8f, hi: 0x8f},
+       {value: 0x3308, lo: 0x90, hi: 0x91},
+       {value: 0x0040, lo: 0x92, hi: 0x92},
+       {value: 0x3008, lo: 0x93, hi: 0x94},
+       {value: 0x3308, lo: 0x95, hi: 0x95},
+       {value: 0x3008, lo: 0x96, hi: 0x96},
+       {value: 0x3b08, lo: 0x97, hi: 0x97},
+       {value: 0x0008, lo: 0x98, hi: 0x98},
+       {value: 0x0040, lo: 0x99, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xa9},
+       {value: 0x0040, lo: 0xaa, hi: 0xbf},
+       // Block 0xd0, offset 0x65d
+       {value: 0x0000, lo: 0x06},
+       {value: 0x0040, lo: 0x80, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xb2},
+       {value: 0x3308, lo: 0xb3, hi: 0xb4},
+       {value: 0x3008, lo: 0xb5, hi: 0xb6},
+       {value: 0x0018, lo: 0xb7, hi: 0xb8},
+       {value: 0x0040, lo: 0xb9, hi: 0xbf},
+       // Block 0xd1, offset 0x664
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0008, lo: 0x80, hi: 0x99},
+       {value: 0x0040, lo: 0x9a, hi: 0xbf},
+       // Block 0xd2, offset 0x667
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0018, lo: 0x80, hi: 0xae},
+       {value: 0x0040, lo: 0xaf, hi: 0xaf},
+       {value: 0x0018, lo: 0xb0, hi: 0xb4},
+       {value: 0x0040, lo: 0xb5, hi: 0xbf},
+       // Block 0xd3, offset 0x66c
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0008, lo: 0x80, hi: 0x83},
+       {value: 0x0040, lo: 0x84, hi: 0xbf},
+       // Block 0xd4, offset 0x66f
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0008, lo: 0x80, hi: 0xae},
+       {value: 0x0040, lo: 0xaf, hi: 0xbf},
+       // Block 0xd5, offset 0x672
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0008, lo: 0x80, hi: 0x86},
+       {value: 0x0040, lo: 0x87, hi: 0xbf},
+       // Block 0xd6, offset 0x675
+       {value: 0x0000, lo: 0x06},
+       {value: 0x0008, lo: 0x80, hi: 0x9e},
+       {value: 0x0040, lo: 0x9f, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xa9},
+       {value: 0x0040, lo: 0xaa, hi: 0xad},
+       {value: 0x0018, lo: 0xae, hi: 0xaf},
+       {value: 0x0040, lo: 0xb0, hi: 0xbf},
+       // Block 0xd7, offset 0x67c
+       {value: 0x0000, lo: 0x06},
+       {value: 0x0040, lo: 0x80, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0xad},
+       {value: 0x0040, lo: 0xae, hi: 0xaf},
+       {value: 0x3308, lo: 0xb0, hi: 0xb4},
+       {value: 0x0018, lo: 0xb5, hi: 0xb5},
+       {value: 0x0040, lo: 0xb6, hi: 0xbf},
+       // Block 0xd8, offset 0x683
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0008, lo: 0x80, hi: 0xaf},
+       {value: 0x3308, lo: 0xb0, hi: 0xb6},
+       {value: 0x0018, lo: 0xb7, hi: 0xbf},
+       // Block 0xd9, offset 0x687
+       {value: 0x0000, lo: 0x0a},
+       {value: 0x0008, lo: 0x80, hi: 0x83},
+       {value: 0x0018, lo: 0x84, hi: 0x85},
+       {value: 0x0040, lo: 0x86, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x99},
+       {value: 0x0040, lo: 0x9a, hi: 0x9a},
+       {value: 0x0018, lo: 0x9b, hi: 0xa1},
+       {value: 0x0040, lo: 0xa2, hi: 0xa2},
+       {value: 0x0008, lo: 0xa3, hi: 0xb7},
+       {value: 0x0040, lo: 0xb8, hi: 0xbc},
+       {value: 0x0008, lo: 0xbd, hi: 0xbf},
+       // Block 0xda, offset 0x692
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0008, lo: 0x80, hi: 0x8f},
+       {value: 0x0040, lo: 0x90, hi: 0xbf},
+       // Block 0xdb, offset 0x695
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0040, lo: 0x80, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xbf},
+       // Block 0xdc, offset 0x698
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0018, lo: 0x80, hi: 0x9a},
+       {value: 0x0040, lo: 0x9b, hi: 0xbf},
+       // Block 0xdd, offset 0x69b
+       {value: 0x0000, lo: 0x05},
+       {value: 0x0008, lo: 0x80, hi: 0x84},
+       {value: 0x0040, lo: 0x85, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x90},
+       {value: 0x3008, lo: 0x91, hi: 0xbe},
+       {value: 0x0040, lo: 0xbf, hi: 0xbf},
+       // Block 0xde, offset 0x6a1
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0040, lo: 0x80, hi: 0x8e},
+       {value: 0x3308, lo: 0x8f, hi: 0x92},
+       {value: 0x0008, lo: 0x93, hi: 0x9f},
+       {value: 0x0040, lo: 0xa0, hi: 0xbf},
+       // Block 0xdf, offset 0x6a6
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0040, lo: 0x80, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xa1},
+       {value: 0x0040, lo: 0xa2, hi: 0xbf},
+       // Block 0xe0, offset 0x6aa
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0008, lo: 0x80, hi: 0xb1},
+       {value: 0x0040, lo: 0xb2, hi: 0xbf},
+       // Block 0xe1, offset 0x6ad
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0008, lo: 0x80, hi: 0xb2},
+       {value: 0x0040, lo: 0xb3, hi: 0xbf},
+       // Block 0xe2, offset 0x6b0
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0008, lo: 0x80, hi: 0x9e},
+       {value: 0x0040, lo: 0x9f, hi: 0xbf},
+       // Block 0xe3, offset 0x6b3
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0040, lo: 0x80, hi: 0xaf},
+       {value: 0x0008, lo: 0xb0, hi: 0xbf},
+       // Block 0xe4, offset 0x6b6
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0008, lo: 0x80, hi: 0xbb},
+       {value: 0x0040, lo: 0xbc, hi: 0xbf},
+       // Block 0xe5, offset 0x6b9
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0008, lo: 0x80, hi: 0xaa},
+       {value: 0x0040, lo: 0xab, hi: 0xaf},
+       {value: 0x0008, lo: 0xb0, hi: 0xbc},
+       {value: 0x0040, lo: 0xbd, hi: 0xbf},
+       // Block 0xe6, offset 0x6be
+       {value: 0x0000, lo: 0x09},
+       {value: 0x0008, lo: 0x80, hi: 0x88},
+       {value: 0x0040, lo: 0x89, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x99},
+       {value: 0x0040, lo: 0x9a, hi: 0x9b},
+       {value: 0x0018, lo: 0x9c, hi: 0x9c},
+       {value: 0x3308, lo: 0x9d, hi: 0x9e},
+       {value: 0x0018, lo: 0x9f, hi: 0x9f},
+       {value: 0x03c0, lo: 0xa0, hi: 0xa3},
+       {value: 0x0040, lo: 0xa4, hi: 0xbf},
+       // Block 0xe7, offset 0x6c8
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0018, lo: 0x80, hi: 0xb5},
+       {value: 0x0040, lo: 0xb6, hi: 0xbf},
+       // Block 0xe8, offset 0x6cb
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0018, lo: 0x80, hi: 0xa6},
+       {value: 0x0040, lo: 0xa7, hi: 0xa8},
+       {value: 0x0018, lo: 0xa9, hi: 0xbf},
+       // Block 0xe9, offset 0x6cf
+       {value: 0x0000, lo: 0x0e},
+       {value: 0x0018, lo: 0x80, hi: 0x9d},
+       {value: 0xb5b9, lo: 0x9e, hi: 0x9e},
+       {value: 0xb601, lo: 0x9f, hi: 0x9f},
+       {value: 0xb649, lo: 0xa0, hi: 0xa0},
+       {value: 0xb6b1, lo: 0xa1, hi: 0xa1},
+       {value: 0xb719, lo: 0xa2, hi: 0xa2},
+       {value: 0xb781, lo: 0xa3, hi: 0xa3},
+       {value: 0xb7e9, lo: 0xa4, hi: 0xa4},
+       {value: 0x3018, lo: 0xa5, hi: 0xa6},
+       {value: 0x3318, lo: 0xa7, hi: 0xa9},
+       {value: 0x0018, lo: 0xaa, hi: 0xac},
+       {value: 0x3018, lo: 0xad, hi: 0xb2},
+       {value: 0x0340, lo: 0xb3, hi: 0xba},
+       {value: 0x3318, lo: 0xbb, hi: 0xbf},
+       // Block 0xea, offset 0x6de
+       {value: 0x0000, lo: 0x0b},
+       {value: 0x3318, lo: 0x80, hi: 0x82},
+       {value: 0x0018, lo: 0x83, hi: 0x84},
+       {value: 0x3318, lo: 0x85, hi: 0x8b},
+       {value: 0x0018, lo: 0x8c, hi: 0xa9},
+       {value: 0x3318, lo: 0xaa, hi: 0xad},
+       {value: 0x0018, lo: 0xae, hi: 0xba},
+       {value: 0xb851, lo: 0xbb, hi: 0xbb},
+       {value: 0xb899, lo: 0xbc, hi: 0xbc},
+       {value: 0xb8e1, lo: 0xbd, hi: 0xbd},
+       {value: 0xb949, lo: 0xbe, hi: 0xbe},
+       {value: 0xb9b1, lo: 0xbf, hi: 0xbf},
+       // Block 0xeb, offset 0x6ea
+       {value: 0x0000, lo: 0x03},
+       {value: 0xba19, lo: 0x80, hi: 0x80},
+       {value: 0x0018, lo: 0x81, hi: 0xa8},
+       {value: 0x0040, lo: 0xa9, hi: 0xbf},
+       // Block 0xec, offset 0x6ee
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0018, lo: 0x80, hi: 0x81},
+       {value: 0x3318, lo: 0x82, hi: 0x84},
+       {value: 0x0018, lo: 0x85, hi: 0x85},
+       {value: 0x0040, lo: 0x86, hi: 0xbf},
+       // Block 0xed, offset 0x6f3
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0040, lo: 0x80, hi: 0x9f},
+       {value: 0x0018, lo: 0xa0, hi: 0xb3},
+       {value: 0x0040, lo: 0xb4, hi: 0xbf},
+       // Block 0xee, offset 0x6f7
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0018, lo: 0x80, hi: 0x96},
+       {value: 0x0040, lo: 0x97, hi: 0x9f},
+       {value: 0x0018, lo: 0xa0, hi: 0xb8},
+       {value: 0x0040, lo: 0xb9, hi: 0xbf},
+       // Block 0xef, offset 0x6fc
+       {value: 0x0000, lo: 0x03},
+       {value: 0x3308, lo: 0x80, hi: 0xb6},
+       {value: 0x0018, lo: 0xb7, hi: 0xba},
+       {value: 0x3308, lo: 0xbb, hi: 0xbf},
+       // Block 0xf0, offset 0x700
+       {value: 0x0000, lo: 0x04},
+       {value: 0x3308, lo: 0x80, hi: 0xac},
+       {value: 0x0018, lo: 0xad, hi: 0xb4},
+       {value: 0x3308, lo: 0xb5, hi: 0xb5},
+       {value: 0x0018, lo: 0xb6, hi: 0xbf},
+       // Block 0xf1, offset 0x705
+       {value: 0x0000, lo: 0x08},
+       {value: 0x0018, lo: 0x80, hi: 0x83},
+       {value: 0x3308, lo: 0x84, hi: 0x84},
+       {value: 0x0018, lo: 0x85, hi: 0x8b},
+       {value: 0x0040, lo: 0x8c, hi: 0x9a},
+       {value: 0x3308, lo: 0x9b, hi: 0x9f},
+       {value: 0x0040, lo: 0xa0, hi: 0xa0},
+       {value: 0x3308, lo: 0xa1, hi: 0xaf},
+       {value: 0x0040, lo: 0xb0, hi: 0xbf},
+       // Block 0xf2, offset 0x70e
+       {value: 0x0000, lo: 0x0a},
+       {value: 0x3308, lo: 0x80, hi: 0x86},
+       {value: 0x0040, lo: 0x87, hi: 0x87},
+       {value: 0x3308, lo: 0x88, hi: 0x98},
+       {value: 0x0040, lo: 0x99, hi: 0x9a},
+       {value: 0x3308, lo: 0x9b, hi: 0xa1},
+       {value: 0x0040, lo: 0xa2, hi: 0xa2},
+       {value: 0x3308, lo: 0xa3, hi: 0xa4},
+       {value: 0x0040, lo: 0xa5, hi: 0xa5},
+       {value: 0x3308, lo: 0xa6, hi: 0xaa},
+       {value: 0x0040, lo: 0xab, hi: 0xbf},
+       // Block 0xf3, offset 0x719
+       {value: 0x0000, lo: 0x05},
+       {value: 0x0808, lo: 0x80, hi: 0x84},
+       {value: 0x0040, lo: 0x85, hi: 0x86},
+       {value: 0x0818, lo: 0x87, hi: 0x8f},
+       {value: 0x3308, lo: 0x90, hi: 0x96},
+       {value: 0x0040, lo: 0x97, hi: 0xbf},
+       // Block 0xf4, offset 0x71f
+       {value: 0x0000, lo: 0x07},
+       {value: 0x0a08, lo: 0x80, hi: 0x83},
+       {value: 0x3308, lo: 0x84, hi: 0x8a},
+       {value: 0x0040, lo: 0x8b, hi: 0x8f},
+       {value: 0x0808, lo: 0x90, hi: 0x99},
+       {value: 0x0040, lo: 0x9a, hi: 0x9d},
+       {value: 0x0818, lo: 0x9e, hi: 0x9f},
+       {value: 0x0040, lo: 0xa0, hi: 0xbf},
+       // Block 0xf5, offset 0x727
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0040, lo: 0x80, hi: 0xb0},
+       {value: 0x0818, lo: 0xb1, hi: 0xbf},
+       // Block 0xf6, offset 0x72a
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0818, lo: 0x80, hi: 0xb4},
+       {value: 0x0040, lo: 0xb5, hi: 0xbf},
+       // Block 0xf7, offset 0x72d
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0040, lo: 0x80, hi: 0xaf},
+       {value: 0x0018, lo: 0xb0, hi: 0xb1},
+       {value: 0x0040, lo: 0xb2, hi: 0xbf},
+       // Block 0xf8, offset 0x731
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0018, lo: 0x80, hi: 0xab},
+       {value: 0x0040, lo: 0xac, hi: 0xaf},
+       {value: 0x0018, lo: 0xb0, hi: 0xbf},
+       // Block 0xf9, offset 0x735
+       {value: 0x0000, lo: 0x05},
+       {value: 0x0018, lo: 0x80, hi: 0x93},
+       {value: 0x0040, lo: 0x94, hi: 0x9f},
+       {value: 0x0018, lo: 0xa0, hi: 0xae},
+       {value: 0x0040, lo: 0xaf, hi: 0xb0},
+       {value: 0x0018, lo: 0xb1, hi: 0xbf},
+       // Block 0xfa, offset 0x73b
+       {value: 0x0000, lo: 0x05},
+       {value: 0x0040, lo: 0x80, hi: 0x80},
+       {value: 0x0018, lo: 0x81, hi: 0x8f},
+       {value: 0x0040, lo: 0x90, hi: 0x90},
+       {value: 0x0018, lo: 0x91, hi: 0xb5},
+       {value: 0x0040, lo: 0xb6, hi: 0xbf},
+       // Block 0xfb, offset 0x741
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0018, lo: 0x80, hi: 0x8f},
+       {value: 0xc1c1, lo: 0x90, hi: 0x90},
+       {value: 0x0018, lo: 0x91, hi: 0xac},
+       {value: 0x0040, lo: 0xad, hi: 0xbf},
+       // Block 0xfc, offset 0x746
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0040, lo: 0x80, hi: 0xa5},
+       {value: 0x0018, lo: 0xa6, hi: 0xbf},
+       // Block 0xfd, offset 0x749
+       {value: 0x0000, lo: 0x0f},
+       {value: 0xc7e9, lo: 0x80, hi: 0x80},
+       {value: 0xc839, lo: 0x81, hi: 0x81},
+       {value: 0xc889, lo: 0x82, hi: 0x82},
+       {value: 0xc8d9, lo: 0x83, hi: 0x83},
+       {value: 0xc929, lo: 0x84, hi: 0x84},
+       {value: 0xc979, lo: 0x85, hi: 0x85},
+       {value: 0xc9c9, lo: 0x86, hi: 0x86},
+       {value: 0xca19, lo: 0x87, hi: 0x87},
+       {value: 0xca69, lo: 0x88, hi: 0x88},
+       {value: 0x0040, lo: 0x89, hi: 0x8f},
+       {value: 0xcab9, lo: 0x90, hi: 0x90},
+       {value: 0xcad9, lo: 0x91, hi: 0x91},
+       {value: 0x0040, lo: 0x92, hi: 0x9f},
+       {value: 0x0018, lo: 0xa0, hi: 0xa5},
+       {value: 0x0040, lo: 0xa6, hi: 0xbf},
+       // Block 0xfe, offset 0x759
+       {value: 0x0000, lo: 0x06},
+       {value: 0x0018, lo: 0x80, hi: 0x94},
+       {value: 0x0040, lo: 0x95, hi: 0x9f},
+       {value: 0x0018, lo: 0xa0, hi: 0xac},
+       {value: 0x0040, lo: 0xad, hi: 0xaf},
+       {value: 0x0018, lo: 0xb0, hi: 0xb9},
+       {value: 0x0040, lo: 0xba, hi: 0xbf},
+       // Block 0xff, offset 0x760
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0018, lo: 0x80, hi: 0xb3},
+       {value: 0x0040, lo: 0xb4, hi: 0xbf},
+       // Block 0x100, offset 0x763
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0018, lo: 0x80, hi: 0x98},
+       {value: 0x0040, lo: 0x99, hi: 0xbf},
+       // Block 0x101, offset 0x766
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0018, lo: 0x80, hi: 0x8b},
+       {value: 0x0040, lo: 0x8c, hi: 0x8f},
+       {value: 0x0018, lo: 0x90, hi: 0xbf},
+       // Block 0x102, offset 0x76a
+       {value: 0x0000, lo: 0x05},
+       {value: 0x0018, lo: 0x80, hi: 0x87},
+       {value: 0x0040, lo: 0x88, hi: 0x8f},
+       {value: 0x0018, lo: 0x90, hi: 0x99},
+       {value: 0x0040, lo: 0x9a, hi: 0x9f},
+       {value: 0x0018, lo: 0xa0, hi: 0xbf},
+       // Block 0x103, offset 0x770
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0018, lo: 0x80, hi: 0x87},
+       {value: 0x0040, lo: 0x88, hi: 0x8f},
+       {value: 0x0018, lo: 0x90, hi: 0xad},
+       {value: 0x0040, lo: 0xae, hi: 0xbf},
+       // Block 0x104, offset 0x775
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0018, lo: 0x80, hi: 0x8b},
+       {value: 0x0040, lo: 0x8c, hi: 0x8f},
+       {value: 0x0018, lo: 0x90, hi: 0xbe},
+       {value: 0x0040, lo: 0xbf, hi: 0xbf},
+       // Block 0x105, offset 0x77a
+       {value: 0x0000, lo: 0x07},
+       {value: 0x0018, lo: 0x80, hi: 0xb0},
+       {value: 0x0040, lo: 0xb1, hi: 0xb2},
+       {value: 0x0018, lo: 0xb3, hi: 0xb6},
+       {value: 0x0040, lo: 0xb7, hi: 0xb9},
+       {value: 0x0018, lo: 0xba, hi: 0xba},
+       {value: 0x0040, lo: 0xbb, hi: 0xbb},
+       {value: 0x0018, lo: 0xbc, hi: 0xbf},
+       // Block 0x106, offset 0x782
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0018, lo: 0x80, hi: 0xa2},
+       {value: 0x0040, lo: 0xa3, hi: 0xaf},
+       {value: 0x0018, lo: 0xb0, hi: 0xb9},
+       {value: 0x0040, lo: 0xba, hi: 0xbf},
+       // Block 0x107, offset 0x787
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0018, lo: 0x80, hi: 0x82},
+       {value: 0x0040, lo: 0x83, hi: 0x8f},
+       {value: 0x0018, lo: 0x90, hi: 0xbf},
+       // Block 0x108, offset 0x78b
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0040, lo: 0x80, hi: 0x9f},
+       {value: 0x0018, lo: 0xa0, hi: 0xad},
+       {value: 0x0040, lo: 0xae, hi: 0xbf},
+       // Block 0x109, offset 0x78f
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0008, lo: 0x80, hi: 0x96},
+       {value: 0x0040, lo: 0x97, hi: 0xbf},
+       // Block 0x10a, offset 0x792
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0008, lo: 0x80, hi: 0xb4},
+       {value: 0x0040, lo: 0xb5, hi: 0xbf},
+       // Block 0x10b, offset 0x795
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0008, lo: 0x80, hi: 0x9d},
+       {value: 0x0040, lo: 0x9e, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xbf},
+       // Block 0x10c, offset 0x799
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0008, lo: 0x80, hi: 0xa1},
+       {value: 0x0040, lo: 0xa2, hi: 0xaf},
+       {value: 0x0008, lo: 0xb0, hi: 0xbf},
+       // Block 0x10d, offset 0x79d
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0008, lo: 0x80, hi: 0xa0},
+       {value: 0x0040, lo: 0xa1, hi: 0xbf},
+       // Block 0x10e, offset 0x7a0
+       {value: 0x0020, lo: 0x0f},
+       {value: 0xdeb9, lo: 0x80, hi: 0x89},
+       {value: 0x8dfd, lo: 0x8a, hi: 0x8a},
+       {value: 0xdff9, lo: 0x8b, hi: 0x9c},
+       {value: 0x8e1d, lo: 0x9d, hi: 0x9d},
+       {value: 0xe239, lo: 0x9e, hi: 0xa2},
+       {value: 0x8e3d, lo: 0xa3, hi: 0xa3},
+       {value: 0xe2d9, lo: 0xa4, hi: 0xab},
+       {value: 0x7ed5, lo: 0xac, hi: 0xac},
+       {value: 0xe3d9, lo: 0xad, hi: 0xaf},
+       {value: 0x8e5d, lo: 0xb0, hi: 0xb0},
+       {value: 0xe439, lo: 0xb1, hi: 0xb6},
+       {value: 0x8e7d, lo: 0xb7, hi: 0xb9},
+       {value: 0xe4f9, lo: 0xba, hi: 0xba},
+       {value: 0x8edd, lo: 0xbb, hi: 0xbb},
+       {value: 0xe519, lo: 0xbc, hi: 0xbf},
+       // Block 0x10f, offset 0x7b0
+       {value: 0x0020, lo: 0x10},
+       {value: 0x937d, lo: 0x80, hi: 0x80},
+       {value: 0xf099, lo: 0x81, hi: 0x86},
+       {value: 0x939d, lo: 0x87, hi: 0x8a},
+       {value: 0xd9f9, lo: 0x8b, hi: 0x8b},
+       {value: 0xf159, lo: 0x8c, hi: 0x96},
+       {value: 0x941d, lo: 0x97, hi: 0x97},
+       {value: 0xf2b9, lo: 0x98, hi: 0xa3},
+       {value: 0x943d, lo: 0xa4, hi: 0xa6},
+       {value: 0xf439, lo: 0xa7, hi: 0xaa},
+       {value: 0x949d, lo: 0xab, hi: 0xab},
+       {value: 0xf4b9, lo: 0xac, hi: 0xac},
+       {value: 0x94bd, lo: 0xad, hi: 0xad},
+       {value: 0xf4d9, lo: 0xae, hi: 0xaf},
+       {value: 0x94dd, lo: 0xb0, hi: 0xb1},
+       {value: 0xf519, lo: 0xb2, hi: 0xbe},
+       {value: 0x2040, lo: 0xbf, hi: 0xbf},
+       // Block 0x110, offset 0x7c1
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0040, lo: 0x80, hi: 0x80},
+       {value: 0x0340, lo: 0x81, hi: 0x81},
+       {value: 0x0040, lo: 0x82, hi: 0x9f},
+       {value: 0x0340, lo: 0xa0, hi: 0xbf},
+       // Block 0x111, offset 0x7c6
+       {value: 0x0000, lo: 0x01},
+       {value: 0x0340, lo: 0x80, hi: 0xbf},
+       // Block 0x112, offset 0x7c8
+       {value: 0x0000, lo: 0x01},
+       {value: 0x33c0, lo: 0x80, hi: 0xbf},
+       // Block 0x113, offset 0x7ca
+       {value: 0x0000, lo: 0x02},
+       {value: 0x33c0, lo: 0x80, hi: 0xaf},
+       {value: 0x0040, lo: 0xb0, hi: 0xbf},
+}
+
+// Total table size 42466 bytes (41KiB); checksum: 355A58A4
diff --git a/vendor/golang.org/x/net/idna/tables9.0.0.go b/vendor/golang.org/x/net/idna/tables9.0.0.go
new file mode 100644 (file)
index 0000000..8b65fa1
--- /dev/null
@@ -0,0 +1,4486 @@
+// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT.
+
+// +build !go1.10
+
+package idna
+
+// UnicodeVersion is the Unicode version from which the tables in this package are derived.
+const UnicodeVersion = "9.0.0"
+
+var mappings string = "" + // Size: 8175 bytes
+       "\x00\x01 \x03 ̈\x01a\x03 ̄\x012\x013\x03 ́\x03 ̧\x011\x01o\x051⁄4\x051⁄2" +
+       "\x053⁄4\x03i̇\x03l·\x03ʼn\x01s\x03dž\x03ⱥ\x03ⱦ\x01h\x01j\x01r\x01w\x01y" +
+       "\x03 ̆\x03 ̇\x03 ̊\x03 ̨\x03 ̃\x03 ̋\x01l\x01x\x04̈́\x03 ι\x01;\x05 ̈́" +
+       "\x04եւ\x04اٴ\x04وٴ\x04ۇٴ\x04يٴ\x06क़\x06ख़\x06ग़\x06ज़\x06ड़\x06ढ़\x06फ़" +
+       "\x06य़\x06ড়\x06ঢ়\x06য়\x06ਲ਼\x06ਸ਼\x06ਖ਼\x06ਗ਼\x06ਜ਼\x06ਫ਼\x06ଡ଼\x06ଢ଼" +
+       "\x06ํา\x06ໍາ\x06ຫນ\x06ຫມ\x06གྷ\x06ཌྷ\x06དྷ\x06བྷ\x06ཛྷ\x06ཀྵ\x06ཱི\x06ཱུ" +
+       "\x06ྲྀ\x09ྲཱྀ\x06ླྀ\x09ླཱྀ\x06ཱྀ\x06ྒྷ\x06ྜྷ\x06ྡྷ\x06ྦྷ\x06ྫྷ\x06ྐྵ\x02" +
+       "в\x02д\x02о\x02с\x02т\x02ъ\x02ѣ\x02æ\x01b\x01d\x01e\x02ǝ\x01g\x01i\x01k" +
+       "\x01m\x01n\x02ȣ\x01p\x01t\x01u\x02ɐ\x02ɑ\x02ə\x02ɛ\x02ɜ\x02ŋ\x02ɔ\x02ɯ" +
+       "\x01v\x02β\x02γ\x02δ\x02φ\x02χ\x02ρ\x02н\x02ɒ\x01c\x02ɕ\x02ð\x01f\x02ɟ" +
+       "\x02ɡ\x02ɥ\x02ɨ\x02ɩ\x02ɪ\x02ʝ\x02ɭ\x02ʟ\x02ɱ\x02ɰ\x02ɲ\x02ɳ\x02ɴ\x02ɵ" +
+       "\x02ɸ\x02ʂ\x02ʃ\x02ƫ\x02ʉ\x02ʊ\x02ʋ\x02ʌ\x01z\x02ʐ\x02ʑ\x02ʒ\x02θ\x02ss" +
+       "\x02ά\x02έ\x02ή\x02ί\x02ό\x02ύ\x02ώ\x05ἀι\x05ἁι\x05ἂι\x05ἃι\x05ἄι\x05ἅι" +
+       "\x05ἆι\x05ἇι\x05ἠι\x05ἡι\x05ἢι\x05ἣι\x05ἤι\x05ἥι\x05ἦι\x05ἧι\x05ὠι\x05ὡι" +
+       "\x05ὢι\x05ὣι\x05ὤι\x05ὥι\x05ὦι\x05ὧι\x05ὰι\x04αι\x04άι\x05ᾶι\x02ι\x05 ̈͂" +
+       "\x05ὴι\x04ηι\x04ήι\x05ῆι\x05 ̓̀\x05 ̓́\x05 ̓͂\x02ΐ\x05 ̔̀\x05 ̔́\x05 ̔͂" +
+       "\x02ΰ\x05 ̈̀\x01`\x05ὼι\x04ωι\x04ώι\x05ῶι\x06′′\x09′′′\x06‵‵\x09‵‵‵\x02!" +
+       "!\x02??\x02?!\x02!?\x0c′′′′\x010\x014\x015\x016\x017\x018\x019\x01+\x01=" +
+       "\x01(\x01)\x02rs\x02ħ\x02no\x01q\x02sm\x02tm\x02ω\x02å\x02א\x02ב\x02ג" +
+       "\x02ד\x02π\x051⁄7\x051⁄9\x061⁄10\x051⁄3\x052⁄3\x051⁄5\x052⁄5\x053⁄5\x054" +
+       "⁄5\x051⁄6\x055⁄6\x051⁄8\x053⁄8\x055⁄8\x057⁄8\x041⁄\x02ii\x02iv\x02vi" +
+       "\x04viii\x02ix\x02xi\x050⁄3\x06∫∫\x09∫∫∫\x06∮∮\x09∮∮∮\x0210\x0211\x0212" +
+       "\x0213\x0214\x0215\x0216\x0217\x0218\x0219\x0220\x04(10)\x04(11)\x04(12)" +
+       "\x04(13)\x04(14)\x04(15)\x04(16)\x04(17)\x04(18)\x04(19)\x04(20)\x0c∫∫∫∫" +
+       "\x02==\x05⫝̸\x02ɫ\x02ɽ\x02ȿ\x02ɀ\x01.\x04 ゙\x04 ゚\x06より\x06コト\x05(ᄀ)\x05" +
+       "(ᄂ)\x05(ᄃ)\x05(ᄅ)\x05(ᄆ)\x05(ᄇ)\x05(ᄉ)\x05(ᄋ)\x05(ᄌ)\x05(ᄎ)\x05(ᄏ)\x05(ᄐ" +
+       ")\x05(ᄑ)\x05(ᄒ)\x05(가)\x05(나)\x05(다)\x05(라)\x05(마)\x05(바)\x05(사)\x05(아)" +
+       "\x05(자)\x05(차)\x05(카)\x05(타)\x05(파)\x05(하)\x05(주)\x08(오전)\x08(오후)\x05(一)" +
+       "\x05(二)\x05(三)\x05(四)\x05(五)\x05(六)\x05(七)\x05(八)\x05(九)\x05(十)\x05(月)" +
+       "\x05(火)\x05(水)\x05(木)\x05(金)\x05(土)\x05(日)\x05(株)\x05(有)\x05(社)\x05(名)" +
+       "\x05(特)\x05(財)\x05(祝)\x05(労)\x05(代)\x05(呼)\x05(学)\x05(監)\x05(企)\x05(資)" +
+       "\x05(協)\x05(祭)\x05(休)\x05(自)\x05(至)\x0221\x0222\x0223\x0224\x0225\x0226" +
+       "\x0227\x0228\x0229\x0230\x0231\x0232\x0233\x0234\x0235\x06참고\x06주의\x0236" +
+       "\x0237\x0238\x0239\x0240\x0241\x0242\x0243\x0244\x0245\x0246\x0247\x0248" +
+       "\x0249\x0250\x041月\x042月\x043月\x044月\x045月\x046月\x047月\x048月\x049月\x0510" +
+       "月\x0511月\x0512月\x02hg\x02ev\x0cアパート\x0cアルファ\x0cアンペア\x09アール\x0cイニング\x09" +
+       "インチ\x09ウォン\x0fエスクード\x0cエーカー\x09オンス\x09オーム\x09カイリ\x0cカラット\x0cカロリー\x09ガロ" +
+       "ン\x09ガンマ\x06ギガ\x09ギニー\x0cキュリー\x0cギルダー\x06キロ\x0fキログラム\x12キロメートル\x0fキロワッ" +
+       "ト\x09グラム\x0fグラムトン\x0fクルゼイロ\x0cクローネ\x09ケース\x09コルナ\x09コーポ\x0cサイクル\x0fサンチ" +
+       "ーム\x0cシリング\x09センチ\x09セント\x09ダース\x06デシ\x06ドル\x06トン\x06ナノ\x09ノット\x09ハイツ" +
+       "\x0fパーセント\x09パーツ\x0cバーレル\x0fピアストル\x09ピクル\x06ピコ\x06ビル\x0fファラッド\x0cフィート" +
+       "\x0fブッシェル\x09フラン\x0fヘクタール\x06ペソ\x09ペニヒ\x09ヘルツ\x09ペンス\x09ページ\x09ベータ\x0cポイ" +
+       "ント\x09ボルト\x06ホン\x09ポンド\x09ホール\x09ホーン\x0cマイクロ\x09マイル\x09マッハ\x09マルク\x0fマ" +
+       "ンション\x0cミクロン\x06ミリ\x0fミリバール\x06メガ\x0cメガトン\x0cメートル\x09ヤード\x09ヤール\x09ユアン" +
+       "\x0cリットル\x06リラ\x09ルピー\x0cルーブル\x06レム\x0fレントゲン\x09ワット\x040点\x041点\x042点" +
+       "\x043点\x044点\x045点\x046点\x047点\x048点\x049点\x0510点\x0511点\x0512点\x0513点" +
+       "\x0514点\x0515点\x0516点\x0517点\x0518点\x0519点\x0520点\x0521点\x0522点\x0523点" +
+       "\x0524点\x02da\x02au\x02ov\x02pc\x02dm\x02iu\x06平成\x06昭和\x06大正\x06明治\x0c株" +
+       "式会社\x02pa\x02na\x02ma\x02ka\x02kb\x02mb\x02gb\x04kcal\x02pf\x02nf\x02m" +
+       "g\x02kg\x02hz\x02ml\x02dl\x02kl\x02fm\x02nm\x02mm\x02cm\x02km\x02m2\x02m" +
+       "3\x05m∕s\x06m∕s2\x07rad∕s\x08rad∕s2\x02ps\x02ns\x02ms\x02pv\x02nv\x02mv" +
+       "\x02kv\x02pw\x02nw\x02mw\x02kw\x02bq\x02cc\x02cd\x06c∕kg\x02db\x02gy\x02" +
+       "ha\x02hp\x02in\x02kk\x02kt\x02lm\x02ln\x02lx\x02ph\x02pr\x02sr\x02sv\x02" +
+       "wb\x05v∕m\x05a∕m\x041日\x042日\x043日\x044日\x045日\x046日\x047日\x048日\x049日" +
+       "\x0510日\x0511日\x0512日\x0513日\x0514日\x0515日\x0516日\x0517日\x0518日\x0519日" +
+       "\x0520日\x0521日\x0522日\x0523日\x0524日\x0525日\x0526日\x0527日\x0528日\x0529日" +
+       "\x0530日\x0531日\x02ь\x02ɦ\x02ɬ\x02ʞ\x02ʇ\x02œ\x04𤋮\x04𢡊\x04𢡄\x04𣏕\x04𥉉" +
+       "\x04𥳐\x04𧻓\x02ff\x02fi\x02fl\x02st\x04մն\x04մե\x04մի\x04վն\x04մխ\x04יִ" +
+       "\x04ײַ\x02ע\x02ה\x02כ\x02ל\x02ם\x02ר\x02ת\x04שׁ\x04שׂ\x06שּׁ\x06שּׂ\x04א" +
+       "ַ\x04אָ\x04אּ\x04בּ\x04גּ\x04דּ\x04הּ\x04וּ\x04זּ\x04טּ\x04יּ\x04ךּ\x04" +
+       "כּ\x04לּ\x04מּ\x04נּ\x04סּ\x04ףּ\x04פּ\x04צּ\x04קּ\x04רּ\x04שּ\x04תּ" +
+       "\x04וֹ\x04בֿ\x04כֿ\x04פֿ\x04אל\x02ٱ\x02ٻ\x02پ\x02ڀ\x02ٺ\x02ٿ\x02ٹ\x02ڤ" +
+       "\x02ڦ\x02ڄ\x02ڃ\x02چ\x02ڇ\x02ڍ\x02ڌ\x02ڎ\x02ڈ\x02ژ\x02ڑ\x02ک\x02گ\x02ڳ" +
+       "\x02ڱ\x02ں\x02ڻ\x02ۀ\x02ہ\x02ھ\x02ے\x02ۓ\x02ڭ\x02ۇ\x02ۆ\x02ۈ\x02ۋ\x02ۅ" +
+       "\x02ۉ\x02ې\x02ى\x04ئا\x04ئە\x04ئو\x04ئۇ\x04ئۆ\x04ئۈ\x04ئې\x04ئى\x02ی\x04" +
+       "ئج\x04ئح\x04ئم\x04ئي\x04بج\x04بح\x04بخ\x04بم\x04بى\x04بي\x04تج\x04تح" +
+       "\x04تخ\x04تم\x04تى\x04تي\x04ثج\x04ثم\x04ثى\x04ثي\x04جح\x04جم\x04حج\x04حم" +
+       "\x04خج\x04خح\x04خم\x04سج\x04سح\x04سخ\x04سم\x04صح\x04صم\x04ضج\x04ضح\x04ضخ" +
+       "\x04ضم\x04طح\x04طم\x04ظم\x04عج\x04عم\x04غج\x04غم\x04فج\x04فح\x04فخ\x04فم" +
+       "\x04فى\x04في\x04قح\x04قم\x04قى\x04قي\x04كا\x04كج\x04كح\x04كخ\x04كل\x04كم" +
+       "\x04كى\x04كي\x04لج\x04لح\x04لخ\x04لم\x04لى\x04لي\x04مج\x04مح\x04مخ\x04مم" +
+       "\x04مى\x04مي\x04نج\x04نح\x04نخ\x04نم\x04نى\x04ني\x04هج\x04هم\x04هى\x04هي" +
+       "\x04يج\x04يح\x04يخ\x04يم\x04يى\x04يي\x04ذٰ\x04رٰ\x04ىٰ\x05 ٌّ\x05 ٍّ\x05" +
+       " َّ\x05 ُّ\x05 ِّ\x05 ّٰ\x04ئر\x04ئز\x04ئن\x04بر\x04بز\x04بن\x04تر\x04تز" +
+       "\x04تن\x04ثر\x04ثز\x04ثن\x04ما\x04نر\x04نز\x04نن\x04ير\x04يز\x04ين\x04ئخ" +
+       "\x04ئه\x04به\x04ته\x04صخ\x04له\x04نه\x04هٰ\x04يه\x04ثه\x04سه\x04شم\x04شه" +
+       "\x06ـَّ\x06ـُّ\x06ـِّ\x04طى\x04طي\x04عى\x04عي\x04غى\x04غي\x04سى\x04سي" +
+       "\x04شى\x04شي\x04حى\x04حي\x04جى\x04جي\x04خى\x04خي\x04صى\x04صي\x04ضى\x04ضي" +
+       "\x04شج\x04شح\x04شخ\x04شر\x04سر\x04صر\x04ضر\x04اً\x06تجم\x06تحج\x06تحم" +
+       "\x06تخم\x06تمج\x06تمح\x06تمخ\x06جمح\x06حمي\x06حمى\x06سحج\x06سجح\x06سجى" +
+       "\x06سمح\x06سمج\x06سمم\x06صحح\x06صمم\x06شحم\x06شجي\x06شمخ\x06شمم\x06ضحى" +
+       "\x06ضخم\x06طمح\x06طمم\x06طمي\x06عجم\x06عمم\x06عمى\x06غمم\x06غمي\x06غمى" +
+       "\x06فخم\x06قمح\x06قمم\x06لحم\x06لحي\x06لحى\x06لجج\x06لخم\x06لمح\x06محج" +
+       "\x06محم\x06محي\x06مجح\x06مجم\x06مخج\x06مخم\x06مجخ\x06همج\x06همم\x06نحم" +
+       "\x06نحى\x06نجم\x06نجى\x06نمي\x06نمى\x06يمم\x06بخي\x06تجي\x06تجى\x06تخي" +
+       "\x06تخى\x06تمي\x06تمى\x06جمي\x06جحى\x06جمى\x06سخى\x06صحي\x06شحي\x06ضحي" +
+       "\x06لجي\x06لمي\x06يحي\x06يجي\x06يمي\x06ممي\x06قمي\x06نحي\x06عمي\x06كمي" +
+       "\x06نجح\x06مخي\x06لجم\x06كمم\x06جحي\x06حجي\x06مجي\x06فمي\x06بحي\x06سخي" +
+       "\x06نجي\x06صلے\x06قلے\x08الله\x08اكبر\x08محمد\x08صلعم\x08رسول\x08عليه" +
+       "\x08وسلم\x06صلى!صلى الله عليه وسلم\x0fجل جلاله\x08ریال\x01,\x01:\x01!" +
+       "\x01?\x01_\x01{\x01}\x01[\x01]\x01#\x01&\x01*\x01-\x01<\x01>\x01\\\x01$" +
+       "\x01%\x01@\x04ـً\x04ـَ\x04ـُ\x04ـِ\x04ـّ\x04ـْ\x02ء\x02آ\x02أ\x02ؤ\x02إ" +
+       "\x02ئ\x02ا\x02ب\x02ة\x02ت\x02ث\x02ج\x02ح\x02خ\x02د\x02ذ\x02ر\x02ز\x02س" +
+       "\x02ش\x02ص\x02ض\x02ط\x02ظ\x02ع\x02غ\x02ف\x02ق\x02ك\x02ل\x02م\x02ن\x02ه" +
+       "\x02و\x02ي\x04لآ\x04لأ\x04لإ\x04لا\x01\x22\x01'\x01/\x01^\x01|\x01~\x02¢" +
+       "\x02£\x02¬\x02¦\x02¥\x08𝅗𝅥\x08𝅘𝅥\x0c𝅘𝅥𝅮\x0c𝅘𝅥𝅯\x0c𝅘𝅥𝅰\x0c𝅘𝅥𝅱\x0c𝅘𝅥𝅲\x08𝆹" +
+       "𝅥\x08𝆺𝅥\x0c𝆹𝅥𝅮\x0c𝆺𝅥𝅮\x0c𝆹𝅥𝅯\x0c𝆺𝅥𝅯\x02ı\x02ȷ\x02α\x02ε\x02ζ\x02η\x02" +
+       "κ\x02λ\x02μ\x02ν\x02ξ\x02ο\x02σ\x02τ\x02υ\x02ψ\x03∇\x03∂\x02ϝ\x02ٮ\x02ڡ" +
+       "\x02ٯ\x020,\x021,\x022,\x023,\x024,\x025,\x026,\x027,\x028,\x029,\x03(a)" +
+       "\x03(b)\x03(c)\x03(d)\x03(e)\x03(f)\x03(g)\x03(h)\x03(i)\x03(j)\x03(k)" +
+       "\x03(l)\x03(m)\x03(n)\x03(o)\x03(p)\x03(q)\x03(r)\x03(s)\x03(t)\x03(u)" +
+       "\x03(v)\x03(w)\x03(x)\x03(y)\x03(z)\x07〔s〕\x02wz\x02hv\x02sd\x03ppv\x02w" +
+       "c\x02mc\x02md\x02dj\x06ほか\x06ココ\x03サ\x03手\x03字\x03双\x03デ\x03二\x03多\x03解" +
+       "\x03天\x03交\x03映\x03無\x03料\x03前\x03後\x03再\x03新\x03初\x03終\x03生\x03販\x03声" +
+       "\x03吹\x03演\x03投\x03捕\x03一\x03三\x03遊\x03左\x03中\x03右\x03指\x03走\x03打\x03禁" +
+       "\x03空\x03合\x03満\x03有\x03月\x03申\x03割\x03営\x03配\x09〔本〕\x09〔三〕\x09〔二〕\x09〔安" +
+       "〕\x09〔点〕\x09〔打〕\x09〔盗〕\x09〔勝〕\x09〔敗〕\x03得\x03可\x03丽\x03丸\x03乁\x03你\x03" +
+       "侮\x03侻\x03倂\x03偺\x03備\x03僧\x03像\x03㒞\x03免\x03兔\x03兤\x03具\x03㒹\x03內\x03" +
+       "冗\x03冤\x03仌\x03冬\x03况\x03凵\x03刃\x03㓟\x03刻\x03剆\x03剷\x03㔕\x03勇\x03勉\x03" +
+       "勤\x03勺\x03包\x03匆\x03北\x03卉\x03卑\x03博\x03即\x03卽\x03卿\x03灰\x03及\x03叟\x03" +
+       "叫\x03叱\x03吆\x03咞\x03吸\x03呈\x03周\x03咢\x03哶\x03唐\x03啓\x03啣\x03善\x03喙\x03" +
+       "喫\x03喳\x03嗂\x03圖\x03嘆\x03圗\x03噑\x03噴\x03切\x03壮\x03城\x03埴\x03堍\x03型\x03" +
+       "堲\x03報\x03墬\x03売\x03壷\x03夆\x03夢\x03奢\x03姬\x03娛\x03娧\x03姘\x03婦\x03㛮\x03" +
+       "嬈\x03嬾\x03寃\x03寘\x03寧\x03寳\x03寿\x03将\x03尢\x03㞁\x03屠\x03屮\x03峀\x03岍\x03" +
+       "嵃\x03嵮\x03嵫\x03嵼\x03巡\x03巢\x03㠯\x03巽\x03帨\x03帽\x03幩\x03㡢\x03㡼\x03庰\x03" +
+       "庳\x03庶\x03廊\x03廾\x03舁\x03弢\x03㣇\x03形\x03彫\x03㣣\x03徚\x03忍\x03志\x03忹\x03" +
+       "悁\x03㤺\x03㤜\x03悔\x03惇\x03慈\x03慌\x03慎\x03慺\x03憎\x03憲\x03憤\x03憯\x03懞\x03" +
+       "懲\x03懶\x03成\x03戛\x03扝\x03抱\x03拔\x03捐\x03挽\x03拼\x03捨\x03掃\x03揤\x03搢\x03" +
+       "揅\x03掩\x03㨮\x03摩\x03摾\x03撝\x03摷\x03㩬\x03敏\x03敬\x03旣\x03書\x03晉\x03㬙\x03" +
+       "暑\x03㬈\x03㫤\x03冒\x03冕\x03最\x03暜\x03肭\x03䏙\x03朗\x03望\x03朡\x03杞\x03杓\x03" +
+       "㭉\x03柺\x03枅\x03桒\x03梅\x03梎\x03栟\x03椔\x03㮝\x03楂\x03榣\x03槪\x03檨\x03櫛\x03" +
+       "㰘\x03次\x03歔\x03㱎\x03歲\x03殟\x03殺\x03殻\x03汎\x03沿\x03泍\x03汧\x03洖\x03派\x03" +
+       "海\x03流\x03浩\x03浸\x03涅\x03洴\x03港\x03湮\x03㴳\x03滋\x03滇\x03淹\x03潮\x03濆\x03" +
+       "瀹\x03瀞\x03瀛\x03㶖\x03灊\x03災\x03灷\x03炭\x03煅\x03熜\x03爨\x03爵\x03牐\x03犀\x03" +
+       "犕\x03獺\x03王\x03㺬\x03玥\x03㺸\x03瑇\x03瑜\x03瑱\x03璅\x03瓊\x03㼛\x03甤\x03甾\x03" +
+       "異\x03瘐\x03㿼\x03䀈\x03直\x03眞\x03真\x03睊\x03䀹\x03瞋\x03䁆\x03䂖\x03硎\x03碌\x03" +
+       "磌\x03䃣\x03祖\x03福\x03秫\x03䄯\x03穀\x03穊\x03穏\x03䈂\x03篆\x03築\x03䈧\x03糒\x03" +
+       "䊠\x03糨\x03糣\x03紀\x03絣\x03䌁\x03緇\x03縂\x03繅\x03䌴\x03䍙\x03罺\x03羕\x03翺\x03" +
+       "者\x03聠\x03聰\x03䏕\x03育\x03脃\x03䐋\x03脾\x03媵\x03舄\x03辞\x03䑫\x03芑\x03芋\x03" +
+       "芝\x03劳\x03花\x03芳\x03芽\x03苦\x03若\x03茝\x03荣\x03莭\x03茣\x03莽\x03菧\x03著\x03" +
+       "荓\x03菊\x03菌\x03菜\x03䔫\x03蓱\x03蓳\x03蔖\x03蕤\x03䕝\x03䕡\x03䕫\x03虐\x03虜\x03" +
+       "虧\x03虩\x03蚩\x03蚈\x03蜎\x03蛢\x03蝹\x03蜨\x03蝫\x03螆\x03蟡\x03蠁\x03䗹\x03衠\x03" +
+       "衣\x03裗\x03裞\x03䘵\x03裺\x03㒻\x03䚾\x03䛇\x03誠\x03諭\x03變\x03豕\x03貫\x03賁\x03" +
+       "贛\x03起\x03跋\x03趼\x03跰\x03軔\x03輸\x03邔\x03郱\x03鄑\x03鄛\x03鈸\x03鋗\x03鋘\x03" +
+       "鉼\x03鏹\x03鐕\x03開\x03䦕\x03閷\x03䧦\x03雃\x03嶲\x03霣\x03䩮\x03䩶\x03韠\x03䪲\x03" +
+       "頋\x03頩\x03飢\x03䬳\x03餩\x03馧\x03駂\x03駾\x03䯎\x03鬒\x03鱀\x03鳽\x03䳎\x03䳭\x03" +
+       "鵧\x03䳸\x03麻\x03䵖\x03黹\x03黾\x03鼅\x03鼏\x03鼖\x03鼻"
+
+var xorData string = "" + // Size: 4855 bytes
+       "\x02\x0c\x09\x02\xb0\xec\x02\xad\xd8\x02\xad\xd9\x02\x06\x07\x02\x0f\x12" +
+       "\x02\x0f\x1f\x02\x0f\x1d\x02\x01\x13\x02\x0f\x16\x02\x0f\x0b\x02\x0f3" +
+       "\x02\x0f7\x02\x0f?\x02\x0f/\x02\x0f*\x02\x0c&\x02\x0c*\x02\x0c;\x02\x0c9" +
+       "\x02\x0c%\x02\xab\xed\x02\xab\xe2\x02\xab\xe3\x02\xa9\xe0\x02\xa9\xe1" +
+       "\x02\xa9\xe6\x02\xa3\xcb\x02\xa3\xc8\x02\xa3\xc9\x02\x01#\x02\x01\x08" +
+       "\x02\x0e>\x02\x0e'\x02\x0f\x03\x02\x03\x0d\x02\x03\x09\x02\x03\x17\x02" +
+       "\x03\x0e\x02\x02\x03\x02\x011\x02\x01\x00\x02\x01\x10\x02\x03<\x02\x07" +
+       "\x0d\x02\x02\x0c\x02\x0c0\x02\x01\x03\x02\x01\x01\x02\x01 \x02\x01\x22" +
+       "\x02\x01)\x02\x01\x0a\x02\x01\x0c\x02\x02\x06\x02\x02\x02\x02\x03\x10" +
+       "\x03\x037 \x03\x0b+\x03\x02\x01\x04\x02\x01\x02\x02\x019\x02\x03\x1c\x02" +
+       "\x02$\x03\x80p$\x02\x03:\x02\x03\x0a\x03\xc1r.\x03\xc1r,\x03\xc1r\x02" +
+       "\x02\x02:\x02\x02>\x02\x02,\x02\x02\x10\x02\x02\x00\x03\xc1s<\x03\xc1s*" +
+       "\x03\xc2L$\x03\xc2L;\x02\x09)\x02\x0a\x19\x03\x83\xab\xe3\x03\x83\xab" +
+       "\xf2\x03 4\xe0\x03\x81\xab\xea\x03\x81\xab\xf3\x03 4\xef\x03\x96\xe1\xcd" +
+       "\x03\x84\xe5\xc3\x02\x0d\x11\x03\x8b\xec\xcb\x03\x94\xec\xcf\x03\x9a\xec" +
+       "\xc2\x03\x8b\xec\xdb\x03\x94\xec\xdf\x03\x9a\xec\xd2\x03\x01\x0c!\x03" +
+       "\x01\x0c#\x03ʠ\x9d\x03ʣ\x9c\x03ʢ\x9f\x03ʥ\x9e\x03ʤ\x91\x03ʧ\x90\x03ʦ\x93" +
+       "\x03ʩ\x92\x03ʨ\x95\x03\xca\xf3\xb5\x03\xca\xf0\xb4\x03\xca\xf1\xb7\x03" +
+       "\xca\xf6\xb6\x03\xca\xf7\x89\x03\xca\xf4\x88\x03\xca\xf5\x8b\x03\xca\xfa" +
+       "\x8a\x03\xca\xfb\x8d\x03\xca\xf8\x8c\x03\xca\xf9\x8f\x03\xca\xfe\x8e\x03" +
+       "\xca\xff\x81\x03\xca\xfc\x80\x03\xca\xfd\x83\x03\xca\xe2\x82\x03\xca\xe3" +
+       "\x85\x03\xca\xe0\x84\x03\xca\xe1\x87\x03\xca\xe6\x86\x03\xca\xe7\x99\x03" +
+       "\xca\xe4\x98\x03\xca\xe5\x9b\x03\xca\xea\x9a\x03\xca\xeb\x9d\x03\xca\xe8" +
+       "\x9c\x03ؓ\x89\x03ߔ\x8b\x02\x010\x03\x03\x04\x1e\x03\x04\x15\x12\x03\x0b" +
+       "\x05,\x03\x06\x04\x00\x03\x06\x04)\x03\x06\x044\x03\x06\x04<\x03\x06\x05" +
+       "\x1d\x03\x06\x06\x00\x03\x06\x06\x0a\x03\x06\x06'\x03\x06\x062\x03\x0786" +
+       "\x03\x079/\x03\x079 \x03\x07:\x0e\x03\x07:\x1b\x03\x07:%\x03\x07;/\x03" +
+       "\x07;%\x03\x074\x11\x03\x076\x09\x03\x077*\x03\x070\x01\x03\x070\x0f\x03" +
+       "\x070.\x03\x071\x16\x03\x071\x04\x03\x0710\x03\x072\x18\x03\x072-\x03" +
+       "\x073\x14\x03\x073>\x03\x07'\x09\x03\x07 \x00\x03\x07\x1f\x0b\x03\x07" +
+       "\x18#\x03\x07\x18(\x03\x07\x186\x03\x07\x18\x03\x03\x07\x19\x16\x03\x07" +
+       "\x116\x03\x07\x12'\x03\x07\x13\x10\x03\x07\x0c&\x03\x07\x0c\x08\x03\x07" +
+       "\x0c\x13\x03\x07\x0d\x02\x03\x07\x0d\x1c\x03\x07\x0b5\x03\x07\x0b\x0a" +
+       "\x03\x07\x0b\x01\x03\x07\x0b\x0f\x03\x07\x05\x00\x03\x07\x05\x09\x03\x07" +
+       "\x05\x0b\x03\x07\x07\x01\x03\x07\x07\x08\x03\x07\x00<\x03\x07\x00+\x03" +
+       "\x07\x01)\x03\x07\x01\x1b\x03\x07\x01\x08\x03\x07\x03?\x03\x0445\x03\x04" +
+       "4\x08\x03\x0454\x03\x04)/\x03\x04)5\x03\x04+\x05\x03\x04+\x14\x03\x04+ " +
+       "\x03\x04+<\x03\x04*&\x03\x04*\x22\x03\x04&8\x03\x04!\x01\x03\x04!\x22" +
+       "\x03\x04\x11+\x03\x04\x10.\x03\x04\x104\x03\x04\x13=\x03\x04\x12\x04\x03" +
+       "\x04\x12\x0a\x03\x04\x0d\x1d\x03\x04\x0d\x07\x03\x04\x0d \x03\x05<>\x03" +
+       "\x055<\x03\x055!\x03\x055#\x03\x055&\x03\x054\x1d\x03\x054\x02\x03\x054" +
+       "\x07\x03\x0571\x03\x053\x1a\x03\x053\x16\x03\x05.<\x03\x05.\x07\x03\x05)" +
+       ":\x03\x05)<\x03\x05)\x0c\x03\x05)\x15\x03\x05+-\x03\x05+5\x03\x05$\x1e" +
+       "\x03\x05$\x14\x03\x05'\x04\x03\x05'\x14\x03\x05&\x02\x03\x05\x226\x03" +
+       "\x05\x22\x0c\x03\x05\x22\x1c\x03\x05\x19\x0a\x03\x05\x1b\x09\x03\x05\x1b" +
+       "\x0c\x03\x05\x14\x07\x03\x05\x16?\x03\x05\x16\x0c\x03\x05\x0c\x05\x03" +
+       "\x05\x0e\x0f\x03\x05\x01\x0e\x03\x05\x00(\x03\x05\x030\x03\x05\x03\x06" +
+       "\x03\x0a==\x03\x0a=1\x03\x0a=,\x03\x0a=\x0c\x03\x0a??\x03\x0a<\x08\x03" +
+       "\x0a9!\x03\x0a9)\x03\x0a97\x03\x0a99\x03\x0a6\x0a\x03\x0a6\x1c\x03\x0a6" +
+       "\x17\x03\x0a7'\x03\x0a78\x03\x0a73\x03\x0a'\x01\x03\x0a'&\x03\x0a\x1f" +
+       "\x0e\x03\x0a\x1f\x03\x03\x0a\x1f3\x03\x0a\x1b/\x03\x0a\x18\x19\x03\x0a" +
+       "\x19\x01\x03\x0a\x16\x14\x03\x0a\x0e\x22\x03\x0a\x0f\x10\x03\x0a\x0f\x02" +
+       "\x03\x0a\x0f \x03\x0a\x0c\x04\x03\x0a\x0b>\x03\x0a\x0b+\x03\x0a\x08/\x03" +
+       "\x0a\x046\x03\x0a\x05\x14\x03\x0a\x00\x04\x03\x0a\x00\x10\x03\x0a\x00" +
+       "\x14\x03\x0b<3\x03\x0b;*\x03\x0b9\x22\x03\x0b9)\x03\x0b97\x03\x0b+\x10" +
+       "\x03\x0b((\x03\x0b&5\x03\x0b$\x1c\x03\x0b$\x12\x03\x0b%\x04\x03\x0b#<" +
+       "\x03\x0b#0\x03\x0b#\x0d\x03\x0b#\x19\x03\x0b!:\x03\x0b!\x1f\x03\x0b!\x00" +
+       "\x03\x0b\x1e5\x03\x0b\x1c\x1d\x03\x0b\x1d-\x03\x0b\x1d(\x03\x0b\x18.\x03" +
+       "\x0b\x18 \x03\x0b\x18\x16\x03\x0b\x14\x13\x03\x0b\x15$\x03\x0b\x15\x22" +
+       "\x03\x0b\x12\x1b\x03\x0b\x12\x10\x03\x0b\x132\x03\x0b\x13=\x03\x0b\x12" +
+       "\x18\x03\x0b\x0c&\x03\x0b\x061\x03\x0b\x06:\x03\x0b\x05#\x03\x0b\x05<" +
+       "\x03\x0b\x04\x0b\x03\x0b\x04\x04\x03\x0b\x04\x1b\x03\x0b\x042\x03\x0b" +
+       "\x041\x03\x0b\x03\x03\x03\x0b\x03\x1d\x03\x0b\x03/\x03\x0b\x03+\x03\x0b" +
+       "\x02\x1b\x03\x0b\x02\x00\x03\x0b\x01\x1e\x03\x0b\x01\x08\x03\x0b\x015" +
+       "\x03\x06\x0d9\x03\x06\x0d=\x03\x06\x0d?\x03\x02\x001\x03\x02\x003\x03" +
+       "\x02\x02\x19\x03\x02\x006\x03\x02\x02\x1b\x03\x02\x004\x03\x02\x00<\x03" +
+       "\x02\x02\x0a\x03\x02\x02\x0e\x03\x02\x01\x1a\x03\x02\x01\x07\x03\x02\x01" +
+       "\x05\x03\x02\x01\x0b\x03\x02\x01%\x03\x02\x01\x0c\x03\x02\x01\x04\x03" +
+       "\x02\x01\x1c\x03\x02\x00.\x03\x02\x002\x03\x02\x00>\x03\x02\x00\x12\x03" +
+       "\x02\x00\x16\x03\x02\x011\x03\x02\x013\x03\x02\x02 \x03\x02\x02%\x03\x02" +
+       "\x02$\x03\x02\x028\x03\x02\x02;\x03\x02\x024\x03\x02\x012\x03\x02\x022" +
+       "\x03\x02\x02/\x03\x02\x01,\x03\x02\x01\x13\x03\x02\x01\x16\x03\x02\x01" +
+       "\x11\x03\x02\x01\x1e\x03\x02\x01\x15\x03\x02\x01\x17\x03\x02\x01\x0f\x03" +
+       "\x02\x01\x08\x03\x02\x00?\x03\x02\x03\x07\x03\x02\x03\x0d\x03\x02\x03" +
+       "\x13\x03\x02\x03\x1d\x03\x02\x03\x1f\x03\x02\x00\x03\x03\x02\x00\x0d\x03" +
+       "\x02\x00\x01\x03\x02\x00\x1b\x03\x02\x00\x19\x03\x02\x00\x18\x03\x02\x00" +
+       "\x13\x03\x02\x00/\x03\x07>\x12\x03\x07<\x1f\x03\x07>\x1d\x03\x06\x1d\x0e" +
+       "\x03\x07>\x1c\x03\x07>:\x03\x07>\x13\x03\x04\x12+\x03\x07?\x03\x03\x07>" +
+       "\x02\x03\x06\x224\x03\x06\x1a.\x03\x07<%\x03\x06\x1c\x0b\x03\x0609\x03" +
+       "\x05\x1f\x01\x03\x04'\x08\x03\x93\xfd\xf5\x03\x02\x0d \x03\x02\x0d#\x03" +
+       "\x02\x0d!\x03\x02\x0d&\x03\x02\x0d\x22\x03\x02\x0d/\x03\x02\x0d,\x03\x02" +
+       "\x0d$\x03\x02\x0d'\x03\x02\x0d%\x03\x02\x0d;\x03\x02\x0d=\x03\x02\x0d?" +
+       "\x03\x099.\x03\x08\x0b7\x03\x08\x02\x14\x03\x08\x14\x0d\x03\x08.:\x03" +
+       "\x089'\x03\x0f\x0b\x18\x03\x0f\x1c1\x03\x0f\x17&\x03\x0f9\x1f\x03\x0f0" +
+       "\x0c\x03\x0e\x0a9\x03\x0e\x056\x03\x0e\x1c#\x03\x0f\x13\x0e\x03\x072\x00" +
+       "\x03\x070\x0d\x03\x072\x0b\x03\x06\x11\x18\x03\x070\x10\x03\x06\x0f(\x03" +
+       "\x072\x05\x03\x06\x0f,\x03\x073\x15\x03\x06\x07\x08\x03\x05\x16\x02\x03" +
+       "\x04\x0b \x03\x05:8\x03\x05\x16%\x03\x0a\x0d\x1f\x03\x06\x16\x10\x03\x05" +
+       "\x1d5\x03\x05*;\x03\x05\x16\x1b\x03\x04.-\x03\x06\x1a\x19\x03\x04\x03," +
+       "\x03\x0b87\x03\x04/\x0a\x03\x06\x00,\x03\x04-\x01\x03\x04\x1e-\x03\x06/(" +
+       "\x03\x0a\x0b5\x03\x06\x0e7\x03\x06\x07.\x03\x0597\x03\x0a*%\x03\x0760" +
+       "\x03\x06\x0c;\x03\x05'\x00\x03\x072.\x03\x072\x08\x03\x06=\x01\x03\x06" +
+       "\x05\x1b\x03\x06\x06\x12\x03\x06$=\x03\x06'\x0d\x03\x04\x11\x0f\x03\x076" +
+       ",\x03\x06\x07;\x03\x06.,\x03\x86\xf9\xea\x03\x8f\xff\xeb\x02\x092\x02" +
+       "\x095\x02\x094\x02\x09;\x02\x09>\x02\x098\x02\x09*\x02\x09/\x02\x09,\x02" +
+       "\x09%\x02\x09&\x02\x09#\x02\x09 \x02\x08!\x02\x08%\x02\x08$\x02\x08+\x02" +
+       "\x08.\x02\x08*\x02\x08&\x02\x088\x02\x08>\x02\x084\x02\x086\x02\x080\x02" +
+       "\x08\x10\x02\x08\x17\x02\x08\x12\x02\x08\x1d\x02\x08\x1f\x02\x08\x13\x02" +
+       "\x08\x15\x02\x08\x14\x02\x08\x0c\x03\x8b\xfd\xd0\x03\x81\xec\xc6\x03\x87" +
+       "\xe0\x8a\x03-2\xe3\x03\x80\xef\xe4\x03-2\xea\x03\x88\xe6\xeb\x03\x8e\xe6" +
+       "\xe8\x03\x84\xe6\xe9\x03\x97\xe6\xee\x03-2\xf9\x03-2\xf6\x03\x8e\xe3\xad" +
+       "\x03\x80\xe3\x92\x03\x88\xe3\x90\x03\x8e\xe3\x90\x03\x80\xe3\x97\x03\x88" +
+       "\xe3\x95\x03\x88\xfe\xcb\x03\x8e\xfe\xca\x03\x84\xfe\xcd\x03\x91\xef\xc9" +
+       "\x03-2\xc1\x03-2\xc0\x03-2\xcb\x03\x88@\x09\x03\x8e@\x08\x03\x8f\xe0\xf5" +
+       "\x03\x8e\xe6\xf9\x03\x8e\xe0\xfa\x03\x93\xff\xf4\x03\x84\xee\xd3\x03\x0b" +
+       "(\x04\x023 \x021;\x02\x01*\x03\x0b#\x10\x03\x0b 0\x03\x0b!\x10\x03\x0b!0" +
+       "\x03\x07\x15\x08\x03\x09?5\x03\x07\x1f\x08\x03\x07\x17\x0b\x03\x09\x1f" +
+       "\x15\x03\x0b\x1c7\x03\x0a+#\x03\x06\x1a\x1b\x03\x06\x1a\x14\x03\x0a\x01" +
+       "\x18\x03\x06#\x1b\x03\x0a2\x0c\x03\x0a\x01\x04\x03\x09#;\x03\x08='\x03" +
+       "\x08\x1a\x0a\x03\x07</\x03\x07:+\x03\x07\x07*\x03\x06&\x1c\x03\x09\x0c" +
+       "\x16\x03\x09\x10\x0e\x03\x08'\x0f\x03\x08+\x09\x03\x074%\x03\x06!3\x03" +
+       "\x06\x03+\x03\x0b\x1e\x19\x03\x0a))\x03\x09\x08\x19\x03\x08,\x05\x03\x07" +
+       "<2\x03\x06\x1c>\x03\x0a\x111\x03\x09\x1b\x09\x03\x073.\x03\x07\x01\x00" +
+       "\x03\x09/,\x03\x07#>\x03\x07\x048\x03\x0a\x1f\x22\x03\x098>\x03\x09\x11" +
+       "\x00\x03\x08/\x17\x03\x06'\x22\x03\x0b\x1a+\x03\x0a\x22\x19\x03\x0a/1" +
+       "\x03\x0974\x03\x09\x0f\x22\x03\x08,\x22\x03\x08?\x14\x03\x07$5\x03\x07<3" +
+       "\x03\x07=*\x03\x07\x13\x18\x03\x068\x0a\x03\x06\x09\x16\x03\x06\x13\x00" +
+       "\x03\x08\x067\x03\x08\x01\x03\x03\x08\x12\x1d\x03\x07+7\x03\x06(;\x03" +
+       "\x06\x1c?\x03\x07\x0e\x17\x03\x0a\x06\x1d\x03\x0a\x19\x07\x03\x08\x14$" +
+       "\x03\x07$;\x03\x08,$\x03\x08\x06\x0d\x03\x07\x16\x0a\x03\x06>>\x03\x0a" +
+       "\x06\x12\x03\x0a\x14)\x03\x09\x0d\x1f\x03\x09\x12\x17\x03\x09\x19\x01" +
+       "\x03\x08\x11 \x03\x08\x1d'\x03\x06<\x1a\x03\x0a.\x00\x03\x07'\x18\x03" +
+       "\x0a\x22\x08\x03\x08\x0d\x0a\x03\x08\x13)\x03\x07*)\x03\x06<,\x03\x07" +
+       "\x0b\x1a\x03\x09.\x14\x03\x09\x0d\x1e\x03\x07\x0e#\x03\x0b\x1d'\x03\x0a" +
+       "\x0a8\x03\x09%2\x03\x08+&\x03\x080\x12\x03\x0a)4\x03\x08\x06\x1f\x03\x0b" +
+       "\x1b\x1a\x03\x0a\x1b\x0f\x03\x0b\x1d*\x03\x09\x16$\x03\x090\x11\x03\x08" +
+       "\x11\x08\x03\x0a*(\x03\x0a\x042\x03\x089,\x03\x074'\x03\x07\x0f\x05\x03" +
+       "\x09\x0b\x0a\x03\x07\x1b\x01\x03\x09\x17:\x03\x09.\x0d\x03\x07.\x11\x03" +
+       "\x09+\x15\x03\x080\x13\x03\x0b\x1f\x19\x03\x0a \x11\x03\x0a\x220\x03\x09" +
+       "\x07;\x03\x08\x16\x1c\x03\x07,\x13\x03\x07\x0e/\x03\x06\x221\x03\x0a." +
+       "\x0a\x03\x0a7\x02\x03\x0a\x032\x03\x0a\x1d.\x03\x091\x06\x03\x09\x19:" +
+       "\x03\x08\x02/\x03\x060+\x03\x06\x0f-\x03\x06\x1c\x1f\x03\x06\x1d\x07\x03" +
+       "\x0a,\x11\x03\x09=\x0d\x03\x09\x0b;\x03\x07\x1b/\x03\x0a\x1f:\x03\x09 " +
+       "\x1f\x03\x09.\x10\x03\x094\x0b\x03\x09\x1a1\x03\x08#\x1a\x03\x084\x1d" +
+       "\x03\x08\x01\x1f\x03\x08\x11\x22\x03\x07'8\x03\x07\x1a>\x03\x0757\x03" +
+       "\x06&9\x03\x06+\x11\x03\x0a.\x0b\x03\x0a,>\x03\x0a4#\x03\x08%\x17\x03" +
+       "\x07\x05\x22\x03\x07\x0c\x0b\x03\x0a\x1d+\x03\x0a\x19\x16\x03\x09+\x1f" +
+       "\x03\x09\x08\x0b\x03\x08\x16\x18\x03\x08+\x12\x03\x0b\x1d\x0c\x03\x0a=" +
+       "\x10\x03\x0a\x09\x0d\x03\x0a\x10\x11\x03\x09&0\x03\x08(\x1f\x03\x087\x07" +
+       "\x03\x08\x185\x03\x07'6\x03\x06.\x05\x03\x06=\x04\x03\x06;;\x03\x06\x06," +
+       "\x03\x0b\x18>\x03\x08\x00\x18\x03\x06 \x03\x03\x06<\x00\x03\x09%\x18\x03" +
+       "\x0b\x1c<\x03\x0a%!\x03\x0a\x09\x12\x03\x0a\x16\x02\x03\x090'\x03\x09" +
+       "\x0e=\x03\x08 \x0e\x03\x08>\x03\x03\x074>\x03\x06&?\x03\x06\x19\x09\x03" +
+       "\x06?(\x03\x0a-\x0e\x03\x09:3\x03\x098:\x03\x09\x12\x0b\x03\x09\x1d\x17" +
+       "\x03\x087\x05\x03\x082\x14\x03\x08\x06%\x03\x08\x13\x1f\x03\x06\x06\x0e" +
+       "\x03\x0a\x22<\x03\x09/<\x03\x06>+\x03\x0a'?\x03\x0a\x13\x0c\x03\x09\x10<" +
+       "\x03\x07\x1b=\x03\x0a\x19\x13\x03\x09\x22\x1d\x03\x09\x07\x0d\x03\x08)" +
+       "\x1c\x03\x06=\x1a\x03\x0a/4\x03\x0a7\x11\x03\x0a\x16:\x03\x09?3\x03\x09:" +
+       "/\x03\x09\x05\x0a\x03\x09\x14\x06\x03\x087\x22\x03\x080\x07\x03\x08\x1a" +
+       "\x1f\x03\x07\x04(\x03\x07\x04\x09\x03\x06 %\x03\x06<\x08\x03\x0a+\x14" +
+       "\x03\x09\x1d\x16\x03\x0a70\x03\x08 >\x03\x0857\x03\x070\x0a\x03\x06=\x12" +
+       "\x03\x06\x16%\x03\x06\x1d,\x03\x099#\x03\x09\x10>\x03\x07 \x1e\x03\x08" +
+       "\x0c<\x03\x08\x0b\x18\x03\x08\x15+\x03\x08,:\x03\x08%\x22\x03\x07\x0a$" +
+       "\x03\x0b\x1c=\x03\x07+\x08\x03\x0a/\x05\x03\x0a \x07\x03\x0a\x12'\x03" +
+       "\x09#\x11\x03\x08\x1b\x15\x03\x0a\x06\x01\x03\x09\x1c\x1b\x03\x0922\x03" +
+       "\x07\x14<\x03\x07\x09\x04\x03\x061\x04\x03\x07\x0e\x01\x03\x0a\x13\x18" +
+       "\x03\x0a-\x0c\x03\x0a?\x0d\x03\x0a\x09\x0a\x03\x091&\x03\x0a/\x0b\x03" +
+       "\x08$<\x03\x083\x1d\x03\x08\x0c$\x03\x08\x0d\x07\x03\x08\x0d?\x03\x08" +
+       "\x0e\x14\x03\x065\x0a\x03\x08\x1a#\x03\x08\x16#\x03\x0702\x03\x07\x03" +
+       "\x1a\x03\x06(\x1d\x03\x06+\x1b\x03\x06\x0b\x05\x03\x06\x0b\x17\x03\x06" +
+       "\x0c\x04\x03\x06\x1e\x19\x03\x06+0\x03\x062\x18\x03\x0b\x16\x1e\x03\x0a+" +
+       "\x16\x03\x0a-?\x03\x0a#:\x03\x0a#\x10\x03\x0a%$\x03\x0a>+\x03\x0a01\x03" +
+       "\x0a1\x10\x03\x0a\x099\x03\x0a\x0a\x12\x03\x0a\x19\x1f\x03\x0a\x19\x12" +
+       "\x03\x09*)\x03\x09-\x16\x03\x09.1\x03\x09.2\x03\x09<\x0e\x03\x09> \x03" +
+       "\x093\x12\x03\x09\x0b\x01\x03\x09\x1c2\x03\x09\x11\x1c\x03\x09\x15%\x03" +
+       "\x08,&\x03\x08!\x22\x03\x089(\x03\x08\x0b\x1a\x03\x08\x0d2\x03\x08\x0c" +
+       "\x04\x03\x08\x0c\x06\x03\x08\x0c\x1f\x03\x08\x0c\x0c\x03\x08\x0f\x1f\x03" +
+       "\x08\x0f\x1d\x03\x08\x00\x14\x03\x08\x03\x14\x03\x08\x06\x16\x03\x08\x1e" +
+       "#\x03\x08\x11\x11\x03\x08\x10\x18\x03\x08\x14(\x03\x07)\x1e\x03\x07.1" +
+       "\x03\x07 $\x03\x07 '\x03\x078\x08\x03\x07\x0d0\x03\x07\x0f7\x03\x07\x05#" +
+       "\x03\x07\x05\x1a\x03\x07\x1a7\x03\x07\x1d-\x03\x07\x17\x10\x03\x06)\x1f" +
+       "\x03\x062\x0b\x03\x066\x16\x03\x06\x09\x11\x03\x09(\x1e\x03\x07!5\x03" +
+       "\x0b\x11\x16\x03\x0a/\x04\x03\x0a,\x1a\x03\x0b\x173\x03\x0a,1\x03\x0a/5" +
+       "\x03\x0a\x221\x03\x0a\x22\x0d\x03\x0a?%\x03\x0a<,\x03\x0a?#\x03\x0a>\x19" +
+       "\x03\x0a\x08&\x03\x0a\x0b\x0e\x03\x0a\x0c:\x03\x0a\x0c+\x03\x0a\x03\x22" +
+       "\x03\x0a\x06)\x03\x0a\x11\x10\x03\x0a\x11\x1a\x03\x0a\x17-\x03\x0a\x14(" +
+       "\x03\x09)\x1e\x03\x09/\x09\x03\x09.\x00\x03\x09,\x07\x03\x09/*\x03\x09-9" +
+       "\x03\x09\x228\x03\x09%\x09\x03\x09:\x12\x03\x09;\x1d\x03\x09?\x06\x03" +
+       "\x093%\x03\x096\x05\x03\x096\x08\x03\x097\x02\x03\x09\x07,\x03\x09\x04," +
+       "\x03\x09\x1f\x16\x03\x09\x11\x03\x03\x09\x11\x12\x03\x09\x168\x03\x08*" +
+       "\x05\x03\x08/2\x03\x084:\x03\x08\x22+\x03\x08 0\x03\x08&\x0a\x03\x08;" +
+       "\x10\x03\x08>$\x03\x08>\x18\x03\x0829\x03\x082:\x03\x081,\x03\x081<\x03" +
+       "\x081\x1c\x03\x087#\x03\x087*\x03\x08\x09'\x03\x08\x00\x1d\x03\x08\x05-" +
+       "\x03\x08\x1f4\x03\x08\x1d\x04\x03\x08\x16\x0f\x03\x07*7\x03\x07'!\x03" +
+       "\x07%\x1b\x03\x077\x0c\x03\x07\x0c1\x03\x07\x0c.\x03\x07\x00\x06\x03\x07" +
+       "\x01\x02\x03\x07\x010\x03\x07\x06=\x03\x07\x01\x03\x03\x07\x01\x13\x03" +
+       "\x07\x06\x06\x03\x07\x05\x0a\x03\x07\x1f\x09\x03\x07\x17:\x03\x06*1\x03" +
+       "\x06-\x1d\x03\x06\x223\x03\x062:\x03\x060$\x03\x066\x1e\x03\x064\x12\x03" +
+       "\x0645\x03\x06\x0b\x00\x03\x06\x0b7\x03\x06\x07\x1f\x03\x06\x15\x12\x03" +
+       "\x0c\x05\x0f\x03\x0b+\x0b\x03\x0b+-\x03\x06\x16\x1b\x03\x06\x15\x17\x03" +
+       "\x89\xca\xea\x03\x89\xca\xe8\x03\x0c8\x10\x03\x0c8\x01\x03\x0c8\x0f\x03" +
+       "\x0d8%\x03\x0d8!\x03\x0c8-\x03\x0c8/\x03\x0c8+\x03\x0c87\x03\x0c85\x03" +
+       "\x0c9\x09\x03\x0c9\x0d\x03\x0c9\x0f\x03\x0c9\x0b\x03\xcfu\x0c\x03\xcfu" +
+       "\x0f\x03\xcfu\x0e\x03\xcfu\x09\x03\x0c9\x10\x03\x0d9\x0c\x03\xcf`;\x03" +
+       "\xcf`>\x03\xcf`9\x03\xcf`8\x03\xcf`7\x03\xcf`*\x03\xcf`-\x03\xcf`,\x03" +
+       "\x0d\x1b\x1a\x03\x0d\x1b&\x03\x0c=.\x03\x0c=%\x03\x0c>\x1e\x03\x0c>\x14" +
+       "\x03\x0c?\x06\x03\x0c?\x0b\x03\x0c?\x0c\x03\x0c?\x0d\x03\x0c?\x02\x03" +
+       "\x0c>\x0f\x03\x0c>\x08\x03\x0c>\x09\x03\x0c>,\x03\x0c>\x0c\x03\x0c?\x13" +
+       "\x03\x0c?\x16\x03\x0c?\x15\x03\x0c?\x1c\x03\x0c?\x1f\x03\x0c?\x1d\x03" +
+       "\x0c?\x1a\x03\x0c?\x17\x03\x0c?\x08\x03\x0c?\x09\x03\x0c?\x0e\x03\x0c?" +
+       "\x04\x03\x0c?\x05\x03\x0c<?\x03\x0c=\x00\x03\x0c=\x06\x03\x0c=\x05\x03" +
+       "\x0c=\x0c\x03\x0c=\x0f\x03\x0c=\x0d\x03\x0c=\x0b\x03\x0c=\x07\x03\x0c=" +
+       "\x19\x03\x0c=\x15\x03\x0c=\x11\x03\x0c=1\x03\x0c=3\x03\x0c=0\x03\x0c=>" +
+       "\x03\x0c=2\x03\x0c=6\x03\x0c<\x07\x03\x0c<\x05\x03\x0e:!\x03\x0e:#\x03" +
+       "\x0e8\x09\x03\x0e:&\x03\x0e8\x0b\x03\x0e:$\x03\x0e:,\x03\x0e8\x1a\x03" +
+       "\x0e8\x1e\x03\x0e:*\x03\x0e:7\x03\x0e:5\x03\x0e:;\x03\x0e:\x15\x03\x0e:<" +
+       "\x03\x0e:4\x03\x0e:'\x03\x0e:-\x03\x0e:%\x03\x0e:?\x03\x0e:=\x03\x0e:)" +
+       "\x03\x0e:/\x03\xcfs'\x03\x0d=\x0f\x03\x0d+*\x03\x0d99\x03\x0d9;\x03\x0d9" +
+       "?\x03\x0d)\x0d\x03\x0d(%\x02\x01\x18\x02\x01(\x02\x01\x1e\x03\x0f$!\x03" +
+       "\x0f87\x03\x0f4\x0e\x03\x0f5\x1d\x03\x06'\x03\x03\x0f\x08\x18\x03\x0f" +
+       "\x0d\x1b\x03\x0e2=\x03\x0e;\x08\x03\x0e:\x0b\x03\x0e\x06$\x03\x0e\x0d)" +
+       "\x03\x0e\x16\x1f\x03\x0e\x16\x1b\x03\x0d$\x0a\x03\x05,\x1d\x03\x0d. \x03" +
+       "\x0d.#\x03\x0c(/\x03\x09%\x02\x03\x0d90\x03\x0d\x0e4\x03\x0d\x0d\x0f\x03" +
+       "\x0c#\x00\x03\x0c,\x1e\x03\x0c2\x0e\x03\x0c\x01\x17\x03\x0c\x09:\x03\x0e" +
+       "\x173\x03\x0c\x08\x03\x03\x0c\x11\x07\x03\x0c\x10\x18\x03\x0c\x1f\x1c" +
+       "\x03\x0c\x19\x0e\x03\x0c\x1a\x1f\x03\x0f0>\x03\x0b->\x03\x0b<+\x03\x0b8" +
+       "\x13\x03\x0b\x043\x03\x0b\x14\x03\x03\x0b\x16%\x03\x0d\x22&\x03\x0b\x1a" +
+       "\x1a\x03\x0b\x1a\x04\x03\x0a%9\x03\x0a&2\x03\x0a&0\x03\x0a!\x1a\x03\x0a!" +
+       "7\x03\x0a5\x10\x03\x0a=4\x03\x0a?\x0e\x03\x0a>\x10\x03\x0a\x00 \x03\x0a" +
+       "\x0f:\x03\x0a\x0f9\x03\x0a\x0b\x0a\x03\x0a\x17%\x03\x0a\x1b-\x03\x09-" +
+       "\x1a\x03\x09,4\x03\x09.,\x03\x09)\x09\x03\x096!\x03\x091\x1f\x03\x093" +
+       "\x16\x03\x0c+\x1f\x03\x098 \x03\x098=\x03\x0c(\x1a\x03\x0c(\x16\x03\x09" +
+       "\x0a+\x03\x09\x16\x12\x03\x09\x13\x0e\x03\x09\x153\x03\x08)!\x03\x09\x1a" +
+       "\x01\x03\x09\x18\x01\x03\x08%#\x03\x08>\x22\x03\x08\x05%\x03\x08\x02*" +
+       "\x03\x08\x15;\x03\x08\x1b7\x03\x0f\x07\x1d\x03\x0f\x04\x03\x03\x070\x0c" +
+       "\x03\x07;\x0b\x03\x07\x08\x17\x03\x07\x12\x06\x03\x06/-\x03\x0671\x03" +
+       "\x065+\x03\x06>7\x03\x06\x049\x03\x05+\x1e\x03\x05,\x17\x03\x05 \x1d\x03" +
+       "\x05\x22\x05\x03\x050\x1d"
+
+// 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 *idnaTrie) lookup(s []byte) (v uint16, sz int) {
+       c0 := s[0]
+       switch {
+       case c0 < 0x80: // is ASCII
+               return idnaValues[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 := idnaIndex[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 := idnaIndex[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 = idnaIndex[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 := idnaIndex[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 = idnaIndex[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 = idnaIndex[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 *idnaTrie) lookupUnsafe(s []byte) uint16 {
+       c0 := s[0]
+       if c0 < 0x80 { // is ASCII
+               return idnaValues[c0]
+       }
+       i := idnaIndex[c0]
+       if c0 < 0xE0 { // 2-byte UTF-8
+               return t.lookupValue(uint32(i), s[1])
+       }
+       i = idnaIndex[uint32(i)<<6+uint32(s[1])]
+       if c0 < 0xF0 { // 3-byte UTF-8
+               return t.lookupValue(uint32(i), s[2])
+       }
+       i = idnaIndex[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 *idnaTrie) lookupString(s string) (v uint16, sz int) {
+       c0 := s[0]
+       switch {
+       case c0 < 0x80: // is ASCII
+               return idnaValues[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 := idnaIndex[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 := idnaIndex[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 = idnaIndex[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 := idnaIndex[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 = idnaIndex[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 = idnaIndex[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 *idnaTrie) lookupStringUnsafe(s string) uint16 {
+       c0 := s[0]
+       if c0 < 0x80 { // is ASCII
+               return idnaValues[c0]
+       }
+       i := idnaIndex[c0]
+       if c0 < 0xE0 { // 2-byte UTF-8
+               return t.lookupValue(uint32(i), s[1])
+       }
+       i = idnaIndex[uint32(i)<<6+uint32(s[1])]
+       if c0 < 0xF0 { // 3-byte UTF-8
+               return t.lookupValue(uint32(i), s[2])
+       }
+       i = idnaIndex[uint32(i)<<6+uint32(s[2])]
+       if c0 < 0xF8 { // 4-byte UTF-8
+               return t.lookupValue(uint32(i), s[3])
+       }
+       return 0
+}
+
+// idnaTrie. Total size: 28600 bytes (27.93 KiB). Checksum: 95575047b5d8fff.
+type idnaTrie struct{}
+
+func newIdnaTrie(i int) *idnaTrie {
+       return &idnaTrie{}
+}
+
+// lookupValue determines the type of block n and looks up the value for b.
+func (t *idnaTrie) lookupValue(n uint32, b byte) uint16 {
+       switch {
+       case n < 124:
+               return uint16(idnaValues[n<<6+uint32(b)])
+       default:
+               n -= 124
+               return uint16(idnaSparse.lookup(n, b))
+       }
+}
+
+// idnaValues: 126 blocks, 8064 entries, 16128 bytes
+// The third block is the zero block.
+var idnaValues = [8064]uint16{
+       // Block 0x0, offset 0x0
+       0x00: 0x0080, 0x01: 0x0080, 0x02: 0x0080, 0x03: 0x0080, 0x04: 0x0080, 0x05: 0x0080,
+       0x06: 0x0080, 0x07: 0x0080, 0x08: 0x0080, 0x09: 0x0080, 0x0a: 0x0080, 0x0b: 0x0080,
+       0x0c: 0x0080, 0x0d: 0x0080, 0x0e: 0x0080, 0x0f: 0x0080, 0x10: 0x0080, 0x11: 0x0080,
+       0x12: 0x0080, 0x13: 0x0080, 0x14: 0x0080, 0x15: 0x0080, 0x16: 0x0080, 0x17: 0x0080,
+       0x18: 0x0080, 0x19: 0x0080, 0x1a: 0x0080, 0x1b: 0x0080, 0x1c: 0x0080, 0x1d: 0x0080,
+       0x1e: 0x0080, 0x1f: 0x0080, 0x20: 0x0080, 0x21: 0x0080, 0x22: 0x0080, 0x23: 0x0080,
+       0x24: 0x0080, 0x25: 0x0080, 0x26: 0x0080, 0x27: 0x0080, 0x28: 0x0080, 0x29: 0x0080,
+       0x2a: 0x0080, 0x2b: 0x0080, 0x2c: 0x0080, 0x2d: 0x0008, 0x2e: 0x0008, 0x2f: 0x0080,
+       0x30: 0x0008, 0x31: 0x0008, 0x32: 0x0008, 0x33: 0x0008, 0x34: 0x0008, 0x35: 0x0008,
+       0x36: 0x0008, 0x37: 0x0008, 0x38: 0x0008, 0x39: 0x0008, 0x3a: 0x0080, 0x3b: 0x0080,
+       0x3c: 0x0080, 0x3d: 0x0080, 0x3e: 0x0080, 0x3f: 0x0080,
+       // Block 0x1, offset 0x40
+       0x40: 0x0080, 0x41: 0xe105, 0x42: 0xe105, 0x43: 0xe105, 0x44: 0xe105, 0x45: 0xe105,
+       0x46: 0xe105, 0x47: 0xe105, 0x48: 0xe105, 0x49: 0xe105, 0x4a: 0xe105, 0x4b: 0xe105,
+       0x4c: 0xe105, 0x4d: 0xe105, 0x4e: 0xe105, 0x4f: 0xe105, 0x50: 0xe105, 0x51: 0xe105,
+       0x52: 0xe105, 0x53: 0xe105, 0x54: 0xe105, 0x55: 0xe105, 0x56: 0xe105, 0x57: 0xe105,
+       0x58: 0xe105, 0x59: 0xe105, 0x5a: 0xe105, 0x5b: 0x0080, 0x5c: 0x0080, 0x5d: 0x0080,
+       0x5e: 0x0080, 0x5f: 0x0080, 0x60: 0x0080, 0x61: 0x0008, 0x62: 0x0008, 0x63: 0x0008,
+       0x64: 0x0008, 0x65: 0x0008, 0x66: 0x0008, 0x67: 0x0008, 0x68: 0x0008, 0x69: 0x0008,
+       0x6a: 0x0008, 0x6b: 0x0008, 0x6c: 0x0008, 0x6d: 0x0008, 0x6e: 0x0008, 0x6f: 0x0008,
+       0x70: 0x0008, 0x71: 0x0008, 0x72: 0x0008, 0x73: 0x0008, 0x74: 0x0008, 0x75: 0x0008,
+       0x76: 0x0008, 0x77: 0x0008, 0x78: 0x0008, 0x79: 0x0008, 0x7a: 0x0008, 0x7b: 0x0080,
+       0x7c: 0x0080, 0x7d: 0x0080, 0x7e: 0x0080, 0x7f: 0x0080,
+       // Block 0x2, offset 0x80
+       // Block 0x3, offset 0xc0
+       0xc0: 0x0040, 0xc1: 0x0040, 0xc2: 0x0040, 0xc3: 0x0040, 0xc4: 0x0040, 0xc5: 0x0040,
+       0xc6: 0x0040, 0xc7: 0x0040, 0xc8: 0x0040, 0xc9: 0x0040, 0xca: 0x0040, 0xcb: 0x0040,
+       0xcc: 0x0040, 0xcd: 0x0040, 0xce: 0x0040, 0xcf: 0x0040, 0xd0: 0x0040, 0xd1: 0x0040,
+       0xd2: 0x0040, 0xd3: 0x0040, 0xd4: 0x0040, 0xd5: 0x0040, 0xd6: 0x0040, 0xd7: 0x0040,
+       0xd8: 0x0040, 0xd9: 0x0040, 0xda: 0x0040, 0xdb: 0x0040, 0xdc: 0x0040, 0xdd: 0x0040,
+       0xde: 0x0040, 0xdf: 0x0040, 0xe0: 0x000a, 0xe1: 0x0018, 0xe2: 0x0018, 0xe3: 0x0018,
+       0xe4: 0x0018, 0xe5: 0x0018, 0xe6: 0x0018, 0xe7: 0x0018, 0xe8: 0x001a, 0xe9: 0x0018,
+       0xea: 0x0039, 0xeb: 0x0018, 0xec: 0x0018, 0xed: 0x03c0, 0xee: 0x0018, 0xef: 0x004a,
+       0xf0: 0x0018, 0xf1: 0x0018, 0xf2: 0x0069, 0xf3: 0x0079, 0xf4: 0x008a, 0xf5: 0x0005,
+       0xf6: 0x0018, 0xf7: 0x0008, 0xf8: 0x00aa, 0xf9: 0x00c9, 0xfa: 0x00d9, 0xfb: 0x0018,
+       0xfc: 0x00e9, 0xfd: 0x0119, 0xfe: 0x0149, 0xff: 0x0018,
+       // Block 0x4, offset 0x100
+       0x100: 0xe00d, 0x101: 0x0008, 0x102: 0xe00d, 0x103: 0x0008, 0x104: 0xe00d, 0x105: 0x0008,
+       0x106: 0xe00d, 0x107: 0x0008, 0x108: 0xe00d, 0x109: 0x0008, 0x10a: 0xe00d, 0x10b: 0x0008,
+       0x10c: 0xe00d, 0x10d: 0x0008, 0x10e: 0xe00d, 0x10f: 0x0008, 0x110: 0xe00d, 0x111: 0x0008,
+       0x112: 0xe00d, 0x113: 0x0008, 0x114: 0xe00d, 0x115: 0x0008, 0x116: 0xe00d, 0x117: 0x0008,
+       0x118: 0xe00d, 0x119: 0x0008, 0x11a: 0xe00d, 0x11b: 0x0008, 0x11c: 0xe00d, 0x11d: 0x0008,
+       0x11e: 0xe00d, 0x11f: 0x0008, 0x120: 0xe00d, 0x121: 0x0008, 0x122: 0xe00d, 0x123: 0x0008,
+       0x124: 0xe00d, 0x125: 0x0008, 0x126: 0xe00d, 0x127: 0x0008, 0x128: 0xe00d, 0x129: 0x0008,
+       0x12a: 0xe00d, 0x12b: 0x0008, 0x12c: 0xe00d, 0x12d: 0x0008, 0x12e: 0xe00d, 0x12f: 0x0008,
+       0x130: 0x0179, 0x131: 0x0008, 0x132: 0x0035, 0x133: 0x004d, 0x134: 0xe00d, 0x135: 0x0008,
+       0x136: 0xe00d, 0x137: 0x0008, 0x138: 0x0008, 0x139: 0xe01d, 0x13a: 0x0008, 0x13b: 0xe03d,
+       0x13c: 0x0008, 0x13d: 0xe01d, 0x13e: 0x0008, 0x13f: 0x0199,
+       // Block 0x5, offset 0x140
+       0x140: 0x0199, 0x141: 0xe01d, 0x142: 0x0008, 0x143: 0xe03d, 0x144: 0x0008, 0x145: 0xe01d,
+       0x146: 0x0008, 0x147: 0xe07d, 0x148: 0x0008, 0x149: 0x01b9, 0x14a: 0xe00d, 0x14b: 0x0008,
+       0x14c: 0xe00d, 0x14d: 0x0008, 0x14e: 0xe00d, 0x14f: 0x0008, 0x150: 0xe00d, 0x151: 0x0008,
+       0x152: 0xe00d, 0x153: 0x0008, 0x154: 0xe00d, 0x155: 0x0008, 0x156: 0xe00d, 0x157: 0x0008,
+       0x158: 0xe00d, 0x159: 0x0008, 0x15a: 0xe00d, 0x15b: 0x0008, 0x15c: 0xe00d, 0x15d: 0x0008,
+       0x15e: 0xe00d, 0x15f: 0x0008, 0x160: 0xe00d, 0x161: 0x0008, 0x162: 0xe00d, 0x163: 0x0008,
+       0x164: 0xe00d, 0x165: 0x0008, 0x166: 0xe00d, 0x167: 0x0008, 0x168: 0xe00d, 0x169: 0x0008,
+       0x16a: 0xe00d, 0x16b: 0x0008, 0x16c: 0xe00d, 0x16d: 0x0008, 0x16e: 0xe00d, 0x16f: 0x0008,
+       0x170: 0xe00d, 0x171: 0x0008, 0x172: 0xe00d, 0x173: 0x0008, 0x174: 0xe00d, 0x175: 0x0008,
+       0x176: 0xe00d, 0x177: 0x0008, 0x178: 0x0065, 0x179: 0xe01d, 0x17a: 0x0008, 0x17b: 0xe03d,
+       0x17c: 0x0008, 0x17d: 0xe01d, 0x17e: 0x0008, 0x17f: 0x01d9,
+       // Block 0x6, offset 0x180
+       0x180: 0x0008, 0x181: 0x007d, 0x182: 0xe00d, 0x183: 0x0008, 0x184: 0xe00d, 0x185: 0x0008,
+       0x186: 0x007d, 0x187: 0xe07d, 0x188: 0x0008, 0x189: 0x0095, 0x18a: 0x00ad, 0x18b: 0xe03d,
+       0x18c: 0x0008, 0x18d: 0x0008, 0x18e: 0x00c5, 0x18f: 0x00dd, 0x190: 0x00f5, 0x191: 0xe01d,
+       0x192: 0x0008, 0x193: 0x010d, 0x194: 0x0125, 0x195: 0x0008, 0x196: 0x013d, 0x197: 0x013d,
+       0x198: 0xe00d, 0x199: 0x0008, 0x19a: 0x0008, 0x19b: 0x0008, 0x19c: 0x010d, 0x19d: 0x0155,
+       0x19e: 0x0008, 0x19f: 0x016d, 0x1a0: 0xe00d, 0x1a1: 0x0008, 0x1a2: 0xe00d, 0x1a3: 0x0008,
+       0x1a4: 0xe00d, 0x1a5: 0x0008, 0x1a6: 0x0185, 0x1a7: 0xe07d, 0x1a8: 0x0008, 0x1a9: 0x019d,
+       0x1aa: 0x0008, 0x1ab: 0x0008, 0x1ac: 0xe00d, 0x1ad: 0x0008, 0x1ae: 0x0185, 0x1af: 0xe0fd,
+       0x1b0: 0x0008, 0x1b1: 0x01b5, 0x1b2: 0x01cd, 0x1b3: 0xe03d, 0x1b4: 0x0008, 0x1b5: 0xe01d,
+       0x1b6: 0x0008, 0x1b7: 0x01e5, 0x1b8: 0xe00d, 0x1b9: 0x0008, 0x1ba: 0x0008, 0x1bb: 0x0008,
+       0x1bc: 0xe00d, 0x1bd: 0x0008, 0x1be: 0x0008, 0x1bf: 0x0008,
+       // Block 0x7, offset 0x1c0
+       0x1c0: 0x0008, 0x1c1: 0x0008, 0x1c2: 0x0008, 0x1c3: 0x0008, 0x1c4: 0x01e9, 0x1c5: 0x01e9,
+       0x1c6: 0x01e9, 0x1c7: 0x01fd, 0x1c8: 0x0215, 0x1c9: 0x022d, 0x1ca: 0x0245, 0x1cb: 0x025d,
+       0x1cc: 0x0275, 0x1cd: 0xe01d, 0x1ce: 0x0008, 0x1cf: 0xe0fd, 0x1d0: 0x0008, 0x1d1: 0xe01d,
+       0x1d2: 0x0008, 0x1d3: 0xe03d, 0x1d4: 0x0008, 0x1d5: 0xe01d, 0x1d6: 0x0008, 0x1d7: 0xe07d,
+       0x1d8: 0x0008, 0x1d9: 0xe01d, 0x1da: 0x0008, 0x1db: 0xe03d, 0x1dc: 0x0008, 0x1dd: 0x0008,
+       0x1de: 0xe00d, 0x1df: 0x0008, 0x1e0: 0xe00d, 0x1e1: 0x0008, 0x1e2: 0xe00d, 0x1e3: 0x0008,
+       0x1e4: 0xe00d, 0x1e5: 0x0008, 0x1e6: 0xe00d, 0x1e7: 0x0008, 0x1e8: 0xe00d, 0x1e9: 0x0008,
+       0x1ea: 0xe00d, 0x1eb: 0x0008, 0x1ec: 0xe00d, 0x1ed: 0x0008, 0x1ee: 0xe00d, 0x1ef: 0x0008,
+       0x1f0: 0x0008, 0x1f1: 0x028d, 0x1f2: 0x02a5, 0x1f3: 0x02bd, 0x1f4: 0xe00d, 0x1f5: 0x0008,
+       0x1f6: 0x02d5, 0x1f7: 0x02ed, 0x1f8: 0xe00d, 0x1f9: 0x0008, 0x1fa: 0xe00d, 0x1fb: 0x0008,
+       0x1fc: 0xe00d, 0x1fd: 0x0008, 0x1fe: 0xe00d, 0x1ff: 0x0008,
+       // Block 0x8, offset 0x200
+       0x200: 0xe00d, 0x201: 0x0008, 0x202: 0xe00d, 0x203: 0x0008, 0x204: 0xe00d, 0x205: 0x0008,
+       0x206: 0xe00d, 0x207: 0x0008, 0x208: 0xe00d, 0x209: 0x0008, 0x20a: 0xe00d, 0x20b: 0x0008,
+       0x20c: 0xe00d, 0x20d: 0x0008, 0x20e: 0xe00d, 0x20f: 0x0008, 0x210: 0xe00d, 0x211: 0x0008,
+       0x212: 0xe00d, 0x213: 0x0008, 0x214: 0xe00d, 0x215: 0x0008, 0x216: 0xe00d, 0x217: 0x0008,
+       0x218: 0xe00d, 0x219: 0x0008, 0x21a: 0xe00d, 0x21b: 0x0008, 0x21c: 0xe00d, 0x21d: 0x0008,
+       0x21e: 0xe00d, 0x21f: 0x0008, 0x220: 0x0305, 0x221: 0x0008, 0x222: 0xe00d, 0x223: 0x0008,
+       0x224: 0xe00d, 0x225: 0x0008, 0x226: 0xe00d, 0x227: 0x0008, 0x228: 0xe00d, 0x229: 0x0008,
+       0x22a: 0xe00d, 0x22b: 0x0008, 0x22c: 0xe00d, 0x22d: 0x0008, 0x22e: 0xe00d, 0x22f: 0x0008,
+       0x230: 0xe00d, 0x231: 0x0008, 0x232: 0xe00d, 0x233: 0x0008, 0x234: 0x0008, 0x235: 0x0008,
+       0x236: 0x0008, 0x237: 0x0008, 0x238: 0x0008, 0x239: 0x0008, 0x23a: 0x0209, 0x23b: 0xe03d,
+       0x23c: 0x0008, 0x23d: 0x031d, 0x23e: 0x0229, 0x23f: 0x0008,
+       // Block 0x9, offset 0x240
+       0x240: 0x0008, 0x241: 0x0008, 0x242: 0x0018, 0x243: 0x0018, 0x244: 0x0018, 0x245: 0x0018,
+       0x246: 0x0008, 0x247: 0x0008, 0x248: 0x0008, 0x249: 0x0008, 0x24a: 0x0008, 0x24b: 0x0008,
+       0x24c: 0x0008, 0x24d: 0x0008, 0x24e: 0x0008, 0x24f: 0x0008, 0x250: 0x0008, 0x251: 0x0008,
+       0x252: 0x0018, 0x253: 0x0018, 0x254: 0x0018, 0x255: 0x0018, 0x256: 0x0018, 0x257: 0x0018,
+       0x258: 0x029a, 0x259: 0x02ba, 0x25a: 0x02da, 0x25b: 0x02fa, 0x25c: 0x031a, 0x25d: 0x033a,
+       0x25e: 0x0018, 0x25f: 0x0018, 0x260: 0x03ad, 0x261: 0x0359, 0x262: 0x01d9, 0x263: 0x0369,
+       0x264: 0x03c5, 0x265: 0x0018, 0x266: 0x0018, 0x267: 0x0018, 0x268: 0x0018, 0x269: 0x0018,
+       0x26a: 0x0018, 0x26b: 0x0018, 0x26c: 0x0008, 0x26d: 0x0018, 0x26e: 0x0008, 0x26f: 0x0018,
+       0x270: 0x0018, 0x271: 0x0018, 0x272: 0x0018, 0x273: 0x0018, 0x274: 0x0018, 0x275: 0x0018,
+       0x276: 0x0018, 0x277: 0x0018, 0x278: 0x0018, 0x279: 0x0018, 0x27a: 0x0018, 0x27b: 0x0018,
+       0x27c: 0x0018, 0x27d: 0x0018, 0x27e: 0x0018, 0x27f: 0x0018,
+       // Block 0xa, offset 0x280
+       0x280: 0x03dd, 0x281: 0x03dd, 0x282: 0x3308, 0x283: 0x03f5, 0x284: 0x0379, 0x285: 0x040d,
+       0x286: 0x3308, 0x287: 0x3308, 0x288: 0x3308, 0x289: 0x3308, 0x28a: 0x3308, 0x28b: 0x3308,
+       0x28c: 0x3308, 0x28d: 0x3308, 0x28e: 0x3308, 0x28f: 0x33c0, 0x290: 0x3308, 0x291: 0x3308,
+       0x292: 0x3308, 0x293: 0x3308, 0x294: 0x3308, 0x295: 0x3308, 0x296: 0x3308, 0x297: 0x3308,
+       0x298: 0x3308, 0x299: 0x3308, 0x29a: 0x3308, 0x29b: 0x3308, 0x29c: 0x3308, 0x29d: 0x3308,
+       0x29e: 0x3308, 0x29f: 0x3308, 0x2a0: 0x3308, 0x2a1: 0x3308, 0x2a2: 0x3308, 0x2a3: 0x3308,
+       0x2a4: 0x3308, 0x2a5: 0x3308, 0x2a6: 0x3308, 0x2a7: 0x3308, 0x2a8: 0x3308, 0x2a9: 0x3308,
+       0x2aa: 0x3308, 0x2ab: 0x3308, 0x2ac: 0x3308, 0x2ad: 0x3308, 0x2ae: 0x3308, 0x2af: 0x3308,
+       0x2b0: 0xe00d, 0x2b1: 0x0008, 0x2b2: 0xe00d, 0x2b3: 0x0008, 0x2b4: 0x0425, 0x2b5: 0x0008,
+       0x2b6: 0xe00d, 0x2b7: 0x0008, 0x2b8: 0x0040, 0x2b9: 0x0040, 0x2ba: 0x03a2, 0x2bb: 0x0008,
+       0x2bc: 0x0008, 0x2bd: 0x0008, 0x2be: 0x03c2, 0x2bf: 0x043d,
+       // Block 0xb, offset 0x2c0
+       0x2c0: 0x0040, 0x2c1: 0x0040, 0x2c2: 0x0040, 0x2c3: 0x0040, 0x2c4: 0x008a, 0x2c5: 0x03d2,
+       0x2c6: 0xe155, 0x2c7: 0x0455, 0x2c8: 0xe12d, 0x2c9: 0xe13d, 0x2ca: 0xe12d, 0x2cb: 0x0040,
+       0x2cc: 0x03dd, 0x2cd: 0x0040, 0x2ce: 0x046d, 0x2cf: 0x0485, 0x2d0: 0x0008, 0x2d1: 0xe105,
+       0x2d2: 0xe105, 0x2d3: 0xe105, 0x2d4: 0xe105, 0x2d5: 0xe105, 0x2d6: 0xe105, 0x2d7: 0xe105,
+       0x2d8: 0xe105, 0x2d9: 0xe105, 0x2da: 0xe105, 0x2db: 0xe105, 0x2dc: 0xe105, 0x2dd: 0xe105,
+       0x2de: 0xe105, 0x2df: 0xe105, 0x2e0: 0x049d, 0x2e1: 0x049d, 0x2e2: 0x0040, 0x2e3: 0x049d,
+       0x2e4: 0x049d, 0x2e5: 0x049d, 0x2e6: 0x049d, 0x2e7: 0x049d, 0x2e8: 0x049d, 0x2e9: 0x049d,
+       0x2ea: 0x049d, 0x2eb: 0x049d, 0x2ec: 0x0008, 0x2ed: 0x0008, 0x2ee: 0x0008, 0x2ef: 0x0008,
+       0x2f0: 0x0008, 0x2f1: 0x0008, 0x2f2: 0x0008, 0x2f3: 0x0008, 0x2f4: 0x0008, 0x2f5: 0x0008,
+       0x2f6: 0x0008, 0x2f7: 0x0008, 0x2f8: 0x0008, 0x2f9: 0x0008, 0x2fa: 0x0008, 0x2fb: 0x0008,
+       0x2fc: 0x0008, 0x2fd: 0x0008, 0x2fe: 0x0008, 0x2ff: 0x0008,
+       // Block 0xc, offset 0x300
+       0x300: 0x0008, 0x301: 0x0008, 0x302: 0xe00f, 0x303: 0x0008, 0x304: 0x0008, 0x305: 0x0008,
+       0x306: 0x0008, 0x307: 0x0008, 0x308: 0x0008, 0x309: 0x0008, 0x30a: 0x0008, 0x30b: 0x0008,
+       0x30c: 0x0008, 0x30d: 0x0008, 0x30e: 0x0008, 0x30f: 0xe0c5, 0x310: 0x04b5, 0x311: 0x04cd,
+       0x312: 0xe0bd, 0x313: 0xe0f5, 0x314: 0xe0fd, 0x315: 0xe09d, 0x316: 0xe0b5, 0x317: 0x0008,
+       0x318: 0xe00d, 0x319: 0x0008, 0x31a: 0xe00d, 0x31b: 0x0008, 0x31c: 0xe00d, 0x31d: 0x0008,
+       0x31e: 0xe00d, 0x31f: 0x0008, 0x320: 0xe00d, 0x321: 0x0008, 0x322: 0xe00d, 0x323: 0x0008,
+       0x324: 0xe00d, 0x325: 0x0008, 0x326: 0xe00d, 0x327: 0x0008, 0x328: 0xe00d, 0x329: 0x0008,
+       0x32a: 0xe00d, 0x32b: 0x0008, 0x32c: 0xe00d, 0x32d: 0x0008, 0x32e: 0xe00d, 0x32f: 0x0008,
+       0x330: 0x04e5, 0x331: 0xe185, 0x332: 0xe18d, 0x333: 0x0008, 0x334: 0x04fd, 0x335: 0x03dd,
+       0x336: 0x0018, 0x337: 0xe07d, 0x338: 0x0008, 0x339: 0xe1d5, 0x33a: 0xe00d, 0x33b: 0x0008,
+       0x33c: 0x0008, 0x33d: 0x0515, 0x33e: 0x052d, 0x33f: 0x052d,
+       // Block 0xd, offset 0x340
+       0x340: 0x0008, 0x341: 0x0008, 0x342: 0x0008, 0x343: 0x0008, 0x344: 0x0008, 0x345: 0x0008,
+       0x346: 0x0008, 0x347: 0x0008, 0x348: 0x0008, 0x349: 0x0008, 0x34a: 0x0008, 0x34b: 0x0008,
+       0x34c: 0x0008, 0x34d: 0x0008, 0x34e: 0x0008, 0x34f: 0x0008, 0x350: 0x0008, 0x351: 0x0008,
+       0x352: 0x0008, 0x353: 0x0008, 0x354: 0x0008, 0x355: 0x0008, 0x356: 0x0008, 0x357: 0x0008,
+       0x358: 0x0008, 0x359: 0x0008, 0x35a: 0x0008, 0x35b: 0x0008, 0x35c: 0x0008, 0x35d: 0x0008,
+       0x35e: 0x0008, 0x35f: 0x0008, 0x360: 0xe00d, 0x361: 0x0008, 0x362: 0xe00d, 0x363: 0x0008,
+       0x364: 0xe00d, 0x365: 0x0008, 0x366: 0xe00d, 0x367: 0x0008, 0x368: 0xe00d, 0x369: 0x0008,
+       0x36a: 0xe00d, 0x36b: 0x0008, 0x36c: 0xe00d, 0x36d: 0x0008, 0x36e: 0xe00d, 0x36f: 0x0008,
+       0x370: 0xe00d, 0x371: 0x0008, 0x372: 0xe00d, 0x373: 0x0008, 0x374: 0xe00d, 0x375: 0x0008,
+       0x376: 0xe00d, 0x377: 0x0008, 0x378: 0xe00d, 0x379: 0x0008, 0x37a: 0xe00d, 0x37b: 0x0008,
+       0x37c: 0xe00d, 0x37d: 0x0008, 0x37e: 0xe00d, 0x37f: 0x0008,
+       // Block 0xe, offset 0x380
+       0x380: 0xe00d, 0x381: 0x0008, 0x382: 0x0018, 0x383: 0x3308, 0x384: 0x3308, 0x385: 0x3308,
+       0x386: 0x3308, 0x387: 0x3308, 0x388: 0x3318, 0x389: 0x3318, 0x38a: 0xe00d, 0x38b: 0x0008,
+       0x38c: 0xe00d, 0x38d: 0x0008, 0x38e: 0xe00d, 0x38f: 0x0008, 0x390: 0xe00d, 0x391: 0x0008,
+       0x392: 0xe00d, 0x393: 0x0008, 0x394: 0xe00d, 0x395: 0x0008, 0x396: 0xe00d, 0x397: 0x0008,
+       0x398: 0xe00d, 0x399: 0x0008, 0x39a: 0xe00d, 0x39b: 0x0008, 0x39c: 0xe00d, 0x39d: 0x0008,
+       0x39e: 0xe00d, 0x39f: 0x0008, 0x3a0: 0xe00d, 0x3a1: 0x0008, 0x3a2: 0xe00d, 0x3a3: 0x0008,
+       0x3a4: 0xe00d, 0x3a5: 0x0008, 0x3a6: 0xe00d, 0x3a7: 0x0008, 0x3a8: 0xe00d, 0x3a9: 0x0008,
+       0x3aa: 0xe00d, 0x3ab: 0x0008, 0x3ac: 0xe00d, 0x3ad: 0x0008, 0x3ae: 0xe00d, 0x3af: 0x0008,
+       0x3b0: 0xe00d, 0x3b1: 0x0008, 0x3b2: 0xe00d, 0x3b3: 0x0008, 0x3b4: 0xe00d, 0x3b5: 0x0008,
+       0x3b6: 0xe00d, 0x3b7: 0x0008, 0x3b8: 0xe00d, 0x3b9: 0x0008, 0x3ba: 0xe00d, 0x3bb: 0x0008,
+       0x3bc: 0xe00d, 0x3bd: 0x0008, 0x3be: 0xe00d, 0x3bf: 0x0008,
+       // Block 0xf, offset 0x3c0
+       0x3c0: 0x0040, 0x3c1: 0xe01d, 0x3c2: 0x0008, 0x3c3: 0xe03d, 0x3c4: 0x0008, 0x3c5: 0xe01d,
+       0x3c6: 0x0008, 0x3c7: 0xe07d, 0x3c8: 0x0008, 0x3c9: 0xe01d, 0x3ca: 0x0008, 0x3cb: 0xe03d,
+       0x3cc: 0x0008, 0x3cd: 0xe01d, 0x3ce: 0x0008, 0x3cf: 0x0008, 0x3d0: 0xe00d, 0x3d1: 0x0008,
+       0x3d2: 0xe00d, 0x3d3: 0x0008, 0x3d4: 0xe00d, 0x3d5: 0x0008, 0x3d6: 0xe00d, 0x3d7: 0x0008,
+       0x3d8: 0xe00d, 0x3d9: 0x0008, 0x3da: 0xe00d, 0x3db: 0x0008, 0x3dc: 0xe00d, 0x3dd: 0x0008,
+       0x3de: 0xe00d, 0x3df: 0x0008, 0x3e0: 0xe00d, 0x3e1: 0x0008, 0x3e2: 0xe00d, 0x3e3: 0x0008,
+       0x3e4: 0xe00d, 0x3e5: 0x0008, 0x3e6: 0xe00d, 0x3e7: 0x0008, 0x3e8: 0xe00d, 0x3e9: 0x0008,
+       0x3ea: 0xe00d, 0x3eb: 0x0008, 0x3ec: 0xe00d, 0x3ed: 0x0008, 0x3ee: 0xe00d, 0x3ef: 0x0008,
+       0x3f0: 0xe00d, 0x3f1: 0x0008, 0x3f2: 0xe00d, 0x3f3: 0x0008, 0x3f4: 0xe00d, 0x3f5: 0x0008,
+       0x3f6: 0xe00d, 0x3f7: 0x0008, 0x3f8: 0xe00d, 0x3f9: 0x0008, 0x3fa: 0xe00d, 0x3fb: 0x0008,
+       0x3fc: 0xe00d, 0x3fd: 0x0008, 0x3fe: 0xe00d, 0x3ff: 0x0008,
+       // Block 0x10, offset 0x400
+       0x400: 0xe00d, 0x401: 0x0008, 0x402: 0xe00d, 0x403: 0x0008, 0x404: 0xe00d, 0x405: 0x0008,
+       0x406: 0xe00d, 0x407: 0x0008, 0x408: 0xe00d, 0x409: 0x0008, 0x40a: 0xe00d, 0x40b: 0x0008,
+       0x40c: 0xe00d, 0x40d: 0x0008, 0x40e: 0xe00d, 0x40f: 0x0008, 0x410: 0xe00d, 0x411: 0x0008,
+       0x412: 0xe00d, 0x413: 0x0008, 0x414: 0xe00d, 0x415: 0x0008, 0x416: 0xe00d, 0x417: 0x0008,
+       0x418: 0xe00d, 0x419: 0x0008, 0x41a: 0xe00d, 0x41b: 0x0008, 0x41c: 0xe00d, 0x41d: 0x0008,
+       0x41e: 0xe00d, 0x41f: 0x0008, 0x420: 0xe00d, 0x421: 0x0008, 0x422: 0xe00d, 0x423: 0x0008,
+       0x424: 0xe00d, 0x425: 0x0008, 0x426: 0xe00d, 0x427: 0x0008, 0x428: 0xe00d, 0x429: 0x0008,
+       0x42a: 0xe00d, 0x42b: 0x0008, 0x42c: 0xe00d, 0x42d: 0x0008, 0x42e: 0xe00d, 0x42f: 0x0008,
+       0x430: 0x0040, 0x431: 0x03f5, 0x432: 0x03f5, 0x433: 0x03f5, 0x434: 0x03f5, 0x435: 0x03f5,
+       0x436: 0x03f5, 0x437: 0x03f5, 0x438: 0x03f5, 0x439: 0x03f5, 0x43a: 0x03f5, 0x43b: 0x03f5,
+       0x43c: 0x03f5, 0x43d: 0x03f5, 0x43e: 0x03f5, 0x43f: 0x03f5,
+       // Block 0x11, offset 0x440
+       0x440: 0x0840, 0x441: 0x0840, 0x442: 0x0840, 0x443: 0x0840, 0x444: 0x0840, 0x445: 0x0840,
+       0x446: 0x0018, 0x447: 0x0018, 0x448: 0x0818, 0x449: 0x0018, 0x44a: 0x0018, 0x44b: 0x0818,
+       0x44c: 0x0018, 0x44d: 0x0818, 0x44e: 0x0018, 0x44f: 0x0018, 0x450: 0x3308, 0x451: 0x3308,
+       0x452: 0x3308, 0x453: 0x3308, 0x454: 0x3308, 0x455: 0x3308, 0x456: 0x3308, 0x457: 0x3308,
+       0x458: 0x3308, 0x459: 0x3308, 0x45a: 0x3308, 0x45b: 0x0818, 0x45c: 0x0b40, 0x45d: 0x0040,
+       0x45e: 0x0818, 0x45f: 0x0818, 0x460: 0x0a08, 0x461: 0x0808, 0x462: 0x0c08, 0x463: 0x0c08,
+       0x464: 0x0c08, 0x465: 0x0c08, 0x466: 0x0a08, 0x467: 0x0c08, 0x468: 0x0a08, 0x469: 0x0c08,
+       0x46a: 0x0a08, 0x46b: 0x0a08, 0x46c: 0x0a08, 0x46d: 0x0a08, 0x46e: 0x0a08, 0x46f: 0x0c08,
+       0x470: 0x0c08, 0x471: 0x0c08, 0x472: 0x0c08, 0x473: 0x0a08, 0x474: 0x0a08, 0x475: 0x0a08,
+       0x476: 0x0a08, 0x477: 0x0a08, 0x478: 0x0a08, 0x479: 0x0a08, 0x47a: 0x0a08, 0x47b: 0x0a08,
+       0x47c: 0x0a08, 0x47d: 0x0a08, 0x47e: 0x0a08, 0x47f: 0x0a08,
+       // Block 0x12, offset 0x480
+       0x480: 0x0818, 0x481: 0x0a08, 0x482: 0x0a08, 0x483: 0x0a08, 0x484: 0x0a08, 0x485: 0x0a08,
+       0x486: 0x0a08, 0x487: 0x0a08, 0x488: 0x0c08, 0x489: 0x0a08, 0x48a: 0x0a08, 0x48b: 0x3308,
+       0x48c: 0x3308, 0x48d: 0x3308, 0x48e: 0x3308, 0x48f: 0x3308, 0x490: 0x3308, 0x491: 0x3308,
+       0x492: 0x3308, 0x493: 0x3308, 0x494: 0x3308, 0x495: 0x3308, 0x496: 0x3308, 0x497: 0x3308,
+       0x498: 0x3308, 0x499: 0x3308, 0x49a: 0x3308, 0x49b: 0x3308, 0x49c: 0x3308, 0x49d: 0x3308,
+       0x49e: 0x3308, 0x49f: 0x3308, 0x4a0: 0x0808, 0x4a1: 0x0808, 0x4a2: 0x0808, 0x4a3: 0x0808,
+       0x4a4: 0x0808, 0x4a5: 0x0808, 0x4a6: 0x0808, 0x4a7: 0x0808, 0x4a8: 0x0808, 0x4a9: 0x0808,
+       0x4aa: 0x0018, 0x4ab: 0x0818, 0x4ac: 0x0818, 0x4ad: 0x0818, 0x4ae: 0x0a08, 0x4af: 0x0a08,
+       0x4b0: 0x3308, 0x4b1: 0x0c08, 0x4b2: 0x0c08, 0x4b3: 0x0c08, 0x4b4: 0x0808, 0x4b5: 0x0429,
+       0x4b6: 0x0451, 0x4b7: 0x0479, 0x4b8: 0x04a1, 0x4b9: 0x0a08, 0x4ba: 0x0a08, 0x4bb: 0x0a08,
+       0x4bc: 0x0a08, 0x4bd: 0x0a08, 0x4be: 0x0a08, 0x4bf: 0x0a08,
+       // Block 0x13, offset 0x4c0
+       0x4c0: 0x0c08, 0x4c1: 0x0a08, 0x4c2: 0x0a08, 0x4c3: 0x0c08, 0x4c4: 0x0c08, 0x4c5: 0x0c08,
+       0x4c6: 0x0c08, 0x4c7: 0x0c08, 0x4c8: 0x0c08, 0x4c9: 0x0c08, 0x4ca: 0x0c08, 0x4cb: 0x0c08,
+       0x4cc: 0x0a08, 0x4cd: 0x0c08, 0x4ce: 0x0a08, 0x4cf: 0x0c08, 0x4d0: 0x0a08, 0x4d1: 0x0a08,
+       0x4d2: 0x0c08, 0x4d3: 0x0c08, 0x4d4: 0x0818, 0x4d5: 0x0c08, 0x4d6: 0x3308, 0x4d7: 0x3308,
+       0x4d8: 0x3308, 0x4d9: 0x3308, 0x4da: 0x3308, 0x4db: 0x3308, 0x4dc: 0x3308, 0x4dd: 0x0840,
+       0x4de: 0x0018, 0x4df: 0x3308, 0x4e0: 0x3308, 0x4e1: 0x3308, 0x4e2: 0x3308, 0x4e3: 0x3308,
+       0x4e4: 0x3308, 0x4e5: 0x0808, 0x4e6: 0x0808, 0x4e7: 0x3308, 0x4e8: 0x3308, 0x4e9: 0x0018,
+       0x4ea: 0x3308, 0x4eb: 0x3308, 0x4ec: 0x3308, 0x4ed: 0x3308, 0x4ee: 0x0c08, 0x4ef: 0x0c08,
+       0x4f0: 0x0008, 0x4f1: 0x0008, 0x4f2: 0x0008, 0x4f3: 0x0008, 0x4f4: 0x0008, 0x4f5: 0x0008,
+       0x4f6: 0x0008, 0x4f7: 0x0008, 0x4f8: 0x0008, 0x4f9: 0x0008, 0x4fa: 0x0a08, 0x4fb: 0x0a08,
+       0x4fc: 0x0a08, 0x4fd: 0x0808, 0x4fe: 0x0808, 0x4ff: 0x0a08,
+       // Block 0x14, offset 0x500
+       0x500: 0x0818, 0x501: 0x0818, 0x502: 0x0818, 0x503: 0x0818, 0x504: 0x0818, 0x505: 0x0818,
+       0x506: 0x0818, 0x507: 0x0818, 0x508: 0x0818, 0x509: 0x0818, 0x50a: 0x0818, 0x50b: 0x0818,
+       0x50c: 0x0818, 0x50d: 0x0818, 0x50e: 0x0040, 0x50f: 0x0b40, 0x510: 0x0c08, 0x511: 0x3308,
+       0x512: 0x0a08, 0x513: 0x0a08, 0x514: 0x0a08, 0x515: 0x0c08, 0x516: 0x0c08, 0x517: 0x0c08,
+       0x518: 0x0c08, 0x519: 0x0c08, 0x51a: 0x0a08, 0x51b: 0x0a08, 0x51c: 0x0a08, 0x51d: 0x0a08,
+       0x51e: 0x0c08, 0x51f: 0x0a08, 0x520: 0x0a08, 0x521: 0x0a08, 0x522: 0x0a08, 0x523: 0x0a08,
+       0x524: 0x0a08, 0x525: 0x0a08, 0x526: 0x0a08, 0x527: 0x0a08, 0x528: 0x0c08, 0x529: 0x0a08,
+       0x52a: 0x0c08, 0x52b: 0x0a08, 0x52c: 0x0c08, 0x52d: 0x0a08, 0x52e: 0x0a08, 0x52f: 0x0c08,
+       0x530: 0x3308, 0x531: 0x3308, 0x532: 0x3308, 0x533: 0x3308, 0x534: 0x3308, 0x535: 0x3308,
+       0x536: 0x3308, 0x537: 0x3308, 0x538: 0x3308, 0x539: 0x3308, 0x53a: 0x3308, 0x53b: 0x3308,
+       0x53c: 0x3308, 0x53d: 0x3308, 0x53e: 0x3308, 0x53f: 0x3308,
+       // Block 0x15, offset 0x540
+       0x540: 0x3008, 0x541: 0x3308, 0x542: 0x3308, 0x543: 0x3308, 0x544: 0x3308, 0x545: 0x3308,
+       0x546: 0x3308, 0x547: 0x3308, 0x548: 0x3308, 0x549: 0x3008, 0x54a: 0x3008, 0x54b: 0x3008,
+       0x54c: 0x3008, 0x54d: 0x3b08, 0x54e: 0x3008, 0x54f: 0x3008, 0x550: 0x0008, 0x551: 0x3308,
+       0x552: 0x3308, 0x553: 0x3308, 0x554: 0x3308, 0x555: 0x3308, 0x556: 0x3308, 0x557: 0x3308,
+       0x558: 0x04c9, 0x559: 0x0501, 0x55a: 0x0539, 0x55b: 0x0571, 0x55c: 0x05a9, 0x55d: 0x05e1,
+       0x55e: 0x0619, 0x55f: 0x0651, 0x560: 0x0008, 0x561: 0x0008, 0x562: 0x3308, 0x563: 0x3308,
+       0x564: 0x0018, 0x565: 0x0018, 0x566: 0x0008, 0x567: 0x0008, 0x568: 0x0008, 0x569: 0x0008,
+       0x56a: 0x0008, 0x56b: 0x0008, 0x56c: 0x0008, 0x56d: 0x0008, 0x56e: 0x0008, 0x56f: 0x0008,
+       0x570: 0x0018, 0x571: 0x0008, 0x572: 0x0008, 0x573: 0x0008, 0x574: 0x0008, 0x575: 0x0008,
+       0x576: 0x0008, 0x577: 0x0008, 0x578: 0x0008, 0x579: 0x0008, 0x57a: 0x0008, 0x57b: 0x0008,
+       0x57c: 0x0008, 0x57d: 0x0008, 0x57e: 0x0008, 0x57f: 0x0008,
+       // Block 0x16, offset 0x580
+       0x580: 0x0008, 0x581: 0x3308, 0x582: 0x3008, 0x583: 0x3008, 0x584: 0x0040, 0x585: 0x0008,
+       0x586: 0x0008, 0x587: 0x0008, 0x588: 0x0008, 0x589: 0x0008, 0x58a: 0x0008, 0x58b: 0x0008,
+       0x58c: 0x0008, 0x58d: 0x0040, 0x58e: 0x0040, 0x58f: 0x0008, 0x590: 0x0008, 0x591: 0x0040,
+       0x592: 0x0040, 0x593: 0x0008, 0x594: 0x0008, 0x595: 0x0008, 0x596: 0x0008, 0x597: 0x0008,
+       0x598: 0x0008, 0x599: 0x0008, 0x59a: 0x0008, 0x59b: 0x0008, 0x59c: 0x0008, 0x59d: 0x0008,
+       0x59e: 0x0008, 0x59f: 0x0008, 0x5a0: 0x0008, 0x5a1: 0x0008, 0x5a2: 0x0008, 0x5a3: 0x0008,
+       0x5a4: 0x0008, 0x5a5: 0x0008, 0x5a6: 0x0008, 0x5a7: 0x0008, 0x5a8: 0x0008, 0x5a9: 0x0040,
+       0x5aa: 0x0008, 0x5ab: 0x0008, 0x5ac: 0x0008, 0x5ad: 0x0008, 0x5ae: 0x0008, 0x5af: 0x0008,
+       0x5b0: 0x0008, 0x5b1: 0x0040, 0x5b2: 0x0008, 0x5b3: 0x0040, 0x5b4: 0x0040, 0x5b5: 0x0040,
+       0x5b6: 0x0008, 0x5b7: 0x0008, 0x5b8: 0x0008, 0x5b9: 0x0008, 0x5ba: 0x0040, 0x5bb: 0x0040,
+       0x5bc: 0x3308, 0x5bd: 0x0008, 0x5be: 0x3008, 0x5bf: 0x3008,
+       // Block 0x17, offset 0x5c0
+       0x5c0: 0x3008, 0x5c1: 0x3308, 0x5c2: 0x3308, 0x5c3: 0x3308, 0x5c4: 0x3308, 0x5c5: 0x0040,
+       0x5c6: 0x0040, 0x5c7: 0x3008, 0x5c8: 0x3008, 0x5c9: 0x0040, 0x5ca: 0x0040, 0x5cb: 0x3008,
+       0x5cc: 0x3008, 0x5cd: 0x3b08, 0x5ce: 0x0008, 0x5cf: 0x0040, 0x5d0: 0x0040, 0x5d1: 0x0040,
+       0x5d2: 0x0040, 0x5d3: 0x0040, 0x5d4: 0x0040, 0x5d5: 0x0040, 0x5d6: 0x0040, 0x5d7: 0x3008,
+       0x5d8: 0x0040, 0x5d9: 0x0040, 0x5da: 0x0040, 0x5db: 0x0040, 0x5dc: 0x0689, 0x5dd: 0x06c1,
+       0x5de: 0x0040, 0x5df: 0x06f9, 0x5e0: 0x0008, 0x5e1: 0x0008, 0x5e2: 0x3308, 0x5e3: 0x3308,
+       0x5e4: 0x0040, 0x5e5: 0x0040, 0x5e6: 0x0008, 0x5e7: 0x0008, 0x5e8: 0x0008, 0x5e9: 0x0008,
+       0x5ea: 0x0008, 0x5eb: 0x0008, 0x5ec: 0x0008, 0x5ed: 0x0008, 0x5ee: 0x0008, 0x5ef: 0x0008,
+       0x5f0: 0x0008, 0x5f1: 0x0008, 0x5f2: 0x0018, 0x5f3: 0x0018, 0x5f4: 0x0018, 0x5f5: 0x0018,
+       0x5f6: 0x0018, 0x5f7: 0x0018, 0x5f8: 0x0018, 0x5f9: 0x0018, 0x5fa: 0x0018, 0x5fb: 0x0018,
+       0x5fc: 0x0040, 0x5fd: 0x0040, 0x5fe: 0x0040, 0x5ff: 0x0040,
+       // Block 0x18, offset 0x600
+       0x600: 0x0040, 0x601: 0x3308, 0x602: 0x3308, 0x603: 0x3008, 0x604: 0x0040, 0x605: 0x0008,
+       0x606: 0x0008, 0x607: 0x0008, 0x608: 0x0008, 0x609: 0x0008, 0x60a: 0x0008, 0x60b: 0x0040,
+       0x60c: 0x0040, 0x60d: 0x0040, 0x60e: 0x0040, 0x60f: 0x0008, 0x610: 0x0008, 0x611: 0x0040,
+       0x612: 0x0040, 0x613: 0x0008, 0x614: 0x0008, 0x615: 0x0008, 0x616: 0x0008, 0x617: 0x0008,
+       0x618: 0x0008, 0x619: 0x0008, 0x61a: 0x0008, 0x61b: 0x0008, 0x61c: 0x0008, 0x61d: 0x0008,
+       0x61e: 0x0008, 0x61f: 0x0008, 0x620: 0x0008, 0x621: 0x0008, 0x622: 0x0008, 0x623: 0x0008,
+       0x624: 0x0008, 0x625: 0x0008, 0x626: 0x0008, 0x627: 0x0008, 0x628: 0x0008, 0x629: 0x0040,
+       0x62a: 0x0008, 0x62b: 0x0008, 0x62c: 0x0008, 0x62d: 0x0008, 0x62e: 0x0008, 0x62f: 0x0008,
+       0x630: 0x0008, 0x631: 0x0040, 0x632: 0x0008, 0x633: 0x0731, 0x634: 0x0040, 0x635: 0x0008,
+       0x636: 0x0769, 0x637: 0x0040, 0x638: 0x0008, 0x639: 0x0008, 0x63a: 0x0040, 0x63b: 0x0040,
+       0x63c: 0x3308, 0x63d: 0x0040, 0x63e: 0x3008, 0x63f: 0x3008,
+       // Block 0x19, offset 0x640
+       0x640: 0x3008, 0x641: 0x3308, 0x642: 0x3308, 0x643: 0x0040, 0x644: 0x0040, 0x645: 0x0040,
+       0x646: 0x0040, 0x647: 0x3308, 0x648: 0x3308, 0x649: 0x0040, 0x64a: 0x0040, 0x64b: 0x3308,
+       0x64c: 0x3308, 0x64d: 0x3b08, 0x64e: 0x0040, 0x64f: 0x0040, 0x650: 0x0040, 0x651: 0x3308,
+       0x652: 0x0040, 0x653: 0x0040, 0x654: 0x0040, 0x655: 0x0040, 0x656: 0x0040, 0x657: 0x0040,
+       0x658: 0x0040, 0x659: 0x07a1, 0x65a: 0x07d9, 0x65b: 0x0811, 0x65c: 0x0008, 0x65d: 0x0040,
+       0x65e: 0x0849, 0x65f: 0x0040, 0x660: 0x0040, 0x661: 0x0040, 0x662: 0x0040, 0x663: 0x0040,
+       0x664: 0x0040, 0x665: 0x0040, 0x666: 0x0008, 0x667: 0x0008, 0x668: 0x0008, 0x669: 0x0008,
+       0x66a: 0x0008, 0x66b: 0x0008, 0x66c: 0x0008, 0x66d: 0x0008, 0x66e: 0x0008, 0x66f: 0x0008,
+       0x670: 0x3308, 0x671: 0x3308, 0x672: 0x0008, 0x673: 0x0008, 0x674: 0x0008, 0x675: 0x3308,
+       0x676: 0x0040, 0x677: 0x0040, 0x678: 0x0040, 0x679: 0x0040, 0x67a: 0x0040, 0x67b: 0x0040,
+       0x67c: 0x0040, 0x67d: 0x0040, 0x67e: 0x0040, 0x67f: 0x0040,
+       // Block 0x1a, offset 0x680
+       0x680: 0x0040, 0x681: 0x3308, 0x682: 0x3308, 0x683: 0x3008, 0x684: 0x0040, 0x685: 0x0008,
+       0x686: 0x0008, 0x687: 0x0008, 0x688: 0x0008, 0x689: 0x0008, 0x68a: 0x0008, 0x68b: 0x0008,
+       0x68c: 0x0008, 0x68d: 0x0008, 0x68e: 0x0040, 0x68f: 0x0008, 0x690: 0x0008, 0x691: 0x0008,
+       0x692: 0x0040, 0x693: 0x0008, 0x694: 0x0008, 0x695: 0x0008, 0x696: 0x0008, 0x697: 0x0008,
+       0x698: 0x0008, 0x699: 0x0008, 0x69a: 0x0008, 0x69b: 0x0008, 0x69c: 0x0008, 0x69d: 0x0008,
+       0x69e: 0x0008, 0x69f: 0x0008, 0x6a0: 0x0008, 0x6a1: 0x0008, 0x6a2: 0x0008, 0x6a3: 0x0008,
+       0x6a4: 0x0008, 0x6a5: 0x0008, 0x6a6: 0x0008, 0x6a7: 0x0008, 0x6a8: 0x0008, 0x6a9: 0x0040,
+       0x6aa: 0x0008, 0x6ab: 0x0008, 0x6ac: 0x0008, 0x6ad: 0x0008, 0x6ae: 0x0008, 0x6af: 0x0008,
+       0x6b0: 0x0008, 0x6b1: 0x0040, 0x6b2: 0x0008, 0x6b3: 0x0008, 0x6b4: 0x0040, 0x6b5: 0x0008,
+       0x6b6: 0x0008, 0x6b7: 0x0008, 0x6b8: 0x0008, 0x6b9: 0x0008, 0x6ba: 0x0040, 0x6bb: 0x0040,
+       0x6bc: 0x3308, 0x6bd: 0x0008, 0x6be: 0x3008, 0x6bf: 0x3008,
+       // Block 0x1b, offset 0x6c0
+       0x6c0: 0x3008, 0x6c1: 0x3308, 0x6c2: 0x3308, 0x6c3: 0x3308, 0x6c4: 0x3308, 0x6c5: 0x3308,
+       0x6c6: 0x0040, 0x6c7: 0x3308, 0x6c8: 0x3308, 0x6c9: 0x3008, 0x6ca: 0x0040, 0x6cb: 0x3008,
+       0x6cc: 0x3008, 0x6cd: 0x3b08, 0x6ce: 0x0040, 0x6cf: 0x0040, 0x6d0: 0x0008, 0x6d1: 0x0040,
+       0x6d2: 0x0040, 0x6d3: 0x0040, 0x6d4: 0x0040, 0x6d5: 0x0040, 0x6d6: 0x0040, 0x6d7: 0x0040,
+       0x6d8: 0x0040, 0x6d9: 0x0040, 0x6da: 0x0040, 0x6db: 0x0040, 0x6dc: 0x0040, 0x6dd: 0x0040,
+       0x6de: 0x0040, 0x6df: 0x0040, 0x6e0: 0x0008, 0x6e1: 0x0008, 0x6e2: 0x3308, 0x6e3: 0x3308,
+       0x6e4: 0x0040, 0x6e5: 0x0040, 0x6e6: 0x0008, 0x6e7: 0x0008, 0x6e8: 0x0008, 0x6e9: 0x0008,
+       0x6ea: 0x0008, 0x6eb: 0x0008, 0x6ec: 0x0008, 0x6ed: 0x0008, 0x6ee: 0x0008, 0x6ef: 0x0008,
+       0x6f0: 0x0018, 0x6f1: 0x0018, 0x6f2: 0x0040, 0x6f3: 0x0040, 0x6f4: 0x0040, 0x6f5: 0x0040,
+       0x6f6: 0x0040, 0x6f7: 0x0040, 0x6f8: 0x0040, 0x6f9: 0x0008, 0x6fa: 0x0040, 0x6fb: 0x0040,
+       0x6fc: 0x0040, 0x6fd: 0x0040, 0x6fe: 0x0040, 0x6ff: 0x0040,
+       // Block 0x1c, offset 0x700
+       0x700: 0x0040, 0x701: 0x3308, 0x702: 0x3008, 0x703: 0x3008, 0x704: 0x0040, 0x705: 0x0008,
+       0x706: 0x0008, 0x707: 0x0008, 0x708: 0x0008, 0x709: 0x0008, 0x70a: 0x0008, 0x70b: 0x0008,
+       0x70c: 0x0008, 0x70d: 0x0040, 0x70e: 0x0040, 0x70f: 0x0008, 0x710: 0x0008, 0x711: 0x0040,
+       0x712: 0x0040, 0x713: 0x0008, 0x714: 0x0008, 0x715: 0x0008, 0x716: 0x0008, 0x717: 0x0008,
+       0x718: 0x0008, 0x719: 0x0008, 0x71a: 0x0008, 0x71b: 0x0008, 0x71c: 0x0008, 0x71d: 0x0008,
+       0x71e: 0x0008, 0x71f: 0x0008, 0x720: 0x0008, 0x721: 0x0008, 0x722: 0x0008, 0x723: 0x0008,
+       0x724: 0x0008, 0x725: 0x0008, 0x726: 0x0008, 0x727: 0x0008, 0x728: 0x0008, 0x729: 0x0040,
+       0x72a: 0x0008, 0x72b: 0x0008, 0x72c: 0x0008, 0x72d: 0x0008, 0x72e: 0x0008, 0x72f: 0x0008,
+       0x730: 0x0008, 0x731: 0x0040, 0x732: 0x0008, 0x733: 0x0008, 0x734: 0x0040, 0x735: 0x0008,
+       0x736: 0x0008, 0x737: 0x0008, 0x738: 0x0008, 0x739: 0x0008, 0x73a: 0x0040, 0x73b: 0x0040,
+       0x73c: 0x3308, 0x73d: 0x0008, 0x73e: 0x3008, 0x73f: 0x3308,
+       // Block 0x1d, offset 0x740
+       0x740: 0x3008, 0x741: 0x3308, 0x742: 0x3308, 0x743: 0x3308, 0x744: 0x3308, 0x745: 0x0040,
+       0x746: 0x0040, 0x747: 0x3008, 0x748: 0x3008, 0x749: 0x0040, 0x74a: 0x0040, 0x74b: 0x3008,
+       0x74c: 0x3008, 0x74d: 0x3b08, 0x74e: 0x0040, 0x74f: 0x0040, 0x750: 0x0040, 0x751: 0x0040,
+       0x752: 0x0040, 0x753: 0x0040, 0x754: 0x0040, 0x755: 0x0040, 0x756: 0x3308, 0x757: 0x3008,
+       0x758: 0x0040, 0x759: 0x0040, 0x75a: 0x0040, 0x75b: 0x0040, 0x75c: 0x0881, 0x75d: 0x08b9,
+       0x75e: 0x0040, 0x75f: 0x0008, 0x760: 0x0008, 0x761: 0x0008, 0x762: 0x3308, 0x763: 0x3308,
+       0x764: 0x0040, 0x765: 0x0040, 0x766: 0x0008, 0x767: 0x0008, 0x768: 0x0008, 0x769: 0x0008,
+       0x76a: 0x0008, 0x76b: 0x0008, 0x76c: 0x0008, 0x76d: 0x0008, 0x76e: 0x0008, 0x76f: 0x0008,
+       0x770: 0x0018, 0x771: 0x0008, 0x772: 0x0018, 0x773: 0x0018, 0x774: 0x0018, 0x775: 0x0018,
+       0x776: 0x0018, 0x777: 0x0018, 0x778: 0x0040, 0x779: 0x0040, 0x77a: 0x0040, 0x77b: 0x0040,
+       0x77c: 0x0040, 0x77d: 0x0040, 0x77e: 0x0040, 0x77f: 0x0040,
+       // Block 0x1e, offset 0x780
+       0x780: 0x0040, 0x781: 0x0040, 0x782: 0x3308, 0x783: 0x0008, 0x784: 0x0040, 0x785: 0x0008,
+       0x786: 0x0008, 0x787: 0x0008, 0x788: 0x0008, 0x789: 0x0008, 0x78a: 0x0008, 0x78b: 0x0040,
+       0x78c: 0x0040, 0x78d: 0x0040, 0x78e: 0x0008, 0x78f: 0x0008, 0x790: 0x0008, 0x791: 0x0040,
+       0x792: 0x0008, 0x793: 0x0008, 0x794: 0x0008, 0x795: 0x0008, 0x796: 0x0040, 0x797: 0x0040,
+       0x798: 0x0040, 0x799: 0x0008, 0x79a: 0x0008, 0x79b: 0x0040, 0x79c: 0x0008, 0x79d: 0x0040,
+       0x79e: 0x0008, 0x79f: 0x0008, 0x7a0: 0x0040, 0x7a1: 0x0040, 0x7a2: 0x0040, 0x7a3: 0x0008,
+       0x7a4: 0x0008, 0x7a5: 0x0040, 0x7a6: 0x0040, 0x7a7: 0x0040, 0x7a8: 0x0008, 0x7a9: 0x0008,
+       0x7aa: 0x0008, 0x7ab: 0x0040, 0x7ac: 0x0040, 0x7ad: 0x0040, 0x7ae: 0x0008, 0x7af: 0x0008,
+       0x7b0: 0x0008, 0x7b1: 0x0008, 0x7b2: 0x0008, 0x7b3: 0x0008, 0x7b4: 0x0008, 0x7b5: 0x0008,
+       0x7b6: 0x0008, 0x7b7: 0x0008, 0x7b8: 0x0008, 0x7b9: 0x0008, 0x7ba: 0x0040, 0x7bb: 0x0040,
+       0x7bc: 0x0040, 0x7bd: 0x0040, 0x7be: 0x3008, 0x7bf: 0x3008,
+       // Block 0x1f, offset 0x7c0
+       0x7c0: 0x3308, 0x7c1: 0x3008, 0x7c2: 0x3008, 0x7c3: 0x3008, 0x7c4: 0x3008, 0x7c5: 0x0040,
+       0x7c6: 0x3308, 0x7c7: 0x3308, 0x7c8: 0x3308, 0x7c9: 0x0040, 0x7ca: 0x3308, 0x7cb: 0x3308,
+       0x7cc: 0x3308, 0x7cd: 0x3b08, 0x7ce: 0x0040, 0x7cf: 0x0040, 0x7d0: 0x0040, 0x7d1: 0x0040,
+       0x7d2: 0x0040, 0x7d3: 0x0040, 0x7d4: 0x0040, 0x7d5: 0x3308, 0x7d6: 0x3308, 0x7d7: 0x0040,
+       0x7d8: 0x0008, 0x7d9: 0x0008, 0x7da: 0x0008, 0x7db: 0x0040, 0x7dc: 0x0040, 0x7dd: 0x0040,
+       0x7de: 0x0040, 0x7df: 0x0040, 0x7e0: 0x0008, 0x7e1: 0x0008, 0x7e2: 0x3308, 0x7e3: 0x3308,
+       0x7e4: 0x0040, 0x7e5: 0x0040, 0x7e6: 0x0008, 0x7e7: 0x0008, 0x7e8: 0x0008, 0x7e9: 0x0008,
+       0x7ea: 0x0008, 0x7eb: 0x0008, 0x7ec: 0x0008, 0x7ed: 0x0008, 0x7ee: 0x0008, 0x7ef: 0x0008,
+       0x7f0: 0x0040, 0x7f1: 0x0040, 0x7f2: 0x0040, 0x7f3: 0x0040, 0x7f4: 0x0040, 0x7f5: 0x0040,
+       0x7f6: 0x0040, 0x7f7: 0x0040, 0x7f8: 0x0018, 0x7f9: 0x0018, 0x7fa: 0x0018, 0x7fb: 0x0018,
+       0x7fc: 0x0018, 0x7fd: 0x0018, 0x7fe: 0x0018, 0x7ff: 0x0018,
+       // Block 0x20, offset 0x800
+       0x800: 0x0008, 0x801: 0x3308, 0x802: 0x3008, 0x803: 0x3008, 0x804: 0x0040, 0x805: 0x0008,
+       0x806: 0x0008, 0x807: 0x0008, 0x808: 0x0008, 0x809: 0x0008, 0x80a: 0x0008, 0x80b: 0x0008,
+       0x80c: 0x0008, 0x80d: 0x0040, 0x80e: 0x0008, 0x80f: 0x0008, 0x810: 0x0008, 0x811: 0x0040,
+       0x812: 0x0008, 0x813: 0x0008, 0x814: 0x0008, 0x815: 0x0008, 0x816: 0x0008, 0x817: 0x0008,
+       0x818: 0x0008, 0x819: 0x0008, 0x81a: 0x0008, 0x81b: 0x0008, 0x81c: 0x0008, 0x81d: 0x0008,
+       0x81e: 0x0008, 0x81f: 0x0008, 0x820: 0x0008, 0x821: 0x0008, 0x822: 0x0008, 0x823: 0x0008,
+       0x824: 0x0008, 0x825: 0x0008, 0x826: 0x0008, 0x827: 0x0008, 0x828: 0x0008, 0x829: 0x0040,
+       0x82a: 0x0008, 0x82b: 0x0008, 0x82c: 0x0008, 0x82d: 0x0008, 0x82e: 0x0008, 0x82f: 0x0008,
+       0x830: 0x0008, 0x831: 0x0008, 0x832: 0x0008, 0x833: 0x0008, 0x834: 0x0040, 0x835: 0x0008,
+       0x836: 0x0008, 0x837: 0x0008, 0x838: 0x0008, 0x839: 0x0008, 0x83a: 0x0040, 0x83b: 0x0040,
+       0x83c: 0x3308, 0x83d: 0x0008, 0x83e: 0x3008, 0x83f: 0x3308,
+       // Block 0x21, offset 0x840
+       0x840: 0x3008, 0x841: 0x3008, 0x842: 0x3008, 0x843: 0x3008, 0x844: 0x3008, 0x845: 0x0040,
+       0x846: 0x3308, 0x847: 0x3008, 0x848: 0x3008, 0x849: 0x0040, 0x84a: 0x3008, 0x84b: 0x3008,
+       0x84c: 0x3308, 0x84d: 0x3b08, 0x84e: 0x0040, 0x84f: 0x0040, 0x850: 0x0040, 0x851: 0x0040,
+       0x852: 0x0040, 0x853: 0x0040, 0x854: 0x0040, 0x855: 0x3008, 0x856: 0x3008, 0x857: 0x0040,
+       0x858: 0x0040, 0x859: 0x0040, 0x85a: 0x0040, 0x85b: 0x0040, 0x85c: 0x0040, 0x85d: 0x0040,
+       0x85e: 0x0008, 0x85f: 0x0040, 0x860: 0x0008, 0x861: 0x0008, 0x862: 0x3308, 0x863: 0x3308,
+       0x864: 0x0040, 0x865: 0x0040, 0x866: 0x0008, 0x867: 0x0008, 0x868: 0x0008, 0x869: 0x0008,
+       0x86a: 0x0008, 0x86b: 0x0008, 0x86c: 0x0008, 0x86d: 0x0008, 0x86e: 0x0008, 0x86f: 0x0008,
+       0x870: 0x0040, 0x871: 0x0008, 0x872: 0x0008, 0x873: 0x0040, 0x874: 0x0040, 0x875: 0x0040,
+       0x876: 0x0040, 0x877: 0x0040, 0x878: 0x0040, 0x879: 0x0040, 0x87a: 0x0040, 0x87b: 0x0040,
+       0x87c: 0x0040, 0x87d: 0x0040, 0x87e: 0x0040, 0x87f: 0x0040,
+       // Block 0x22, offset 0x880
+       0x880: 0x3008, 0x881: 0x3308, 0x882: 0x3308, 0x883: 0x3308, 0x884: 0x3308, 0x885: 0x0040,
+       0x886: 0x3008, 0x887: 0x3008, 0x888: 0x3008, 0x889: 0x0040, 0x88a: 0x3008, 0x88b: 0x3008,
+       0x88c: 0x3008, 0x88d: 0x3b08, 0x88e: 0x0008, 0x88f: 0x0018, 0x890: 0x0040, 0x891: 0x0040,
+       0x892: 0x0040, 0x893: 0x0040, 0x894: 0x0008, 0x895: 0x0008, 0x896: 0x0008, 0x897: 0x3008,
+       0x898: 0x0018, 0x899: 0x0018, 0x89a: 0x0018, 0x89b: 0x0018, 0x89c: 0x0018, 0x89d: 0x0018,
+       0x89e: 0x0018, 0x89f: 0x0008, 0x8a0: 0x0008, 0x8a1: 0x0008, 0x8a2: 0x3308, 0x8a3: 0x3308,
+       0x8a4: 0x0040, 0x8a5: 0x0040, 0x8a6: 0x0008, 0x8a7: 0x0008, 0x8a8: 0x0008, 0x8a9: 0x0008,
+       0x8aa: 0x0008, 0x8ab: 0x0008, 0x8ac: 0x0008, 0x8ad: 0x0008, 0x8ae: 0x0008, 0x8af: 0x0008,
+       0x8b0: 0x0018, 0x8b1: 0x0018, 0x8b2: 0x0018, 0x8b3: 0x0018, 0x8b4: 0x0018, 0x8b5: 0x0018,
+       0x8b6: 0x0018, 0x8b7: 0x0018, 0x8b8: 0x0018, 0x8b9: 0x0018, 0x8ba: 0x0008, 0x8bb: 0x0008,
+       0x8bc: 0x0008, 0x8bd: 0x0008, 0x8be: 0x0008, 0x8bf: 0x0008,
+       // Block 0x23, offset 0x8c0
+       0x8c0: 0x0040, 0x8c1: 0x0008, 0x8c2: 0x0008, 0x8c3: 0x0040, 0x8c4: 0x0008, 0x8c5: 0x0040,
+       0x8c6: 0x0040, 0x8c7: 0x0008, 0x8c8: 0x0008, 0x8c9: 0x0040, 0x8ca: 0x0008, 0x8cb: 0x0040,
+       0x8cc: 0x0040, 0x8cd: 0x0008, 0x8ce: 0x0040, 0x8cf: 0x0040, 0x8d0: 0x0040, 0x8d1: 0x0040,
+       0x8d2: 0x0040, 0x8d3: 0x0040, 0x8d4: 0x0008, 0x8d5: 0x0008, 0x8d6: 0x0008, 0x8d7: 0x0008,
+       0x8d8: 0x0040, 0x8d9: 0x0008, 0x8da: 0x0008, 0x8db: 0x0008, 0x8dc: 0x0008, 0x8dd: 0x0008,
+       0x8de: 0x0008, 0x8df: 0x0008, 0x8e0: 0x0040, 0x8e1: 0x0008, 0x8e2: 0x0008, 0x8e3: 0x0008,
+       0x8e4: 0x0040, 0x8e5: 0x0008, 0x8e6: 0x0040, 0x8e7: 0x0008, 0x8e8: 0x0040, 0x8e9: 0x0040,
+       0x8ea: 0x0008, 0x8eb: 0x0008, 0x8ec: 0x0040, 0x8ed: 0x0008, 0x8ee: 0x0008, 0x8ef: 0x0008,
+       0x8f0: 0x0008, 0x8f1: 0x3308, 0x8f2: 0x0008, 0x8f3: 0x0929, 0x8f4: 0x3308, 0x8f5: 0x3308,
+       0x8f6: 0x3308, 0x8f7: 0x3308, 0x8f8: 0x3308, 0x8f9: 0x3308, 0x8fa: 0x0040, 0x8fb: 0x3308,
+       0x8fc: 0x3308, 0x8fd: 0x0008, 0x8fe: 0x0040, 0x8ff: 0x0040,
+       // Block 0x24, offset 0x900
+       0x900: 0x0008, 0x901: 0x0008, 0x902: 0x0008, 0x903: 0x09d1, 0x904: 0x0008, 0x905: 0x0008,
+       0x906: 0x0008, 0x907: 0x0008, 0x908: 0x0040, 0x909: 0x0008, 0x90a: 0x0008, 0x90b: 0x0008,
+       0x90c: 0x0008, 0x90d: 0x0a09, 0x90e: 0x0008, 0x90f: 0x0008, 0x910: 0x0008, 0x911: 0x0008,
+       0x912: 0x0a41, 0x913: 0x0008, 0x914: 0x0008, 0x915: 0x0008, 0x916: 0x0008, 0x917: 0x0a79,
+       0x918: 0x0008, 0x919: 0x0008, 0x91a: 0x0008, 0x91b: 0x0008, 0x91c: 0x0ab1, 0x91d: 0x0008,
+       0x91e: 0x0008, 0x91f: 0x0008, 0x920: 0x0008, 0x921: 0x0008, 0x922: 0x0008, 0x923: 0x0008,
+       0x924: 0x0008, 0x925: 0x0008, 0x926: 0x0008, 0x927: 0x0008, 0x928: 0x0008, 0x929: 0x0ae9,
+       0x92a: 0x0008, 0x92b: 0x0008, 0x92c: 0x0008, 0x92d: 0x0040, 0x92e: 0x0040, 0x92f: 0x0040,
+       0x930: 0x0040, 0x931: 0x3308, 0x932: 0x3308, 0x933: 0x0b21, 0x934: 0x3308, 0x935: 0x0b59,
+       0x936: 0x0b91, 0x937: 0x0bc9, 0x938: 0x0c19, 0x939: 0x0c51, 0x93a: 0x3308, 0x93b: 0x3308,
+       0x93c: 0x3308, 0x93d: 0x3308, 0x93e: 0x3308, 0x93f: 0x3008,
+       // Block 0x25, offset 0x940
+       0x940: 0x3308, 0x941: 0x0ca1, 0x942: 0x3308, 0x943: 0x3308, 0x944: 0x3b08, 0x945: 0x0018,
+       0x946: 0x3308, 0x947: 0x3308, 0x948: 0x0008, 0x949: 0x0008, 0x94a: 0x0008, 0x94b: 0x0008,
+       0x94c: 0x0008, 0x94d: 0x3308, 0x94e: 0x3308, 0x94f: 0x3308, 0x950: 0x3308, 0x951: 0x3308,
+       0x952: 0x3308, 0x953: 0x0cd9, 0x954: 0x3308, 0x955: 0x3308, 0x956: 0x3308, 0x957: 0x3308,
+       0x958: 0x0040, 0x959: 0x3308, 0x95a: 0x3308, 0x95b: 0x3308, 0x95c: 0x3308, 0x95d: 0x0d11,
+       0x95e: 0x3308, 0x95f: 0x3308, 0x960: 0x3308, 0x961: 0x3308, 0x962: 0x0d49, 0x963: 0x3308,
+       0x964: 0x3308, 0x965: 0x3308, 0x966: 0x3308, 0x967: 0x0d81, 0x968: 0x3308, 0x969: 0x3308,
+       0x96a: 0x3308, 0x96b: 0x3308, 0x96c: 0x0db9, 0x96d: 0x3308, 0x96e: 0x3308, 0x96f: 0x3308,
+       0x970: 0x3308, 0x971: 0x3308, 0x972: 0x3308, 0x973: 0x3308, 0x974: 0x3308, 0x975: 0x3308,
+       0x976: 0x3308, 0x977: 0x3308, 0x978: 0x3308, 0x979: 0x0df1, 0x97a: 0x3308, 0x97b: 0x3308,
+       0x97c: 0x3308, 0x97d: 0x0040, 0x97e: 0x0018, 0x97f: 0x0018,
+       // Block 0x26, offset 0x980
+       0x980: 0x0008, 0x981: 0x0008, 0x982: 0x0008, 0x983: 0x0008, 0x984: 0x0008, 0x985: 0x0008,
+       0x986: 0x0008, 0x987: 0x0008, 0x988: 0x0008, 0x989: 0x0008, 0x98a: 0x0008, 0x98b: 0x0008,
+       0x98c: 0x0008, 0x98d: 0x0008, 0x98e: 0x0008, 0x98f: 0x0008, 0x990: 0x0008, 0x991: 0x0008,
+       0x992: 0x0008, 0x993: 0x0008, 0x994: 0x0008, 0x995: 0x0008, 0x996: 0x0008, 0x997: 0x0008,
+       0x998: 0x0008, 0x999: 0x0008, 0x99a: 0x0008, 0x99b: 0x0008, 0x99c: 0x0008, 0x99d: 0x0008,
+       0x99e: 0x0008, 0x99f: 0x0008, 0x9a0: 0x0008, 0x9a1: 0x0008, 0x9a2: 0x0008, 0x9a3: 0x0008,
+       0x9a4: 0x0008, 0x9a5: 0x0008, 0x9a6: 0x0008, 0x9a7: 0x0008, 0x9a8: 0x0008, 0x9a9: 0x0008,
+       0x9aa: 0x0008, 0x9ab: 0x0008, 0x9ac: 0x0039, 0x9ad: 0x0ed1, 0x9ae: 0x0ee9, 0x9af: 0x0008,
+       0x9b0: 0x0ef9, 0x9b1: 0x0f09, 0x9b2: 0x0f19, 0x9b3: 0x0f31, 0x9b4: 0x0249, 0x9b5: 0x0f41,
+       0x9b6: 0x0259, 0x9b7: 0x0f51, 0x9b8: 0x0359, 0x9b9: 0x0f61, 0x9ba: 0x0f71, 0x9bb: 0x0008,
+       0x9bc: 0x00d9, 0x9bd: 0x0f81, 0x9be: 0x0f99, 0x9bf: 0x0269,
+       // Block 0x27, offset 0x9c0
+       0x9c0: 0x0fa9, 0x9c1: 0x0fb9, 0x9c2: 0x0279, 0x9c3: 0x0039, 0x9c4: 0x0fc9, 0x9c5: 0x0fe1,
+       0x9c6: 0x059d, 0x9c7: 0x0ee9, 0x9c8: 0x0ef9, 0x9c9: 0x0f09, 0x9ca: 0x0ff9, 0x9cb: 0x1011,
+       0x9cc: 0x1029, 0x9cd: 0x0f31, 0x9ce: 0x0008, 0x9cf: 0x0f51, 0x9d0: 0x0f61, 0x9d1: 0x1041,
+       0x9d2: 0x00d9, 0x9d3: 0x1059, 0x9d4: 0x05b5, 0x9d5: 0x05b5, 0x9d6: 0x0f99, 0x9d7: 0x0fa9,
+       0x9d8: 0x0fb9, 0x9d9: 0x059d, 0x9da: 0x1071, 0x9db: 0x1089, 0x9dc: 0x05cd, 0x9dd: 0x1099,
+       0x9de: 0x10b1, 0x9df: 0x10c9, 0x9e0: 0x10e1, 0x9e1: 0x10f9, 0x9e2: 0x0f41, 0x9e3: 0x0269,
+       0x9e4: 0x0fb9, 0x9e5: 0x1089, 0x9e6: 0x1099, 0x9e7: 0x10b1, 0x9e8: 0x1111, 0x9e9: 0x10e1,
+       0x9ea: 0x10f9, 0x9eb: 0x0008, 0x9ec: 0x0008, 0x9ed: 0x0008, 0x9ee: 0x0008, 0x9ef: 0x0008,
+       0x9f0: 0x0008, 0x9f1: 0x0008, 0x9f2: 0x0008, 0x9f3: 0x0008, 0x9f4: 0x0008, 0x9f5: 0x0008,
+       0x9f6: 0x0008, 0x9f7: 0x0008, 0x9f8: 0x1129, 0x9f9: 0x0008, 0x9fa: 0x0008, 0x9fb: 0x0008,
+       0x9fc: 0x0008, 0x9fd: 0x0008, 0x9fe: 0x0008, 0x9ff: 0x0008,
+       // Block 0x28, offset 0xa00
+       0xa00: 0x0008, 0xa01: 0x0008, 0xa02: 0x0008, 0xa03: 0x0008, 0xa04: 0x0008, 0xa05: 0x0008,
+       0xa06: 0x0008, 0xa07: 0x0008, 0xa08: 0x0008, 0xa09: 0x0008, 0xa0a: 0x0008, 0xa0b: 0x0008,
+       0xa0c: 0x0008, 0xa0d: 0x0008, 0xa0e: 0x0008, 0xa0f: 0x0008, 0xa10: 0x0008, 0xa11: 0x0008,
+       0xa12: 0x0008, 0xa13: 0x0008, 0xa14: 0x0008, 0xa15: 0x0008, 0xa16: 0x0008, 0xa17: 0x0008,
+       0xa18: 0x0008, 0xa19: 0x0008, 0xa1a: 0x0008, 0xa1b: 0x1141, 0xa1c: 0x1159, 0xa1d: 0x1169,
+       0xa1e: 0x1181, 0xa1f: 0x1029, 0xa20: 0x1199, 0xa21: 0x11a9, 0xa22: 0x11c1, 0xa23: 0x11d9,
+       0xa24: 0x11f1, 0xa25: 0x1209, 0xa26: 0x1221, 0xa27: 0x05e5, 0xa28: 0x1239, 0xa29: 0x1251,
+       0xa2a: 0xe17d, 0xa2b: 0x1269, 0xa2c: 0x1281, 0xa2d: 0x1299, 0xa2e: 0x12b1, 0xa2f: 0x12c9,
+       0xa30: 0x12e1, 0xa31: 0x12f9, 0xa32: 0x1311, 0xa33: 0x1329, 0xa34: 0x1341, 0xa35: 0x1359,
+       0xa36: 0x1371, 0xa37: 0x1389, 0xa38: 0x05fd, 0xa39: 0x13a1, 0xa3a: 0x13b9, 0xa3b: 0x13d1,
+       0xa3c: 0x13e1, 0xa3d: 0x13f9, 0xa3e: 0x1411, 0xa3f: 0x1429,
+       // Block 0x29, offset 0xa40
+       0xa40: 0xe00d, 0xa41: 0x0008, 0xa42: 0xe00d, 0xa43: 0x0008, 0xa44: 0xe00d, 0xa45: 0x0008,
+       0xa46: 0xe00d, 0xa47: 0x0008, 0xa48: 0xe00d, 0xa49: 0x0008, 0xa4a: 0xe00d, 0xa4b: 0x0008,
+       0xa4c: 0xe00d, 0xa4d: 0x0008, 0xa4e: 0xe00d, 0xa4f: 0x0008, 0xa50: 0xe00d, 0xa51: 0x0008,
+       0xa52: 0xe00d, 0xa53: 0x0008, 0xa54: 0xe00d, 0xa55: 0x0008, 0xa56: 0xe00d, 0xa57: 0x0008,
+       0xa58: 0xe00d, 0xa59: 0x0008, 0xa5a: 0xe00d, 0xa5b: 0x0008, 0xa5c: 0xe00d, 0xa5d: 0x0008,
+       0xa5e: 0xe00d, 0xa5f: 0x0008, 0xa60: 0xe00d, 0xa61: 0x0008, 0xa62: 0xe00d, 0xa63: 0x0008,
+       0xa64: 0xe00d, 0xa65: 0x0008, 0xa66: 0xe00d, 0xa67: 0x0008, 0xa68: 0xe00d, 0xa69: 0x0008,
+       0xa6a: 0xe00d, 0xa6b: 0x0008, 0xa6c: 0xe00d, 0xa6d: 0x0008, 0xa6e: 0xe00d, 0xa6f: 0x0008,
+       0xa70: 0xe00d, 0xa71: 0x0008, 0xa72: 0xe00d, 0xa73: 0x0008, 0xa74: 0xe00d, 0xa75: 0x0008,
+       0xa76: 0xe00d, 0xa77: 0x0008, 0xa78: 0xe00d, 0xa79: 0x0008, 0xa7a: 0xe00d, 0xa7b: 0x0008,
+       0xa7c: 0xe00d, 0xa7d: 0x0008, 0xa7e: 0xe00d, 0xa7f: 0x0008,
+       // Block 0x2a, offset 0xa80
+       0xa80: 0xe00d, 0xa81: 0x0008, 0xa82: 0xe00d, 0xa83: 0x0008, 0xa84: 0xe00d, 0xa85: 0x0008,
+       0xa86: 0xe00d, 0xa87: 0x0008, 0xa88: 0xe00d, 0xa89: 0x0008, 0xa8a: 0xe00d, 0xa8b: 0x0008,
+       0xa8c: 0xe00d, 0xa8d: 0x0008, 0xa8e: 0xe00d, 0xa8f: 0x0008, 0xa90: 0xe00d, 0xa91: 0x0008,
+       0xa92: 0xe00d, 0xa93: 0x0008, 0xa94: 0xe00d, 0xa95: 0x0008, 0xa96: 0x0008, 0xa97: 0x0008,
+       0xa98: 0x0008, 0xa99: 0x0008, 0xa9a: 0x0615, 0xa9b: 0x0635, 0xa9c: 0x0008, 0xa9d: 0x0008,
+       0xa9e: 0x1441, 0xa9f: 0x0008, 0xaa0: 0xe00d, 0xaa1: 0x0008, 0xaa2: 0xe00d, 0xaa3: 0x0008,
+       0xaa4: 0xe00d, 0xaa5: 0x0008, 0xaa6: 0xe00d, 0xaa7: 0x0008, 0xaa8: 0xe00d, 0xaa9: 0x0008,
+       0xaaa: 0xe00d, 0xaab: 0x0008, 0xaac: 0xe00d, 0xaad: 0x0008, 0xaae: 0xe00d, 0xaaf: 0x0008,
+       0xab0: 0xe00d, 0xab1: 0x0008, 0xab2: 0xe00d, 0xab3: 0x0008, 0xab4: 0xe00d, 0xab5: 0x0008,
+       0xab6: 0xe00d, 0xab7: 0x0008, 0xab8: 0xe00d, 0xab9: 0x0008, 0xaba: 0xe00d, 0xabb: 0x0008,
+       0xabc: 0xe00d, 0xabd: 0x0008, 0xabe: 0xe00d, 0xabf: 0x0008,
+       // Block 0x2b, offset 0xac0
+       0xac0: 0x0008, 0xac1: 0x0008, 0xac2: 0x0008, 0xac3: 0x0008, 0xac4: 0x0008, 0xac5: 0x0008,
+       0xac6: 0x0040, 0xac7: 0x0040, 0xac8: 0xe045, 0xac9: 0xe045, 0xaca: 0xe045, 0xacb: 0xe045,
+       0xacc: 0xe045, 0xacd: 0xe045, 0xace: 0x0040, 0xacf: 0x0040, 0xad0: 0x0008, 0xad1: 0x0008,
+       0xad2: 0x0008, 0xad3: 0x0008, 0xad4: 0x0008, 0xad5: 0x0008, 0xad6: 0x0008, 0xad7: 0x0008,
+       0xad8: 0x0040, 0xad9: 0xe045, 0xada: 0x0040, 0xadb: 0xe045, 0xadc: 0x0040, 0xadd: 0xe045,
+       0xade: 0x0040, 0xadf: 0xe045, 0xae0: 0x0008, 0xae1: 0x0008, 0xae2: 0x0008, 0xae3: 0x0008,
+       0xae4: 0x0008, 0xae5: 0x0008, 0xae6: 0x0008, 0xae7: 0x0008, 0xae8: 0xe045, 0xae9: 0xe045,
+       0xaea: 0xe045, 0xaeb: 0xe045, 0xaec: 0xe045, 0xaed: 0xe045, 0xaee: 0xe045, 0xaef: 0xe045,
+       0xaf0: 0x0008, 0xaf1: 0x1459, 0xaf2: 0x0008, 0xaf3: 0x1471, 0xaf4: 0x0008, 0xaf5: 0x1489,
+       0xaf6: 0x0008, 0xaf7: 0x14a1, 0xaf8: 0x0008, 0xaf9: 0x14b9, 0xafa: 0x0008, 0xafb: 0x14d1,
+       0xafc: 0x0008, 0xafd: 0x14e9, 0xafe: 0x0040, 0xaff: 0x0040,
+       // Block 0x2c, offset 0xb00
+       0xb00: 0x1501, 0xb01: 0x1531, 0xb02: 0x1561, 0xb03: 0x1591, 0xb04: 0x15c1, 0xb05: 0x15f1,
+       0xb06: 0x1621, 0xb07: 0x1651, 0xb08: 0x1501, 0xb09: 0x1531, 0xb0a: 0x1561, 0xb0b: 0x1591,
+       0xb0c: 0x15c1, 0xb0d: 0x15f1, 0xb0e: 0x1621, 0xb0f: 0x1651, 0xb10: 0x1681, 0xb11: 0x16b1,
+       0xb12: 0x16e1, 0xb13: 0x1711, 0xb14: 0x1741, 0xb15: 0x1771, 0xb16: 0x17a1, 0xb17: 0x17d1,
+       0xb18: 0x1681, 0xb19: 0x16b1, 0xb1a: 0x16e1, 0xb1b: 0x1711, 0xb1c: 0x1741, 0xb1d: 0x1771,
+       0xb1e: 0x17a1, 0xb1f: 0x17d1, 0xb20: 0x1801, 0xb21: 0x1831, 0xb22: 0x1861, 0xb23: 0x1891,
+       0xb24: 0x18c1, 0xb25: 0x18f1, 0xb26: 0x1921, 0xb27: 0x1951, 0xb28: 0x1801, 0xb29: 0x1831,
+       0xb2a: 0x1861, 0xb2b: 0x1891, 0xb2c: 0x18c1, 0xb2d: 0x18f1, 0xb2e: 0x1921, 0xb2f: 0x1951,
+       0xb30: 0x0008, 0xb31: 0x0008, 0xb32: 0x1981, 0xb33: 0x19b1, 0xb34: 0x19d9, 0xb35: 0x0040,
+       0xb36: 0x0008, 0xb37: 0x1a01, 0xb38: 0xe045, 0xb39: 0xe045, 0xb3a: 0x064d, 0xb3b: 0x1459,
+       0xb3c: 0x19b1, 0xb3d: 0x0666, 0xb3e: 0x1a31, 0xb3f: 0x0686,
+       // Block 0x2d, offset 0xb40
+       0xb40: 0x06a6, 0xb41: 0x1a4a, 0xb42: 0x1a79, 0xb43: 0x1aa9, 0xb44: 0x1ad1, 0xb45: 0x0040,
+       0xb46: 0x0008, 0xb47: 0x1af9, 0xb48: 0x06c5, 0xb49: 0x1471, 0xb4a: 0x06dd, 0xb4b: 0x1489,
+       0xb4c: 0x1aa9, 0xb4d: 0x1b2a, 0xb4e: 0x1b5a, 0xb4f: 0x1b8a, 0xb50: 0x0008, 0xb51: 0x0008,
+       0xb52: 0x0008, 0xb53: 0x1bb9, 0xb54: 0x0040, 0xb55: 0x0040, 0xb56: 0x0008, 0xb57: 0x0008,
+       0xb58: 0xe045, 0xb59: 0xe045, 0xb5a: 0x06f5, 0xb5b: 0x14a1, 0xb5c: 0x0040, 0xb5d: 0x1bd2,
+       0xb5e: 0x1c02, 0xb5f: 0x1c32, 0xb60: 0x0008, 0xb61: 0x0008, 0xb62: 0x0008, 0xb63: 0x1c61,
+       0xb64: 0x0008, 0xb65: 0x0008, 0xb66: 0x0008, 0xb67: 0x0008, 0xb68: 0xe045, 0xb69: 0xe045,
+       0xb6a: 0x070d, 0xb6b: 0x14d1, 0xb6c: 0xe04d, 0xb6d: 0x1c7a, 0xb6e: 0x03d2, 0xb6f: 0x1caa,
+       0xb70: 0x0040, 0xb71: 0x0040, 0xb72: 0x1cb9, 0xb73: 0x1ce9, 0xb74: 0x1d11, 0xb75: 0x0040,
+       0xb76: 0x0008, 0xb77: 0x1d39, 0xb78: 0x0725, 0xb79: 0x14b9, 0xb7a: 0x0515, 0xb7b: 0x14e9,
+       0xb7c: 0x1ce9, 0xb7d: 0x073e, 0xb7e: 0x075e, 0xb7f: 0x0040,
+       // Block 0x2e, offset 0xb80
+       0xb80: 0x000a, 0xb81: 0x000a, 0xb82: 0x000a, 0xb83: 0x000a, 0xb84: 0x000a, 0xb85: 0x000a,
+       0xb86: 0x000a, 0xb87: 0x000a, 0xb88: 0x000a, 0xb89: 0x000a, 0xb8a: 0x000a, 0xb8b: 0x03c0,
+       0xb8c: 0x0003, 0xb8d: 0x0003, 0xb8e: 0x0340, 0xb8f: 0x0b40, 0xb90: 0x0018, 0xb91: 0xe00d,
+       0xb92: 0x0018, 0xb93: 0x0018, 0xb94: 0x0018, 0xb95: 0x0018, 0xb96: 0x0018, 0xb97: 0x077e,
+       0xb98: 0x0018, 0xb99: 0x0018, 0xb9a: 0x0018, 0xb9b: 0x0018, 0xb9c: 0x0018, 0xb9d: 0x0018,
+       0xb9e: 0x0018, 0xb9f: 0x0018, 0xba0: 0x0018, 0xba1: 0x0018, 0xba2: 0x0018, 0xba3: 0x0018,
+       0xba4: 0x0040, 0xba5: 0x0040, 0xba6: 0x0040, 0xba7: 0x0018, 0xba8: 0x0040, 0xba9: 0x0040,
+       0xbaa: 0x0340, 0xbab: 0x0340, 0xbac: 0x0340, 0xbad: 0x0340, 0xbae: 0x0340, 0xbaf: 0x000a,
+       0xbb0: 0x0018, 0xbb1: 0x0018, 0xbb2: 0x0018, 0xbb3: 0x1d69, 0xbb4: 0x1da1, 0xbb5: 0x0018,
+       0xbb6: 0x1df1, 0xbb7: 0x1e29, 0xbb8: 0x0018, 0xbb9: 0x0018, 0xbba: 0x0018, 0xbbb: 0x0018,
+       0xbbc: 0x1e7a, 0xbbd: 0x0018, 0xbbe: 0x079e, 0xbbf: 0x0018,
+       // Block 0x2f, offset 0xbc0
+       0xbc0: 0x0018, 0xbc1: 0x0018, 0xbc2: 0x0018, 0xbc3: 0x0018, 0xbc4: 0x0018, 0xbc5: 0x0018,
+       0xbc6: 0x0018, 0xbc7: 0x1e92, 0xbc8: 0x1eaa, 0xbc9: 0x1ec2, 0xbca: 0x0018, 0xbcb: 0x0018,
+       0xbcc: 0x0018, 0xbcd: 0x0018, 0xbce: 0x0018, 0xbcf: 0x0018, 0xbd0: 0x0018, 0xbd1: 0x0018,
+       0xbd2: 0x0018, 0xbd3: 0x0018, 0xbd4: 0x0018, 0xbd5: 0x0018, 0xbd6: 0x0018, 0xbd7: 0x1ed9,
+       0xbd8: 0x0018, 0xbd9: 0x0018, 0xbda: 0x0018, 0xbdb: 0x0018, 0xbdc: 0x0018, 0xbdd: 0x0018,
+       0xbde: 0x0018, 0xbdf: 0x000a, 0xbe0: 0x03c0, 0xbe1: 0x0340, 0xbe2: 0x0340, 0xbe3: 0x0340,
+       0xbe4: 0x03c0, 0xbe5: 0x0040, 0xbe6: 0x0040, 0xbe7: 0x0040, 0xbe8: 0x0040, 0xbe9: 0x0040,
+       0xbea: 0x0340, 0xbeb: 0x0340, 0xbec: 0x0340, 0xbed: 0x0340, 0xbee: 0x0340, 0xbef: 0x0340,
+       0xbf0: 0x1f41, 0xbf1: 0x0f41, 0xbf2: 0x0040, 0xbf3: 0x0040, 0xbf4: 0x1f51, 0xbf5: 0x1f61,
+       0xbf6: 0x1f71, 0xbf7: 0x1f81, 0xbf8: 0x1f91, 0xbf9: 0x1fa1, 0xbfa: 0x1fb2, 0xbfb: 0x07bd,
+       0xbfc: 0x1fc2, 0xbfd: 0x1fd2, 0xbfe: 0x1fe2, 0xbff: 0x0f71,
+       // Block 0x30, offset 0xc00
+       0xc00: 0x1f41, 0xc01: 0x00c9, 0xc02: 0x0069, 0xc03: 0x0079, 0xc04: 0x1f51, 0xc05: 0x1f61,
+       0xc06: 0x1f71, 0xc07: 0x1f81, 0xc08: 0x1f91, 0xc09: 0x1fa1, 0xc0a: 0x1fb2, 0xc0b: 0x07d5,
+       0xc0c: 0x1fc2, 0xc0d: 0x1fd2, 0xc0e: 0x1fe2, 0xc0f: 0x0040, 0xc10: 0x0039, 0xc11: 0x0f09,
+       0xc12: 0x00d9, 0xc13: 0x0369, 0xc14: 0x0ff9, 0xc15: 0x0249, 0xc16: 0x0f51, 0xc17: 0x0359,
+       0xc18: 0x0f61, 0xc19: 0x0f71, 0xc1a: 0x0f99, 0xc1b: 0x01d9, 0xc1c: 0x0fa9, 0xc1d: 0x0040,
+       0xc1e: 0x0040, 0xc1f: 0x0040, 0xc20: 0x0018, 0xc21: 0x0018, 0xc22: 0x0018, 0xc23: 0x0018,
+       0xc24: 0x0018, 0xc25: 0x0018, 0xc26: 0x0018, 0xc27: 0x0018, 0xc28: 0x1ff1, 0xc29: 0x0018,
+       0xc2a: 0x0018, 0xc2b: 0x0018, 0xc2c: 0x0018, 0xc2d: 0x0018, 0xc2e: 0x0018, 0xc2f: 0x0018,
+       0xc30: 0x0018, 0xc31: 0x0018, 0xc32: 0x0018, 0xc33: 0x0018, 0xc34: 0x0018, 0xc35: 0x0018,
+       0xc36: 0x0018, 0xc37: 0x0018, 0xc38: 0x0018, 0xc39: 0x0018, 0xc3a: 0x0018, 0xc3b: 0x0018,
+       0xc3c: 0x0018, 0xc3d: 0x0018, 0xc3e: 0x0018, 0xc3f: 0x0040,
+       // Block 0x31, offset 0xc40
+       0xc40: 0x07ee, 0xc41: 0x080e, 0xc42: 0x1159, 0xc43: 0x082d, 0xc44: 0x0018, 0xc45: 0x084e,
+       0xc46: 0x086e, 0xc47: 0x1011, 0xc48: 0x0018, 0xc49: 0x088d, 0xc4a: 0x0f31, 0xc4b: 0x0249,
+       0xc4c: 0x0249, 0xc4d: 0x0249, 0xc4e: 0x0249, 0xc4f: 0x2009, 0xc50: 0x0f41, 0xc51: 0x0f41,
+       0xc52: 0x0359, 0xc53: 0x0359, 0xc54: 0x0018, 0xc55: 0x0f71, 0xc56: 0x2021, 0xc57: 0x0018,
+       0xc58: 0x0018, 0xc59: 0x0f99, 0xc5a: 0x2039, 0xc5b: 0x0269, 0xc5c: 0x0269, 0xc5d: 0x0269,
+       0xc5e: 0x0018, 0xc5f: 0x0018, 0xc60: 0x2049, 0xc61: 0x08ad, 0xc62: 0x2061, 0xc63: 0x0018,
+       0xc64: 0x13d1, 0xc65: 0x0018, 0xc66: 0x2079, 0xc67: 0x0018, 0xc68: 0x13d1, 0xc69: 0x0018,
+       0xc6a: 0x0f51, 0xc6b: 0x2091, 0xc6c: 0x0ee9, 0xc6d: 0x1159, 0xc6e: 0x0018, 0xc6f: 0x0f09,
+       0xc70: 0x0f09, 0xc71: 0x1199, 0xc72: 0x0040, 0xc73: 0x0f61, 0xc74: 0x00d9, 0xc75: 0x20a9,
+       0xc76: 0x20c1, 0xc77: 0x20d9, 0xc78: 0x20f1, 0xc79: 0x0f41, 0xc7a: 0x0018, 0xc7b: 0x08cd,
+       0xc7c: 0x2109, 0xc7d: 0x10b1, 0xc7e: 0x10b1, 0xc7f: 0x2109,
+       // Block 0x32, offset 0xc80
+       0xc80: 0x08ed, 0xc81: 0x0018, 0xc82: 0x0018, 0xc83: 0x0018, 0xc84: 0x0018, 0xc85: 0x0ef9,
+       0xc86: 0x0ef9, 0xc87: 0x0f09, 0xc88: 0x0f41, 0xc89: 0x0259, 0xc8a: 0x0018, 0xc8b: 0x0018,
+       0xc8c: 0x0018, 0xc8d: 0x0018, 0xc8e: 0x0008, 0xc8f: 0x0018, 0xc90: 0x2121, 0xc91: 0x2151,
+       0xc92: 0x2181, 0xc93: 0x21b9, 0xc94: 0x21e9, 0xc95: 0x2219, 0xc96: 0x2249, 0xc97: 0x2279,
+       0xc98: 0x22a9, 0xc99: 0x22d9, 0xc9a: 0x2309, 0xc9b: 0x2339, 0xc9c: 0x2369, 0xc9d: 0x2399,
+       0xc9e: 0x23c9, 0xc9f: 0x23f9, 0xca0: 0x0f41, 0xca1: 0x2421, 0xca2: 0x0905, 0xca3: 0x2439,
+       0xca4: 0x1089, 0xca5: 0x2451, 0xca6: 0x0925, 0xca7: 0x2469, 0xca8: 0x2491, 0xca9: 0x0369,
+       0xcaa: 0x24a9, 0xcab: 0x0945, 0xcac: 0x0359, 0xcad: 0x1159, 0xcae: 0x0ef9, 0xcaf: 0x0f61,
+       0xcb0: 0x0f41, 0xcb1: 0x2421, 0xcb2: 0x0965, 0xcb3: 0x2439, 0xcb4: 0x1089, 0xcb5: 0x2451,
+       0xcb6: 0x0985, 0xcb7: 0x2469, 0xcb8: 0x2491, 0xcb9: 0x0369, 0xcba: 0x24a9, 0xcbb: 0x09a5,
+       0xcbc: 0x0359, 0xcbd: 0x1159, 0xcbe: 0x0ef9, 0xcbf: 0x0f61,
+       // Block 0x33, offset 0xcc0
+       0xcc0: 0x0018, 0xcc1: 0x0018, 0xcc2: 0x0018, 0xcc3: 0x0018, 0xcc4: 0x0018, 0xcc5: 0x0018,
+       0xcc6: 0x0018, 0xcc7: 0x0018, 0xcc8: 0x0018, 0xcc9: 0x0018, 0xcca: 0x0018, 0xccb: 0x0040,
+       0xccc: 0x0040, 0xccd: 0x0040, 0xcce: 0x0040, 0xccf: 0x0040, 0xcd0: 0x0040, 0xcd1: 0x0040,
+       0xcd2: 0x0040, 0xcd3: 0x0040, 0xcd4: 0x0040, 0xcd5: 0x0040, 0xcd6: 0x0040, 0xcd7: 0x0040,
+       0xcd8: 0x0040, 0xcd9: 0x0040, 0xcda: 0x0040, 0xcdb: 0x0040, 0xcdc: 0x0040, 0xcdd: 0x0040,
+       0xcde: 0x0040, 0xcdf: 0x0040, 0xce0: 0x00c9, 0xce1: 0x0069, 0xce2: 0x0079, 0xce3: 0x1f51,
+       0xce4: 0x1f61, 0xce5: 0x1f71, 0xce6: 0x1f81, 0xce7: 0x1f91, 0xce8: 0x1fa1, 0xce9: 0x2601,
+       0xcea: 0x2619, 0xceb: 0x2631, 0xcec: 0x2649, 0xced: 0x2661, 0xcee: 0x2679, 0xcef: 0x2691,
+       0xcf0: 0x26a9, 0xcf1: 0x26c1, 0xcf2: 0x26d9, 0xcf3: 0x26f1, 0xcf4: 0x0a06, 0xcf5: 0x0a26,
+       0xcf6: 0x0a46, 0xcf7: 0x0a66, 0xcf8: 0x0a86, 0xcf9: 0x0aa6, 0xcfa: 0x0ac6, 0xcfb: 0x0ae6,
+       0xcfc: 0x0b06, 0xcfd: 0x270a, 0xcfe: 0x2732, 0xcff: 0x275a,
+       // Block 0x34, offset 0xd00
+       0xd00: 0x2782, 0xd01: 0x27aa, 0xd02: 0x27d2, 0xd03: 0x27fa, 0xd04: 0x2822, 0xd05: 0x284a,
+       0xd06: 0x2872, 0xd07: 0x289a, 0xd08: 0x0040, 0xd09: 0x0040, 0xd0a: 0x0040, 0xd0b: 0x0040,
+       0xd0c: 0x0040, 0xd0d: 0x0040, 0xd0e: 0x0040, 0xd0f: 0x0040, 0xd10: 0x0040, 0xd11: 0x0040,
+       0xd12: 0x0040, 0xd13: 0x0040, 0xd14: 0x0040, 0xd15: 0x0040, 0xd16: 0x0040, 0xd17: 0x0040,
+       0xd18: 0x0040, 0xd19: 0x0040, 0xd1a: 0x0040, 0xd1b: 0x0040, 0xd1c: 0x0b26, 0xd1d: 0x0b46,
+       0xd1e: 0x0b66, 0xd1f: 0x0b86, 0xd20: 0x0ba6, 0xd21: 0x0bc6, 0xd22: 0x0be6, 0xd23: 0x0c06,
+       0xd24: 0x0c26, 0xd25: 0x0c46, 0xd26: 0x0c66, 0xd27: 0x0c86, 0xd28: 0x0ca6, 0xd29: 0x0cc6,
+       0xd2a: 0x0ce6, 0xd2b: 0x0d06, 0xd2c: 0x0d26, 0xd2d: 0x0d46, 0xd2e: 0x0d66, 0xd2f: 0x0d86,
+       0xd30: 0x0da6, 0xd31: 0x0dc6, 0xd32: 0x0de6, 0xd33: 0x0e06, 0xd34: 0x0e26, 0xd35: 0x0e46,
+       0xd36: 0x0039, 0xd37: 0x0ee9, 0xd38: 0x1159, 0xd39: 0x0ef9, 0xd3a: 0x0f09, 0xd3b: 0x1199,
+       0xd3c: 0x0f31, 0xd3d: 0x0249, 0xd3e: 0x0f41, 0xd3f: 0x0259,
+       // Block 0x35, offset 0xd40
+       0xd40: 0x0f51, 0xd41: 0x0359, 0xd42: 0x0f61, 0xd43: 0x0f71, 0xd44: 0x00d9, 0xd45: 0x0f99,
+       0xd46: 0x2039, 0xd47: 0x0269, 0xd48: 0x01d9, 0xd49: 0x0fa9, 0xd4a: 0x0fb9, 0xd4b: 0x1089,
+       0xd4c: 0x0279, 0xd4d: 0x0369, 0xd4e: 0x0289, 0xd4f: 0x13d1, 0xd50: 0x0039, 0xd51: 0x0ee9,
+       0xd52: 0x1159, 0xd53: 0x0ef9, 0xd54: 0x0f09, 0xd55: 0x1199, 0xd56: 0x0f31, 0xd57: 0x0249,
+       0xd58: 0x0f41, 0xd59: 0x0259, 0xd5a: 0x0f51, 0xd5b: 0x0359, 0xd5c: 0x0f61, 0xd5d: 0x0f71,
+       0xd5e: 0x00d9, 0xd5f: 0x0f99, 0xd60: 0x2039, 0xd61: 0x0269, 0xd62: 0x01d9, 0xd63: 0x0fa9,
+       0xd64: 0x0fb9, 0xd65: 0x1089, 0xd66: 0x0279, 0xd67: 0x0369, 0xd68: 0x0289, 0xd69: 0x13d1,
+       0xd6a: 0x1f41, 0xd6b: 0x0018, 0xd6c: 0x0018, 0xd6d: 0x0018, 0xd6e: 0x0018, 0xd6f: 0x0018,
+       0xd70: 0x0018, 0xd71: 0x0018, 0xd72: 0x0018, 0xd73: 0x0018, 0xd74: 0x0018, 0xd75: 0x0018,
+       0xd76: 0x0018, 0xd77: 0x0018, 0xd78: 0x0018, 0xd79: 0x0018, 0xd7a: 0x0018, 0xd7b: 0x0018,
+       0xd7c: 0x0018, 0xd7d: 0x0018, 0xd7e: 0x0018, 0xd7f: 0x0018,
+       // Block 0x36, offset 0xd80
+       0xd80: 0x0008, 0xd81: 0x0008, 0xd82: 0x0008, 0xd83: 0x0008, 0xd84: 0x0008, 0xd85: 0x0008,
+       0xd86: 0x0008, 0xd87: 0x0008, 0xd88: 0x0008, 0xd89: 0x0008, 0xd8a: 0x0008, 0xd8b: 0x0008,
+       0xd8c: 0x0008, 0xd8d: 0x0008, 0xd8e: 0x0008, 0xd8f: 0x0008, 0xd90: 0x0008, 0xd91: 0x0008,
+       0xd92: 0x0008, 0xd93: 0x0008, 0xd94: 0x0008, 0xd95: 0x0008, 0xd96: 0x0008, 0xd97: 0x0008,
+       0xd98: 0x0008, 0xd99: 0x0008, 0xd9a: 0x0008, 0xd9b: 0x0008, 0xd9c: 0x0008, 0xd9d: 0x0008,
+       0xd9e: 0x0008, 0xd9f: 0x0040, 0xda0: 0xe00d, 0xda1: 0x0008, 0xda2: 0x2971, 0xda3: 0x0ebd,
+       0xda4: 0x2989, 0xda5: 0x0008, 0xda6: 0x0008, 0xda7: 0xe07d, 0xda8: 0x0008, 0xda9: 0xe01d,
+       0xdaa: 0x0008, 0xdab: 0xe03d, 0xdac: 0x0008, 0xdad: 0x0fe1, 0xdae: 0x1281, 0xdaf: 0x0fc9,
+       0xdb0: 0x1141, 0xdb1: 0x0008, 0xdb2: 0xe00d, 0xdb3: 0x0008, 0xdb4: 0x0008, 0xdb5: 0xe01d,
+       0xdb6: 0x0008, 0xdb7: 0x0008, 0xdb8: 0x0008, 0xdb9: 0x0008, 0xdba: 0x0008, 0xdbb: 0x0008,
+       0xdbc: 0x0259, 0xdbd: 0x1089, 0xdbe: 0x29a1, 0xdbf: 0x29b9,
+       // Block 0x37, offset 0xdc0
+       0xdc0: 0xe00d, 0xdc1: 0x0008, 0xdc2: 0xe00d, 0xdc3: 0x0008, 0xdc4: 0xe00d, 0xdc5: 0x0008,
+       0xdc6: 0xe00d, 0xdc7: 0x0008, 0xdc8: 0xe00d, 0xdc9: 0x0008, 0xdca: 0xe00d, 0xdcb: 0x0008,
+       0xdcc: 0xe00d, 0xdcd: 0x0008, 0xdce: 0xe00d, 0xdcf: 0x0008, 0xdd0: 0xe00d, 0xdd1: 0x0008,
+       0xdd2: 0xe00d, 0xdd3: 0x0008, 0xdd4: 0xe00d, 0xdd5: 0x0008, 0xdd6: 0xe00d, 0xdd7: 0x0008,
+       0xdd8: 0xe00d, 0xdd9: 0x0008, 0xdda: 0xe00d, 0xddb: 0x0008, 0xddc: 0xe00d, 0xddd: 0x0008,
+       0xdde: 0xe00d, 0xddf: 0x0008, 0xde0: 0xe00d, 0xde1: 0x0008, 0xde2: 0xe00d, 0xde3: 0x0008,
+       0xde4: 0x0008, 0xde5: 0x0018, 0xde6: 0x0018, 0xde7: 0x0018, 0xde8: 0x0018, 0xde9: 0x0018,
+       0xdea: 0x0018, 0xdeb: 0xe03d, 0xdec: 0x0008, 0xded: 0xe01d, 0xdee: 0x0008, 0xdef: 0x3308,
+       0xdf0: 0x3308, 0xdf1: 0x3308, 0xdf2: 0xe00d, 0xdf3: 0x0008, 0xdf4: 0x0040, 0xdf5: 0x0040,
+       0xdf6: 0x0040, 0xdf7: 0x0040, 0xdf8: 0x0040, 0xdf9: 0x0018, 0xdfa: 0x0018, 0xdfb: 0x0018,
+       0xdfc: 0x0018, 0xdfd: 0x0018, 0xdfe: 0x0018, 0xdff: 0x0018,
+       // Block 0x38, offset 0xe00
+       0xe00: 0x26fd, 0xe01: 0x271d, 0xe02: 0x273d, 0xe03: 0x275d, 0xe04: 0x277d, 0xe05: 0x279d,
+       0xe06: 0x27bd, 0xe07: 0x27dd, 0xe08: 0x27fd, 0xe09: 0x281d, 0xe0a: 0x283d, 0xe0b: 0x285d,
+       0xe0c: 0x287d, 0xe0d: 0x289d, 0xe0e: 0x28bd, 0xe0f: 0x28dd, 0xe10: 0x28fd, 0xe11: 0x291d,
+       0xe12: 0x293d, 0xe13: 0x295d, 0xe14: 0x297d, 0xe15: 0x299d, 0xe16: 0x0040, 0xe17: 0x0040,
+       0xe18: 0x0040, 0xe19: 0x0040, 0xe1a: 0x0040, 0xe1b: 0x0040, 0xe1c: 0x0040, 0xe1d: 0x0040,
+       0xe1e: 0x0040, 0xe1f: 0x0040, 0xe20: 0x0040, 0xe21: 0x0040, 0xe22: 0x0040, 0xe23: 0x0040,
+       0xe24: 0x0040, 0xe25: 0x0040, 0xe26: 0x0040, 0xe27: 0x0040, 0xe28: 0x0040, 0xe29: 0x0040,
+       0xe2a: 0x0040, 0xe2b: 0x0040, 0xe2c: 0x0040, 0xe2d: 0x0040, 0xe2e: 0x0040, 0xe2f: 0x0040,
+       0xe30: 0x0040, 0xe31: 0x0040, 0xe32: 0x0040, 0xe33: 0x0040, 0xe34: 0x0040, 0xe35: 0x0040,
+       0xe36: 0x0040, 0xe37: 0x0040, 0xe38: 0x0040, 0xe39: 0x0040, 0xe3a: 0x0040, 0xe3b: 0x0040,
+       0xe3c: 0x0040, 0xe3d: 0x0040, 0xe3e: 0x0040, 0xe3f: 0x0040,
+       // Block 0x39, offset 0xe40
+       0xe40: 0x000a, 0xe41: 0x0018, 0xe42: 0x29d1, 0xe43: 0x0018, 0xe44: 0x0018, 0xe45: 0x0008,
+       0xe46: 0x0008, 0xe47: 0x0008, 0xe48: 0x0018, 0xe49: 0x0018, 0xe4a: 0x0018, 0xe4b: 0x0018,
+       0xe4c: 0x0018, 0xe4d: 0x0018, 0xe4e: 0x0018, 0xe4f: 0x0018, 0xe50: 0x0018, 0xe51: 0x0018,
+       0xe52: 0x0018, 0xe53: 0x0018, 0xe54: 0x0018, 0xe55: 0x0018, 0xe56: 0x0018, 0xe57: 0x0018,
+       0xe58: 0x0018, 0xe59: 0x0018, 0xe5a: 0x0018, 0xe5b: 0x0018, 0xe5c: 0x0018, 0xe5d: 0x0018,
+       0xe5e: 0x0018, 0xe5f: 0x0018, 0xe60: 0x0018, 0xe61: 0x0018, 0xe62: 0x0018, 0xe63: 0x0018,
+       0xe64: 0x0018, 0xe65: 0x0018, 0xe66: 0x0018, 0xe67: 0x0018, 0xe68: 0x0018, 0xe69: 0x0018,
+       0xe6a: 0x3308, 0xe6b: 0x3308, 0xe6c: 0x3308, 0xe6d: 0x3308, 0xe6e: 0x3018, 0xe6f: 0x3018,
+       0xe70: 0x0018, 0xe71: 0x0018, 0xe72: 0x0018, 0xe73: 0x0018, 0xe74: 0x0018, 0xe75: 0x0018,
+       0xe76: 0xe125, 0xe77: 0x0018, 0xe78: 0x29bd, 0xe79: 0x29dd, 0xe7a: 0x29fd, 0xe7b: 0x0018,
+       0xe7c: 0x0008, 0xe7d: 0x0018, 0xe7e: 0x0018, 0xe7f: 0x0018,
+       // Block 0x3a, offset 0xe80
+       0xe80: 0x2b3d, 0xe81: 0x2b5d, 0xe82: 0x2b7d, 0xe83: 0x2b9d, 0xe84: 0x2bbd, 0xe85: 0x2bdd,
+       0xe86: 0x2bdd, 0xe87: 0x2bdd, 0xe88: 0x2bfd, 0xe89: 0x2bfd, 0xe8a: 0x2bfd, 0xe8b: 0x2bfd,
+       0xe8c: 0x2c1d, 0xe8d: 0x2c1d, 0xe8e: 0x2c1d, 0xe8f: 0x2c3d, 0xe90: 0x2c5d, 0xe91: 0x2c5d,
+       0xe92: 0x2a7d, 0xe93: 0x2a7d, 0xe94: 0x2c5d, 0xe95: 0x2c5d, 0xe96: 0x2c7d, 0xe97: 0x2c7d,
+       0xe98: 0x2c5d, 0xe99: 0x2c5d, 0xe9a: 0x2a7d, 0xe9b: 0x2a7d, 0xe9c: 0x2c5d, 0xe9d: 0x2c5d,
+       0xe9e: 0x2c3d, 0xe9f: 0x2c3d, 0xea0: 0x2c9d, 0xea1: 0x2c9d, 0xea2: 0x2cbd, 0xea3: 0x2cbd,
+       0xea4: 0x0040, 0xea5: 0x2cdd, 0xea6: 0x2cfd, 0xea7: 0x2d1d, 0xea8: 0x2d1d, 0xea9: 0x2d3d,
+       0xeaa: 0x2d5d, 0xeab: 0x2d7d, 0xeac: 0x2d9d, 0xead: 0x2dbd, 0xeae: 0x2ddd, 0xeaf: 0x2dfd,
+       0xeb0: 0x2e1d, 0xeb1: 0x2e3d, 0xeb2: 0x2e3d, 0xeb3: 0x2e5d, 0xeb4: 0x2e7d, 0xeb5: 0x2e7d,
+       0xeb6: 0x2e9d, 0xeb7: 0x2ebd, 0xeb8: 0x2e5d, 0xeb9: 0x2edd, 0xeba: 0x2efd, 0xebb: 0x2edd,
+       0xebc: 0x2e5d, 0xebd: 0x2f1d, 0xebe: 0x2f3d, 0xebf: 0x2f5d,
+       // Block 0x3b, offset 0xec0
+       0xec0: 0x2f7d, 0xec1: 0x2f9d, 0xec2: 0x2cfd, 0xec3: 0x2cdd, 0xec4: 0x2fbd, 0xec5: 0x2fdd,
+       0xec6: 0x2ffd, 0xec7: 0x301d, 0xec8: 0x303d, 0xec9: 0x305d, 0xeca: 0x307d, 0xecb: 0x309d,
+       0xecc: 0x30bd, 0xecd: 0x30dd, 0xece: 0x30fd, 0xecf: 0x0040, 0xed0: 0x0018, 0xed1: 0x0018,
+       0xed2: 0x311d, 0xed3: 0x313d, 0xed4: 0x315d, 0xed5: 0x317d, 0xed6: 0x319d, 0xed7: 0x31bd,
+       0xed8: 0x31dd, 0xed9: 0x31fd, 0xeda: 0x321d, 0xedb: 0x323d, 0xedc: 0x315d, 0xedd: 0x325d,
+       0xede: 0x327d, 0xedf: 0x329d, 0xee0: 0x0008, 0xee1: 0x0008, 0xee2: 0x0008, 0xee3: 0x0008,
+       0xee4: 0x0008, 0xee5: 0x0008, 0xee6: 0x0008, 0xee7: 0x0008, 0xee8: 0x0008, 0xee9: 0x0008,
+       0xeea: 0x0008, 0xeeb: 0x0008, 0xeec: 0x0008, 0xeed: 0x0008, 0xeee: 0x0008, 0xeef: 0x0008,
+       0xef0: 0x0008, 0xef1: 0x0008, 0xef2: 0x0008, 0xef3: 0x0008, 0xef4: 0x0008, 0xef5: 0x0008,
+       0xef6: 0x0008, 0xef7: 0x0008, 0xef8: 0x0008, 0xef9: 0x0008, 0xefa: 0x0008, 0xefb: 0x0040,
+       0xefc: 0x0040, 0xefd: 0x0040, 0xefe: 0x0040, 0xeff: 0x0040,
+       // Block 0x3c, offset 0xf00
+       0xf00: 0x36a2, 0xf01: 0x36d2, 0xf02: 0x3702, 0xf03: 0x3732, 0xf04: 0x32bd, 0xf05: 0x32dd,
+       0xf06: 0x32fd, 0xf07: 0x331d, 0xf08: 0x0018, 0xf09: 0x0018, 0xf0a: 0x0018, 0xf0b: 0x0018,
+       0xf0c: 0x0018, 0xf0d: 0x0018, 0xf0e: 0x0018, 0xf0f: 0x0018, 0xf10: 0x333d, 0xf11: 0x3761,
+       0xf12: 0x3779, 0xf13: 0x3791, 0xf14: 0x37a9, 0xf15: 0x37c1, 0xf16: 0x37d9, 0xf17: 0x37f1,
+       0xf18: 0x3809, 0xf19: 0x3821, 0xf1a: 0x3839, 0xf1b: 0x3851, 0xf1c: 0x3869, 0xf1d: 0x3881,
+       0xf1e: 0x3899, 0xf1f: 0x38b1, 0xf20: 0x335d, 0xf21: 0x337d, 0xf22: 0x339d, 0xf23: 0x33bd,
+       0xf24: 0x33dd, 0xf25: 0x33dd, 0xf26: 0x33fd, 0xf27: 0x341d, 0xf28: 0x343d, 0xf29: 0x345d,
+       0xf2a: 0x347d, 0xf2b: 0x349d, 0xf2c: 0x34bd, 0xf2d: 0x34dd, 0xf2e: 0x34fd, 0xf2f: 0x351d,
+       0xf30: 0x353d, 0xf31: 0x355d, 0xf32: 0x357d, 0xf33: 0x359d, 0xf34: 0x35bd, 0xf35: 0x35dd,
+       0xf36: 0x35fd, 0xf37: 0x361d, 0xf38: 0x363d, 0xf39: 0x365d, 0xf3a: 0x367d, 0xf3b: 0x369d,
+       0xf3c: 0x38c9, 0xf3d: 0x3901, 0xf3e: 0x36bd, 0xf3f: 0x0018,
+       // Block 0x3d, offset 0xf40
+       0xf40: 0x36dd, 0xf41: 0x36fd, 0xf42: 0x371d, 0xf43: 0x373d, 0xf44: 0x375d, 0xf45: 0x377d,
+       0xf46: 0x379d, 0xf47: 0x37bd, 0xf48: 0x37dd, 0xf49: 0x37fd, 0xf4a: 0x381d, 0xf4b: 0x383d,
+       0xf4c: 0x385d, 0xf4d: 0x387d, 0xf4e: 0x389d, 0xf4f: 0x38bd, 0xf50: 0x38dd, 0xf51: 0x38fd,
+       0xf52: 0x391d, 0xf53: 0x393d, 0xf54: 0x395d, 0xf55: 0x397d, 0xf56: 0x399d, 0xf57: 0x39bd,
+       0xf58: 0x39dd, 0xf59: 0x39fd, 0xf5a: 0x3a1d, 0xf5b: 0x3a3d, 0xf5c: 0x3a5d, 0xf5d: 0x3a7d,
+       0xf5e: 0x3a9d, 0xf5f: 0x3abd, 0xf60: 0x3add, 0xf61: 0x3afd, 0xf62: 0x3b1d, 0xf63: 0x3b3d,
+       0xf64: 0x3b5d, 0xf65: 0x3b7d, 0xf66: 0x127d, 0xf67: 0x3b9d, 0xf68: 0x3bbd, 0xf69: 0x3bdd,
+       0xf6a: 0x3bfd, 0xf6b: 0x3c1d, 0xf6c: 0x3c3d, 0xf6d: 0x3c5d, 0xf6e: 0x239d, 0xf6f: 0x3c7d,
+       0xf70: 0x3c9d, 0xf71: 0x3939, 0xf72: 0x3951, 0xf73: 0x3969, 0xf74: 0x3981, 0xf75: 0x3999,
+       0xf76: 0x39b1, 0xf77: 0x39c9, 0xf78: 0x39e1, 0xf79: 0x39f9, 0xf7a: 0x3a11, 0xf7b: 0x3a29,
+       0xf7c: 0x3a41, 0xf7d: 0x3a59, 0xf7e: 0x3a71, 0xf7f: 0x3a89,
+       // Block 0x3e, offset 0xf80
+       0xf80: 0x3aa1, 0xf81: 0x3ac9, 0xf82: 0x3af1, 0xf83: 0x3b19, 0xf84: 0x3b41, 0xf85: 0x3b69,
+       0xf86: 0x3b91, 0xf87: 0x3bb9, 0xf88: 0x3be1, 0xf89: 0x3c09, 0xf8a: 0x3c39, 0xf8b: 0x3c69,
+       0xf8c: 0x3c99, 0xf8d: 0x3cbd, 0xf8e: 0x3cb1, 0xf8f: 0x3cdd, 0xf90: 0x3cfd, 0xf91: 0x3d15,
+       0xf92: 0x3d2d, 0xf93: 0x3d45, 0xf94: 0x3d5d, 0xf95: 0x3d5d, 0xf96: 0x3d45, 0xf97: 0x3d75,
+       0xf98: 0x07bd, 0xf99: 0x3d8d, 0xf9a: 0x3da5, 0xf9b: 0x3dbd, 0xf9c: 0x3dd5, 0xf9d: 0x3ded,
+       0xf9e: 0x3e05, 0xf9f: 0x3e1d, 0xfa0: 0x3e35, 0xfa1: 0x3e4d, 0xfa2: 0x3e65, 0xfa3: 0x3e7d,
+       0xfa4: 0x3e95, 0xfa5: 0x3e95, 0xfa6: 0x3ead, 0xfa7: 0x3ead, 0xfa8: 0x3ec5, 0xfa9: 0x3ec5,
+       0xfaa: 0x3edd, 0xfab: 0x3ef5, 0xfac: 0x3f0d, 0xfad: 0x3f25, 0xfae: 0x3f3d, 0xfaf: 0x3f3d,
+       0xfb0: 0x3f55, 0xfb1: 0x3f55, 0xfb2: 0x3f55, 0xfb3: 0x3f6d, 0xfb4: 0x3f85, 0xfb5: 0x3f9d,
+       0xfb6: 0x3fb5, 0xfb7: 0x3f9d, 0xfb8: 0x3fcd, 0xfb9: 0x3fe5, 0xfba: 0x3f6d, 0xfbb: 0x3ffd,
+       0xfbc: 0x4015, 0xfbd: 0x4015, 0xfbe: 0x4015, 0xfbf: 0x0040,
+       // Block 0x3f, offset 0xfc0
+       0xfc0: 0x3cc9, 0xfc1: 0x3d31, 0xfc2: 0x3d99, 0xfc3: 0x3e01, 0xfc4: 0x3e51, 0xfc5: 0x3eb9,
+       0xfc6: 0x3f09, 0xfc7: 0x3f59, 0xfc8: 0x3fd9, 0xfc9: 0x4041, 0xfca: 0x4091, 0xfcb: 0x40e1,
+       0xfcc: 0x4131, 0xfcd: 0x4199, 0xfce: 0x4201, 0xfcf: 0x4251, 0xfd0: 0x42a1, 0xfd1: 0x42d9,
+       0xfd2: 0x4329, 0xfd3: 0x4391, 0xfd4: 0x43f9, 0xfd5: 0x4431, 0xfd6: 0x44b1, 0xfd7: 0x4549,
+       0xfd8: 0x45c9, 0xfd9: 0x4619, 0xfda: 0x4699, 0xfdb: 0x4719, 0xfdc: 0x4781, 0xfdd: 0x47d1,
+       0xfde: 0x4821, 0xfdf: 0x4871, 0xfe0: 0x48d9, 0xfe1: 0x4959, 0xfe2: 0x49c1, 0xfe3: 0x4a11,
+       0xfe4: 0x4a61, 0xfe5: 0x4ab1, 0xfe6: 0x4ae9, 0xfe7: 0x4b21, 0xfe8: 0x4b59, 0xfe9: 0x4b91,
+       0xfea: 0x4be1, 0xfeb: 0x4c31, 0xfec: 0x4cb1, 0xfed: 0x4d01, 0xfee: 0x4d69, 0xfef: 0x4de9,
+       0xff0: 0x4e39, 0xff1: 0x4e71, 0xff2: 0x4ea9, 0xff3: 0x4f29, 0xff4: 0x4f91, 0xff5: 0x5011,
+       0xff6: 0x5061, 0xff7: 0x50e1, 0xff8: 0x5119, 0xff9: 0x5169, 0xffa: 0x51b9, 0xffb: 0x5209,
+       0xffc: 0x5259, 0xffd: 0x52a9, 0xffe: 0x5311, 0xfff: 0x5361,
+       // Block 0x40, offset 0x1000
+       0x1000: 0x5399, 0x1001: 0x53e9, 0x1002: 0x5439, 0x1003: 0x5489, 0x1004: 0x54f1, 0x1005: 0x5541,
+       0x1006: 0x5591, 0x1007: 0x55e1, 0x1008: 0x5661, 0x1009: 0x56c9, 0x100a: 0x5701, 0x100b: 0x5781,
+       0x100c: 0x57b9, 0x100d: 0x5821, 0x100e: 0x5889, 0x100f: 0x58d9, 0x1010: 0x5929, 0x1011: 0x5979,
+       0x1012: 0x59e1, 0x1013: 0x5a19, 0x1014: 0x5a69, 0x1015: 0x5ad1, 0x1016: 0x5b09, 0x1017: 0x5b89,
+       0x1018: 0x5bd9, 0x1019: 0x5c01, 0x101a: 0x5c29, 0x101b: 0x5c51, 0x101c: 0x5c79, 0x101d: 0x5ca1,
+       0x101e: 0x5cc9, 0x101f: 0x5cf1, 0x1020: 0x5d19, 0x1021: 0x5d41, 0x1022: 0x5d69, 0x1023: 0x5d99,
+       0x1024: 0x5dc9, 0x1025: 0x5df9, 0x1026: 0x5e29, 0x1027: 0x5e59, 0x1028: 0x5e89, 0x1029: 0x5eb9,
+       0x102a: 0x5ee9, 0x102b: 0x5f19, 0x102c: 0x5f49, 0x102d: 0x5f79, 0x102e: 0x5fa9, 0x102f: 0x5fd9,
+       0x1030: 0x6009, 0x1031: 0x402d, 0x1032: 0x6039, 0x1033: 0x6051, 0x1034: 0x404d, 0x1035: 0x6069,
+       0x1036: 0x6081, 0x1037: 0x6099, 0x1038: 0x406d, 0x1039: 0x406d, 0x103a: 0x60b1, 0x103b: 0x60c9,
+       0x103c: 0x6101, 0x103d: 0x6139, 0x103e: 0x6171, 0x103f: 0x61a9,
+       // Block 0x41, offset 0x1040
+       0x1040: 0x6211, 0x1041: 0x6229, 0x1042: 0x408d, 0x1043: 0x6241, 0x1044: 0x6259, 0x1045: 0x6271,
+       0x1046: 0x6289, 0x1047: 0x62a1, 0x1048: 0x40ad, 0x1049: 0x62b9, 0x104a: 0x62e1, 0x104b: 0x62f9,
+       0x104c: 0x40cd, 0x104d: 0x40cd, 0x104e: 0x6311, 0x104f: 0x6329, 0x1050: 0x6341, 0x1051: 0x40ed,
+       0x1052: 0x410d, 0x1053: 0x412d, 0x1054: 0x414d, 0x1055: 0x416d, 0x1056: 0x6359, 0x1057: 0x6371,
+       0x1058: 0x6389, 0x1059: 0x63a1, 0x105a: 0x63b9, 0x105b: 0x418d, 0x105c: 0x63d1, 0x105d: 0x63e9,
+       0x105e: 0x6401, 0x105f: 0x41ad, 0x1060: 0x41cd, 0x1061: 0x6419, 0x1062: 0x41ed, 0x1063: 0x420d,
+       0x1064: 0x422d, 0x1065: 0x6431, 0x1066: 0x424d, 0x1067: 0x6449, 0x1068: 0x6479, 0x1069: 0x6211,
+       0x106a: 0x426d, 0x106b: 0x428d, 0x106c: 0x42ad, 0x106d: 0x42cd, 0x106e: 0x64b1, 0x106f: 0x64f1,
+       0x1070: 0x6539, 0x1071: 0x6551, 0x1072: 0x42ed, 0x1073: 0x6569, 0x1074: 0x6581, 0x1075: 0x6599,
+       0x1076: 0x430d, 0x1077: 0x65b1, 0x1078: 0x65c9, 0x1079: 0x65b1, 0x107a: 0x65e1, 0x107b: 0x65f9,
+       0x107c: 0x432d, 0x107d: 0x6611, 0x107e: 0x6629, 0x107f: 0x6611,
+       // Block 0x42, offset 0x1080
+       0x1080: 0x434d, 0x1081: 0x436d, 0x1082: 0x0040, 0x1083: 0x6641, 0x1084: 0x6659, 0x1085: 0x6671,
+       0x1086: 0x6689, 0x1087: 0x0040, 0x1088: 0x66c1, 0x1089: 0x66d9, 0x108a: 0x66f1, 0x108b: 0x6709,
+       0x108c: 0x6721, 0x108d: 0x6739, 0x108e: 0x6401, 0x108f: 0x6751, 0x1090: 0x6769, 0x1091: 0x6781,
+       0x1092: 0x438d, 0x1093: 0x6799, 0x1094: 0x6289, 0x1095: 0x43ad, 0x1096: 0x43cd, 0x1097: 0x67b1,
+       0x1098: 0x0040, 0x1099: 0x43ed, 0x109a: 0x67c9, 0x109b: 0x67e1, 0x109c: 0x67f9, 0x109d: 0x6811,
+       0x109e: 0x6829, 0x109f: 0x6859, 0x10a0: 0x6889, 0x10a1: 0x68b1, 0x10a2: 0x68d9, 0x10a3: 0x6901,
+       0x10a4: 0x6929, 0x10a5: 0x6951, 0x10a6: 0x6979, 0x10a7: 0x69a1, 0x10a8: 0x69c9, 0x10a9: 0x69f1,
+       0x10aa: 0x6a21, 0x10ab: 0x6a51, 0x10ac: 0x6a81, 0x10ad: 0x6ab1, 0x10ae: 0x6ae1, 0x10af: 0x6b11,
+       0x10b0: 0x6b41, 0x10b1: 0x6b71, 0x10b2: 0x6ba1, 0x10b3: 0x6bd1, 0x10b4: 0x6c01, 0x10b5: 0x6c31,
+       0x10b6: 0x6c61, 0x10b7: 0x6c91, 0x10b8: 0x6cc1, 0x10b9: 0x6cf1, 0x10ba: 0x6d21, 0x10bb: 0x6d51,
+       0x10bc: 0x6d81, 0x10bd: 0x6db1, 0x10be: 0x6de1, 0x10bf: 0x440d,
+       // Block 0x43, offset 0x10c0
+       0x10c0: 0xe00d, 0x10c1: 0x0008, 0x10c2: 0xe00d, 0x10c3: 0x0008, 0x10c4: 0xe00d, 0x10c5: 0x0008,
+       0x10c6: 0xe00d, 0x10c7: 0x0008, 0x10c8: 0xe00d, 0x10c9: 0x0008, 0x10ca: 0xe00d, 0x10cb: 0x0008,
+       0x10cc: 0xe00d, 0x10cd: 0x0008, 0x10ce: 0xe00d, 0x10cf: 0x0008, 0x10d0: 0xe00d, 0x10d1: 0x0008,
+       0x10d2: 0xe00d, 0x10d3: 0x0008, 0x10d4: 0xe00d, 0x10d5: 0x0008, 0x10d6: 0xe00d, 0x10d7: 0x0008,
+       0x10d8: 0xe00d, 0x10d9: 0x0008, 0x10da: 0xe00d, 0x10db: 0x0008, 0x10dc: 0xe00d, 0x10dd: 0x0008,
+       0x10de: 0xe00d, 0x10df: 0x0008, 0x10e0: 0xe00d, 0x10e1: 0x0008, 0x10e2: 0xe00d, 0x10e3: 0x0008,
+       0x10e4: 0xe00d, 0x10e5: 0x0008, 0x10e6: 0xe00d, 0x10e7: 0x0008, 0x10e8: 0xe00d, 0x10e9: 0x0008,
+       0x10ea: 0xe00d, 0x10eb: 0x0008, 0x10ec: 0xe00d, 0x10ed: 0x0008, 0x10ee: 0x0008, 0x10ef: 0x3308,
+       0x10f0: 0x3318, 0x10f1: 0x3318, 0x10f2: 0x3318, 0x10f3: 0x0018, 0x10f4: 0x3308, 0x10f5: 0x3308,
+       0x10f6: 0x3308, 0x10f7: 0x3308, 0x10f8: 0x3308, 0x10f9: 0x3308, 0x10fa: 0x3308, 0x10fb: 0x3308,
+       0x10fc: 0x3308, 0x10fd: 0x3308, 0x10fe: 0x0018, 0x10ff: 0x0008,
+       // Block 0x44, offset 0x1100
+       0x1100: 0xe00d, 0x1101: 0x0008, 0x1102: 0xe00d, 0x1103: 0x0008, 0x1104: 0xe00d, 0x1105: 0x0008,
+       0x1106: 0xe00d, 0x1107: 0x0008, 0x1108: 0xe00d, 0x1109: 0x0008, 0x110a: 0xe00d, 0x110b: 0x0008,
+       0x110c: 0xe00d, 0x110d: 0x0008, 0x110e: 0xe00d, 0x110f: 0x0008, 0x1110: 0xe00d, 0x1111: 0x0008,
+       0x1112: 0xe00d, 0x1113: 0x0008, 0x1114: 0xe00d, 0x1115: 0x0008, 0x1116: 0xe00d, 0x1117: 0x0008,
+       0x1118: 0xe00d, 0x1119: 0x0008, 0x111a: 0xe00d, 0x111b: 0x0008, 0x111c: 0x0ea1, 0x111d: 0x6e11,
+       0x111e: 0x3308, 0x111f: 0x3308, 0x1120: 0x0008, 0x1121: 0x0008, 0x1122: 0x0008, 0x1123: 0x0008,
+       0x1124: 0x0008, 0x1125: 0x0008, 0x1126: 0x0008, 0x1127: 0x0008, 0x1128: 0x0008, 0x1129: 0x0008,
+       0x112a: 0x0008, 0x112b: 0x0008, 0x112c: 0x0008, 0x112d: 0x0008, 0x112e: 0x0008, 0x112f: 0x0008,
+       0x1130: 0x0008, 0x1131: 0x0008, 0x1132: 0x0008, 0x1133: 0x0008, 0x1134: 0x0008, 0x1135: 0x0008,
+       0x1136: 0x0008, 0x1137: 0x0008, 0x1138: 0x0008, 0x1139: 0x0008, 0x113a: 0x0008, 0x113b: 0x0008,
+       0x113c: 0x0008, 0x113d: 0x0008, 0x113e: 0x0008, 0x113f: 0x0008,
+       // Block 0x45, offset 0x1140
+       0x1140: 0x0018, 0x1141: 0x0018, 0x1142: 0x0018, 0x1143: 0x0018, 0x1144: 0x0018, 0x1145: 0x0018,
+       0x1146: 0x0018, 0x1147: 0x0018, 0x1148: 0x0018, 0x1149: 0x0018, 0x114a: 0x0018, 0x114b: 0x0018,
+       0x114c: 0x0018, 0x114d: 0x0018, 0x114e: 0x0018, 0x114f: 0x0018, 0x1150: 0x0018, 0x1151: 0x0018,
+       0x1152: 0x0018, 0x1153: 0x0018, 0x1154: 0x0018, 0x1155: 0x0018, 0x1156: 0x0018, 0x1157: 0x0008,
+       0x1158: 0x0008, 0x1159: 0x0008, 0x115a: 0x0008, 0x115b: 0x0008, 0x115c: 0x0008, 0x115d: 0x0008,
+       0x115e: 0x0008, 0x115f: 0x0008, 0x1160: 0x0018, 0x1161: 0x0018, 0x1162: 0xe00d, 0x1163: 0x0008,
+       0x1164: 0xe00d, 0x1165: 0x0008, 0x1166: 0xe00d, 0x1167: 0x0008, 0x1168: 0xe00d, 0x1169: 0x0008,
+       0x116a: 0xe00d, 0x116b: 0x0008, 0x116c: 0xe00d, 0x116d: 0x0008, 0x116e: 0xe00d, 0x116f: 0x0008,
+       0x1170: 0x0008, 0x1171: 0x0008, 0x1172: 0xe00d, 0x1173: 0x0008, 0x1174: 0xe00d, 0x1175: 0x0008,
+       0x1176: 0xe00d, 0x1177: 0x0008, 0x1178: 0xe00d, 0x1179: 0x0008, 0x117a: 0xe00d, 0x117b: 0x0008,
+       0x117c: 0xe00d, 0x117d: 0x0008, 0x117e: 0xe00d, 0x117f: 0x0008,
+       // Block 0x46, offset 0x1180
+       0x1180: 0xe00d, 0x1181: 0x0008, 0x1182: 0xe00d, 0x1183: 0x0008, 0x1184: 0xe00d, 0x1185: 0x0008,
+       0x1186: 0xe00d, 0x1187: 0x0008, 0x1188: 0xe00d, 0x1189: 0x0008, 0x118a: 0xe00d, 0x118b: 0x0008,
+       0x118c: 0xe00d, 0x118d: 0x0008, 0x118e: 0xe00d, 0x118f: 0x0008, 0x1190: 0xe00d, 0x1191: 0x0008,
+       0x1192: 0xe00d, 0x1193: 0x0008, 0x1194: 0xe00d, 0x1195: 0x0008, 0x1196: 0xe00d, 0x1197: 0x0008,
+       0x1198: 0xe00d, 0x1199: 0x0008, 0x119a: 0xe00d, 0x119b: 0x0008, 0x119c: 0xe00d, 0x119d: 0x0008,
+       0x119e: 0xe00d, 0x119f: 0x0008, 0x11a0: 0xe00d, 0x11a1: 0x0008, 0x11a2: 0xe00d, 0x11a3: 0x0008,
+       0x11a4: 0xe00d, 0x11a5: 0x0008, 0x11a6: 0xe00d, 0x11a7: 0x0008, 0x11a8: 0xe00d, 0x11a9: 0x0008,
+       0x11aa: 0xe00d, 0x11ab: 0x0008, 0x11ac: 0xe00d, 0x11ad: 0x0008, 0x11ae: 0xe00d, 0x11af: 0x0008,
+       0x11b0: 0xe0fd, 0x11b1: 0x0008, 0x11b2: 0x0008, 0x11b3: 0x0008, 0x11b4: 0x0008, 0x11b5: 0x0008,
+       0x11b6: 0x0008, 0x11b7: 0x0008, 0x11b8: 0x0008, 0x11b9: 0xe01d, 0x11ba: 0x0008, 0x11bb: 0xe03d,
+       0x11bc: 0x0008, 0x11bd: 0x442d, 0x11be: 0xe00d, 0x11bf: 0x0008,
+       // Block 0x47, offset 0x11c0
+       0x11c0: 0xe00d, 0x11c1: 0x0008, 0x11c2: 0xe00d, 0x11c3: 0x0008, 0x11c4: 0xe00d, 0x11c5: 0x0008,
+       0x11c6: 0xe00d, 0x11c7: 0x0008, 0x11c8: 0x0008, 0x11c9: 0x0018, 0x11ca: 0x0018, 0x11cb: 0xe03d,
+       0x11cc: 0x0008, 0x11cd: 0x11d9, 0x11ce: 0x0008, 0x11cf: 0x0008, 0x11d0: 0xe00d, 0x11d1: 0x0008,
+       0x11d2: 0xe00d, 0x11d3: 0x0008, 0x11d4: 0x0008, 0x11d5: 0x0008, 0x11d6: 0xe00d, 0x11d7: 0x0008,
+       0x11d8: 0xe00d, 0x11d9: 0x0008, 0x11da: 0xe00d, 0x11db: 0x0008, 0x11dc: 0xe00d, 0x11dd: 0x0008,
+       0x11de: 0xe00d, 0x11df: 0x0008, 0x11e0: 0xe00d, 0x11e1: 0x0008, 0x11e2: 0xe00d, 0x11e3: 0x0008,
+       0x11e4: 0xe00d, 0x11e5: 0x0008, 0x11e6: 0xe00d, 0x11e7: 0x0008, 0x11e8: 0xe00d, 0x11e9: 0x0008,
+       0x11ea: 0x6e29, 0x11eb: 0x1029, 0x11ec: 0x11c1, 0x11ed: 0x6e41, 0x11ee: 0x1221, 0x11ef: 0x0040,
+       0x11f0: 0x6e59, 0x11f1: 0x6e71, 0x11f2: 0x1239, 0x11f3: 0x444d, 0x11f4: 0xe00d, 0x11f5: 0x0008,
+       0x11f6: 0xe00d, 0x11f7: 0x0008, 0x11f8: 0x0040, 0x11f9: 0x0040, 0x11fa: 0x0040, 0x11fb: 0x0040,
+       0x11fc: 0x0040, 0x11fd: 0x0040, 0x11fe: 0x0040, 0x11ff: 0x0040,
+       // Block 0x48, offset 0x1200
+       0x1200: 0x64d5, 0x1201: 0x64f5, 0x1202: 0x6515, 0x1203: 0x6535, 0x1204: 0x6555, 0x1205: 0x6575,
+       0x1206: 0x6595, 0x1207: 0x65b5, 0x1208: 0x65d5, 0x1209: 0x65f5, 0x120a: 0x6615, 0x120b: 0x6635,
+       0x120c: 0x6655, 0x120d: 0x6675, 0x120e: 0x0008, 0x120f: 0x0008, 0x1210: 0x6695, 0x1211: 0x0008,
+       0x1212: 0x66b5, 0x1213: 0x0008, 0x1214: 0x0008, 0x1215: 0x66d5, 0x1216: 0x66f5, 0x1217: 0x6715,
+       0x1218: 0x6735, 0x1219: 0x6755, 0x121a: 0x6775, 0x121b: 0x6795, 0x121c: 0x67b5, 0x121d: 0x67d5,
+       0x121e: 0x67f5, 0x121f: 0x0008, 0x1220: 0x6815, 0x1221: 0x0008, 0x1222: 0x6835, 0x1223: 0x0008,
+       0x1224: 0x0008, 0x1225: 0x6855, 0x1226: 0x6875, 0x1227: 0x0008, 0x1228: 0x0008, 0x1229: 0x0008,
+       0x122a: 0x6895, 0x122b: 0x68b5, 0x122c: 0x68d5, 0x122d: 0x68f5, 0x122e: 0x6915, 0x122f: 0x6935,
+       0x1230: 0x6955, 0x1231: 0x6975, 0x1232: 0x6995, 0x1233: 0x69b5, 0x1234: 0x69d5, 0x1235: 0x69f5,
+       0x1236: 0x6a15, 0x1237: 0x6a35, 0x1238: 0x6a55, 0x1239: 0x6a75, 0x123a: 0x6a95, 0x123b: 0x6ab5,
+       0x123c: 0x6ad5, 0x123d: 0x6af5, 0x123e: 0x6b15, 0x123f: 0x6b35,
+       // Block 0x49, offset 0x1240
+       0x1240: 0x7a95, 0x1241: 0x7ab5, 0x1242: 0x7ad5, 0x1243: 0x7af5, 0x1244: 0x7b15, 0x1245: 0x7b35,
+       0x1246: 0x7b55, 0x1247: 0x7b75, 0x1248: 0x7b95, 0x1249: 0x7bb5, 0x124a: 0x7bd5, 0x124b: 0x7bf5,
+       0x124c: 0x7c15, 0x124d: 0x7c35, 0x124e: 0x7c55, 0x124f: 0x6ec9, 0x1250: 0x6ef1, 0x1251: 0x6f19,
+       0x1252: 0x7c75, 0x1253: 0x7c95, 0x1254: 0x7cb5, 0x1255: 0x6f41, 0x1256: 0x6f69, 0x1257: 0x6f91,
+       0x1258: 0x7cd5, 0x1259: 0x7cf5, 0x125a: 0x0040, 0x125b: 0x0040, 0x125c: 0x0040, 0x125d: 0x0040,
+       0x125e: 0x0040, 0x125f: 0x0040, 0x1260: 0x0040, 0x1261: 0x0040, 0x1262: 0x0040, 0x1263: 0x0040,
+       0x1264: 0x0040, 0x1265: 0x0040, 0x1266: 0x0040, 0x1267: 0x0040, 0x1268: 0x0040, 0x1269: 0x0040,
+       0x126a: 0x0040, 0x126b: 0x0040, 0x126c: 0x0040, 0x126d: 0x0040, 0x126e: 0x0040, 0x126f: 0x0040,
+       0x1270: 0x0040, 0x1271: 0x0040, 0x1272: 0x0040, 0x1273: 0x0040, 0x1274: 0x0040, 0x1275: 0x0040,
+       0x1276: 0x0040, 0x1277: 0x0040, 0x1278: 0x0040, 0x1279: 0x0040, 0x127a: 0x0040, 0x127b: 0x0040,
+       0x127c: 0x0040, 0x127d: 0x0040, 0x127e: 0x0040, 0x127f: 0x0040,
+       // Block 0x4a, offset 0x1280
+       0x1280: 0x6fb9, 0x1281: 0x6fd1, 0x1282: 0x6fe9, 0x1283: 0x7d15, 0x1284: 0x7d35, 0x1285: 0x7001,
+       0x1286: 0x7001, 0x1287: 0x0040, 0x1288: 0x0040, 0x1289: 0x0040, 0x128a: 0x0040, 0x128b: 0x0040,
+       0x128c: 0x0040, 0x128d: 0x0040, 0x128e: 0x0040, 0x128f: 0x0040, 0x1290: 0x0040, 0x1291: 0x0040,
+       0x1292: 0x0040, 0x1293: 0x7019, 0x1294: 0x7041, 0x1295: 0x7069, 0x1296: 0x7091, 0x1297: 0x70b9,
+       0x1298: 0x0040, 0x1299: 0x0040, 0x129a: 0x0040, 0x129b: 0x0040, 0x129c: 0x0040, 0x129d: 0x70e1,
+       0x129e: 0x3308, 0x129f: 0x7109, 0x12a0: 0x7131, 0x12a1: 0x20a9, 0x12a2: 0x20f1, 0x12a3: 0x7149,
+       0x12a4: 0x7161, 0x12a5: 0x7179, 0x12a6: 0x7191, 0x12a7: 0x71a9, 0x12a8: 0x71c1, 0x12a9: 0x1fb2,
+       0x12aa: 0x71d9, 0x12ab: 0x7201, 0x12ac: 0x7229, 0x12ad: 0x7261, 0x12ae: 0x7299, 0x12af: 0x72c1,
+       0x12b0: 0x72e9, 0x12b1: 0x7311, 0x12b2: 0x7339, 0x12b3: 0x7361, 0x12b4: 0x7389, 0x12b5: 0x73b1,
+       0x12b6: 0x73d9, 0x12b7: 0x0040, 0x12b8: 0x7401, 0x12b9: 0x7429, 0x12ba: 0x7451, 0x12bb: 0x7479,
+       0x12bc: 0x74a1, 0x12bd: 0x0040, 0x12be: 0x74c9, 0x12bf: 0x0040,
+       // Block 0x4b, offset 0x12c0
+       0x12c0: 0x74f1, 0x12c1: 0x7519, 0x12c2: 0x0040, 0x12c3: 0x7541, 0x12c4: 0x7569, 0x12c5: 0x0040,
+       0x12c6: 0x7591, 0x12c7: 0x75b9, 0x12c8: 0x75e1, 0x12c9: 0x7609, 0x12ca: 0x7631, 0x12cb: 0x7659,
+       0x12cc: 0x7681, 0x12cd: 0x76a9, 0x12ce: 0x76d1, 0x12cf: 0x76f9, 0x12d0: 0x7721, 0x12d1: 0x7721,
+       0x12d2: 0x7739, 0x12d3: 0x7739, 0x12d4: 0x7739, 0x12d5: 0x7739, 0x12d6: 0x7751, 0x12d7: 0x7751,
+       0x12d8: 0x7751, 0x12d9: 0x7751, 0x12da: 0x7769, 0x12db: 0x7769, 0x12dc: 0x7769, 0x12dd: 0x7769,
+       0x12de: 0x7781, 0x12df: 0x7781, 0x12e0: 0x7781, 0x12e1: 0x7781, 0x12e2: 0x7799, 0x12e3: 0x7799,
+       0x12e4: 0x7799, 0x12e5: 0x7799, 0x12e6: 0x77b1, 0x12e7: 0x77b1, 0x12e8: 0x77b1, 0x12e9: 0x77b1,
+       0x12ea: 0x77c9, 0x12eb: 0x77c9, 0x12ec: 0x77c9, 0x12ed: 0x77c9, 0x12ee: 0x77e1, 0x12ef: 0x77e1,
+       0x12f0: 0x77e1, 0x12f1: 0x77e1, 0x12f2: 0x77f9, 0x12f3: 0x77f9, 0x12f4: 0x77f9, 0x12f5: 0x77f9,
+       0x12f6: 0x7811, 0x12f7: 0x7811, 0x12f8: 0x7811, 0x12f9: 0x7811, 0x12fa: 0x7829, 0x12fb: 0x7829,
+       0x12fc: 0x7829, 0x12fd: 0x7829, 0x12fe: 0x7841, 0x12ff: 0x7841,
+       // Block 0x4c, offset 0x1300
+       0x1300: 0x7841, 0x1301: 0x7841, 0x1302: 0x7859, 0x1303: 0x7859, 0x1304: 0x7871, 0x1305: 0x7871,
+       0x1306: 0x7889, 0x1307: 0x7889, 0x1308: 0x78a1, 0x1309: 0x78a1, 0x130a: 0x78b9, 0x130b: 0x78b9,
+       0x130c: 0x78d1, 0x130d: 0x78d1, 0x130e: 0x78e9, 0x130f: 0x78e9, 0x1310: 0x78e9, 0x1311: 0x78e9,
+       0x1312: 0x7901, 0x1313: 0x7901, 0x1314: 0x7901, 0x1315: 0x7901, 0x1316: 0x7919, 0x1317: 0x7919,
+       0x1318: 0x7919, 0x1319: 0x7919, 0x131a: 0x7931, 0x131b: 0x7931, 0x131c: 0x7931, 0x131d: 0x7931,
+       0x131e: 0x7949, 0x131f: 0x7949, 0x1320: 0x7961, 0x1321: 0x7961, 0x1322: 0x7961, 0x1323: 0x7961,
+       0x1324: 0x7979, 0x1325: 0x7979, 0x1326: 0x7991, 0x1327: 0x7991, 0x1328: 0x7991, 0x1329: 0x7991,
+       0x132a: 0x79a9, 0x132b: 0x79a9, 0x132c: 0x79a9, 0x132d: 0x79a9, 0x132e: 0x79c1, 0x132f: 0x79c1,
+       0x1330: 0x79d9, 0x1331: 0x79d9, 0x1332: 0x0818, 0x1333: 0x0818, 0x1334: 0x0818, 0x1335: 0x0818,
+       0x1336: 0x0818, 0x1337: 0x0818, 0x1338: 0x0818, 0x1339: 0x0818, 0x133a: 0x0818, 0x133b: 0x0818,
+       0x133c: 0x0818, 0x133d: 0x0818, 0x133e: 0x0818, 0x133f: 0x0818,
+       // Block 0x4d, offset 0x1340
+       0x1340: 0x0818, 0x1341: 0x0818, 0x1342: 0x0040, 0x1343: 0x0040, 0x1344: 0x0040, 0x1345: 0x0040,
+       0x1346: 0x0040, 0x1347: 0x0040, 0x1348: 0x0040, 0x1349: 0x0040, 0x134a: 0x0040, 0x134b: 0x0040,
+       0x134c: 0x0040, 0x134d: 0x0040, 0x134e: 0x0040, 0x134f: 0x0040, 0x1350: 0x0040, 0x1351: 0x0040,
+       0x1352: 0x0040, 0x1353: 0x79f1, 0x1354: 0x79f1, 0x1355: 0x79f1, 0x1356: 0x79f1, 0x1357: 0x7a09,
+       0x1358: 0x7a09, 0x1359: 0x7a21, 0x135a: 0x7a21, 0x135b: 0x7a39, 0x135c: 0x7a39, 0x135d: 0x0479,
+       0x135e: 0x7a51, 0x135f: 0x7a51, 0x1360: 0x7a69, 0x1361: 0x7a69, 0x1362: 0x7a81, 0x1363: 0x7a81,
+       0x1364: 0x7a99, 0x1365: 0x7a99, 0x1366: 0x7a99, 0x1367: 0x7a99, 0x1368: 0x7ab1, 0x1369: 0x7ab1,
+       0x136a: 0x7ac9, 0x136b: 0x7ac9, 0x136c: 0x7af1, 0x136d: 0x7af1, 0x136e: 0x7b19, 0x136f: 0x7b19,
+       0x1370: 0x7b41, 0x1371: 0x7b41, 0x1372: 0x7b69, 0x1373: 0x7b69, 0x1374: 0x7b91, 0x1375: 0x7b91,
+       0x1376: 0x7bb9, 0x1377: 0x7bb9, 0x1378: 0x7bb9, 0x1379: 0x7be1, 0x137a: 0x7be1, 0x137b: 0x7be1,
+       0x137c: 0x7c09, 0x137d: 0x7c09, 0x137e: 0x7c09, 0x137f: 0x7c09,
+       // Block 0x4e, offset 0x1380
+       0x1380: 0x85f9, 0x1381: 0x8621, 0x1382: 0x8649, 0x1383: 0x8671, 0x1384: 0x8699, 0x1385: 0x86c1,
+       0x1386: 0x86e9, 0x1387: 0x8711, 0x1388: 0x8739, 0x1389: 0x8761, 0x138a: 0x8789, 0x138b: 0x87b1,
+       0x138c: 0x87d9, 0x138d: 0x8801, 0x138e: 0x8829, 0x138f: 0x8851, 0x1390: 0x8879, 0x1391: 0x88a1,
+       0x1392: 0x88c9, 0x1393: 0x88f1, 0x1394: 0x8919, 0x1395: 0x8941, 0x1396: 0x8969, 0x1397: 0x8991,
+       0x1398: 0x89b9, 0x1399: 0x89e1, 0x139a: 0x8a09, 0x139b: 0x8a31, 0x139c: 0x8a59, 0x139d: 0x8a81,
+       0x139e: 0x8aaa, 0x139f: 0x8ada, 0x13a0: 0x8b0a, 0x13a1: 0x8b3a, 0x13a2: 0x8b6a, 0x13a3: 0x8b9a,
+       0x13a4: 0x8bc9, 0x13a5: 0x8bf1, 0x13a6: 0x7c71, 0x13a7: 0x8c19, 0x13a8: 0x7be1, 0x13a9: 0x7c99,
+       0x13aa: 0x8c41, 0x13ab: 0x8c69, 0x13ac: 0x7d39, 0x13ad: 0x8c91, 0x13ae: 0x7d61, 0x13af: 0x7d89,
+       0x13b0: 0x8cb9, 0x13b1: 0x8ce1, 0x13b2: 0x7e29, 0x13b3: 0x8d09, 0x13b4: 0x7e51, 0x13b5: 0x7e79,
+       0x13b6: 0x8d31, 0x13b7: 0x8d59, 0x13b8: 0x7ec9, 0x13b9: 0x8d81, 0x13ba: 0x7ef1, 0x13bb: 0x7f19,
+       0x13bc: 0x83a1, 0x13bd: 0x83c9, 0x13be: 0x8441, 0x13bf: 0x8469,
+       // Block 0x4f, offset 0x13c0
+       0x13c0: 0x8491, 0x13c1: 0x8531, 0x13c2: 0x8559, 0x13c3: 0x8581, 0x13c4: 0x85a9, 0x13c5: 0x8649,
+       0x13c6: 0x8671, 0x13c7: 0x8699, 0x13c8: 0x8da9, 0x13c9: 0x8739, 0x13ca: 0x8dd1, 0x13cb: 0x8df9,
+       0x13cc: 0x8829, 0x13cd: 0x8e21, 0x13ce: 0x8851, 0x13cf: 0x8879, 0x13d0: 0x8a81, 0x13d1: 0x8e49,
+       0x13d2: 0x8e71, 0x13d3: 0x89b9, 0x13d4: 0x8e99, 0x13d5: 0x89e1, 0x13d6: 0x8a09, 0x13d7: 0x7c21,
+       0x13d8: 0x7c49, 0x13d9: 0x8ec1, 0x13da: 0x7c71, 0x13db: 0x8ee9, 0x13dc: 0x7cc1, 0x13dd: 0x7ce9,
+       0x13de: 0x7d11, 0x13df: 0x7d39, 0x13e0: 0x8f11, 0x13e1: 0x7db1, 0x13e2: 0x7dd9, 0x13e3: 0x7e01,
+       0x13e4: 0x7e29, 0x13e5: 0x8f39, 0x13e6: 0x7ec9, 0x13e7: 0x7f41, 0x13e8: 0x7f69, 0x13e9: 0x7f91,
+       0x13ea: 0x7fb9, 0x13eb: 0x7fe1, 0x13ec: 0x8031, 0x13ed: 0x8059, 0x13ee: 0x8081, 0x13ef: 0x80a9,
+       0x13f0: 0x80d1, 0x13f1: 0x80f9, 0x13f2: 0x8f61, 0x13f3: 0x8121, 0x13f4: 0x8149, 0x13f5: 0x8171,
+       0x13f6: 0x8199, 0x13f7: 0x81c1, 0x13f8: 0x81e9, 0x13f9: 0x8239, 0x13fa: 0x8261, 0x13fb: 0x8289,
+       0x13fc: 0x82b1, 0x13fd: 0x82d9, 0x13fe: 0x8301, 0x13ff: 0x8329,
+       // Block 0x50, offset 0x1400
+       0x1400: 0x8351, 0x1401: 0x8379, 0x1402: 0x83f1, 0x1403: 0x8419, 0x1404: 0x84b9, 0x1405: 0x84e1,
+       0x1406: 0x8509, 0x1407: 0x8531, 0x1408: 0x8559, 0x1409: 0x85d1, 0x140a: 0x85f9, 0x140b: 0x8621,
+       0x140c: 0x8649, 0x140d: 0x8f89, 0x140e: 0x86c1, 0x140f: 0x86e9, 0x1410: 0x8711, 0x1411: 0x8739,
+       0x1412: 0x87b1, 0x1413: 0x87d9, 0x1414: 0x8801, 0x1415: 0x8829, 0x1416: 0x8fb1, 0x1417: 0x88a1,
+       0x1418: 0x88c9, 0x1419: 0x8fd9, 0x141a: 0x8941, 0x141b: 0x8969, 0x141c: 0x8991, 0x141d: 0x89b9,
+       0x141e: 0x9001, 0x141f: 0x7c71, 0x1420: 0x8ee9, 0x1421: 0x7d39, 0x1422: 0x8f11, 0x1423: 0x7e29,
+       0x1424: 0x8f39, 0x1425: 0x7ec9, 0x1426: 0x9029, 0x1427: 0x80d1, 0x1428: 0x9051, 0x1429: 0x9079,
+       0x142a: 0x90a1, 0x142b: 0x8531, 0x142c: 0x8559, 0x142d: 0x8649, 0x142e: 0x8829, 0x142f: 0x8fb1,
+       0x1430: 0x89b9, 0x1431: 0x9001, 0x1432: 0x90c9, 0x1433: 0x9101, 0x1434: 0x9139, 0x1435: 0x9171,
+       0x1436: 0x9199, 0x1437: 0x91c1, 0x1438: 0x91e9, 0x1439: 0x9211, 0x143a: 0x9239, 0x143b: 0x9261,
+       0x143c: 0x9289, 0x143d: 0x92b1, 0x143e: 0x92d9, 0x143f: 0x9301,
+       // Block 0x51, offset 0x1440
+       0x1440: 0x9329, 0x1441: 0x9351, 0x1442: 0x9379, 0x1443: 0x93a1, 0x1444: 0x93c9, 0x1445: 0x93f1,
+       0x1446: 0x9419, 0x1447: 0x9441, 0x1448: 0x9469, 0x1449: 0x9491, 0x144a: 0x94b9, 0x144b: 0x94e1,
+       0x144c: 0x9079, 0x144d: 0x9509, 0x144e: 0x9531, 0x144f: 0x9559, 0x1450: 0x9581, 0x1451: 0x9171,
+       0x1452: 0x9199, 0x1453: 0x91c1, 0x1454: 0x91e9, 0x1455: 0x9211, 0x1456: 0x9239, 0x1457: 0x9261,
+       0x1458: 0x9289, 0x1459: 0x92b1, 0x145a: 0x92d9, 0x145b: 0x9301, 0x145c: 0x9329, 0x145d: 0x9351,
+       0x145e: 0x9379, 0x145f: 0x93a1, 0x1460: 0x93c9, 0x1461: 0x93f1, 0x1462: 0x9419, 0x1463: 0x9441,
+       0x1464: 0x9469, 0x1465: 0x9491, 0x1466: 0x94b9, 0x1467: 0x94e1, 0x1468: 0x9079, 0x1469: 0x9509,
+       0x146a: 0x9531, 0x146b: 0x9559, 0x146c: 0x9581, 0x146d: 0x9491, 0x146e: 0x94b9, 0x146f: 0x94e1,
+       0x1470: 0x9079, 0x1471: 0x9051, 0x1472: 0x90a1, 0x1473: 0x8211, 0x1474: 0x8059, 0x1475: 0x8081,
+       0x1476: 0x80a9, 0x1477: 0x9491, 0x1478: 0x94b9, 0x1479: 0x94e1, 0x147a: 0x8211, 0x147b: 0x8239,
+       0x147c: 0x95a9, 0x147d: 0x95a9, 0x147e: 0x0018, 0x147f: 0x0018,
+       // Block 0x52, offset 0x1480
+       0x1480: 0x0040, 0x1481: 0x0040, 0x1482: 0x0040, 0x1483: 0x0040, 0x1484: 0x0040, 0x1485: 0x0040,
+       0x1486: 0x0040, 0x1487: 0x0040, 0x1488: 0x0040, 0x1489: 0x0040, 0x148a: 0x0040, 0x148b: 0x0040,
+       0x148c: 0x0040, 0x148d: 0x0040, 0x148e: 0x0040, 0x148f: 0x0040, 0x1490: 0x95d1, 0x1491: 0x9609,
+       0x1492: 0x9609, 0x1493: 0x9641, 0x1494: 0x9679, 0x1495: 0x96b1, 0x1496: 0x96e9, 0x1497: 0x9721,
+       0x1498: 0x9759, 0x1499: 0x9759, 0x149a: 0x9791, 0x149b: 0x97c9, 0x149c: 0x9801, 0x149d: 0x9839,
+       0x149e: 0x9871, 0x149f: 0x98a9, 0x14a0: 0x98a9, 0x14a1: 0x98e1, 0x14a2: 0x9919, 0x14a3: 0x9919,
+       0x14a4: 0x9951, 0x14a5: 0x9951, 0x14a6: 0x9989, 0x14a7: 0x99c1, 0x14a8: 0x99c1, 0x14a9: 0x99f9,
+       0x14aa: 0x9a31, 0x14ab: 0x9a31, 0x14ac: 0x9a69, 0x14ad: 0x9a69, 0x14ae: 0x9aa1, 0x14af: 0x9ad9,
+       0x14b0: 0x9ad9, 0x14b1: 0x9b11, 0x14b2: 0x9b11, 0x14b3: 0x9b49, 0x14b4: 0x9b81, 0x14b5: 0x9bb9,
+       0x14b6: 0x9bf1, 0x14b7: 0x9bf1, 0x14b8: 0x9c29, 0x14b9: 0x9c61, 0x14ba: 0x9c99, 0x14bb: 0x9cd1,
+       0x14bc: 0x9d09, 0x14bd: 0x9d09, 0x14be: 0x9d41, 0x14bf: 0x9d79,
+       // Block 0x53, offset 0x14c0
+       0x14c0: 0xa949, 0x14c1: 0xa981, 0x14c2: 0xa9b9, 0x14c3: 0xa8a1, 0x14c4: 0x9bb9, 0x14c5: 0x9989,
+       0x14c6: 0xa9f1, 0x14c7: 0xaa29, 0x14c8: 0x0040, 0x14c9: 0x0040, 0x14ca: 0x0040, 0x14cb: 0x0040,
+       0x14cc: 0x0040, 0x14cd: 0x0040, 0x14ce: 0x0040, 0x14cf: 0x0040, 0x14d0: 0x0040, 0x14d1: 0x0040,
+       0x14d2: 0x0040, 0x14d3: 0x0040, 0x14d4: 0x0040, 0x14d5: 0x0040, 0x14d6: 0x0040, 0x14d7: 0x0040,
+       0x14d8: 0x0040, 0x14d9: 0x0040, 0x14da: 0x0040, 0x14db: 0x0040, 0x14dc: 0x0040, 0x14dd: 0x0040,
+       0x14de: 0x0040, 0x14df: 0x0040, 0x14e0: 0x0040, 0x14e1: 0x0040, 0x14e2: 0x0040, 0x14e3: 0x0040,
+       0x14e4: 0x0040, 0x14e5: 0x0040, 0x14e6: 0x0040, 0x14e7: 0x0040, 0x14e8: 0x0040, 0x14e9: 0x0040,
+       0x14ea: 0x0040, 0x14eb: 0x0040, 0x14ec: 0x0040, 0x14ed: 0x0040, 0x14ee: 0x0040, 0x14ef: 0x0040,
+       0x14f0: 0xaa61, 0x14f1: 0xaa99, 0x14f2: 0xaad1, 0x14f3: 0xab19, 0x14f4: 0xab61, 0x14f5: 0xaba9,
+       0x14f6: 0xabf1, 0x14f7: 0xac39, 0x14f8: 0xac81, 0x14f9: 0xacc9, 0x14fa: 0xad02, 0x14fb: 0xae12,
+       0x14fc: 0xae91, 0x14fd: 0x0018, 0x14fe: 0x0040, 0x14ff: 0x0040,
+       // Block 0x54, offset 0x1500
+       0x1500: 0x33c0, 0x1501: 0x33c0, 0x1502: 0x33c0, 0x1503: 0x33c0, 0x1504: 0x33c0, 0x1505: 0x33c0,
+       0x1506: 0x33c0, 0x1507: 0x33c0, 0x1508: 0x33c0, 0x1509: 0x33c0, 0x150a: 0x33c0, 0x150b: 0x33c0,
+       0x150c: 0x33c0, 0x150d: 0x33c0, 0x150e: 0x33c0, 0x150f: 0x33c0, 0x1510: 0xaeda, 0x1511: 0x7d55,
+       0x1512: 0x0040, 0x1513: 0xaeea, 0x1514: 0x03c2, 0x1515: 0xaefa, 0x1516: 0xaf0a, 0x1517: 0x7d75,
+       0x1518: 0x7d95, 0x1519: 0x0040, 0x151a: 0x0040, 0x151b: 0x0040, 0x151c: 0x0040, 0x151d: 0x0040,
+       0x151e: 0x0040, 0x151f: 0x0040, 0x1520: 0x3308, 0x1521: 0x3308, 0x1522: 0x3308, 0x1523: 0x3308,
+       0x1524: 0x3308, 0x1525: 0x3308, 0x1526: 0x3308, 0x1527: 0x3308, 0x1528: 0x3308, 0x1529: 0x3308,
+       0x152a: 0x3308, 0x152b: 0x3308, 0x152c: 0x3308, 0x152d: 0x3308, 0x152e: 0x3308, 0x152f: 0x3308,
+       0x1530: 0x0040, 0x1531: 0x7db5, 0x1532: 0x7dd5, 0x1533: 0xaf1a, 0x1534: 0xaf1a, 0x1535: 0x1fd2,
+       0x1536: 0x1fe2, 0x1537: 0xaf2a, 0x1538: 0xaf3a, 0x1539: 0x7df5, 0x153a: 0x7e15, 0x153b: 0x7e35,
+       0x153c: 0x7df5, 0x153d: 0x7e55, 0x153e: 0x7e75, 0x153f: 0x7e55,
+       // Block 0x55, offset 0x1540
+       0x1540: 0x7e95, 0x1541: 0x7eb5, 0x1542: 0x7ed5, 0x1543: 0x7eb5, 0x1544: 0x7ef5, 0x1545: 0x0018,
+       0x1546: 0x0018, 0x1547: 0xaf4a, 0x1548: 0xaf5a, 0x1549: 0x7f16, 0x154a: 0x7f36, 0x154b: 0x7f56,
+       0x154c: 0x7f76, 0x154d: 0xaf1a, 0x154e: 0xaf1a, 0x154f: 0xaf1a, 0x1550: 0xaeda, 0x1551: 0x7f95,
+       0x1552: 0x0040, 0x1553: 0x0040, 0x1554: 0x03c2, 0x1555: 0xaeea, 0x1556: 0xaf0a, 0x1557: 0xaefa,
+       0x1558: 0x7fb5, 0x1559: 0x1fd2, 0x155a: 0x1fe2, 0x155b: 0xaf2a, 0x155c: 0xaf3a, 0x155d: 0x7e95,
+       0x155e: 0x7ef5, 0x155f: 0xaf6a, 0x1560: 0xaf7a, 0x1561: 0xaf8a, 0x1562: 0x1fb2, 0x1563: 0xaf99,
+       0x1564: 0xafaa, 0x1565: 0xafba, 0x1566: 0x1fc2, 0x1567: 0x0040, 0x1568: 0xafca, 0x1569: 0xafda,
+       0x156a: 0xafea, 0x156b: 0xaffa, 0x156c: 0x0040, 0x156d: 0x0040, 0x156e: 0x0040, 0x156f: 0x0040,
+       0x1570: 0x7fd6, 0x1571: 0xb009, 0x1572: 0x7ff6, 0x1573: 0x0808, 0x1574: 0x8016, 0x1575: 0x0040,
+       0x1576: 0x8036, 0x1577: 0xb031, 0x1578: 0x8056, 0x1579: 0xb059, 0x157a: 0x8076, 0x157b: 0xb081,
+       0x157c: 0x8096, 0x157d: 0xb0a9, 0x157e: 0x80b6, 0x157f: 0xb0d1,
+       // Block 0x56, offset 0x1580
+       0x1580: 0xb0f9, 0x1581: 0xb111, 0x1582: 0xb111, 0x1583: 0xb129, 0x1584: 0xb129, 0x1585: 0xb141,
+       0x1586: 0xb141, 0x1587: 0xb159, 0x1588: 0xb159, 0x1589: 0xb171, 0x158a: 0xb171, 0x158b: 0xb171,
+       0x158c: 0xb171, 0x158d: 0xb189, 0x158e: 0xb189, 0x158f: 0xb1a1, 0x1590: 0xb1a1, 0x1591: 0xb1a1,
+       0x1592: 0xb1a1, 0x1593: 0xb1b9, 0x1594: 0xb1b9, 0x1595: 0xb1d1, 0x1596: 0xb1d1, 0x1597: 0xb1d1,
+       0x1598: 0xb1d1, 0x1599: 0xb1e9, 0x159a: 0xb1e9, 0x159b: 0xb1e9, 0x159c: 0xb1e9, 0x159d: 0xb201,
+       0x159e: 0xb201, 0x159f: 0xb201, 0x15a0: 0xb201, 0x15a1: 0xb219, 0x15a2: 0xb219, 0x15a3: 0xb219,
+       0x15a4: 0xb219, 0x15a5: 0xb231, 0x15a6: 0xb231, 0x15a7: 0xb231, 0x15a8: 0xb231, 0x15a9: 0xb249,
+       0x15aa: 0xb249, 0x15ab: 0xb261, 0x15ac: 0xb261, 0x15ad: 0xb279, 0x15ae: 0xb279, 0x15af: 0xb291,
+       0x15b0: 0xb291, 0x15b1: 0xb2a9, 0x15b2: 0xb2a9, 0x15b3: 0xb2a9, 0x15b4: 0xb2a9, 0x15b5: 0xb2c1,
+       0x15b6: 0xb2c1, 0x15b7: 0xb2c1, 0x15b8: 0xb2c1, 0x15b9: 0xb2d9, 0x15ba: 0xb2d9, 0x15bb: 0xb2d9,
+       0x15bc: 0xb2d9, 0x15bd: 0xb2f1, 0x15be: 0xb2f1, 0x15bf: 0xb2f1,
+       // Block 0x57, offset 0x15c0
+       0x15c0: 0xb2f1, 0x15c1: 0xb309, 0x15c2: 0xb309, 0x15c3: 0xb309, 0x15c4: 0xb309, 0x15c5: 0xb321,
+       0x15c6: 0xb321, 0x15c7: 0xb321, 0x15c8: 0xb321, 0x15c9: 0xb339, 0x15ca: 0xb339, 0x15cb: 0xb339,
+       0x15cc: 0xb339, 0x15cd: 0xb351, 0x15ce: 0xb351, 0x15cf: 0xb351, 0x15d0: 0xb351, 0x15d1: 0xb369,
+       0x15d2: 0xb369, 0x15d3: 0xb369, 0x15d4: 0xb369, 0x15d5: 0xb381, 0x15d6: 0xb381, 0x15d7: 0xb381,
+       0x15d8: 0xb381, 0x15d9: 0xb399, 0x15da: 0xb399, 0x15db: 0xb399, 0x15dc: 0xb399, 0x15dd: 0xb3b1,
+       0x15de: 0xb3b1, 0x15df: 0xb3b1, 0x15e0: 0xb3b1, 0x15e1: 0xb3c9, 0x15e2: 0xb3c9, 0x15e3: 0xb3c9,
+       0x15e4: 0xb3c9, 0x15e5: 0xb3e1, 0x15e6: 0xb3e1, 0x15e7: 0xb3e1, 0x15e8: 0xb3e1, 0x15e9: 0xb3f9,
+       0x15ea: 0xb3f9, 0x15eb: 0xb3f9, 0x15ec: 0xb3f9, 0x15ed: 0xb411, 0x15ee: 0xb411, 0x15ef: 0x7ab1,
+       0x15f0: 0x7ab1, 0x15f1: 0xb429, 0x15f2: 0xb429, 0x15f3: 0xb429, 0x15f4: 0xb429, 0x15f5: 0xb441,
+       0x15f6: 0xb441, 0x15f7: 0xb469, 0x15f8: 0xb469, 0x15f9: 0xb491, 0x15fa: 0xb491, 0x15fb: 0xb4b9,
+       0x15fc: 0xb4b9, 0x15fd: 0x0040, 0x15fe: 0x0040, 0x15ff: 0x03c0,
+       // Block 0x58, offset 0x1600
+       0x1600: 0x0040, 0x1601: 0xaefa, 0x1602: 0xb4e2, 0x1603: 0xaf6a, 0x1604: 0xafda, 0x1605: 0xafea,
+       0x1606: 0xaf7a, 0x1607: 0xb4f2, 0x1608: 0x1fd2, 0x1609: 0x1fe2, 0x160a: 0xaf8a, 0x160b: 0x1fb2,
+       0x160c: 0xaeda, 0x160d: 0xaf99, 0x160e: 0x29d1, 0x160f: 0xb502, 0x1610: 0x1f41, 0x1611: 0x00c9,
+       0x1612: 0x0069, 0x1613: 0x0079, 0x1614: 0x1f51, 0x1615: 0x1f61, 0x1616: 0x1f71, 0x1617: 0x1f81,
+       0x1618: 0x1f91, 0x1619: 0x1fa1, 0x161a: 0xaeea, 0x161b: 0x03c2, 0x161c: 0xafaa, 0x161d: 0x1fc2,
+       0x161e: 0xafba, 0x161f: 0xaf0a, 0x1620: 0xaffa, 0x1621: 0x0039, 0x1622: 0x0ee9, 0x1623: 0x1159,
+       0x1624: 0x0ef9, 0x1625: 0x0f09, 0x1626: 0x1199, 0x1627: 0x0f31, 0x1628: 0x0249, 0x1629: 0x0f41,
+       0x162a: 0x0259, 0x162b: 0x0f51, 0x162c: 0x0359, 0x162d: 0x0f61, 0x162e: 0x0f71, 0x162f: 0x00d9,
+       0x1630: 0x0f99, 0x1631: 0x2039, 0x1632: 0x0269, 0x1633: 0x01d9, 0x1634: 0x0fa9, 0x1635: 0x0fb9,
+       0x1636: 0x1089, 0x1637: 0x0279, 0x1638: 0x0369, 0x1639: 0x0289, 0x163a: 0x13d1, 0x163b: 0xaf4a,
+       0x163c: 0xafca, 0x163d: 0xaf5a, 0x163e: 0xb512, 0x163f: 0xaf1a,
+       // Block 0x59, offset 0x1640
+       0x1640: 0x1caa, 0x1641: 0x0039, 0x1642: 0x0ee9, 0x1643: 0x1159, 0x1644: 0x0ef9, 0x1645: 0x0f09,
+       0x1646: 0x1199, 0x1647: 0x0f31, 0x1648: 0x0249, 0x1649: 0x0f41, 0x164a: 0x0259, 0x164b: 0x0f51,
+       0x164c: 0x0359, 0x164d: 0x0f61, 0x164e: 0x0f71, 0x164f: 0x00d9, 0x1650: 0x0f99, 0x1651: 0x2039,
+       0x1652: 0x0269, 0x1653: 0x01d9, 0x1654: 0x0fa9, 0x1655: 0x0fb9, 0x1656: 0x1089, 0x1657: 0x0279,
+       0x1658: 0x0369, 0x1659: 0x0289, 0x165a: 0x13d1, 0x165b: 0xaf2a, 0x165c: 0xb522, 0x165d: 0xaf3a,
+       0x165e: 0xb532, 0x165f: 0x80d5, 0x1660: 0x80f5, 0x1661: 0x29d1, 0x1662: 0x8115, 0x1663: 0x8115,
+       0x1664: 0x8135, 0x1665: 0x8155, 0x1666: 0x8175, 0x1667: 0x8195, 0x1668: 0x81b5, 0x1669: 0x81d5,
+       0x166a: 0x81f5, 0x166b: 0x8215, 0x166c: 0x8235, 0x166d: 0x8255, 0x166e: 0x8275, 0x166f: 0x8295,
+       0x1670: 0x82b5, 0x1671: 0x82d5, 0x1672: 0x82f5, 0x1673: 0x8315, 0x1674: 0x8335, 0x1675: 0x8355,
+       0x1676: 0x8375, 0x1677: 0x8395, 0x1678: 0x83b5, 0x1679: 0x83d5, 0x167a: 0x83f5, 0x167b: 0x8415,
+       0x167c: 0x81b5, 0x167d: 0x8435, 0x167e: 0x8455, 0x167f: 0x8215,
+       // Block 0x5a, offset 0x1680
+       0x1680: 0x8475, 0x1681: 0x8495, 0x1682: 0x84b5, 0x1683: 0x84d5, 0x1684: 0x84f5, 0x1685: 0x8515,
+       0x1686: 0x8535, 0x1687: 0x8555, 0x1688: 0x84d5, 0x1689: 0x8575, 0x168a: 0x84d5, 0x168b: 0x8595,
+       0x168c: 0x8595, 0x168d: 0x85b5, 0x168e: 0x85b5, 0x168f: 0x85d5, 0x1690: 0x8515, 0x1691: 0x85f5,
+       0x1692: 0x8615, 0x1693: 0x85f5, 0x1694: 0x8635, 0x1695: 0x8615, 0x1696: 0x8655, 0x1697: 0x8655,
+       0x1698: 0x8675, 0x1699: 0x8675, 0x169a: 0x8695, 0x169b: 0x8695, 0x169c: 0x8615, 0x169d: 0x8115,
+       0x169e: 0x86b5, 0x169f: 0x86d5, 0x16a0: 0x0040, 0x16a1: 0x86f5, 0x16a2: 0x8715, 0x16a3: 0x8735,
+       0x16a4: 0x8755, 0x16a5: 0x8735, 0x16a6: 0x8775, 0x16a7: 0x8795, 0x16a8: 0x87b5, 0x16a9: 0x87b5,
+       0x16aa: 0x87d5, 0x16ab: 0x87d5, 0x16ac: 0x87f5, 0x16ad: 0x87f5, 0x16ae: 0x87d5, 0x16af: 0x87d5,
+       0x16b0: 0x8815, 0x16b1: 0x8835, 0x16b2: 0x8855, 0x16b3: 0x8875, 0x16b4: 0x8895, 0x16b5: 0x88b5,
+       0x16b6: 0x88b5, 0x16b7: 0x88b5, 0x16b8: 0x88d5, 0x16b9: 0x88d5, 0x16ba: 0x88d5, 0x16bb: 0x88d5,
+       0x16bc: 0x87b5, 0x16bd: 0x87b5, 0x16be: 0x87b5, 0x16bf: 0x0040,
+       // Block 0x5b, offset 0x16c0
+       0x16c0: 0x0040, 0x16c1: 0x0040, 0x16c2: 0x8715, 0x16c3: 0x86f5, 0x16c4: 0x88f5, 0x16c5: 0x86f5,
+       0x16c6: 0x8715, 0x16c7: 0x86f5, 0x16c8: 0x0040, 0x16c9: 0x0040, 0x16ca: 0x8915, 0x16cb: 0x8715,
+       0x16cc: 0x8935, 0x16cd: 0x88f5, 0x16ce: 0x8935, 0x16cf: 0x8715, 0x16d0: 0x0040, 0x16d1: 0x0040,
+       0x16d2: 0x8955, 0x16d3: 0x8975, 0x16d4: 0x8875, 0x16d5: 0x8935, 0x16d6: 0x88f5, 0x16d7: 0x8935,
+       0x16d8: 0x0040, 0x16d9: 0x0040, 0x16da: 0x8995, 0x16db: 0x89b5, 0x16dc: 0x8995, 0x16dd: 0x0040,
+       0x16de: 0x0040, 0x16df: 0x0040, 0x16e0: 0xb541, 0x16e1: 0xb559, 0x16e2: 0xb571, 0x16e3: 0x89d6,
+       0x16e4: 0xb589, 0x16e5: 0xb5a1, 0x16e6: 0x89f5, 0x16e7: 0x0040, 0x16e8: 0x8a15, 0x16e9: 0x8a35,
+       0x16ea: 0x8a55, 0x16eb: 0x8a35, 0x16ec: 0x8a75, 0x16ed: 0x8a95, 0x16ee: 0x8ab5, 0x16ef: 0x0040,
+       0x16f0: 0x0040, 0x16f1: 0x0040, 0x16f2: 0x0040, 0x16f3: 0x0040, 0x16f4: 0x0040, 0x16f5: 0x0040,
+       0x16f6: 0x0040, 0x16f7: 0x0040, 0x16f8: 0x0040, 0x16f9: 0x0340, 0x16fa: 0x0340, 0x16fb: 0x0340,
+       0x16fc: 0x0040, 0x16fd: 0x0040, 0x16fe: 0x0040, 0x16ff: 0x0040,
+       // Block 0x5c, offset 0x1700
+       0x1700: 0x0a08, 0x1701: 0x0a08, 0x1702: 0x0a08, 0x1703: 0x0a08, 0x1704: 0x0a08, 0x1705: 0x0c08,
+       0x1706: 0x0808, 0x1707: 0x0c08, 0x1708: 0x0818, 0x1709: 0x0c08, 0x170a: 0x0c08, 0x170b: 0x0808,
+       0x170c: 0x0808, 0x170d: 0x0908, 0x170e: 0x0c08, 0x170f: 0x0c08, 0x1710: 0x0c08, 0x1711: 0x0c08,
+       0x1712: 0x0c08, 0x1713: 0x0a08, 0x1714: 0x0a08, 0x1715: 0x0a08, 0x1716: 0x0a08, 0x1717: 0x0908,
+       0x1718: 0x0a08, 0x1719: 0x0a08, 0x171a: 0x0a08, 0x171b: 0x0a08, 0x171c: 0x0a08, 0x171d: 0x0c08,
+       0x171e: 0x0a08, 0x171f: 0x0a08, 0x1720: 0x0a08, 0x1721: 0x0c08, 0x1722: 0x0808, 0x1723: 0x0808,
+       0x1724: 0x0c08, 0x1725: 0x3308, 0x1726: 0x3308, 0x1727: 0x0040, 0x1728: 0x0040, 0x1729: 0x0040,
+       0x172a: 0x0040, 0x172b: 0x0a18, 0x172c: 0x0a18, 0x172d: 0x0a18, 0x172e: 0x0a18, 0x172f: 0x0c18,
+       0x1730: 0x0818, 0x1731: 0x0818, 0x1732: 0x0818, 0x1733: 0x0818, 0x1734: 0x0818, 0x1735: 0x0818,
+       0x1736: 0x0818, 0x1737: 0x0040, 0x1738: 0x0040, 0x1739: 0x0040, 0x173a: 0x0040, 0x173b: 0x0040,
+       0x173c: 0x0040, 0x173d: 0x0040, 0x173e: 0x0040, 0x173f: 0x0040,
+       // Block 0x5d, offset 0x1740
+       0x1740: 0x0a08, 0x1741: 0x0c08, 0x1742: 0x0a08, 0x1743: 0x0c08, 0x1744: 0x0c08, 0x1745: 0x0c08,
+       0x1746: 0x0a08, 0x1747: 0x0a08, 0x1748: 0x0a08, 0x1749: 0x0c08, 0x174a: 0x0a08, 0x174b: 0x0a08,
+       0x174c: 0x0c08, 0x174d: 0x0a08, 0x174e: 0x0c08, 0x174f: 0x0c08, 0x1750: 0x0a08, 0x1751: 0x0c08,
+       0x1752: 0x0040, 0x1753: 0x0040, 0x1754: 0x0040, 0x1755: 0x0040, 0x1756: 0x0040, 0x1757: 0x0040,
+       0x1758: 0x0040, 0x1759: 0x0818, 0x175a: 0x0818, 0x175b: 0x0818, 0x175c: 0x0818, 0x175d: 0x0040,
+       0x175e: 0x0040, 0x175f: 0x0040, 0x1760: 0x0040, 0x1761: 0x0040, 0x1762: 0x0040, 0x1763: 0x0040,
+       0x1764: 0x0040, 0x1765: 0x0040, 0x1766: 0x0040, 0x1767: 0x0040, 0x1768: 0x0040, 0x1769: 0x0c18,
+       0x176a: 0x0c18, 0x176b: 0x0c18, 0x176c: 0x0c18, 0x176d: 0x0a18, 0x176e: 0x0a18, 0x176f: 0x0818,
+       0x1770: 0x0040, 0x1771: 0x0040, 0x1772: 0x0040, 0x1773: 0x0040, 0x1774: 0x0040, 0x1775: 0x0040,
+       0x1776: 0x0040, 0x1777: 0x0040, 0x1778: 0x0040, 0x1779: 0x0040, 0x177a: 0x0040, 0x177b: 0x0040,
+       0x177c: 0x0040, 0x177d: 0x0040, 0x177e: 0x0040, 0x177f: 0x0040,
+       // Block 0x5e, offset 0x1780
+       0x1780: 0x3308, 0x1781: 0x3308, 0x1782: 0x3008, 0x1783: 0x3008, 0x1784: 0x0040, 0x1785: 0x0008,
+       0x1786: 0x0008, 0x1787: 0x0008, 0x1788: 0x0008, 0x1789: 0x0008, 0x178a: 0x0008, 0x178b: 0x0008,
+       0x178c: 0x0008, 0x178d: 0x0040, 0x178e: 0x0040, 0x178f: 0x0008, 0x1790: 0x0008, 0x1791: 0x0040,
+       0x1792: 0x0040, 0x1793: 0x0008, 0x1794: 0x0008, 0x1795: 0x0008, 0x1796: 0x0008, 0x1797: 0x0008,
+       0x1798: 0x0008, 0x1799: 0x0008, 0x179a: 0x0008, 0x179b: 0x0008, 0x179c: 0x0008, 0x179d: 0x0008,
+       0x179e: 0x0008, 0x179f: 0x0008, 0x17a0: 0x0008, 0x17a1: 0x0008, 0x17a2: 0x0008, 0x17a3: 0x0008,
+       0x17a4: 0x0008, 0x17a5: 0x0008, 0x17a6: 0x0008, 0x17a7: 0x0008, 0x17a8: 0x0008, 0x17a9: 0x0040,
+       0x17aa: 0x0008, 0x17ab: 0x0008, 0x17ac: 0x0008, 0x17ad: 0x0008, 0x17ae: 0x0008, 0x17af: 0x0008,
+       0x17b0: 0x0008, 0x17b1: 0x0040, 0x17b2: 0x0008, 0x17b3: 0x0008, 0x17b4: 0x0040, 0x17b5: 0x0008,
+       0x17b6: 0x0008, 0x17b7: 0x0008, 0x17b8: 0x0008, 0x17b9: 0x0008, 0x17ba: 0x0040, 0x17bb: 0x0040,
+       0x17bc: 0x3308, 0x17bd: 0x0008, 0x17be: 0x3008, 0x17bf: 0x3008,
+       // Block 0x5f, offset 0x17c0
+       0x17c0: 0x3308, 0x17c1: 0x3008, 0x17c2: 0x3008, 0x17c3: 0x3008, 0x17c4: 0x3008, 0x17c5: 0x0040,
+       0x17c6: 0x0040, 0x17c7: 0x3008, 0x17c8: 0x3008, 0x17c9: 0x0040, 0x17ca: 0x0040, 0x17cb: 0x3008,
+       0x17cc: 0x3008, 0x17cd: 0x3808, 0x17ce: 0x0040, 0x17cf: 0x0040, 0x17d0: 0x0008, 0x17d1: 0x0040,
+       0x17d2: 0x0040, 0x17d3: 0x0040, 0x17d4: 0x0040, 0x17d5: 0x0040, 0x17d6: 0x0040, 0x17d7: 0x3008,
+       0x17d8: 0x0040, 0x17d9: 0x0040, 0x17da: 0x0040, 0x17db: 0x0040, 0x17dc: 0x0040, 0x17dd: 0x0008,
+       0x17de: 0x0008, 0x17df: 0x0008, 0x17e0: 0x0008, 0x17e1: 0x0008, 0x17e2: 0x3008, 0x17e3: 0x3008,
+       0x17e4: 0x0040, 0x17e5: 0x0040, 0x17e6: 0x3308, 0x17e7: 0x3308, 0x17e8: 0x3308, 0x17e9: 0x3308,
+       0x17ea: 0x3308, 0x17eb: 0x3308, 0x17ec: 0x3308, 0x17ed: 0x0040, 0x17ee: 0x0040, 0x17ef: 0x0040,
+       0x17f0: 0x3308, 0x17f1: 0x3308, 0x17f2: 0x3308, 0x17f3: 0x3308, 0x17f4: 0x3308, 0x17f5: 0x0040,
+       0x17f6: 0x0040, 0x17f7: 0x0040, 0x17f8: 0x0040, 0x17f9: 0x0040, 0x17fa: 0x0040, 0x17fb: 0x0040,
+       0x17fc: 0x0040, 0x17fd: 0x0040, 0x17fe: 0x0040, 0x17ff: 0x0040,
+       // Block 0x60, offset 0x1800
+       0x1800: 0x0039, 0x1801: 0x0ee9, 0x1802: 0x1159, 0x1803: 0x0ef9, 0x1804: 0x0f09, 0x1805: 0x1199,
+       0x1806: 0x0f31, 0x1807: 0x0249, 0x1808: 0x0f41, 0x1809: 0x0259, 0x180a: 0x0f51, 0x180b: 0x0359,
+       0x180c: 0x0f61, 0x180d: 0x0f71, 0x180e: 0x00d9, 0x180f: 0x0f99, 0x1810: 0x2039, 0x1811: 0x0269,
+       0x1812: 0x01d9, 0x1813: 0x0fa9, 0x1814: 0x0fb9, 0x1815: 0x1089, 0x1816: 0x0279, 0x1817: 0x0369,
+       0x1818: 0x0289, 0x1819: 0x13d1, 0x181a: 0x0039, 0x181b: 0x0ee9, 0x181c: 0x1159, 0x181d: 0x0ef9,
+       0x181e: 0x0f09, 0x181f: 0x1199, 0x1820: 0x0f31, 0x1821: 0x0249, 0x1822: 0x0f41, 0x1823: 0x0259,
+       0x1824: 0x0f51, 0x1825: 0x0359, 0x1826: 0x0f61, 0x1827: 0x0f71, 0x1828: 0x00d9, 0x1829: 0x0f99,
+       0x182a: 0x2039, 0x182b: 0x0269, 0x182c: 0x01d9, 0x182d: 0x0fa9, 0x182e: 0x0fb9, 0x182f: 0x1089,
+       0x1830: 0x0279, 0x1831: 0x0369, 0x1832: 0x0289, 0x1833: 0x13d1, 0x1834: 0x0039, 0x1835: 0x0ee9,
+       0x1836: 0x1159, 0x1837: 0x0ef9, 0x1838: 0x0f09, 0x1839: 0x1199, 0x183a: 0x0f31, 0x183b: 0x0249,
+       0x183c: 0x0f41, 0x183d: 0x0259, 0x183e: 0x0f51, 0x183f: 0x0359,
+       // Block 0x61, offset 0x1840
+       0x1840: 0x0f61, 0x1841: 0x0f71, 0x1842: 0x00d9, 0x1843: 0x0f99, 0x1844: 0x2039, 0x1845: 0x0269,
+       0x1846: 0x01d9, 0x1847: 0x0fa9, 0x1848: 0x0fb9, 0x1849: 0x1089, 0x184a: 0x0279, 0x184b: 0x0369,
+       0x184c: 0x0289, 0x184d: 0x13d1, 0x184e: 0x0039, 0x184f: 0x0ee9, 0x1850: 0x1159, 0x1851: 0x0ef9,
+       0x1852: 0x0f09, 0x1853: 0x1199, 0x1854: 0x0f31, 0x1855: 0x0040, 0x1856: 0x0f41, 0x1857: 0x0259,
+       0x1858: 0x0f51, 0x1859: 0x0359, 0x185a: 0x0f61, 0x185b: 0x0f71, 0x185c: 0x00d9, 0x185d: 0x0f99,
+       0x185e: 0x2039, 0x185f: 0x0269, 0x1860: 0x01d9, 0x1861: 0x0fa9, 0x1862: 0x0fb9, 0x1863: 0x1089,
+       0x1864: 0x0279, 0x1865: 0x0369, 0x1866: 0x0289, 0x1867: 0x13d1, 0x1868: 0x0039, 0x1869: 0x0ee9,
+       0x186a: 0x1159, 0x186b: 0x0ef9, 0x186c: 0x0f09, 0x186d: 0x1199, 0x186e: 0x0f31, 0x186f: 0x0249,
+       0x1870: 0x0f41, 0x1871: 0x0259, 0x1872: 0x0f51, 0x1873: 0x0359, 0x1874: 0x0f61, 0x1875: 0x0f71,
+       0x1876: 0x00d9, 0x1877: 0x0f99, 0x1878: 0x2039, 0x1879: 0x0269, 0x187a: 0x01d9, 0x187b: 0x0fa9,
+       0x187c: 0x0fb9, 0x187d: 0x1089, 0x187e: 0x0279, 0x187f: 0x0369,
+       // Block 0x62, offset 0x1880
+       0x1880: 0x0289, 0x1881: 0x13d1, 0x1882: 0x0039, 0x1883: 0x0ee9, 0x1884: 0x1159, 0x1885: 0x0ef9,
+       0x1886: 0x0f09, 0x1887: 0x1199, 0x1888: 0x0f31, 0x1889: 0x0249, 0x188a: 0x0f41, 0x188b: 0x0259,
+       0x188c: 0x0f51, 0x188d: 0x0359, 0x188e: 0x0f61, 0x188f: 0x0f71, 0x1890: 0x00d9, 0x1891: 0x0f99,
+       0x1892: 0x2039, 0x1893: 0x0269, 0x1894: 0x01d9, 0x1895: 0x0fa9, 0x1896: 0x0fb9, 0x1897: 0x1089,
+       0x1898: 0x0279, 0x1899: 0x0369, 0x189a: 0x0289, 0x189b: 0x13d1, 0x189c: 0x0039, 0x189d: 0x0040,
+       0x189e: 0x1159, 0x189f: 0x0ef9, 0x18a0: 0x0040, 0x18a1: 0x0040, 0x18a2: 0x0f31, 0x18a3: 0x0040,
+       0x18a4: 0x0040, 0x18a5: 0x0259, 0x18a6: 0x0f51, 0x18a7: 0x0040, 0x18a8: 0x0040, 0x18a9: 0x0f71,
+       0x18aa: 0x00d9, 0x18ab: 0x0f99, 0x18ac: 0x2039, 0x18ad: 0x0040, 0x18ae: 0x01d9, 0x18af: 0x0fa9,
+       0x18b0: 0x0fb9, 0x18b1: 0x1089, 0x18b2: 0x0279, 0x18b3: 0x0369, 0x18b4: 0x0289, 0x18b5: 0x13d1,
+       0x18b6: 0x0039, 0x18b7: 0x0ee9, 0x18b8: 0x1159, 0x18b9: 0x0ef9, 0x18ba: 0x0040, 0x18bb: 0x1199,
+       0x18bc: 0x0040, 0x18bd: 0x0249, 0x18be: 0x0f41, 0x18bf: 0x0259,
+       // Block 0x63, offset 0x18c0
+       0x18c0: 0x0f51, 0x18c1: 0x0359, 0x18c2: 0x0f61, 0x18c3: 0x0f71, 0x18c4: 0x0040, 0x18c5: 0x0f99,
+       0x18c6: 0x2039, 0x18c7: 0x0269, 0x18c8: 0x01d9, 0x18c9: 0x0fa9, 0x18ca: 0x0fb9, 0x18cb: 0x1089,
+       0x18cc: 0x0279, 0x18cd: 0x0369, 0x18ce: 0x0289, 0x18cf: 0x13d1, 0x18d0: 0x0039, 0x18d1: 0x0ee9,
+       0x18d2: 0x1159, 0x18d3: 0x0ef9, 0x18d4: 0x0f09, 0x18d5: 0x1199, 0x18d6: 0x0f31, 0x18d7: 0x0249,
+       0x18d8: 0x0f41, 0x18d9: 0x0259, 0x18da: 0x0f51, 0x18db: 0x0359, 0x18dc: 0x0f61, 0x18dd: 0x0f71,
+       0x18de: 0x00d9, 0x18df: 0x0f99, 0x18e0: 0x2039, 0x18e1: 0x0269, 0x18e2: 0x01d9, 0x18e3: 0x0fa9,
+       0x18e4: 0x0fb9, 0x18e5: 0x1089, 0x18e6: 0x0279, 0x18e7: 0x0369, 0x18e8: 0x0289, 0x18e9: 0x13d1,
+       0x18ea: 0x0039, 0x18eb: 0x0ee9, 0x18ec: 0x1159, 0x18ed: 0x0ef9, 0x18ee: 0x0f09, 0x18ef: 0x1199,
+       0x18f0: 0x0f31, 0x18f1: 0x0249, 0x18f2: 0x0f41, 0x18f3: 0x0259, 0x18f4: 0x0f51, 0x18f5: 0x0359,
+       0x18f6: 0x0f61, 0x18f7: 0x0f71, 0x18f8: 0x00d9, 0x18f9: 0x0f99, 0x18fa: 0x2039, 0x18fb: 0x0269,
+       0x18fc: 0x01d9, 0x18fd: 0x0fa9, 0x18fe: 0x0fb9, 0x18ff: 0x1089,
+       // Block 0x64, offset 0x1900
+       0x1900: 0x0279, 0x1901: 0x0369, 0x1902: 0x0289, 0x1903: 0x13d1, 0x1904: 0x0039, 0x1905: 0x0ee9,
+       0x1906: 0x0040, 0x1907: 0x0ef9, 0x1908: 0x0f09, 0x1909: 0x1199, 0x190a: 0x0f31, 0x190b: 0x0040,
+       0x190c: 0x0040, 0x190d: 0x0259, 0x190e: 0x0f51, 0x190f: 0x0359, 0x1910: 0x0f61, 0x1911: 0x0f71,
+       0x1912: 0x00d9, 0x1913: 0x0f99, 0x1914: 0x2039, 0x1915: 0x0040, 0x1916: 0x01d9, 0x1917: 0x0fa9,
+       0x1918: 0x0fb9, 0x1919: 0x1089, 0x191a: 0x0279, 0x191b: 0x0369, 0x191c: 0x0289, 0x191d: 0x0040,
+       0x191e: 0x0039, 0x191f: 0x0ee9, 0x1920: 0x1159, 0x1921: 0x0ef9, 0x1922: 0x0f09, 0x1923: 0x1199,
+       0x1924: 0x0f31, 0x1925: 0x0249, 0x1926: 0x0f41, 0x1927: 0x0259, 0x1928: 0x0f51, 0x1929: 0x0359,
+       0x192a: 0x0f61, 0x192b: 0x0f71, 0x192c: 0x00d9, 0x192d: 0x0f99, 0x192e: 0x2039, 0x192f: 0x0269,
+       0x1930: 0x01d9, 0x1931: 0x0fa9, 0x1932: 0x0fb9, 0x1933: 0x1089, 0x1934: 0x0279, 0x1935: 0x0369,
+       0x1936: 0x0289, 0x1937: 0x13d1, 0x1938: 0x0039, 0x1939: 0x0ee9, 0x193a: 0x0040, 0x193b: 0x0ef9,
+       0x193c: 0x0f09, 0x193d: 0x1199, 0x193e: 0x0f31, 0x193f: 0x0040,
+       // Block 0x65, offset 0x1940
+       0x1940: 0x0f41, 0x1941: 0x0259, 0x1942: 0x0f51, 0x1943: 0x0359, 0x1944: 0x0f61, 0x1945: 0x0040,
+       0x1946: 0x00d9, 0x1947: 0x0040, 0x1948: 0x0040, 0x1949: 0x0040, 0x194a: 0x01d9, 0x194b: 0x0fa9,
+       0x194c: 0x0fb9, 0x194d: 0x1089, 0x194e: 0x0279, 0x194f: 0x0369, 0x1950: 0x0289, 0x1951: 0x0040,
+       0x1952: 0x0039, 0x1953: 0x0ee9, 0x1954: 0x1159, 0x1955: 0x0ef9, 0x1956: 0x0f09, 0x1957: 0x1199,
+       0x1958: 0x0f31, 0x1959: 0x0249, 0x195a: 0x0f41, 0x195b: 0x0259, 0x195c: 0x0f51, 0x195d: 0x0359,
+       0x195e: 0x0f61, 0x195f: 0x0f71, 0x1960: 0x00d9, 0x1961: 0x0f99, 0x1962: 0x2039, 0x1963: 0x0269,
+       0x1964: 0x01d9, 0x1965: 0x0fa9, 0x1966: 0x0fb9, 0x1967: 0x1089, 0x1968: 0x0279, 0x1969: 0x0369,
+       0x196a: 0x0289, 0x196b: 0x13d1, 0x196c: 0x0039, 0x196d: 0x0ee9, 0x196e: 0x1159, 0x196f: 0x0ef9,
+       0x1970: 0x0f09, 0x1971: 0x1199, 0x1972: 0x0f31, 0x1973: 0x0249, 0x1974: 0x0f41, 0x1975: 0x0259,
+       0x1976: 0x0f51, 0x1977: 0x0359, 0x1978: 0x0f61, 0x1979: 0x0f71, 0x197a: 0x00d9, 0x197b: 0x0f99,
+       0x197c: 0x2039, 0x197d: 0x0269, 0x197e: 0x01d9, 0x197f: 0x0fa9,
+       // Block 0x66, offset 0x1980
+       0x1980: 0x0fb9, 0x1981: 0x1089, 0x1982: 0x0279, 0x1983: 0x0369, 0x1984: 0x0289, 0x1985: 0x13d1,
+       0x1986: 0x0039, 0x1987: 0x0ee9, 0x1988: 0x1159, 0x1989: 0x0ef9, 0x198a: 0x0f09, 0x198b: 0x1199,
+       0x198c: 0x0f31, 0x198d: 0x0249, 0x198e: 0x0f41, 0x198f: 0x0259, 0x1990: 0x0f51, 0x1991: 0x0359,
+       0x1992: 0x0f61, 0x1993: 0x0f71, 0x1994: 0x00d9, 0x1995: 0x0f99, 0x1996: 0x2039, 0x1997: 0x0269,
+       0x1998: 0x01d9, 0x1999: 0x0fa9, 0x199a: 0x0fb9, 0x199b: 0x1089, 0x199c: 0x0279, 0x199d: 0x0369,
+       0x199e: 0x0289, 0x199f: 0x13d1, 0x19a0: 0x0039, 0x19a1: 0x0ee9, 0x19a2: 0x1159, 0x19a3: 0x0ef9,
+       0x19a4: 0x0f09, 0x19a5: 0x1199, 0x19a6: 0x0f31, 0x19a7: 0x0249, 0x19a8: 0x0f41, 0x19a9: 0x0259,
+       0x19aa: 0x0f51, 0x19ab: 0x0359, 0x19ac: 0x0f61, 0x19ad: 0x0f71, 0x19ae: 0x00d9, 0x19af: 0x0f99,
+       0x19b0: 0x2039, 0x19b1: 0x0269, 0x19b2: 0x01d9, 0x19b3: 0x0fa9, 0x19b4: 0x0fb9, 0x19b5: 0x1089,
+       0x19b6: 0x0279, 0x19b7: 0x0369, 0x19b8: 0x0289, 0x19b9: 0x13d1, 0x19ba: 0x0039, 0x19bb: 0x0ee9,
+       0x19bc: 0x1159, 0x19bd: 0x0ef9, 0x19be: 0x0f09, 0x19bf: 0x1199,
+       // Block 0x67, offset 0x19c0
+       0x19c0: 0x0f31, 0x19c1: 0x0249, 0x19c2: 0x0f41, 0x19c3: 0x0259, 0x19c4: 0x0f51, 0x19c5: 0x0359,
+       0x19c6: 0x0f61, 0x19c7: 0x0f71, 0x19c8: 0x00d9, 0x19c9: 0x0f99, 0x19ca: 0x2039, 0x19cb: 0x0269,
+       0x19cc: 0x01d9, 0x19cd: 0x0fa9, 0x19ce: 0x0fb9, 0x19cf: 0x1089, 0x19d0: 0x0279, 0x19d1: 0x0369,
+       0x19d2: 0x0289, 0x19d3: 0x13d1, 0x19d4: 0x0039, 0x19d5: 0x0ee9, 0x19d6: 0x1159, 0x19d7: 0x0ef9,
+       0x19d8: 0x0f09, 0x19d9: 0x1199, 0x19da: 0x0f31, 0x19db: 0x0249, 0x19dc: 0x0f41, 0x19dd: 0x0259,
+       0x19de: 0x0f51, 0x19df: 0x0359, 0x19e0: 0x0f61, 0x19e1: 0x0f71, 0x19e2: 0x00d9, 0x19e3: 0x0f99,
+       0x19e4: 0x2039, 0x19e5: 0x0269, 0x19e6: 0x01d9, 0x19e7: 0x0fa9, 0x19e8: 0x0fb9, 0x19e9: 0x1089,
+       0x19ea: 0x0279, 0x19eb: 0x0369, 0x19ec: 0x0289, 0x19ed: 0x13d1, 0x19ee: 0x0039, 0x19ef: 0x0ee9,
+       0x19f0: 0x1159, 0x19f1: 0x0ef9, 0x19f2: 0x0f09, 0x19f3: 0x1199, 0x19f4: 0x0f31, 0x19f5: 0x0249,
+       0x19f6: 0x0f41, 0x19f7: 0x0259, 0x19f8: 0x0f51, 0x19f9: 0x0359, 0x19fa: 0x0f61, 0x19fb: 0x0f71,
+       0x19fc: 0x00d9, 0x19fd: 0x0f99, 0x19fe: 0x2039, 0x19ff: 0x0269,
+       // Block 0x68, offset 0x1a00
+       0x1a00: 0x01d9, 0x1a01: 0x0fa9, 0x1a02: 0x0fb9, 0x1a03: 0x1089, 0x1a04: 0x0279, 0x1a05: 0x0369,
+       0x1a06: 0x0289, 0x1a07: 0x13d1, 0x1a08: 0x0039, 0x1a09: 0x0ee9, 0x1a0a: 0x1159, 0x1a0b: 0x0ef9,
+       0x1a0c: 0x0f09, 0x1a0d: 0x1199, 0x1a0e: 0x0f31, 0x1a0f: 0x0249, 0x1a10: 0x0f41, 0x1a11: 0x0259,
+       0x1a12: 0x0f51, 0x1a13: 0x0359, 0x1a14: 0x0f61, 0x1a15: 0x0f71, 0x1a16: 0x00d9, 0x1a17: 0x0f99,
+       0x1a18: 0x2039, 0x1a19: 0x0269, 0x1a1a: 0x01d9, 0x1a1b: 0x0fa9, 0x1a1c: 0x0fb9, 0x1a1d: 0x1089,
+       0x1a1e: 0x0279, 0x1a1f: 0x0369, 0x1a20: 0x0289, 0x1a21: 0x13d1, 0x1a22: 0x0039, 0x1a23: 0x0ee9,
+       0x1a24: 0x1159, 0x1a25: 0x0ef9, 0x1a26: 0x0f09, 0x1a27: 0x1199, 0x1a28: 0x0f31, 0x1a29: 0x0249,
+       0x1a2a: 0x0f41, 0x1a2b: 0x0259, 0x1a2c: 0x0f51, 0x1a2d: 0x0359, 0x1a2e: 0x0f61, 0x1a2f: 0x0f71,
+       0x1a30: 0x00d9, 0x1a31: 0x0f99, 0x1a32: 0x2039, 0x1a33: 0x0269, 0x1a34: 0x01d9, 0x1a35: 0x0fa9,
+       0x1a36: 0x0fb9, 0x1a37: 0x1089, 0x1a38: 0x0279, 0x1a39: 0x0369, 0x1a3a: 0x0289, 0x1a3b: 0x13d1,
+       0x1a3c: 0x0039, 0x1a3d: 0x0ee9, 0x1a3e: 0x1159, 0x1a3f: 0x0ef9,
+       // Block 0x69, offset 0x1a40
+       0x1a40: 0x0f09, 0x1a41: 0x1199, 0x1a42: 0x0f31, 0x1a43: 0x0249, 0x1a44: 0x0f41, 0x1a45: 0x0259,
+       0x1a46: 0x0f51, 0x1a47: 0x0359, 0x1a48: 0x0f61, 0x1a49: 0x0f71, 0x1a4a: 0x00d9, 0x1a4b: 0x0f99,
+       0x1a4c: 0x2039, 0x1a4d: 0x0269, 0x1a4e: 0x01d9, 0x1a4f: 0x0fa9, 0x1a50: 0x0fb9, 0x1a51: 0x1089,
+       0x1a52: 0x0279, 0x1a53: 0x0369, 0x1a54: 0x0289, 0x1a55: 0x13d1, 0x1a56: 0x0039, 0x1a57: 0x0ee9,
+       0x1a58: 0x1159, 0x1a59: 0x0ef9, 0x1a5a: 0x0f09, 0x1a5b: 0x1199, 0x1a5c: 0x0f31, 0x1a5d: 0x0249,
+       0x1a5e: 0x0f41, 0x1a5f: 0x0259, 0x1a60: 0x0f51, 0x1a61: 0x0359, 0x1a62: 0x0f61, 0x1a63: 0x0f71,
+       0x1a64: 0x00d9, 0x1a65: 0x0f99, 0x1a66: 0x2039, 0x1a67: 0x0269, 0x1a68: 0x01d9, 0x1a69: 0x0fa9,
+       0x1a6a: 0x0fb9, 0x1a6b: 0x1089, 0x1a6c: 0x0279, 0x1a6d: 0x0369, 0x1a6e: 0x0289, 0x1a6f: 0x13d1,
+       0x1a70: 0x0039, 0x1a71: 0x0ee9, 0x1a72: 0x1159, 0x1a73: 0x0ef9, 0x1a74: 0x0f09, 0x1a75: 0x1199,
+       0x1a76: 0x0f31, 0x1a77: 0x0249, 0x1a78: 0x0f41, 0x1a79: 0x0259, 0x1a7a: 0x0f51, 0x1a7b: 0x0359,
+       0x1a7c: 0x0f61, 0x1a7d: 0x0f71, 0x1a7e: 0x00d9, 0x1a7f: 0x0f99,
+       // Block 0x6a, offset 0x1a80
+       0x1a80: 0x2039, 0x1a81: 0x0269, 0x1a82: 0x01d9, 0x1a83: 0x0fa9, 0x1a84: 0x0fb9, 0x1a85: 0x1089,
+       0x1a86: 0x0279, 0x1a87: 0x0369, 0x1a88: 0x0289, 0x1a89: 0x13d1, 0x1a8a: 0x0039, 0x1a8b: 0x0ee9,
+       0x1a8c: 0x1159, 0x1a8d: 0x0ef9, 0x1a8e: 0x0f09, 0x1a8f: 0x1199, 0x1a90: 0x0f31, 0x1a91: 0x0249,
+       0x1a92: 0x0f41, 0x1a93: 0x0259, 0x1a94: 0x0f51, 0x1a95: 0x0359, 0x1a96: 0x0f61, 0x1a97: 0x0f71,
+       0x1a98: 0x00d9, 0x1a99: 0x0f99, 0x1a9a: 0x2039, 0x1a9b: 0x0269, 0x1a9c: 0x01d9, 0x1a9d: 0x0fa9,
+       0x1a9e: 0x0fb9, 0x1a9f: 0x1089, 0x1aa0: 0x0279, 0x1aa1: 0x0369, 0x1aa2: 0x0289, 0x1aa3: 0x13d1,
+       0x1aa4: 0xba81, 0x1aa5: 0xba99, 0x1aa6: 0x0040, 0x1aa7: 0x0040, 0x1aa8: 0xbab1, 0x1aa9: 0x1099,
+       0x1aaa: 0x10b1, 0x1aab: 0x10c9, 0x1aac: 0xbac9, 0x1aad: 0xbae1, 0x1aae: 0xbaf9, 0x1aaf: 0x1429,
+       0x1ab0: 0x1a31, 0x1ab1: 0xbb11, 0x1ab2: 0xbb29, 0x1ab3: 0xbb41, 0x1ab4: 0xbb59, 0x1ab5: 0xbb71,
+       0x1ab6: 0xbb89, 0x1ab7: 0x2109, 0x1ab8: 0x1111, 0x1ab9: 0x1429, 0x1aba: 0xbba1, 0x1abb: 0xbbb9,
+       0x1abc: 0xbbd1, 0x1abd: 0x10e1, 0x1abe: 0x10f9, 0x1abf: 0xbbe9,
+       // Block 0x6b, offset 0x1ac0
+       0x1ac0: 0x2079, 0x1ac1: 0xbc01, 0x1ac2: 0xbab1, 0x1ac3: 0x1099, 0x1ac4: 0x10b1, 0x1ac5: 0x10c9,
+       0x1ac6: 0xbac9, 0x1ac7: 0xbae1, 0x1ac8: 0xbaf9, 0x1ac9: 0x1429, 0x1aca: 0x1a31, 0x1acb: 0xbb11,
+       0x1acc: 0xbb29, 0x1acd: 0xbb41, 0x1ace: 0xbb59, 0x1acf: 0xbb71, 0x1ad0: 0xbb89, 0x1ad1: 0x2109,
+       0x1ad2: 0x1111, 0x1ad3: 0xbba1, 0x1ad4: 0xbba1, 0x1ad5: 0xbbb9, 0x1ad6: 0xbbd1, 0x1ad7: 0x10e1,
+       0x1ad8: 0x10f9, 0x1ad9: 0xbbe9, 0x1ada: 0x2079, 0x1adb: 0xbc21, 0x1adc: 0xbac9, 0x1add: 0x1429,
+       0x1ade: 0xbb11, 0x1adf: 0x10e1, 0x1ae0: 0x1111, 0x1ae1: 0x2109, 0x1ae2: 0xbab1, 0x1ae3: 0x1099,
+       0x1ae4: 0x10b1, 0x1ae5: 0x10c9, 0x1ae6: 0xbac9, 0x1ae7: 0xbae1, 0x1ae8: 0xbaf9, 0x1ae9: 0x1429,
+       0x1aea: 0x1a31, 0x1aeb: 0xbb11, 0x1aec: 0xbb29, 0x1aed: 0xbb41, 0x1aee: 0xbb59, 0x1aef: 0xbb71,
+       0x1af0: 0xbb89, 0x1af1: 0x2109, 0x1af2: 0x1111, 0x1af3: 0x1429, 0x1af4: 0xbba1, 0x1af5: 0xbbb9,
+       0x1af6: 0xbbd1, 0x1af7: 0x10e1, 0x1af8: 0x10f9, 0x1af9: 0xbbe9, 0x1afa: 0x2079, 0x1afb: 0xbc01,
+       0x1afc: 0xbab1, 0x1afd: 0x1099, 0x1afe: 0x10b1, 0x1aff: 0x10c9,
+       // Block 0x6c, offset 0x1b00
+       0x1b00: 0xbac9, 0x1b01: 0xbae1, 0x1b02: 0xbaf9, 0x1b03: 0x1429, 0x1b04: 0x1a31, 0x1b05: 0xbb11,
+       0x1b06: 0xbb29, 0x1b07: 0xbb41, 0x1b08: 0xbb59, 0x1b09: 0xbb71, 0x1b0a: 0xbb89, 0x1b0b: 0x2109,
+       0x1b0c: 0x1111, 0x1b0d: 0xbba1, 0x1b0e: 0xbba1, 0x1b0f: 0xbbb9, 0x1b10: 0xbbd1, 0x1b11: 0x10e1,
+       0x1b12: 0x10f9, 0x1b13: 0xbbe9, 0x1b14: 0x2079, 0x1b15: 0xbc21, 0x1b16: 0xbac9, 0x1b17: 0x1429,
+       0x1b18: 0xbb11, 0x1b19: 0x10e1, 0x1b1a: 0x1111, 0x1b1b: 0x2109, 0x1b1c: 0xbab1, 0x1b1d: 0x1099,
+       0x1b1e: 0x10b1, 0x1b1f: 0x10c9, 0x1b20: 0xbac9, 0x1b21: 0xbae1, 0x1b22: 0xbaf9, 0x1b23: 0x1429,
+       0x1b24: 0x1a31, 0x1b25: 0xbb11, 0x1b26: 0xbb29, 0x1b27: 0xbb41, 0x1b28: 0xbb59, 0x1b29: 0xbb71,
+       0x1b2a: 0xbb89, 0x1b2b: 0x2109, 0x1b2c: 0x1111, 0x1b2d: 0x1429, 0x1b2e: 0xbba1, 0x1b2f: 0xbbb9,
+       0x1b30: 0xbbd1, 0x1b31: 0x10e1, 0x1b32: 0x10f9, 0x1b33: 0xbbe9, 0x1b34: 0x2079, 0x1b35: 0xbc01,
+       0x1b36: 0xbab1, 0x1b37: 0x1099, 0x1b38: 0x10b1, 0x1b39: 0x10c9, 0x1b3a: 0xbac9, 0x1b3b: 0xbae1,
+       0x1b3c: 0xbaf9, 0x1b3d: 0x1429, 0x1b3e: 0x1a31, 0x1b3f: 0xbb11,
+       // Block 0x6d, offset 0x1b40
+       0x1b40: 0xbb29, 0x1b41: 0xbb41, 0x1b42: 0xbb59, 0x1b43: 0xbb71, 0x1b44: 0xbb89, 0x1b45: 0x2109,
+       0x1b46: 0x1111, 0x1b47: 0xbba1, 0x1b48: 0xbba1, 0x1b49: 0xbbb9, 0x1b4a: 0xbbd1, 0x1b4b: 0x10e1,
+       0x1b4c: 0x10f9, 0x1b4d: 0xbbe9, 0x1b4e: 0x2079, 0x1b4f: 0xbc21, 0x1b50: 0xbac9, 0x1b51: 0x1429,
+       0x1b52: 0xbb11, 0x1b53: 0x10e1, 0x1b54: 0x1111, 0x1b55: 0x2109, 0x1b56: 0xbab1, 0x1b57: 0x1099,
+       0x1b58: 0x10b1, 0x1b59: 0x10c9, 0x1b5a: 0xbac9, 0x1b5b: 0xbae1, 0x1b5c: 0xbaf9, 0x1b5d: 0x1429,
+       0x1b5e: 0x1a31, 0x1b5f: 0xbb11, 0x1b60: 0xbb29, 0x1b61: 0xbb41, 0x1b62: 0xbb59, 0x1b63: 0xbb71,
+       0x1b64: 0xbb89, 0x1b65: 0x2109, 0x1b66: 0x1111, 0x1b67: 0x1429, 0x1b68: 0xbba1, 0x1b69: 0xbbb9,
+       0x1b6a: 0xbbd1, 0x1b6b: 0x10e1, 0x1b6c: 0x10f9, 0x1b6d: 0xbbe9, 0x1b6e: 0x2079, 0x1b6f: 0xbc01,
+       0x1b70: 0xbab1, 0x1b71: 0x1099, 0x1b72: 0x10b1, 0x1b73: 0x10c9, 0x1b74: 0xbac9, 0x1b75: 0xbae1,
+       0x1b76: 0xbaf9, 0x1b77: 0x1429, 0x1b78: 0x1a31, 0x1b79: 0xbb11, 0x1b7a: 0xbb29, 0x1b7b: 0xbb41,
+       0x1b7c: 0xbb59, 0x1b7d: 0xbb71, 0x1b7e: 0xbb89, 0x1b7f: 0x2109,
+       // Block 0x6e, offset 0x1b80
+       0x1b80: 0x1111, 0x1b81: 0xbba1, 0x1b82: 0xbba1, 0x1b83: 0xbbb9, 0x1b84: 0xbbd1, 0x1b85: 0x10e1,
+       0x1b86: 0x10f9, 0x1b87: 0xbbe9, 0x1b88: 0x2079, 0x1b89: 0xbc21, 0x1b8a: 0xbac9, 0x1b8b: 0x1429,
+       0x1b8c: 0xbb11, 0x1b8d: 0x10e1, 0x1b8e: 0x1111, 0x1b8f: 0x2109, 0x1b90: 0xbab1, 0x1b91: 0x1099,
+       0x1b92: 0x10b1, 0x1b93: 0x10c9, 0x1b94: 0xbac9, 0x1b95: 0xbae1, 0x1b96: 0xbaf9, 0x1b97: 0x1429,
+       0x1b98: 0x1a31, 0x1b99: 0xbb11, 0x1b9a: 0xbb29, 0x1b9b: 0xbb41, 0x1b9c: 0xbb59, 0x1b9d: 0xbb71,
+       0x1b9e: 0xbb89, 0x1b9f: 0x2109, 0x1ba0: 0x1111, 0x1ba1: 0x1429, 0x1ba2: 0xbba1, 0x1ba3: 0xbbb9,
+       0x1ba4: 0xbbd1, 0x1ba5: 0x10e1, 0x1ba6: 0x10f9, 0x1ba7: 0xbbe9, 0x1ba8: 0x2079, 0x1ba9: 0xbc01,
+       0x1baa: 0xbab1, 0x1bab: 0x1099, 0x1bac: 0x10b1, 0x1bad: 0x10c9, 0x1bae: 0xbac9, 0x1baf: 0xbae1,
+       0x1bb0: 0xbaf9, 0x1bb1: 0x1429, 0x1bb2: 0x1a31, 0x1bb3: 0xbb11, 0x1bb4: 0xbb29, 0x1bb5: 0xbb41,
+       0x1bb6: 0xbb59, 0x1bb7: 0xbb71, 0x1bb8: 0xbb89, 0x1bb9: 0x2109, 0x1bba: 0x1111, 0x1bbb: 0xbba1,
+       0x1bbc: 0xbba1, 0x1bbd: 0xbbb9, 0x1bbe: 0xbbd1, 0x1bbf: 0x10e1,
+       // Block 0x6f, offset 0x1bc0
+       0x1bc0: 0x10f9, 0x1bc1: 0xbbe9, 0x1bc2: 0x2079, 0x1bc3: 0xbc21, 0x1bc4: 0xbac9, 0x1bc5: 0x1429,
+       0x1bc6: 0xbb11, 0x1bc7: 0x10e1, 0x1bc8: 0x1111, 0x1bc9: 0x2109, 0x1bca: 0xbc41, 0x1bcb: 0xbc41,
+       0x1bcc: 0x0040, 0x1bcd: 0x0040, 0x1bce: 0x1f41, 0x1bcf: 0x00c9, 0x1bd0: 0x0069, 0x1bd1: 0x0079,
+       0x1bd2: 0x1f51, 0x1bd3: 0x1f61, 0x1bd4: 0x1f71, 0x1bd5: 0x1f81, 0x1bd6: 0x1f91, 0x1bd7: 0x1fa1,
+       0x1bd8: 0x1f41, 0x1bd9: 0x00c9, 0x1bda: 0x0069, 0x1bdb: 0x0079, 0x1bdc: 0x1f51, 0x1bdd: 0x1f61,
+       0x1bde: 0x1f71, 0x1bdf: 0x1f81, 0x1be0: 0x1f91, 0x1be1: 0x1fa1, 0x1be2: 0x1f41, 0x1be3: 0x00c9,
+       0x1be4: 0x0069, 0x1be5: 0x0079, 0x1be6: 0x1f51, 0x1be7: 0x1f61, 0x1be8: 0x1f71, 0x1be9: 0x1f81,
+       0x1bea: 0x1f91, 0x1beb: 0x1fa1, 0x1bec: 0x1f41, 0x1bed: 0x00c9, 0x1bee: 0x0069, 0x1bef: 0x0079,
+       0x1bf0: 0x1f51, 0x1bf1: 0x1f61, 0x1bf2: 0x1f71, 0x1bf3: 0x1f81, 0x1bf4: 0x1f91, 0x1bf5: 0x1fa1,
+       0x1bf6: 0x1f41, 0x1bf7: 0x00c9, 0x1bf8: 0x0069, 0x1bf9: 0x0079, 0x1bfa: 0x1f51, 0x1bfb: 0x1f61,
+       0x1bfc: 0x1f71, 0x1bfd: 0x1f81, 0x1bfe: 0x1f91, 0x1bff: 0x1fa1,
+       // Block 0x70, offset 0x1c00
+       0x1c00: 0xe115, 0x1c01: 0xe115, 0x1c02: 0xe135, 0x1c03: 0xe135, 0x1c04: 0xe115, 0x1c05: 0xe115,
+       0x1c06: 0xe175, 0x1c07: 0xe175, 0x1c08: 0xe115, 0x1c09: 0xe115, 0x1c0a: 0xe135, 0x1c0b: 0xe135,
+       0x1c0c: 0xe115, 0x1c0d: 0xe115, 0x1c0e: 0xe1f5, 0x1c0f: 0xe1f5, 0x1c10: 0xe115, 0x1c11: 0xe115,
+       0x1c12: 0xe135, 0x1c13: 0xe135, 0x1c14: 0xe115, 0x1c15: 0xe115, 0x1c16: 0xe175, 0x1c17: 0xe175,
+       0x1c18: 0xe115, 0x1c19: 0xe115, 0x1c1a: 0xe135, 0x1c1b: 0xe135, 0x1c1c: 0xe115, 0x1c1d: 0xe115,
+       0x1c1e: 0x8b05, 0x1c1f: 0x8b05, 0x1c20: 0x04b5, 0x1c21: 0x04b5, 0x1c22: 0x0a08, 0x1c23: 0x0a08,
+       0x1c24: 0x0a08, 0x1c25: 0x0a08, 0x1c26: 0x0a08, 0x1c27: 0x0a08, 0x1c28: 0x0a08, 0x1c29: 0x0a08,
+       0x1c2a: 0x0a08, 0x1c2b: 0x0a08, 0x1c2c: 0x0a08, 0x1c2d: 0x0a08, 0x1c2e: 0x0a08, 0x1c2f: 0x0a08,
+       0x1c30: 0x0a08, 0x1c31: 0x0a08, 0x1c32: 0x0a08, 0x1c33: 0x0a08, 0x1c34: 0x0a08, 0x1c35: 0x0a08,
+       0x1c36: 0x0a08, 0x1c37: 0x0a08, 0x1c38: 0x0a08, 0x1c39: 0x0a08, 0x1c3a: 0x0a08, 0x1c3b: 0x0a08,
+       0x1c3c: 0x0a08, 0x1c3d: 0x0a08, 0x1c3e: 0x0a08, 0x1c3f: 0x0a08,
+       // Block 0x71, offset 0x1c40
+       0x1c40: 0xb189, 0x1c41: 0xb1a1, 0x1c42: 0xb201, 0x1c43: 0xb249, 0x1c44: 0x0040, 0x1c45: 0xb411,
+       0x1c46: 0xb291, 0x1c47: 0xb219, 0x1c48: 0xb309, 0x1c49: 0xb429, 0x1c4a: 0xb399, 0x1c4b: 0xb3b1,
+       0x1c4c: 0xb3c9, 0x1c4d: 0xb3e1, 0x1c4e: 0xb2a9, 0x1c4f: 0xb339, 0x1c50: 0xb369, 0x1c51: 0xb2d9,
+       0x1c52: 0xb381, 0x1c53: 0xb279, 0x1c54: 0xb2c1, 0x1c55: 0xb1d1, 0x1c56: 0xb1e9, 0x1c57: 0xb231,
+       0x1c58: 0xb261, 0x1c59: 0xb2f1, 0x1c5a: 0xb321, 0x1c5b: 0xb351, 0x1c5c: 0xbc59, 0x1c5d: 0x7949,
+       0x1c5e: 0xbc71, 0x1c5f: 0xbc89, 0x1c60: 0x0040, 0x1c61: 0xb1a1, 0x1c62: 0xb201, 0x1c63: 0x0040,
+       0x1c64: 0xb3f9, 0x1c65: 0x0040, 0x1c66: 0x0040, 0x1c67: 0xb219, 0x1c68: 0x0040, 0x1c69: 0xb429,
+       0x1c6a: 0xb399, 0x1c6b: 0xb3b1, 0x1c6c: 0xb3c9, 0x1c6d: 0xb3e1, 0x1c6e: 0xb2a9, 0x1c6f: 0xb339,
+       0x1c70: 0xb369, 0x1c71: 0xb2d9, 0x1c72: 0xb381, 0x1c73: 0x0040, 0x1c74: 0xb2c1, 0x1c75: 0xb1d1,
+       0x1c76: 0xb1e9, 0x1c77: 0xb231, 0x1c78: 0x0040, 0x1c79: 0xb2f1, 0x1c7a: 0x0040, 0x1c7b: 0xb351,
+       0x1c7c: 0x0040, 0x1c7d: 0x0040, 0x1c7e: 0x0040, 0x1c7f: 0x0040,
+       // Block 0x72, offset 0x1c80
+       0x1c80: 0x0040, 0x1c81: 0x0040, 0x1c82: 0xb201, 0x1c83: 0x0040, 0x1c84: 0x0040, 0x1c85: 0x0040,
+       0x1c86: 0x0040, 0x1c87: 0xb219, 0x1c88: 0x0040, 0x1c89: 0xb429, 0x1c8a: 0x0040, 0x1c8b: 0xb3b1,
+       0x1c8c: 0x0040, 0x1c8d: 0xb3e1, 0x1c8e: 0xb2a9, 0x1c8f: 0xb339, 0x1c90: 0x0040, 0x1c91: 0xb2d9,
+       0x1c92: 0xb381, 0x1c93: 0x0040, 0x1c94: 0xb2c1, 0x1c95: 0x0040, 0x1c96: 0x0040, 0x1c97: 0xb231,
+       0x1c98: 0x0040, 0x1c99: 0xb2f1, 0x1c9a: 0x0040, 0x1c9b: 0xb351, 0x1c9c: 0x0040, 0x1c9d: 0x7949,
+       0x1c9e: 0x0040, 0x1c9f: 0xbc89, 0x1ca0: 0x0040, 0x1ca1: 0xb1a1, 0x1ca2: 0xb201, 0x1ca3: 0x0040,
+       0x1ca4: 0xb3f9, 0x1ca5: 0x0040, 0x1ca6: 0x0040, 0x1ca7: 0xb219, 0x1ca8: 0xb309, 0x1ca9: 0xb429,
+       0x1caa: 0xb399, 0x1cab: 0x0040, 0x1cac: 0xb3c9, 0x1cad: 0xb3e1, 0x1cae: 0xb2a9, 0x1caf: 0xb339,
+       0x1cb0: 0xb369, 0x1cb1: 0xb2d9, 0x1cb2: 0xb381, 0x1cb3: 0x0040, 0x1cb4: 0xb2c1, 0x1cb5: 0xb1d1,
+       0x1cb6: 0xb1e9, 0x1cb7: 0xb231, 0x1cb8: 0x0040, 0x1cb9: 0xb2f1, 0x1cba: 0xb321, 0x1cbb: 0xb351,
+       0x1cbc: 0xbc59, 0x1cbd: 0x0040, 0x1cbe: 0xbc71, 0x1cbf: 0x0040,
+       // Block 0x73, offset 0x1cc0
+       0x1cc0: 0xb189, 0x1cc1: 0xb1a1, 0x1cc2: 0xb201, 0x1cc3: 0xb249, 0x1cc4: 0xb3f9, 0x1cc5: 0xb411,
+       0x1cc6: 0xb291, 0x1cc7: 0xb219, 0x1cc8: 0xb309, 0x1cc9: 0xb429, 0x1cca: 0x0040, 0x1ccb: 0xb3b1,
+       0x1ccc: 0xb3c9, 0x1ccd: 0xb3e1, 0x1cce: 0xb2a9, 0x1ccf: 0xb339, 0x1cd0: 0xb369, 0x1cd1: 0xb2d9,
+       0x1cd2: 0xb381, 0x1cd3: 0xb279, 0x1cd4: 0xb2c1, 0x1cd5: 0xb1d1, 0x1cd6: 0xb1e9, 0x1cd7: 0xb231,
+       0x1cd8: 0xb261, 0x1cd9: 0xb2f1, 0x1cda: 0xb321, 0x1cdb: 0xb351, 0x1cdc: 0x0040, 0x1cdd: 0x0040,
+       0x1cde: 0x0040, 0x1cdf: 0x0040, 0x1ce0: 0x0040, 0x1ce1: 0xb1a1, 0x1ce2: 0xb201, 0x1ce3: 0xb249,
+       0x1ce4: 0x0040, 0x1ce5: 0xb411, 0x1ce6: 0xb291, 0x1ce7: 0xb219, 0x1ce8: 0xb309, 0x1ce9: 0xb429,
+       0x1cea: 0x0040, 0x1ceb: 0xb3b1, 0x1cec: 0xb3c9, 0x1ced: 0xb3e1, 0x1cee: 0xb2a9, 0x1cef: 0xb339,
+       0x1cf0: 0xb369, 0x1cf1: 0xb2d9, 0x1cf2: 0xb381, 0x1cf3: 0xb279, 0x1cf4: 0xb2c1, 0x1cf5: 0xb1d1,
+       0x1cf6: 0xb1e9, 0x1cf7: 0xb231, 0x1cf8: 0xb261, 0x1cf9: 0xb2f1, 0x1cfa: 0xb321, 0x1cfb: 0xb351,
+       0x1cfc: 0x0040, 0x1cfd: 0x0040, 0x1cfe: 0x0040, 0x1cff: 0x0040,
+       // Block 0x74, offset 0x1d00
+       0x1d00: 0x0040, 0x1d01: 0xbca2, 0x1d02: 0xbcba, 0x1d03: 0xbcd2, 0x1d04: 0xbcea, 0x1d05: 0xbd02,
+       0x1d06: 0xbd1a, 0x1d07: 0xbd32, 0x1d08: 0xbd4a, 0x1d09: 0xbd62, 0x1d0a: 0xbd7a, 0x1d0b: 0x0018,
+       0x1d0c: 0x0018, 0x1d0d: 0x0040, 0x1d0e: 0x0040, 0x1d0f: 0x0040, 0x1d10: 0xbd92, 0x1d11: 0xbdb2,
+       0x1d12: 0xbdd2, 0x1d13: 0xbdf2, 0x1d14: 0xbe12, 0x1d15: 0xbe32, 0x1d16: 0xbe52, 0x1d17: 0xbe72,
+       0x1d18: 0xbe92, 0x1d19: 0xbeb2, 0x1d1a: 0xbed2, 0x1d1b: 0xbef2, 0x1d1c: 0xbf12, 0x1d1d: 0xbf32,
+       0x1d1e: 0xbf52, 0x1d1f: 0xbf72, 0x1d20: 0xbf92, 0x1d21: 0xbfb2, 0x1d22: 0xbfd2, 0x1d23: 0xbff2,
+       0x1d24: 0xc012, 0x1d25: 0xc032, 0x1d26: 0xc052, 0x1d27: 0xc072, 0x1d28: 0xc092, 0x1d29: 0xc0b2,
+       0x1d2a: 0xc0d1, 0x1d2b: 0x1159, 0x1d2c: 0x0269, 0x1d2d: 0x6671, 0x1d2e: 0xc111, 0x1d2f: 0x0040,
+       0x1d30: 0x0039, 0x1d31: 0x0ee9, 0x1d32: 0x1159, 0x1d33: 0x0ef9, 0x1d34: 0x0f09, 0x1d35: 0x1199,
+       0x1d36: 0x0f31, 0x1d37: 0x0249, 0x1d38: 0x0f41, 0x1d39: 0x0259, 0x1d3a: 0x0f51, 0x1d3b: 0x0359,
+       0x1d3c: 0x0f61, 0x1d3d: 0x0f71, 0x1d3e: 0x00d9, 0x1d3f: 0x0f99,
+       // Block 0x75, offset 0x1d40
+       0x1d40: 0x2039, 0x1d41: 0x0269, 0x1d42: 0x01d9, 0x1d43: 0x0fa9, 0x1d44: 0x0fb9, 0x1d45: 0x1089,
+       0x1d46: 0x0279, 0x1d47: 0x0369, 0x1d48: 0x0289, 0x1d49: 0x13d1, 0x1d4a: 0xc129, 0x1d4b: 0x65b1,
+       0x1d4c: 0xc141, 0x1d4d: 0x1441, 0x1d4e: 0xc159, 0x1d4f: 0xc179, 0x1d50: 0x0018, 0x1d51: 0x0018,
+       0x1d52: 0x0018, 0x1d53: 0x0018, 0x1d54: 0x0018, 0x1d55: 0x0018, 0x1d56: 0x0018, 0x1d57: 0x0018,
+       0x1d58: 0x0018, 0x1d59: 0x0018, 0x1d5a: 0x0018, 0x1d5b: 0x0018, 0x1d5c: 0x0018, 0x1d5d: 0x0018,
+       0x1d5e: 0x0018, 0x1d5f: 0x0018, 0x1d60: 0x0018, 0x1d61: 0x0018, 0x1d62: 0x0018, 0x1d63: 0x0018,
+       0x1d64: 0x0018, 0x1d65: 0x0018, 0x1d66: 0x0018, 0x1d67: 0x0018, 0x1d68: 0x0018, 0x1d69: 0x0018,
+       0x1d6a: 0xc191, 0x1d6b: 0xc1a9, 0x1d6c: 0x0040, 0x1d6d: 0x0040, 0x1d6e: 0x0040, 0x1d6f: 0x0040,
+       0x1d70: 0x0018, 0x1d71: 0x0018, 0x1d72: 0x0018, 0x1d73: 0x0018, 0x1d74: 0x0018, 0x1d75: 0x0018,
+       0x1d76: 0x0018, 0x1d77: 0x0018, 0x1d78: 0x0018, 0x1d79: 0x0018, 0x1d7a: 0x0018, 0x1d7b: 0x0018,
+       0x1d7c: 0x0018, 0x1d7d: 0x0018, 0x1d7e: 0x0018, 0x1d7f: 0x0018,
+       // Block 0x76, offset 0x1d80
+       0x1d80: 0xc1d9, 0x1d81: 0xc211, 0x1d82: 0xc249, 0x1d83: 0x0040, 0x1d84: 0x0040, 0x1d85: 0x0040,
+       0x1d86: 0x0040, 0x1d87: 0x0040, 0x1d88: 0x0040, 0x1d89: 0x0040, 0x1d8a: 0x0040, 0x1d8b: 0x0040,
+       0x1d8c: 0x0040, 0x1d8d: 0x0040, 0x1d8e: 0x0040, 0x1d8f: 0x0040, 0x1d90: 0xc269, 0x1d91: 0xc289,
+       0x1d92: 0xc2a9, 0x1d93: 0xc2c9, 0x1d94: 0xc2e9, 0x1d95: 0xc309, 0x1d96: 0xc329, 0x1d97: 0xc349,
+       0x1d98: 0xc369, 0x1d99: 0xc389, 0x1d9a: 0xc3a9, 0x1d9b: 0xc3c9, 0x1d9c: 0xc3e9, 0x1d9d: 0xc409,
+       0x1d9e: 0xc429, 0x1d9f: 0xc449, 0x1da0: 0xc469, 0x1da1: 0xc489, 0x1da2: 0xc4a9, 0x1da3: 0xc4c9,
+       0x1da4: 0xc4e9, 0x1da5: 0xc509, 0x1da6: 0xc529, 0x1da7: 0xc549, 0x1da8: 0xc569, 0x1da9: 0xc589,
+       0x1daa: 0xc5a9, 0x1dab: 0xc5c9, 0x1dac: 0xc5e9, 0x1dad: 0xc609, 0x1dae: 0xc629, 0x1daf: 0xc649,
+       0x1db0: 0xc669, 0x1db1: 0xc689, 0x1db2: 0xc6a9, 0x1db3: 0xc6c9, 0x1db4: 0xc6e9, 0x1db5: 0xc709,
+       0x1db6: 0xc729, 0x1db7: 0xc749, 0x1db8: 0xc769, 0x1db9: 0xc789, 0x1dba: 0xc7a9, 0x1dbb: 0xc7c9,
+       0x1dbc: 0x0040, 0x1dbd: 0x0040, 0x1dbe: 0x0040, 0x1dbf: 0x0040,
+       // Block 0x77, offset 0x1dc0
+       0x1dc0: 0xcaf9, 0x1dc1: 0xcb19, 0x1dc2: 0xcb39, 0x1dc3: 0x8b1d, 0x1dc4: 0xcb59, 0x1dc5: 0xcb79,
+       0x1dc6: 0xcb99, 0x1dc7: 0xcbb9, 0x1dc8: 0xcbd9, 0x1dc9: 0xcbf9, 0x1dca: 0xcc19, 0x1dcb: 0xcc39,
+       0x1dcc: 0xcc59, 0x1dcd: 0x8b3d, 0x1dce: 0xcc79, 0x1dcf: 0xcc99, 0x1dd0: 0xccb9, 0x1dd1: 0xccd9,
+       0x1dd2: 0x8b5d, 0x1dd3: 0xccf9, 0x1dd4: 0xcd19, 0x1dd5: 0xc429, 0x1dd6: 0x8b7d, 0x1dd7: 0xcd39,
+       0x1dd8: 0xcd59, 0x1dd9: 0xcd79, 0x1dda: 0xcd99, 0x1ddb: 0xcdb9, 0x1ddc: 0x8b9d, 0x1ddd: 0xcdd9,
+       0x1dde: 0xcdf9, 0x1ddf: 0xce19, 0x1de0: 0xce39, 0x1de1: 0xce59, 0x1de2: 0xc789, 0x1de3: 0xce79,
+       0x1de4: 0xce99, 0x1de5: 0xceb9, 0x1de6: 0xced9, 0x1de7: 0xcef9, 0x1de8: 0xcf19, 0x1de9: 0xcf39,
+       0x1dea: 0xcf59, 0x1deb: 0xcf79, 0x1dec: 0xcf99, 0x1ded: 0xcfb9, 0x1dee: 0xcfd9, 0x1def: 0xcff9,
+       0x1df0: 0xd019, 0x1df1: 0xd039, 0x1df2: 0xd039, 0x1df3: 0xd039, 0x1df4: 0x8bbd, 0x1df5: 0xd059,
+       0x1df6: 0xd079, 0x1df7: 0xd099, 0x1df8: 0x8bdd, 0x1df9: 0xd0b9, 0x1dfa: 0xd0d9, 0x1dfb: 0xd0f9,
+       0x1dfc: 0xd119, 0x1dfd: 0xd139, 0x1dfe: 0xd159, 0x1dff: 0xd179,
+       // Block 0x78, offset 0x1e00
+       0x1e00: 0xd199, 0x1e01: 0xd1b9, 0x1e02: 0xd1d9, 0x1e03: 0xd1f9, 0x1e04: 0xd219, 0x1e05: 0xd239,
+       0x1e06: 0xd239, 0x1e07: 0xd259, 0x1e08: 0xd279, 0x1e09: 0xd299, 0x1e0a: 0xd2b9, 0x1e0b: 0xd2d9,
+       0x1e0c: 0xd2f9, 0x1e0d: 0xd319, 0x1e0e: 0xd339, 0x1e0f: 0xd359, 0x1e10: 0xd379, 0x1e11: 0xd399,
+       0x1e12: 0xd3b9, 0x1e13: 0xd3d9, 0x1e14: 0xd3f9, 0x1e15: 0xd419, 0x1e16: 0xd439, 0x1e17: 0xd459,
+       0x1e18: 0xd479, 0x1e19: 0x8bfd, 0x1e1a: 0xd499, 0x1e1b: 0xd4b9, 0x1e1c: 0xd4d9, 0x1e1d: 0xc309,
+       0x1e1e: 0xd4f9, 0x1e1f: 0xd519, 0x1e20: 0x8c1d, 0x1e21: 0x8c3d, 0x1e22: 0xd539, 0x1e23: 0xd559,
+       0x1e24: 0xd579, 0x1e25: 0xd599, 0x1e26: 0xd5b9, 0x1e27: 0xd5d9, 0x1e28: 0x2040, 0x1e29: 0xd5f9,
+       0x1e2a: 0xd619, 0x1e2b: 0xd619, 0x1e2c: 0x8c5d, 0x1e2d: 0xd639, 0x1e2e: 0xd659, 0x1e2f: 0xd679,
+       0x1e30: 0xd699, 0x1e31: 0x8c7d, 0x1e32: 0xd6b9, 0x1e33: 0xd6d9, 0x1e34: 0x2040, 0x1e35: 0xd6f9,
+       0x1e36: 0xd719, 0x1e37: 0xd739, 0x1e38: 0xd759, 0x1e39: 0xd779, 0x1e3a: 0xd799, 0x1e3b: 0x8c9d,
+       0x1e3c: 0xd7b9, 0x1e3d: 0x8cbd, 0x1e3e: 0xd7d9, 0x1e3f: 0xd7f9,
+       // Block 0x79, offset 0x1e40
+       0x1e40: 0xd819, 0x1e41: 0xd839, 0x1e42: 0xd859, 0x1e43: 0xd879, 0x1e44: 0xd899, 0x1e45: 0xd8b9,
+       0x1e46: 0xd8d9, 0x1e47: 0xd8f9, 0x1e48: 0xd919, 0x1e49: 0x8cdd, 0x1e4a: 0xd939, 0x1e4b: 0xd959,
+       0x1e4c: 0xd979, 0x1e4d: 0xd999, 0x1e4e: 0xd9b9, 0x1e4f: 0x8cfd, 0x1e50: 0xd9d9, 0x1e51: 0x8d1d,
+       0x1e52: 0x8d3d, 0x1e53: 0xd9f9, 0x1e54: 0xda19, 0x1e55: 0xda19, 0x1e56: 0xda39, 0x1e57: 0x8d5d,
+       0x1e58: 0x8d7d, 0x1e59: 0xda59, 0x1e5a: 0xda79, 0x1e5b: 0xda99, 0x1e5c: 0xdab9, 0x1e5d: 0xdad9,
+       0x1e5e: 0xdaf9, 0x1e5f: 0xdb19, 0x1e60: 0xdb39, 0x1e61: 0xdb59, 0x1e62: 0xdb79, 0x1e63: 0xdb99,
+       0x1e64: 0x8d9d, 0x1e65: 0xdbb9, 0x1e66: 0xdbd9, 0x1e67: 0xdbf9, 0x1e68: 0xdc19, 0x1e69: 0xdbf9,
+       0x1e6a: 0xdc39, 0x1e6b: 0xdc59, 0x1e6c: 0xdc79, 0x1e6d: 0xdc99, 0x1e6e: 0xdcb9, 0x1e6f: 0xdcd9,
+       0x1e70: 0xdcf9, 0x1e71: 0xdd19, 0x1e72: 0xdd39, 0x1e73: 0xdd59, 0x1e74: 0xdd79, 0x1e75: 0xdd99,
+       0x1e76: 0xddb9, 0x1e77: 0xddd9, 0x1e78: 0x8dbd, 0x1e79: 0xddf9, 0x1e7a: 0xde19, 0x1e7b: 0xde39,
+       0x1e7c: 0xde59, 0x1e7d: 0xde79, 0x1e7e: 0x8ddd, 0x1e7f: 0xde99,
+       // Block 0x7a, offset 0x1e80
+       0x1e80: 0xe599, 0x1e81: 0xe5b9, 0x1e82: 0xe5d9, 0x1e83: 0xe5f9, 0x1e84: 0xe619, 0x1e85: 0xe639,
+       0x1e86: 0x8efd, 0x1e87: 0xe659, 0x1e88: 0xe679, 0x1e89: 0xe699, 0x1e8a: 0xe6b9, 0x1e8b: 0xe6d9,
+       0x1e8c: 0xe6f9, 0x1e8d: 0x8f1d, 0x1e8e: 0xe719, 0x1e8f: 0xe739, 0x1e90: 0x8f3d, 0x1e91: 0x8f5d,
+       0x1e92: 0xe759, 0x1e93: 0xe779, 0x1e94: 0xe799, 0x1e95: 0xe7b9, 0x1e96: 0xe7d9, 0x1e97: 0xe7f9,
+       0x1e98: 0xe819, 0x1e99: 0xe839, 0x1e9a: 0xe859, 0x1e9b: 0x8f7d, 0x1e9c: 0xe879, 0x1e9d: 0x8f9d,
+       0x1e9e: 0xe899, 0x1e9f: 0x2040, 0x1ea0: 0xe8b9, 0x1ea1: 0xe8d9, 0x1ea2: 0xe8f9, 0x1ea3: 0x8fbd,
+       0x1ea4: 0xe919, 0x1ea5: 0xe939, 0x1ea6: 0x8fdd, 0x1ea7: 0x8ffd, 0x1ea8: 0xe959, 0x1ea9: 0xe979,
+       0x1eaa: 0xe999, 0x1eab: 0xe9b9, 0x1eac: 0xe9d9, 0x1ead: 0xe9d9, 0x1eae: 0xe9f9, 0x1eaf: 0xea19,
+       0x1eb0: 0xea39, 0x1eb1: 0xea59, 0x1eb2: 0xea79, 0x1eb3: 0xea99, 0x1eb4: 0xeab9, 0x1eb5: 0x901d,
+       0x1eb6: 0xead9, 0x1eb7: 0x903d, 0x1eb8: 0xeaf9, 0x1eb9: 0x905d, 0x1eba: 0xeb19, 0x1ebb: 0x907d,
+       0x1ebc: 0x909d, 0x1ebd: 0x90bd, 0x1ebe: 0xeb39, 0x1ebf: 0xeb59,
+       // Block 0x7b, offset 0x1ec0
+       0x1ec0: 0xeb79, 0x1ec1: 0x90dd, 0x1ec2: 0x90fd, 0x1ec3: 0x911d, 0x1ec4: 0x913d, 0x1ec5: 0xeb99,
+       0x1ec6: 0xebb9, 0x1ec7: 0xebb9, 0x1ec8: 0xebd9, 0x1ec9: 0xebf9, 0x1eca: 0xec19, 0x1ecb: 0xec39,
+       0x1ecc: 0xec59, 0x1ecd: 0x915d, 0x1ece: 0xec79, 0x1ecf: 0xec99, 0x1ed0: 0xecb9, 0x1ed1: 0xecd9,
+       0x1ed2: 0x917d, 0x1ed3: 0xecf9, 0x1ed4: 0x919d, 0x1ed5: 0x91bd, 0x1ed6: 0xed19, 0x1ed7: 0xed39,
+       0x1ed8: 0xed59, 0x1ed9: 0xed79, 0x1eda: 0xed99, 0x1edb: 0xedb9, 0x1edc: 0x91dd, 0x1edd: 0x91fd,
+       0x1ede: 0x921d, 0x1edf: 0x2040, 0x1ee0: 0xedd9, 0x1ee1: 0x923d, 0x1ee2: 0xedf9, 0x1ee3: 0xee19,
+       0x1ee4: 0xee39, 0x1ee5: 0x925d, 0x1ee6: 0xee59, 0x1ee7: 0xee79, 0x1ee8: 0xee99, 0x1ee9: 0xeeb9,
+       0x1eea: 0xeed9, 0x1eeb: 0x927d, 0x1eec: 0xeef9, 0x1eed: 0xef19, 0x1eee: 0xef39, 0x1eef: 0xef59,
+       0x1ef0: 0xef79, 0x1ef1: 0xef99, 0x1ef2: 0x929d, 0x1ef3: 0x92bd, 0x1ef4: 0xefb9, 0x1ef5: 0x92dd,
+       0x1ef6: 0xefd9, 0x1ef7: 0x92fd, 0x1ef8: 0xeff9, 0x1ef9: 0xf019, 0x1efa: 0xf039, 0x1efb: 0x931d,
+       0x1efc: 0x933d, 0x1efd: 0xf059, 0x1efe: 0x935d, 0x1eff: 0xf079,
+       // Block 0x7c, offset 0x1f00
+       0x1f00: 0xf6b9, 0x1f01: 0xf6d9, 0x1f02: 0xf6f9, 0x1f03: 0xf719, 0x1f04: 0xf739, 0x1f05: 0x951d,
+       0x1f06: 0xf759, 0x1f07: 0xf779, 0x1f08: 0xf799, 0x1f09: 0xf7b9, 0x1f0a: 0xf7d9, 0x1f0b: 0x953d,
+       0x1f0c: 0x955d, 0x1f0d: 0xf7f9, 0x1f0e: 0xf819, 0x1f0f: 0xf839, 0x1f10: 0xf859, 0x1f11: 0xf879,
+       0x1f12: 0xf899, 0x1f13: 0x957d, 0x1f14: 0xf8b9, 0x1f15: 0xf8d9, 0x1f16: 0xf8f9, 0x1f17: 0xf919,
+       0x1f18: 0x959d, 0x1f19: 0x95bd, 0x1f1a: 0xf939, 0x1f1b: 0xf959, 0x1f1c: 0xf979, 0x1f1d: 0x95dd,
+       0x1f1e: 0xf999, 0x1f1f: 0xf9b9, 0x1f20: 0x6815, 0x1f21: 0x95fd, 0x1f22: 0xf9d9, 0x1f23: 0xf9f9,
+       0x1f24: 0xfa19, 0x1f25: 0x961d, 0x1f26: 0xfa39, 0x1f27: 0xfa59, 0x1f28: 0xfa79, 0x1f29: 0xfa99,
+       0x1f2a: 0xfab9, 0x1f2b: 0xfad9, 0x1f2c: 0xfaf9, 0x1f2d: 0x963d, 0x1f2e: 0xfb19, 0x1f2f: 0xfb39,
+       0x1f30: 0xfb59, 0x1f31: 0x965d, 0x1f32: 0xfb79, 0x1f33: 0xfb99, 0x1f34: 0xfbb9, 0x1f35: 0xfbd9,
+       0x1f36: 0x7b35, 0x1f37: 0x967d, 0x1f38: 0xfbf9, 0x1f39: 0xfc19, 0x1f3a: 0xfc39, 0x1f3b: 0x969d,
+       0x1f3c: 0xfc59, 0x1f3d: 0x96bd, 0x1f3e: 0xfc79, 0x1f3f: 0xfc79,
+       // Block 0x7d, offset 0x1f40
+       0x1f40: 0xfc99, 0x1f41: 0x96dd, 0x1f42: 0xfcb9, 0x1f43: 0xfcd9, 0x1f44: 0xfcf9, 0x1f45: 0xfd19,
+       0x1f46: 0xfd39, 0x1f47: 0xfd59, 0x1f48: 0xfd79, 0x1f49: 0x96fd, 0x1f4a: 0xfd99, 0x1f4b: 0xfdb9,
+       0x1f4c: 0xfdd9, 0x1f4d: 0xfdf9, 0x1f4e: 0xfe19, 0x1f4f: 0xfe39, 0x1f50: 0x971d, 0x1f51: 0xfe59,
+       0x1f52: 0x973d, 0x1f53: 0x975d, 0x1f54: 0x977d, 0x1f55: 0xfe79, 0x1f56: 0xfe99, 0x1f57: 0xfeb9,
+       0x1f58: 0xfed9, 0x1f59: 0xfef9, 0x1f5a: 0xff19, 0x1f5b: 0xff39, 0x1f5c: 0xff59, 0x1f5d: 0x979d,
+       0x1f5e: 0x0040, 0x1f5f: 0x0040, 0x1f60: 0x0040, 0x1f61: 0x0040, 0x1f62: 0x0040, 0x1f63: 0x0040,
+       0x1f64: 0x0040, 0x1f65: 0x0040, 0x1f66: 0x0040, 0x1f67: 0x0040, 0x1f68: 0x0040, 0x1f69: 0x0040,
+       0x1f6a: 0x0040, 0x1f6b: 0x0040, 0x1f6c: 0x0040, 0x1f6d: 0x0040, 0x1f6e: 0x0040, 0x1f6f: 0x0040,
+       0x1f70: 0x0040, 0x1f71: 0x0040, 0x1f72: 0x0040, 0x1f73: 0x0040, 0x1f74: 0x0040, 0x1f75: 0x0040,
+       0x1f76: 0x0040, 0x1f77: 0x0040, 0x1f78: 0x0040, 0x1f79: 0x0040, 0x1f7a: 0x0040, 0x1f7b: 0x0040,
+       0x1f7c: 0x0040, 0x1f7d: 0x0040, 0x1f7e: 0x0040, 0x1f7f: 0x0040,
+}
+
+// idnaIndex: 35 blocks, 2240 entries, 4480 bytes
+// Block 0 is the zero block.
+var idnaIndex = [2240]uint16{
+       // Block 0x0, offset 0x0
+       // Block 0x1, offset 0x40
+       // Block 0x2, offset 0x80
+       // Block 0x3, offset 0xc0
+       0xc2: 0x01, 0xc3: 0x7c, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x04, 0xc7: 0x05,
+       0xc8: 0x06, 0xc9: 0x7d, 0xca: 0x7e, 0xcb: 0x07, 0xcc: 0x7f, 0xcd: 0x08, 0xce: 0x09, 0xcf: 0x0a,
+       0xd0: 0x80, 0xd1: 0x0b, 0xd2: 0x0c, 0xd3: 0x0d, 0xd4: 0x0e, 0xd5: 0x81, 0xd6: 0x82, 0xd7: 0x83,
+       0xd8: 0x0f, 0xd9: 0x10, 0xda: 0x84, 0xdb: 0x11, 0xdc: 0x12, 0xdd: 0x85, 0xde: 0x86, 0xdf: 0x87,
+       0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, 0xe4: 0x06, 0xe5: 0x07, 0xe6: 0x07, 0xe7: 0x07,
+       0xe8: 0x07, 0xe9: 0x08, 0xea: 0x09, 0xeb: 0x07, 0xec: 0x07, 0xed: 0x0a, 0xee: 0x0b, 0xef: 0x0c,
+       0xf0: 0x1c, 0xf1: 0x1d, 0xf2: 0x1d, 0xf3: 0x1f, 0xf4: 0x20,
+       // Block 0x4, offset 0x100
+       0x120: 0x88, 0x121: 0x89, 0x122: 0x8a, 0x123: 0x8b, 0x124: 0x8c, 0x125: 0x13, 0x126: 0x14, 0x127: 0x15,
+       0x128: 0x16, 0x129: 0x17, 0x12a: 0x18, 0x12b: 0x19, 0x12c: 0x1a, 0x12d: 0x1b, 0x12e: 0x1c, 0x12f: 0x8d,
+       0x130: 0x8e, 0x131: 0x1d, 0x132: 0x1e, 0x133: 0x1f, 0x134: 0x8f, 0x135: 0x20, 0x136: 0x90, 0x137: 0x91,
+       0x138: 0x92, 0x139: 0x93, 0x13a: 0x21, 0x13b: 0x94, 0x13c: 0x95, 0x13d: 0x22, 0x13e: 0x23, 0x13f: 0x96,
+       // Block 0x5, offset 0x140
+       0x140: 0x97, 0x141: 0x98, 0x142: 0x99, 0x143: 0x9a, 0x144: 0x9b, 0x145: 0x9c, 0x146: 0x9d, 0x147: 0x9e,
+       0x148: 0x9f, 0x149: 0xa0, 0x14a: 0xa1, 0x14b: 0xa2, 0x14c: 0xa3, 0x14d: 0xa4, 0x14e: 0xa5, 0x14f: 0xa6,
+       0x150: 0xa7, 0x151: 0x9f, 0x152: 0x9f, 0x153: 0x9f, 0x154: 0x9f, 0x155: 0x9f, 0x156: 0x9f, 0x157: 0x9f,
+       0x158: 0x9f, 0x159: 0xa8, 0x15a: 0xa9, 0x15b: 0xaa, 0x15c: 0xab, 0x15d: 0xac, 0x15e: 0xad, 0x15f: 0xae,
+       0x160: 0xaf, 0x161: 0xb0, 0x162: 0xb1, 0x163: 0xb2, 0x164: 0xb3, 0x165: 0xb4, 0x166: 0xb5, 0x167: 0xb6,
+       0x168: 0xb7, 0x169: 0xb8, 0x16a: 0xb9, 0x16b: 0xba, 0x16c: 0xbb, 0x16d: 0xbc, 0x16e: 0xbd, 0x16f: 0xbe,
+       0x170: 0xbf, 0x171: 0xc0, 0x172: 0xc1, 0x173: 0xc2, 0x174: 0x24, 0x175: 0x25, 0x176: 0x26, 0x177: 0xc3,
+       0x178: 0x27, 0x179: 0x27, 0x17a: 0x28, 0x17b: 0x27, 0x17c: 0xc4, 0x17d: 0x29, 0x17e: 0x2a, 0x17f: 0x2b,
+       // Block 0x6, offset 0x180
+       0x180: 0x2c, 0x181: 0x2d, 0x182: 0x2e, 0x183: 0xc5, 0x184: 0x2f, 0x185: 0x30, 0x186: 0xc6, 0x187: 0x9b,
+       0x188: 0xc7, 0x189: 0xc8, 0x18a: 0x9b, 0x18b: 0x9b, 0x18c: 0xc9, 0x18d: 0x9b, 0x18e: 0x9b, 0x18f: 0xca,
+       0x190: 0xcb, 0x191: 0x31, 0x192: 0x32, 0x193: 0x33, 0x194: 0x9b, 0x195: 0x9b, 0x196: 0x9b, 0x197: 0x9b,
+       0x198: 0x9b, 0x199: 0x9b, 0x19a: 0x9b, 0x19b: 0x9b, 0x19c: 0x9b, 0x19d: 0x9b, 0x19e: 0x9b, 0x19f: 0x9b,
+       0x1a0: 0x9b, 0x1a1: 0x9b, 0x1a2: 0x9b, 0x1a3: 0x9b, 0x1a4: 0x9b, 0x1a5: 0x9b, 0x1a6: 0x9b, 0x1a7: 0x9b,
+       0x1a8: 0xcc, 0x1a9: 0xcd, 0x1aa: 0x9b, 0x1ab: 0xce, 0x1ac: 0x9b, 0x1ad: 0xcf, 0x1ae: 0xd0, 0x1af: 0xd1,
+       0x1b0: 0xd2, 0x1b1: 0x34, 0x1b2: 0x27, 0x1b3: 0x35, 0x1b4: 0xd3, 0x1b5: 0xd4, 0x1b6: 0xd5, 0x1b7: 0xd6,
+       0x1b8: 0xd7, 0x1b9: 0xd8, 0x1ba: 0xd9, 0x1bb: 0xda, 0x1bc: 0xdb, 0x1bd: 0xdc, 0x1be: 0xdd, 0x1bf: 0x36,
+       // Block 0x7, offset 0x1c0
+       0x1c0: 0x37, 0x1c1: 0xde, 0x1c2: 0xdf, 0x1c3: 0xe0, 0x1c4: 0xe1, 0x1c5: 0x38, 0x1c6: 0x39, 0x1c7: 0xe2,
+       0x1c8: 0xe3, 0x1c9: 0x3a, 0x1ca: 0x3b, 0x1cb: 0x3c, 0x1cc: 0x3d, 0x1cd: 0x3e, 0x1ce: 0x3f, 0x1cf: 0x40,
+       0x1d0: 0x9f, 0x1d1: 0x9f, 0x1d2: 0x9f, 0x1d3: 0x9f, 0x1d4: 0x9f, 0x1d5: 0x9f, 0x1d6: 0x9f, 0x1d7: 0x9f,
+       0x1d8: 0x9f, 0x1d9: 0x9f, 0x1da: 0x9f, 0x1db: 0x9f, 0x1dc: 0x9f, 0x1dd: 0x9f, 0x1de: 0x9f, 0x1df: 0x9f,
+       0x1e0: 0x9f, 0x1e1: 0x9f, 0x1e2: 0x9f, 0x1e3: 0x9f, 0x1e4: 0x9f, 0x1e5: 0x9f, 0x1e6: 0x9f, 0x1e7: 0x9f,
+       0x1e8: 0x9f, 0x1e9: 0x9f, 0x1ea: 0x9f, 0x1eb: 0x9f, 0x1ec: 0x9f, 0x1ed: 0x9f, 0x1ee: 0x9f, 0x1ef: 0x9f,
+       0x1f0: 0x9f, 0x1f1: 0x9f, 0x1f2: 0x9f, 0x1f3: 0x9f, 0x1f4: 0x9f, 0x1f5: 0x9f, 0x1f6: 0x9f, 0x1f7: 0x9f,
+       0x1f8: 0x9f, 0x1f9: 0x9f, 0x1fa: 0x9f, 0x1fb: 0x9f, 0x1fc: 0x9f, 0x1fd: 0x9f, 0x1fe: 0x9f, 0x1ff: 0x9f,
+       // Block 0x8, offset 0x200
+       0x200: 0x9f, 0x201: 0x9f, 0x202: 0x9f, 0x203: 0x9f, 0x204: 0x9f, 0x205: 0x9f, 0x206: 0x9f, 0x207: 0x9f,
+       0x208: 0x9f, 0x209: 0x9f, 0x20a: 0x9f, 0x20b: 0x9f, 0x20c: 0x9f, 0x20d: 0x9f, 0x20e: 0x9f, 0x20f: 0x9f,
+       0x210: 0x9f, 0x211: 0x9f, 0x212: 0x9f, 0x213: 0x9f, 0x214: 0x9f, 0x215: 0x9f, 0x216: 0x9f, 0x217: 0x9f,
+       0x218: 0x9f, 0x219: 0x9f, 0x21a: 0x9f, 0x21b: 0x9f, 0x21c: 0x9f, 0x21d: 0x9f, 0x21e: 0x9f, 0x21f: 0x9f,
+       0x220: 0x9f, 0x221: 0x9f, 0x222: 0x9f, 0x223: 0x9f, 0x224: 0x9f, 0x225: 0x9f, 0x226: 0x9f, 0x227: 0x9f,
+       0x228: 0x9f, 0x229: 0x9f, 0x22a: 0x9f, 0x22b: 0x9f, 0x22c: 0x9f, 0x22d: 0x9f, 0x22e: 0x9f, 0x22f: 0x9f,
+       0x230: 0x9f, 0x231: 0x9f, 0x232: 0x9f, 0x233: 0x9f, 0x234: 0x9f, 0x235: 0x9f, 0x236: 0xb2, 0x237: 0x9b,
+       0x238: 0x9f, 0x239: 0x9f, 0x23a: 0x9f, 0x23b: 0x9f, 0x23c: 0x9f, 0x23d: 0x9f, 0x23e: 0x9f, 0x23f: 0x9f,
+       // Block 0x9, offset 0x240
+       0x240: 0x9f, 0x241: 0x9f, 0x242: 0x9f, 0x243: 0x9f, 0x244: 0x9f, 0x245: 0x9f, 0x246: 0x9f, 0x247: 0x9f,
+       0x248: 0x9f, 0x249: 0x9f, 0x24a: 0x9f, 0x24b: 0x9f, 0x24c: 0x9f, 0x24d: 0x9f, 0x24e: 0x9f, 0x24f: 0x9f,
+       0x250: 0x9f, 0x251: 0x9f, 0x252: 0x9f, 0x253: 0x9f, 0x254: 0x9f, 0x255: 0x9f, 0x256: 0x9f, 0x257: 0x9f,
+       0x258: 0x9f, 0x259: 0x9f, 0x25a: 0x9f, 0x25b: 0x9f, 0x25c: 0x9f, 0x25d: 0x9f, 0x25e: 0x9f, 0x25f: 0x9f,
+       0x260: 0x9f, 0x261: 0x9f, 0x262: 0x9f, 0x263: 0x9f, 0x264: 0x9f, 0x265: 0x9f, 0x266: 0x9f, 0x267: 0x9f,
+       0x268: 0x9f, 0x269: 0x9f, 0x26a: 0x9f, 0x26b: 0x9f, 0x26c: 0x9f, 0x26d: 0x9f, 0x26e: 0x9f, 0x26f: 0x9f,
+       0x270: 0x9f, 0x271: 0x9f, 0x272: 0x9f, 0x273: 0x9f, 0x274: 0x9f, 0x275: 0x9f, 0x276: 0x9f, 0x277: 0x9f,
+       0x278: 0x9f, 0x279: 0x9f, 0x27a: 0x9f, 0x27b: 0x9f, 0x27c: 0x9f, 0x27d: 0x9f, 0x27e: 0x9f, 0x27f: 0x9f,
+       // Block 0xa, offset 0x280
+       0x280: 0x9f, 0x281: 0x9f, 0x282: 0x9f, 0x283: 0x9f, 0x284: 0x9f, 0x285: 0x9f, 0x286: 0x9f, 0x287: 0x9f,
+       0x288: 0x9f, 0x289: 0x9f, 0x28a: 0x9f, 0x28b: 0x9f, 0x28c: 0x9f, 0x28d: 0x9f, 0x28e: 0x9f, 0x28f: 0x9f,
+       0x290: 0x9f, 0x291: 0x9f, 0x292: 0x9f, 0x293: 0x9f, 0x294: 0x9f, 0x295: 0x9f, 0x296: 0x9f, 0x297: 0x9f,
+       0x298: 0x9f, 0x299: 0x9f, 0x29a: 0x9f, 0x29b: 0x9f, 0x29c: 0x9f, 0x29d: 0x9f, 0x29e: 0x9f, 0x29f: 0x9f,
+       0x2a0: 0x9f, 0x2a1: 0x9f, 0x2a2: 0x9f, 0x2a3: 0x9f, 0x2a4: 0x9f, 0x2a5: 0x9f, 0x2a6: 0x9f, 0x2a7: 0x9f,
+       0x2a8: 0x9f, 0x2a9: 0x9f, 0x2aa: 0x9f, 0x2ab: 0x9f, 0x2ac: 0x9f, 0x2ad: 0x9f, 0x2ae: 0x9f, 0x2af: 0x9f,
+       0x2b0: 0x9f, 0x2b1: 0x9f, 0x2b2: 0x9f, 0x2b3: 0x9f, 0x2b4: 0x9f, 0x2b5: 0x9f, 0x2b6: 0x9f, 0x2b7: 0x9f,
+       0x2b8: 0x9f, 0x2b9: 0x9f, 0x2ba: 0x9f, 0x2bb: 0x9f, 0x2bc: 0x9f, 0x2bd: 0x9f, 0x2be: 0x9f, 0x2bf: 0xe4,
+       // Block 0xb, offset 0x2c0
+       0x2c0: 0x9f, 0x2c1: 0x9f, 0x2c2: 0x9f, 0x2c3: 0x9f, 0x2c4: 0x9f, 0x2c5: 0x9f, 0x2c6: 0x9f, 0x2c7: 0x9f,
+       0x2c8: 0x9f, 0x2c9: 0x9f, 0x2ca: 0x9f, 0x2cb: 0x9f, 0x2cc: 0x9f, 0x2cd: 0x9f, 0x2ce: 0x9f, 0x2cf: 0x9f,
+       0x2d0: 0x9f, 0x2d1: 0x9f, 0x2d2: 0xe5, 0x2d3: 0xe6, 0x2d4: 0x9f, 0x2d5: 0x9f, 0x2d6: 0x9f, 0x2d7: 0x9f,
+       0x2d8: 0xe7, 0x2d9: 0x41, 0x2da: 0x42, 0x2db: 0xe8, 0x2dc: 0x43, 0x2dd: 0x44, 0x2de: 0x45, 0x2df: 0xe9,
+       0x2e0: 0xea, 0x2e1: 0xeb, 0x2e2: 0xec, 0x2e3: 0xed, 0x2e4: 0xee, 0x2e5: 0xef, 0x2e6: 0xf0, 0x2e7: 0xf1,
+       0x2e8: 0xf2, 0x2e9: 0xf3, 0x2ea: 0xf4, 0x2eb: 0xf5, 0x2ec: 0xf6, 0x2ed: 0xf7, 0x2ee: 0xf8, 0x2ef: 0xf9,
+       0x2f0: 0x9f, 0x2f1: 0x9f, 0x2f2: 0x9f, 0x2f3: 0x9f, 0x2f4: 0x9f, 0x2f5: 0x9f, 0x2f6: 0x9f, 0x2f7: 0x9f,
+       0x2f8: 0x9f, 0x2f9: 0x9f, 0x2fa: 0x9f, 0x2fb: 0x9f, 0x2fc: 0x9f, 0x2fd: 0x9f, 0x2fe: 0x9f, 0x2ff: 0x9f,
+       // Block 0xc, offset 0x300
+       0x300: 0x9f, 0x301: 0x9f, 0x302: 0x9f, 0x303: 0x9f, 0x304: 0x9f, 0x305: 0x9f, 0x306: 0x9f, 0x307: 0x9f,
+       0x308: 0x9f, 0x309: 0x9f, 0x30a: 0x9f, 0x30b: 0x9f, 0x30c: 0x9f, 0x30d: 0x9f, 0x30e: 0x9f, 0x30f: 0x9f,
+       0x310: 0x9f, 0x311: 0x9f, 0x312: 0x9f, 0x313: 0x9f, 0x314: 0x9f, 0x315: 0x9f, 0x316: 0x9f, 0x317: 0x9f,
+       0x318: 0x9f, 0x319: 0x9f, 0x31a: 0x9f, 0x31b: 0x9f, 0x31c: 0x9f, 0x31d: 0x9f, 0x31e: 0xfa, 0x31f: 0xfb,
+       // Block 0xd, offset 0x340
+       0x340: 0xba, 0x341: 0xba, 0x342: 0xba, 0x343: 0xba, 0x344: 0xba, 0x345: 0xba, 0x346: 0xba, 0x347: 0xba,
+       0x348: 0xba, 0x349: 0xba, 0x34a: 0xba, 0x34b: 0xba, 0x34c: 0xba, 0x34d: 0xba, 0x34e: 0xba, 0x34f: 0xba,
+       0x350: 0xba, 0x351: 0xba, 0x352: 0xba, 0x353: 0xba, 0x354: 0xba, 0x355: 0xba, 0x356: 0xba, 0x357: 0xba,
+       0x358: 0xba, 0x359: 0xba, 0x35a: 0xba, 0x35b: 0xba, 0x35c: 0xba, 0x35d: 0xba, 0x35e: 0xba, 0x35f: 0xba,
+       0x360: 0xba, 0x361: 0xba, 0x362: 0xba, 0x363: 0xba, 0x364: 0xba, 0x365: 0xba, 0x366: 0xba, 0x367: 0xba,
+       0x368: 0xba, 0x369: 0xba, 0x36a: 0xba, 0x36b: 0xba, 0x36c: 0xba, 0x36d: 0xba, 0x36e: 0xba, 0x36f: 0xba,
+       0x370: 0xba, 0x371: 0xba, 0x372: 0xba, 0x373: 0xba, 0x374: 0xba, 0x375: 0xba, 0x376: 0xba, 0x377: 0xba,
+       0x378: 0xba, 0x379: 0xba, 0x37a: 0xba, 0x37b: 0xba, 0x37c: 0xba, 0x37d: 0xba, 0x37e: 0xba, 0x37f: 0xba,
+       // Block 0xe, offset 0x380
+       0x380: 0xba, 0x381: 0xba, 0x382: 0xba, 0x383: 0xba, 0x384: 0xba, 0x385: 0xba, 0x386: 0xba, 0x387: 0xba,
+       0x388: 0xba, 0x389: 0xba, 0x38a: 0xba, 0x38b: 0xba, 0x38c: 0xba, 0x38d: 0xba, 0x38e: 0xba, 0x38f: 0xba,
+       0x390: 0xba, 0x391: 0xba, 0x392: 0xba, 0x393: 0xba, 0x394: 0xba, 0x395: 0xba, 0x396: 0xba, 0x397: 0xba,
+       0x398: 0xba, 0x399: 0xba, 0x39a: 0xba, 0x39b: 0xba, 0x39c: 0xba, 0x39d: 0xba, 0x39e: 0xba, 0x39f: 0xba,
+       0x3a0: 0xba, 0x3a1: 0xba, 0x3a2: 0xba, 0x3a3: 0xba, 0x3a4: 0xfc, 0x3a5: 0xfd, 0x3a6: 0xfe, 0x3a7: 0xff,
+       0x3a8: 0x46, 0x3a9: 0x100, 0x3aa: 0x101, 0x3ab: 0x47, 0x3ac: 0x48, 0x3ad: 0x49, 0x3ae: 0x4a, 0x3af: 0x4b,
+       0x3b0: 0x102, 0x3b1: 0x4c, 0x3b2: 0x4d, 0x3b3: 0x4e, 0x3b4: 0x4f, 0x3b5: 0x50, 0x3b6: 0x103, 0x3b7: 0x51,
+       0x3b8: 0x52, 0x3b9: 0x53, 0x3ba: 0x54, 0x3bb: 0x55, 0x3bc: 0x56, 0x3bd: 0x57, 0x3be: 0x58, 0x3bf: 0x59,
+       // Block 0xf, offset 0x3c0
+       0x3c0: 0x104, 0x3c1: 0x105, 0x3c2: 0x9f, 0x3c3: 0x106, 0x3c4: 0x107, 0x3c5: 0x9b, 0x3c6: 0x108, 0x3c7: 0x109,
+       0x3c8: 0xba, 0x3c9: 0xba, 0x3ca: 0x10a, 0x3cb: 0x10b, 0x3cc: 0x10c, 0x3cd: 0x10d, 0x3ce: 0x10e, 0x3cf: 0x10f,
+       0x3d0: 0x110, 0x3d1: 0x9f, 0x3d2: 0x111, 0x3d3: 0x112, 0x3d4: 0x113, 0x3d5: 0x114, 0x3d6: 0xba, 0x3d7: 0xba,
+       0x3d8: 0x9f, 0x3d9: 0x9f, 0x3da: 0x9f, 0x3db: 0x9f, 0x3dc: 0x115, 0x3dd: 0x116, 0x3de: 0xba, 0x3df: 0xba,
+       0x3e0: 0x117, 0x3e1: 0x118, 0x3e2: 0x119, 0x3e3: 0x11a, 0x3e4: 0x11b, 0x3e5: 0xba, 0x3e6: 0x11c, 0x3e7: 0x11d,
+       0x3e8: 0x11e, 0x3e9: 0x11f, 0x3ea: 0x120, 0x3eb: 0x5a, 0x3ec: 0x121, 0x3ed: 0x122, 0x3ee: 0x5b, 0x3ef: 0xba,
+       0x3f0: 0x123, 0x3f1: 0x124, 0x3f2: 0x125, 0x3f3: 0x126, 0x3f4: 0xba, 0x3f5: 0xba, 0x3f6: 0xba, 0x3f7: 0xba,
+       0x3f8: 0xba, 0x3f9: 0x127, 0x3fa: 0xba, 0x3fb: 0xba, 0x3fc: 0xba, 0x3fd: 0xba, 0x3fe: 0xba, 0x3ff: 0xba,
+       // Block 0x10, offset 0x400
+       0x400: 0x128, 0x401: 0x129, 0x402: 0x12a, 0x403: 0x12b, 0x404: 0x12c, 0x405: 0x12d, 0x406: 0x12e, 0x407: 0x12f,
+       0x408: 0x130, 0x409: 0xba, 0x40a: 0x131, 0x40b: 0x132, 0x40c: 0x5c, 0x40d: 0x5d, 0x40e: 0xba, 0x40f: 0xba,
+       0x410: 0x133, 0x411: 0x134, 0x412: 0x135, 0x413: 0x136, 0x414: 0xba, 0x415: 0xba, 0x416: 0x137, 0x417: 0x138,
+       0x418: 0x139, 0x419: 0x13a, 0x41a: 0x13b, 0x41b: 0x13c, 0x41c: 0x13d, 0x41d: 0xba, 0x41e: 0xba, 0x41f: 0xba,
+       0x420: 0xba, 0x421: 0xba, 0x422: 0x13e, 0x423: 0x13f, 0x424: 0xba, 0x425: 0xba, 0x426: 0xba, 0x427: 0xba,
+       0x428: 0xba, 0x429: 0xba, 0x42a: 0xba, 0x42b: 0x140, 0x42c: 0xba, 0x42d: 0xba, 0x42e: 0xba, 0x42f: 0xba,
+       0x430: 0x141, 0x431: 0x142, 0x432: 0x143, 0x433: 0xba, 0x434: 0xba, 0x435: 0xba, 0x436: 0xba, 0x437: 0xba,
+       0x438: 0xba, 0x439: 0xba, 0x43a: 0xba, 0x43b: 0xba, 0x43c: 0xba, 0x43d: 0xba, 0x43e: 0xba, 0x43f: 0xba,
+       // Block 0x11, offset 0x440
+       0x440: 0x9f, 0x441: 0x9f, 0x442: 0x9f, 0x443: 0x9f, 0x444: 0x9f, 0x445: 0x9f, 0x446: 0x9f, 0x447: 0x9f,
+       0x448: 0x9f, 0x449: 0x9f, 0x44a: 0x9f, 0x44b: 0x9f, 0x44c: 0x9f, 0x44d: 0x9f, 0x44e: 0x144, 0x44f: 0xba,
+       0x450: 0x9b, 0x451: 0x145, 0x452: 0x9f, 0x453: 0x9f, 0x454: 0x9f, 0x455: 0x146, 0x456: 0xba, 0x457: 0xba,
+       0x458: 0xba, 0x459: 0xba, 0x45a: 0xba, 0x45b: 0xba, 0x45c: 0xba, 0x45d: 0xba, 0x45e: 0xba, 0x45f: 0xba,
+       0x460: 0xba, 0x461: 0xba, 0x462: 0xba, 0x463: 0xba, 0x464: 0xba, 0x465: 0xba, 0x466: 0xba, 0x467: 0xba,
+       0x468: 0xba, 0x469: 0xba, 0x46a: 0xba, 0x46b: 0xba, 0x46c: 0xba, 0x46d: 0xba, 0x46e: 0xba, 0x46f: 0xba,
+       0x470: 0xba, 0x471: 0xba, 0x472: 0xba, 0x473: 0xba, 0x474: 0xba, 0x475: 0xba, 0x476: 0xba, 0x477: 0xba,
+       0x478: 0xba, 0x479: 0xba, 0x47a: 0xba, 0x47b: 0xba, 0x47c: 0xba, 0x47d: 0xba, 0x47e: 0xba, 0x47f: 0xba,
+       // Block 0x12, offset 0x480
+       0x480: 0x9f, 0x481: 0x9f, 0x482: 0x9f, 0x483: 0x9f, 0x484: 0x9f, 0x485: 0x9f, 0x486: 0x9f, 0x487: 0x9f,
+       0x488: 0x9f, 0x489: 0x9f, 0x48a: 0x9f, 0x48b: 0x9f, 0x48c: 0x9f, 0x48d: 0x9f, 0x48e: 0x9f, 0x48f: 0x9f,
+       0x490: 0x147, 0x491: 0xba, 0x492: 0xba, 0x493: 0xba, 0x494: 0xba, 0x495: 0xba, 0x496: 0xba, 0x497: 0xba,
+       0x498: 0xba, 0x499: 0xba, 0x49a: 0xba, 0x49b: 0xba, 0x49c: 0xba, 0x49d: 0xba, 0x49e: 0xba, 0x49f: 0xba,
+       0x4a0: 0xba, 0x4a1: 0xba, 0x4a2: 0xba, 0x4a3: 0xba, 0x4a4: 0xba, 0x4a5: 0xba, 0x4a6: 0xba, 0x4a7: 0xba,
+       0x4a8: 0xba, 0x4a9: 0xba, 0x4aa: 0xba, 0x4ab: 0xba, 0x4ac: 0xba, 0x4ad: 0xba, 0x4ae: 0xba, 0x4af: 0xba,
+       0x4b0: 0xba, 0x4b1: 0xba, 0x4b2: 0xba, 0x4b3: 0xba, 0x4b4: 0xba, 0x4b5: 0xba, 0x4b6: 0xba, 0x4b7: 0xba,
+       0x4b8: 0xba, 0x4b9: 0xba, 0x4ba: 0xba, 0x4bb: 0xba, 0x4bc: 0xba, 0x4bd: 0xba, 0x4be: 0xba, 0x4bf: 0xba,
+       // Block 0x13, offset 0x4c0
+       0x4c0: 0xba, 0x4c1: 0xba, 0x4c2: 0xba, 0x4c3: 0xba, 0x4c4: 0xba, 0x4c5: 0xba, 0x4c6: 0xba, 0x4c7: 0xba,
+       0x4c8: 0xba, 0x4c9: 0xba, 0x4ca: 0xba, 0x4cb: 0xba, 0x4cc: 0xba, 0x4cd: 0xba, 0x4ce: 0xba, 0x4cf: 0xba,
+       0x4d0: 0x9f, 0x4d1: 0x9f, 0x4d2: 0x9f, 0x4d3: 0x9f, 0x4d4: 0x9f, 0x4d5: 0x9f, 0x4d6: 0x9f, 0x4d7: 0x9f,
+       0x4d8: 0x9f, 0x4d9: 0x148, 0x4da: 0xba, 0x4db: 0xba, 0x4dc: 0xba, 0x4dd: 0xba, 0x4de: 0xba, 0x4df: 0xba,
+       0x4e0: 0xba, 0x4e1: 0xba, 0x4e2: 0xba, 0x4e3: 0xba, 0x4e4: 0xba, 0x4e5: 0xba, 0x4e6: 0xba, 0x4e7: 0xba,
+       0x4e8: 0xba, 0x4e9: 0xba, 0x4ea: 0xba, 0x4eb: 0xba, 0x4ec: 0xba, 0x4ed: 0xba, 0x4ee: 0xba, 0x4ef: 0xba,
+       0x4f0: 0xba, 0x4f1: 0xba, 0x4f2: 0xba, 0x4f3: 0xba, 0x4f4: 0xba, 0x4f5: 0xba, 0x4f6: 0xba, 0x4f7: 0xba,
+       0x4f8: 0xba, 0x4f9: 0xba, 0x4fa: 0xba, 0x4fb: 0xba, 0x4fc: 0xba, 0x4fd: 0xba, 0x4fe: 0xba, 0x4ff: 0xba,
+       // Block 0x14, offset 0x500
+       0x500: 0xba, 0x501: 0xba, 0x502: 0xba, 0x503: 0xba, 0x504: 0xba, 0x505: 0xba, 0x506: 0xba, 0x507: 0xba,
+       0x508: 0xba, 0x509: 0xba, 0x50a: 0xba, 0x50b: 0xba, 0x50c: 0xba, 0x50d: 0xba, 0x50e: 0xba, 0x50f: 0xba,
+       0x510: 0xba, 0x511: 0xba, 0x512: 0xba, 0x513: 0xba, 0x514: 0xba, 0x515: 0xba, 0x516: 0xba, 0x517: 0xba,
+       0x518: 0xba, 0x519: 0xba, 0x51a: 0xba, 0x51b: 0xba, 0x51c: 0xba, 0x51d: 0xba, 0x51e: 0xba, 0x51f: 0xba,
+       0x520: 0x9f, 0x521: 0x9f, 0x522: 0x9f, 0x523: 0x9f, 0x524: 0x9f, 0x525: 0x9f, 0x526: 0x9f, 0x527: 0x9f,
+       0x528: 0x140, 0x529: 0x149, 0x52a: 0xba, 0x52b: 0x14a, 0x52c: 0x14b, 0x52d: 0x14c, 0x52e: 0x14d, 0x52f: 0xba,
+       0x530: 0xba, 0x531: 0xba, 0x532: 0xba, 0x533: 0xba, 0x534: 0xba, 0x535: 0xba, 0x536: 0xba, 0x537: 0xba,
+       0x538: 0xba, 0x539: 0xba, 0x53a: 0xba, 0x53b: 0xba, 0x53c: 0x9f, 0x53d: 0x14e, 0x53e: 0x14f, 0x53f: 0x150,
+       // Block 0x15, offset 0x540
+       0x540: 0x9f, 0x541: 0x9f, 0x542: 0x9f, 0x543: 0x9f, 0x544: 0x9f, 0x545: 0x9f, 0x546: 0x9f, 0x547: 0x9f,
+       0x548: 0x9f, 0x549: 0x9f, 0x54a: 0x9f, 0x54b: 0x9f, 0x54c: 0x9f, 0x54d: 0x9f, 0x54e: 0x9f, 0x54f: 0x9f,
+       0x550: 0x9f, 0x551: 0x9f, 0x552: 0x9f, 0x553: 0x9f, 0x554: 0x9f, 0x555: 0x9f, 0x556: 0x9f, 0x557: 0x9f,
+       0x558: 0x9f, 0x559: 0x9f, 0x55a: 0x9f, 0x55b: 0x9f, 0x55c: 0x9f, 0x55d: 0x9f, 0x55e: 0x9f, 0x55f: 0x151,
+       0x560: 0x9f, 0x561: 0x9f, 0x562: 0x9f, 0x563: 0x9f, 0x564: 0x9f, 0x565: 0x9f, 0x566: 0x9f, 0x567: 0x9f,
+       0x568: 0x9f, 0x569: 0x9f, 0x56a: 0x9f, 0x56b: 0x152, 0x56c: 0xba, 0x56d: 0xba, 0x56e: 0xba, 0x56f: 0xba,
+       0x570: 0xba, 0x571: 0xba, 0x572: 0xba, 0x573: 0xba, 0x574: 0xba, 0x575: 0xba, 0x576: 0xba, 0x577: 0xba,
+       0x578: 0xba, 0x579: 0xba, 0x57a: 0xba, 0x57b: 0xba, 0x57c: 0xba, 0x57d: 0xba, 0x57e: 0xba, 0x57f: 0xba,
+       // Block 0x16, offset 0x580
+       0x580: 0x153, 0x581: 0xba, 0x582: 0xba, 0x583: 0xba, 0x584: 0xba, 0x585: 0xba, 0x586: 0xba, 0x587: 0xba,
+       0x588: 0xba, 0x589: 0xba, 0x58a: 0xba, 0x58b: 0xba, 0x58c: 0xba, 0x58d: 0xba, 0x58e: 0xba, 0x58f: 0xba,
+       0x590: 0xba, 0x591: 0xba, 0x592: 0xba, 0x593: 0xba, 0x594: 0xba, 0x595: 0xba, 0x596: 0xba, 0x597: 0xba,
+       0x598: 0xba, 0x599: 0xba, 0x59a: 0xba, 0x59b: 0xba, 0x59c: 0xba, 0x59d: 0xba, 0x59e: 0xba, 0x59f: 0xba,
+       0x5a0: 0xba, 0x5a1: 0xba, 0x5a2: 0xba, 0x5a3: 0xba, 0x5a4: 0xba, 0x5a5: 0xba, 0x5a6: 0xba, 0x5a7: 0xba,
+       0x5a8: 0xba, 0x5a9: 0xba, 0x5aa: 0xba, 0x5ab: 0xba, 0x5ac: 0xba, 0x5ad: 0xba, 0x5ae: 0xba, 0x5af: 0xba,
+       0x5b0: 0x9f, 0x5b1: 0x154, 0x5b2: 0x155, 0x5b3: 0xba, 0x5b4: 0xba, 0x5b5: 0xba, 0x5b6: 0xba, 0x5b7: 0xba,
+       0x5b8: 0xba, 0x5b9: 0xba, 0x5ba: 0xba, 0x5bb: 0xba, 0x5bc: 0xba, 0x5bd: 0xba, 0x5be: 0xba, 0x5bf: 0xba,
+       // Block 0x17, offset 0x5c0
+       0x5c0: 0x9b, 0x5c1: 0x9b, 0x5c2: 0x9b, 0x5c3: 0x156, 0x5c4: 0x157, 0x5c5: 0x158, 0x5c6: 0x159, 0x5c7: 0x15a,
+       0x5c8: 0x9b, 0x5c9: 0x15b, 0x5ca: 0xba, 0x5cb: 0xba, 0x5cc: 0x9b, 0x5cd: 0x15c, 0x5ce: 0xba, 0x5cf: 0xba,
+       0x5d0: 0x5e, 0x5d1: 0x5f, 0x5d2: 0x60, 0x5d3: 0x61, 0x5d4: 0x62, 0x5d5: 0x63, 0x5d6: 0x64, 0x5d7: 0x65,
+       0x5d8: 0x66, 0x5d9: 0x67, 0x5da: 0x68, 0x5db: 0x69, 0x5dc: 0x6a, 0x5dd: 0x6b, 0x5de: 0x6c, 0x5df: 0x6d,
+       0x5e0: 0x9b, 0x5e1: 0x9b, 0x5e2: 0x9b, 0x5e3: 0x9b, 0x5e4: 0x9b, 0x5e5: 0x9b, 0x5e6: 0x9b, 0x5e7: 0x9b,
+       0x5e8: 0x15d, 0x5e9: 0x15e, 0x5ea: 0x15f, 0x5eb: 0xba, 0x5ec: 0xba, 0x5ed: 0xba, 0x5ee: 0xba, 0x5ef: 0xba,
+       0x5f0: 0xba, 0x5f1: 0xba, 0x5f2: 0xba, 0x5f3: 0xba, 0x5f4: 0xba, 0x5f5: 0xba, 0x5f6: 0xba, 0x5f7: 0xba,
+       0x5f8: 0xba, 0x5f9: 0xba, 0x5fa: 0xba, 0x5fb: 0xba, 0x5fc: 0xba, 0x5fd: 0xba, 0x5fe: 0xba, 0x5ff: 0xba,
+       // Block 0x18, offset 0x600
+       0x600: 0x160, 0x601: 0xba, 0x602: 0xba, 0x603: 0xba, 0x604: 0xba, 0x605: 0xba, 0x606: 0xba, 0x607: 0xba,
+       0x608: 0xba, 0x609: 0xba, 0x60a: 0xba, 0x60b: 0xba, 0x60c: 0xba, 0x60d: 0xba, 0x60e: 0xba, 0x60f: 0xba,
+       0x610: 0xba, 0x611: 0xba, 0x612: 0xba, 0x613: 0xba, 0x614: 0xba, 0x615: 0xba, 0x616: 0xba, 0x617: 0xba,
+       0x618: 0xba, 0x619: 0xba, 0x61a: 0xba, 0x61b: 0xba, 0x61c: 0xba, 0x61d: 0xba, 0x61e: 0xba, 0x61f: 0xba,
+       0x620: 0x123, 0x621: 0x123, 0x622: 0x123, 0x623: 0x161, 0x624: 0x6e, 0x625: 0x162, 0x626: 0xba, 0x627: 0xba,
+       0x628: 0xba, 0x629: 0xba, 0x62a: 0xba, 0x62b: 0xba, 0x62c: 0xba, 0x62d: 0xba, 0x62e: 0xba, 0x62f: 0xba,
+       0x630: 0xba, 0x631: 0xba, 0x632: 0xba, 0x633: 0xba, 0x634: 0xba, 0x635: 0xba, 0x636: 0xba, 0x637: 0xba,
+       0x638: 0x6f, 0x639: 0x70, 0x63a: 0x71, 0x63b: 0x163, 0x63c: 0xba, 0x63d: 0xba, 0x63e: 0xba, 0x63f: 0xba,
+       // Block 0x19, offset 0x640
+       0x640: 0x164, 0x641: 0x9b, 0x642: 0x165, 0x643: 0x166, 0x644: 0x72, 0x645: 0x73, 0x646: 0x167, 0x647: 0x168,
+       0x648: 0x74, 0x649: 0x169, 0x64a: 0xba, 0x64b: 0xba, 0x64c: 0x9b, 0x64d: 0x9b, 0x64e: 0x9b, 0x64f: 0x9b,
+       0x650: 0x9b, 0x651: 0x9b, 0x652: 0x9b, 0x653: 0x9b, 0x654: 0x9b, 0x655: 0x9b, 0x656: 0x9b, 0x657: 0x9b,
+       0x658: 0x9b, 0x659: 0x9b, 0x65a: 0x9b, 0x65b: 0x16a, 0x65c: 0x9b, 0x65d: 0x16b, 0x65e: 0x9b, 0x65f: 0x16c,
+       0x660: 0x16d, 0x661: 0x16e, 0x662: 0x16f, 0x663: 0xba, 0x664: 0x170, 0x665: 0x171, 0x666: 0x172, 0x667: 0x173,
+       0x668: 0xba, 0x669: 0xba, 0x66a: 0xba, 0x66b: 0xba, 0x66c: 0xba, 0x66d: 0xba, 0x66e: 0xba, 0x66f: 0xba,
+       0x670: 0xba, 0x671: 0xba, 0x672: 0xba, 0x673: 0xba, 0x674: 0xba, 0x675: 0xba, 0x676: 0xba, 0x677: 0xba,
+       0x678: 0xba, 0x679: 0xba, 0x67a: 0xba, 0x67b: 0xba, 0x67c: 0xba, 0x67d: 0xba, 0x67e: 0xba, 0x67f: 0xba,
+       // Block 0x1a, offset 0x680
+       0x680: 0x9f, 0x681: 0x9f, 0x682: 0x9f, 0x683: 0x9f, 0x684: 0x9f, 0x685: 0x9f, 0x686: 0x9f, 0x687: 0x9f,
+       0x688: 0x9f, 0x689: 0x9f, 0x68a: 0x9f, 0x68b: 0x9f, 0x68c: 0x9f, 0x68d: 0x9f, 0x68e: 0x9f, 0x68f: 0x9f,
+       0x690: 0x9f, 0x691: 0x9f, 0x692: 0x9f, 0x693: 0x9f, 0x694: 0x9f, 0x695: 0x9f, 0x696: 0x9f, 0x697: 0x9f,
+       0x698: 0x9f, 0x699: 0x9f, 0x69a: 0x9f, 0x69b: 0x174, 0x69c: 0x9f, 0x69d: 0x9f, 0x69e: 0x9f, 0x69f: 0x9f,
+       0x6a0: 0x9f, 0x6a1: 0x9f, 0x6a2: 0x9f, 0x6a3: 0x9f, 0x6a4: 0x9f, 0x6a5: 0x9f, 0x6a6: 0x9f, 0x6a7: 0x9f,
+       0x6a8: 0x9f, 0x6a9: 0x9f, 0x6aa: 0x9f, 0x6ab: 0x9f, 0x6ac: 0x9f, 0x6ad: 0x9f, 0x6ae: 0x9f, 0x6af: 0x9f,
+       0x6b0: 0x9f, 0x6b1: 0x9f, 0x6b2: 0x9f, 0x6b3: 0x9f, 0x6b4: 0x9f, 0x6b5: 0x9f, 0x6b6: 0x9f, 0x6b7: 0x9f,
+       0x6b8: 0x9f, 0x6b9: 0x9f, 0x6ba: 0x9f, 0x6bb: 0x9f, 0x6bc: 0x9f, 0x6bd: 0x9f, 0x6be: 0x9f, 0x6bf: 0x9f,
+       // Block 0x1b, offset 0x6c0
+       0x6c0: 0x9f, 0x6c1: 0x9f, 0x6c2: 0x9f, 0x6c3: 0x9f, 0x6c4: 0x9f, 0x6c5: 0x9f, 0x6c6: 0x9f, 0x6c7: 0x9f,
+       0x6c8: 0x9f, 0x6c9: 0x9f, 0x6ca: 0x9f, 0x6cb: 0x9f, 0x6cc: 0x9f, 0x6cd: 0x9f, 0x6ce: 0x9f, 0x6cf: 0x9f,
+       0x6d0: 0x9f, 0x6d1: 0x9f, 0x6d2: 0x9f, 0x6d3: 0x9f, 0x6d4: 0x9f, 0x6d5: 0x9f, 0x6d6: 0x9f, 0x6d7: 0x9f,
+       0x6d8: 0x9f, 0x6d9: 0x9f, 0x6da: 0x9f, 0x6db: 0x9f, 0x6dc: 0x175, 0x6dd: 0x9f, 0x6de: 0x9f, 0x6df: 0x9f,
+       0x6e0: 0x176, 0x6e1: 0x9f, 0x6e2: 0x9f, 0x6e3: 0x9f, 0x6e4: 0x9f, 0x6e5: 0x9f, 0x6e6: 0x9f, 0x6e7: 0x9f,
+       0x6e8: 0x9f, 0x6e9: 0x9f, 0x6ea: 0x9f, 0x6eb: 0x9f, 0x6ec: 0x9f, 0x6ed: 0x9f, 0x6ee: 0x9f, 0x6ef: 0x9f,
+       0x6f0: 0x9f, 0x6f1: 0x9f, 0x6f2: 0x9f, 0x6f3: 0x9f, 0x6f4: 0x9f, 0x6f5: 0x9f, 0x6f6: 0x9f, 0x6f7: 0x9f,
+       0x6f8: 0x9f, 0x6f9: 0x9f, 0x6fa: 0x9f, 0x6fb: 0x9f, 0x6fc: 0x9f, 0x6fd: 0x9f, 0x6fe: 0x9f, 0x6ff: 0x9f,
+       // Block 0x1c, offset 0x700
+       0x700: 0x9f, 0x701: 0x9f, 0x702: 0x9f, 0x703: 0x9f, 0x704: 0x9f, 0x705: 0x9f, 0x706: 0x9f, 0x707: 0x9f,
+       0x708: 0x9f, 0x709: 0x9f, 0x70a: 0x9f, 0x70b: 0x9f, 0x70c: 0x9f, 0x70d: 0x9f, 0x70e: 0x9f, 0x70f: 0x9f,
+       0x710: 0x9f, 0x711: 0x9f, 0x712: 0x9f, 0x713: 0x9f, 0x714: 0x9f, 0x715: 0x9f, 0x716: 0x9f, 0x717: 0x9f,
+       0x718: 0x9f, 0x719: 0x9f, 0x71a: 0x9f, 0x71b: 0x9f, 0x71c: 0x9f, 0x71d: 0x9f, 0x71e: 0x9f, 0x71f: 0x9f,
+       0x720: 0x9f, 0x721: 0x9f, 0x722: 0x9f, 0x723: 0x9f, 0x724: 0x9f, 0x725: 0x9f, 0x726: 0x9f, 0x727: 0x9f,
+       0x728: 0x9f, 0x729: 0x9f, 0x72a: 0x9f, 0x72b: 0x9f, 0x72c: 0x9f, 0x72d: 0x9f, 0x72e: 0x9f, 0x72f: 0x9f,
+       0x730: 0x9f, 0x731: 0x9f, 0x732: 0x9f, 0x733: 0x9f, 0x734: 0x9f, 0x735: 0x9f, 0x736: 0x9f, 0x737: 0x9f,
+       0x738: 0x9f, 0x739: 0x9f, 0x73a: 0x177, 0x73b: 0xba, 0x73c: 0xba, 0x73d: 0xba, 0x73e: 0xba, 0x73f: 0xba,
+       // Block 0x1d, offset 0x740
+       0x740: 0xba, 0x741: 0xba, 0x742: 0xba, 0x743: 0xba, 0x744: 0xba, 0x745: 0xba, 0x746: 0xba, 0x747: 0xba,
+       0x748: 0xba, 0x749: 0xba, 0x74a: 0xba, 0x74b: 0xba, 0x74c: 0xba, 0x74d: 0xba, 0x74e: 0xba, 0x74f: 0xba,
+       0x750: 0xba, 0x751: 0xba, 0x752: 0xba, 0x753: 0xba, 0x754: 0xba, 0x755: 0xba, 0x756: 0xba, 0x757: 0xba,
+       0x758: 0xba, 0x759: 0xba, 0x75a: 0xba, 0x75b: 0xba, 0x75c: 0xba, 0x75d: 0xba, 0x75e: 0xba, 0x75f: 0xba,
+       0x760: 0x75, 0x761: 0x76, 0x762: 0x77, 0x763: 0x178, 0x764: 0x78, 0x765: 0x79, 0x766: 0x179, 0x767: 0x7a,
+       0x768: 0x7b, 0x769: 0xba, 0x76a: 0xba, 0x76b: 0xba, 0x76c: 0xba, 0x76d: 0xba, 0x76e: 0xba, 0x76f: 0xba,
+       0x770: 0xba, 0x771: 0xba, 0x772: 0xba, 0x773: 0xba, 0x774: 0xba, 0x775: 0xba, 0x776: 0xba, 0x777: 0xba,
+       0x778: 0xba, 0x779: 0xba, 0x77a: 0xba, 0x77b: 0xba, 0x77c: 0xba, 0x77d: 0xba, 0x77e: 0xba, 0x77f: 0xba,
+       // Block 0x1e, offset 0x780
+       0x790: 0x0d, 0x791: 0x0e, 0x792: 0x0f, 0x793: 0x10, 0x794: 0x11, 0x795: 0x0b, 0x796: 0x12, 0x797: 0x07,
+       0x798: 0x13, 0x799: 0x0b, 0x79a: 0x0b, 0x79b: 0x14, 0x79c: 0x0b, 0x79d: 0x15, 0x79e: 0x16, 0x79f: 0x17,
+       0x7a0: 0x07, 0x7a1: 0x07, 0x7a2: 0x07, 0x7a3: 0x07, 0x7a4: 0x07, 0x7a5: 0x07, 0x7a6: 0x07, 0x7a7: 0x07,
+       0x7a8: 0x07, 0x7a9: 0x07, 0x7aa: 0x18, 0x7ab: 0x19, 0x7ac: 0x1a, 0x7ad: 0x0b, 0x7ae: 0x0b, 0x7af: 0x1b,
+       0x7b0: 0x0b, 0x7b1: 0x0b, 0x7b2: 0x0b, 0x7b3: 0x0b, 0x7b4: 0x0b, 0x7b5: 0x0b, 0x7b6: 0x0b, 0x7b7: 0x0b,
+       0x7b8: 0x0b, 0x7b9: 0x0b, 0x7ba: 0x0b, 0x7bb: 0x0b, 0x7bc: 0x0b, 0x7bd: 0x0b, 0x7be: 0x0b, 0x7bf: 0x0b,
+       // Block 0x1f, offset 0x7c0
+       0x7c0: 0x0b, 0x7c1: 0x0b, 0x7c2: 0x0b, 0x7c3: 0x0b, 0x7c4: 0x0b, 0x7c5: 0x0b, 0x7c6: 0x0b, 0x7c7: 0x0b,
+       0x7c8: 0x0b, 0x7c9: 0x0b, 0x7ca: 0x0b, 0x7cb: 0x0b, 0x7cc: 0x0b, 0x7cd: 0x0b, 0x7ce: 0x0b, 0x7cf: 0x0b,
+       0x7d0: 0x0b, 0x7d1: 0x0b, 0x7d2: 0x0b, 0x7d3: 0x0b, 0x7d4: 0x0b, 0x7d5: 0x0b, 0x7d6: 0x0b, 0x7d7: 0x0b,
+       0x7d8: 0x0b, 0x7d9: 0x0b, 0x7da: 0x0b, 0x7db: 0x0b, 0x7dc: 0x0b, 0x7dd: 0x0b, 0x7de: 0x0b, 0x7df: 0x0b,
+       0x7e0: 0x0b, 0x7e1: 0x0b, 0x7e2: 0x0b, 0x7e3: 0x0b, 0x7e4: 0x0b, 0x7e5: 0x0b, 0x7e6: 0x0b, 0x7e7: 0x0b,
+       0x7e8: 0x0b, 0x7e9: 0x0b, 0x7ea: 0x0b, 0x7eb: 0x0b, 0x7ec: 0x0b, 0x7ed: 0x0b, 0x7ee: 0x0b, 0x7ef: 0x0b,
+       0x7f0: 0x0b, 0x7f1: 0x0b, 0x7f2: 0x0b, 0x7f3: 0x0b, 0x7f4: 0x0b, 0x7f5: 0x0b, 0x7f6: 0x0b, 0x7f7: 0x0b,
+       0x7f8: 0x0b, 0x7f9: 0x0b, 0x7fa: 0x0b, 0x7fb: 0x0b, 0x7fc: 0x0b, 0x7fd: 0x0b, 0x7fe: 0x0b, 0x7ff: 0x0b,
+       // Block 0x20, offset 0x800
+       0x800: 0x17a, 0x801: 0x17b, 0x802: 0xba, 0x803: 0xba, 0x804: 0x17c, 0x805: 0x17c, 0x806: 0x17c, 0x807: 0x17d,
+       0x808: 0xba, 0x809: 0xba, 0x80a: 0xba, 0x80b: 0xba, 0x80c: 0xba, 0x80d: 0xba, 0x80e: 0xba, 0x80f: 0xba,
+       0x810: 0xba, 0x811: 0xba, 0x812: 0xba, 0x813: 0xba, 0x814: 0xba, 0x815: 0xba, 0x816: 0xba, 0x817: 0xba,
+       0x818: 0xba, 0x819: 0xba, 0x81a: 0xba, 0x81b: 0xba, 0x81c: 0xba, 0x81d: 0xba, 0x81e: 0xba, 0x81f: 0xba,
+       0x820: 0xba, 0x821: 0xba, 0x822: 0xba, 0x823: 0xba, 0x824: 0xba, 0x825: 0xba, 0x826: 0xba, 0x827: 0xba,
+       0x828: 0xba, 0x829: 0xba, 0x82a: 0xba, 0x82b: 0xba, 0x82c: 0xba, 0x82d: 0xba, 0x82e: 0xba, 0x82f: 0xba,
+       0x830: 0xba, 0x831: 0xba, 0x832: 0xba, 0x833: 0xba, 0x834: 0xba, 0x835: 0xba, 0x836: 0xba, 0x837: 0xba,
+       0x838: 0xba, 0x839: 0xba, 0x83a: 0xba, 0x83b: 0xba, 0x83c: 0xba, 0x83d: 0xba, 0x83e: 0xba, 0x83f: 0xba,
+       // Block 0x21, offset 0x840
+       0x840: 0x0b, 0x841: 0x0b, 0x842: 0x0b, 0x843: 0x0b, 0x844: 0x0b, 0x845: 0x0b, 0x846: 0x0b, 0x847: 0x0b,
+       0x848: 0x0b, 0x849: 0x0b, 0x84a: 0x0b, 0x84b: 0x0b, 0x84c: 0x0b, 0x84d: 0x0b, 0x84e: 0x0b, 0x84f: 0x0b,
+       0x850: 0x0b, 0x851: 0x0b, 0x852: 0x0b, 0x853: 0x0b, 0x854: 0x0b, 0x855: 0x0b, 0x856: 0x0b, 0x857: 0x0b,
+       0x858: 0x0b, 0x859: 0x0b, 0x85a: 0x0b, 0x85b: 0x0b, 0x85c: 0x0b, 0x85d: 0x0b, 0x85e: 0x0b, 0x85f: 0x0b,
+       0x860: 0x1e, 0x861: 0x0b, 0x862: 0x0b, 0x863: 0x0b, 0x864: 0x0b, 0x865: 0x0b, 0x866: 0x0b, 0x867: 0x0b,
+       0x868: 0x0b, 0x869: 0x0b, 0x86a: 0x0b, 0x86b: 0x0b, 0x86c: 0x0b, 0x86d: 0x0b, 0x86e: 0x0b, 0x86f: 0x0b,
+       0x870: 0x0b, 0x871: 0x0b, 0x872: 0x0b, 0x873: 0x0b, 0x874: 0x0b, 0x875: 0x0b, 0x876: 0x0b, 0x877: 0x0b,
+       0x878: 0x0b, 0x879: 0x0b, 0x87a: 0x0b, 0x87b: 0x0b, 0x87c: 0x0b, 0x87d: 0x0b, 0x87e: 0x0b, 0x87f: 0x0b,
+       // Block 0x22, offset 0x880
+       0x880: 0x0b, 0x881: 0x0b, 0x882: 0x0b, 0x883: 0x0b, 0x884: 0x0b, 0x885: 0x0b, 0x886: 0x0b, 0x887: 0x0b,
+       0x888: 0x0b, 0x889: 0x0b, 0x88a: 0x0b, 0x88b: 0x0b, 0x88c: 0x0b, 0x88d: 0x0b, 0x88e: 0x0b, 0x88f: 0x0b,
+}
+
+// idnaSparseOffset: 258 entries, 516 bytes
+var idnaSparseOffset = []uint16{0x0, 0x8, 0x19, 0x25, 0x27, 0x2c, 0x34, 0x3f, 0x4b, 0x4f, 0x5e, 0x63, 0x6b, 0x77, 0x85, 0x93, 0x98, 0xa1, 0xb1, 0xbf, 0xcc, 0xd8, 0xe9, 0xf3, 0xfa, 0x107, 0x118, 0x11f, 0x12a, 0x139, 0x147, 0x151, 0x153, 0x158, 0x15b, 0x15e, 0x160, 0x16c, 0x177, 0x17f, 0x185, 0x18b, 0x190, 0x195, 0x198, 0x19c, 0x1a2, 0x1a7, 0x1b3, 0x1bd, 0x1c3, 0x1d4, 0x1de, 0x1e1, 0x1e9, 0x1ec, 0x1f9, 0x201, 0x205, 0x20c, 0x214, 0x224, 0x230, 0x232, 0x23c, 0x248, 0x254, 0x260, 0x268, 0x26d, 0x277, 0x288, 0x28c, 0x297, 0x29b, 0x2a4, 0x2ac, 0x2b2, 0x2b7, 0x2ba, 0x2bd, 0x2c1, 0x2c7, 0x2cb, 0x2cf, 0x2d5, 0x2dc, 0x2e2, 0x2ea, 0x2f1, 0x2fc, 0x306, 0x30a, 0x30d, 0x313, 0x317, 0x319, 0x31c, 0x31e, 0x321, 0x32b, 0x32e, 0x33d, 0x341, 0x346, 0x349, 0x34d, 0x352, 0x357, 0x35d, 0x363, 0x372, 0x378, 0x37c, 0x38b, 0x390, 0x398, 0x3a2, 0x3ad, 0x3b5, 0x3c6, 0x3cf, 0x3df, 0x3ec, 0x3f6, 0x3fb, 0x408, 0x40c, 0x411, 0x413, 0x417, 0x419, 0x41d, 0x426, 0x42c, 0x430, 0x440, 0x44a, 0x44f, 0x452, 0x458, 0x45f, 0x464, 0x468, 0x46e, 0x473, 0x47c, 0x481, 0x487, 0x48e, 0x495, 0x49c, 0x4a0, 0x4a5, 0x4a8, 0x4ad, 0x4b9, 0x4bf, 0x4c4, 0x4cb, 0x4d3, 0x4d8, 0x4dc, 0x4ec, 0x4f3, 0x4f7, 0x4fb, 0x502, 0x504, 0x507, 0x50a, 0x50e, 0x512, 0x518, 0x521, 0x52d, 0x534, 0x53d, 0x545, 0x54c, 0x55a, 0x567, 0x574, 0x57d, 0x581, 0x58f, 0x597, 0x5a2, 0x5ab, 0x5b1, 0x5b9, 0x5c2, 0x5cc, 0x5cf, 0x5db, 0x5de, 0x5e3, 0x5e6, 0x5f0, 0x5f9, 0x605, 0x608, 0x60d, 0x610, 0x613, 0x616, 0x61d, 0x624, 0x628, 0x633, 0x636, 0x63c, 0x641, 0x645, 0x648, 0x64b, 0x64e, 0x653, 0x65d, 0x660, 0x664, 0x673, 0x67f, 0x683, 0x688, 0x68d, 0x691, 0x696, 0x69f, 0x6aa, 0x6b0, 0x6b8, 0x6bc, 0x6c0, 0x6c6, 0x6cc, 0x6d1, 0x6d4, 0x6e2, 0x6e9, 0x6ec, 0x6ef, 0x6f3, 0x6f9, 0x6fe, 0x708, 0x70d, 0x710, 0x713, 0x716, 0x719, 0x71d, 0x720, 0x730, 0x741, 0x746, 0x748, 0x74a}
+
+// idnaSparseValues: 1869 entries, 7476 bytes
+var idnaSparseValues = [1869]valueRange{
+       // Block 0x0, offset 0x0
+       {value: 0x0000, lo: 0x07},
+       {value: 0xe105, lo: 0x80, hi: 0x96},
+       {value: 0x0018, lo: 0x97, hi: 0x97},
+       {value: 0xe105, lo: 0x98, hi: 0x9e},
+       {value: 0x001f, lo: 0x9f, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xb6},
+       {value: 0x0018, lo: 0xb7, hi: 0xb7},
+       {value: 0x0008, lo: 0xb8, hi: 0xbf},
+       // Block 0x1, offset 0x8
+       {value: 0x0000, lo: 0x10},
+       {value: 0x0008, lo: 0x80, hi: 0x80},
+       {value: 0xe01d, lo: 0x81, hi: 0x81},
+       {value: 0x0008, lo: 0x82, hi: 0x82},
+       {value: 0x0335, lo: 0x83, hi: 0x83},
+       {value: 0x034d, lo: 0x84, hi: 0x84},
+       {value: 0x0365, lo: 0x85, hi: 0x85},
+       {value: 0xe00d, lo: 0x86, hi: 0x86},
+       {value: 0x0008, lo: 0x87, hi: 0x87},
+       {value: 0xe00d, lo: 0x88, hi: 0x88},
+       {value: 0x0008, lo: 0x89, hi: 0x89},
+       {value: 0xe00d, lo: 0x8a, hi: 0x8a},
+       {value: 0x0008, lo: 0x8b, hi: 0x8b},
+       {value: 0xe00d, lo: 0x8c, hi: 0x8c},
+       {value: 0x0008, lo: 0x8d, hi: 0x8d},
+       {value: 0xe00d, lo: 0x8e, hi: 0x8e},
+       {value: 0x0008, lo: 0x8f, hi: 0xbf},
+       // Block 0x2, offset 0x19
+       {value: 0x0000, lo: 0x0b},
+       {value: 0x0008, lo: 0x80, hi: 0xaf},
+       {value: 0x0249, lo: 0xb0, hi: 0xb0},
+       {value: 0x037d, lo: 0xb1, hi: 0xb1},
+       {value: 0x0259, lo: 0xb2, hi: 0xb2},
+       {value: 0x0269, lo: 0xb3, hi: 0xb3},
+       {value: 0x034d, lo: 0xb4, hi: 0xb4},
+       {value: 0x0395, lo: 0xb5, hi: 0xb5},
+       {value: 0xe1bd, lo: 0xb6, hi: 0xb6},
+       {value: 0x0279, lo: 0xb7, hi: 0xb7},
+       {value: 0x0289, lo: 0xb8, hi: 0xb8},
+       {value: 0x0008, lo: 0xb9, hi: 0xbf},
+       // Block 0x3, offset 0x25
+       {value: 0x0000, lo: 0x01},
+       {value: 0x3308, lo: 0x80, hi: 0xbf},
+       // Block 0x4, offset 0x27
+       {value: 0x0000, lo: 0x04},
+       {value: 0x03f5, lo: 0x80, hi: 0x8f},
+       {value: 0xe105, lo: 0x90, hi: 0x9f},
+       {value: 0x049d, lo: 0xa0, hi: 0xaf},
+       {value: 0x0008, lo: 0xb0, hi: 0xbf},
+       // Block 0x5, offset 0x2c
+       {value: 0x0000, lo: 0x07},
+       {value: 0xe185, lo: 0x80, hi: 0x8f},
+       {value: 0x0545, lo: 0x90, hi: 0x96},
+       {value: 0x0040, lo: 0x97, hi: 0x98},
+       {value: 0x0008, lo: 0x99, hi: 0x99},
+       {value: 0x0018, lo: 0x9a, hi: 0x9f},
+       {value: 0x0040, lo: 0xa0, hi: 0xa0},
+       {value: 0x0008, lo: 0xa1, hi: 0xbf},
+       // Block 0x6, offset 0x34
+       {value: 0x0000, lo: 0x0a},
+       {value: 0x0008, lo: 0x80, hi: 0x86},
+       {value: 0x0401, lo: 0x87, hi: 0x87},
+       {value: 0x0040, lo: 0x88, hi: 0x88},
+       {value: 0x0018, lo: 0x89, hi: 0x8a},
+       {value: 0x0040, lo: 0x8b, hi: 0x8c},
+       {value: 0x0018, lo: 0x8d, hi: 0x8f},
+       {value: 0x0040, lo: 0x90, hi: 0x90},
+       {value: 0x3308, lo: 0x91, hi: 0xbd},
+       {value: 0x0818, lo: 0xbe, hi: 0xbe},
+       {value: 0x3308, lo: 0xbf, hi: 0xbf},
+       // Block 0x7, offset 0x3f
+       {value: 0x0000, lo: 0x0b},
+       {value: 0x0818, lo: 0x80, hi: 0x80},
+       {value: 0x3308, lo: 0x81, hi: 0x82},
+       {value: 0x0818, lo: 0x83, hi: 0x83},
+       {value: 0x3308, lo: 0x84, hi: 0x85},
+       {value: 0x0818, lo: 0x86, hi: 0x86},
+       {value: 0x3308, lo: 0x87, hi: 0x87},
+       {value: 0x0040, lo: 0x88, hi: 0x8f},
+       {value: 0x0808, lo: 0x90, hi: 0xaa},
+       {value: 0x0040, lo: 0xab, hi: 0xaf},
+       {value: 0x0808, lo: 0xb0, hi: 0xb4},
+       {value: 0x0040, lo: 0xb5, hi: 0xbf},
+       // Block 0x8, offset 0x4b
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0a08, lo: 0x80, hi: 0x87},
+       {value: 0x0c08, lo: 0x88, hi: 0x99},
+       {value: 0x0a08, lo: 0x9a, hi: 0xbf},
+       // Block 0x9, offset 0x4f
+       {value: 0x0000, lo: 0x0e},
+       {value: 0x3308, lo: 0x80, hi: 0x8a},
+       {value: 0x0040, lo: 0x8b, hi: 0x8c},
+       {value: 0x0c08, lo: 0x8d, hi: 0x8d},
+       {value: 0x0a08, lo: 0x8e, hi: 0x98},
+       {value: 0x0c08, lo: 0x99, hi: 0x9b},
+       {value: 0x0a08, lo: 0x9c, hi: 0xaa},
+       {value: 0x0c08, lo: 0xab, hi: 0xac},
+       {value: 0x0a08, lo: 0xad, hi: 0xb0},
+       {value: 0x0c08, lo: 0xb1, hi: 0xb1},
+       {value: 0x0a08, lo: 0xb2, hi: 0xb2},
+       {value: 0x0c08, lo: 0xb3, hi: 0xb4},
+       {value: 0x0a08, lo: 0xb5, hi: 0xb7},
+       {value: 0x0c08, lo: 0xb8, hi: 0xb9},
+       {value: 0x0a08, lo: 0xba, hi: 0xbf},
+       // Block 0xa, offset 0x5e
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0808, lo: 0x80, hi: 0xa5},
+       {value: 0x3308, lo: 0xa6, hi: 0xb0},
+       {value: 0x0808, lo: 0xb1, hi: 0xb1},
+       {value: 0x0040, lo: 0xb2, hi: 0xbf},
+       // Block 0xb, offset 0x63
+       {value: 0x0000, lo: 0x07},
+       {value: 0x0808, lo: 0x80, hi: 0x89},
+       {value: 0x0a08, lo: 0x8a, hi: 0xaa},
+       {value: 0x3308, lo: 0xab, hi: 0xb3},
+       {value: 0x0808, lo: 0xb4, hi: 0xb5},
+       {value: 0x0018, lo: 0xb6, hi: 0xb9},
+       {value: 0x0818, lo: 0xba, hi: 0xba},
+       {value: 0x0040, lo: 0xbb, hi: 0xbf},
+       // Block 0xc, offset 0x6b
+       {value: 0x0000, lo: 0x0b},
+       {value: 0x0808, lo: 0x80, hi: 0x95},
+       {value: 0x3308, lo: 0x96, hi: 0x99},
+       {value: 0x0808, lo: 0x9a, hi: 0x9a},
+       {value: 0x3308, lo: 0x9b, hi: 0xa3},
+       {value: 0x0808, lo: 0xa4, hi: 0xa4},
+       {value: 0x3308, lo: 0xa5, hi: 0xa7},
+       {value: 0x0808, lo: 0xa8, hi: 0xa8},
+       {value: 0x3308, lo: 0xa9, hi: 0xad},
+       {value: 0x0040, lo: 0xae, hi: 0xaf},
+       {value: 0x0818, lo: 0xb0, hi: 0xbe},
+       {value: 0x0040, lo: 0xbf, hi: 0xbf},
+       // Block 0xd, offset 0x77
+       {value: 0x0000, lo: 0x0d},
+       {value: 0x0c08, lo: 0x80, hi: 0x80},
+       {value: 0x0a08, lo: 0x81, hi: 0x85},
+       {value: 0x0c08, lo: 0x86, hi: 0x87},
+       {value: 0x0a08, lo: 0x88, hi: 0x88},
+       {value: 0x0c08, lo: 0x89, hi: 0x89},
+       {value: 0x0a08, lo: 0x8a, hi: 0x93},
+       {value: 0x0c08, lo: 0x94, hi: 0x94},
+       {value: 0x0a08, lo: 0x95, hi: 0x95},
+       {value: 0x0808, lo: 0x96, hi: 0x98},
+       {value: 0x3308, lo: 0x99, hi: 0x9b},
+       {value: 0x0040, lo: 0x9c, hi: 0x9d},
+       {value: 0x0818, lo: 0x9e, hi: 0x9e},
+       {value: 0x0040, lo: 0x9f, hi: 0xbf},
+       // Block 0xe, offset 0x85
+       {value: 0x0000, lo: 0x0d},
+       {value: 0x0040, lo: 0x80, hi: 0x9f},
+       {value: 0x0a08, lo: 0xa0, hi: 0xa9},
+       {value: 0x0c08, lo: 0xaa, hi: 0xac},
+       {value: 0x0808, lo: 0xad, hi: 0xad},
+       {value: 0x0c08, lo: 0xae, hi: 0xae},
+       {value: 0x0a08, lo: 0xaf, hi: 0xb0},
+       {value: 0x0c08, lo: 0xb1, hi: 0xb2},
+       {value: 0x0a08, lo: 0xb3, hi: 0xb4},
+       {value: 0x0040, lo: 0xb5, hi: 0xb5},
+       {value: 0x0a08, lo: 0xb6, hi: 0xb8},
+       {value: 0x0c08, lo: 0xb9, hi: 0xb9},
+       {value: 0x0a08, lo: 0xba, hi: 0xbd},
+       {value: 0x0040, lo: 0xbe, hi: 0xbf},
+       // Block 0xf, offset 0x93
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0040, lo: 0x80, hi: 0x93},
+       {value: 0x3308, lo: 0x94, hi: 0xa1},
+       {value: 0x0840, lo: 0xa2, hi: 0xa2},
+       {value: 0x3308, lo: 0xa3, hi: 0xbf},
+       // Block 0x10, offset 0x98
+       {value: 0x0000, lo: 0x08},
+       {value: 0x3308, lo: 0x80, hi: 0x82},
+       {value: 0x3008, lo: 0x83, hi: 0x83},
+       {value: 0x0008, lo: 0x84, hi: 0xb9},
+       {value: 0x3308, lo: 0xba, hi: 0xba},
+       {value: 0x3008, lo: 0xbb, hi: 0xbb},
+       {value: 0x3308, lo: 0xbc, hi: 0xbc},
+       {value: 0x0008, lo: 0xbd, hi: 0xbd},
+       {value: 0x3008, lo: 0xbe, hi: 0xbf},
+       // Block 0x11, offset 0xa1
+       {value: 0x0000, lo: 0x0f},
+       {value: 0x3308, lo: 0x80, hi: 0x80},
+       {value: 0x3008, lo: 0x81, hi: 0x82},
+       {value: 0x0040, lo: 0x83, hi: 0x85},
+       {value: 0x3008, lo: 0x86, hi: 0x88},
+       {value: 0x0040, lo: 0x89, hi: 0x89},
+       {value: 0x3008, lo: 0x8a, hi: 0x8c},
+       {value: 0x3b08, lo: 0x8d, hi: 0x8d},
+       {value: 0x0040, lo: 0x8e, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x90},
+       {value: 0x0040, lo: 0x91, hi: 0x96},
+       {value: 0x3008, lo: 0x97, hi: 0x97},
+       {value: 0x0040, lo: 0x98, hi: 0xa5},
+       {value: 0x0008, lo: 0xa6, hi: 0xaf},
+       {value: 0x0018, lo: 0xb0, hi: 0xba},
+       {value: 0x0040, lo: 0xbb, hi: 0xbf},
+       // Block 0x12, offset 0xb1
+       {value: 0x0000, lo: 0x0d},
+       {value: 0x3308, lo: 0x80, hi: 0x80},
+       {value: 0x3008, lo: 0x81, hi: 0x83},
+       {value: 0x0040, lo: 0x84, hi: 0x84},
+       {value: 0x0008, lo: 0x85, hi: 0x8c},
+       {value: 0x0040, lo: 0x8d, hi: 0x8d},
+       {value: 0x0008, lo: 0x8e, hi: 0x90},
+       {value: 0x0040, lo: 0x91, hi: 0x91},
+       {value: 0x0008, lo: 0x92, hi: 0xa8},
+       {value: 0x0040, lo: 0xa9, hi: 0xa9},
+       {value: 0x0008, lo: 0xaa, hi: 0xb9},
+       {value: 0x0040, lo: 0xba, hi: 0xbc},
+       {value: 0x0008, lo: 0xbd, hi: 0xbd},
+       {value: 0x3308, lo: 0xbe, hi: 0xbf},
+       // Block 0x13, offset 0xbf
+       {value: 0x0000, lo: 0x0c},
+       {value: 0x0040, lo: 0x80, hi: 0x80},
+       {value: 0x3308, lo: 0x81, hi: 0x81},
+       {value: 0x3008, lo: 0x82, hi: 0x83},
+       {value: 0x0040, lo: 0x84, hi: 0x84},
+       {value: 0x0008, lo: 0x85, hi: 0x8c},
+       {value: 0x0040, lo: 0x8d, hi: 0x8d},
+       {value: 0x0008, lo: 0x8e, hi: 0x90},
+       {value: 0x0040, lo: 0x91, hi: 0x91},
+       {value: 0x0008, lo: 0x92, hi: 0xba},
+       {value: 0x0040, lo: 0xbb, hi: 0xbc},
+       {value: 0x0008, lo: 0xbd, hi: 0xbd},
+       {value: 0x3008, lo: 0xbe, hi: 0xbf},
+       // Block 0x14, offset 0xcc
+       {value: 0x0000, lo: 0x0b},
+       {value: 0x0040, lo: 0x80, hi: 0x81},
+       {value: 0x3008, lo: 0x82, hi: 0x83},
+       {value: 0x0040, lo: 0x84, hi: 0x84},
+       {value: 0x0008, lo: 0x85, hi: 0x96},
+       {value: 0x0040, lo: 0x97, hi: 0x99},
+       {value: 0x0008, lo: 0x9a, hi: 0xb1},
+       {value: 0x0040, lo: 0xb2, hi: 0xb2},
+       {value: 0x0008, lo: 0xb3, hi: 0xbb},
+       {value: 0x0040, lo: 0xbc, hi: 0xbc},
+       {value: 0x0008, lo: 0xbd, hi: 0xbd},
+       {value: 0x0040, lo: 0xbe, hi: 0xbf},
+       // Block 0x15, offset 0xd8
+       {value: 0x0000, lo: 0x10},
+       {value: 0x0008, lo: 0x80, hi: 0x86},
+       {value: 0x0040, lo: 0x87, hi: 0x89},
+       {value: 0x3b08, lo: 0x8a, hi: 0x8a},
+       {value: 0x0040, lo: 0x8b, hi: 0x8e},
+       {value: 0x3008, lo: 0x8f, hi: 0x91},
+       {value: 0x3308, lo: 0x92, hi: 0x94},
+       {value: 0x0040, lo: 0x95, hi: 0x95},
+       {value: 0x3308, lo: 0x96, hi: 0x96},
+       {value: 0x0040, lo: 0x97, hi: 0x97},
+       {value: 0x3008, lo: 0x98, hi: 0x9f},
+       {value: 0x0040, lo: 0xa0, hi: 0xa5},
+       {value: 0x0008, lo: 0xa6, hi: 0xaf},
+       {value: 0x0040, lo: 0xb0, hi: 0xb1},
+       {value: 0x3008, lo: 0xb2, hi: 0xb3},
+       {value: 0x0018, lo: 0xb4, hi: 0xb4},
+       {value: 0x0040, lo: 0xb5, hi: 0xbf},
+       // Block 0x16, offset 0xe9
+       {value: 0x0000, lo: 0x09},
+       {value: 0x0040, lo: 0x80, hi: 0x80},
+       {value: 0x0008, lo: 0x81, hi: 0xb0},
+       {value: 0x3308, lo: 0xb1, hi: 0xb1},
+       {value: 0x0008, lo: 0xb2, hi: 0xb2},
+       {value: 0x08f1, lo: 0xb3, hi: 0xb3},
+       {value: 0x3308, lo: 0xb4, hi: 0xb9},
+       {value: 0x3b08, lo: 0xba, hi: 0xba},
+       {value: 0x0040, lo: 0xbb, hi: 0xbe},
+       {value: 0x0018, lo: 0xbf, hi: 0xbf},
+       // Block 0x17, offset 0xf3
+       {value: 0x0000, lo: 0x06},
+       {value: 0x0008, lo: 0x80, hi: 0x86},
+       {value: 0x3308, lo: 0x87, hi: 0x8e},
+       {value: 0x0018, lo: 0x8f, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x99},
+       {value: 0x0018, lo: 0x9a, hi: 0x9b},
+       {value: 0x0040, lo: 0x9c, hi: 0xbf},
+       // Block 0x18, offset 0xfa
+       {value: 0x0000, lo: 0x0c},
+       {value: 0x0008, lo: 0x80, hi: 0x84},
+       {value: 0x0040, lo: 0x85, hi: 0x85},
+       {value: 0x0008, lo: 0x86, hi: 0x86},
+       {value: 0x0040, lo: 0x87, hi: 0x87},
+       {value: 0x3308, lo: 0x88, hi: 0x8d},
+       {value: 0x0040, lo: 0x8e, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x99},
+       {value: 0x0040, lo: 0x9a, hi: 0x9b},
+       {value: 0x0961, lo: 0x9c, hi: 0x9c},
+       {value: 0x0999, lo: 0x9d, hi: 0x9d},
+       {value: 0x0008, lo: 0x9e, hi: 0x9f},
+       {value: 0x0040, lo: 0xa0, hi: 0xbf},
+       // Block 0x19, offset 0x107
+       {value: 0x0000, lo: 0x10},
+       {value: 0x0008, lo: 0x80, hi: 0x80},
+       {value: 0x0018, lo: 0x81, hi: 0x8a},
+       {value: 0x0008, lo: 0x8b, hi: 0x8b},
+       {value: 0xe03d, lo: 0x8c, hi: 0x8c},
+       {value: 0x0018, lo: 0x8d, hi: 0x97},
+       {value: 0x3308, lo: 0x98, hi: 0x99},
+       {value: 0x0018, lo: 0x9a, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xa9},
+       {value: 0x0018, lo: 0xaa, hi: 0xb4},
+       {value: 0x3308, lo: 0xb5, hi: 0xb5},
+       {value: 0x0018, lo: 0xb6, hi: 0xb6},
+       {value: 0x3308, lo: 0xb7, hi: 0xb7},
+       {value: 0x0018, lo: 0xb8, hi: 0xb8},
+       {value: 0x3308, lo: 0xb9, hi: 0xb9},
+       {value: 0x0018, lo: 0xba, hi: 0xbd},
+       {value: 0x3008, lo: 0xbe, hi: 0xbf},
+       // Block 0x1a, offset 0x118
+       {value: 0x0000, lo: 0x06},
+       {value: 0x0018, lo: 0x80, hi: 0x85},
+       {value: 0x3308, lo: 0x86, hi: 0x86},
+       {value: 0x0018, lo: 0x87, hi: 0x8c},
+       {value: 0x0040, lo: 0x8d, hi: 0x8d},
+       {value: 0x0018, lo: 0x8e, hi: 0x9a},
+       {value: 0x0040, lo: 0x9b, hi: 0xbf},
+       // Block 0x1b, offset 0x11f
+       {value: 0x0000, lo: 0x0a},
+       {value: 0x0008, lo: 0x80, hi: 0xaa},
+       {value: 0x3008, lo: 0xab, hi: 0xac},
+       {value: 0x3308, lo: 0xad, hi: 0xb0},
+       {value: 0x3008, lo: 0xb1, hi: 0xb1},
+       {value: 0x3308, lo: 0xb2, hi: 0xb7},
+       {value: 0x3008, lo: 0xb8, hi: 0xb8},
+       {value: 0x3b08, lo: 0xb9, hi: 0xba},
+       {value: 0x3008, lo: 0xbb, hi: 0xbc},
+       {value: 0x3308, lo: 0xbd, hi: 0xbe},
+       {value: 0x0008, lo: 0xbf, hi: 0xbf},
+       // Block 0x1c, offset 0x12a
+       {value: 0x0000, lo: 0x0e},
+       {value: 0x0008, lo: 0x80, hi: 0x89},
+       {value: 0x0018, lo: 0x8a, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x95},
+       {value: 0x3008, lo: 0x96, hi: 0x97},
+       {value: 0x3308, lo: 0x98, hi: 0x99},
+       {value: 0x0008, lo: 0x9a, hi: 0x9d},
+       {value: 0x3308, lo: 0x9e, hi: 0xa0},
+       {value: 0x0008, lo: 0xa1, hi: 0xa1},
+       {value: 0x3008, lo: 0xa2, hi: 0xa4},
+       {value: 0x0008, lo: 0xa5, hi: 0xa6},
+       {value: 0x3008, lo: 0xa7, hi: 0xad},
+       {value: 0x0008, lo: 0xae, hi: 0xb0},
+       {value: 0x3308, lo: 0xb1, hi: 0xb4},
+       {value: 0x0008, lo: 0xb5, hi: 0xbf},
+       // Block 0x1d, offset 0x139
+       {value: 0x0000, lo: 0x0d},
+       {value: 0x0008, lo: 0x80, hi: 0x81},
+       {value: 0x3308, lo: 0x82, hi: 0x82},
+       {value: 0x3008, lo: 0x83, hi: 0x84},
+       {value: 0x3308, lo: 0x85, hi: 0x86},
+       {value: 0x3008, lo: 0x87, hi: 0x8c},
+       {value: 0x3308, lo: 0x8d, hi: 0x8d},
+       {value: 0x0008, lo: 0x8e, hi: 0x8e},
+       {value: 0x3008, lo: 0x8f, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x99},
+       {value: 0x3008, lo: 0x9a, hi: 0x9c},
+       {value: 0x3308, lo: 0x9d, hi: 0x9d},
+       {value: 0x0018, lo: 0x9e, hi: 0x9f},
+       {value: 0x0040, lo: 0xa0, hi: 0xbf},
+       // Block 0x1e, offset 0x147
+       {value: 0x0000, lo: 0x09},
+       {value: 0x0040, lo: 0x80, hi: 0x86},
+       {value: 0x055d, lo: 0x87, hi: 0x87},
+       {value: 0x0040, lo: 0x88, hi: 0x8c},
+       {value: 0x055d, lo: 0x8d, hi: 0x8d},
+       {value: 0x0040, lo: 0x8e, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0xba},
+       {value: 0x0018, lo: 0xbb, hi: 0xbb},
+       {value: 0xe105, lo: 0xbc, hi: 0xbc},
+       {value: 0x0008, lo: 0xbd, hi: 0xbf},
+       // Block 0x1f, offset 0x151
+       {value: 0x0000, lo: 0x01},
+       {value: 0x0018, lo: 0x80, hi: 0xbf},
+       // Block 0x20, offset 0x153
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0018, lo: 0x80, hi: 0x9e},
+       {value: 0x0040, lo: 0x9f, hi: 0xa0},
+       {value: 0x2018, lo: 0xa1, hi: 0xb5},
+       {value: 0x0018, lo: 0xb6, hi: 0xbf},
+       // Block 0x21, offset 0x158
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0018, lo: 0x80, hi: 0xa7},
+       {value: 0x2018, lo: 0xa8, hi: 0xbf},
+       // Block 0x22, offset 0x15b
+       {value: 0x0000, lo: 0x02},
+       {value: 0x2018, lo: 0x80, hi: 0x82},
+       {value: 0x0018, lo: 0x83, hi: 0xbf},
+       // Block 0x23, offset 0x15e
+       {value: 0x0000, lo: 0x01},
+       {value: 0x0008, lo: 0x80, hi: 0xbf},
+       // Block 0x24, offset 0x160
+       {value: 0x0000, lo: 0x0b},
+       {value: 0x0008, lo: 0x80, hi: 0x88},
+       {value: 0x0040, lo: 0x89, hi: 0x89},
+       {value: 0x0008, lo: 0x8a, hi: 0x8d},
+       {value: 0x0040, lo: 0x8e, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x96},
+       {value: 0x0040, lo: 0x97, hi: 0x97},
+       {value: 0x0008, lo: 0x98, hi: 0x98},
+       {value: 0x0040, lo: 0x99, hi: 0x99},
+       {value: 0x0008, lo: 0x9a, hi: 0x9d},
+       {value: 0x0040, lo: 0x9e, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xbf},
+       // Block 0x25, offset 0x16c
+       {value: 0x0000, lo: 0x0a},
+       {value: 0x0008, lo: 0x80, hi: 0x88},
+       {value: 0x0040, lo: 0x89, hi: 0x89},
+       {value: 0x0008, lo: 0x8a, hi: 0x8d},
+       {value: 0x0040, lo: 0x8e, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0xb0},
+       {value: 0x0040, lo: 0xb1, hi: 0xb1},
+       {value: 0x0008, lo: 0xb2, hi: 0xb5},
+       {value: 0x0040, lo: 0xb6, hi: 0xb7},
+       {value: 0x0008, lo: 0xb8, hi: 0xbe},
+       {value: 0x0040, lo: 0xbf, hi: 0xbf},
+       // Block 0x26, offset 0x177
+       {value: 0x0000, lo: 0x07},
+       {value: 0x0008, lo: 0x80, hi: 0x80},
+       {value: 0x0040, lo: 0x81, hi: 0x81},
+       {value: 0x0008, lo: 0x82, hi: 0x85},
+       {value: 0x0040, lo: 0x86, hi: 0x87},
+       {value: 0x0008, lo: 0x88, hi: 0x96},
+       {value: 0x0040, lo: 0x97, hi: 0x97},
+       {value: 0x0008, lo: 0x98, hi: 0xbf},
+       // Block 0x27, offset 0x17f
+       {value: 0x0000, lo: 0x05},
+       {value: 0x0008, lo: 0x80, hi: 0x90},
+       {value: 0x0040, lo: 0x91, hi: 0x91},
+       {value: 0x0008, lo: 0x92, hi: 0x95},
+       {value: 0x0040, lo: 0x96, hi: 0x97},
+       {value: 0x0008, lo: 0x98, hi: 0xbf},
+       // Block 0x28, offset 0x185
+       {value: 0x0000, lo: 0x05},
+       {value: 0x0008, lo: 0x80, hi: 0x9a},
+       {value: 0x0040, lo: 0x9b, hi: 0x9c},
+       {value: 0x3308, lo: 0x9d, hi: 0x9f},
+       {value: 0x0018, lo: 0xa0, hi: 0xbc},
+       {value: 0x0040, lo: 0xbd, hi: 0xbf},
+       // Block 0x29, offset 0x18b
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0008, lo: 0x80, hi: 0x8f},
+       {value: 0x0018, lo: 0x90, hi: 0x99},
+       {value: 0x0040, lo: 0x9a, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xbf},
+       // Block 0x2a, offset 0x190
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0008, lo: 0x80, hi: 0xb5},
+       {value: 0x0040, lo: 0xb6, hi: 0xb7},
+       {value: 0xe045, lo: 0xb8, hi: 0xbd},
+       {value: 0x0040, lo: 0xbe, hi: 0xbf},
+       // Block 0x2b, offset 0x195
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0018, lo: 0x80, hi: 0x80},
+       {value: 0x0008, lo: 0x81, hi: 0xbf},
+       // Block 0x2c, offset 0x198
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0008, lo: 0x80, hi: 0xac},
+       {value: 0x0018, lo: 0xad, hi: 0xae},
+       {value: 0x0008, lo: 0xaf, hi: 0xbf},
+       // Block 0x2d, offset 0x19c
+       {value: 0x0000, lo: 0x05},
+       {value: 0x0040, lo: 0x80, hi: 0x80},
+       {value: 0x0008, lo: 0x81, hi: 0x9a},
+       {value: 0x0018, lo: 0x9b, hi: 0x9c},
+       {value: 0x0040, lo: 0x9d, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xbf},
+       // Block 0x2e, offset 0x1a2
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0008, lo: 0x80, hi: 0xaa},
+       {value: 0x0018, lo: 0xab, hi: 0xb0},
+       {value: 0x0008, lo: 0xb1, hi: 0xb8},
+       {value: 0x0040, lo: 0xb9, hi: 0xbf},
+       // Block 0x2f, offset 0x1a7
+       {value: 0x0000, lo: 0x0b},
+       {value: 0x0008, lo: 0x80, hi: 0x8c},
+       {value: 0x0040, lo: 0x8d, hi: 0x8d},
+       {value: 0x0008, lo: 0x8e, hi: 0x91},
+       {value: 0x3308, lo: 0x92, hi: 0x93},
+       {value: 0x3b08, lo: 0x94, hi: 0x94},
+       {value: 0x0040, lo: 0x95, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xb1},
+       {value: 0x3308, lo: 0xb2, hi: 0xb3},
+       {value: 0x3b08, lo: 0xb4, hi: 0xb4},
+       {value: 0x0018, lo: 0xb5, hi: 0xb6},
+       {value: 0x0040, lo: 0xb7, hi: 0xbf},
+       // Block 0x30, offset 0x1b3
+       {value: 0x0000, lo: 0x09},
+       {value: 0x0008, lo: 0x80, hi: 0x91},
+       {value: 0x3308, lo: 0x92, hi: 0x93},
+       {value: 0x0040, lo: 0x94, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xac},
+       {value: 0x0040, lo: 0xad, hi: 0xad},
+       {value: 0x0008, lo: 0xae, hi: 0xb0},
+       {value: 0x0040, lo: 0xb1, hi: 0xb1},
+       {value: 0x3308, lo: 0xb2, hi: 0xb3},
+       {value: 0x0040, lo: 0xb4, hi: 0xbf},
+       // Block 0x31, offset 0x1bd
+       {value: 0x0000, lo: 0x05},
+       {value: 0x0008, lo: 0x80, hi: 0xb3},
+       {value: 0x3340, lo: 0xb4, hi: 0xb5},
+       {value: 0x3008, lo: 0xb6, hi: 0xb6},
+       {value: 0x3308, lo: 0xb7, hi: 0xbd},
+       {value: 0x3008, lo: 0xbe, hi: 0xbf},
+       // Block 0x32, offset 0x1c3
+       {value: 0x0000, lo: 0x10},
+       {value: 0x3008, lo: 0x80, hi: 0x85},
+       {value: 0x3308, lo: 0x86, hi: 0x86},
+       {value: 0x3008, lo: 0x87, hi: 0x88},
+       {value: 0x3308, lo: 0x89, hi: 0x91},
+       {value: 0x3b08, lo: 0x92, hi: 0x92},
+       {value: 0x3308, lo: 0x93, hi: 0x93},
+       {value: 0x0018, lo: 0x94, hi: 0x96},
+       {value: 0x0008, lo: 0x97, hi: 0x97},
+       {value: 0x0018, lo: 0x98, hi: 0x9b},
+       {value: 0x0008, lo: 0x9c, hi: 0x9c},
+       {value: 0x3308, lo: 0x9d, hi: 0x9d},
+       {value: 0x0040, lo: 0x9e, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xa9},
+       {value: 0x0040, lo: 0xaa, hi: 0xaf},
+       {value: 0x0018, lo: 0xb0, hi: 0xb9},
+       {value: 0x0040, lo: 0xba, hi: 0xbf},
+       // Block 0x33, offset 0x1d4
+       {value: 0x0000, lo: 0x09},
+       {value: 0x0018, lo: 0x80, hi: 0x85},
+       {value: 0x0040, lo: 0x86, hi: 0x86},
+       {value: 0x0218, lo: 0x87, hi: 0x87},
+       {value: 0x0018, lo: 0x88, hi: 0x8a},
+       {value: 0x33c0, lo: 0x8b, hi: 0x8d},
+       {value: 0x0040, lo: 0x8e, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x99},
+       {value: 0x0040, lo: 0x9a, hi: 0x9f},
+       {value: 0x0208, lo: 0xa0, hi: 0xbf},
+       // Block 0x34, offset 0x1de
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0208, lo: 0x80, hi: 0xb7},
+       {value: 0x0040, lo: 0xb8, hi: 0xbf},
+       // Block 0x35, offset 0x1e1
+       {value: 0x0000, lo: 0x07},
+       {value: 0x0008, lo: 0x80, hi: 0x84},
+       {value: 0x3308, lo: 0x85, hi: 0x86},
+       {value: 0x0208, lo: 0x87, hi: 0xa8},
+       {value: 0x3308, lo: 0xa9, hi: 0xa9},
+       {value: 0x0208, lo: 0xaa, hi: 0xaa},
+       {value: 0x0040, lo: 0xab, hi: 0xaf},
+       {value: 0x0008, lo: 0xb0, hi: 0xbf},
+       // Block 0x36, offset 0x1e9
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0008, lo: 0x80, hi: 0xb5},
+       {value: 0x0040, lo: 0xb6, hi: 0xbf},
+       // Block 0x37, offset 0x1ec
+       {value: 0x0000, lo: 0x0c},
+       {value: 0x0008, lo: 0x80, hi: 0x9e},
+       {value: 0x0040, lo: 0x9f, hi: 0x9f},
+       {value: 0x3308, lo: 0xa0, hi: 0xa2},
+       {value: 0x3008, lo: 0xa3, hi: 0xa6},
+       {value: 0x3308, lo: 0xa7, hi: 0xa8},
+       {value: 0x3008, lo: 0xa9, hi: 0xab},
+       {value: 0x0040, lo: 0xac, hi: 0xaf},
+       {value: 0x3008, lo: 0xb0, hi: 0xb1},
+       {value: 0x3308, lo: 0xb2, hi: 0xb2},
+       {value: 0x3008, lo: 0xb3, hi: 0xb8},
+       {value: 0x3308, lo: 0xb9, hi: 0xbb},
+       {value: 0x0040, lo: 0xbc, hi: 0xbf},
+       // Block 0x38, offset 0x1f9
+       {value: 0x0000, lo: 0x07},
+       {value: 0x0018, lo: 0x80, hi: 0x80},
+       {value: 0x0040, lo: 0x81, hi: 0x83},
+       {value: 0x0018, lo: 0x84, hi: 0x85},
+       {value: 0x0008, lo: 0x86, hi: 0xad},
+       {value: 0x0040, lo: 0xae, hi: 0xaf},
+       {value: 0x0008, lo: 0xb0, hi: 0xb4},
+       {value: 0x0040, lo: 0xb5, hi: 0xbf},
+       // Block 0x39, offset 0x201
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0008, lo: 0x80, hi: 0xab},
+       {value: 0x0040, lo: 0xac, hi: 0xaf},
+       {value: 0x0008, lo: 0xb0, hi: 0xbf},
+       // Block 0x3a, offset 0x205
+       {value: 0x0000, lo: 0x06},
+       {value: 0x0008, lo: 0x80, hi: 0x89},
+       {value: 0x0040, lo: 0x8a, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x99},
+       {value: 0x0028, lo: 0x9a, hi: 0x9a},
+       {value: 0x0040, lo: 0x9b, hi: 0x9d},
+       {value: 0x0018, lo: 0x9e, hi: 0xbf},
+       // Block 0x3b, offset 0x20c
+       {value: 0x0000, lo: 0x07},
+       {value: 0x0008, lo: 0x80, hi: 0x96},
+       {value: 0x3308, lo: 0x97, hi: 0x98},
+       {value: 0x3008, lo: 0x99, hi: 0x9a},
+       {value: 0x3308, lo: 0x9b, hi: 0x9b},
+       {value: 0x0040, lo: 0x9c, hi: 0x9d},
+       {value: 0x0018, lo: 0x9e, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xbf},
+       // Block 0x3c, offset 0x214
+       {value: 0x0000, lo: 0x0f},
+       {value: 0x0008, lo: 0x80, hi: 0x94},
+       {value: 0x3008, lo: 0x95, hi: 0x95},
+       {value: 0x3308, lo: 0x96, hi: 0x96},
+       {value: 0x3008, lo: 0x97, hi: 0x97},
+       {value: 0x3308, lo: 0x98, hi: 0x9e},
+       {value: 0x0040, lo: 0x9f, hi: 0x9f},
+       {value: 0x3b08, lo: 0xa0, hi: 0xa0},
+       {value: 0x3008, lo: 0xa1, hi: 0xa1},
+       {value: 0x3308, lo: 0xa2, hi: 0xa2},
+       {value: 0x3008, lo: 0xa3, hi: 0xa4},
+       {value: 0x3308, lo: 0xa5, hi: 0xac},
+       {value: 0x3008, lo: 0xad, hi: 0xb2},
+       {value: 0x3308, lo: 0xb3, hi: 0xbc},
+       {value: 0x0040, lo: 0xbd, hi: 0xbe},
+       {value: 0x3308, lo: 0xbf, hi: 0xbf},
+       // Block 0x3d, offset 0x224
+       {value: 0x0000, lo: 0x0b},
+       {value: 0x0008, lo: 0x80, hi: 0x89},
+       {value: 0x0040, lo: 0x8a, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x99},
+       {value: 0x0040, lo: 0x9a, hi: 0x9f},
+       {value: 0x0018, lo: 0xa0, hi: 0xa6},
+       {value: 0x0008, lo: 0xa7, hi: 0xa7},
+       {value: 0x0018, lo: 0xa8, hi: 0xad},
+       {value: 0x0040, lo: 0xae, hi: 0xaf},
+       {value: 0x3308, lo: 0xb0, hi: 0xbd},
+       {value: 0x3318, lo: 0xbe, hi: 0xbe},
+       {value: 0x0040, lo: 0xbf, hi: 0xbf},
+       // Block 0x3e, offset 0x230
+       {value: 0x0000, lo: 0x01},
+       {value: 0x0040, lo: 0x80, hi: 0xbf},
+       // Block 0x3f, offset 0x232
+       {value: 0x0000, lo: 0x09},
+       {value: 0x3308, lo: 0x80, hi: 0x83},
+       {value: 0x3008, lo: 0x84, hi: 0x84},
+       {value: 0x0008, lo: 0x85, hi: 0xb3},
+       {value: 0x3308, lo: 0xb4, hi: 0xb4},
+       {value: 0x3008, lo: 0xb5, hi: 0xb5},
+       {value: 0x3308, lo: 0xb6, hi: 0xba},
+       {value: 0x3008, lo: 0xbb, hi: 0xbb},
+       {value: 0x3308, lo: 0xbc, hi: 0xbc},
+       {value: 0x3008, lo: 0xbd, hi: 0xbf},
+       // Block 0x40, offset 0x23c
+       {value: 0x0000, lo: 0x0b},
+       {value: 0x3008, lo: 0x80, hi: 0x81},
+       {value: 0x3308, lo: 0x82, hi: 0x82},
+       {value: 0x3008, lo: 0x83, hi: 0x83},
+       {value: 0x3808, lo: 0x84, hi: 0x84},
+       {value: 0x0008, lo: 0x85, hi: 0x8b},
+       {value: 0x0040, lo: 0x8c, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x99},
+       {value: 0x0018, lo: 0x9a, hi: 0xaa},
+       {value: 0x3308, lo: 0xab, hi: 0xb3},
+       {value: 0x0018, lo: 0xb4, hi: 0xbc},
+       {value: 0x0040, lo: 0xbd, hi: 0xbf},
+       // Block 0x41, offset 0x248
+       {value: 0x0000, lo: 0x0b},
+       {value: 0x3308, lo: 0x80, hi: 0x81},
+       {value: 0x3008, lo: 0x82, hi: 0x82},
+       {value: 0x0008, lo: 0x83, hi: 0xa0},
+       {value: 0x3008, lo: 0xa1, hi: 0xa1},
+       {value: 0x3308, lo: 0xa2, hi: 0xa5},
+       {value: 0x3008, lo: 0xa6, hi: 0xa7},
+       {value: 0x3308, lo: 0xa8, hi: 0xa9},
+       {value: 0x3808, lo: 0xaa, hi: 0xaa},
+       {value: 0x3b08, lo: 0xab, hi: 0xab},
+       {value: 0x3308, lo: 0xac, hi: 0xad},
+       {value: 0x0008, lo: 0xae, hi: 0xbf},
+       // Block 0x42, offset 0x254
+       {value: 0x0000, lo: 0x0b},
+       {value: 0x0008, lo: 0x80, hi: 0xa5},
+       {value: 0x3308, lo: 0xa6, hi: 0xa6},
+       {value: 0x3008, lo: 0xa7, hi: 0xa7},
+       {value: 0x3308, lo: 0xa8, hi: 0xa9},
+       {value: 0x3008, lo: 0xaa, hi: 0xac},
+       {value: 0x3308, lo: 0xad, hi: 0xad},
+       {value: 0x3008, lo: 0xae, hi: 0xae},
+       {value: 0x3308, lo: 0xaf, hi: 0xb1},
+       {value: 0x3808, lo: 0xb2, hi: 0xb3},
+       {value: 0x0040, lo: 0xb4, hi: 0xbb},
+       {value: 0x0018, lo: 0xbc, hi: 0xbf},
+       // Block 0x43, offset 0x260
+       {value: 0x0000, lo: 0x07},
+       {value: 0x0008, lo: 0x80, hi: 0xa3},
+       {value: 0x3008, lo: 0xa4, hi: 0xab},
+       {value: 0x3308, lo: 0xac, hi: 0xb3},
+       {value: 0x3008, lo: 0xb4, hi: 0xb5},
+       {value: 0x3308, lo: 0xb6, hi: 0xb7},
+       {value: 0x0040, lo: 0xb8, hi: 0xba},
+       {value: 0x0018, lo: 0xbb, hi: 0xbf},
+       // Block 0x44, offset 0x268
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0008, lo: 0x80, hi: 0x89},
+       {value: 0x0040, lo: 0x8a, hi: 0x8c},
+       {value: 0x0008, lo: 0x8d, hi: 0xbd},
+       {value: 0x0018, lo: 0xbe, hi: 0xbf},
+       // Block 0x45, offset 0x26d
+       {value: 0x0000, lo: 0x09},
+       {value: 0x0e29, lo: 0x80, hi: 0x80},
+       {value: 0x0e41, lo: 0x81, hi: 0x81},
+       {value: 0x0e59, lo: 0x82, hi: 0x82},
+       {value: 0x0e71, lo: 0x83, hi: 0x83},
+       {value: 0x0e89, lo: 0x84, hi: 0x85},
+       {value: 0x0ea1, lo: 0x86, hi: 0x86},
+       {value: 0x0eb9, lo: 0x87, hi: 0x87},
+       {value: 0x057d, lo: 0x88, hi: 0x88},
+       {value: 0x0040, lo: 0x89, hi: 0xbf},
+       // Block 0x46, offset 0x277
+       {value: 0x0000, lo: 0x10},
+       {value: 0x0018, lo: 0x80, hi: 0x87},
+       {value: 0x0040, lo: 0x88, hi: 0x8f},
+       {value: 0x3308, lo: 0x90, hi: 0x92},
+       {value: 0x0018, lo: 0x93, hi: 0x93},
+       {value: 0x3308, lo: 0x94, hi: 0xa0},
+       {value: 0x3008, lo: 0xa1, hi: 0xa1},
+       {value: 0x3308, lo: 0xa2, hi: 0xa8},
+       {value: 0x0008, lo: 0xa9, hi: 0xac},
+       {value: 0x3308, lo: 0xad, hi: 0xad},
+       {value: 0x0008, lo: 0xae, hi: 0xb1},
+       {value: 0x3008, lo: 0xb2, hi: 0xb3},
+       {value: 0x3308, lo: 0xb4, hi: 0xb4},
+       {value: 0x0008, lo: 0xb5, hi: 0xb6},
+       {value: 0x0040, lo: 0xb7, hi: 0xb7},
+       {value: 0x3308, lo: 0xb8, hi: 0xb9},
+       {value: 0x0040, lo: 0xba, hi: 0xbf},
+       // Block 0x47, offset 0x288
+       {value: 0x0000, lo: 0x03},
+       {value: 0x3308, lo: 0x80, hi: 0xb5},
+       {value: 0x0040, lo: 0xb6, hi: 0xba},
+       {value: 0x3308, lo: 0xbb, hi: 0xbf},
+       // Block 0x48, offset 0x28c
+       {value: 0x0000, lo: 0x0a},
+       {value: 0x0008, lo: 0x80, hi: 0x87},
+       {value: 0xe045, lo: 0x88, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x95},
+       {value: 0x0040, lo: 0x96, hi: 0x97},
+       {value: 0xe045, lo: 0x98, hi: 0x9d},
+       {value: 0x0040, lo: 0x9e, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xa7},
+       {value: 0xe045, lo: 0xa8, hi: 0xaf},
+       {value: 0x0008, lo: 0xb0, hi: 0xb7},
+       {value: 0xe045, lo: 0xb8, hi: 0xbf},
+       // Block 0x49, offset 0x297
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0040, lo: 0x80, hi: 0x8f},
+       {value: 0x3318, lo: 0x90, hi: 0xb0},
+       {value: 0x0040, lo: 0xb1, hi: 0xbf},
+       // Block 0x4a, offset 0x29b
+       {value: 0x0000, lo: 0x08},
+       {value: 0x0018, lo: 0x80, hi: 0x82},
+       {value: 0x0040, lo: 0x83, hi: 0x83},
+       {value: 0x0008, lo: 0x84, hi: 0x84},
+       {value: 0x0018, lo: 0x85, hi: 0x88},
+       {value: 0x24c1, lo: 0x89, hi: 0x89},
+       {value: 0x0018, lo: 0x8a, hi: 0x8b},
+       {value: 0x0040, lo: 0x8c, hi: 0x8f},
+       {value: 0x0018, lo: 0x90, hi: 0xbf},
+       // Block 0x4b, offset 0x2a4
+       {value: 0x0000, lo: 0x07},
+       {value: 0x0018, lo: 0x80, hi: 0xab},
+       {value: 0x24f1, lo: 0xac, hi: 0xac},
+       {value: 0x2529, lo: 0xad, hi: 0xad},
+       {value: 0x0018, lo: 0xae, hi: 0xae},
+       {value: 0x2579, lo: 0xaf, hi: 0xaf},
+       {value: 0x25b1, lo: 0xb0, hi: 0xb0},
+       {value: 0x0018, lo: 0xb1, hi: 0xbf},
+       // Block 0x4c, offset 0x2ac
+       {value: 0x0000, lo: 0x05},
+       {value: 0x0018, lo: 0x80, hi: 0x9f},
+       {value: 0x0080, lo: 0xa0, hi: 0xa0},
+       {value: 0x0018, lo: 0xa1, hi: 0xad},
+       {value: 0x0080, lo: 0xae, hi: 0xaf},
+       {value: 0x0018, lo: 0xb0, hi: 0xbf},
+       // Block 0x4d, offset 0x2b2
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0018, lo: 0x80, hi: 0xa8},
+       {value: 0x09c5, lo: 0xa9, hi: 0xa9},
+       {value: 0x09e5, lo: 0xaa, hi: 0xaa},
+       {value: 0x0018, lo: 0xab, hi: 0xbf},
+       // Block 0x4e, offset 0x2b7
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0018, lo: 0x80, hi: 0xbe},
+       {value: 0x0040, lo: 0xbf, hi: 0xbf},
+       // Block 0x4f, offset 0x2ba
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0018, lo: 0x80, hi: 0xa6},
+       {value: 0x0040, lo: 0xa7, hi: 0xbf},
+       // Block 0x50, offset 0x2bd
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0018, lo: 0x80, hi: 0x8b},
+       {value: 0x28c1, lo: 0x8c, hi: 0x8c},
+       {value: 0x0018, lo: 0x8d, hi: 0xbf},
+       // Block 0x51, offset 0x2c1
+       {value: 0x0000, lo: 0x05},
+       {value: 0x0018, lo: 0x80, hi: 0xb3},
+       {value: 0x0e66, lo: 0xb4, hi: 0xb4},
+       {value: 0x292a, lo: 0xb5, hi: 0xb5},
+       {value: 0x0e86, lo: 0xb6, hi: 0xb6},
+       {value: 0x0018, lo: 0xb7, hi: 0xbf},
+       // Block 0x52, offset 0x2c7
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0018, lo: 0x80, hi: 0x9b},
+       {value: 0x2941, lo: 0x9c, hi: 0x9c},
+       {value: 0x0018, lo: 0x9d, hi: 0xbf},
+       // Block 0x53, offset 0x2cb
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0018, lo: 0x80, hi: 0xb3},
+       {value: 0x0040, lo: 0xb4, hi: 0xb5},
+       {value: 0x0018, lo: 0xb6, hi: 0xbf},
+       // Block 0x54, offset 0x2cf
+       {value: 0x0000, lo: 0x05},
+       {value: 0x0018, lo: 0x80, hi: 0x95},
+       {value: 0x0040, lo: 0x96, hi: 0x97},
+       {value: 0x0018, lo: 0x98, hi: 0xb9},
+       {value: 0x0040, lo: 0xba, hi: 0xbc},
+       {value: 0x0018, lo: 0xbd, hi: 0xbf},
+       // Block 0x55, offset 0x2d5
+       {value: 0x0000, lo: 0x06},
+       {value: 0x0018, lo: 0x80, hi: 0x88},
+       {value: 0x0040, lo: 0x89, hi: 0x89},
+       {value: 0x0018, lo: 0x8a, hi: 0x91},
+       {value: 0x0040, lo: 0x92, hi: 0xab},
+       {value: 0x0018, lo: 0xac, hi: 0xaf},
+       {value: 0x0040, lo: 0xb0, hi: 0xbf},
+       // Block 0x56, offset 0x2dc
+       {value: 0x0000, lo: 0x05},
+       {value: 0xe185, lo: 0x80, hi: 0x8f},
+       {value: 0x03f5, lo: 0x90, hi: 0x9f},
+       {value: 0x0ea5, lo: 0xa0, hi: 0xae},
+       {value: 0x0040, lo: 0xaf, hi: 0xaf},
+       {value: 0x0008, lo: 0xb0, hi: 0xbf},
+       // Block 0x57, offset 0x2e2
+       {value: 0x0000, lo: 0x07},
+       {value: 0x0008, lo: 0x80, hi: 0xa5},
+       {value: 0x0040, lo: 0xa6, hi: 0xa6},
+       {value: 0x0008, lo: 0xa7, hi: 0xa7},
+       {value: 0x0040, lo: 0xa8, hi: 0xac},
+       {value: 0x0008, lo: 0xad, hi: 0xad},
+       {value: 0x0040, lo: 0xae, hi: 0xaf},
+       {value: 0x0008, lo: 0xb0, hi: 0xbf},
+       // Block 0x58, offset 0x2ea
+       {value: 0x0000, lo: 0x06},
+       {value: 0x0008, lo: 0x80, hi: 0xa7},
+       {value: 0x0040, lo: 0xa8, hi: 0xae},
+       {value: 0xe075, lo: 0xaf, hi: 0xaf},
+       {value: 0x0018, lo: 0xb0, hi: 0xb0},
+       {value: 0x0040, lo: 0xb1, hi: 0xbe},
+       {value: 0x3b08, lo: 0xbf, hi: 0xbf},
+       // Block 0x59, offset 0x2f1
+       {value: 0x0000, lo: 0x0a},
+       {value: 0x0008, lo: 0x80, hi: 0x96},
+       {value: 0x0040, lo: 0x97, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xa6},
+       {value: 0x0040, lo: 0xa7, hi: 0xa7},
+       {value: 0x0008, lo: 0xa8, hi: 0xae},
+       {value: 0x0040, lo: 0xaf, hi: 0xaf},
+       {value: 0x0008, lo: 0xb0, hi: 0xb6},
+       {value: 0x0040, lo: 0xb7, hi: 0xb7},
+       {value: 0x0008, lo: 0xb8, hi: 0xbe},
+       {value: 0x0040, lo: 0xbf, hi: 0xbf},
+       // Block 0x5a, offset 0x2fc
+       {value: 0x0000, lo: 0x09},
+       {value: 0x0008, lo: 0x80, hi: 0x86},
+       {value: 0x0040, lo: 0x87, hi: 0x87},
+       {value: 0x0008, lo: 0x88, hi: 0x8e},
+       {value: 0x0040, lo: 0x8f, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x96},
+       {value: 0x0040, lo: 0x97, hi: 0x97},
+       {value: 0x0008, lo: 0x98, hi: 0x9e},
+       {value: 0x0040, lo: 0x9f, hi: 0x9f},
+       {value: 0x3308, lo: 0xa0, hi: 0xbf},
+       // Block 0x5b, offset 0x306
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0018, lo: 0x80, hi: 0xae},
+       {value: 0x0008, lo: 0xaf, hi: 0xaf},
+       {value: 0x0018, lo: 0xb0, hi: 0xbf},
+       // Block 0x5c, offset 0x30a
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0018, lo: 0x80, hi: 0x84},
+       {value: 0x0040, lo: 0x85, hi: 0xbf},
+       // Block 0x5d, offset 0x30d
+       {value: 0x0000, lo: 0x05},
+       {value: 0x0018, lo: 0x80, hi: 0x99},
+       {value: 0x0040, lo: 0x9a, hi: 0x9a},
+       {value: 0x0018, lo: 0x9b, hi: 0x9e},
+       {value: 0x0edd, lo: 0x9f, hi: 0x9f},
+       {value: 0x0018, lo: 0xa0, hi: 0xbf},
+       // Block 0x5e, offset 0x313
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0018, lo: 0x80, hi: 0xb2},
+       {value: 0x0efd, lo: 0xb3, hi: 0xb3},
+       {value: 0x0040, lo: 0xb4, hi: 0xbf},
+       // Block 0x5f, offset 0x317
+       {value: 0x0020, lo: 0x01},
+       {value: 0x0f1d, lo: 0x80, hi: 0xbf},
+       // Block 0x60, offset 0x319
+       {value: 0x0020, lo: 0x02},
+       {value: 0x171d, lo: 0x80, hi: 0x8f},
+       {value: 0x18fd, lo: 0x90, hi: 0xbf},
+       // Block 0x61, offset 0x31c
+       {value: 0x0020, lo: 0x01},
+       {value: 0x1efd, lo: 0x80, hi: 0xbf},
+       // Block 0x62, offset 0x31e
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0040, lo: 0x80, hi: 0x80},
+       {value: 0x0008, lo: 0x81, hi: 0xbf},
+       // Block 0x63, offset 0x321
+       {value: 0x0000, lo: 0x09},
+       {value: 0x0008, lo: 0x80, hi: 0x96},
+       {value: 0x0040, lo: 0x97, hi: 0x98},
+       {value: 0x3308, lo: 0x99, hi: 0x9a},
+       {value: 0x29e2, lo: 0x9b, hi: 0x9b},
+       {value: 0x2a0a, lo: 0x9c, hi: 0x9c},
+       {value: 0x0008, lo: 0x9d, hi: 0x9e},
+       {value: 0x2a31, lo: 0x9f, hi: 0x9f},
+       {value: 0x0018, lo: 0xa0, hi: 0xa0},
+       {value: 0x0008, lo: 0xa1, hi: 0xbf},
+       // Block 0x64, offset 0x32b
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0008, lo: 0x80, hi: 0xbe},
+       {value: 0x2a69, lo: 0xbf, hi: 0xbf},
+       // Block 0x65, offset 0x32e
+       {value: 0x0000, lo: 0x0e},
+       {value: 0x0040, lo: 0x80, hi: 0x84},
+       {value: 0x0008, lo: 0x85, hi: 0xad},
+       {value: 0x0040, lo: 0xae, hi: 0xb0},
+       {value: 0x2a1d, lo: 0xb1, hi: 0xb1},
+       {value: 0x2a3d, lo: 0xb2, hi: 0xb2},
+       {value: 0x2a5d, lo: 0xb3, hi: 0xb3},
+       {value: 0x2a7d, lo: 0xb4, hi: 0xb4},
+       {value: 0x2a5d, lo: 0xb5, hi: 0xb5},
+       {value: 0x2a9d, lo: 0xb6, hi: 0xb6},
+       {value: 0x2abd, lo: 0xb7, hi: 0xb7},
+       {value: 0x2add, lo: 0xb8, hi: 0xb9},
+       {value: 0x2afd, lo: 0xba, hi: 0xbb},
+       {value: 0x2b1d, lo: 0xbc, hi: 0xbd},
+       {value: 0x2afd, lo: 0xbe, hi: 0xbf},
+       // Block 0x66, offset 0x33d
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0018, lo: 0x80, hi: 0xa3},
+       {value: 0x0040, lo: 0xa4, hi: 0xaf},
+       {value: 0x0008, lo: 0xb0, hi: 0xbf},
+       // Block 0x67, offset 0x341
+       {value: 0x0030, lo: 0x04},
+       {value: 0x2aa2, lo: 0x80, hi: 0x9d},
+       {value: 0x305a, lo: 0x9e, hi: 0x9e},
+       {value: 0x0040, lo: 0x9f, hi: 0x9f},
+       {value: 0x30a2, lo: 0xa0, hi: 0xbf},
+       // Block 0x68, offset 0x346
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0008, lo: 0x80, hi: 0x95},
+       {value: 0x0040, lo: 0x96, hi: 0xbf},
+       // Block 0x69, offset 0x349
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0008, lo: 0x80, hi: 0x8c},
+       {value: 0x0040, lo: 0x8d, hi: 0x8f},
+       {value: 0x0018, lo: 0x90, hi: 0xbf},
+       // Block 0x6a, offset 0x34d
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0018, lo: 0x80, hi: 0x86},
+       {value: 0x0040, lo: 0x87, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0xbd},
+       {value: 0x0018, lo: 0xbe, hi: 0xbf},
+       // Block 0x6b, offset 0x352
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0008, lo: 0x80, hi: 0x8c},
+       {value: 0x0018, lo: 0x8d, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0xab},
+       {value: 0x0040, lo: 0xac, hi: 0xbf},
+       // Block 0x6c, offset 0x357
+       {value: 0x0000, lo: 0x05},
+       {value: 0x0008, lo: 0x80, hi: 0xa5},
+       {value: 0x0018, lo: 0xa6, hi: 0xaf},
+       {value: 0x3308, lo: 0xb0, hi: 0xb1},
+       {value: 0x0018, lo: 0xb2, hi: 0xb7},
+       {value: 0x0040, lo: 0xb8, hi: 0xbf},
+       // Block 0x6d, offset 0x35d
+       {value: 0x0000, lo: 0x05},
+       {value: 0x0040, lo: 0x80, hi: 0xb6},
+       {value: 0x0008, lo: 0xb7, hi: 0xb7},
+       {value: 0x2009, lo: 0xb8, hi: 0xb8},
+       {value: 0x6e89, lo: 0xb9, hi: 0xb9},
+       {value: 0x0008, lo: 0xba, hi: 0xbf},
+       // Block 0x6e, offset 0x363
+       {value: 0x0000, lo: 0x0e},
+       {value: 0x0008, lo: 0x80, hi: 0x81},
+       {value: 0x3308, lo: 0x82, hi: 0x82},
+       {value: 0x0008, lo: 0x83, hi: 0x85},
+       {value: 0x3b08, lo: 0x86, hi: 0x86},
+       {value: 0x0008, lo: 0x87, hi: 0x8a},
+       {value: 0x3308, lo: 0x8b, hi: 0x8b},
+       {value: 0x0008, lo: 0x8c, hi: 0xa2},
+       {value: 0x3008, lo: 0xa3, hi: 0xa4},
+       {value: 0x3308, lo: 0xa5, hi: 0xa6},
+       {value: 0x3008, lo: 0xa7, hi: 0xa7},
+       {value: 0x0018, lo: 0xa8, hi: 0xab},
+       {value: 0x0040, lo: 0xac, hi: 0xaf},
+       {value: 0x0018, lo: 0xb0, hi: 0xb9},
+       {value: 0x0040, lo: 0xba, hi: 0xbf},
+       // Block 0x6f, offset 0x372
+       {value: 0x0000, lo: 0x05},
+       {value: 0x0208, lo: 0x80, hi: 0xb1},
+       {value: 0x0108, lo: 0xb2, hi: 0xb2},
+       {value: 0x0008, lo: 0xb3, hi: 0xb3},
+       {value: 0x0018, lo: 0xb4, hi: 0xb7},
+       {value: 0x0040, lo: 0xb8, hi: 0xbf},
+       // Block 0x70, offset 0x378
+       {value: 0x0000, lo: 0x03},
+       {value: 0x3008, lo: 0x80, hi: 0x81},
+       {value: 0x0008, lo: 0x82, hi: 0xb3},
+       {value: 0x3008, lo: 0xb4, hi: 0xbf},
+       // Block 0x71, offset 0x37c
+       {value: 0x0000, lo: 0x0e},
+       {value: 0x3008, lo: 0x80, hi: 0x83},
+       {value: 0x3b08, lo: 0x84, hi: 0x84},
+       {value: 0x3308, lo: 0x85, hi: 0x85},
+       {value: 0x0040, lo: 0x86, hi: 0x8d},
+       {value: 0x0018, lo: 0x8e, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x99},
+       {value: 0x0040, lo: 0x9a, hi: 0x9f},
+       {value: 0x3308, lo: 0xa0, hi: 0xb1},
+       {value: 0x0008, lo: 0xb2, hi: 0xb7},
+       {value: 0x0018, lo: 0xb8, hi: 0xba},
+       {value: 0x0008, lo: 0xbb, hi: 0xbb},
+       {value: 0x0018, lo: 0xbc, hi: 0xbc},
+       {value: 0x0008, lo: 0xbd, hi: 0xbd},
+       {value: 0x0040, lo: 0xbe, hi: 0xbf},
+       // Block 0x72, offset 0x38b
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0008, lo: 0x80, hi: 0xa5},
+       {value: 0x3308, lo: 0xa6, hi: 0xad},
+       {value: 0x0018, lo: 0xae, hi: 0xaf},
+       {value: 0x0008, lo: 0xb0, hi: 0xbf},
+       // Block 0x73, offset 0x390
+       {value: 0x0000, lo: 0x07},
+       {value: 0x0008, lo: 0x80, hi: 0x86},
+       {value: 0x3308, lo: 0x87, hi: 0x91},
+       {value: 0x3008, lo: 0x92, hi: 0x92},
+       {value: 0x3808, lo: 0x93, hi: 0x93},
+       {value: 0x0040, lo: 0x94, hi: 0x9e},
+       {value: 0x0018, lo: 0x9f, hi: 0xbc},
+       {value: 0x0040, lo: 0xbd, hi: 0xbf},
+       // Block 0x74, offset 0x398
+       {value: 0x0000, lo: 0x09},
+       {value: 0x3308, lo: 0x80, hi: 0x82},
+       {value: 0x3008, lo: 0x83, hi: 0x83},
+       {value: 0x0008, lo: 0x84, hi: 0xb2},
+       {value: 0x3308, lo: 0xb3, hi: 0xb3},
+       {value: 0x3008, lo: 0xb4, hi: 0xb5},
+       {value: 0x3308, lo: 0xb6, hi: 0xb9},
+       {value: 0x3008, lo: 0xba, hi: 0xbb},
+       {value: 0x3308, lo: 0xbc, hi: 0xbc},
+       {value: 0x3008, lo: 0xbd, hi: 0xbf},
+       // Block 0x75, offset 0x3a2
+       {value: 0x0000, lo: 0x0a},
+       {value: 0x3808, lo: 0x80, hi: 0x80},
+       {value: 0x0018, lo: 0x81, hi: 0x8d},
+       {value: 0x0040, lo: 0x8e, hi: 0x8e},
+       {value: 0x0008, lo: 0x8f, hi: 0x99},
+       {value: 0x0040, lo: 0x9a, hi: 0x9d},
+       {value: 0x0018, lo: 0x9e, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xa4},
+       {value: 0x3308, lo: 0xa5, hi: 0xa5},
+       {value: 0x0008, lo: 0xa6, hi: 0xbe},
+       {value: 0x0040, lo: 0xbf, hi: 0xbf},
+       // Block 0x76, offset 0x3ad
+       {value: 0x0000, lo: 0x07},
+       {value: 0x0008, lo: 0x80, hi: 0xa8},
+       {value: 0x3308, lo: 0xa9, hi: 0xae},
+       {value: 0x3008, lo: 0xaf, hi: 0xb0},
+       {value: 0x3308, lo: 0xb1, hi: 0xb2},
+       {value: 0x3008, lo: 0xb3, hi: 0xb4},
+       {value: 0x3308, lo: 0xb5, hi: 0xb6},
+       {value: 0x0040, lo: 0xb7, hi: 0xbf},
+       // Block 0x77, offset 0x3b5
+       {value: 0x0000, lo: 0x10},
+       {value: 0x0008, lo: 0x80, hi: 0x82},
+       {value: 0x3308, lo: 0x83, hi: 0x83},
+       {value: 0x0008, lo: 0x84, hi: 0x8b},
+       {value: 0x3308, lo: 0x8c, hi: 0x8c},
+       {value: 0x3008, lo: 0x8d, hi: 0x8d},
+       {value: 0x0040, lo: 0x8e, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x99},
+       {value: 0x0040, lo: 0x9a, hi: 0x9b},
+       {value: 0x0018, lo: 0x9c, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xb6},
+       {value: 0x0018, lo: 0xb7, hi: 0xb9},
+       {value: 0x0008, lo: 0xba, hi: 0xba},
+       {value: 0x3008, lo: 0xbb, hi: 0xbb},
+       {value: 0x3308, lo: 0xbc, hi: 0xbc},
+       {value: 0x3008, lo: 0xbd, hi: 0xbd},
+       {value: 0x0008, lo: 0xbe, hi: 0xbf},
+       // Block 0x78, offset 0x3c6
+       {value: 0x0000, lo: 0x08},
+       {value: 0x0008, lo: 0x80, hi: 0xaf},
+       {value: 0x3308, lo: 0xb0, hi: 0xb0},
+       {value: 0x0008, lo: 0xb1, hi: 0xb1},
+       {value: 0x3308, lo: 0xb2, hi: 0xb4},
+       {value: 0x0008, lo: 0xb5, hi: 0xb6},
+       {value: 0x3308, lo: 0xb7, hi: 0xb8},
+       {value: 0x0008, lo: 0xb9, hi: 0xbd},
+       {value: 0x3308, lo: 0xbe, hi: 0xbf},
+       // Block 0x79, offset 0x3cf
+       {value: 0x0000, lo: 0x0f},
+       {value: 0x0008, lo: 0x80, hi: 0x80},
+       {value: 0x3308, lo: 0x81, hi: 0x81},
+       {value: 0x0008, lo: 0x82, hi: 0x82},
+       {value: 0x0040, lo: 0x83, hi: 0x9a},
+       {value: 0x0008, lo: 0x9b, hi: 0x9d},
+       {value: 0x0018, lo: 0x9e, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xaa},
+       {value: 0x3008, lo: 0xab, hi: 0xab},
+       {value: 0x3308, lo: 0xac, hi: 0xad},
+       {value: 0x3008, lo: 0xae, hi: 0xaf},
+       {value: 0x0018, lo: 0xb0, hi: 0xb1},
+       {value: 0x0008, lo: 0xb2, hi: 0xb4},
+       {value: 0x3008, lo: 0xb5, hi: 0xb5},
+       {value: 0x3b08, lo: 0xb6, hi: 0xb6},
+       {value: 0x0040, lo: 0xb7, hi: 0xbf},
+       // Block 0x7a, offset 0x3df
+       {value: 0x0000, lo: 0x0c},
+       {value: 0x0040, lo: 0x80, hi: 0x80},
+       {value: 0x0008, lo: 0x81, hi: 0x86},
+       {value: 0x0040, lo: 0x87, hi: 0x88},
+       {value: 0x0008, lo: 0x89, hi: 0x8e},
+       {value: 0x0040, lo: 0x8f, hi: 0x90},
+       {value: 0x0008, lo: 0x91, hi: 0x96},
+       {value: 0x0040, lo: 0x97, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xa6},
+       {value: 0x0040, lo: 0xa7, hi: 0xa7},
+       {value: 0x0008, lo: 0xa8, hi: 0xae},
+       {value: 0x0040, lo: 0xaf, hi: 0xaf},
+       {value: 0x0008, lo: 0xb0, hi: 0xbf},
+       // Block 0x7b, offset 0x3ec
+       {value: 0x0000, lo: 0x09},
+       {value: 0x0008, lo: 0x80, hi: 0x9a},
+       {value: 0x0018, lo: 0x9b, hi: 0x9b},
+       {value: 0x4465, lo: 0x9c, hi: 0x9c},
+       {value: 0x447d, lo: 0x9d, hi: 0x9d},
+       {value: 0x2971, lo: 0x9e, hi: 0x9e},
+       {value: 0xe06d, lo: 0x9f, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xa5},
+       {value: 0x0040, lo: 0xa6, hi: 0xaf},
+       {value: 0x4495, lo: 0xb0, hi: 0xbf},
+       // Block 0x7c, offset 0x3f6
+       {value: 0x0000, lo: 0x04},
+       {value: 0x44b5, lo: 0x80, hi: 0x8f},
+       {value: 0x44d5, lo: 0x90, hi: 0x9f},
+       {value: 0x44f5, lo: 0xa0, hi: 0xaf},
+       {value: 0x44d5, lo: 0xb0, hi: 0xbf},
+       // Block 0x7d, offset 0x3fb
+       {value: 0x0000, lo: 0x0c},
+       {value: 0x0008, lo: 0x80, hi: 0xa2},
+       {value: 0x3008, lo: 0xa3, hi: 0xa4},
+       {value: 0x3308, lo: 0xa5, hi: 0xa5},
+       {value: 0x3008, lo: 0xa6, hi: 0xa7},
+       {value: 0x3308, lo: 0xa8, hi: 0xa8},
+       {value: 0x3008, lo: 0xa9, hi: 0xaa},
+       {value: 0x0018, lo: 0xab, hi: 0xab},
+       {value: 0x3008, lo: 0xac, hi: 0xac},
+       {value: 0x3b08, lo: 0xad, hi: 0xad},
+       {value: 0x0040, lo: 0xae, hi: 0xaf},
+       {value: 0x0008, lo: 0xb0, hi: 0xb9},
+       {value: 0x0040, lo: 0xba, hi: 0xbf},
+       // Block 0x7e, offset 0x408
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0008, lo: 0x80, hi: 0xa3},
+       {value: 0x0040, lo: 0xa4, hi: 0xaf},
+       {value: 0x0018, lo: 0xb0, hi: 0xbf},
+       // Block 0x7f, offset 0x40c
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0018, lo: 0x80, hi: 0x86},
+       {value: 0x0040, lo: 0x87, hi: 0x8a},
+       {value: 0x0018, lo: 0x8b, hi: 0xbb},
+       {value: 0x0040, lo: 0xbc, hi: 0xbf},
+       // Block 0x80, offset 0x411
+       {value: 0x0020, lo: 0x01},
+       {value: 0x4515, lo: 0x80, hi: 0xbf},
+       // Block 0x81, offset 0x413
+       {value: 0x0020, lo: 0x03},
+       {value: 0x4d15, lo: 0x80, hi: 0x94},
+       {value: 0x4ad5, lo: 0x95, hi: 0x95},
+       {value: 0x4fb5, lo: 0x96, hi: 0xbf},
+       // Block 0x82, offset 0x417
+       {value: 0x0020, lo: 0x01},
+       {value: 0x54f5, lo: 0x80, hi: 0xbf},
+       // Block 0x83, offset 0x419
+       {value: 0x0020, lo: 0x03},
+       {value: 0x5cf5, lo: 0x80, hi: 0x84},
+       {value: 0x5655, lo: 0x85, hi: 0x85},
+       {value: 0x5d95, lo: 0x86, hi: 0xbf},
+       // Block 0x84, offset 0x41d
+       {value: 0x0020, lo: 0x08},
+       {value: 0x6b55, lo: 0x80, hi: 0x8f},
+       {value: 0x6d15, lo: 0x90, hi: 0x90},
+       {value: 0x6d55, lo: 0x91, hi: 0xab},
+       {value: 0x6ea1, lo: 0xac, hi: 0xac},
+       {value: 0x70b5, lo: 0xad, hi: 0xad},
+       {value: 0x0040, lo: 0xae, hi: 0xae},
+       {value: 0x0040, lo: 0xaf, hi: 0xaf},
+       {value: 0x70d5, lo: 0xb0, hi: 0xbf},
+       // Block 0x85, offset 0x426
+       {value: 0x0020, lo: 0x05},
+       {value: 0x72d5, lo: 0x80, hi: 0xad},
+       {value: 0x6535, lo: 0xae, hi: 0xae},
+       {value: 0x7895, lo: 0xaf, hi: 0xb5},
+       {value: 0x6f55, lo: 0xb6, hi: 0xb6},
+       {value: 0x7975, lo: 0xb7, hi: 0xbf},
+       // Block 0x86, offset 0x42c
+       {value: 0x0028, lo: 0x03},
+       {value: 0x7c21, lo: 0x80, hi: 0x82},
+       {value: 0x7be1, lo: 0x83, hi: 0x83},
+       {value: 0x7c99, lo: 0x84, hi: 0xbf},
+       // Block 0x87, offset 0x430
+       {value: 0x0038, lo: 0x0f},
+       {value: 0x9db1, lo: 0x80, hi: 0x83},
+       {value: 0x9e59, lo: 0x84, hi: 0x85},
+       {value: 0x9e91, lo: 0x86, hi: 0x87},
+       {value: 0x9ec9, lo: 0x88, hi: 0x8f},
+       {value: 0x0040, lo: 0x90, hi: 0x90},
+       {value: 0x0040, lo: 0x91, hi: 0x91},
+       {value: 0xa089, lo: 0x92, hi: 0x97},
+       {value: 0xa1a1, lo: 0x98, hi: 0x9c},
+       {value: 0xa281, lo: 0x9d, hi: 0xb3},
+       {value: 0x9d41, lo: 0xb4, hi: 0xb4},
+       {value: 0x9db1, lo: 0xb5, hi: 0xb5},
+       {value: 0xa789, lo: 0xb6, hi: 0xbb},
+       {value: 0xa869, lo: 0xbc, hi: 0xbc},
+       {value: 0xa7f9, lo: 0xbd, hi: 0xbd},
+       {value: 0xa8d9, lo: 0xbe, hi: 0xbf},
+       // Block 0x88, offset 0x440
+       {value: 0x0000, lo: 0x09},
+       {value: 0x0008, lo: 0x80, hi: 0x8b},
+       {value: 0x0040, lo: 0x8c, hi: 0x8c},
+       {value: 0x0008, lo: 0x8d, hi: 0xa6},
+       {value: 0x0040, lo: 0xa7, hi: 0xa7},
+       {value: 0x0008, lo: 0xa8, hi: 0xba},
+       {value: 0x0040, lo: 0xbb, hi: 0xbb},
+       {value: 0x0008, lo: 0xbc, hi: 0xbd},
+       {value: 0x0040, lo: 0xbe, hi: 0xbe},
+       {value: 0x0008, lo: 0xbf, hi: 0xbf},
+       // Block 0x89, offset 0x44a
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0008, lo: 0x80, hi: 0x8d},
+       {value: 0x0040, lo: 0x8e, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x9d},
+       {value: 0x0040, lo: 0x9e, hi: 0xbf},
+       // Block 0x8a, offset 0x44f
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0008, lo: 0x80, hi: 0xba},
+       {value: 0x0040, lo: 0xbb, hi: 0xbf},
+       // Block 0x8b, offset 0x452
+       {value: 0x0000, lo: 0x05},
+       {value: 0x0018, lo: 0x80, hi: 0x82},
+       {value: 0x0040, lo: 0x83, hi: 0x86},
+       {value: 0x0018, lo: 0x87, hi: 0xb3},
+       {value: 0x0040, lo: 0xb4, hi: 0xb6},
+       {value: 0x0018, lo: 0xb7, hi: 0xbf},
+       // Block 0x8c, offset 0x458
+       {value: 0x0000, lo: 0x06},
+       {value: 0x0018, lo: 0x80, hi: 0x8e},
+       {value: 0x0040, lo: 0x8f, hi: 0x8f},
+       {value: 0x0018, lo: 0x90, hi: 0x9b},
+       {value: 0x0040, lo: 0x9c, hi: 0x9f},
+       {value: 0x0018, lo: 0xa0, hi: 0xa0},
+       {value: 0x0040, lo: 0xa1, hi: 0xbf},
+       // Block 0x8d, offset 0x45f
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0040, lo: 0x80, hi: 0x8f},
+       {value: 0x0018, lo: 0x90, hi: 0xbc},
+       {value: 0x3308, lo: 0xbd, hi: 0xbd},
+       {value: 0x0040, lo: 0xbe, hi: 0xbf},
+       // Block 0x8e, offset 0x464
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0008, lo: 0x80, hi: 0x9c},
+       {value: 0x0040, lo: 0x9d, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xbf},
+       // Block 0x8f, offset 0x468
+       {value: 0x0000, lo: 0x05},
+       {value: 0x0008, lo: 0x80, hi: 0x90},
+       {value: 0x0040, lo: 0x91, hi: 0x9f},
+       {value: 0x3308, lo: 0xa0, hi: 0xa0},
+       {value: 0x0018, lo: 0xa1, hi: 0xbb},
+       {value: 0x0040, lo: 0xbc, hi: 0xbf},
+       // Block 0x90, offset 0x46e
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0008, lo: 0x80, hi: 0x9f},
+       {value: 0x0018, lo: 0xa0, hi: 0xa3},
+       {value: 0x0040, lo: 0xa4, hi: 0xaf},
+       {value: 0x0008, lo: 0xb0, hi: 0xbf},
+       // Block 0x91, offset 0x473
+       {value: 0x0000, lo: 0x08},
+       {value: 0x0008, lo: 0x80, hi: 0x80},
+       {value: 0x0018, lo: 0x81, hi: 0x81},
+       {value: 0x0008, lo: 0x82, hi: 0x89},
+       {value: 0x0018, lo: 0x8a, hi: 0x8a},
+       {value: 0x0040, lo: 0x8b, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0xb5},
+       {value: 0x3308, lo: 0xb6, hi: 0xba},
+       {value: 0x0040, lo: 0xbb, hi: 0xbf},
+       // Block 0x92, offset 0x47c
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0008, lo: 0x80, hi: 0x9d},
+       {value: 0x0040, lo: 0x9e, hi: 0x9e},
+       {value: 0x0018, lo: 0x9f, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xbf},
+       // Block 0x93, offset 0x481
+       {value: 0x0000, lo: 0x05},
+       {value: 0x0008, lo: 0x80, hi: 0x83},
+       {value: 0x0040, lo: 0x84, hi: 0x87},
+       {value: 0x0008, lo: 0x88, hi: 0x8f},
+       {value: 0x0018, lo: 0x90, hi: 0x95},
+       {value: 0x0040, lo: 0x96, hi: 0xbf},
+       // Block 0x94, offset 0x487
+       {value: 0x0000, lo: 0x06},
+       {value: 0xe145, lo: 0x80, hi: 0x87},
+       {value: 0xe1c5, lo: 0x88, hi: 0x8f},
+       {value: 0xe145, lo: 0x90, hi: 0x97},
+       {value: 0x8ad5, lo: 0x98, hi: 0x9f},
+       {value: 0x8aed, lo: 0xa0, hi: 0xa7},
+       {value: 0x0008, lo: 0xa8, hi: 0xbf},
+       // Block 0x95, offset 0x48e
+       {value: 0x0000, lo: 0x06},
+       {value: 0x0008, lo: 0x80, hi: 0x9d},
+       {value: 0x0040, lo: 0x9e, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xa9},
+       {value: 0x0040, lo: 0xaa, hi: 0xaf},
+       {value: 0x8aed, lo: 0xb0, hi: 0xb7},
+       {value: 0x8ad5, lo: 0xb8, hi: 0xbf},
+       // Block 0x96, offset 0x495
+       {value: 0x0000, lo: 0x06},
+       {value: 0xe145, lo: 0x80, hi: 0x87},
+       {value: 0xe1c5, lo: 0x88, hi: 0x8f},
+       {value: 0xe145, lo: 0x90, hi: 0x93},
+       {value: 0x0040, lo: 0x94, hi: 0x97},
+       {value: 0x0008, lo: 0x98, hi: 0xbb},
+       {value: 0x0040, lo: 0xbc, hi: 0xbf},
+       // Block 0x97, offset 0x49c
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0008, lo: 0x80, hi: 0xa7},
+       {value: 0x0040, lo: 0xa8, hi: 0xaf},
+       {value: 0x0008, lo: 0xb0, hi: 0xbf},
+       // Block 0x98, offset 0x4a0
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0008, lo: 0x80, hi: 0xa3},
+       {value: 0x0040, lo: 0xa4, hi: 0xae},
+       {value: 0x0018, lo: 0xaf, hi: 0xaf},
+       {value: 0x0040, lo: 0xb0, hi: 0xbf},
+       // Block 0x99, offset 0x4a5
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0008, lo: 0x80, hi: 0xb6},
+       {value: 0x0040, lo: 0xb7, hi: 0xbf},
+       // Block 0x9a, offset 0x4a8
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0008, lo: 0x80, hi: 0x95},
+       {value: 0x0040, lo: 0x96, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xa7},
+       {value: 0x0040, lo: 0xa8, hi: 0xbf},
+       // Block 0x9b, offset 0x4ad
+       {value: 0x0000, lo: 0x0b},
+       {value: 0x0808, lo: 0x80, hi: 0x85},
+       {value: 0x0040, lo: 0x86, hi: 0x87},
+       {value: 0x0808, lo: 0x88, hi: 0x88},
+       {value: 0x0040, lo: 0x89, hi: 0x89},
+       {value: 0x0808, lo: 0x8a, hi: 0xb5},
+       {value: 0x0040, lo: 0xb6, hi: 0xb6},
+       {value: 0x0808, lo: 0xb7, hi: 0xb8},
+       {value: 0x0040, lo: 0xb9, hi: 0xbb},
+       {value: 0x0808, lo: 0xbc, hi: 0xbc},
+       {value: 0x0040, lo: 0xbd, hi: 0xbe},
+       {value: 0x0808, lo: 0xbf, hi: 0xbf},
+       // Block 0x9c, offset 0x4b9
+       {value: 0x0000, lo: 0x05},
+       {value: 0x0808, lo: 0x80, hi: 0x95},
+       {value: 0x0040, lo: 0x96, hi: 0x96},
+       {value: 0x0818, lo: 0x97, hi: 0x9f},
+       {value: 0x0808, lo: 0xa0, hi: 0xb6},
+       {value: 0x0818, lo: 0xb7, hi: 0xbf},
+       // Block 0x9d, offset 0x4bf
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0808, lo: 0x80, hi: 0x9e},
+       {value: 0x0040, lo: 0x9f, hi: 0xa6},
+       {value: 0x0818, lo: 0xa7, hi: 0xaf},
+       {value: 0x0040, lo: 0xb0, hi: 0xbf},
+       // Block 0x9e, offset 0x4c4
+       {value: 0x0000, lo: 0x06},
+       {value: 0x0040, lo: 0x80, hi: 0x9f},
+       {value: 0x0808, lo: 0xa0, hi: 0xb2},
+       {value: 0x0040, lo: 0xb3, hi: 0xb3},
+       {value: 0x0808, lo: 0xb4, hi: 0xb5},
+       {value: 0x0040, lo: 0xb6, hi: 0xba},
+       {value: 0x0818, lo: 0xbb, hi: 0xbf},
+       // Block 0x9f, offset 0x4cb
+       {value: 0x0000, lo: 0x07},
+       {value: 0x0808, lo: 0x80, hi: 0x95},
+       {value: 0x0818, lo: 0x96, hi: 0x9b},
+       {value: 0x0040, lo: 0x9c, hi: 0x9e},
+       {value: 0x0018, lo: 0x9f, hi: 0x9f},
+       {value: 0x0808, lo: 0xa0, hi: 0xb9},
+       {value: 0x0040, lo: 0xba, hi: 0xbe},
+       {value: 0x0818, lo: 0xbf, hi: 0xbf},
+       // Block 0xa0, offset 0x4d3
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0808, lo: 0x80, hi: 0xb7},
+       {value: 0x0040, lo: 0xb8, hi: 0xbb},
+       {value: 0x0818, lo: 0xbc, hi: 0xbd},
+       {value: 0x0808, lo: 0xbe, hi: 0xbf},
+       // Block 0xa1, offset 0x4d8
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0818, lo: 0x80, hi: 0x8f},
+       {value: 0x0040, lo: 0x90, hi: 0x91},
+       {value: 0x0818, lo: 0x92, hi: 0xbf},
+       // Block 0xa2, offset 0x4dc
+       {value: 0x0000, lo: 0x0f},
+       {value: 0x0808, lo: 0x80, hi: 0x80},
+       {value: 0x3308, lo: 0x81, hi: 0x83},
+       {value: 0x0040, lo: 0x84, hi: 0x84},
+       {value: 0x3308, lo: 0x85, hi: 0x86},
+       {value: 0x0040, lo: 0x87, hi: 0x8b},
+       {value: 0x3308, lo: 0x8c, hi: 0x8f},
+       {value: 0x0808, lo: 0x90, hi: 0x93},
+       {value: 0x0040, lo: 0x94, hi: 0x94},
+       {value: 0x0808, lo: 0x95, hi: 0x97},
+       {value: 0x0040, lo: 0x98, hi: 0x98},
+       {value: 0x0808, lo: 0x99, hi: 0xb3},
+       {value: 0x0040, lo: 0xb4, hi: 0xb7},
+       {value: 0x3308, lo: 0xb8, hi: 0xba},
+       {value: 0x0040, lo: 0xbb, hi: 0xbe},
+       {value: 0x3b08, lo: 0xbf, hi: 0xbf},
+       // Block 0xa3, offset 0x4ec
+       {value: 0x0000, lo: 0x06},
+       {value: 0x0818, lo: 0x80, hi: 0x87},
+       {value: 0x0040, lo: 0x88, hi: 0x8f},
+       {value: 0x0818, lo: 0x90, hi: 0x98},
+       {value: 0x0040, lo: 0x99, hi: 0x9f},
+       {value: 0x0808, lo: 0xa0, hi: 0xbc},
+       {value: 0x0818, lo: 0xbd, hi: 0xbf},
+       // Block 0xa4, offset 0x4f3
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0808, lo: 0x80, hi: 0x9c},
+       {value: 0x0818, lo: 0x9d, hi: 0x9f},
+       {value: 0x0040, lo: 0xa0, hi: 0xbf},
+       // Block 0xa5, offset 0x4f7
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0808, lo: 0x80, hi: 0xb5},
+       {value: 0x0040, lo: 0xb6, hi: 0xb8},
+       {value: 0x0018, lo: 0xb9, hi: 0xbf},
+       // Block 0xa6, offset 0x4fb
+       {value: 0x0000, lo: 0x06},
+       {value: 0x0808, lo: 0x80, hi: 0x95},
+       {value: 0x0040, lo: 0x96, hi: 0x97},
+       {value: 0x0818, lo: 0x98, hi: 0x9f},
+       {value: 0x0808, lo: 0xa0, hi: 0xb2},
+       {value: 0x0040, lo: 0xb3, hi: 0xb7},
+       {value: 0x0818, lo: 0xb8, hi: 0xbf},
+       // Block 0xa7, offset 0x502
+       {value: 0x0000, lo: 0x01},
+       {value: 0x0808, lo: 0x80, hi: 0xbf},
+       // Block 0xa8, offset 0x504
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0808, lo: 0x80, hi: 0x88},
+       {value: 0x0040, lo: 0x89, hi: 0xbf},
+       // Block 0xa9, offset 0x507
+       {value: 0x0000, lo: 0x02},
+       {value: 0x03dd, lo: 0x80, hi: 0xb2},
+       {value: 0x0040, lo: 0xb3, hi: 0xbf},
+       // Block 0xaa, offset 0x50a
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0808, lo: 0x80, hi: 0xb2},
+       {value: 0x0040, lo: 0xb3, hi: 0xb9},
+       {value: 0x0818, lo: 0xba, hi: 0xbf},
+       // Block 0xab, offset 0x50e
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0040, lo: 0x80, hi: 0x9f},
+       {value: 0x0818, lo: 0xa0, hi: 0xbe},
+       {value: 0x0040, lo: 0xbf, hi: 0xbf},
+       // Block 0xac, offset 0x512
+       {value: 0x0000, lo: 0x05},
+       {value: 0x3008, lo: 0x80, hi: 0x80},
+       {value: 0x3308, lo: 0x81, hi: 0x81},
+       {value: 0x3008, lo: 0x82, hi: 0x82},
+       {value: 0x0008, lo: 0x83, hi: 0xb7},
+       {value: 0x3308, lo: 0xb8, hi: 0xbf},
+       // Block 0xad, offset 0x518
+       {value: 0x0000, lo: 0x08},
+       {value: 0x3308, lo: 0x80, hi: 0x85},
+       {value: 0x3b08, lo: 0x86, hi: 0x86},
+       {value: 0x0018, lo: 0x87, hi: 0x8d},
+       {value: 0x0040, lo: 0x8e, hi: 0x91},
+       {value: 0x0018, lo: 0x92, hi: 0xa5},
+       {value: 0x0008, lo: 0xa6, hi: 0xaf},
+       {value: 0x0040, lo: 0xb0, hi: 0xbe},
+       {value: 0x3b08, lo: 0xbf, hi: 0xbf},
+       // Block 0xae, offset 0x521
+       {value: 0x0000, lo: 0x0b},
+       {value: 0x3308, lo: 0x80, hi: 0x81},
+       {value: 0x3008, lo: 0x82, hi: 0x82},
+       {value: 0x0008, lo: 0x83, hi: 0xaf},
+       {value: 0x3008, lo: 0xb0, hi: 0xb2},
+       {value: 0x3308, lo: 0xb3, hi: 0xb6},
+       {value: 0x3008, lo: 0xb7, hi: 0xb8},
+       {value: 0x3b08, lo: 0xb9, hi: 0xb9},
+       {value: 0x3308, lo: 0xba, hi: 0xba},
+       {value: 0x0018, lo: 0xbb, hi: 0xbc},
+       {value: 0x0340, lo: 0xbd, hi: 0xbd},
+       {value: 0x0018, lo: 0xbe, hi: 0xbf},
+       // Block 0xaf, offset 0x52d
+       {value: 0x0000, lo: 0x06},
+       {value: 0x0018, lo: 0x80, hi: 0x81},
+       {value: 0x0040, lo: 0x82, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0xa8},
+       {value: 0x0040, lo: 0xa9, hi: 0xaf},
+       {value: 0x0008, lo: 0xb0, hi: 0xb9},
+       {value: 0x0040, lo: 0xba, hi: 0xbf},
+       // Block 0xb0, offset 0x534
+       {value: 0x0000, lo: 0x08},
+       {value: 0x3308, lo: 0x80, hi: 0x82},
+       {value: 0x0008, lo: 0x83, hi: 0xa6},
+       {value: 0x3308, lo: 0xa7, hi: 0xab},
+       {value: 0x3008, lo: 0xac, hi: 0xac},
+       {value: 0x3308, lo: 0xad, hi: 0xb2},
+       {value: 0x3b08, lo: 0xb3, hi: 0xb4},
+       {value: 0x0040, lo: 0xb5, hi: 0xb5},
+       {value: 0x0008, lo: 0xb6, hi: 0xbf},
+       // Block 0xb1, offset 0x53d
+       {value: 0x0000, lo: 0x07},
+       {value: 0x0018, lo: 0x80, hi: 0x83},
+       {value: 0x0040, lo: 0x84, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0xb2},
+       {value: 0x3308, lo: 0xb3, hi: 0xb3},
+       {value: 0x0018, lo: 0xb4, hi: 0xb5},
+       {value: 0x0008, lo: 0xb6, hi: 0xb6},
+       {value: 0x0040, lo: 0xb7, hi: 0xbf},
+       // Block 0xb2, offset 0x545
+       {value: 0x0000, lo: 0x06},
+       {value: 0x3308, lo: 0x80, hi: 0x81},
+       {value: 0x3008, lo: 0x82, hi: 0x82},
+       {value: 0x0008, lo: 0x83, hi: 0xb2},
+       {value: 0x3008, lo: 0xb3, hi: 0xb5},
+       {value: 0x3308, lo: 0xb6, hi: 0xbe},
+       {value: 0x3008, lo: 0xbf, hi: 0xbf},
+       // Block 0xb3, offset 0x54c
+       {value: 0x0000, lo: 0x0d},
+       {value: 0x3808, lo: 0x80, hi: 0x80},
+       {value: 0x0008, lo: 0x81, hi: 0x84},
+       {value: 0x0018, lo: 0x85, hi: 0x89},
+       {value: 0x3308, lo: 0x8a, hi: 0x8c},
+       {value: 0x0018, lo: 0x8d, hi: 0x8d},
+       {value: 0x0040, lo: 0x8e, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x9a},
+       {value: 0x0018, lo: 0x9b, hi: 0x9b},
+       {value: 0x0008, lo: 0x9c, hi: 0x9c},
+       {value: 0x0018, lo: 0x9d, hi: 0x9f},
+       {value: 0x0040, lo: 0xa0, hi: 0xa0},
+       {value: 0x0018, lo: 0xa1, hi: 0xb4},
+       {value: 0x0040, lo: 0xb5, hi: 0xbf},
+       // Block 0xb4, offset 0x55a
+       {value: 0x0000, lo: 0x0c},
+       {value: 0x0008, lo: 0x80, hi: 0x91},
+       {value: 0x0040, lo: 0x92, hi: 0x92},
+       {value: 0x0008, lo: 0x93, hi: 0xab},
+       {value: 0x3008, lo: 0xac, hi: 0xae},
+       {value: 0x3308, lo: 0xaf, hi: 0xb1},
+       {value: 0x3008, lo: 0xb2, hi: 0xb3},
+       {value: 0x3308, lo: 0xb4, hi: 0xb4},
+       {value: 0x3808, lo: 0xb5, hi: 0xb5},
+       {value: 0x3308, lo: 0xb6, hi: 0xb7},
+       {value: 0x0018, lo: 0xb8, hi: 0xbd},
+       {value: 0x3308, lo: 0xbe, hi: 0xbe},
+       {value: 0x0040, lo: 0xbf, hi: 0xbf},
+       // Block 0xb5, offset 0x567
+       {value: 0x0000, lo: 0x0c},
+       {value: 0x0008, lo: 0x80, hi: 0x86},
+       {value: 0x0040, lo: 0x87, hi: 0x87},
+       {value: 0x0008, lo: 0x88, hi: 0x88},
+       {value: 0x0040, lo: 0x89, hi: 0x89},
+       {value: 0x0008, lo: 0x8a, hi: 0x8d},
+       {value: 0x0040, lo: 0x8e, hi: 0x8e},
+       {value: 0x0008, lo: 0x8f, hi: 0x9d},
+       {value: 0x0040, lo: 0x9e, hi: 0x9e},
+       {value: 0x0008, lo: 0x9f, hi: 0xa8},
+       {value: 0x0018, lo: 0xa9, hi: 0xa9},
+       {value: 0x0040, lo: 0xaa, hi: 0xaf},
+       {value: 0x0008, lo: 0xb0, hi: 0xbf},
+       // Block 0xb6, offset 0x574
+       {value: 0x0000, lo: 0x08},
+       {value: 0x0008, lo: 0x80, hi: 0x9e},
+       {value: 0x3308, lo: 0x9f, hi: 0x9f},
+       {value: 0x3008, lo: 0xa0, hi: 0xa2},
+       {value: 0x3308, lo: 0xa3, hi: 0xa9},
+       {value: 0x3b08, lo: 0xaa, hi: 0xaa},
+       {value: 0x0040, lo: 0xab, hi: 0xaf},
+       {value: 0x0008, lo: 0xb0, hi: 0xb9},
+       {value: 0x0040, lo: 0xba, hi: 0xbf},
+       // Block 0xb7, offset 0x57d
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0008, lo: 0x80, hi: 0xb4},
+       {value: 0x3008, lo: 0xb5, hi: 0xb7},
+       {value: 0x3308, lo: 0xb8, hi: 0xbf},
+       // Block 0xb8, offset 0x581
+       {value: 0x0000, lo: 0x0d},
+       {value: 0x3008, lo: 0x80, hi: 0x81},
+       {value: 0x3b08, lo: 0x82, hi: 0x82},
+       {value: 0x3308, lo: 0x83, hi: 0x84},
+       {value: 0x3008, lo: 0x85, hi: 0x85},
+       {value: 0x3308, lo: 0x86, hi: 0x86},
+       {value: 0x0008, lo: 0x87, hi: 0x8a},
+       {value: 0x0018, lo: 0x8b, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x99},
+       {value: 0x0040, lo: 0x9a, hi: 0x9a},
+       {value: 0x0018, lo: 0x9b, hi: 0x9b},
+       {value: 0x0040, lo: 0x9c, hi: 0x9c},
+       {value: 0x0018, lo: 0x9d, hi: 0x9d},
+       {value: 0x0040, lo: 0x9e, hi: 0xbf},
+       // Block 0xb9, offset 0x58f
+       {value: 0x0000, lo: 0x07},
+       {value: 0x0008, lo: 0x80, hi: 0xaf},
+       {value: 0x3008, lo: 0xb0, hi: 0xb2},
+       {value: 0x3308, lo: 0xb3, hi: 0xb8},
+       {value: 0x3008, lo: 0xb9, hi: 0xb9},
+       {value: 0x3308, lo: 0xba, hi: 0xba},
+       {value: 0x3008, lo: 0xbb, hi: 0xbe},
+       {value: 0x3308, lo: 0xbf, hi: 0xbf},
+       // Block 0xba, offset 0x597
+       {value: 0x0000, lo: 0x0a},
+       {value: 0x3308, lo: 0x80, hi: 0x80},
+       {value: 0x3008, lo: 0x81, hi: 0x81},
+       {value: 0x3b08, lo: 0x82, hi: 0x82},
+       {value: 0x3308, lo: 0x83, hi: 0x83},
+       {value: 0x0008, lo: 0x84, hi: 0x85},
+       {value: 0x0018, lo: 0x86, hi: 0x86},
+       {value: 0x0008, lo: 0x87, hi: 0x87},
+       {value: 0x0040, lo: 0x88, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x99},
+       {value: 0x0040, lo: 0x9a, hi: 0xbf},
+       // Block 0xbb, offset 0x5a2
+       {value: 0x0000, lo: 0x08},
+       {value: 0x0008, lo: 0x80, hi: 0xae},
+       {value: 0x3008, lo: 0xaf, hi: 0xb1},
+       {value: 0x3308, lo: 0xb2, hi: 0xb5},
+       {value: 0x0040, lo: 0xb6, hi: 0xb7},
+       {value: 0x3008, lo: 0xb8, hi: 0xbb},
+       {value: 0x3308, lo: 0xbc, hi: 0xbd},
+       {value: 0x3008, lo: 0xbe, hi: 0xbe},
+       {value: 0x3b08, lo: 0xbf, hi: 0xbf},
+       // Block 0xbc, offset 0x5ab
+       {value: 0x0000, lo: 0x05},
+       {value: 0x3308, lo: 0x80, hi: 0x80},
+       {value: 0x0018, lo: 0x81, hi: 0x97},
+       {value: 0x0008, lo: 0x98, hi: 0x9b},
+       {value: 0x3308, lo: 0x9c, hi: 0x9d},
+       {value: 0x0040, lo: 0x9e, hi: 0xbf},
+       // Block 0xbd, offset 0x5b1
+       {value: 0x0000, lo: 0x07},
+       {value: 0x0008, lo: 0x80, hi: 0xaf},
+       {value: 0x3008, lo: 0xb0, hi: 0xb2},
+       {value: 0x3308, lo: 0xb3, hi: 0xba},
+       {value: 0x3008, lo: 0xbb, hi: 0xbc},
+       {value: 0x3308, lo: 0xbd, hi: 0xbd},
+       {value: 0x3008, lo: 0xbe, hi: 0xbe},
+       {value: 0x3b08, lo: 0xbf, hi: 0xbf},
+       // Block 0xbe, offset 0x5b9
+       {value: 0x0000, lo: 0x08},
+       {value: 0x3308, lo: 0x80, hi: 0x80},
+       {value: 0x0018, lo: 0x81, hi: 0x83},
+       {value: 0x0008, lo: 0x84, hi: 0x84},
+       {value: 0x0040, lo: 0x85, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x99},
+       {value: 0x0040, lo: 0x9a, hi: 0x9f},
+       {value: 0x0018, lo: 0xa0, hi: 0xac},
+       {value: 0x0040, lo: 0xad, hi: 0xbf},
+       // Block 0xbf, offset 0x5c2
+       {value: 0x0000, lo: 0x09},
+       {value: 0x0008, lo: 0x80, hi: 0xaa},
+       {value: 0x3308, lo: 0xab, hi: 0xab},
+       {value: 0x3008, lo: 0xac, hi: 0xac},
+       {value: 0x3308, lo: 0xad, hi: 0xad},
+       {value: 0x3008, lo: 0xae, hi: 0xaf},
+       {value: 0x3308, lo: 0xb0, hi: 0xb5},
+       {value: 0x3808, lo: 0xb6, hi: 0xb6},
+       {value: 0x3308, lo: 0xb7, hi: 0xb7},
+       {value: 0x0040, lo: 0xb8, hi: 0xbf},
+       // Block 0xc0, offset 0x5cc
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0008, lo: 0x80, hi: 0x89},
+       {value: 0x0040, lo: 0x8a, hi: 0xbf},
+       // Block 0xc1, offset 0x5cf
+       {value: 0x0000, lo: 0x0b},
+       {value: 0x0008, lo: 0x80, hi: 0x99},
+       {value: 0x0040, lo: 0x9a, hi: 0x9c},
+       {value: 0x3308, lo: 0x9d, hi: 0x9f},
+       {value: 0x3008, lo: 0xa0, hi: 0xa1},
+       {value: 0x3308, lo: 0xa2, hi: 0xa5},
+       {value: 0x3008, lo: 0xa6, hi: 0xa6},
+       {value: 0x3308, lo: 0xa7, hi: 0xaa},
+       {value: 0x3b08, lo: 0xab, hi: 0xab},
+       {value: 0x0040, lo: 0xac, hi: 0xaf},
+       {value: 0x0008, lo: 0xb0, hi: 0xb9},
+       {value: 0x0018, lo: 0xba, hi: 0xbf},
+       // Block 0xc2, offset 0x5db
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0040, lo: 0x80, hi: 0x9f},
+       {value: 0x049d, lo: 0xa0, hi: 0xbf},
+       // Block 0xc3, offset 0x5de
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0008, lo: 0x80, hi: 0xa9},
+       {value: 0x0018, lo: 0xaa, hi: 0xb2},
+       {value: 0x0040, lo: 0xb3, hi: 0xbe},
+       {value: 0x0008, lo: 0xbf, hi: 0xbf},
+       // Block 0xc4, offset 0x5e3
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0008, lo: 0x80, hi: 0xb8},
+       {value: 0x0040, lo: 0xb9, hi: 0xbf},
+       // Block 0xc5, offset 0x5e6
+       {value: 0x0000, lo: 0x09},
+       {value: 0x0008, lo: 0x80, hi: 0x88},
+       {value: 0x0040, lo: 0x89, hi: 0x89},
+       {value: 0x0008, lo: 0x8a, hi: 0xae},
+       {value: 0x3008, lo: 0xaf, hi: 0xaf},
+       {value: 0x3308, lo: 0xb0, hi: 0xb6},
+       {value: 0x0040, lo: 0xb7, hi: 0xb7},
+       {value: 0x3308, lo: 0xb8, hi: 0xbd},
+       {value: 0x3008, lo: 0xbe, hi: 0xbe},
+       {value: 0x3b08, lo: 0xbf, hi: 0xbf},
+       // Block 0xc6, offset 0x5f0
+       {value: 0x0000, lo: 0x08},
+       {value: 0x0008, lo: 0x80, hi: 0x80},
+       {value: 0x0018, lo: 0x81, hi: 0x85},
+       {value: 0x0040, lo: 0x86, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x99},
+       {value: 0x0018, lo: 0x9a, hi: 0xac},
+       {value: 0x0040, lo: 0xad, hi: 0xaf},
+       {value: 0x0018, lo: 0xb0, hi: 0xb1},
+       {value: 0x0008, lo: 0xb2, hi: 0xbf},
+       // Block 0xc7, offset 0x5f9
+       {value: 0x0000, lo: 0x0b},
+       {value: 0x0008, lo: 0x80, hi: 0x8f},
+       {value: 0x0040, lo: 0x90, hi: 0x91},
+       {value: 0x3308, lo: 0x92, hi: 0xa7},
+       {value: 0x0040, lo: 0xa8, hi: 0xa8},
+       {value: 0x3008, lo: 0xa9, hi: 0xa9},
+       {value: 0x3308, lo: 0xaa, hi: 0xb0},
+       {value: 0x3008, lo: 0xb1, hi: 0xb1},
+       {value: 0x3308, lo: 0xb2, hi: 0xb3},
+       {value: 0x3008, lo: 0xb4, hi: 0xb4},
+       {value: 0x3308, lo: 0xb5, hi: 0xb6},
+       {value: 0x0040, lo: 0xb7, hi: 0xbf},
+       // Block 0xc8, offset 0x605
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0008, lo: 0x80, hi: 0x99},
+       {value: 0x0040, lo: 0x9a, hi: 0xbf},
+       // Block 0xc9, offset 0x608
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0018, lo: 0x80, hi: 0xae},
+       {value: 0x0040, lo: 0xaf, hi: 0xaf},
+       {value: 0x0018, lo: 0xb0, hi: 0xb4},
+       {value: 0x0040, lo: 0xb5, hi: 0xbf},
+       // Block 0xca, offset 0x60d
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0008, lo: 0x80, hi: 0x83},
+       {value: 0x0040, lo: 0x84, hi: 0xbf},
+       // Block 0xcb, offset 0x610
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0008, lo: 0x80, hi: 0xae},
+       {value: 0x0040, lo: 0xaf, hi: 0xbf},
+       // Block 0xcc, offset 0x613
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0008, lo: 0x80, hi: 0x86},
+       {value: 0x0040, lo: 0x87, hi: 0xbf},
+       // Block 0xcd, offset 0x616
+       {value: 0x0000, lo: 0x06},
+       {value: 0x0008, lo: 0x80, hi: 0x9e},
+       {value: 0x0040, lo: 0x9f, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xa9},
+       {value: 0x0040, lo: 0xaa, hi: 0xad},
+       {value: 0x0018, lo: 0xae, hi: 0xaf},
+       {value: 0x0040, lo: 0xb0, hi: 0xbf},
+       // Block 0xce, offset 0x61d
+       {value: 0x0000, lo: 0x06},
+       {value: 0x0040, lo: 0x80, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0xad},
+       {value: 0x0040, lo: 0xae, hi: 0xaf},
+       {value: 0x3308, lo: 0xb0, hi: 0xb4},
+       {value: 0x0018, lo: 0xb5, hi: 0xb5},
+       {value: 0x0040, lo: 0xb6, hi: 0xbf},
+       // Block 0xcf, offset 0x624
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0008, lo: 0x80, hi: 0xaf},
+       {value: 0x3308, lo: 0xb0, hi: 0xb6},
+       {value: 0x0018, lo: 0xb7, hi: 0xbf},
+       // Block 0xd0, offset 0x628
+       {value: 0x0000, lo: 0x0a},
+       {value: 0x0008, lo: 0x80, hi: 0x83},
+       {value: 0x0018, lo: 0x84, hi: 0x85},
+       {value: 0x0040, lo: 0x86, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x99},
+       {value: 0x0040, lo: 0x9a, hi: 0x9a},
+       {value: 0x0018, lo: 0x9b, hi: 0xa1},
+       {value: 0x0040, lo: 0xa2, hi: 0xa2},
+       {value: 0x0008, lo: 0xa3, hi: 0xb7},
+       {value: 0x0040, lo: 0xb8, hi: 0xbc},
+       {value: 0x0008, lo: 0xbd, hi: 0xbf},
+       // Block 0xd1, offset 0x633
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0008, lo: 0x80, hi: 0x8f},
+       {value: 0x0040, lo: 0x90, hi: 0xbf},
+       // Block 0xd2, offset 0x636
+       {value: 0x0000, lo: 0x05},
+       {value: 0x0008, lo: 0x80, hi: 0x84},
+       {value: 0x0040, lo: 0x85, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x90},
+       {value: 0x3008, lo: 0x91, hi: 0xbe},
+       {value: 0x0040, lo: 0xbf, hi: 0xbf},
+       // Block 0xd3, offset 0x63c
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0040, lo: 0x80, hi: 0x8e},
+       {value: 0x3308, lo: 0x8f, hi: 0x92},
+       {value: 0x0008, lo: 0x93, hi: 0x9f},
+       {value: 0x0040, lo: 0xa0, hi: 0xbf},
+       // Block 0xd4, offset 0x641
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0040, lo: 0x80, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xa0},
+       {value: 0x0040, lo: 0xa1, hi: 0xbf},
+       // Block 0xd5, offset 0x645
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0008, lo: 0x80, hi: 0xac},
+       {value: 0x0040, lo: 0xad, hi: 0xbf},
+       // Block 0xd6, offset 0x648
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0008, lo: 0x80, hi: 0xb2},
+       {value: 0x0040, lo: 0xb3, hi: 0xbf},
+       // Block 0xd7, offset 0x64b
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0008, lo: 0x80, hi: 0x81},
+       {value: 0x0040, lo: 0x82, hi: 0xbf},
+       // Block 0xd8, offset 0x64e
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0008, lo: 0x80, hi: 0xaa},
+       {value: 0x0040, lo: 0xab, hi: 0xaf},
+       {value: 0x0008, lo: 0xb0, hi: 0xbc},
+       {value: 0x0040, lo: 0xbd, hi: 0xbf},
+       // Block 0xd9, offset 0x653
+       {value: 0x0000, lo: 0x09},
+       {value: 0x0008, lo: 0x80, hi: 0x88},
+       {value: 0x0040, lo: 0x89, hi: 0x8f},
+       {value: 0x0008, lo: 0x90, hi: 0x99},
+       {value: 0x0040, lo: 0x9a, hi: 0x9b},
+       {value: 0x0018, lo: 0x9c, hi: 0x9c},
+       {value: 0x3308, lo: 0x9d, hi: 0x9e},
+       {value: 0x0018, lo: 0x9f, hi: 0x9f},
+       {value: 0x03c0, lo: 0xa0, hi: 0xa3},
+       {value: 0x0040, lo: 0xa4, hi: 0xbf},
+       // Block 0xda, offset 0x65d
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0018, lo: 0x80, hi: 0xb5},
+       {value: 0x0040, lo: 0xb6, hi: 0xbf},
+       // Block 0xdb, offset 0x660
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0018, lo: 0x80, hi: 0xa6},
+       {value: 0x0040, lo: 0xa7, hi: 0xa8},
+       {value: 0x0018, lo: 0xa9, hi: 0xbf},
+       // Block 0xdc, offset 0x664
+       {value: 0x0000, lo: 0x0e},
+       {value: 0x0018, lo: 0x80, hi: 0x9d},
+       {value: 0xb5b9, lo: 0x9e, hi: 0x9e},
+       {value: 0xb601, lo: 0x9f, hi: 0x9f},
+       {value: 0xb649, lo: 0xa0, hi: 0xa0},
+       {value: 0xb6b1, lo: 0xa1, hi: 0xa1},
+       {value: 0xb719, lo: 0xa2, hi: 0xa2},
+       {value: 0xb781, lo: 0xa3, hi: 0xa3},
+       {value: 0xb7e9, lo: 0xa4, hi: 0xa4},
+       {value: 0x3018, lo: 0xa5, hi: 0xa6},
+       {value: 0x3318, lo: 0xa7, hi: 0xa9},
+       {value: 0x0018, lo: 0xaa, hi: 0xac},
+       {value: 0x3018, lo: 0xad, hi: 0xb2},
+       {value: 0x0340, lo: 0xb3, hi: 0xba},
+       {value: 0x3318, lo: 0xbb, hi: 0xbf},
+       // Block 0xdd, offset 0x673
+       {value: 0x0000, lo: 0x0b},
+       {value: 0x3318, lo: 0x80, hi: 0x82},
+       {value: 0x0018, lo: 0x83, hi: 0x84},
+       {value: 0x3318, lo: 0x85, hi: 0x8b},
+       {value: 0x0018, lo: 0x8c, hi: 0xa9},
+       {value: 0x3318, lo: 0xaa, hi: 0xad},
+       {value: 0x0018, lo: 0xae, hi: 0xba},
+       {value: 0xb851, lo: 0xbb, hi: 0xbb},
+       {value: 0xb899, lo: 0xbc, hi: 0xbc},
+       {value: 0xb8e1, lo: 0xbd, hi: 0xbd},
+       {value: 0xb949, lo: 0xbe, hi: 0xbe},
+       {value: 0xb9b1, lo: 0xbf, hi: 0xbf},
+       // Block 0xde, offset 0x67f
+       {value: 0x0000, lo: 0x03},
+       {value: 0xba19, lo: 0x80, hi: 0x80},
+       {value: 0x0018, lo: 0x81, hi: 0xa8},
+       {value: 0x0040, lo: 0xa9, hi: 0xbf},
+       // Block 0xdf, offset 0x683
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0018, lo: 0x80, hi: 0x81},
+       {value: 0x3318, lo: 0x82, hi: 0x84},
+       {value: 0x0018, lo: 0x85, hi: 0x85},
+       {value: 0x0040, lo: 0x86, hi: 0xbf},
+       // Block 0xe0, offset 0x688
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0018, lo: 0x80, hi: 0x96},
+       {value: 0x0040, lo: 0x97, hi: 0x9f},
+       {value: 0x0018, lo: 0xa0, hi: 0xb1},
+       {value: 0x0040, lo: 0xb2, hi: 0xbf},
+       // Block 0xe1, offset 0x68d
+       {value: 0x0000, lo: 0x03},
+       {value: 0x3308, lo: 0x80, hi: 0xb6},
+       {value: 0x0018, lo: 0xb7, hi: 0xba},
+       {value: 0x3308, lo: 0xbb, hi: 0xbf},
+       // Block 0xe2, offset 0x691
+       {value: 0x0000, lo: 0x04},
+       {value: 0x3308, lo: 0x80, hi: 0xac},
+       {value: 0x0018, lo: 0xad, hi: 0xb4},
+       {value: 0x3308, lo: 0xb5, hi: 0xb5},
+       {value: 0x0018, lo: 0xb6, hi: 0xbf},
+       // Block 0xe3, offset 0x696
+       {value: 0x0000, lo: 0x08},
+       {value: 0x0018, lo: 0x80, hi: 0x83},
+       {value: 0x3308, lo: 0x84, hi: 0x84},
+       {value: 0x0018, lo: 0x85, hi: 0x8b},
+       {value: 0x0040, lo: 0x8c, hi: 0x9a},
+       {value: 0x3308, lo: 0x9b, hi: 0x9f},
+       {value: 0x0040, lo: 0xa0, hi: 0xa0},
+       {value: 0x3308, lo: 0xa1, hi: 0xaf},
+       {value: 0x0040, lo: 0xb0, hi: 0xbf},
+       // Block 0xe4, offset 0x69f
+       {value: 0x0000, lo: 0x0a},
+       {value: 0x3308, lo: 0x80, hi: 0x86},
+       {value: 0x0040, lo: 0x87, hi: 0x87},
+       {value: 0x3308, lo: 0x88, hi: 0x98},
+       {value: 0x0040, lo: 0x99, hi: 0x9a},
+       {value: 0x3308, lo: 0x9b, hi: 0xa1},
+       {value: 0x0040, lo: 0xa2, hi: 0xa2},
+       {value: 0x3308, lo: 0xa3, hi: 0xa4},
+       {value: 0x0040, lo: 0xa5, hi: 0xa5},
+       {value: 0x3308, lo: 0xa6, hi: 0xaa},
+       {value: 0x0040, lo: 0xab, hi: 0xbf},
+       // Block 0xe5, offset 0x6aa
+       {value: 0x0000, lo: 0x05},
+       {value: 0x0808, lo: 0x80, hi: 0x84},
+       {value: 0x0040, lo: 0x85, hi: 0x86},
+       {value: 0x0818, lo: 0x87, hi: 0x8f},
+       {value: 0x3308, lo: 0x90, hi: 0x96},
+       {value: 0x0040, lo: 0x97, hi: 0xbf},
+       // Block 0xe6, offset 0x6b0
+       {value: 0x0000, lo: 0x07},
+       {value: 0x0a08, lo: 0x80, hi: 0x83},
+       {value: 0x3308, lo: 0x84, hi: 0x8a},
+       {value: 0x0040, lo: 0x8b, hi: 0x8f},
+       {value: 0x0808, lo: 0x90, hi: 0x99},
+       {value: 0x0040, lo: 0x9a, hi: 0x9d},
+       {value: 0x0818, lo: 0x9e, hi: 0x9f},
+       {value: 0x0040, lo: 0xa0, hi: 0xbf},
+       // Block 0xe7, offset 0x6b8
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0040, lo: 0x80, hi: 0xaf},
+       {value: 0x0018, lo: 0xb0, hi: 0xb1},
+       {value: 0x0040, lo: 0xb2, hi: 0xbf},
+       // Block 0xe8, offset 0x6bc
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0018, lo: 0x80, hi: 0xab},
+       {value: 0x0040, lo: 0xac, hi: 0xaf},
+       {value: 0x0018, lo: 0xb0, hi: 0xbf},
+       // Block 0xe9, offset 0x6c0
+       {value: 0x0000, lo: 0x05},
+       {value: 0x0018, lo: 0x80, hi: 0x93},
+       {value: 0x0040, lo: 0x94, hi: 0x9f},
+       {value: 0x0018, lo: 0xa0, hi: 0xae},
+       {value: 0x0040, lo: 0xaf, hi: 0xb0},
+       {value: 0x0018, lo: 0xb1, hi: 0xbf},
+       // Block 0xea, offset 0x6c6
+       {value: 0x0000, lo: 0x05},
+       {value: 0x0040, lo: 0x80, hi: 0x80},
+       {value: 0x0018, lo: 0x81, hi: 0x8f},
+       {value: 0x0040, lo: 0x90, hi: 0x90},
+       {value: 0x0018, lo: 0x91, hi: 0xb5},
+       {value: 0x0040, lo: 0xb6, hi: 0xbf},
+       // Block 0xeb, offset 0x6cc
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0018, lo: 0x80, hi: 0x8f},
+       {value: 0xc1c1, lo: 0x90, hi: 0x90},
+       {value: 0x0018, lo: 0x91, hi: 0xac},
+       {value: 0x0040, lo: 0xad, hi: 0xbf},
+       // Block 0xec, offset 0x6d1
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0040, lo: 0x80, hi: 0xa5},
+       {value: 0x0018, lo: 0xa6, hi: 0xbf},
+       // Block 0xed, offset 0x6d4
+       {value: 0x0000, lo: 0x0d},
+       {value: 0xc7e9, lo: 0x80, hi: 0x80},
+       {value: 0xc839, lo: 0x81, hi: 0x81},
+       {value: 0xc889, lo: 0x82, hi: 0x82},
+       {value: 0xc8d9, lo: 0x83, hi: 0x83},
+       {value: 0xc929, lo: 0x84, hi: 0x84},
+       {value: 0xc979, lo: 0x85, hi: 0x85},
+       {value: 0xc9c9, lo: 0x86, hi: 0x86},
+       {value: 0xca19, lo: 0x87, hi: 0x87},
+       {value: 0xca69, lo: 0x88, hi: 0x88},
+       {value: 0x0040, lo: 0x89, hi: 0x8f},
+       {value: 0xcab9, lo: 0x90, hi: 0x90},
+       {value: 0xcad9, lo: 0x91, hi: 0x91},
+       {value: 0x0040, lo: 0x92, hi: 0xbf},
+       // Block 0xee, offset 0x6e2
+       {value: 0x0000, lo: 0x06},
+       {value: 0x0018, lo: 0x80, hi: 0x92},
+       {value: 0x0040, lo: 0x93, hi: 0x9f},
+       {value: 0x0018, lo: 0xa0, hi: 0xac},
+       {value: 0x0040, lo: 0xad, hi: 0xaf},
+       {value: 0x0018, lo: 0xb0, hi: 0xb6},
+       {value: 0x0040, lo: 0xb7, hi: 0xbf},
+       // Block 0xef, offset 0x6e9
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0018, lo: 0x80, hi: 0xb3},
+       {value: 0x0040, lo: 0xb4, hi: 0xbf},
+       // Block 0xf0, offset 0x6ec
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0018, lo: 0x80, hi: 0x94},
+       {value: 0x0040, lo: 0x95, hi: 0xbf},
+       // Block 0xf1, offset 0x6ef
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0018, lo: 0x80, hi: 0x8b},
+       {value: 0x0040, lo: 0x8c, hi: 0x8f},
+       {value: 0x0018, lo: 0x90, hi: 0xbf},
+       // Block 0xf2, offset 0x6f3
+       {value: 0x0000, lo: 0x05},
+       {value: 0x0018, lo: 0x80, hi: 0x87},
+       {value: 0x0040, lo: 0x88, hi: 0x8f},
+       {value: 0x0018, lo: 0x90, hi: 0x99},
+       {value: 0x0040, lo: 0x9a, hi: 0x9f},
+       {value: 0x0018, lo: 0xa0, hi: 0xbf},
+       // Block 0xf3, offset 0x6f9
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0018, lo: 0x80, hi: 0x87},
+       {value: 0x0040, lo: 0x88, hi: 0x8f},
+       {value: 0x0018, lo: 0x90, hi: 0xad},
+       {value: 0x0040, lo: 0xae, hi: 0xbf},
+       // Block 0xf4, offset 0x6fe
+       {value: 0x0000, lo: 0x09},
+       {value: 0x0040, lo: 0x80, hi: 0x8f},
+       {value: 0x0018, lo: 0x90, hi: 0x9e},
+       {value: 0x0040, lo: 0x9f, hi: 0x9f},
+       {value: 0x0018, lo: 0xa0, hi: 0xa7},
+       {value: 0x0040, lo: 0xa8, hi: 0xaf},
+       {value: 0x0018, lo: 0xb0, hi: 0xb0},
+       {value: 0x0040, lo: 0xb1, hi: 0xb2},
+       {value: 0x0018, lo: 0xb3, hi: 0xbe},
+       {value: 0x0040, lo: 0xbf, hi: 0xbf},
+       // Block 0xf5, offset 0x708
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0018, lo: 0x80, hi: 0x8b},
+       {value: 0x0040, lo: 0x8c, hi: 0x8f},
+       {value: 0x0018, lo: 0x90, hi: 0x9e},
+       {value: 0x0040, lo: 0x9f, hi: 0xbf},
+       // Block 0xf6, offset 0x70d
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0018, lo: 0x80, hi: 0x91},
+       {value: 0x0040, lo: 0x92, hi: 0xbf},
+       // Block 0xf7, offset 0x710
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0018, lo: 0x80, hi: 0x80},
+       {value: 0x0040, lo: 0x81, hi: 0xbf},
+       // Block 0xf8, offset 0x713
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0008, lo: 0x80, hi: 0x96},
+       {value: 0x0040, lo: 0x97, hi: 0xbf},
+       // Block 0xf9, offset 0x716
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0008, lo: 0x80, hi: 0xb4},
+       {value: 0x0040, lo: 0xb5, hi: 0xbf},
+       // Block 0xfa, offset 0x719
+       {value: 0x0000, lo: 0x03},
+       {value: 0x0008, lo: 0x80, hi: 0x9d},
+       {value: 0x0040, lo: 0x9e, hi: 0x9f},
+       {value: 0x0008, lo: 0xa0, hi: 0xbf},
+       // Block 0xfb, offset 0x71d
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0008, lo: 0x80, hi: 0xa1},
+       {value: 0x0040, lo: 0xa2, hi: 0xbf},
+       // Block 0xfc, offset 0x720
+       {value: 0x0020, lo: 0x0f},
+       {value: 0xdeb9, lo: 0x80, hi: 0x89},
+       {value: 0x8dfd, lo: 0x8a, hi: 0x8a},
+       {value: 0xdff9, lo: 0x8b, hi: 0x9c},
+       {value: 0x8e1d, lo: 0x9d, hi: 0x9d},
+       {value: 0xe239, lo: 0x9e, hi: 0xa2},
+       {value: 0x8e3d, lo: 0xa3, hi: 0xa3},
+       {value: 0xe2d9, lo: 0xa4, hi: 0xab},
+       {value: 0x7ed5, lo: 0xac, hi: 0xac},
+       {value: 0xe3d9, lo: 0xad, hi: 0xaf},
+       {value: 0x8e5d, lo: 0xb0, hi: 0xb0},
+       {value: 0xe439, lo: 0xb1, hi: 0xb6},
+       {value: 0x8e7d, lo: 0xb7, hi: 0xb9},
+       {value: 0xe4f9, lo: 0xba, hi: 0xba},
+       {value: 0x8edd, lo: 0xbb, hi: 0xbb},
+       {value: 0xe519, lo: 0xbc, hi: 0xbf},
+       // Block 0xfd, offset 0x730
+       {value: 0x0020, lo: 0x10},
+       {value: 0x937d, lo: 0x80, hi: 0x80},
+       {value: 0xf099, lo: 0x81, hi: 0x86},
+       {value: 0x939d, lo: 0x87, hi: 0x8a},
+       {value: 0xd9f9, lo: 0x8b, hi: 0x8b},
+       {value: 0xf159, lo: 0x8c, hi: 0x96},
+       {value: 0x941d, lo: 0x97, hi: 0x97},
+       {value: 0xf2b9, lo: 0x98, hi: 0xa3},
+       {value: 0x943d, lo: 0xa4, hi: 0xa6},
+       {value: 0xf439, lo: 0xa7, hi: 0xaa},
+       {value: 0x949d, lo: 0xab, hi: 0xab},
+       {value: 0xf4b9, lo: 0xac, hi: 0xac},
+       {value: 0x94bd, lo: 0xad, hi: 0xad},
+       {value: 0xf4d9, lo: 0xae, hi: 0xaf},
+       {value: 0x94dd, lo: 0xb0, hi: 0xb1},
+       {value: 0xf519, lo: 0xb2, hi: 0xbe},
+       {value: 0x2040, lo: 0xbf, hi: 0xbf},
+       // Block 0xfe, offset 0x741
+       {value: 0x0000, lo: 0x04},
+       {value: 0x0040, lo: 0x80, hi: 0x80},
+       {value: 0x0340, lo: 0x81, hi: 0x81},
+       {value: 0x0040, lo: 0x82, hi: 0x9f},
+       {value: 0x0340, lo: 0xa0, hi: 0xbf},
+       // Block 0xff, offset 0x746
+       {value: 0x0000, lo: 0x01},
+       {value: 0x0340, lo: 0x80, hi: 0xbf},
+       // Block 0x100, offset 0x748
+       {value: 0x0000, lo: 0x01},
+       {value: 0x33c0, lo: 0x80, hi: 0xbf},
+       // Block 0x101, offset 0x74a
+       {value: 0x0000, lo: 0x02},
+       {value: 0x33c0, lo: 0x80, hi: 0xaf},
+       {value: 0x0040, lo: 0xb0, hi: 0xbf},
+}
+
+// Total table size 41662 bytes (40KiB); checksum: 355A58A4
diff --git a/vendor/golang.org/x/net/idna/trie.go b/vendor/golang.org/x/net/idna/trie.go
new file mode 100644 (file)
index 0000000..c4ef847
--- /dev/null
@@ -0,0 +1,72 @@
+// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT.
+
+// Copyright 2016 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package idna
+
+// appendMapping appends the mapping for the respective rune. isMapped must be
+// true. A mapping is a categorization of a rune as defined in UTS #46.
+func (c info) appendMapping(b []byte, s string) []byte {
+       index := int(c >> indexShift)
+       if c&xorBit == 0 {
+               s := mappings[index:]
+               return append(b, s[1:s[0]+1]...)
+       }
+       b = append(b, s...)
+       if c&inlineXOR == inlineXOR {
+               // TODO: support and handle two-byte inline masks
+               b[len(b)-1] ^= byte(index)
+       } else {
+               for p := len(b) - int(xorData[index]); p < len(b); p++ {
+                       index++
+                       b[p] ^= xorData[index]
+               }
+       }
+       return b
+}
+
+// Sparse block handling code.
+
+type valueRange struct {
+       value  uint16 // header: value:stride
+       lo, hi byte   // header: lo:n
+}
+
+type sparseBlocks struct {
+       values []valueRange
+       offset []uint16
+}
+
+var idnaSparse = sparseBlocks{
+       values: idnaSparseValues[:],
+       offset: idnaSparseOffset[:],
+}
+
+// Don't use newIdnaTrie to avoid unconditional linking in of the table.
+var trie = &idnaTrie{}
+
+// lookup 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/vendor/golang.org/x/net/idna/trieval.go b/vendor/golang.org/x/net/idna/trieval.go
new file mode 100644 (file)
index 0000000..7a8cf88
--- /dev/null
@@ -0,0 +1,119 @@
+// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT.
+
+package idna
+
+// This file contains definitions for interpreting the trie value of the idna
+// trie generated by "go run gen*.go". It is shared by both the generator
+// program and the resultant package. Sharing is achieved by the generator
+// copying gen_trieval.go to trieval.go and changing what's above this comment.
+
+// info holds information from the IDNA mapping table for a single rune. It is
+// the value returned by a trie lookup. In most cases, all information fits in
+// a 16-bit value. For mappings, this value may contain an index into a slice
+// with the mapped string. Such mappings can consist of the actual mapped value
+// or an XOR pattern to be applied to the bytes of the UTF8 encoding of the
+// input rune. This technique is used by the cases packages and reduces the
+// table size significantly.
+//
+// The per-rune values have the following format:
+//
+//   if mapped {
+//     if inlinedXOR {
+//       15..13 inline XOR marker
+//       12..11 unused
+//       10..3  inline XOR mask
+//     } else {
+//       15..3  index into xor or mapping table
+//     }
+//   } else {
+//       15..14 unused
+//       13     mayNeedNorm
+//       12..11 attributes
+//       10..8  joining type
+//        7..3  category type
+//   }
+//      2  use xor pattern
+//   1..0  mapped category
+//
+// See the definitions below for a more detailed description of the various
+// bits.
+type info uint16
+
+const (
+       catSmallMask = 0x3
+       catBigMask   = 0xF8
+       indexShift   = 3
+       xorBit       = 0x4    // interpret the index as an xor pattern
+       inlineXOR    = 0xE000 // These bits are set if the XOR pattern is inlined.
+
+       joinShift = 8
+       joinMask  = 0x07
+
+       // Attributes
+       attributesMask = 0x1800
+       viramaModifier = 0x1800
+       modifier       = 0x1000
+       rtl            = 0x0800
+
+       mayNeedNorm = 0x2000
+)
+
+// A category corresponds to a category defined in the IDNA mapping table.
+type category uint16
+
+const (
+       unknown              category = 0 // not currently defined in unicode.
+       mapped               category = 1
+       disallowedSTD3Mapped category = 2
+       deviation            category = 3
+)
+
+const (
+       valid               category = 0x08
+       validNV8            category = 0x18
+       validXV8            category = 0x28
+       disallowed          category = 0x40
+       disallowedSTD3Valid category = 0x80
+       ignored             category = 0xC0
+)
+
+// join types and additional rune information
+const (
+       joiningL = (iota + 1)
+       joiningD
+       joiningT
+       joiningR
+
+       //the following types are derived during processing
+       joinZWJ
+       joinZWNJ
+       joinVirama
+       numJoinTypes
+)
+
+func (c info) isMapped() bool {
+       return c&0x3 != 0
+}
+
+func (c info) category() category {
+       small := c & catSmallMask
+       if small != 0 {
+               return category(small)
+       }
+       return category(c & catBigMask)
+}
+
+func (c info) joinType() info {
+       if c.isMapped() {
+               return 0
+       }
+       return (c >> joinShift) & joinMask
+}
+
+func (c info) isModifier() bool {
+       return c&(modifier|catSmallMask) == modifier
+}
+
+func (c info) isViramaModifier() bool {
+       return c&(attributesMask|catSmallMask) == viramaModifier
+}
diff --git a/vendor/golang.org/x/text/AUTHORS b/vendor/golang.org/x/text/AUTHORS
new file mode 100644 (file)
index 0000000..15167cd
--- /dev/null
@@ -0,0 +1,3 @@
+# This source code refers to The Go Authors for copyright purposes.
+# The master list of authors is in the main Go distribution,
+# visible at http://tip.golang.org/AUTHORS.
diff --git a/vendor/golang.org/x/text/CONTRIBUTORS b/vendor/golang.org/x/text/CONTRIBUTORS
new file mode 100644 (file)
index 0000000..1c4577e
--- /dev/null
@@ -0,0 +1,3 @@
+# This source code was written by the Go contributors.
+# The master list of contributors is in the main Go distribution,
+# visible at http://tip.golang.org/CONTRIBUTORS.
diff --git a/vendor/golang.org/x/text/LICENSE b/vendor/golang.org/x/text/LICENSE
new file mode 100644 (file)
index 0000000..6a66aea
--- /dev/null
@@ -0,0 +1,27 @@
+Copyright (c) 2009 The Go Authors. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+   * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+   * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+   * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/vendor/golang.org/x/text/PATENTS b/vendor/golang.org/x/text/PATENTS
new file mode 100644 (file)
index 0000000..7330990
--- /dev/null
@@ -0,0 +1,22 @@
+Additional IP Rights Grant (Patents)
+
+"This implementation" means the copyrightable works distributed by
+Google as part of the Go project.
+
+Google hereby grants to You a perpetual, worldwide, non-exclusive,
+no-charge, royalty-free, irrevocable (except as stated in this section)
+patent license to make, have made, use, offer to sell, sell, import,
+transfer and otherwise run, modify and propagate the contents of this
+implementation of Go, where such license applies only to those patent
+claims, both currently owned or controlled by Google and acquired in
+the future, licensable by Google that are necessarily infringed by this
+implementation of Go.  This grant does not include claims that would be
+infringed only as a consequence of further modification of this
+implementation.  If you or your agent or exclusive licensee institute or
+order or agree to the institution of patent litigation against any
+entity (including a cross-claim or counterclaim in a lawsuit) alleging
+that this implementation of Go or any code incorporated within this
+implementation of Go constitutes direct or contributory patent
+infringement, or inducement of patent infringement, then any patent
+rights granted to you under this License for this implementation of Go
+shall terminate as of the date such litigation is filed.
diff --git a/vendor/golang.org/x/text/secure/bidirule/bidirule.go b/vendor/golang.org/x/text/secure/bidirule/bidirule.go
new file mode 100644 (file)
index 0000000..e2b70f7
--- /dev/null
@@ -0,0 +1,336 @@
+// Copyright 2016 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Package bidirule implements the Bidi Rule defined by RFC 5893.
+//
+// This package is under development. The API may change without notice and
+// without preserving backward compatibility.
+package bidirule
+
+import (
+       "errors"
+       "unicode/utf8"
+
+       "golang.org/x/text/transform"
+       "golang.org/x/text/unicode/bidi"
+)
+
+// This file contains an implementation of RFC 5893: Right-to-Left Scripts for
+// Internationalized Domain Names for Applications (IDNA)
+//
+// A label is an individual component of a domain name.  Labels are usually
+// shown separated by dots; for example, the domain name "www.example.com" is
+// composed of three labels: "www", "example", and "com".
+//
+// An RTL label is a label that contains at least one character of class R, AL,
+// or AN. An LTR label is any label that is not an RTL label.
+//
+// A "Bidi domain name" is a domain name that contains at least one RTL label.
+//
+//  The following guarantees can be made based on the above:
+//
+//  o  In a domain name consisting of only labels that satisfy the rule,
+//     the requirements of Section 3 are satisfied.  Note that even LTR
+//     labels and pure ASCII labels have to be tested.
+//
+//  o  In a domain name consisting of only LDH labels (as defined in the
+//     Definitions document [RFC5890]) and labels that satisfy the rule,
+//     the requirements of Section 3 are satisfied as long as a label
+//     that starts with an ASCII digit does not come after a
+//     right-to-left label.
+//
+//  No guarantee is given for other combinations.
+
+// ErrInvalid indicates a label is invalid according to the Bidi Rule.
+var ErrInvalid = errors.New("bidirule: failed Bidi Rule")
+
+type ruleState uint8
+
+const (
+       ruleInitial ruleState = iota
+       ruleLTR
+       ruleLTRFinal
+       ruleRTL
+       ruleRTLFinal
+       ruleInvalid
+)
+
+type ruleTransition struct {
+       next ruleState
+       mask uint16
+}
+
+var transitions = [...][2]ruleTransition{
+       // [2.1] The first character must be a character with Bidi property L, R, or
+       // AL. If it has the R or AL property, it is an RTL label; if it has the L
+       // property, it is an LTR label.
+       ruleInitial: {
+               {ruleLTRFinal, 1 << bidi.L},
+               {ruleRTLFinal, 1<<bidi.R | 1<<bidi.AL},
+       },
+       ruleRTL: {
+               // [2.3] In an RTL label, the end of the label must be a character with
+               // Bidi property R, AL, EN, or AN, followed by zero or more characters
+               // with Bidi property NSM.
+               {ruleRTLFinal, 1<<bidi.R | 1<<bidi.AL | 1<<bidi.EN | 1<<bidi.AN},
+
+               // [2.2] In an RTL label, only characters with the Bidi properties R,
+               // AL, AN, EN, ES, CS, ET, ON, BN, or NSM are allowed.
+               // We exclude the entries from [2.3]
+               {ruleRTL, 1<<bidi.ES | 1<<bidi.CS | 1<<bidi.ET | 1<<bidi.ON | 1<<bidi.BN | 1<<bidi.NSM},
+       },
+       ruleRTLFinal: {
+               // [2.3] In an RTL label, the end of the label must be a character with
+               // Bidi property R, AL, EN, or AN, followed by zero or more characters
+               // with Bidi property NSM.
+               {ruleRTLFinal, 1<<bidi.R | 1<<bidi.AL | 1<<bidi.EN | 1<<bidi.AN | 1<<bidi.NSM},
+
+               // [2.2] In an RTL label, only characters with the Bidi properties R,
+               // AL, AN, EN, ES, CS, ET, ON, BN, or NSM are allowed.
+               // We exclude the entries from [2.3] and NSM.
+               {ruleRTL, 1<<bidi.ES | 1<<bidi.CS | 1<<bidi.ET | 1<<bidi.ON | 1<<bidi.BN},
+       },
+       ruleLTR: {
+               // [2.6] In an LTR label, the end of the label must be a character with
+               // Bidi property L or EN, followed by zero or more characters with Bidi
+               // property NSM.
+               {ruleLTRFinal, 1<<bidi.L | 1<<bidi.EN},
+
+               // [2.5] In an LTR label, only characters with the Bidi properties L,
+               // EN, ES, CS, ET, ON, BN, or NSM are allowed.
+               // We exclude the entries from [2.6].
+               {ruleLTR, 1<<bidi.ES | 1<<bidi.CS | 1<<bidi.ET | 1<<bidi.ON | 1<<bidi.BN | 1<<bidi.NSM},
+       },
+       ruleLTRFinal: {
+               // [2.6] In an LTR label, the end of the label must be a character with
+               // Bidi property L or EN, followed by zero or more characters with Bidi
+               // property NSM.
+               {ruleLTRFinal, 1<<bidi.L | 1<<bidi.EN | 1<<bidi.NSM},
+
+               // [2.5] In an LTR label, only characters with the Bidi properties L,
+               // EN, ES, CS, ET, ON, BN, or NSM are allowed.
+               // We exclude the entries from [2.6].
+               {ruleLTR, 1<<bidi.ES | 1<<bidi.CS | 1<<bidi.ET | 1<<bidi.ON | 1<<bidi.BN},
+       },
+       ruleInvalid: {
+               {ruleInvalid, 0},
+               {ruleInvalid, 0},
+       },
+}
+
+// [2.4] In an RTL label, if an EN is present, no AN may be present, and
+// vice versa.
+const exclusiveRTL = uint16(1<<bidi.EN | 1<<bidi.AN)
+
+// From RFC 5893
+// An RTL label is a label that contains at least one character of type
+// R, AL, or AN.
+//
+// An LTR label is any label that is not an RTL label.
+
+// Direction reports the direction of the given label as defined by RFC 5893.
+// The Bidi Rule does not have to be applied to labels of the category
+// LeftToRight.
+func Direction(b []byte) bidi.Direction {
+       for i := 0; i < len(b); {
+               e, sz := bidi.Lookup(b[i:])
+               if sz == 0 {
+                       i++
+               }
+               c := e.Class()
+               if c == bidi.R || c == bidi.AL || c == bidi.AN {
+                       return bidi.RightToLeft
+               }
+               i += sz
+       }
+       return bidi.LeftToRight
+}
+
+// DirectionString reports the direction of the given label as defined by RFC
+// 5893. The Bidi Rule does not have to be applied to labels of the category
+// LeftToRight.
+func DirectionString(s string) bidi.Direction {
+       for i := 0; i < len(s); {
+               e, sz := bidi.LookupString(s[i:])
+               if sz == 0 {
+                       i++
+                       continue
+               }
+               c := e.Class()
+               if c == bidi.R || c == bidi.AL || c == bidi.AN {
+                       return bidi.RightToLeft
+               }
+               i += sz
+       }
+       return bidi.LeftToRight
+}
+
+// Valid reports whether b conforms to the BiDi rule.
+func Valid(b []byte) bool {
+       var t Transformer
+       if n, ok := t.advance(b); !ok || n < len(b) {
+               return false
+       }
+       return t.isFinal()
+}
+
+// ValidString reports whether s conforms to the BiDi rule.
+func ValidString(s string) bool {
+       var t Transformer
+       if n, ok := t.advanceString(s); !ok || n < len(s) {
+               return false
+       }
+       return t.isFinal()
+}
+
+// New returns a Transformer that verifies that input adheres to the Bidi Rule.
+func New() *Transformer {
+       return &Transformer{}
+}
+
+// Transformer implements transform.Transform.
+type Transformer struct {
+       state  ruleState
+       hasRTL bool
+       seen   uint16
+}
+
+// A rule can only be violated for "Bidi Domain names", meaning if one of the
+// following categories has been observed.
+func (t *Transformer) isRTL() bool {
+       const isRTL = 1<<bidi.R | 1<<bidi.AL | 1<<bidi.AN
+       return t.seen&isRTL != 0
+}
+
+// Reset implements transform.Transformer.
+func (t *Transformer) Reset() { *t = Transformer{} }
+
+// Transform implements transform.Transformer. This Transformer has state and
+// needs to be reset between uses.
+func (t *Transformer) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {
+       if len(dst) < len(src) {
+               src = src[:len(dst)]
+               atEOF = false
+               err = transform.ErrShortDst
+       }
+       n, err1 := t.Span(src, atEOF)
+       copy(dst, src[:n])
+       if err == nil || err1 != nil && err1 != transform.ErrShortSrc {
+               err = err1
+       }
+       return n, n, err
+}
+
+// Span returns the first n bytes of src that conform to the Bidi rule.
+func (t *Transformer) Span(src []byte, atEOF bool) (n int, err error) {
+       if t.state == ruleInvalid && t.isRTL() {
+               return 0, ErrInvalid
+       }
+       n, ok := t.advance(src)
+       switch {
+       case !ok:
+               err = ErrInvalid
+       case n < len(src):
+               if !atEOF {
+                       err = transform.ErrShortSrc
+                       break
+               }
+               err = ErrInvalid
+       case !t.isFinal():
+               err = ErrInvalid
+       }
+       return n, err
+}
+
+// Precomputing the ASCII values decreases running time for the ASCII fast path
+// by about 30%.
+var asciiTable [128]bidi.Properties
+
+func init() {
+       for i := range asciiTable {
+               p, _ := bidi.LookupRune(rune(i))
+               asciiTable[i] = p
+       }
+}
+
+func (t *Transformer) advance(s []byte) (n int, ok bool) {
+       var e bidi.Properties
+       var sz int
+       for n < len(s) {
+               if s[n] < utf8.RuneSelf {
+                       e, sz = asciiTable[s[n]], 1
+               } else {
+                       e, sz = bidi.Lookup(s[n:])
+                       if sz <= 1 {
+                               if sz == 1 {
+                                       // We always consider invalid UTF-8 to be invalid, even if
+                                       // the string has not yet been determined to be RTL.
+                                       // TODO: is this correct?
+                                       return n, false
+                               }
+                               return n, true // incomplete UTF-8 encoding
+                       }
+               }
+               // TODO: using CompactClass would result in noticeable speedup.
+               // See unicode/bidi/prop.go:Properties.CompactClass.
+               c := uint16(1 << e.Class())
+               t.seen |= c
+               if t.seen&exclusiveRTL == exclusiveRTL {
+                       t.state = ruleInvalid
+                       return n, false
+               }
+               switch tr := transitions[t.state]; {
+               case tr[0].mask&c != 0:
+                       t.state = tr[0].next
+               case tr[1].mask&c != 0:
+                       t.state = tr[1].next
+               default:
+                       t.state = ruleInvalid
+                       if t.isRTL() {
+                               return n, false
+                       }
+               }
+               n += sz
+       }
+       return n, true
+}
+
+func (t *Transformer) advanceString(s string) (n int, ok bool) {
+       var e bidi.Properties
+       var sz int
+       for n < len(s) {
+               if s[n] < utf8.RuneSelf {
+                       e, sz = asciiTable[s[n]], 1
+               } else {
+                       e, sz = bidi.LookupString(s[n:])
+                       if sz <= 1 {
+                               if sz == 1 {
+                                       return n, false // invalid UTF-8
+                               }
+                               return n, true // incomplete UTF-8 encoding
+                       }
+               }
+               // TODO: using CompactClass results in noticeable speedup.
+               // See unicode/bidi/prop.go:Properties.CompactClass.
+               c := uint16(1 << e.Class())
+               t.seen |= c
+               if t.seen&exclusiveRTL == exclusiveRTL {
+                       t.state = ruleInvalid
+                       return n, false
+               }
+               switch tr := transitions[t.state]; {
+               case tr[0].mask&c != 0:
+                       t.state = tr[0].next
+               case tr[1].mask&c != 0:
+                       t.state = tr[1].next
+               default:
+                       t.state = ruleInvalid
+                       if t.isRTL() {
+                               return n, false
+                       }
+               }
+               n += sz
+       }
+       return n, true
+}
diff --git a/vendor/golang.org/x/text/secure/bidirule/bidirule10.0.0.go b/vendor/golang.org/x/text/secure/bidirule/bidirule10.0.0.go
new file mode 100644 (file)
index 0000000..e4c6228
--- /dev/null
@@ -0,0 +1,11 @@
+// Copyright 2016 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build go1.10
+
+package bidirule
+
+func (t *Transformer) isFinal() bool {
+       return t.state == ruleLTRFinal || t.state == ruleRTLFinal || t.state == ruleInitial
+}
diff --git a/vendor/golang.org/x/text/secure/bidirule/bidirule9.0.0.go b/vendor/golang.org/x/text/secure/bidirule/bidirule9.0.0.go
new file mode 100644 (file)
index 0000000..02b9e1e
--- /dev/null
@@ -0,0 +1,14 @@
+// Copyright 2016 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build !go1.10
+
+package bidirule
+
+func (t *Transformer) isFinal() bool {
+       if !t.isRTL() {
+               return true
+       }
+       return t.state == ruleLTRFinal || t.state == ruleRTLFinal || t.state == ruleInitial
+}
diff --git a/vendor/golang.org/x/text/transform/transform.go b/vendor/golang.org/x/text/transform/transform.go
new file mode 100644 (file)
index 0000000..520b9ad
--- /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 returned
+       // regardless of whether atEOF is true. If err is nil, 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/vendor/golang.org/x/text/unicode/bidi/bidi.go b/vendor/golang.org/x/text/unicode/bidi/bidi.go
new file mode 100644 (file)
index 0000000..e8edc54
--- /dev/null
@@ -0,0 +1,198 @@
+// 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 go run gen.go gen_trieval.go gen_ranges.go
+
+// Package bidi contains functionality for bidirectional text support.
+//
+// See https://www.unicode.org/reports/tr9.
+//
+// NOTE: UNDER CONSTRUCTION. This API may change in backwards incompatible ways
+// and without notice.
+package bidi // import "golang.org/x/text/unicode/bidi"
+
+// TODO:
+// The following functionality would not be hard to implement, but hinges on
+// the definition of a Segmenter interface. For now this is up to the user.
+// - Iterate over paragraphs
+// - Segmenter to iterate over runs directly from a given text.
+// Also:
+// - Transformer for reordering?
+// - Transformer (validator, really) for Bidi Rule.
+
+// This API tries to avoid dealing with embedding levels for now. Under the hood
+// these will be computed, but the question is to which extent the user should
+// know they exist. We should at some point allow the user to specify an
+// embedding hierarchy, though.
+
+// A Direction indicates the overall flow of text.
+type Direction int
+
+const (
+       // LeftToRight indicates the text contains no right-to-left characters and
+       // that either there are some left-to-right characters or the option
+       // DefaultDirection(LeftToRight) was passed.
+       LeftToRight Direction = iota
+
+       // RightToLeft indicates the text contains no left-to-right characters and
+       // that either there are some right-to-left characters or the option
+       // DefaultDirection(RightToLeft) was passed.
+       RightToLeft
+
+       // Mixed indicates text contains both left-to-right and right-to-left
+       // characters.
+       Mixed
+
+       // Neutral means that text contains no left-to-right and right-to-left
+       // characters and that no default direction has been set.
+       Neutral
+)
+
+type options struct{}
+
+// An Option is an option for Bidi processing.
+type Option func(*options)
+
+// ICU allows the user to define embedding levels. This may be used, for example,
+// to use hierarchical structure of markup languages to define embeddings.
+// The following option may be a way to expose this functionality in this API.
+// // LevelFunc sets a function that associates nesting levels with the given text.
+// // The levels function will be called with monotonically increasing values for p.
+// func LevelFunc(levels func(p int) int) Option {
+//     panic("unimplemented")
+// }
+
+// DefaultDirection sets the default direction for a Paragraph. The direction is
+// overridden if the text contains directional characters.
+func DefaultDirection(d Direction) Option {
+       panic("unimplemented")
+}
+
+// A Paragraph holds a single Paragraph for Bidi processing.
+type Paragraph struct {
+       // buffers
+}
+
+// SetBytes configures p for the given paragraph text. It replaces text
+// previously set by SetBytes or SetString. If b contains a paragraph separator
+// it will only process the first paragraph and report the number of bytes
+// consumed from b including this separator. Error may be non-nil if options are
+// given.
+func (p *Paragraph) SetBytes(b []byte, opts ...Option) (n int, err error) {
+       panic("unimplemented")
+}
+
+// SetString configures p for the given paragraph text. It replaces text
+// previously set by SetBytes or SetString. If b contains a paragraph separator
+// it will only process the first paragraph and report the number of bytes
+// consumed from b including this separator. Error may be non-nil if options are
+// given.
+func (p *Paragraph) SetString(s string, opts ...Option) (n int, err error) {
+       panic("unimplemented")
+}
+
+// IsLeftToRight reports whether the principle direction of rendering for this
+// paragraphs is left-to-right. If this returns false, the principle direction
+// of rendering is right-to-left.
+func (p *Paragraph) IsLeftToRight() bool {
+       panic("unimplemented")
+}
+
+// Direction returns the direction of the text of this paragraph.
+//
+// The direction may be LeftToRight, RightToLeft, Mixed, or Neutral.
+func (p *Paragraph) Direction() Direction {
+       panic("unimplemented")
+}
+
+// RunAt reports the Run at the given position of the input text.
+//
+// This method can be used for computing line breaks on paragraphs.
+func (p *Paragraph) RunAt(pos int) Run {
+       panic("unimplemented")
+}
+
+// Order computes the visual ordering of all the runs in a Paragraph.
+func (p *Paragraph) Order() (Ordering, error) {
+       panic("unimplemented")
+}
+
+// Line computes the visual ordering of runs for a single line starting and
+// ending at the given positions in the original text.
+func (p *Paragraph) Line(start, end int) (Ordering, error) {
+       panic("unimplemented")
+}
+
+// An Ordering holds the computed visual order of runs of a Paragraph. Calling
+// SetBytes or SetString on the originating Paragraph invalidates an Ordering.
+// The methods of an Ordering should only be called by one goroutine at a time.
+type Ordering struct{}
+
+// Direction reports the directionality of the runs.
+//
+// The direction may be LeftToRight, RightToLeft, Mixed, or Neutral.
+func (o *Ordering) Direction() Direction {
+       panic("unimplemented")
+}
+
+// NumRuns returns the number of runs.
+func (o *Ordering) NumRuns() int {
+       panic("unimplemented")
+}
+
+// Run returns the ith run within the ordering.
+func (o *Ordering) Run(i int) Run {
+       panic("unimplemented")
+}
+
+// TODO: perhaps with options.
+// // Reorder creates a reader that reads the runes in visual order per character.
+// // Modifiers remain after the runes they modify.
+// func (l *Runs) Reorder() io.Reader {
+//     panic("unimplemented")
+// }
+
+// A Run is a continuous sequence of characters of a single direction.
+type Run struct {
+}
+
+// String returns the text of the run in its original order.
+func (r *Run) String() string {
+       panic("unimplemented")
+}
+
+// Bytes returns the text of the run in its original order.
+func (r *Run) Bytes() []byte {
+       panic("unimplemented")
+}
+
+// TODO: methods for
+// - Display order
+// - headers and footers
+// - bracket replacement.
+
+// Direction reports the direction of the run.
+func (r *Run) Direction() Direction {
+       panic("unimplemented")
+}
+
+// Position of the Run within the text passed to SetBytes or SetString of the
+// originating Paragraph value.
+func (r *Run) Pos() (start, end int) {
+       panic("unimplemented")
+}
+
+// AppendReverse reverses the order of characters of in, appends them to out,
+// and returns the result. Modifiers will still follow the runes they modify.
+// Brackets are replaced with their counterparts.
+func AppendReverse(out, in []byte) []byte {
+       panic("unimplemented")
+}
+
+// ReverseString reverses the order of characters in s and returns a new string.
+// Modifiers will still follow the runes they modify. Brackets are replaced with
+// their counterparts.
+func ReverseString(s string) string {
+       panic("unimplemented")
+}
diff --git a/vendor/golang.org/x/text/unicode/bidi/bracket.go b/vendor/golang.org/x/text/unicode/bidi/bracket.go
new file mode 100644 (file)
index 0000000..1853939
--- /dev/null
@@ -0,0 +1,335 @@
+// 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 bidi
+
+import (
+       "container/list"
+       "fmt"
+       "sort"
+)
+
+// This file contains a port of the reference implementation of the
+// Bidi Parentheses Algorithm:
+// https://www.unicode.org/Public/PROGRAMS/BidiReferenceJava/BidiPBAReference.java
+//
+// The implementation in this file covers definitions BD14-BD16 and rule N0
+// of UAX#9.
+//
+// Some preprocessing is done for each rune before data is passed to this
+// algorithm:
+//  - opening and closing brackets are identified
+//  - a bracket pair type, like '(' and ')' is assigned a unique identifier that
+//    is identical for the opening and closing bracket. It is left to do these
+//    mappings.
+//  - The BPA algorithm requires that bracket characters that are canonical
+//    equivalents of each other be able to be substituted for each other.
+//    It is the responsibility of the caller to do this canonicalization.
+//
+// In implementing BD16, this implementation departs slightly from the "logical"
+// algorithm defined in UAX#9. In particular, the stack referenced there
+// supports operations that go beyond a "basic" stack. An equivalent
+// implementation based on a linked list is used here.
+
+// Bidi_Paired_Bracket_Type
+// BD14. An opening paired bracket is a character whose
+// Bidi_Paired_Bracket_Type property value is Open.
+//
+// BD15. A closing paired bracket is a character whose
+// Bidi_Paired_Bracket_Type property value is Close.
+type bracketType byte
+
+const (
+       bpNone bracketType = iota
+       bpOpen
+       bpClose
+)
+
+// bracketPair holds a pair of index values for opening and closing bracket
+// location of a bracket pair.
+type bracketPair struct {
+       opener int
+       closer int
+}
+
+func (b *bracketPair) String() string {
+       return fmt.Sprintf("(%v, %v)", b.opener, b.closer)
+}
+
+// bracketPairs is a slice of bracketPairs with a sort.Interface implementation.
+type bracketPairs []bracketPair
+
+func (b bracketPairs) Len() int           { return len(b) }
+func (b bracketPairs) Swap(i, j int)      { b[i], b[j] = b[j], b[i] }
+func (b bracketPairs) Less(i, j int) bool { return b[i].opener < b[j].opener }
+
+// resolvePairedBrackets runs the paired bracket part of the UBA algorithm.
+//
+// For each rune, it takes the indexes into the original string, the class the
+// bracket type (in pairTypes) and the bracket identifier (pairValues). It also
+// takes the direction type for the start-of-sentence and the embedding level.
+//
+// The identifiers for bracket types are the rune of the canonicalized opening
+// bracket for brackets (open or close) or 0 for runes that are not brackets.
+func resolvePairedBrackets(s *isolatingRunSequence) {
+       p := bracketPairer{
+               sos:              s.sos,
+               openers:          list.New(),
+               codesIsolatedRun: s.types,
+               indexes:          s.indexes,
+       }
+       dirEmbed := L
+       if s.level&1 != 0 {
+               dirEmbed = R
+       }
+       p.locateBrackets(s.p.pairTypes, s.p.pairValues)
+       p.resolveBrackets(dirEmbed, s.p.initialTypes)
+}
+
+type bracketPairer struct {
+       sos Class // direction corresponding to start of sequence
+
+       // The following is a restatement of BD 16 using non-algorithmic language.
+       //
+       // A bracket pair is a pair of characters consisting of an opening
+       // paired bracket and a closing paired bracket such that the
+       // Bidi_Paired_Bracket property value of the former equals the latter,
+       // subject to the following constraints.
+       // - both characters of a pair occur in the same isolating run sequence
+       // - the closing character of a pair follows the opening character
+       // - any bracket character can belong at most to one pair, the earliest possible one
+       // - any bracket character not part of a pair is treated like an ordinary character
+       // - pairs may nest properly, but their spans may not overlap otherwise
+
+       // Bracket characters with canonical decompositions are supposed to be
+       // treated as if they had been normalized, to allow normalized and non-
+       // normalized text to give the same result. In this implementation that step
+       // is pushed out to the caller. The caller has to ensure that the pairValue
+       // slices contain the rune of the opening bracket after normalization for
+       // any opening or closing bracket.
+
+       openers *list.List // list of positions for opening brackets
+
+       // bracket pair positions sorted by location of opening bracket
+       pairPositions bracketPairs
+
+       codesIsolatedRun []Class // directional bidi codes for an isolated run
+       indexes          []int   // array of index values into the original string
+
+}
+
+// matchOpener reports whether characters at given positions form a matching
+// bracket pair.
+func (p *bracketPairer) matchOpener(pairValues []rune, opener, closer int) bool {
+       return pairValues[p.indexes[opener]] == pairValues[p.indexes[closer]]
+}
+
+const maxPairingDepth = 63
+
+// locateBrackets locates matching bracket pairs according to BD16.
+//
+// This implementation uses a linked list instead of a stack, because, while
+// elements are added at the front (like a push) they are not generally removed
+// in atomic 'pop' operations, reducing the benefit of the stack archetype.
+func (p *bracketPairer) locateBrackets(pairTypes []bracketType, pairValues []rune) {
+       // traverse the run
+       // do that explicitly (not in a for-each) so we can record position
+       for i, index := range p.indexes {
+
+               // look at the bracket type for each character
+               if pairTypes[index] == bpNone || p.codesIsolatedRun[i] != ON {
+                       // continue scanning
+                       continue
+               }
+               switch pairTypes[index] {
+               case bpOpen:
+                       // check if maximum pairing depth reached
+                       if p.openers.Len() == maxPairingDepth {
+                               p.openers.Init()
+                               return
+                       }
+                       // remember opener location, most recent first
+                       p.openers.PushFront(i)
+
+               case bpClose:
+                       // see if there is a match
+                       count := 0
+                       for elem := p.openers.Front(); elem != nil; elem = elem.Next() {
+                               count++
+                               opener := elem.Value.(int)
+                               if p.matchOpener(pairValues, opener, i) {
+                                       // if the opener matches, add nested pair to the ordered list
+                                       p.pairPositions = append(p.pairPositions, bracketPair{opener, i})
+                                       // remove up to and including matched opener
+                                       for ; count > 0; count-- {
+                                               p.openers.Remove(p.openers.Front())
+                                       }
+                                       break
+                               }
+                       }
+                       sort.Sort(p.pairPositions)
+                       // if we get here, the closing bracket matched no openers
+                       // and gets ignored
+               }
+       }
+}
+
+// Bracket pairs within an isolating run sequence are processed as units so
+// that both the opening and the closing paired bracket in a pair resolve to
+// the same direction.
+//
+// N0. Process bracket pairs in an isolating run sequence sequentially in
+// the logical order of the text positions of the opening paired brackets
+// using the logic given below. Within this scope, bidirectional types EN
+// and AN are treated as R.
+//
+// Identify the bracket pairs in the current isolating run sequence
+// according to BD16. For each bracket-pair element in the list of pairs of
+// text positions:
+//
+// a Inspect the bidirectional types of the characters enclosed within the
+// bracket pair.
+//
+// b If any strong type (either L or R) matching the embedding direction is
+// found, set the type for both brackets in the pair to match the embedding
+// direction.
+//
+// o [ e ] o -> o e e e o
+//
+// o [ o e ] -> o e o e e
+//
+// o [ NI e ] -> o e NI e e
+//
+// c Otherwise, if a strong type (opposite the embedding direction) is
+// found, test for adjacent strong types as follows: 1 First, check
+// backwards before the opening paired bracket until the first strong type
+// (L, R, or sos) is found. If that first preceding strong type is opposite
+// the embedding direction, then set the type for both brackets in the pair
+// to that type. 2 Otherwise, set the type for both brackets in the pair to
+// the embedding direction.
+//
+// o [ o ] e -> o o o o e
+//
+// o [ o NI ] o -> o o o NI o o
+//
+// e [ o ] o -> e e o e o
+//
+// e [ o ] e -> e e o e e
+//
+// e ( o [ o ] NI ) e -> e e o o o o NI e e
+//
+// d Otherwise, do not set the type for the current bracket pair. Note that
+// if the enclosed text contains no strong types the paired brackets will
+// both resolve to the same level when resolved individually using rules N1
+// and N2.
+//
+// e ( NI ) o -> e ( NI ) o
+
+// getStrongTypeN0 maps character's directional code to strong type as required
+// by rule N0.
+//
+// TODO: have separate type for "strong" directionality.
+func (p *bracketPairer) getStrongTypeN0(index int) Class {
+       switch p.codesIsolatedRun[index] {
+       // in the scope of N0, number types are treated as R
+       case EN, AN, AL, R:
+               return R
+       case L:
+               return L
+       default:
+               return ON
+       }
+}
+
+// classifyPairContent reports the strong types contained inside a Bracket Pair,
+// assuming the given embedding direction.
+//
+// It returns ON if no strong type is found. If a single strong type is found,
+// it returns this type. Otherwise it returns the embedding direction.
+//
+// TODO: use separate type for "strong" directionality.
+func (p *bracketPairer) classifyPairContent(loc bracketPair, dirEmbed Class) Class {
+       dirOpposite := ON
+       for i := loc.opener + 1; i < loc.closer; i++ {
+               dir := p.getStrongTypeN0(i)
+               if dir == ON {
+                       continue
+               }
+               if dir == dirEmbed {
+                       return dir // type matching embedding direction found
+               }
+               dirOpposite = dir
+       }
+       // return ON if no strong type found, or class opposite to dirEmbed
+       return dirOpposite
+}
+
+// classBeforePair determines which strong types are present before a Bracket
+// Pair. Return R or L if strong type found, otherwise ON.
+func (p *bracketPairer) classBeforePair(loc bracketPair) Class {
+       for i := loc.opener - 1; i >= 0; i-- {
+               if dir := p.getStrongTypeN0(i); dir != ON {
+                       return dir
+               }
+       }
+       // no strong types found, return sos
+       return p.sos
+}
+
+// assignBracketType implements rule N0 for a single bracket pair.
+func (p *bracketPairer) assignBracketType(loc bracketPair, dirEmbed Class, initialTypes []Class) {
+       // rule "N0, a", inspect contents of pair
+       dirPair := p.classifyPairContent(loc, dirEmbed)
+
+       // dirPair is now L, R, or N (no strong type found)
+
+       // the following logical tests are performed out of order compared to
+       // the statement of the rules but yield the same results
+       if dirPair == ON {
+               return // case "d" - nothing to do
+       }
+
+       if dirPair != dirEmbed {
+               // case "c": strong type found, opposite - check before (c.1)
+               dirPair = p.classBeforePair(loc)
+               if dirPair == dirEmbed || dirPair == ON {
+                       // no strong opposite type found before - use embedding (c.2)
+                       dirPair = dirEmbed
+               }
+       }
+       // else: case "b", strong type found matching embedding,
+       // no explicit action needed, as dirPair is already set to embedding
+       // direction
+
+       // set the bracket types to the type found
+       p.setBracketsToType(loc, dirPair, initialTypes)
+}
+
+func (p *bracketPairer) setBracketsToType(loc bracketPair, dirPair Class, initialTypes []Class) {
+       p.codesIsolatedRun[loc.opener] = dirPair
+       p.codesIsolatedRun[loc.closer] = dirPair
+
+       for i := loc.opener + 1; i < loc.closer; i++ {
+               index := p.indexes[i]
+               if initialTypes[index] != NSM {
+                       break
+               }
+               p.codesIsolatedRun[i] = dirPair
+       }
+
+       for i := loc.closer + 1; i < len(p.indexes); i++ {
+               index := p.indexes[i]
+               if initialTypes[index] != NSM {
+                       break
+               }
+               p.codesIsolatedRun[i] = dirPair
+       }
+}
+
+// resolveBrackets implements rule N0 for a list of pairs.
+func (p *bracketPairer) resolveBrackets(dirEmbed Class, initialTypes []Class) {
+       for _, loc := range p.pairPositions {
+               p.assignBracketType(loc, dirEmbed, initialTypes)
+       }
+}
diff --git a/vendor/golang.org/x/text/unicode/bidi/core.go b/vendor/golang.org/x/text/unicode/bidi/core.go
new file mode 100644 (file)
index 0000000..48d1440
--- /dev/null
@@ -0,0 +1,1058 @@
+// 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 bidi
+
+import "log"
+
+// This implementation is a port based on the reference implementation found at:
+// https://www.unicode.org/Public/PROGRAMS/BidiReferenceJava/
+//
+// described in Unicode Bidirectional Algorithm (UAX #9).
+//
+// Input:
+// There are two levels of input to the algorithm, since clients may prefer to
+// supply some information from out-of-band sources rather than relying on the
+// default behavior.
+//
+// - Bidi class array
+// - Bidi class array, with externally supplied base line direction
+//
+// Output:
+// Output is separated into several stages:
+//
+//  - levels array over entire paragraph
+//  - reordering array over entire paragraph
+//  - levels array over line
+//  - reordering array over line
+//
+// Note that for conformance to the Unicode Bidirectional Algorithm,
+// implementations are only required to generate correct reordering and
+// character directionality (odd or even levels) over a line. Generating
+// identical level arrays over a line is not required. Bidi explicit format
+// codes (LRE, RLE, LRO, RLO, PDF) and BN can be assigned arbitrary levels and
+// positions as long as the rest of the input is properly reordered.
+//
+// As the algorithm is defined to operate on a single paragraph at a time, this
+// implementation is written to handle single paragraphs. Thus rule P1 is
+// presumed by this implementation-- the data provided to the implementation is
+// assumed to be a single paragraph, and either contains no 'B' codes, or a
+// single 'B' code at the end of the input. 'B' is allowed as input to
+// illustrate how the algorithm assigns it a level.
+//
+// Also note that rules L3 and L4 depend on the rendering engine that uses the
+// result of the bidi algorithm. This implementation assumes that the rendering
+// engine expects combining marks in visual order (e.g. to the left of their
+// base character in RTL runs) and that it adjusts the glyphs used to render
+// mirrored characters that are in RTL runs so that they render appropriately.
+
+// level is the embedding level of a character. Even embedding levels indicate
+// left-to-right order and odd levels indicate right-to-left order. The special
+// level of -1 is reserved for undefined order.
+type level int8
+
+const implicitLevel level = -1
+
+// in returns if x is equal to any of the values in set.
+func (c Class) in(set ...Class) bool {
+       for _, s := range set {
+               if c == s {
+                       return true
+               }
+       }
+       return false
+}
+
+// A paragraph contains the state of a paragraph.
+type paragraph struct {
+       initialTypes []Class
+
+       // Arrays of properties needed for paired bracket evaluation in N0
+       pairTypes  []bracketType // paired Bracket types for paragraph
+       pairValues []rune        // rune for opening bracket or pbOpen and pbClose; 0 for pbNone
+
+       embeddingLevel level // default: = implicitLevel;
+
+       // at the paragraph levels
+       resultTypes  []Class
+       resultLevels []level
+
+       // Index of matching PDI for isolate initiator characters. For other
+       // characters, the value of matchingPDI will be set to -1. For isolate
+       // initiators with no matching PDI, matchingPDI will be set to the length of
+       // the input string.
+       matchingPDI []int
+
+       // Index of matching isolate initiator for PDI characters. For other
+       // characters, and for PDIs with no matching isolate initiator, the value of
+       // matchingIsolateInitiator will be set to -1.
+       matchingIsolateInitiator []int
+}
+
+// newParagraph initializes a paragraph. The user needs to supply a few arrays
+// corresponding to the preprocessed text input. The types correspond to the
+// Unicode BiDi classes for each rune. pairTypes indicates the bracket type for
+// each rune. pairValues provides a unique bracket class identifier for each
+// rune (suggested is the rune of the open bracket for opening and matching
+// close brackets, after normalization). The embedding levels are optional, but
+// may be supplied to encode embedding levels of styled text.
+//
+// TODO: return an error.
+func newParagraph(types []Class, pairTypes []bracketType, pairValues []rune, levels level) *paragraph {
+       validateTypes(types)
+       validatePbTypes(pairTypes)
+       validatePbValues(pairValues, pairTypes)
+       validateParagraphEmbeddingLevel(levels)
+
+       p := &paragraph{
+               initialTypes:   append([]Class(nil), types...),
+               embeddingLevel: levels,
+
+               pairTypes:  pairTypes,
+               pairValues: pairValues,
+
+               resultTypes: append([]Class(nil), types...),
+       }
+       p.run()
+       return p
+}
+
+func (p *paragraph) Len() int { return len(p.initialTypes) }
+
+// The algorithm. Does not include line-based processing (Rules L1, L2).
+// These are applied later in the line-based phase of the algorithm.
+func (p *paragraph) run() {
+       p.determineMatchingIsolates()
+
+       // 1) determining the paragraph level
+       // Rule P1 is the requirement for entering this algorithm.
+       // Rules P2, P3.
+       // If no externally supplied paragraph embedding level, use default.
+       if p.embeddingLevel == implicitLevel {
+               p.embeddingLevel = p.determineParagraphEmbeddingLevel(0, p.Len())
+       }
+
+       // Initialize result levels to paragraph embedding level.
+       p.resultLevels = make([]level, p.Len())
+       setLevels(p.resultLevels, p.embeddingLevel)
+
+       // 2) Explicit levels and directions
+       // Rules X1-X8.
+       p.determineExplicitEmbeddingLevels()
+
+       // Rule X9.
+       // We do not remove the embeddings, the overrides, the PDFs, and the BNs
+       // from the string explicitly. But they are not copied into isolating run
+       // sequences when they are created, so they are removed for all
+       // practical purposes.
+
+       // Rule X10.
+       // Run remainder of algorithm one isolating run sequence at a time
+       for _, seq := range p.determineIsolatingRunSequences() {
+               // 3) resolving weak types
+               // Rules W1-W7.
+               seq.resolveWeakTypes()
+
+               // 4a) resolving paired brackets
+               // Rule N0
+               resolvePairedBrackets(seq)
+
+               // 4b) resolving neutral types
+               // Rules N1-N3.
+               seq.resolveNeutralTypes()
+
+               // 5) resolving implicit embedding levels
+               // Rules I1, I2.
+               seq.resolveImplicitLevels()
+
+               // Apply the computed levels and types
+               seq.applyLevelsAndTypes()
+       }
+
+       // Assign appropriate levels to 'hide' LREs, RLEs, LROs, RLOs, PDFs, and
+       // BNs. This is for convenience, so the resulting level array will have
+       // a value for every character.
+       p.assignLevelsToCharactersRemovedByX9()
+}
+
+// determineMatchingIsolates determines the matching PDI for each isolate
+// initiator and vice versa.
+//
+// Definition BD9.
+//
+// At the end of this function:
+//
+//  - The member variable matchingPDI is set to point to the index of the
+//    matching PDI character for each isolate initiator character. If there is
+//    no matching PDI, it is set to the length of the input text. For other
+//    characters, it is set to -1.
+//  - The member variable matchingIsolateInitiator is set to point to the
+//    index of the matching isolate initiator character for each PDI character.
+//    If there is no matching isolate initiator, or the character is not a PDI,
+//    it is set to -1.
+func (p *paragraph) determineMatchingIsolates() {
+       p.matchingPDI = make([]int, p.Len())
+       p.matchingIsolateInitiator = make([]int, p.Len())
+
+       for i := range p.matchingIsolateInitiator {
+               p.matchingIsolateInitiator[i] = -1
+       }
+
+       for i := range p.matchingPDI {
+               p.matchingPDI[i] = -1
+
+               if t := p.resultTypes[i]; t.in(LRI, RLI, FSI) {
+                       depthCounter := 1
+                       for j := i + 1; j < p.Len(); j++ {
+                               if u := p.resultTypes[j]; u.in(LRI, RLI, FSI) {
+                                       depthCounter++
+                               } else if u == PDI {
+                                       if depthCounter--; depthCounter == 0 {
+                                               p.matchingPDI[i] = j
+                                               p.matchingIsolateInitiator[j] = i
+                                               break
+                                       }
+                               }
+                       }
+                       if p.matchingPDI[i] == -1 {
+                               p.matchingPDI[i] = p.Len()
+                       }
+               }
+       }
+}
+
+// determineParagraphEmbeddingLevel reports the resolved paragraph direction of
+// the substring limited by the given range [start, end).
+//
+// Determines the paragraph level based on rules P2, P3. This is also used
+// in rule X5c to find if an FSI should resolve to LRI or RLI.
+func (p *paragraph) determineParagraphEmbeddingLevel(start, end int) level {
+       var strongType Class = unknownClass
+
+       // Rule P2.
+       for i := start; i < end; i++ {
+               if t := p.resultTypes[i]; t.in(L, AL, R) {
+                       strongType = t
+                       break
+               } else if t.in(FSI, LRI, RLI) {
+                       i = p.matchingPDI[i] // skip over to the matching PDI
+                       if i > end {
+                               log.Panic("assert (i <= end)")
+                       }
+               }
+       }
+       // Rule P3.
+       switch strongType {
+       case unknownClass: // none found
+               // default embedding level when no strong types found is 0.
+               return 0
+       case L:
+               return 0
+       default: // AL, R
+               return 1
+       }
+}
+
+const maxDepth = 125
+
+// This stack will store the embedding levels and override and isolated
+// statuses
+type directionalStatusStack struct {
+       stackCounter        int
+       embeddingLevelStack [maxDepth + 1]level
+       overrideStatusStack [maxDepth + 1]Class
+       isolateStatusStack  [maxDepth + 1]bool
+}
+
+func (s *directionalStatusStack) empty()     { s.stackCounter = 0 }
+func (s *directionalStatusStack) pop()       { s.stackCounter-- }
+func (s *directionalStatusStack) depth() int { return s.stackCounter }
+
+func (s *directionalStatusStack) push(level level, overrideStatus Class, isolateStatus bool) {
+       s.embeddingLevelStack[s.stackCounter] = level
+       s.overrideStatusStack[s.stackCounter] = overrideStatus
+       s.isolateStatusStack[s.stackCounter] = isolateStatus
+       s.stackCounter++
+}
+
+func (s *directionalStatusStack) lastEmbeddingLevel() level {
+       return s.embeddingLevelStack[s.stackCounter-1]
+}
+
+func (s *directionalStatusStack) lastDirectionalOverrideStatus() Class {
+       return s.overrideStatusStack[s.stackCounter-1]
+}
+
+func (s *directionalStatusStack) lastDirectionalIsolateStatus() bool {
+       return s.isolateStatusStack[s.stackCounter-1]
+}
+
+// Determine explicit levels using rules X1 - X8
+func (p *paragraph) determineExplicitEmbeddingLevels() {
+       var stack directionalStatusStack
+       var overflowIsolateCount, overflowEmbeddingCount, validIsolateCount int
+
+       // Rule X1.
+       stack.push(p.embeddingLevel, ON, false)
+
+       for i, t := range p.resultTypes {
+               // Rules X2, X3, X4, X5, X5a, X5b, X5c
+               switch t {
+               case RLE, LRE, RLO, LRO, RLI, LRI, FSI:
+                       isIsolate := t.in(RLI, LRI, FSI)
+                       isRTL := t.in(RLE, RLO, RLI)
+
+                       // override if this is an FSI that resolves to RLI
+                       if t == FSI {
+                               isRTL = (p.determineParagraphEmbeddingLevel(i+1, p.matchingPDI[i]) == 1)
+                       }
+                       if isIsolate {
+                               p.resultLevels[i] = stack.lastEmbeddingLevel()
+                               if stack.lastDirectionalOverrideStatus() != ON {
+                                       p.resultTypes[i] = stack.lastDirectionalOverrideStatus()
+                               }
+                       }
+
+                       var newLevel level
+                       if isRTL {
+                               // least greater odd
+                               newLevel = (stack.lastEmbeddingLevel() + 1) | 1
+                       } else {
+                               // least greater even
+                               newLevel = (stack.lastEmbeddingLevel() + 2) &^ 1
+                       }
+
+                       if newLevel <= maxDepth && overflowIsolateCount == 0 && overflowEmbeddingCount == 0 {
+                               if isIsolate {
+                                       validIsolateCount++
+                               }
+                               // Push new embedding level, override status, and isolated
+                               // status.
+                               // No check for valid stack counter, since the level check
+                               // suffices.
+                               switch t {
+                               case LRO:
+                                       stack.push(newLevel, L, isIsolate)
+                               case RLO:
+                                       stack.push(newLevel, R, isIsolate)
+                               default:
+                                       stack.push(newLevel, ON, isIsolate)
+                               }
+                               // Not really part of the spec
+                               if !isIsolate {
+                                       p.resultLevels[i] = newLevel
+                               }
+                       } else {
+                               // This is an invalid explicit formatting character,
+                               // so apply the "Otherwise" part of rules X2-X5b.
+                               if isIsolate {
+                                       overflowIsolateCount++
+                               } else { // !isIsolate
+                                       if overflowIsolateCount == 0 {
+                                               overflowEmbeddingCount++
+                                       }
+                               }
+                       }
+
+               // Rule X6a
+               case PDI:
+                       if overflowIsolateCount > 0 {
+                               overflowIsolateCount--
+                       } else if validIsolateCount == 0 {
+                               // do nothing
+                       } else {
+                               overflowEmbeddingCount = 0
+                               for !stack.lastDirectionalIsolateStatus() {
+                                       stack.pop()
+                               }
+                               stack.pop()
+                               validIsolateCount--
+                       }
+                       p.resultLevels[i] = stack.lastEmbeddingLevel()
+
+               // Rule X7
+               case PDF:
+                       // Not really part of the spec
+                       p.resultLevels[i] = stack.lastEmbeddingLevel()
+
+                       if overflowIsolateCount > 0 {
+                               // do nothing
+                       } else if overflowEmbeddingCount > 0 {
+                               overflowEmbeddingCount--
+                       } else if !stack.lastDirectionalIsolateStatus() && stack.depth() >= 2 {
+                               stack.pop()
+                       }
+
+               case B: // paragraph separator.
+                       // Rule X8.
+
+                       // These values are reset for clarity, in this implementation B
+                       // can only occur as the last code in the array.
+                       stack.empty()
+                       overflowIsolateCount = 0
+                       overflowEmbeddingCount = 0
+                       validIsolateCount = 0
+                       p.resultLevels[i] = p.embeddingLevel
+
+               default:
+                       p.resultLevels[i] = stack.lastEmbeddingLevel()
+                       if stack.lastDirectionalOverrideStatus() != ON {
+                               p.resultTypes[i] = stack.lastDirectionalOverrideStatus()
+                       }
+               }
+       }
+}
+
+type isolatingRunSequence struct {
+       p *paragraph
+
+       indexes []int // indexes to the original string
+
+       types          []Class // type of each character using the index
+       resolvedLevels []level // resolved levels after application of rules
+       level          level
+       sos, eos       Class
+}
+
+func (i *isolatingRunSequence) Len() int { return len(i.indexes) }
+
+func maxLevel(a, b level) level {
+       if a > b {
+               return a
+       }
+       return b
+}
+
+// Rule X10, second bullet: Determine the start-of-sequence (sos) and end-of-sequence (eos) types,
+//                      either L or R, for each isolating run sequence.
+func (p *paragraph) isolatingRunSequence(indexes []int) *isolatingRunSequence {
+       length := len(indexes)
+       types := make([]Class, length)
+       for i, x := range indexes {
+               types[i] = p.resultTypes[x]
+       }
+
+       // assign level, sos and eos
+       prevChar := indexes[0] - 1
+       for prevChar >= 0 && isRemovedByX9(p.initialTypes[prevChar]) {
+               prevChar--
+       }
+       prevLevel := p.embeddingLevel
+       if prevChar >= 0 {
+               prevLevel = p.resultLevels[prevChar]
+       }
+
+       var succLevel level
+       lastType := types[length-1]
+       if lastType.in(LRI, RLI, FSI) {
+               succLevel = p.embeddingLevel
+       } else {
+               // the first character after the end of run sequence
+               limit := indexes[length-1] + 1
+               for ; limit < p.Len() && isRemovedByX9(p.initialTypes[limit]); limit++ {
+
+               }
+               succLevel = p.embeddingLevel
+               if limit < p.Len() {
+                       succLevel = p.resultLevels[limit]
+               }
+       }
+       level := p.resultLevels[indexes[0]]
+       return &isolatingRunSequence{
+               p:       p,
+               indexes: indexes,
+               types:   types,
+               level:   level,
+               sos:     typeForLevel(maxLevel(prevLevel, level)),
+               eos:     typeForLevel(maxLevel(succLevel, level)),
+       }
+}
+
+// Resolving weak types Rules W1-W7.
+//
+// Note that some weak types (EN, AN) remain after this processing is
+// complete.
+func (s *isolatingRunSequence) resolveWeakTypes() {
+
+       // on entry, only these types remain
+       s.assertOnly(L, R, AL, EN, ES, ET, AN, CS, B, S, WS, ON, NSM, LRI, RLI, FSI, PDI)
+
+       // Rule W1.
+       // Changes all NSMs.
+       preceedingCharacterType := s.sos
+       for i, t := range s.types {
+               if t == NSM {
+                       s.types[i] = preceedingCharacterType
+               } else {
+                       if t.in(LRI, RLI, FSI, PDI) {
+                               preceedingCharacterType = ON
+                       }
+                       preceedingCharacterType = t
+               }
+       }
+
+       // Rule W2.
+       // EN does not change at the start of the run, because sos != AL.
+       for i, t := range s.types {
+               if t == EN {
+                       for j := i - 1; j >= 0; j-- {
+                               if t := s.types[j]; t.in(L, R, AL) {
+                                       if t == AL {
+                                               s.types[i] = AN
+                                       }
+                                       break
+                               }
+                       }
+               }
+       }
+
+       // Rule W3.
+       for i, t := range s.types {
+               if t == AL {
+                       s.types[i] = R
+               }
+       }
+
+       // Rule W4.
+       // Since there must be values on both sides for this rule to have an
+       // effect, the scan skips the first and last value.
+       //
+       // Although the scan proceeds left to right, and changes the type
+       // values in a way that would appear to affect the computations
+       // later in the scan, there is actually no problem. A change in the
+       // current value can only affect the value to its immediate right,
+       // and only affect it if it is ES or CS. But the current value can
+       // only change if the value to its right is not ES or CS. Thus
+       // either the current value will not change, or its change will have
+       // no effect on the remainder of the analysis.
+
+       for i := 1; i < s.Len()-1; i++ {
+               t := s.types[i]
+               if t == ES || t == CS {
+                       prevSepType := s.types[i-1]
+                       succSepType := s.types[i+1]
+                       if prevSepType == EN && succSepType == EN {
+                               s.types[i] = EN
+                       } else if s.types[i] == CS && prevSepType == AN && succSepType == AN {
+                               s.types[i] = AN
+                       }
+               }
+       }
+
+       // Rule W5.
+       for i, t := range s.types {
+               if t == ET {
+                       // locate end of sequence
+                       runStart := i
+                       runEnd := s.findRunLimit(runStart, ET)
+
+                       // check values at ends of sequence
+                       t := s.sos
+                       if runStart > 0 {
+                               t = s.types[runStart-1]
+                       }
+                       if t != EN {
+                               t = s.eos
+                               if runEnd < len(s.types) {
+                                       t = s.types[runEnd]
+                               }
+                       }
+                       if t == EN {
+                               setTypes(s.types[runStart:runEnd], EN)
+                       }
+                       // continue at end of sequence
+                       i = runEnd
+               }
+       }
+
+       // Rule W6.
+       for i, t := range s.types {
+               if t.in(ES, ET, CS) {
+                       s.types[i] = ON
+               }
+       }
+
+       // Rule W7.
+       for i, t := range s.types {
+               if t == EN {
+                       // set default if we reach start of run
+                       prevStrongType := s.sos
+                       for j := i - 1; j >= 0; j-- {
+                               t = s.types[j]
+                               if t == L || t == R { // AL's have been changed to R
+                                       prevStrongType = t
+                                       break
+                               }
+                       }
+                       if prevStrongType == L {
+                               s.types[i] = L
+                       }
+               }
+       }
+}
+
+// 6) resolving neutral types Rules N1-N2.
+func (s *isolatingRunSequence) resolveNeutralTypes() {
+
+       // on entry, only these types can be in resultTypes
+       s.assertOnly(L, R, EN, AN, B, S, WS, ON, RLI, LRI, FSI, PDI)
+
+       for i, t := range s.types {
+               switch t {
+               case WS, ON, B, S, RLI, LRI, FSI, PDI:
+                       // find bounds of run of neutrals
+                       runStart := i
+                       runEnd := s.findRunLimit(runStart, B, S, WS, ON, RLI, LRI, FSI, PDI)
+
+                       // determine effective types at ends of run
+                       var leadType, trailType Class
+
+                       // Note that the character found can only be L, R, AN, or
+                       // EN.
+                       if runStart == 0 {
+                               leadType = s.sos
+                       } else {
+                               leadType = s.types[runStart-1]
+                               if leadType.in(AN, EN) {
+                                       leadType = R
+                               }
+                       }
+                       if runEnd == len(s.types) {
+                               trailType = s.eos
+                       } else {
+                               trailType = s.types[runEnd]
+                               if trailType.in(AN, EN) {
+                                       trailType = R
+                               }
+                       }
+
+                       var resolvedType Class
+                       if leadType == trailType {
+                               // Rule N1.
+                               resolvedType = leadType
+                       } else {
+                               // Rule N2.
+                               // Notice the embedding level of the run is used, not
+                               // the paragraph embedding level.
+                               resolvedType = typeForLevel(s.level)
+                       }
+
+                       setTypes(s.types[runStart:runEnd], resolvedType)
+
+                       // skip over run of (former) neutrals
+                       i = runEnd
+               }
+       }
+}
+
+func setLevels(levels []level, newLevel level) {
+       for i := range levels {
+               levels[i] = newLevel
+       }
+}
+
+func setTypes(types []Class, newType Class) {
+       for i := range types {
+               types[i] = newType
+       }
+}
+
+// 7) resolving implicit embedding levels Rules I1, I2.
+func (s *isolatingRunSequence) resolveImplicitLevels() {
+
+       // on entry, only these types can be in resultTypes
+       s.assertOnly(L, R, EN, AN)
+
+       s.resolvedLevels = make([]level, len(s.types))
+       setLevels(s.resolvedLevels, s.level)
+
+       if (s.level & 1) == 0 { // even level
+               for i, t := range s.types {
+                       // Rule I1.
+                       if t == L {
+                               // no change
+                       } else if t == R {
+                               s.resolvedLevels[i] += 1
+                       } else { // t == AN || t == EN
+                               s.resolvedLevels[i] += 2
+                       }
+               }
+       } else { // odd level
+               for i, t := range s.types {
+                       // Rule I2.
+                       if t == R {
+                               // no change
+                       } else { // t == L || t == AN || t == EN
+                               s.resolvedLevels[i] += 1
+                       }
+               }
+       }
+}
+
+// Applies the levels and types resolved in rules W1-I2 to the
+// resultLevels array.
+func (s *isolatingRunSequence) applyLevelsAndTypes() {
+       for i, x := range s.indexes {
+               s.p.resultTypes[x] = s.types[i]
+               s.p.resultLevels[x] = s.resolvedLevels[i]
+       }
+}
+
+// Return the limit of the run consisting only of the types in validSet
+// starting at index. This checks the value at index, and will return
+// index if that value is not in validSet.
+func (s *isolatingRunSequence) findRunLimit(index int, validSet ...Class) int {
+loop:
+       for ; index < len(s.types); index++ {
+               t := s.types[index]
+               for _, valid := range validSet {
+                       if t == valid {
+                               continue loop
+                       }
+               }
+               return index // didn't find a match in validSet
+       }
+       return len(s.types)
+}
+
+// Algorithm validation. Assert that all values in types are in the
+// provided set.
+func (s *isolatingRunSequence) assertOnly(codes ...Class) {
+loop:
+       for i, t := range s.types {
+               for _, c := range codes {
+                       if t == c {
+                               continue loop
+                       }
+               }
+               log.Panicf("invalid bidi code %v present in assertOnly at position %d", t, s.indexes[i])
+       }
+}
+
+// determineLevelRuns returns an array of level runs. Each level run is
+// described as an array of indexes into the input string.
+//
+// Determines the level runs. Rule X9 will be applied in determining the
+// runs, in the way that makes sure the characters that are supposed to be
+// removed are not included in the runs.
+func (p *paragraph) determineLevelRuns() [][]int {
+       run := []int{}
+       allRuns := [][]int{}
+       currentLevel := implicitLevel
+
+       for i := range p.initialTypes {
+               if !isRemovedByX9(p.initialTypes[i]) {
+                       if p.resultLevels[i] != currentLevel {
+                               // we just encountered a new run; wrap up last run
+                               if currentLevel >= 0 { // only wrap it up if there was a run
+                                       allRuns = append(allRuns, run)
+                                       run = nil
+                               }
+                               // Start new run
+                               currentLevel = p.resultLevels[i]
+                       }
+                       run = append(run, i)
+               }
+       }
+       // Wrap up the final run, if any
+       if len(run) > 0 {
+               allRuns = append(allRuns, run)
+       }
+       return allRuns
+}
+
+// Definition BD13. Determine isolating run sequences.
+func (p *paragraph) determineIsolatingRunSequences() []*isolatingRunSequence {
+       levelRuns := p.determineLevelRuns()
+
+       // Compute the run that each character belongs to
+       runForCharacter := make([]int, p.Len())
+       for i, run := range levelRuns {
+               for _, index := range run {
+                       runForCharacter[index] = i
+               }
+       }
+
+       sequences := []*isolatingRunSequence{}
+
+       var currentRunSequence []int
+
+       for _, run := range levelRuns {
+               first := run[0]
+               if p.initialTypes[first] != PDI || p.matchingIsolateInitiator[first] == -1 {
+                       currentRunSequence = nil
+                       // int run = i;
+                       for {
+                               // Copy this level run into currentRunSequence
+                               currentRunSequence = append(currentRunSequence, run...)
+
+                               last := currentRunSequence[len(currentRunSequence)-1]
+                               lastT := p.initialTypes[last]
+                               if lastT.in(LRI, RLI, FSI) && p.matchingPDI[last] != p.Len() {
+                                       run = levelRuns[runForCharacter[p.matchingPDI[last]]]
+                               } else {
+                                       break
+                               }
+                       }
+                       sequences = append(sequences, p.isolatingRunSequence(currentRunSequence))
+               }
+       }
+       return sequences
+}
+
+// Assign level information to characters removed by rule X9. This is for
+// ease of relating the level information to the original input data. Note
+// that the levels assigned to these codes are arbitrary, they're chosen so
+// as to avoid breaking level runs.
+func (p *paragraph) assignLevelsToCharactersRemovedByX9() {
+       for i, t := range p.initialTypes {
+               if t.in(LRE, RLE, LRO, RLO, PDF, BN) {
+                       p.resultTypes[i] = t
+                       p.resultLevels[i] = -1
+               }
+       }
+       // now propagate forward the levels information (could have
+       // propagated backward, the main thing is not to introduce a level
+       // break where one doesn't already exist).
+
+       if p.resultLevels[0] == -1 {
+               p.resultLevels[0] = p.embeddingLevel
+       }
+       for i := 1; i < len(p.initialTypes); i++ {
+               if p.resultLevels[i] == -1 {
+                       p.resultLevels[i] = p.resultLevels[i-1]
+               }
+       }
+       // Embedding information is for informational purposes only so need not be
+       // adjusted.
+}
+
+//
+// Output
+//
+
+// getLevels computes levels array breaking lines at offsets in linebreaks.
+// Rule L1.
+//
+// The linebreaks array must include at least one value. The values must be
+// in strictly increasing order (no duplicates) between 1 and the length of
+// the text, inclusive. The last value must be the length of the text.
+func (p *paragraph) getLevels(linebreaks []int) []level {
+       // Note that since the previous processing has removed all
+       // P, S, and WS values from resultTypes, the values referred to
+       // in these rules are the initial types, before any processing
+       // has been applied (including processing of overrides).
+       //
+       // This example implementation has reinserted explicit format codes
+       // and BN, in order that the levels array correspond to the
+       // initial text. Their final placement is not normative.
+       // These codes are treated like WS in this implementation,
+       // so they don't interrupt sequences of WS.
+
+       validateLineBreaks(linebreaks, p.Len())
+
+       result := append([]level(nil), p.resultLevels...)
+
+       // don't worry about linebreaks since if there is a break within
+       // a series of WS values preceding S, the linebreak itself
+       // causes the reset.
+       for i, t := range p.initialTypes {
+               if t.in(B, S) {
+                       // Rule L1, clauses one and two.
+                       result[i] = p.embeddingLevel
+
+                       // Rule L1, clause three.
+                       for j := i - 1; j >= 0; j-- {
+                               if isWhitespace(p.initialTypes[j]) { // including format codes
+                                       result[j] = p.embeddingLevel
+                               } else {
+                                       break
+                               }
+                       }
+               }
+       }
+
+       // Rule L1, clause four.
+       start := 0
+       for _, limit := range linebreaks {
+               for j := limit - 1; j >= start; j-- {
+                       if isWhitespace(p.initialTypes[j]) { // including format codes
+                               result[j] = p.embeddingLevel
+                       } else {
+                               break
+                       }
+               }
+               start = limit
+       }
+
+       return result
+}
+
+// getReordering returns the reordering of lines from a visual index to a
+// logical index for line breaks at the given offsets.
+//
+// Lines are concatenated from left to right. So for example, the fifth
+// character from the left on the third line is
+//
+//             getReordering(linebreaks)[linebreaks[1] + 4]
+//
+// (linebreaks[1] is the position after the last character of the second
+// line, which is also the index of the first character on the third line,
+// and adding four gets the fifth character from the left).
+//
+// The linebreaks array must include at least one value. The values must be
+// in strictly increasing order (no duplicates) between 1 and the length of
+// the text, inclusive. The last value must be the length of the text.
+func (p *paragraph) getReordering(linebreaks []int) []int {
+       validateLineBreaks(linebreaks, p.Len())
+
+       return computeMultilineReordering(p.getLevels(linebreaks), linebreaks)
+}
+
+// Return multiline reordering array for a given level array. Reordering
+// does not occur across a line break.
+func computeMultilineReordering(levels []level, linebreaks []int) []int {
+       result := make([]int, len(levels))
+
+       start := 0
+       for _, limit := range linebreaks {
+               tempLevels := make([]level, limit-start)
+               copy(tempLevels, levels[start:])
+
+               for j, order := range computeReordering(tempLevels) {
+                       result[start+j] = order + start
+               }
+               start = limit
+       }
+       return result
+}
+
+// Return reordering array for a given level array. This reorders a single
+// line. The reordering is a visual to logical map. For example, the
+// leftmost char is string.charAt(order[0]). Rule L2.
+func computeReordering(levels []level) []int {
+       result := make([]int, len(levels))
+       // initialize order
+       for i := range result {
+               result[i] = i
+       }
+
+       // locate highest level found on line.
+       // Note the rules say text, but no reordering across line bounds is
+       // performed, so this is sufficient.
+       highestLevel := level(0)
+       lowestOddLevel := level(maxDepth + 2)
+       for _, level := range levels {
+               if level > highestLevel {
+                       highestLevel = level
+               }
+               if level&1 != 0 && level < lowestOddLevel {
+                       lowestOddLevel = level
+               }
+       }
+
+       for level := highestLevel; level >= lowestOddLevel; level-- {
+               for i := 0; i < len(levels); i++ {
+                       if levels[i] >= level {
+                               // find range of text at or above this level
+                               start := i
+                               limit := i + 1
+                               for limit < len(levels) && levels[limit] >= level {
+                                       limit++
+                               }
+
+                               for j, k := start, limit-1; j < k; j, k = j+1, k-1 {
+                                       result[j], result[k] = result[k], result[j]
+                               }
+                               // skip to end of level run
+                               i = limit
+                       }
+               }
+       }
+
+       return result
+}
+
+// isWhitespace reports whether the type is considered a whitespace type for the
+// line break rules.
+func isWhitespace(c Class) bool {
+       switch c {
+       case LRE, RLE, LRO, RLO, PDF, LRI, RLI, FSI, PDI, BN, WS:
+               return true
+       }
+       return false
+}
+
+// isRemovedByX9 reports whether the type is one of the types removed in X9.
+func isRemovedByX9(c Class) bool {
+       switch c {
+       case LRE, RLE, LRO, RLO, PDF, BN:
+               return true
+       }
+       return false
+}
+
+// typeForLevel reports the strong type (L or R) corresponding to the level.
+func typeForLevel(level level) Class {
+       if (level & 0x1) == 0 {
+               return L
+       }
+       return R
+}
+
+// TODO: change validation to not panic
+
+func validateTypes(types []Class) {
+       if len(types) == 0 {
+               log.Panic("types is null")
+       }
+       for i, t := range types[:len(types)-1] {
+               if t == B {
+                       log.Panicf("B type before end of paragraph at index: %d", i)
+               }
+       }
+}
+
+func validateParagraphEmbeddingLevel(embeddingLevel level) {
+       if embeddingLevel != implicitLevel &&
+               embeddingLevel != 0 &&
+               embeddingLevel != 1 {
+               log.Panicf("illegal paragraph embedding level: %d", embeddingLevel)
+       }
+}
+
+func validateLineBreaks(linebreaks []int, textLength int) {
+       prev := 0
+       for i, next := range linebreaks {
+               if next <= prev {
+                       log.Panicf("bad linebreak: %d at index: %d", next, i)
+               }
+               prev = next
+       }
+       if prev != textLength {
+               log.Panicf("last linebreak was %d, want %d", prev, textLength)
+       }
+}
+
+func validatePbTypes(pairTypes []bracketType) {
+       if len(pairTypes) == 0 {
+               log.Panic("pairTypes is null")
+       }
+       for i, pt := range pairTypes {
+               switch pt {
+               case bpNone, bpOpen, bpClose:
+               default:
+                       log.Panicf("illegal pairType value at %d: %v", i, pairTypes[i])
+               }
+       }
+}
+
+func validatePbValues(pairValues []rune, pairTypes []bracketType) {
+       if pairValues == nil {
+               log.Panic("pairValues is null")
+       }
+       if len(pairTypes) != len(pairValues) {
+               log.Panic("pairTypes is different length from pairValues")
+       }
+}
diff --git a/vendor/golang.org/x/text/unicode/bidi/prop.go b/vendor/golang.org/x/text/unicode/bidi/prop.go
new file mode 100644 (file)
index 0000000..7c9484e
--- /dev/null
@@ -0,0 +1,206 @@
+// Copyright 2016 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package bidi
+
+import "unicode/utf8"
+
+// Properties provides access to BiDi properties of runes.
+type Properties struct {
+       entry uint8
+       last  uint8
+}
+
+var trie = newBidiTrie(0)
+
+// TODO: using this for bidirule reduces the running time by about 5%. Consider
+// if this is worth exposing or if we can find a way to speed up the Class
+// method.
+//
+// // CompactClass is like Class, but maps all of the BiDi control classes
+// // (LRO, RLO, LRE, RLE, PDF, LRI, RLI, FSI, PDI) to the class Control.
+// func (p Properties) CompactClass() Class {
+//     return Class(p.entry & 0x0F)
+// }
+
+// Class returns the Bidi class for p.
+func (p Properties) Class() Class {
+       c := Class(p.entry & 0x0F)
+       if c == Control {
+               c = controlByteToClass[p.last&0xF]
+       }
+       return c
+}
+
+// IsBracket reports whether the rune is a bracket.
+func (p Properties) IsBracket() bool { return p.entry&0xF0 != 0 }
+
+// IsOpeningBracket reports whether the rune is an opening bracket.
+// IsBracket must return true.
+func (p Properties) IsOpeningBracket() bool { return p.entry&openMask != 0 }
+
+// TODO: find a better API and expose.
+func (p Properties) reverseBracket(r rune) rune {
+       return xorMasks[p.entry>>xorMaskShift] ^ r
+}
+
+var controlByteToClass = [16]Class{
+       0xD: LRO, // U+202D LeftToRightOverride,
+       0xE: RLO, // U+202E RightToLeftOverride,
+       0xA: LRE, // U+202A LeftToRightEmbedding,
+       0xB: RLE, // U+202B RightToLeftEmbedding,
+       0xC: PDF, // U+202C PopDirectionalFormat,
+       0x6: LRI, // U+2066 LeftToRightIsolate,
+       0x7: RLI, // U+2067 RightToLeftIsolate,
+       0x8: FSI, // U+2068 FirstStrongIsolate,
+       0x9: PDI, // U+2069 PopDirectionalIsolate,
+}
+
+// LookupRune returns properties for r.
+func LookupRune(r rune) (p Properties, size int) {
+       var buf [4]byte
+       n := utf8.EncodeRune(buf[:], r)
+       return Lookup(buf[:n])
+}
+
+// TODO: these lookup methods are based on the generated trie code. The returned
+// sizes have slightly different semantics from the generated code, in that it
+// always returns size==1 for an illegal UTF-8 byte (instead of the length
+// of the maximum invalid subsequence). Most Transformers, like unicode/norm,
+// leave invalid UTF-8 untouched, in which case it has performance benefits to
+// do so (without changing the semantics). Bidi requires the semantics used here
+// for the bidirule implementation to be compatible with the Go semantics.
+//  They ultimately should perhaps be adopted by all trie implementations, for
+// convenience sake.
+// This unrolled code also boosts performance of the secure/bidirule package by
+// about 30%.
+// So, to remove this code:
+//   - add option to trie generator to define return type.
+//   - always return 1 byte size for ill-formed UTF-8 runes.
+
+// Lookup returns properties for the first rune in s and the width in bytes of
+// its encoding. The size will be 0 if s does not hold enough bytes to complete
+// the encoding.
+func Lookup(s []byte) (p Properties, sz int) {
+       c0 := s[0]
+       switch {
+       case c0 < 0x80: // is ASCII
+               return Properties{entry: bidiValues[c0]}, 1
+       case c0 < 0xC2:
+               return Properties{}, 1
+       case c0 < 0xE0: // 2-byte UTF-8
+               if len(s) < 2 {
+                       return Properties{}, 0
+               }
+               i := bidiIndex[c0]
+               c1 := s[1]
+               if c1 < 0x80 || 0xC0 <= c1 {
+                       return Properties{}, 1
+               }
+               return Properties{entry: trie.lookupValue(uint32(i), c1)}, 2
+       case c0 < 0xF0: // 3-byte UTF-8
+               if len(s) < 3 {
+                       return Properties{}, 0
+               }
+               i := bidiIndex[c0]
+               c1 := s[1]
+               if c1 < 0x80 || 0xC0 <= c1 {
+                       return Properties{}, 1
+               }
+               o := uint32(i)<<6 + uint32(c1)
+               i = bidiIndex[o]
+               c2 := s[2]
+               if c2 < 0x80 || 0xC0 <= c2 {
+                       return Properties{}, 1
+               }
+               return Properties{entry: trie.lookupValue(uint32(i), c2), last: c2}, 3
+       case c0 < 0xF8: // 4-byte UTF-8
+               if len(s) < 4 {
+                       return Properties{}, 0
+               }
+               i := bidiIndex[c0]
+               c1 := s[1]
+               if c1 < 0x80 || 0xC0 <= c1 {
+                       return Properties{}, 1
+               }
+               o := uint32(i)<<6 + uint32(c1)
+               i = bidiIndex[o]
+               c2 := s[2]
+               if c2 < 0x80 || 0xC0 <= c2 {
+                       return Properties{}, 1
+               }
+               o = uint32(i)<<6 + uint32(c2)
+               i = bidiIndex[o]
+               c3 := s[3]
+               if c3 < 0x80 || 0xC0 <= c3 {
+                       return Properties{}, 1
+               }
+               return Properties{entry: trie.lookupValue(uint32(i), c3)}, 4
+       }
+       // Illegal rune
+       return Properties{}, 1
+}
+
+// LookupString returns properties for the first rune in s and the width in
+// bytes of its encoding. The size will be 0 if s does not hold enough bytes to
+// complete the encoding.
+func LookupString(s string) (p Properties, sz int) {
+       c0 := s[0]
+       switch {
+       case c0 < 0x80: // is ASCII
+               return Properties{entry: bidiValues[c0]}, 1
+       case c0 < 0xC2:
+               return Properties{}, 1
+       case c0 < 0xE0: // 2-byte UTF-8
+               if len(s) < 2 {
+                       return Properties{}, 0
+               }
+               i := bidiIndex[c0]
+               c1 := s[1]
+               if c1 < 0x80 || 0xC0 <= c1 {
+                       return Properties{}, 1
+               }
+               return Properties{entry: trie.lookupValue(uint32(i), c1)}, 2
+       case c0 < 0xF0: // 3-byte UTF-8
+               if len(s) < 3 {
+                       return Properties{}, 0
+               }
+               i := bidiIndex[c0]
+               c1 := s[1]
+               if c1 < 0x80 || 0xC0 <= c1 {
+                       return Properties{}, 1
+               }
+               o := uint32(i)<<6 + uint32(c1)
+               i = bidiIndex[o]
+               c2 := s[2]
+               if c2 < 0x80 || 0xC0 <= c2 {
+                       return Properties{}, 1
+               }
+               return Properties{entry: trie.lookupValue(uint32(i), c2), last: c2}, 3
+       case c0 < 0xF8: // 4-byte UTF-8
+               if len(s) < 4 {
+                       return Properties{}, 0
+               }
+               i := bidiIndex[c0]
+               c1 := s[1]
+               if c1 < 0x80 || 0xC0 <= c1 {
+                       return Properties{}, 1
+               }
+               o := uint32(i)<<6 + uint32(c1)
+               i = bidiIndex[o]
+               c2 := s[2]
+               if c2 < 0x80 || 0xC0 <= c2 {
+                       return Properties{}, 1
+               }
+               o = uint32(i)<<6 + uint32(c2)
+               i = bidiIndex[o]
+               c3 := s[3]
+               if c3 < 0x80 || 0xC0 <= c3 {
+                       return Properties{}, 1
+               }
+               return Properties{entry: trie.lookupValue(uint32(i), c3)}, 4
+       }
+       // Illegal rune
+       return Properties{}, 1
+}
diff --git a/vendor/golang.org/x/text/unicode/bidi/tables10.0.0.go b/vendor/golang.org/x/text/unicode/bidi/tables10.0.0.go
new file mode 100644 (file)
index 0000000..d8c94e1
--- /dev/null
@@ -0,0 +1,1815 @@
+// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT.
+
+// +build go1.10,!go1.13
+
+package bidi
+
+// UnicodeVersion is the Unicode version from which the tables in this package are derived.
+const UnicodeVersion = "10.0.0"
+
+// xorMasks contains masks to be xor-ed with brackets to get the reverse
+// version.
+var xorMasks = []int32{ // 8 elements
+       0, 1, 6, 7, 3, 15, 29, 63,
+} // Size: 56 bytes
+
+// 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 *bidiTrie) lookup(s []byte) (v uint8, sz int) {
+       c0 := s[0]
+       switch {
+       case c0 < 0x80: // is ASCII
+               return bidiValues[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 := bidiIndex[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 := bidiIndex[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 = bidiIndex[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 := bidiIndex[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 = bidiIndex[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 = bidiIndex[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 *bidiTrie) lookupUnsafe(s []byte) uint8 {
+       c0 := s[0]
+       if c0 < 0x80 { // is ASCII
+               return bidiValues[c0]
+       }
+       i := bidiIndex[c0]
+       if c0 < 0xE0 { // 2-byte UTF-8
+               return t.lookupValue(uint32(i), s[1])
+       }
+       i = bidiIndex[uint32(i)<<6+uint32(s[1])]
+       if c0 < 0xF0 { // 3-byte UTF-8
+               return t.lookupValue(uint32(i), s[2])
+       }
+       i = bidiIndex[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 *bidiTrie) lookupString(s string) (v uint8, sz int) {
+       c0 := s[0]
+       switch {
+       case c0 < 0x80: // is ASCII
+               return bidiValues[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 := bidiIndex[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 := bidiIndex[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 = bidiIndex[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 := bidiIndex[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 = bidiIndex[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 = bidiIndex[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 *bidiTrie) lookupStringUnsafe(s string) uint8 {
+       c0 := s[0]
+       if c0 < 0x80 { // is ASCII
+               return bidiValues[c0]
+       }
+       i := bidiIndex[c0]
+       if c0 < 0xE0 { // 2-byte UTF-8
+               return t.lookupValue(uint32(i), s[1])
+       }
+       i = bidiIndex[uint32(i)<<6+uint32(s[1])]
+       if c0 < 0xF0 { // 3-byte UTF-8
+               return t.lookupValue(uint32(i), s[2])
+       }
+       i = bidiIndex[uint32(i)<<6+uint32(s[2])]
+       if c0 < 0xF8 { // 4-byte UTF-8
+               return t.lookupValue(uint32(i), s[3])
+       }
+       return 0
+}
+
+// bidiTrie. Total size: 16128 bytes (15.75 KiB). Checksum: 8122d83e461996f.
+type bidiTrie struct{}
+
+func newBidiTrie(i int) *bidiTrie {
+       return &bidiTrie{}
+}
+
+// lookupValue determines the type of block n and looks up the value for b.
+func (t *bidiTrie) lookupValue(n uint32, b byte) uint8 {
+       switch {
+       default:
+               return uint8(bidiValues[n<<6+uint32(b)])
+       }
+}
+
+// bidiValues: 228 blocks, 14592 entries, 14592 bytes
+// The third block is the zero block.
+var bidiValues = [14592]uint8{
+       // Block 0x0, offset 0x0
+       0x00: 0x000b, 0x01: 0x000b, 0x02: 0x000b, 0x03: 0x000b, 0x04: 0x000b, 0x05: 0x000b,
+       0x06: 0x000b, 0x07: 0x000b, 0x08: 0x000b, 0x09: 0x0008, 0x0a: 0x0007, 0x0b: 0x0008,
+       0x0c: 0x0009, 0x0d: 0x0007, 0x0e: 0x000b, 0x0f: 0x000b, 0x10: 0x000b, 0x11: 0x000b,
+       0x12: 0x000b, 0x13: 0x000b, 0x14: 0x000b, 0x15: 0x000b, 0x16: 0x000b, 0x17: 0x000b,
+       0x18: 0x000b, 0x19: 0x000b, 0x1a: 0x000b, 0x1b: 0x000b, 0x1c: 0x0007, 0x1d: 0x0007,
+       0x1e: 0x0007, 0x1f: 0x0008, 0x20: 0x0009, 0x21: 0x000a, 0x22: 0x000a, 0x23: 0x0004,
+       0x24: 0x0004, 0x25: 0x0004, 0x26: 0x000a, 0x27: 0x000a, 0x28: 0x003a, 0x29: 0x002a,
+       0x2a: 0x000a, 0x2b: 0x0003, 0x2c: 0x0006, 0x2d: 0x0003, 0x2e: 0x0006, 0x2f: 0x0006,
+       0x30: 0x0002, 0x31: 0x0002, 0x32: 0x0002, 0x33: 0x0002, 0x34: 0x0002, 0x35: 0x0002,
+       0x36: 0x0002, 0x37: 0x0002, 0x38: 0x0002, 0x39: 0x0002, 0x3a: 0x0006, 0x3b: 0x000a,
+       0x3c: 0x000a, 0x3d: 0x000a, 0x3e: 0x000a, 0x3f: 0x000a,
+       // Block 0x1, offset 0x40
+       0x40: 0x000a,
+       0x5b: 0x005a, 0x5c: 0x000a, 0x5d: 0x004a,
+       0x5e: 0x000a, 0x5f: 0x000a, 0x60: 0x000a,
+       0x7b: 0x005a,
+       0x7c: 0x000a, 0x7d: 0x004a, 0x7e: 0x000a, 0x7f: 0x000b,
+       // Block 0x2, offset 0x80
+       // Block 0x3, offset 0xc0
+       0xc0: 0x000b, 0xc1: 0x000b, 0xc2: 0x000b, 0xc3: 0x000b, 0xc4: 0x000b, 0xc5: 0x0007,
+       0xc6: 0x000b, 0xc7: 0x000b, 0xc8: 0x000b, 0xc9: 0x000b, 0xca: 0x000b, 0xcb: 0x000b,
+       0xcc: 0x000b, 0xcd: 0x000b, 0xce: 0x000b, 0xcf: 0x000b, 0xd0: 0x000b, 0xd1: 0x000b,
+       0xd2: 0x000b, 0xd3: 0x000b, 0xd4: 0x000b, 0xd5: 0x000b, 0xd6: 0x000b, 0xd7: 0x000b,
+       0xd8: 0x000b, 0xd9: 0x000b, 0xda: 0x000b, 0xdb: 0x000b, 0xdc: 0x000b, 0xdd: 0x000b,
+       0xde: 0x000b, 0xdf: 0x000b, 0xe0: 0x0006, 0xe1: 0x000a, 0xe2: 0x0004, 0xe3: 0x0004,
+       0xe4: 0x0004, 0xe5: 0x0004, 0xe6: 0x000a, 0xe7: 0x000a, 0xe8: 0x000a, 0xe9: 0x000a,
+       0xeb: 0x000a, 0xec: 0x000a, 0xed: 0x000b, 0xee: 0x000a, 0xef: 0x000a,
+       0xf0: 0x0004, 0xf1: 0x0004, 0xf2: 0x0002, 0xf3: 0x0002, 0xf4: 0x000a,
+       0xf6: 0x000a, 0xf7: 0x000a, 0xf8: 0x000a, 0xf9: 0x0002, 0xfb: 0x000a,
+       0xfc: 0x000a, 0xfd: 0x000a, 0xfe: 0x000a, 0xff: 0x000a,
+       // Block 0x4, offset 0x100
+       0x117: 0x000a,
+       0x137: 0x000a,
+       // Block 0x5, offset 0x140
+       0x179: 0x000a, 0x17a: 0x000a,
+       // Block 0x6, offset 0x180
+       0x182: 0x000a, 0x183: 0x000a, 0x184: 0x000a, 0x185: 0x000a,
+       0x186: 0x000a, 0x187: 0x000a, 0x188: 0x000a, 0x189: 0x000a, 0x18a: 0x000a, 0x18b: 0x000a,
+       0x18c: 0x000a, 0x18d: 0x000a, 0x18e: 0x000a, 0x18f: 0x000a,
+       0x192: 0x000a, 0x193: 0x000a, 0x194: 0x000a, 0x195: 0x000a, 0x196: 0x000a, 0x197: 0x000a,
+       0x198: 0x000a, 0x199: 0x000a, 0x19a: 0x000a, 0x19b: 0x000a, 0x19c: 0x000a, 0x19d: 0x000a,
+       0x19e: 0x000a, 0x19f: 0x000a,
+       0x1a5: 0x000a, 0x1a6: 0x000a, 0x1a7: 0x000a, 0x1a8: 0x000a, 0x1a9: 0x000a,
+       0x1aa: 0x000a, 0x1ab: 0x000a, 0x1ac: 0x000a, 0x1ad: 0x000a, 0x1af: 0x000a,
+       0x1b0: 0x000a, 0x1b1: 0x000a, 0x1b2: 0x000a, 0x1b3: 0x000a, 0x1b4: 0x000a, 0x1b5: 0x000a,
+       0x1b6: 0x000a, 0x1b7: 0x000a, 0x1b8: 0x000a, 0x1b9: 0x000a, 0x1ba: 0x000a, 0x1bb: 0x000a,
+       0x1bc: 0x000a, 0x1bd: 0x000a, 0x1be: 0x000a, 0x1bf: 0x000a,
+       // Block 0x7, offset 0x1c0
+       0x1c0: 0x000c, 0x1c1: 0x000c, 0x1c2: 0x000c, 0x1c3: 0x000c, 0x1c4: 0x000c, 0x1c5: 0x000c,
+       0x1c6: 0x000c, 0x1c7: 0x000c, 0x1c8: 0x000c, 0x1c9: 0x000c, 0x1ca: 0x000c, 0x1cb: 0x000c,
+       0x1cc: 0x000c, 0x1cd: 0x000c, 0x1ce: 0x000c, 0x1cf: 0x000c, 0x1d0: 0x000c, 0x1d1: 0x000c,
+       0x1d2: 0x000c, 0x1d3: 0x000c, 0x1d4: 0x000c, 0x1d5: 0x000c, 0x1d6: 0x000c, 0x1d7: 0x000c,
+       0x1d8: 0x000c, 0x1d9: 0x000c, 0x1da: 0x000c, 0x1db: 0x000c, 0x1dc: 0x000c, 0x1dd: 0x000c,
+       0x1de: 0x000c, 0x1df: 0x000c, 0x1e0: 0x000c, 0x1e1: 0x000c, 0x1e2: 0x000c, 0x1e3: 0x000c,
+       0x1e4: 0x000c, 0x1e5: 0x000c, 0x1e6: 0x000c, 0x1e7: 0x000c, 0x1e8: 0x000c, 0x1e9: 0x000c,
+       0x1ea: 0x000c, 0x1eb: 0x000c, 0x1ec: 0x000c, 0x1ed: 0x000c, 0x1ee: 0x000c, 0x1ef: 0x000c,
+       0x1f0: 0x000c, 0x1f1: 0x000c, 0x1f2: 0x000c, 0x1f3: 0x000c, 0x1f4: 0x000c, 0x1f5: 0x000c,
+       0x1f6: 0x000c, 0x1f7: 0x000c, 0x1f8: 0x000c, 0x1f9: 0x000c, 0x1fa: 0x000c, 0x1fb: 0x000c,
+       0x1fc: 0x000c, 0x1fd: 0x000c, 0x1fe: 0x000c, 0x1ff: 0x000c,
+       // Block 0x8, offset 0x200
+       0x200: 0x000c, 0x201: 0x000c, 0x202: 0x000c, 0x203: 0x000c, 0x204: 0x000c, 0x205: 0x000c,
+       0x206: 0x000c, 0x207: 0x000c, 0x208: 0x000c, 0x209: 0x000c, 0x20a: 0x000c, 0x20b: 0x000c,
+       0x20c: 0x000c, 0x20d: 0x000c, 0x20e: 0x000c, 0x20f: 0x000c, 0x210: 0x000c, 0x211: 0x000c,
+       0x212: 0x000c, 0x213: 0x000c, 0x214: 0x000c, 0x215: 0x000c, 0x216: 0x000c, 0x217: 0x000c,
+       0x218: 0x000c, 0x219: 0x000c, 0x21a: 0x000c, 0x21b: 0x000c, 0x21c: 0x000c, 0x21d: 0x000c,
+       0x21e: 0x000c, 0x21f: 0x000c, 0x220: 0x000c, 0x221: 0x000c, 0x222: 0x000c, 0x223: 0x000c,
+       0x224: 0x000c, 0x225: 0x000c, 0x226: 0x000c, 0x227: 0x000c, 0x228: 0x000c, 0x229: 0x000c,
+       0x22a: 0x000c, 0x22b: 0x000c, 0x22c: 0x000c, 0x22d: 0x000c, 0x22e: 0x000c, 0x22f: 0x000c,
+       0x234: 0x000a, 0x235: 0x000a,
+       0x23e: 0x000a,
+       // Block 0x9, offset 0x240
+       0x244: 0x000a, 0x245: 0x000a,
+       0x247: 0x000a,
+       // Block 0xa, offset 0x280
+       0x2b6: 0x000a,
+       // Block 0xb, offset 0x2c0
+       0x2c3: 0x000c, 0x2c4: 0x000c, 0x2c5: 0x000c,
+       0x2c6: 0x000c, 0x2c7: 0x000c, 0x2c8: 0x000c, 0x2c9: 0x000c,
+       // Block 0xc, offset 0x300
+       0x30a: 0x000a,
+       0x30d: 0x000a, 0x30e: 0x000a, 0x30f: 0x0004, 0x310: 0x0001, 0x311: 0x000c,
+       0x312: 0x000c, 0x313: 0x000c, 0x314: 0x000c, 0x315: 0x000c, 0x316: 0x000c, 0x317: 0x000c,
+       0x318: 0x000c, 0x319: 0x000c, 0x31a: 0x000c, 0x31b: 0x000c, 0x31c: 0x000c, 0x31d: 0x000c,
+       0x31e: 0x000c, 0x31f: 0x000c, 0x320: 0x000c, 0x321: 0x000c, 0x322: 0x000c, 0x323: 0x000c,
+       0x324: 0x000c, 0x325: 0x000c, 0x326: 0x000c, 0x327: 0x000c, 0x328: 0x000c, 0x329: 0x000c,
+       0x32a: 0x000c, 0x32b: 0x000c, 0x32c: 0x000c, 0x32d: 0x000c, 0x32e: 0x000c, 0x32f: 0x000c,
+       0x330: 0x000c, 0x331: 0x000c, 0x332: 0x000c, 0x333: 0x000c, 0x334: 0x000c, 0x335: 0x000c,
+       0x336: 0x000c, 0x337: 0x000c, 0x338: 0x000c, 0x339: 0x000c, 0x33a: 0x000c, 0x33b: 0x000c,
+       0x33c: 0x000c, 0x33d: 0x000c, 0x33e: 0x0001, 0x33f: 0x000c,
+       // Block 0xd, offset 0x340
+       0x340: 0x0001, 0x341: 0x000c, 0x342: 0x000c, 0x343: 0x0001, 0x344: 0x000c, 0x345: 0x000c,
+       0x346: 0x0001, 0x347: 0x000c, 0x348: 0x0001, 0x349: 0x0001, 0x34a: 0x0001, 0x34b: 0x0001,
+       0x34c: 0x0001, 0x34d: 0x0001, 0x34e: 0x0001, 0x34f: 0x0001, 0x350: 0x0001, 0x351: 0x0001,
+       0x352: 0x0001, 0x353: 0x0001, 0x354: 0x0001, 0x355: 0x0001, 0x356: 0x0001, 0x357: 0x0001,
+       0x358: 0x0001, 0x359: 0x0001, 0x35a: 0x0001, 0x35b: 0x0001, 0x35c: 0x0001, 0x35d: 0x0001,
+       0x35e: 0x0001, 0x35f: 0x0001, 0x360: 0x0001, 0x361: 0x0001, 0x362: 0x0001, 0x363: 0x0001,
+       0x364: 0x0001, 0x365: 0x0001, 0x366: 0x0001, 0x367: 0x0001, 0x368: 0x0001, 0x369: 0x0001,
+       0x36a: 0x0001, 0x36b: 0x0001, 0x36c: 0x0001, 0x36d: 0x0001, 0x36e: 0x0001, 0x36f: 0x0001,
+       0x370: 0x0001, 0x371: 0x0001, 0x372: 0x0001, 0x373: 0x0001, 0x374: 0x0001, 0x375: 0x0001,
+       0x376: 0x0001, 0x377: 0x0001, 0x378: 0x0001, 0x379: 0x0001, 0x37a: 0x0001, 0x37b: 0x0001,
+       0x37c: 0x0001, 0x37d: 0x0001, 0x37e: 0x0001, 0x37f: 0x0001,
+       // Block 0xe, offset 0x380
+       0x380: 0x0005, 0x381: 0x0005, 0x382: 0x0005, 0x383: 0x0005, 0x384: 0x0005, 0x385: 0x0005,
+       0x386: 0x000a, 0x387: 0x000a, 0x388: 0x000d, 0x389: 0x0004, 0x38a: 0x0004, 0x38b: 0x000d,
+       0x38c: 0x0006, 0x38d: 0x000d, 0x38e: 0x000a, 0x38f: 0x000a, 0x390: 0x000c, 0x391: 0x000c,
+       0x392: 0x000c, 0x393: 0x000c, 0x394: 0x000c, 0x395: 0x000c, 0x396: 0x000c, 0x397: 0x000c,
+       0x398: 0x000c, 0x399: 0x000c, 0x39a: 0x000c, 0x39b: 0x000d, 0x39c: 0x000d, 0x39d: 0x000d,
+       0x39e: 0x000d, 0x39f: 0x000d, 0x3a0: 0x000d, 0x3a1: 0x000d, 0x3a2: 0x000d, 0x3a3: 0x000d,
+       0x3a4: 0x000d, 0x3a5: 0x000d, 0x3a6: 0x000d, 0x3a7: 0x000d, 0x3a8: 0x000d, 0x3a9: 0x000d,
+       0x3aa: 0x000d, 0x3ab: 0x000d, 0x3ac: 0x000d, 0x3ad: 0x000d, 0x3ae: 0x000d, 0x3af: 0x000d,
+       0x3b0: 0x000d, 0x3b1: 0x000d, 0x3b2: 0x000d, 0x3b3: 0x000d, 0x3b4: 0x000d, 0x3b5: 0x000d,
+       0x3b6: 0x000d, 0x3b7: 0x000d, 0x3b8: 0x000d, 0x3b9: 0x000d, 0x3ba: 0x000d, 0x3bb: 0x000d,
+       0x3bc: 0x000d, 0x3bd: 0x000d, 0x3be: 0x000d, 0x3bf: 0x000d,
+       // Block 0xf, offset 0x3c0
+       0x3c0: 0x000d, 0x3c1: 0x000d, 0x3c2: 0x000d, 0x3c3: 0x000d, 0x3c4: 0x000d, 0x3c5: 0x000d,
+       0x3c6: 0x000d, 0x3c7: 0x000d, 0x3c8: 0x000d, 0x3c9: 0x000d, 0x3ca: 0x000d, 0x3cb: 0x000c,
+       0x3cc: 0x000c, 0x3cd: 0x000c, 0x3ce: 0x000c, 0x3cf: 0x000c, 0x3d0: 0x000c, 0x3d1: 0x000c,
+       0x3d2: 0x000c, 0x3d3: 0x000c, 0x3d4: 0x000c, 0x3d5: 0x000c, 0x3d6: 0x000c, 0x3d7: 0x000c,
+       0x3d8: 0x000c, 0x3d9: 0x000c, 0x3da: 0x000c, 0x3db: 0x000c, 0x3dc: 0x000c, 0x3dd: 0x000c,
+       0x3de: 0x000c, 0x3df: 0x000c, 0x3e0: 0x0005, 0x3e1: 0x0005, 0x3e2: 0x0005, 0x3e3: 0x0005,
+       0x3e4: 0x0005, 0x3e5: 0x0005, 0x3e6: 0x0005, 0x3e7: 0x0005, 0x3e8: 0x0005, 0x3e9: 0x0005,
+       0x3ea: 0x0004, 0x3eb: 0x0005, 0x3ec: 0x0005, 0x3ed: 0x000d, 0x3ee: 0x000d, 0x3ef: 0x000d,
+       0x3f0: 0x000c, 0x3f1: 0x000d, 0x3f2: 0x000d, 0x3f3: 0x000d, 0x3f4: 0x000d, 0x3f5: 0x000d,
+       0x3f6: 0x000d, 0x3f7: 0x000d, 0x3f8: 0x000d, 0x3f9: 0x000d, 0x3fa: 0x000d, 0x3fb: 0x000d,
+       0x3fc: 0x000d, 0x3fd: 0x000d, 0x3fe: 0x000d, 0x3ff: 0x000d,
+       // Block 0x10, offset 0x400
+       0x400: 0x000d, 0x401: 0x000d, 0x402: 0x000d, 0x403: 0x000d, 0x404: 0x000d, 0x405: 0x000d,
+       0x406: 0x000d, 0x407: 0x000d, 0x408: 0x000d, 0x409: 0x000d, 0x40a: 0x000d, 0x40b: 0x000d,
+       0x40c: 0x000d, 0x40d: 0x000d, 0x40e: 0x000d, 0x40f: 0x000d, 0x410: 0x000d, 0x411: 0x000d,
+       0x412: 0x000d, 0x413: 0x000d, 0x414: 0x000d, 0x415: 0x000d, 0x416: 0x000d, 0x417: 0x000d,
+       0x418: 0x000d, 0x419: 0x000d, 0x41a: 0x000d, 0x41b: 0x000d, 0x41c: 0x000d, 0x41d: 0x000d,
+       0x41e: 0x000d, 0x41f: 0x000d, 0x420: 0x000d, 0x421: 0x000d, 0x422: 0x000d, 0x423: 0x000d,
+       0x424: 0x000d, 0x425: 0x000d, 0x426: 0x000d, 0x427: 0x000d, 0x428: 0x000d, 0x429: 0x000d,
+       0x42a: 0x000d, 0x42b: 0x000d, 0x42c: 0x000d, 0x42d: 0x000d, 0x42e: 0x000d, 0x42f: 0x000d,
+       0x430: 0x000d, 0x431: 0x000d, 0x432: 0x000d, 0x433: 0x000d, 0x434: 0x000d, 0x435: 0x000d,
+       0x436: 0x000d, 0x437: 0x000d, 0x438: 0x000d, 0x439: 0x000d, 0x43a: 0x000d, 0x43b: 0x000d,
+       0x43c: 0x000d, 0x43d: 0x000d, 0x43e: 0x000d, 0x43f: 0x000d,
+       // Block 0x11, offset 0x440
+       0x440: 0x000d, 0x441: 0x000d, 0x442: 0x000d, 0x443: 0x000d, 0x444: 0x000d, 0x445: 0x000d,
+       0x446: 0x000d, 0x447: 0x000d, 0x448: 0x000d, 0x449: 0x000d, 0x44a: 0x000d, 0x44b: 0x000d,
+       0x44c: 0x000d, 0x44d: 0x000d, 0x44e: 0x000d, 0x44f: 0x000d, 0x450: 0x000d, 0x451: 0x000d,
+       0x452: 0x000d, 0x453: 0x000d, 0x454: 0x000d, 0x455: 0x000d, 0x456: 0x000c, 0x457: 0x000c,
+       0x458: 0x000c, 0x459: 0x000c, 0x45a: 0x000c, 0x45b: 0x000c, 0x45c: 0x000c, 0x45d: 0x0005,
+       0x45e: 0x000a, 0x45f: 0x000c, 0x460: 0x000c, 0x461: 0x000c, 0x462: 0x000c, 0x463: 0x000c,
+       0x464: 0x000c, 0x465: 0x000d, 0x466: 0x000d, 0x467: 0x000c, 0x468: 0x000c, 0x469: 0x000a,
+       0x46a: 0x000c, 0x46b: 0x000c, 0x46c: 0x000c, 0x46d: 0x000c, 0x46e: 0x000d, 0x46f: 0x000d,
+       0x470: 0x0002, 0x471: 0x0002, 0x472: 0x0002, 0x473: 0x0002, 0x474: 0x0002, 0x475: 0x0002,
+       0x476: 0x0002, 0x477: 0x0002, 0x478: 0x0002, 0x479: 0x0002, 0x47a: 0x000d, 0x47b: 0x000d,
+       0x47c: 0x000d, 0x47d: 0x000d, 0x47e: 0x000d, 0x47f: 0x000d,
+       // Block 0x12, offset 0x480
+       0x480: 0x000d, 0x481: 0x000d, 0x482: 0x000d, 0x483: 0x000d, 0x484: 0x000d, 0x485: 0x000d,
+       0x486: 0x000d, 0x487: 0x000d, 0x488: 0x000d, 0x489: 0x000d, 0x48a: 0x000d, 0x48b: 0x000d,
+       0x48c: 0x000d, 0x48d: 0x000d, 0x48e: 0x000d, 0x48f: 0x000d, 0x490: 0x000d, 0x491: 0x000c,
+       0x492: 0x000d, 0x493: 0x000d, 0x494: 0x000d, 0x495: 0x000d, 0x496: 0x000d, 0x497: 0x000d,
+       0x498: 0x000d, 0x499: 0x000d, 0x49a: 0x000d, 0x49b: 0x000d, 0x49c: 0x000d, 0x49d: 0x000d,
+       0x49e: 0x000d, 0x49f: 0x000d, 0x4a0: 0x000d, 0x4a1: 0x000d, 0x4a2: 0x000d, 0x4a3: 0x000d,
+       0x4a4: 0x000d, 0x4a5: 0x000d, 0x4a6: 0x000d, 0x4a7: 0x000d, 0x4a8: 0x000d, 0x4a9: 0x000d,
+       0x4aa: 0x000d, 0x4ab: 0x000d, 0x4ac: 0x000d, 0x4ad: 0x000d, 0x4ae: 0x000d, 0x4af: 0x000d,
+       0x4b0: 0x000c, 0x4b1: 0x000c, 0x4b2: 0x000c, 0x4b3: 0x000c, 0x4b4: 0x000c, 0x4b5: 0x000c,
+       0x4b6: 0x000c, 0x4b7: 0x000c, 0x4b8: 0x000c, 0x4b9: 0x000c, 0x4ba: 0x000c, 0x4bb: 0x000c,
+       0x4bc: 0x000c, 0x4bd: 0x000c, 0x4be: 0x000c, 0x4bf: 0x000c,
+       // Block 0x13, offset 0x4c0
+       0x4c0: 0x000c, 0x4c1: 0x000c, 0x4c2: 0x000c, 0x4c3: 0x000c, 0x4c4: 0x000c, 0x4c5: 0x000c,
+       0x4c6: 0x000c, 0x4c7: 0x000c, 0x4c8: 0x000c, 0x4c9: 0x000c, 0x4ca: 0x000c, 0x4cb: 0x000d,
+       0x4cc: 0x000d, 0x4cd: 0x000d, 0x4ce: 0x000d, 0x4cf: 0x000d, 0x4d0: 0x000d, 0x4d1: 0x000d,
+       0x4d2: 0x000d, 0x4d3: 0x000d, 0x4d4: 0x000d, 0x4d5: 0x000d, 0x4d6: 0x000d, 0x4d7: 0x000d,
+       0x4d8: 0x000d, 0x4d9: 0x000d, 0x4da: 0x000d, 0x4db: 0x000d, 0x4dc: 0x000d, 0x4dd: 0x000d,
+       0x4de: 0x000d, 0x4df: 0x000d, 0x4e0: 0x000d, 0x4e1: 0x000d, 0x4e2: 0x000d, 0x4e3: 0x000d,
+       0x4e4: 0x000d, 0x4e5: 0x000d, 0x4e6: 0x000d, 0x4e7: 0x000d, 0x4e8: 0x000d, 0x4e9: 0x000d,
+       0x4ea: 0x000d, 0x4eb: 0x000d, 0x4ec: 0x000d, 0x4ed: 0x000d, 0x4ee: 0x000d, 0x4ef: 0x000d,
+       0x4f0: 0x000d, 0x4f1: 0x000d, 0x4f2: 0x000d, 0x4f3: 0x000d, 0x4f4: 0x000d, 0x4f5: 0x000d,
+       0x4f6: 0x000d, 0x4f7: 0x000d, 0x4f8: 0x000d, 0x4f9: 0x000d, 0x4fa: 0x000d, 0x4fb: 0x000d,
+       0x4fc: 0x000d, 0x4fd: 0x000d, 0x4fe: 0x000d, 0x4ff: 0x000d,
+       // Block 0x14, offset 0x500
+       0x500: 0x000d, 0x501: 0x000d, 0x502: 0x000d, 0x503: 0x000d, 0x504: 0x000d, 0x505: 0x000d,
+       0x506: 0x000d, 0x507: 0x000d, 0x508: 0x000d, 0x509: 0x000d, 0x50a: 0x000d, 0x50b: 0x000d,
+       0x50c: 0x000d, 0x50d: 0x000d, 0x50e: 0x000d, 0x50f: 0x000d, 0x510: 0x000d, 0x511: 0x000d,
+       0x512: 0x000d, 0x513: 0x000d, 0x514: 0x000d, 0x515: 0x000d, 0x516: 0x000d, 0x517: 0x000d,
+       0x518: 0x000d, 0x519: 0x000d, 0x51a: 0x000d, 0x51b: 0x000d, 0x51c: 0x000d, 0x51d: 0x000d,
+       0x51e: 0x000d, 0x51f: 0x000d, 0x520: 0x000d, 0x521: 0x000d, 0x522: 0x000d, 0x523: 0x000d,
+       0x524: 0x000d, 0x525: 0x000d, 0x526: 0x000c, 0x527: 0x000c, 0x528: 0x000c, 0x529: 0x000c,
+       0x52a: 0x000c, 0x52b: 0x000c, 0x52c: 0x000c, 0x52d: 0x000c, 0x52e: 0x000c, 0x52f: 0x000c,
+       0x530: 0x000c, 0x531: 0x000d, 0x532: 0x000d, 0x533: 0x000d, 0x534: 0x000d, 0x535: 0x000d,
+       0x536: 0x000d, 0x537: 0x000d, 0x538: 0x000d, 0x539: 0x000d, 0x53a: 0x000d, 0x53b: 0x000d,
+       0x53c: 0x000d, 0x53d: 0x000d, 0x53e: 0x000d, 0x53f: 0x000d,
+       // Block 0x15, offset 0x540
+       0x540: 0x0001, 0x541: 0x0001, 0x542: 0x0001, 0x543: 0x0001, 0x544: 0x0001, 0x545: 0x0001,
+       0x546: 0x0001, 0x547: 0x0001, 0x548: 0x0001, 0x549: 0x0001, 0x54a: 0x0001, 0x54b: 0x0001,
+       0x54c: 0x0001, 0x54d: 0x0001, 0x54e: 0x0001, 0x54f: 0x0001, 0x550: 0x0001, 0x551: 0x0001,
+       0x552: 0x0001, 0x553: 0x0001, 0x554: 0x0001, 0x555: 0x0001, 0x556: 0x0001, 0x557: 0x0001,
+       0x558: 0x0001, 0x559: 0x0001, 0x55a: 0x0001, 0x55b: 0x0001, 0x55c: 0x0001, 0x55d: 0x0001,
+       0x55e: 0x0001, 0x55f: 0x0001, 0x560: 0x0001, 0x561: 0x0001, 0x562: 0x0001, 0x563: 0x0001,
+       0x564: 0x0001, 0x565: 0x0001, 0x566: 0x0001, 0x567: 0x0001, 0x568: 0x0001, 0x569: 0x0001,
+       0x56a: 0x0001, 0x56b: 0x000c, 0x56c: 0x000c, 0x56d: 0x000c, 0x56e: 0x000c, 0x56f: 0x000c,
+       0x570: 0x000c, 0x571: 0x000c, 0x572: 0x000c, 0x573: 0x000c, 0x574: 0x0001, 0x575: 0x0001,
+       0x576: 0x000a, 0x577: 0x000a, 0x578: 0x000a, 0x579: 0x000a, 0x57a: 0x0001, 0x57b: 0x0001,
+       0x57c: 0x0001, 0x57d: 0x0001, 0x57e: 0x0001, 0x57f: 0x0001,
+       // Block 0x16, offset 0x580
+       0x580: 0x0001, 0x581: 0x0001, 0x582: 0x0001, 0x583: 0x0001, 0x584: 0x0001, 0x585: 0x0001,
+       0x586: 0x0001, 0x587: 0x0001, 0x588: 0x0001, 0x589: 0x0001, 0x58a: 0x0001, 0x58b: 0x0001,
+       0x58c: 0x0001, 0x58d: 0x0001, 0x58e: 0x0001, 0x58f: 0x0001, 0x590: 0x0001, 0x591: 0x0001,
+       0x592: 0x0001, 0x593: 0x0001, 0x594: 0x0001, 0x595: 0x0001, 0x596: 0x000c, 0x597: 0x000c,
+       0x598: 0x000c, 0x599: 0x000c, 0x59a: 0x0001, 0x59b: 0x000c, 0x59c: 0x000c, 0x59d: 0x000c,
+       0x59e: 0x000c, 0x59f: 0x000c, 0x5a0: 0x000c, 0x5a1: 0x000c, 0x5a2: 0x000c, 0x5a3: 0x000c,
+       0x5a4: 0x0001, 0x5a5: 0x000c, 0x5a6: 0x000c, 0x5a7: 0x000c, 0x5a8: 0x0001, 0x5a9: 0x000c,
+       0x5aa: 0x000c, 0x5ab: 0x000c, 0x5ac: 0x000c, 0x5ad: 0x000c, 0x5ae: 0x0001, 0x5af: 0x0001,
+       0x5b0: 0x0001, 0x5b1: 0x0001, 0x5b2: 0x0001, 0x5b3: 0x0001, 0x5b4: 0x0001, 0x5b5: 0x0001,
+       0x5b6: 0x0001, 0x5b7: 0x0001, 0x5b8: 0x0001, 0x5b9: 0x0001, 0x5ba: 0x0001, 0x5bb: 0x0001,
+       0x5bc: 0x0001, 0x5bd: 0x0001, 0x5be: 0x0001, 0x5bf: 0x0001,
+       // Block 0x17, offset 0x5c0
+       0x5c0: 0x0001, 0x5c1: 0x0001, 0x5c2: 0x0001, 0x5c3: 0x0001, 0x5c4: 0x0001, 0x5c5: 0x0001,
+       0x5c6: 0x0001, 0x5c7: 0x0001, 0x5c8: 0x0001, 0x5c9: 0x0001, 0x5ca: 0x0001, 0x5cb: 0x0001,
+       0x5cc: 0x0001, 0x5cd: 0x0001, 0x5ce: 0x0001, 0x5cf: 0x0001, 0x5d0: 0x0001, 0x5d1: 0x0001,
+       0x5d2: 0x0001, 0x5d3: 0x0001, 0x5d4: 0x0001, 0x5d5: 0x0001, 0x5d6: 0x0001, 0x5d7: 0x0001,
+       0x5d8: 0x0001, 0x5d9: 0x000c, 0x5da: 0x000c, 0x5db: 0x000c, 0x5dc: 0x0001, 0x5dd: 0x0001,
+       0x5de: 0x0001, 0x5df: 0x0001, 0x5e0: 0x000d, 0x5e1: 0x000d, 0x5e2: 0x000d, 0x5e3: 0x000d,
+       0x5e4: 0x000d, 0x5e5: 0x000d, 0x5e6: 0x000d, 0x5e7: 0x000d, 0x5e8: 0x000d, 0x5e9: 0x000d,
+       0x5ea: 0x000d, 0x5eb: 0x000d, 0x5ec: 0x000d, 0x5ed: 0x000d, 0x5ee: 0x000d, 0x5ef: 0x000d,
+       0x5f0: 0x0001, 0x5f1: 0x0001, 0x5f2: 0x0001, 0x5f3: 0x0001, 0x5f4: 0x0001, 0x5f5: 0x0001,
+       0x5f6: 0x0001, 0x5f7: 0x0001, 0x5f8: 0x0001, 0x5f9: 0x0001, 0x5fa: 0x0001, 0x5fb: 0x0001,
+       0x5fc: 0x0001, 0x5fd: 0x0001, 0x5fe: 0x0001, 0x5ff: 0x0001,
+       // Block 0x18, offset 0x600
+       0x600: 0x0001, 0x601: 0x0001, 0x602: 0x0001, 0x603: 0x0001, 0x604: 0x0001, 0x605: 0x0001,
+       0x606: 0x0001, 0x607: 0x0001, 0x608: 0x0001, 0x609: 0x0001, 0x60a: 0x0001, 0x60b: 0x0001,
+       0x60c: 0x0001, 0x60d: 0x0001, 0x60e: 0x0001, 0x60f: 0x0001, 0x610: 0x0001, 0x611: 0x0001,
+       0x612: 0x0001, 0x613: 0x0001, 0x614: 0x0001, 0x615: 0x0001, 0x616: 0x0001, 0x617: 0x0001,
+       0x618: 0x0001, 0x619: 0x0001, 0x61a: 0x0001, 0x61b: 0x0001, 0x61c: 0x0001, 0x61d: 0x0001,
+       0x61e: 0x0001, 0x61f: 0x0001, 0x620: 0x000d, 0x621: 0x000d, 0x622: 0x000d, 0x623: 0x000d,
+       0x624: 0x000d, 0x625: 0x000d, 0x626: 0x000d, 0x627: 0x000d, 0x628: 0x000d, 0x629: 0x000d,
+       0x62a: 0x000d, 0x62b: 0x000d, 0x62c: 0x000d, 0x62d: 0x000d, 0x62e: 0x000d, 0x62f: 0x000d,
+       0x630: 0x000d, 0x631: 0x000d, 0x632: 0x000d, 0x633: 0x000d, 0x634: 0x000d, 0x635: 0x000d,
+       0x636: 0x000d, 0x637: 0x000d, 0x638: 0x000d, 0x639: 0x000d, 0x63a: 0x000d, 0x63b: 0x000d,
+       0x63c: 0x000d, 0x63d: 0x000d, 0x63e: 0x000d, 0x63f: 0x000d,
+       // Block 0x19, offset 0x640
+       0x640: 0x000d, 0x641: 0x000d, 0x642: 0x000d, 0x643: 0x000d, 0x644: 0x000d, 0x645: 0x000d,
+       0x646: 0x000d, 0x647: 0x000d, 0x648: 0x000d, 0x649: 0x000d, 0x64a: 0x000d, 0x64b: 0x000d,
+       0x64c: 0x000d, 0x64d: 0x000d, 0x64e: 0x000d, 0x64f: 0x000d, 0x650: 0x000d, 0x651: 0x000d,
+       0x652: 0x000d, 0x653: 0x000d, 0x654: 0x000c, 0x655: 0x000c, 0x656: 0x000c, 0x657: 0x000c,
+       0x658: 0x000c, 0x659: 0x000c, 0x65a: 0x000c, 0x65b: 0x000c, 0x65c: 0x000c, 0x65d: 0x000c,
+       0x65e: 0x000c, 0x65f: 0x000c, 0x660: 0x000c, 0x661: 0x000c, 0x662: 0x0005, 0x663: 0x000c,
+       0x664: 0x000c, 0x665: 0x000c, 0x666: 0x000c, 0x667: 0x000c, 0x668: 0x000c, 0x669: 0x000c,
+       0x66a: 0x000c, 0x66b: 0x000c, 0x66c: 0x000c, 0x66d: 0x000c, 0x66e: 0x000c, 0x66f: 0x000c,
+       0x670: 0x000c, 0x671: 0x000c, 0x672: 0x000c, 0x673: 0x000c, 0x674: 0x000c, 0x675: 0x000c,
+       0x676: 0x000c, 0x677: 0x000c, 0x678: 0x000c, 0x679: 0x000c, 0x67a: 0x000c, 0x67b: 0x000c,
+       0x67c: 0x000c, 0x67d: 0x000c, 0x67e: 0x000c, 0x67f: 0x000c,
+       // Block 0x1a, offset 0x680
+       0x680: 0x000c, 0x681: 0x000c, 0x682: 0x000c,
+       0x6ba: 0x000c,
+       0x6bc: 0x000c,
+       // Block 0x1b, offset 0x6c0
+       0x6c1: 0x000c, 0x6c2: 0x000c, 0x6c3: 0x000c, 0x6c4: 0x000c, 0x6c5: 0x000c,
+       0x6c6: 0x000c, 0x6c7: 0x000c, 0x6c8: 0x000c,
+       0x6cd: 0x000c, 0x6d1: 0x000c,
+       0x6d2: 0x000c, 0x6d3: 0x000c, 0x6d4: 0x000c, 0x6d5: 0x000c, 0x6d6: 0x000c, 0x6d7: 0x000c,
+       0x6e2: 0x000c, 0x6e3: 0x000c,
+       // Block 0x1c, offset 0x700
+       0x701: 0x000c,
+       0x73c: 0x000c,
+       // Block 0x1d, offset 0x740
+       0x741: 0x000c, 0x742: 0x000c, 0x743: 0x000c, 0x744: 0x000c,
+       0x74d: 0x000c,
+       0x762: 0x000c, 0x763: 0x000c,
+       0x772: 0x0004, 0x773: 0x0004,
+       0x77b: 0x0004,
+       // Block 0x1e, offset 0x780
+       0x781: 0x000c, 0x782: 0x000c,
+       0x7bc: 0x000c,
+       // Block 0x1f, offset 0x7c0
+       0x7c1: 0x000c, 0x7c2: 0x000c,
+       0x7c7: 0x000c, 0x7c8: 0x000c, 0x7cb: 0x000c,
+       0x7cc: 0x000c, 0x7cd: 0x000c, 0x7d1: 0x000c,
+       0x7f0: 0x000c, 0x7f1: 0x000c, 0x7f5: 0x000c,
+       // Block 0x20, offset 0x800
+       0x801: 0x000c, 0x802: 0x000c, 0x803: 0x000c, 0x804: 0x000c, 0x805: 0x000c,
+       0x807: 0x000c, 0x808: 0x000c,
+       0x80d: 0x000c,
+       0x822: 0x000c, 0x823: 0x000c,
+       0x831: 0x0004,
+       0x83a: 0x000c, 0x83b: 0x000c,
+       0x83c: 0x000c, 0x83d: 0x000c, 0x83e: 0x000c, 0x83f: 0x000c,
+       // Block 0x21, offset 0x840
+       0x841: 0x000c,
+       0x87c: 0x000c, 0x87f: 0x000c,
+       // Block 0x22, offset 0x880
+       0x881: 0x000c, 0x882: 0x000c, 0x883: 0x000c, 0x884: 0x000c,
+       0x88d: 0x000c,
+       0x896: 0x000c,
+       0x8a2: 0x000c, 0x8a3: 0x000c,
+       // Block 0x23, offset 0x8c0
+       0x8c2: 0x000c,
+       // Block 0x24, offset 0x900
+       0x900: 0x000c,
+       0x90d: 0x000c,
+       0x933: 0x000a, 0x934: 0x000a, 0x935: 0x000a,
+       0x936: 0x000a, 0x937: 0x000a, 0x938: 0x000a, 0x939: 0x0004, 0x93a: 0x000a,
+       // Block 0x25, offset 0x940
+       0x940: 0x000c,
+       0x97e: 0x000c, 0x97f: 0x000c,
+       // Block 0x26, offset 0x980
+       0x980: 0x000c,
+       0x986: 0x000c, 0x987: 0x000c, 0x988: 0x000c, 0x98a: 0x000c, 0x98b: 0x000c,
+       0x98c: 0x000c, 0x98d: 0x000c,
+       0x995: 0x000c, 0x996: 0x000c,
+       0x9a2: 0x000c, 0x9a3: 0x000c,
+       0x9b8: 0x000a, 0x9b9: 0x000a, 0x9ba: 0x000a, 0x9bb: 0x000a,
+       0x9bc: 0x000a, 0x9bd: 0x000a, 0x9be: 0x000a,
+       // Block 0x27, offset 0x9c0
+       0x9cc: 0x000c, 0x9cd: 0x000c,
+       0x9e2: 0x000c, 0x9e3: 0x000c,
+       // Block 0x28, offset 0xa00
+       0xa00: 0x000c, 0xa01: 0x000c,
+       0xa3b: 0x000c,
+       0xa3c: 0x000c,
+       // Block 0x29, offset 0xa40
+       0xa41: 0x000c, 0xa42: 0x000c, 0xa43: 0x000c, 0xa44: 0x000c,
+       0xa4d: 0x000c,
+       0xa62: 0x000c, 0xa63: 0x000c,
+       // Block 0x2a, offset 0xa80
+       0xa8a: 0x000c,
+       0xa92: 0x000c, 0xa93: 0x000c, 0xa94: 0x000c, 0xa96: 0x000c,
+       // Block 0x2b, offset 0xac0
+       0xaf1: 0x000c, 0xaf4: 0x000c, 0xaf5: 0x000c,
+       0xaf6: 0x000c, 0xaf7: 0x000c, 0xaf8: 0x000c, 0xaf9: 0x000c, 0xafa: 0x000c,
+       0xaff: 0x0004,
+       // Block 0x2c, offset 0xb00
+       0xb07: 0x000c, 0xb08: 0x000c, 0xb09: 0x000c, 0xb0a: 0x000c, 0xb0b: 0x000c,
+       0xb0c: 0x000c, 0xb0d: 0x000c, 0xb0e: 0x000c,
+       // Block 0x2d, offset 0xb40
+       0xb71: 0x000c, 0xb74: 0x000c, 0xb75: 0x000c,
+       0xb76: 0x000c, 0xb77: 0x000c, 0xb78: 0x000c, 0xb79: 0x000c, 0xb7b: 0x000c,
+       0xb7c: 0x000c,
+       // Block 0x2e, offset 0xb80
+       0xb88: 0x000c, 0xb89: 0x000c, 0xb8a: 0x000c, 0xb8b: 0x000c,
+       0xb8c: 0x000c, 0xb8d: 0x000c,
+       // Block 0x2f, offset 0xbc0
+       0xbd8: 0x000c, 0xbd9: 0x000c,
+       0xbf5: 0x000c,
+       0xbf7: 0x000c, 0xbf9: 0x000c, 0xbfa: 0x003a, 0xbfb: 0x002a,
+       0xbfc: 0x003a, 0xbfd: 0x002a,
+       // Block 0x30, offset 0xc00
+       0xc31: 0x000c, 0xc32: 0x000c, 0xc33: 0x000c, 0xc34: 0x000c, 0xc35: 0x000c,
+       0xc36: 0x000c, 0xc37: 0x000c, 0xc38: 0x000c, 0xc39: 0x000c, 0xc3a: 0x000c, 0xc3b: 0x000c,
+       0xc3c: 0x000c, 0xc3d: 0x000c, 0xc3e: 0x000c,
+       // Block 0x31, offset 0xc40
+       0xc40: 0x000c, 0xc41: 0x000c, 0xc42: 0x000c, 0xc43: 0x000c, 0xc44: 0x000c,
+       0xc46: 0x000c, 0xc47: 0x000c,
+       0xc4d: 0x000c, 0xc4e: 0x000c, 0xc4f: 0x000c, 0xc50: 0x000c, 0xc51: 0x000c,
+       0xc52: 0x000c, 0xc53: 0x000c, 0xc54: 0x000c, 0xc55: 0x000c, 0xc56: 0x000c, 0xc57: 0x000c,
+       0xc59: 0x000c, 0xc5a: 0x000c, 0xc5b: 0x000c, 0xc5c: 0x000c, 0xc5d: 0x000c,
+       0xc5e: 0x000c, 0xc5f: 0x000c, 0xc60: 0x000c, 0xc61: 0x000c, 0xc62: 0x000c, 0xc63: 0x000c,
+       0xc64: 0x000c, 0xc65: 0x000c, 0xc66: 0x000c, 0xc67: 0x000c, 0xc68: 0x000c, 0xc69: 0x000c,
+       0xc6a: 0x000c, 0xc6b: 0x000c, 0xc6c: 0x000c, 0xc6d: 0x000c, 0xc6e: 0x000c, 0xc6f: 0x000c,
+       0xc70: 0x000c, 0xc71: 0x000c, 0xc72: 0x000c, 0xc73: 0x000c, 0xc74: 0x000c, 0xc75: 0x000c,
+       0xc76: 0x000c, 0xc77: 0x000c, 0xc78: 0x000c, 0xc79: 0x000c, 0xc7a: 0x000c, 0xc7b: 0x000c,
+       0xc7c: 0x000c,
+       // Block 0x32, offset 0xc80
+       0xc86: 0x000c,
+       // Block 0x33, offset 0xcc0
+       0xced: 0x000c, 0xcee: 0x000c, 0xcef: 0x000c,
+       0xcf0: 0x000c, 0xcf2: 0x000c, 0xcf3: 0x000c, 0xcf4: 0x000c, 0xcf5: 0x000c,
+       0xcf6: 0x000c, 0xcf7: 0x000c, 0xcf9: 0x000c, 0xcfa: 0x000c,
+       0xcfd: 0x000c, 0xcfe: 0x000c,
+       // Block 0x34, offset 0xd00
+       0xd18: 0x000c, 0xd19: 0x000c,
+       0xd1e: 0x000c, 0xd1f: 0x000c, 0xd20: 0x000c,
+       0xd31: 0x000c, 0xd32: 0x000c, 0xd33: 0x000c, 0xd34: 0x000c,
+       // Block 0x35, offset 0xd40
+       0xd42: 0x000c, 0xd45: 0x000c,
+       0xd46: 0x000c,
+       0xd4d: 0x000c,
+       0xd5d: 0x000c,
+       // Block 0x36, offset 0xd80
+       0xd9d: 0x000c,
+       0xd9e: 0x000c, 0xd9f: 0x000c,
+       // Block 0x37, offset 0xdc0
+       0xdd0: 0x000a, 0xdd1: 0x000a,
+       0xdd2: 0x000a, 0xdd3: 0x000a, 0xdd4: 0x000a, 0xdd5: 0x000a, 0xdd6: 0x000a, 0xdd7: 0x000a,
+       0xdd8: 0x000a, 0xdd9: 0x000a,
+       // Block 0x38, offset 0xe00
+       0xe00: 0x000a,
+       // Block 0x39, offset 0xe40
+       0xe40: 0x0009,
+       0xe5b: 0x007a, 0xe5c: 0x006a,
+       // Block 0x3a, offset 0xe80
+       0xe92: 0x000c, 0xe93: 0x000c, 0xe94: 0x000c,
+       0xeb2: 0x000c, 0xeb3: 0x000c, 0xeb4: 0x000c,
+       // Block 0x3b, offset 0xec0
+       0xed2: 0x000c, 0xed3: 0x000c,
+       0xef2: 0x000c, 0xef3: 0x000c,
+       // Block 0x3c, offset 0xf00
+       0xf34: 0x000c, 0xf35: 0x000c,
+       0xf37: 0x000c, 0xf38: 0x000c, 0xf39: 0x000c, 0xf3a: 0x000c, 0xf3b: 0x000c,
+       0xf3c: 0x000c, 0xf3d: 0x000c,
+       // Block 0x3d, offset 0xf40
+       0xf46: 0x000c, 0xf49: 0x000c, 0xf4a: 0x000c, 0xf4b: 0x000c,
+       0xf4c: 0x000c, 0xf4d: 0x000c, 0xf4e: 0x000c, 0xf4f: 0x000c, 0xf50: 0x000c, 0xf51: 0x000c,
+       0xf52: 0x000c, 0xf53: 0x000c,
+       0xf5b: 0x0004, 0xf5d: 0x000c,
+       0xf70: 0x000a, 0xf71: 0x000a, 0xf72: 0x000a, 0xf73: 0x000a, 0xf74: 0x000a, 0xf75: 0x000a,
+       0xf76: 0x000a, 0xf77: 0x000a, 0xf78: 0x000a, 0xf79: 0x000a,
+       // Block 0x3e, offset 0xf80
+       0xf80: 0x000a, 0xf81: 0x000a, 0xf82: 0x000a, 0xf83: 0x000a, 0xf84: 0x000a, 0xf85: 0x000a,
+       0xf86: 0x000a, 0xf87: 0x000a, 0xf88: 0x000a, 0xf89: 0x000a, 0xf8a: 0x000a, 0xf8b: 0x000c,
+       0xf8c: 0x000c, 0xf8d: 0x000c, 0xf8e: 0x000b,
+       // Block 0x3f, offset 0xfc0
+       0xfc5: 0x000c,
+       0xfc6: 0x000c,
+       0xfe9: 0x000c,
+       // Block 0x40, offset 0x1000
+       0x1020: 0x000c, 0x1021: 0x000c, 0x1022: 0x000c,
+       0x1027: 0x000c, 0x1028: 0x000c,
+       0x1032: 0x000c,
+       0x1039: 0x000c, 0x103a: 0x000c, 0x103b: 0x000c,
+       // Block 0x41, offset 0x1040
+       0x1040: 0x000a, 0x1044: 0x000a, 0x1045: 0x000a,
+       // Block 0x42, offset 0x1080
+       0x109e: 0x000a, 0x109f: 0x000a, 0x10a0: 0x000a, 0x10a1: 0x000a, 0x10a2: 0x000a, 0x10a3: 0x000a,
+       0x10a4: 0x000a, 0x10a5: 0x000a, 0x10a6: 0x000a, 0x10a7: 0x000a, 0x10a8: 0x000a, 0x10a9: 0x000a,
+       0x10aa: 0x000a, 0x10ab: 0x000a, 0x10ac: 0x000a, 0x10ad: 0x000a, 0x10ae: 0x000a, 0x10af: 0x000a,
+       0x10b0: 0x000a, 0x10b1: 0x000a, 0x10b2: 0x000a, 0x10b3: 0x000a, 0x10b4: 0x000a, 0x10b5: 0x000a,
+       0x10b6: 0x000a, 0x10b7: 0x000a, 0x10b8: 0x000a, 0x10b9: 0x000a, 0x10ba: 0x000a, 0x10bb: 0x000a,
+       0x10bc: 0x000a, 0x10bd: 0x000a, 0x10be: 0x000a, 0x10bf: 0x000a,
+       // Block 0x43, offset 0x10c0
+       0x10d7: 0x000c,
+       0x10d8: 0x000c, 0x10db: 0x000c,
+       // Block 0x44, offset 0x1100
+       0x1116: 0x000c,
+       0x1118: 0x000c, 0x1119: 0x000c, 0x111a: 0x000c, 0x111b: 0x000c, 0x111c: 0x000c, 0x111d: 0x000c,
+       0x111e: 0x000c, 0x1120: 0x000c, 0x1122: 0x000c,
+       0x1125: 0x000c, 0x1126: 0x000c, 0x1127: 0x000c, 0x1128: 0x000c, 0x1129: 0x000c,
+       0x112a: 0x000c, 0x112b: 0x000c, 0x112c: 0x000c,
+       0x1133: 0x000c, 0x1134: 0x000c, 0x1135: 0x000c,
+       0x1136: 0x000c, 0x1137: 0x000c, 0x1138: 0x000c, 0x1139: 0x000c, 0x113a: 0x000c, 0x113b: 0x000c,
+       0x113c: 0x000c, 0x113f: 0x000c,
+       // Block 0x45, offset 0x1140
+       0x1170: 0x000c, 0x1171: 0x000c, 0x1172: 0x000c, 0x1173: 0x000c, 0x1174: 0x000c, 0x1175: 0x000c,
+       0x1176: 0x000c, 0x1177: 0x000c, 0x1178: 0x000c, 0x1179: 0x000c, 0x117a: 0x000c, 0x117b: 0x000c,
+       0x117c: 0x000c, 0x117d: 0x000c, 0x117e: 0x000c,
+       // Block 0x46, offset 0x1180
+       0x1180: 0x000c, 0x1181: 0x000c, 0x1182: 0x000c, 0x1183: 0x000c,
+       0x11b4: 0x000c,
+       0x11b6: 0x000c, 0x11b7: 0x000c, 0x11b8: 0x000c, 0x11b9: 0x000c, 0x11ba: 0x000c,
+       0x11bc: 0x000c,
+       // Block 0x47, offset 0x11c0
+       0x11c2: 0x000c,
+       0x11eb: 0x000c, 0x11ec: 0x000c, 0x11ed: 0x000c, 0x11ee: 0x000c, 0x11ef: 0x000c,
+       0x11f0: 0x000c, 0x11f1: 0x000c, 0x11f2: 0x000c, 0x11f3: 0x000c,
+       // Block 0x48, offset 0x1200
+       0x1200: 0x000c, 0x1201: 0x000c,
+       0x1222: 0x000c, 0x1223: 0x000c,
+       0x1224: 0x000c, 0x1225: 0x000c, 0x1228: 0x000c, 0x1229: 0x000c,
+       0x122b: 0x000c, 0x122c: 0x000c, 0x122d: 0x000c,
+       // Block 0x49, offset 0x1240
+       0x1266: 0x000c, 0x1268: 0x000c, 0x1269: 0x000c,
+       0x126d: 0x000c, 0x126f: 0x000c,
+       0x1270: 0x000c, 0x1271: 0x000c,
+       // Block 0x4a, offset 0x1280
+       0x12ac: 0x000c, 0x12ad: 0x000c, 0x12ae: 0x000c, 0x12af: 0x000c,
+       0x12b0: 0x000c, 0x12b1: 0x000c, 0x12b2: 0x000c, 0x12b3: 0x000c,
+       0x12b6: 0x000c, 0x12b7: 0x000c,
+       // Block 0x4b, offset 0x12c0
+       0x12d0: 0x000c, 0x12d1: 0x000c,
+       0x12d2: 0x000c, 0x12d4: 0x000c, 0x12d5: 0x000c, 0x12d6: 0x000c, 0x12d7: 0x000c,
+       0x12d8: 0x000c, 0x12d9: 0x000c, 0x12da: 0x000c, 0x12db: 0x000c, 0x12dc: 0x000c, 0x12dd: 0x000c,
+       0x12de: 0x000c, 0x12df: 0x000c, 0x12e0: 0x000c, 0x12e2: 0x000c, 0x12e3: 0x000c,
+       0x12e4: 0x000c, 0x12e5: 0x000c, 0x12e6: 0x000c, 0x12e7: 0x000c, 0x12e8: 0x000c,
+       0x12ed: 0x000c,
+       0x12f4: 0x000c,
+       0x12f8: 0x000c, 0x12f9: 0x000c,
+       // Block 0x4c, offset 0x1300
+       0x1300: 0x000c, 0x1301: 0x000c, 0x1302: 0x000c, 0x1303: 0x000c, 0x1304: 0x000c, 0x1305: 0x000c,
+       0x1306: 0x000c, 0x1307: 0x000c, 0x1308: 0x000c, 0x1309: 0x000c, 0x130a: 0x000c, 0x130b: 0x000c,
+       0x130c: 0x000c, 0x130d: 0x000c, 0x130e: 0x000c, 0x130f: 0x000c, 0x1310: 0x000c, 0x1311: 0x000c,
+       0x1312: 0x000c, 0x1313: 0x000c, 0x1314: 0x000c, 0x1315: 0x000c, 0x1316: 0x000c, 0x1317: 0x000c,
+       0x1318: 0x000c, 0x1319: 0x000c, 0x131a: 0x000c, 0x131b: 0x000c, 0x131c: 0x000c, 0x131d: 0x000c,
+       0x131e: 0x000c, 0x131f: 0x000c, 0x1320: 0x000c, 0x1321: 0x000c, 0x1322: 0x000c, 0x1323: 0x000c,
+       0x1324: 0x000c, 0x1325: 0x000c, 0x1326: 0x000c, 0x1327: 0x000c, 0x1328: 0x000c, 0x1329: 0x000c,
+       0x132a: 0x000c, 0x132b: 0x000c, 0x132c: 0x000c, 0x132d: 0x000c, 0x132e: 0x000c, 0x132f: 0x000c,
+       0x1330: 0x000c, 0x1331: 0x000c, 0x1332: 0x000c, 0x1333: 0x000c, 0x1334: 0x000c, 0x1335: 0x000c,
+       0x1336: 0x000c, 0x1337: 0x000c, 0x1338: 0x000c, 0x1339: 0x000c, 0x133b: 0x000c,
+       0x133c: 0x000c, 0x133d: 0x000c, 0x133e: 0x000c, 0x133f: 0x000c,
+       // Block 0x4d, offset 0x1340
+       0x137d: 0x000a, 0x137f: 0x000a,
+       // Block 0x4e, offset 0x1380
+       0x1380: 0x000a, 0x1381: 0x000a,
+       0x138d: 0x000a, 0x138e: 0x000a, 0x138f: 0x000a,
+       0x139d: 0x000a,
+       0x139e: 0x000a, 0x139f: 0x000a,
+       0x13ad: 0x000a, 0x13ae: 0x000a, 0x13af: 0x000a,
+       0x13bd: 0x000a, 0x13be: 0x000a,
+       // Block 0x4f, offset 0x13c0
+       0x13c0: 0x0009, 0x13c1: 0x0009, 0x13c2: 0x0009, 0x13c3: 0x0009, 0x13c4: 0x0009, 0x13c5: 0x0009,
+       0x13c6: 0x0009, 0x13c7: 0x0009, 0x13c8: 0x0009, 0x13c9: 0x0009, 0x13ca: 0x0009, 0x13cb: 0x000b,
+       0x13cc: 0x000b, 0x13cd: 0x000b, 0x13cf: 0x0001, 0x13d0: 0x000a, 0x13d1: 0x000a,
+       0x13d2: 0x000a, 0x13d3: 0x000a, 0x13d4: 0x000a, 0x13d5: 0x000a, 0x13d6: 0x000a, 0x13d7: 0x000a,
+       0x13d8: 0x000a, 0x13d9: 0x000a, 0x13da: 0x000a, 0x13db: 0x000a, 0x13dc: 0x000a, 0x13dd: 0x000a,
+       0x13de: 0x000a, 0x13df: 0x000a, 0x13e0: 0x000a, 0x13e1: 0x000a, 0x13e2: 0x000a, 0x13e3: 0x000a,
+       0x13e4: 0x000a, 0x13e5: 0x000a, 0x13e6: 0x000a, 0x13e7: 0x000a, 0x13e8: 0x0009, 0x13e9: 0x0007,
+       0x13ea: 0x000e, 0x13eb: 0x000e, 0x13ec: 0x000e, 0x13ed: 0x000e, 0x13ee: 0x000e, 0x13ef: 0x0006,
+       0x13f0: 0x0004, 0x13f1: 0x0004, 0x13f2: 0x0004, 0x13f3: 0x0004, 0x13f4: 0x0004, 0x13f5: 0x000a,
+       0x13f6: 0x000a, 0x13f7: 0x000a, 0x13f8: 0x000a, 0x13f9: 0x000a, 0x13fa: 0x000a, 0x13fb: 0x000a,
+       0x13fc: 0x000a, 0x13fd: 0x000a, 0x13fe: 0x000a, 0x13ff: 0x000a,
+       // Block 0x50, offset 0x1400
+       0x1400: 0x000a, 0x1401: 0x000a, 0x1402: 0x000a, 0x1403: 0x000a, 0x1404: 0x0006, 0x1405: 0x009a,
+       0x1406: 0x008a, 0x1407: 0x000a, 0x1408: 0x000a, 0x1409: 0x000a, 0x140a: 0x000a, 0x140b: 0x000a,
+       0x140c: 0x000a, 0x140d: 0x000a, 0x140e: 0x000a, 0x140f: 0x000a, 0x1410: 0x000a, 0x1411: 0x000a,
+       0x1412: 0x000a, 0x1413: 0x000a, 0x1414: 0x000a, 0x1415: 0x000a, 0x1416: 0x000a, 0x1417: 0x000a,
+       0x1418: 0x000a, 0x1419: 0x000a, 0x141a: 0x000a, 0x141b: 0x000a, 0x141c: 0x000a, 0x141d: 0x000a,
+       0x141e: 0x000a, 0x141f: 0x0009, 0x1420: 0x000b, 0x1421: 0x000b, 0x1422: 0x000b, 0x1423: 0x000b,
+       0x1424: 0x000b, 0x1425: 0x000b, 0x1426: 0x000e, 0x1427: 0x000e, 0x1428: 0x000e, 0x1429: 0x000e,
+       0x142a: 0x000b, 0x142b: 0x000b, 0x142c: 0x000b, 0x142d: 0x000b, 0x142e: 0x000b, 0x142f: 0x000b,
+       0x1430: 0x0002, 0x1434: 0x0002, 0x1435: 0x0002,
+       0x1436: 0x0002, 0x1437: 0x0002, 0x1438: 0x0002, 0x1439: 0x0002, 0x143a: 0x0003, 0x143b: 0x0003,
+       0x143c: 0x000a, 0x143d: 0x009a, 0x143e: 0x008a,
+       // Block 0x51, offset 0x1440
+       0x1440: 0x0002, 0x1441: 0x0002, 0x1442: 0x0002, 0x1443: 0x0002, 0x1444: 0x0002, 0x1445: 0x0002,
+       0x1446: 0x0002, 0x1447: 0x0002, 0x1448: 0x0002, 0x1449: 0x0002, 0x144a: 0x0003, 0x144b: 0x0003,
+       0x144c: 0x000a, 0x144d: 0x009a, 0x144e: 0x008a,
+       0x1460: 0x0004, 0x1461: 0x0004, 0x1462: 0x0004, 0x1463: 0x0004,
+       0x1464: 0x0004, 0x1465: 0x0004, 0x1466: 0x0004, 0x1467: 0x0004, 0x1468: 0x0004, 0x1469: 0x0004,
+       0x146a: 0x0004, 0x146b: 0x0004, 0x146c: 0x0004, 0x146d: 0x0004, 0x146e: 0x0004, 0x146f: 0x0004,
+       0x1470: 0x0004, 0x1471: 0x0004, 0x1472: 0x0004, 0x1473: 0x0004, 0x1474: 0x0004, 0x1475: 0x0004,
+       0x1476: 0x0004, 0x1477: 0x0004, 0x1478: 0x0004, 0x1479: 0x0004, 0x147a: 0x0004, 0x147b: 0x0004,
+       0x147c: 0x0004, 0x147d: 0x0004, 0x147e: 0x0004, 0x147f: 0x0004,
+       // Block 0x52, offset 0x1480
+       0x1480: 0x0004, 0x1481: 0x0004, 0x1482: 0x0004, 0x1483: 0x0004, 0x1484: 0x0004, 0x1485: 0x0004,
+       0x1486: 0x0004, 0x1487: 0x0004, 0x1488: 0x0004, 0x1489: 0x0004, 0x148a: 0x0004, 0x148b: 0x0004,
+       0x148c: 0x0004, 0x148d: 0x0004, 0x148e: 0x0004, 0x148f: 0x0004, 0x1490: 0x000c, 0x1491: 0x000c,
+       0x1492: 0x000c, 0x1493: 0x000c, 0x1494: 0x000c, 0x1495: 0x000c, 0x1496: 0x000c, 0x1497: 0x000c,
+       0x1498: 0x000c, 0x1499: 0x000c, 0x149a: 0x000c, 0x149b: 0x000c, 0x149c: 0x000c, 0x149d: 0x000c,
+       0x149e: 0x000c, 0x149f: 0x000c, 0x14a0: 0x000c, 0x14a1: 0x000c, 0x14a2: 0x000c, 0x14a3: 0x000c,
+       0x14a4: 0x000c, 0x14a5: 0x000c, 0x14a6: 0x000c, 0x14a7: 0x000c, 0x14a8: 0x000c, 0x14a9: 0x000c,
+       0x14aa: 0x000c, 0x14ab: 0x000c, 0x14ac: 0x000c, 0x14ad: 0x000c, 0x14ae: 0x000c, 0x14af: 0x000c,
+       0x14b0: 0x000c,
+       // Block 0x53, offset 0x14c0
+       0x14c0: 0x000a, 0x14c1: 0x000a, 0x14c3: 0x000a, 0x14c4: 0x000a, 0x14c5: 0x000a,
+       0x14c6: 0x000a, 0x14c8: 0x000a, 0x14c9: 0x000a,
+       0x14d4: 0x000a, 0x14d6: 0x000a, 0x14d7: 0x000a,
+       0x14d8: 0x000a,
+       0x14de: 0x000a, 0x14df: 0x000a, 0x14e0: 0x000a, 0x14e1: 0x000a, 0x14e2: 0x000a, 0x14e3: 0x000a,
+       0x14e5: 0x000a, 0x14e7: 0x000a, 0x14e9: 0x000a,
+       0x14ee: 0x0004,
+       0x14fa: 0x000a, 0x14fb: 0x000a,
+       // Block 0x54, offset 0x1500
+       0x1500: 0x000a, 0x1501: 0x000a, 0x1502: 0x000a, 0x1503: 0x000a, 0x1504: 0x000a,
+       0x150a: 0x000a, 0x150b: 0x000a,
+       0x150c: 0x000a, 0x150d: 0x000a, 0x1510: 0x000a, 0x1511: 0x000a,
+       0x1512: 0x000a, 0x1513: 0x000a, 0x1514: 0x000a, 0x1515: 0x000a, 0x1516: 0x000a, 0x1517: 0x000a,
+       0x1518: 0x000a, 0x1519: 0x000a, 0x151a: 0x000a, 0x151b: 0x000a, 0x151c: 0x000a, 0x151d: 0x000a,
+       0x151e: 0x000a, 0x151f: 0x000a,
+       // Block 0x55, offset 0x1540
+       0x1549: 0x000a, 0x154a: 0x000a, 0x154b: 0x000a,
+       0x1550: 0x000a, 0x1551: 0x000a,
+       0x1552: 0x000a, 0x1553: 0x000a, 0x1554: 0x000a, 0x1555: 0x000a, 0x1556: 0x000a, 0x1557: 0x000a,
+       0x1558: 0x000a, 0x1559: 0x000a, 0x155a: 0x000a, 0x155b: 0x000a, 0x155c: 0x000a, 0x155d: 0x000a,
+       0x155e: 0x000a, 0x155f: 0x000a, 0x1560: 0x000a, 0x1561: 0x000a, 0x1562: 0x000a, 0x1563: 0x000a,
+       0x1564: 0x000a, 0x1565: 0x000a, 0x1566: 0x000a, 0x1567: 0x000a, 0x1568: 0x000a, 0x1569: 0x000a,
+       0x156a: 0x000a, 0x156b: 0x000a, 0x156c: 0x000a, 0x156d: 0x000a, 0x156e: 0x000a, 0x156f: 0x000a,
+       0x1570: 0x000a, 0x1571: 0x000a, 0x1572: 0x000a, 0x1573: 0x000a, 0x1574: 0x000a, 0x1575: 0x000a,
+       0x1576: 0x000a, 0x1577: 0x000a, 0x1578: 0x000a, 0x1579: 0x000a, 0x157a: 0x000a, 0x157b: 0x000a,
+       0x157c: 0x000a, 0x157d: 0x000a, 0x157e: 0x000a, 0x157f: 0x000a,
+       // Block 0x56, offset 0x1580
+       0x1580: 0x000a, 0x1581: 0x000a, 0x1582: 0x000a, 0x1583: 0x000a, 0x1584: 0x000a, 0x1585: 0x000a,
+       0x1586: 0x000a, 0x1587: 0x000a, 0x1588: 0x000a, 0x1589: 0x000a, 0x158a: 0x000a, 0x158b: 0x000a,
+       0x158c: 0x000a, 0x158d: 0x000a, 0x158e: 0x000a, 0x158f: 0x000a, 0x1590: 0x000a, 0x1591: 0x000a,
+       0x1592: 0x000a, 0x1593: 0x000a, 0x1594: 0x000a, 0x1595: 0x000a, 0x1596: 0x000a, 0x1597: 0x000a,
+       0x1598: 0x000a, 0x1599: 0x000a, 0x159a: 0x000a, 0x159b: 0x000a, 0x159c: 0x000a, 0x159d: 0x000a,
+       0x159e: 0x000a, 0x159f: 0x000a, 0x15a0: 0x000a, 0x15a1: 0x000a, 0x15a2: 0x000a, 0x15a3: 0x000a,
+       0x15a4: 0x000a, 0x15a5: 0x000a, 0x15a6: 0x000a, 0x15a7: 0x000a, 0x15a8: 0x000a, 0x15a9: 0x000a,
+       0x15aa: 0x000a, 0x15ab: 0x000a, 0x15ac: 0x000a, 0x15ad: 0x000a, 0x15ae: 0x000a, 0x15af: 0x000a,
+       0x15b0: 0x000a, 0x15b1: 0x000a, 0x15b2: 0x000a, 0x15b3: 0x000a, 0x15b4: 0x000a, 0x15b5: 0x000a,
+       0x15b6: 0x000a, 0x15b7: 0x000a, 0x15b8: 0x000a, 0x15b9: 0x000a, 0x15ba: 0x000a, 0x15bb: 0x000a,
+       0x15bc: 0x000a, 0x15bd: 0x000a, 0x15be: 0x000a, 0x15bf: 0x000a,
+       // Block 0x57, offset 0x15c0
+       0x15c0: 0x000a, 0x15c1: 0x000a, 0x15c2: 0x000a, 0x15c3: 0x000a, 0x15c4: 0x000a, 0x15c5: 0x000a,
+       0x15c6: 0x000a, 0x15c7: 0x000a, 0x15c8: 0x000a, 0x15c9: 0x000a, 0x15ca: 0x000a, 0x15cb: 0x000a,
+       0x15cc: 0x000a, 0x15cd: 0x000a, 0x15ce: 0x000a, 0x15cf: 0x000a, 0x15d0: 0x000a, 0x15d1: 0x000a,
+       0x15d2: 0x0003, 0x15d3: 0x0004, 0x15d4: 0x000a, 0x15d5: 0x000a, 0x15d6: 0x000a, 0x15d7: 0x000a,
+       0x15d8: 0x000a, 0x15d9: 0x000a, 0x15da: 0x000a, 0x15db: 0x000a, 0x15dc: 0x000a, 0x15dd: 0x000a,
+       0x15de: 0x000a, 0x15df: 0x000a, 0x15e0: 0x000a, 0x15e1: 0x000a, 0x15e2: 0x000a, 0x15e3: 0x000a,
+       0x15e4: 0x000a, 0x15e5: 0x000a, 0x15e6: 0x000a, 0x15e7: 0x000a, 0x15e8: 0x000a, 0x15e9: 0x000a,
+       0x15ea: 0x000a, 0x15eb: 0x000a, 0x15ec: 0x000a, 0x15ed: 0x000a, 0x15ee: 0x000a, 0x15ef: 0x000a,
+       0x15f0: 0x000a, 0x15f1: 0x000a, 0x15f2: 0x000a, 0x15f3: 0x000a, 0x15f4: 0x000a, 0x15f5: 0x000a,
+       0x15f6: 0x000a, 0x15f7: 0x000a, 0x15f8: 0x000a, 0x15f9: 0x000a, 0x15fa: 0x000a, 0x15fb: 0x000a,
+       0x15fc: 0x000a, 0x15fd: 0x000a, 0x15fe: 0x000a, 0x15ff: 0x000a,
+       // Block 0x58, offset 0x1600
+       0x1600: 0x000a, 0x1601: 0x000a, 0x1602: 0x000a, 0x1603: 0x000a, 0x1604: 0x000a, 0x1605: 0x000a,
+       0x1606: 0x000a, 0x1607: 0x000a, 0x1608: 0x003a, 0x1609: 0x002a, 0x160a: 0x003a, 0x160b: 0x002a,
+       0x160c: 0x000a, 0x160d: 0x000a, 0x160e: 0x000a, 0x160f: 0x000a, 0x1610: 0x000a, 0x1611: 0x000a,
+       0x1612: 0x000a, 0x1613: 0x000a, 0x1614: 0x000a, 0x1615: 0x000a, 0x1616: 0x000a, 0x1617: 0x000a,
+       0x1618: 0x000a, 0x1619: 0x000a, 0x161a: 0x000a, 0x161b: 0x000a, 0x161c: 0x000a, 0x161d: 0x000a,
+       0x161e: 0x000a, 0x161f: 0x000a, 0x1620: 0x000a, 0x1621: 0x000a, 0x1622: 0x000a, 0x1623: 0x000a,
+       0x1624: 0x000a, 0x1625: 0x000a, 0x1626: 0x000a, 0x1627: 0x000a, 0x1628: 0x000a, 0x1629: 0x009a,
+       0x162a: 0x008a, 0x162b: 0x000a, 0x162c: 0x000a, 0x162d: 0x000a, 0x162e: 0x000a, 0x162f: 0x000a,
+       0x1630: 0x000a, 0x1631: 0x000a, 0x1632: 0x000a, 0x1633: 0x000a, 0x1634: 0x000a, 0x1635: 0x000a,
+       // Block 0x59, offset 0x1640
+       0x167b: 0x000a,
+       0x167c: 0x000a, 0x167d: 0x000a, 0x167e: 0x000a, 0x167f: 0x000a,
+       // Block 0x5a, offset 0x1680
+       0x1680: 0x000a, 0x1681: 0x000a, 0x1682: 0x000a, 0x1683: 0x000a, 0x1684: 0x000a, 0x1685: 0x000a,
+       0x1686: 0x000a, 0x1687: 0x000a, 0x1688: 0x000a, 0x1689: 0x000a, 0x168a: 0x000a, 0x168b: 0x000a,
+       0x168c: 0x000a, 0x168d: 0x000a, 0x168e: 0x000a, 0x168f: 0x000a, 0x1690: 0x000a, 0x1691: 0x000a,
+       0x1692: 0x000a, 0x1693: 0x000a, 0x1694: 0x000a, 0x1696: 0x000a, 0x1697: 0x000a,
+       0x1698: 0x000a, 0x1699: 0x000a, 0x169a: 0x000a, 0x169b: 0x000a, 0x169c: 0x000a, 0x169d: 0x000a,
+       0x169e: 0x000a, 0x169f: 0x000a, 0x16a0: 0x000a, 0x16a1: 0x000a, 0x16a2: 0x000a, 0x16a3: 0x000a,
+       0x16a4: 0x000a, 0x16a5: 0x000a, 0x16a6: 0x000a, 0x16a7: 0x000a, 0x16a8: 0x000a, 0x16a9: 0x000a,
+       0x16aa: 0x000a, 0x16ab: 0x000a, 0x16ac: 0x000a, 0x16ad: 0x000a, 0x16ae: 0x000a, 0x16af: 0x000a,
+       0x16b0: 0x000a, 0x16b1: 0x000a, 0x16b2: 0x000a, 0x16b3: 0x000a, 0x16b4: 0x000a, 0x16b5: 0x000a,
+       0x16b6: 0x000a, 0x16b7: 0x000a, 0x16b8: 0x000a, 0x16b9: 0x000a, 0x16ba: 0x000a, 0x16bb: 0x000a,
+       0x16bc: 0x000a, 0x16bd: 0x000a, 0x16be: 0x000a, 0x16bf: 0x000a,
+       // Block 0x5b, offset 0x16c0
+       0x16c0: 0x000a, 0x16c1: 0x000a, 0x16c2: 0x000a, 0x16c3: 0x000a, 0x16c4: 0x000a, 0x16c5: 0x000a,
+       0x16c6: 0x000a, 0x16c7: 0x000a, 0x16c8: 0x000a, 0x16c9: 0x000a, 0x16ca: 0x000a, 0x16cb: 0x000a,
+       0x16cc: 0x000a, 0x16cd: 0x000a, 0x16ce: 0x000a, 0x16cf: 0x000a, 0x16d0: 0x000a, 0x16d1: 0x000a,
+       0x16d2: 0x000a, 0x16d3: 0x000a, 0x16d4: 0x000a, 0x16d5: 0x000a, 0x16d6: 0x000a, 0x16d7: 0x000a,
+       0x16d8: 0x000a, 0x16d9: 0x000a, 0x16da: 0x000a, 0x16db: 0x000a, 0x16dc: 0x000a, 0x16dd: 0x000a,
+       0x16de: 0x000a, 0x16df: 0x000a, 0x16e0: 0x000a, 0x16e1: 0x000a, 0x16e2: 0x000a, 0x16e3: 0x000a,
+       0x16e4: 0x000a, 0x16e5: 0x000a, 0x16e6: 0x000a,
+       // Block 0x5c, offset 0x1700
+       0x1700: 0x000a, 0x1701: 0x000a, 0x1702: 0x000a, 0x1703: 0x000a, 0x1704: 0x000a, 0x1705: 0x000a,
+       0x1706: 0x000a, 0x1707: 0x000a, 0x1708: 0x000a, 0x1709: 0x000a, 0x170a: 0x000a,
+       0x1720: 0x000a, 0x1721: 0x000a, 0x1722: 0x000a, 0x1723: 0x000a,
+       0x1724: 0x000a, 0x1725: 0x000a, 0x1726: 0x000a, 0x1727: 0x000a, 0x1728: 0x000a, 0x1729: 0x000a,
+       0x172a: 0x000a, 0x172b: 0x000a, 0x172c: 0x000a, 0x172d: 0x000a, 0x172e: 0x000a, 0x172f: 0x000a,
+       0x1730: 0x000a, 0x1731: 0x000a, 0x1732: 0x000a, 0x1733: 0x000a, 0x1734: 0x000a, 0x1735: 0x000a,
+       0x1736: 0x000a, 0x1737: 0x000a, 0x1738: 0x000a, 0x1739: 0x000a, 0x173a: 0x000a, 0x173b: 0x000a,
+       0x173c: 0x000a, 0x173d: 0x000a, 0x173e: 0x000a, 0x173f: 0x000a,
+       // Block 0x5d, offset 0x1740
+       0x1740: 0x000a, 0x1741: 0x000a, 0x1742: 0x000a, 0x1743: 0x000a, 0x1744: 0x000a, 0x1745: 0x000a,
+       0x1746: 0x000a, 0x1747: 0x000a, 0x1748: 0x0002, 0x1749: 0x0002, 0x174a: 0x0002, 0x174b: 0x0002,
+       0x174c: 0x0002, 0x174d: 0x0002, 0x174e: 0x0002, 0x174f: 0x0002, 0x1750: 0x0002, 0x1751: 0x0002,
+       0x1752: 0x0002, 0x1753: 0x0002, 0x1754: 0x0002, 0x1755: 0x0002, 0x1756: 0x0002, 0x1757: 0x0002,
+       0x1758: 0x0002, 0x1759: 0x0002, 0x175a: 0x0002, 0x175b: 0x0002,
+       // Block 0x5e, offset 0x1780
+       0x17aa: 0x000a, 0x17ab: 0x000a, 0x17ac: 0x000a, 0x17ad: 0x000a, 0x17ae: 0x000a, 0x17af: 0x000a,
+       0x17b0: 0x000a, 0x17b1: 0x000a, 0x17b2: 0x000a, 0x17b3: 0x000a, 0x17b4: 0x000a, 0x17b5: 0x000a,
+       0x17b6: 0x000a, 0x17b7: 0x000a, 0x17b8: 0x000a, 0x17b9: 0x000a, 0x17ba: 0x000a, 0x17bb: 0x000a,
+       0x17bc: 0x000a, 0x17bd: 0x000a, 0x17be: 0x000a, 0x17bf: 0x000a,
+       // Block 0x5f, offset 0x17c0
+       0x17c0: 0x000a, 0x17c1: 0x000a, 0x17c2: 0x000a, 0x17c3: 0x000a, 0x17c4: 0x000a, 0x17c5: 0x000a,
+       0x17c6: 0x000a, 0x17c7: 0x000a, 0x17c8: 0x000a, 0x17c9: 0x000a, 0x17ca: 0x000a, 0x17cb: 0x000a,
+       0x17cc: 0x000a, 0x17cd: 0x000a, 0x17ce: 0x000a, 0x17cf: 0x000a, 0x17d0: 0x000a, 0x17d1: 0x000a,
+       0x17d2: 0x000a, 0x17d3: 0x000a, 0x17d4: 0x000a, 0x17d5: 0x000a, 0x17d6: 0x000a, 0x17d7: 0x000a,
+       0x17d8: 0x000a, 0x17d9: 0x000a, 0x17da: 0x000a, 0x17db: 0x000a, 0x17dc: 0x000a, 0x17dd: 0x000a,
+       0x17de: 0x000a, 0x17df: 0x000a, 0x17e0: 0x000a, 0x17e1: 0x000a, 0x17e2: 0x000a, 0x17e3: 0x000a,
+       0x17e4: 0x000a, 0x17e5: 0x000a, 0x17e6: 0x000a, 0x17e7: 0x000a, 0x17e8: 0x000a, 0x17e9: 0x000a,
+       0x17ea: 0x000a, 0x17eb: 0x000a, 0x17ed: 0x000a, 0x17ee: 0x000a, 0x17ef: 0x000a,
+       0x17f0: 0x000a, 0x17f1: 0x000a, 0x17f2: 0x000a, 0x17f3: 0x000a, 0x17f4: 0x000a, 0x17f5: 0x000a,
+       0x17f6: 0x000a, 0x17f7: 0x000a, 0x17f8: 0x000a, 0x17f9: 0x000a, 0x17fa: 0x000a, 0x17fb: 0x000a,
+       0x17fc: 0x000a, 0x17fd: 0x000a, 0x17fe: 0x000a, 0x17ff: 0x000a,
+       // Block 0x60, offset 0x1800
+       0x1800: 0x000a, 0x1801: 0x000a, 0x1802: 0x000a, 0x1803: 0x000a, 0x1804: 0x000a, 0x1805: 0x000a,
+       0x1806: 0x000a, 0x1807: 0x000a, 0x1808: 0x000a, 0x1809: 0x000a, 0x180a: 0x000a, 0x180b: 0x000a,
+       0x180c: 0x000a, 0x180d: 0x000a, 0x180e: 0x000a, 0x180f: 0x000a, 0x1810: 0x000a, 0x1811: 0x000a,
+       0x1812: 0x000a, 0x1813: 0x000a, 0x1814: 0x000a, 0x1815: 0x000a, 0x1816: 0x000a, 0x1817: 0x000a,
+       0x1818: 0x000a, 0x1819: 0x000a, 0x181a: 0x000a, 0x181b: 0x000a, 0x181c: 0x000a, 0x181d: 0x000a,
+       0x181e: 0x000a, 0x181f: 0x000a, 0x1820: 0x000a, 0x1821: 0x000a, 0x1822: 0x000a, 0x1823: 0x000a,
+       0x1824: 0x000a, 0x1825: 0x000a, 0x1826: 0x000a, 0x1827: 0x000a, 0x1828: 0x003a, 0x1829: 0x002a,
+       0x182a: 0x003a, 0x182b: 0x002a, 0x182c: 0x003a, 0x182d: 0x002a, 0x182e: 0x003a, 0x182f: 0x002a,
+       0x1830: 0x003a, 0x1831: 0x002a, 0x1832: 0x003a, 0x1833: 0x002a, 0x1834: 0x003a, 0x1835: 0x002a,
+       0x1836: 0x000a, 0x1837: 0x000a, 0x1838: 0x000a, 0x1839: 0x000a, 0x183a: 0x000a, 0x183b: 0x000a,
+       0x183c: 0x000a, 0x183d: 0x000a, 0x183e: 0x000a, 0x183f: 0x000a,
+       // Block 0x61, offset 0x1840
+       0x1840: 0x000a, 0x1841: 0x000a, 0x1842: 0x000a, 0x1843: 0x000a, 0x1844: 0x000a, 0x1845: 0x009a,
+       0x1846: 0x008a, 0x1847: 0x000a, 0x1848: 0x000a, 0x1849: 0x000a, 0x184a: 0x000a, 0x184b: 0x000a,
+       0x184c: 0x000a, 0x184d: 0x000a, 0x184e: 0x000a, 0x184f: 0x000a, 0x1850: 0x000a, 0x1851: 0x000a,
+       0x1852: 0x000a, 0x1853: 0x000a, 0x1854: 0x000a, 0x1855: 0x000a, 0x1856: 0x000a, 0x1857: 0x000a,
+       0x1858: 0x000a, 0x1859: 0x000a, 0x185a: 0x000a, 0x185b: 0x000a, 0x185c: 0x000a, 0x185d: 0x000a,
+       0x185e: 0x000a, 0x185f: 0x000a, 0x1860: 0x000a, 0x1861: 0x000a, 0x1862: 0x000a, 0x1863: 0x000a,
+       0x1864: 0x000a, 0x1865: 0x000a, 0x1866: 0x003a, 0x1867: 0x002a, 0x1868: 0x003a, 0x1869: 0x002a,
+       0x186a: 0x003a, 0x186b: 0x002a, 0x186c: 0x003a, 0x186d: 0x002a, 0x186e: 0x003a, 0x186f: 0x002a,
+       0x1870: 0x000a, 0x1871: 0x000a, 0x1872: 0x000a, 0x1873: 0x000a, 0x1874: 0x000a, 0x1875: 0x000a,
+       0x1876: 0x000a, 0x1877: 0x000a, 0x1878: 0x000a, 0x1879: 0x000a, 0x187a: 0x000a, 0x187b: 0x000a,
+       0x187c: 0x000a, 0x187d: 0x000a, 0x187e: 0x000a, 0x187f: 0x000a,
+       // Block 0x62, offset 0x1880
+       0x1880: 0x000a, 0x1881: 0x000a, 0x1882: 0x000a, 0x1883: 0x007a, 0x1884: 0x006a, 0x1885: 0x009a,
+       0x1886: 0x008a, 0x1887: 0x00ba, 0x1888: 0x00aa, 0x1889: 0x009a, 0x188a: 0x008a, 0x188b: 0x007a,
+       0x188c: 0x006a, 0x188d: 0x00da, 0x188e: 0x002a, 0x188f: 0x003a, 0x1890: 0x00ca, 0x1891: 0x009a,
+       0x1892: 0x008a, 0x1893: 0x007a, 0x1894: 0x006a, 0x1895: 0x009a, 0x1896: 0x008a, 0x1897: 0x00ba,
+       0x1898: 0x00aa, 0x1899: 0x000a, 0x189a: 0x000a, 0x189b: 0x000a, 0x189c: 0x000a, 0x189d: 0x000a,
+       0x189e: 0x000a, 0x189f: 0x000a, 0x18a0: 0x000a, 0x18a1: 0x000a, 0x18a2: 0x000a, 0x18a3: 0x000a,
+       0x18a4: 0x000a, 0x18a5: 0x000a, 0x18a6: 0x000a, 0x18a7: 0x000a, 0x18a8: 0x000a, 0x18a9: 0x000a,
+       0x18aa: 0x000a, 0x18ab: 0x000a, 0x18ac: 0x000a, 0x18ad: 0x000a, 0x18ae: 0x000a, 0x18af: 0x000a,
+       0x18b0: 0x000a, 0x18b1: 0x000a, 0x18b2: 0x000a, 0x18b3: 0x000a, 0x18b4: 0x000a, 0x18b5: 0x000a,
+       0x18b6: 0x000a, 0x18b7: 0x000a, 0x18b8: 0x000a, 0x18b9: 0x000a, 0x18ba: 0x000a, 0x18bb: 0x000a,
+       0x18bc: 0x000a, 0x18bd: 0x000a, 0x18be: 0x000a, 0x18bf: 0x000a,
+       // Block 0x63, offset 0x18c0
+       0x18c0: 0x000a, 0x18c1: 0x000a, 0x18c2: 0x000a, 0x18c3: 0x000a, 0x18c4: 0x000a, 0x18c5: 0x000a,
+       0x18c6: 0x000a, 0x18c7: 0x000a, 0x18c8: 0x000a, 0x18c9: 0x000a, 0x18ca: 0x000a, 0x18cb: 0x000a,
+       0x18cc: 0x000a, 0x18cd: 0x000a, 0x18ce: 0x000a, 0x18cf: 0x000a, 0x18d0: 0x000a, 0x18d1: 0x000a,
+       0x18d2: 0x000a, 0x18d3: 0x000a, 0x18d4: 0x000a, 0x18d5: 0x000a, 0x18d6: 0x000a, 0x18d7: 0x000a,
+       0x18d8: 0x003a, 0x18d9: 0x002a, 0x18da: 0x003a, 0x18db: 0x002a, 0x18dc: 0x000a, 0x18dd: 0x000a,
+       0x18de: 0x000a, 0x18df: 0x000a, 0x18e0: 0x000a, 0x18e1: 0x000a, 0x18e2: 0x000a, 0x18e3: 0x000a,
+       0x18e4: 0x000a, 0x18e5: 0x000a, 0x18e6: 0x000a, 0x18e7: 0x000a, 0x18e8: 0x000a, 0x18e9: 0x000a,
+       0x18ea: 0x000a, 0x18eb: 0x000a, 0x18ec: 0x000a, 0x18ed: 0x000a, 0x18ee: 0x000a, 0x18ef: 0x000a,
+       0x18f0: 0x000a, 0x18f1: 0x000a, 0x18f2: 0x000a, 0x18f3: 0x000a, 0x18f4: 0x000a, 0x18f5: 0x000a,
+       0x18f6: 0x000a, 0x18f7: 0x000a, 0x18f8: 0x000a, 0x18f9: 0x000a, 0x18fa: 0x000a, 0x18fb: 0x000a,
+       0x18fc: 0x003a, 0x18fd: 0x002a, 0x18fe: 0x000a, 0x18ff: 0x000a,
+       // Block 0x64, offset 0x1900
+       0x1900: 0x000a, 0x1901: 0x000a, 0x1902: 0x000a, 0x1903: 0x000a, 0x1904: 0x000a, 0x1905: 0x000a,
+       0x1906: 0x000a, 0x1907: 0x000a, 0x1908: 0x000a, 0x1909: 0x000a, 0x190a: 0x000a, 0x190b: 0x000a,
+       0x190c: 0x000a, 0x190d: 0x000a, 0x190e: 0x000a, 0x190f: 0x000a, 0x1910: 0x000a, 0x1911: 0x000a,
+       0x1912: 0x000a, 0x1913: 0x000a, 0x1914: 0x000a, 0x1915: 0x000a, 0x1916: 0x000a, 0x1917: 0x000a,
+       0x1918: 0x000a, 0x1919: 0x000a, 0x191a: 0x000a, 0x191b: 0x000a, 0x191c: 0x000a, 0x191d: 0x000a,
+       0x191e: 0x000a, 0x191f: 0x000a, 0x1920: 0x000a, 0x1921: 0x000a, 0x1922: 0x000a, 0x1923: 0x000a,
+       0x1924: 0x000a, 0x1925: 0x000a, 0x1926: 0x000a, 0x1927: 0x000a, 0x1928: 0x000a, 0x1929: 0x000a,
+       0x192a: 0x000a, 0x192b: 0x000a, 0x192c: 0x000a, 0x192d: 0x000a, 0x192e: 0x000a, 0x192f: 0x000a,
+       0x1930: 0x000a, 0x1931: 0x000a, 0x1932: 0x000a, 0x1933: 0x000a,
+       0x1936: 0x000a, 0x1937: 0x000a, 0x1938: 0x000a, 0x1939: 0x000a, 0x193a: 0x000a, 0x193b: 0x000a,
+       0x193c: 0x000a, 0x193d: 0x000a, 0x193e: 0x000a, 0x193f: 0x000a,
+       // Block 0x65, offset 0x1940
+       0x1940: 0x000a, 0x1941: 0x000a, 0x1942: 0x000a, 0x1943: 0x000a, 0x1944: 0x000a, 0x1945: 0x000a,
+       0x1946: 0x000a, 0x1947: 0x000a, 0x1948: 0x000a, 0x1949: 0x000a, 0x194a: 0x000a, 0x194b: 0x000a,
+       0x194c: 0x000a, 0x194d: 0x000a, 0x194e: 0x000a, 0x194f: 0x000a, 0x1950: 0x000a, 0x1951: 0x000a,
+       0x1952: 0x000a, 0x1953: 0x000a, 0x1954: 0x000a, 0x1955: 0x000a,
+       0x1958: 0x000a, 0x1959: 0x000a, 0x195a: 0x000a, 0x195b: 0x000a, 0x195c: 0x000a, 0x195d: 0x000a,
+       0x195e: 0x000a, 0x195f: 0x000a, 0x1960: 0x000a, 0x1961: 0x000a, 0x1962: 0x000a, 0x1963: 0x000a,
+       0x1964: 0x000a, 0x1965: 0x000a, 0x1966: 0x000a, 0x1967: 0x000a, 0x1968: 0x000a, 0x1969: 0x000a,
+       0x196a: 0x000a, 0x196b: 0x000a, 0x196c: 0x000a, 0x196d: 0x000a, 0x196e: 0x000a, 0x196f: 0x000a,
+       0x1970: 0x000a, 0x1971: 0x000a, 0x1972: 0x000a, 0x1973: 0x000a, 0x1974: 0x000a, 0x1975: 0x000a,
+       0x1976: 0x000a, 0x1977: 0x000a, 0x1978: 0x000a, 0x1979: 0x000a,
+       0x197d: 0x000a, 0x197e: 0x000a, 0x197f: 0x000a,
+       // Block 0x66, offset 0x1980
+       0x1980: 0x000a, 0x1981: 0x000a, 0x1982: 0x000a, 0x1983: 0x000a, 0x1984: 0x000a, 0x1985: 0x000a,
+       0x1986: 0x000a, 0x1987: 0x000a, 0x1988: 0x000a, 0x198a: 0x000a, 0x198b: 0x000a,
+       0x198c: 0x000a, 0x198d: 0x000a, 0x198e: 0x000a, 0x198f: 0x000a, 0x1990: 0x000a, 0x1991: 0x000a,
+       0x1992: 0x000a,
+       0x19ac: 0x000a, 0x19ad: 0x000a, 0x19ae: 0x000a, 0x19af: 0x000a,
+       // Block 0x67, offset 0x19c0
+       0x19e5: 0x000a, 0x19e6: 0x000a, 0x19e7: 0x000a, 0x19e8: 0x000a, 0x19e9: 0x000a,
+       0x19ea: 0x000a, 0x19ef: 0x000c,
+       0x19f0: 0x000c, 0x19f1: 0x000c,
+       0x19f9: 0x000a, 0x19fa: 0x000a, 0x19fb: 0x000a,
+       0x19fc: 0x000a, 0x19fd: 0x000a, 0x19fe: 0x000a, 0x19ff: 0x000a,
+       // Block 0x68, offset 0x1a00
+       0x1a3f: 0x000c,
+       // Block 0x69, offset 0x1a40
+       0x1a60: 0x000c, 0x1a61: 0x000c, 0x1a62: 0x000c, 0x1a63: 0x000c,
+       0x1a64: 0x000c, 0x1a65: 0x000c, 0x1a66: 0x000c, 0x1a67: 0x000c, 0x1a68: 0x000c, 0x1a69: 0x000c,
+       0x1a6a: 0x000c, 0x1a6b: 0x000c, 0x1a6c: 0x000c, 0x1a6d: 0x000c, 0x1a6e: 0x000c, 0x1a6f: 0x000c,
+       0x1a70: 0x000c, 0x1a71: 0x000c, 0x1a72: 0x000c, 0x1a73: 0x000c, 0x1a74: 0x000c, 0x1a75: 0x000c,
+       0x1a76: 0x000c, 0x1a77: 0x000c, 0x1a78: 0x000c, 0x1a79: 0x000c, 0x1a7a: 0x000c, 0x1a7b: 0x000c,
+       0x1a7c: 0x000c, 0x1a7d: 0x000c, 0x1a7e: 0x000c, 0x1a7f: 0x000c,
+       // Block 0x6a, offset 0x1a80
+       0x1a80: 0x000a, 0x1a81: 0x000a, 0x1a82: 0x000a, 0x1a83: 0x000a, 0x1a84: 0x000a, 0x1a85: 0x000a,
+       0x1a86: 0x000a, 0x1a87: 0x000a, 0x1a88: 0x000a, 0x1a89: 0x000a, 0x1a8a: 0x000a, 0x1a8b: 0x000a,
+       0x1a8c: 0x000a, 0x1a8d: 0x000a, 0x1a8e: 0x000a, 0x1a8f: 0x000a, 0x1a90: 0x000a, 0x1a91: 0x000a,
+       0x1a92: 0x000a, 0x1a93: 0x000a, 0x1a94: 0x000a, 0x1a95: 0x000a, 0x1a96: 0x000a, 0x1a97: 0x000a,
+       0x1a98: 0x000a, 0x1a99: 0x000a, 0x1a9a: 0x000a, 0x1a9b: 0x000a, 0x1a9c: 0x000a, 0x1a9d: 0x000a,
+       0x1a9e: 0x000a, 0x1a9f: 0x000a, 0x1aa0: 0x000a, 0x1aa1: 0x000a, 0x1aa2: 0x003a, 0x1aa3: 0x002a,
+       0x1aa4: 0x003a, 0x1aa5: 0x002a, 0x1aa6: 0x003a, 0x1aa7: 0x002a, 0x1aa8: 0x003a, 0x1aa9: 0x002a,
+       0x1aaa: 0x000a, 0x1aab: 0x000a, 0x1aac: 0x000a, 0x1aad: 0x000a, 0x1aae: 0x000a, 0x1aaf: 0x000a,
+       0x1ab0: 0x000a, 0x1ab1: 0x000a, 0x1ab2: 0x000a, 0x1ab3: 0x000a, 0x1ab4: 0x000a, 0x1ab5: 0x000a,
+       0x1ab6: 0x000a, 0x1ab7: 0x000a, 0x1ab8: 0x000a, 0x1ab9: 0x000a, 0x1aba: 0x000a, 0x1abb: 0x000a,
+       0x1abc: 0x000a, 0x1abd: 0x000a, 0x1abe: 0x000a, 0x1abf: 0x000a,
+       // Block 0x6b, offset 0x1ac0
+       0x1ac0: 0x000a, 0x1ac1: 0x000a, 0x1ac2: 0x000a, 0x1ac3: 0x000a, 0x1ac4: 0x000a, 0x1ac5: 0x000a,
+       0x1ac6: 0x000a, 0x1ac7: 0x000a, 0x1ac8: 0x000a, 0x1ac9: 0x000a,
+       // Block 0x6c, offset 0x1b00
+       0x1b00: 0x000a, 0x1b01: 0x000a, 0x1b02: 0x000a, 0x1b03: 0x000a, 0x1b04: 0x000a, 0x1b05: 0x000a,
+       0x1b06: 0x000a, 0x1b07: 0x000a, 0x1b08: 0x000a, 0x1b09: 0x000a, 0x1b0a: 0x000a, 0x1b0b: 0x000a,
+       0x1b0c: 0x000a, 0x1b0d: 0x000a, 0x1b0e: 0x000a, 0x1b0f: 0x000a, 0x1b10: 0x000a, 0x1b11: 0x000a,
+       0x1b12: 0x000a, 0x1b13: 0x000a, 0x1b14: 0x000a, 0x1b15: 0x000a, 0x1b16: 0x000a, 0x1b17: 0x000a,
+       0x1b18: 0x000a, 0x1b19: 0x000a, 0x1b1b: 0x000a, 0x1b1c: 0x000a, 0x1b1d: 0x000a,
+       0x1b1e: 0x000a, 0x1b1f: 0x000a, 0x1b20: 0x000a, 0x1b21: 0x000a, 0x1b22: 0x000a, 0x1b23: 0x000a,
+       0x1b24: 0x000a, 0x1b25: 0x000a, 0x1b26: 0x000a, 0x1b27: 0x000a, 0x1b28: 0x000a, 0x1b29: 0x000a,
+       0x1b2a: 0x000a, 0x1b2b: 0x000a, 0x1b2c: 0x000a, 0x1b2d: 0x000a, 0x1b2e: 0x000a, 0x1b2f: 0x000a,
+       0x1b30: 0x000a, 0x1b31: 0x000a, 0x1b32: 0x000a, 0x1b33: 0x000a, 0x1b34: 0x000a, 0x1b35: 0x000a,
+       0x1b36: 0x000a, 0x1b37: 0x000a, 0x1b38: 0x000a, 0x1b39: 0x000a, 0x1b3a: 0x000a, 0x1b3b: 0x000a,
+       0x1b3c: 0x000a, 0x1b3d: 0x000a, 0x1b3e: 0x000a, 0x1b3f: 0x000a,
+       // Block 0x6d, offset 0x1b40
+       0x1b40: 0x000a, 0x1b41: 0x000a, 0x1b42: 0x000a, 0x1b43: 0x000a, 0x1b44: 0x000a, 0x1b45: 0x000a,
+       0x1b46: 0x000a, 0x1b47: 0x000a, 0x1b48: 0x000a, 0x1b49: 0x000a, 0x1b4a: 0x000a, 0x1b4b: 0x000a,
+       0x1b4c: 0x000a, 0x1b4d: 0x000a, 0x1b4e: 0x000a, 0x1b4f: 0x000a, 0x1b50: 0x000a, 0x1b51: 0x000a,
+       0x1b52: 0x000a, 0x1b53: 0x000a, 0x1b54: 0x000a, 0x1b55: 0x000a, 0x1b56: 0x000a, 0x1b57: 0x000a,
+       0x1b58: 0x000a, 0x1b59: 0x000a, 0x1b5a: 0x000a, 0x1b5b: 0x000a, 0x1b5c: 0x000a, 0x1b5d: 0x000a,
+       0x1b5e: 0x000a, 0x1b5f: 0x000a, 0x1b60: 0x000a, 0x1b61: 0x000a, 0x1b62: 0x000a, 0x1b63: 0x000a,
+       0x1b64: 0x000a, 0x1b65: 0x000a, 0x1b66: 0x000a, 0x1b67: 0x000a, 0x1b68: 0x000a, 0x1b69: 0x000a,
+       0x1b6a: 0x000a, 0x1b6b: 0x000a, 0x1b6c: 0x000a, 0x1b6d: 0x000a, 0x1b6e: 0x000a, 0x1b6f: 0x000a,
+       0x1b70: 0x000a, 0x1b71: 0x000a, 0x1b72: 0x000a, 0x1b73: 0x000a,
+       // Block 0x6e, offset 0x1b80
+       0x1b80: 0x000a, 0x1b81: 0x000a, 0x1b82: 0x000a, 0x1b83: 0x000a, 0x1b84: 0x000a, 0x1b85: 0x000a,
+       0x1b86: 0x000a, 0x1b87: 0x000a, 0x1b88: 0x000a, 0x1b89: 0x000a, 0x1b8a: 0x000a, 0x1b8b: 0x000a,
+       0x1b8c: 0x000a, 0x1b8d: 0x000a, 0x1b8e: 0x000a, 0x1b8f: 0x000a, 0x1b90: 0x000a, 0x1b91: 0x000a,
+       0x1b92: 0x000a, 0x1b93: 0x000a, 0x1b94: 0x000a, 0x1b95: 0x000a,
+       0x1bb0: 0x000a, 0x1bb1: 0x000a, 0x1bb2: 0x000a, 0x1bb3: 0x000a, 0x1bb4: 0x000a, 0x1bb5: 0x000a,
+       0x1bb6: 0x000a, 0x1bb7: 0x000a, 0x1bb8: 0x000a, 0x1bb9: 0x000a, 0x1bba: 0x000a, 0x1bbb: 0x000a,
+       // Block 0x6f, offset 0x1bc0
+       0x1bc0: 0x0009, 0x1bc1: 0x000a, 0x1bc2: 0x000a, 0x1bc3: 0x000a, 0x1bc4: 0x000a,
+       0x1bc8: 0x003a, 0x1bc9: 0x002a, 0x1bca: 0x003a, 0x1bcb: 0x002a,
+       0x1bcc: 0x003a, 0x1bcd: 0x002a, 0x1bce: 0x003a, 0x1bcf: 0x002a, 0x1bd0: 0x003a, 0x1bd1: 0x002a,
+       0x1bd2: 0x000a, 0x1bd3: 0x000a, 0x1bd4: 0x003a, 0x1bd5: 0x002a, 0x1bd6: 0x003a, 0x1bd7: 0x002a,
+       0x1bd8: 0x003a, 0x1bd9: 0x002a, 0x1bda: 0x003a, 0x1bdb: 0x002a, 0x1bdc: 0x000a, 0x1bdd: 0x000a,
+       0x1bde: 0x000a, 0x1bdf: 0x000a, 0x1be0: 0x000a,
+       0x1bea: 0x000c, 0x1beb: 0x000c, 0x1bec: 0x000c, 0x1bed: 0x000c,
+       0x1bf0: 0x000a,
+       0x1bf6: 0x000a, 0x1bf7: 0x000a,
+       0x1bfd: 0x000a, 0x1bfe: 0x000a, 0x1bff: 0x000a,
+       // Block 0x70, offset 0x1c00
+       0x1c19: 0x000c, 0x1c1a: 0x000c, 0x1c1b: 0x000a, 0x1c1c: 0x000a,
+       0x1c20: 0x000a,
+       // Block 0x71, offset 0x1c40
+       0x1c7b: 0x000a,
+       // Block 0x72, offset 0x1c80
+       0x1c80: 0x000a, 0x1c81: 0x000a, 0x1c82: 0x000a, 0x1c83: 0x000a, 0x1c84: 0x000a, 0x1c85: 0x000a,
+       0x1c86: 0x000a, 0x1c87: 0x000a, 0x1c88: 0x000a, 0x1c89: 0x000a, 0x1c8a: 0x000a, 0x1c8b: 0x000a,
+       0x1c8c: 0x000a, 0x1c8d: 0x000a, 0x1c8e: 0x000a, 0x1c8f: 0x000a, 0x1c90: 0x000a, 0x1c91: 0x000a,
+       0x1c92: 0x000a, 0x1c93: 0x000a, 0x1c94: 0x000a, 0x1c95: 0x000a, 0x1c96: 0x000a, 0x1c97: 0x000a,
+       0x1c98: 0x000a, 0x1c99: 0x000a, 0x1c9a: 0x000a, 0x1c9b: 0x000a, 0x1c9c: 0x000a, 0x1c9d: 0x000a,
+       0x1c9e: 0x000a, 0x1c9f: 0x000a, 0x1ca0: 0x000a, 0x1ca1: 0x000a, 0x1ca2: 0x000a, 0x1ca3: 0x000a,
+       // Block 0x73, offset 0x1cc0
+       0x1cdd: 0x000a,
+       0x1cde: 0x000a,
+       // Block 0x74, offset 0x1d00
+       0x1d10: 0x000a, 0x1d11: 0x000a,
+       0x1d12: 0x000a, 0x1d13: 0x000a, 0x1d14: 0x000a, 0x1d15: 0x000a, 0x1d16: 0x000a, 0x1d17: 0x000a,
+       0x1d18: 0x000a, 0x1d19: 0x000a, 0x1d1a: 0x000a, 0x1d1b: 0x000a, 0x1d1c: 0x000a, 0x1d1d: 0x000a,
+       0x1d1e: 0x000a, 0x1d1f: 0x000a,
+       0x1d3c: 0x000a, 0x1d3d: 0x000a, 0x1d3e: 0x000a,
+       // Block 0x75, offset 0x1d40
+       0x1d71: 0x000a, 0x1d72: 0x000a, 0x1d73: 0x000a, 0x1d74: 0x000a, 0x1d75: 0x000a,
+       0x1d76: 0x000a, 0x1d77: 0x000a, 0x1d78: 0x000a, 0x1d79: 0x000a, 0x1d7a: 0x000a, 0x1d7b: 0x000a,
+       0x1d7c: 0x000a, 0x1d7d: 0x000a, 0x1d7e: 0x000a, 0x1d7f: 0x000a,
+       // Block 0x76, offset 0x1d80
+       0x1d8c: 0x000a, 0x1d8d: 0x000a, 0x1d8e: 0x000a, 0x1d8f: 0x000a,
+       // Block 0x77, offset 0x1dc0
+       0x1df7: 0x000a, 0x1df8: 0x000a, 0x1df9: 0x000a, 0x1dfa: 0x000a,
+       // Block 0x78, offset 0x1e00
+       0x1e1e: 0x000a, 0x1e1f: 0x000a,
+       0x1e3f: 0x000a,
+       // Block 0x79, offset 0x1e40
+       0x1e50: 0x000a, 0x1e51: 0x000a,
+       0x1e52: 0x000a, 0x1e53: 0x000a, 0x1e54: 0x000a, 0x1e55: 0x000a, 0x1e56: 0x000a, 0x1e57: 0x000a,
+       0x1e58: 0x000a, 0x1e59: 0x000a, 0x1e5a: 0x000a, 0x1e5b: 0x000a, 0x1e5c: 0x000a, 0x1e5d: 0x000a,
+       0x1e5e: 0x000a, 0x1e5f: 0x000a, 0x1e60: 0x000a, 0x1e61: 0x000a, 0x1e62: 0x000a, 0x1e63: 0x000a,
+       0x1e64: 0x000a, 0x1e65: 0x000a, 0x1e66: 0x000a, 0x1e67: 0x000a, 0x1e68: 0x000a, 0x1e69: 0x000a,
+       0x1e6a: 0x000a, 0x1e6b: 0x000a, 0x1e6c: 0x000a, 0x1e6d: 0x000a, 0x1e6e: 0x000a, 0x1e6f: 0x000a,
+       0x1e70: 0x000a, 0x1e71: 0x000a, 0x1e72: 0x000a, 0x1e73: 0x000a, 0x1e74: 0x000a, 0x1e75: 0x000a,
+       0x1e76: 0x000a, 0x1e77: 0x000a, 0x1e78: 0x000a, 0x1e79: 0x000a, 0x1e7a: 0x000a, 0x1e7b: 0x000a,
+       0x1e7c: 0x000a, 0x1e7d: 0x000a, 0x1e7e: 0x000a, 0x1e7f: 0x000a,
+       // Block 0x7a, offset 0x1e80
+       0x1e80: 0x000a, 0x1e81: 0x000a, 0x1e82: 0x000a, 0x1e83: 0x000a, 0x1e84: 0x000a, 0x1e85: 0x000a,
+       0x1e86: 0x000a,
+       // Block 0x7b, offset 0x1ec0
+       0x1ecd: 0x000a, 0x1ece: 0x000a, 0x1ecf: 0x000a,
+       // Block 0x7c, offset 0x1f00
+       0x1f2f: 0x000c,
+       0x1f30: 0x000c, 0x1f31: 0x000c, 0x1f32: 0x000c, 0x1f33: 0x000a, 0x1f34: 0x000c, 0x1f35: 0x000c,
+       0x1f36: 0x000c, 0x1f37: 0x000c, 0x1f38: 0x000c, 0x1f39: 0x000c, 0x1f3a: 0x000c, 0x1f3b: 0x000c,
+       0x1f3c: 0x000c, 0x1f3d: 0x000c, 0x1f3e: 0x000a, 0x1f3f: 0x000a,
+       // Block 0x7d, offset 0x1f40
+       0x1f5e: 0x000c, 0x1f5f: 0x000c,
+       // Block 0x7e, offset 0x1f80
+       0x1fb0: 0x000c, 0x1fb1: 0x000c,
+       // Block 0x7f, offset 0x1fc0
+       0x1fc0: 0x000a, 0x1fc1: 0x000a, 0x1fc2: 0x000a, 0x1fc3: 0x000a, 0x1fc4: 0x000a, 0x1fc5: 0x000a,
+       0x1fc6: 0x000a, 0x1fc7: 0x000a, 0x1fc8: 0x000a, 0x1fc9: 0x000a, 0x1fca: 0x000a, 0x1fcb: 0x000a,
+       0x1fcc: 0x000a, 0x1fcd: 0x000a, 0x1fce: 0x000a, 0x1fcf: 0x000a, 0x1fd0: 0x000a, 0x1fd1: 0x000a,
+       0x1fd2: 0x000a, 0x1fd3: 0x000a, 0x1fd4: 0x000a, 0x1fd5: 0x000a, 0x1fd6: 0x000a, 0x1fd7: 0x000a,
+       0x1fd8: 0x000a, 0x1fd9: 0x000a, 0x1fda: 0x000a, 0x1fdb: 0x000a, 0x1fdc: 0x000a, 0x1fdd: 0x000a,
+       0x1fde: 0x000a, 0x1fdf: 0x000a, 0x1fe0: 0x000a, 0x1fe1: 0x000a,
+       // Block 0x80, offset 0x2000
+       0x2008: 0x000a,
+       // Block 0x81, offset 0x2040
+       0x2042: 0x000c,
+       0x2046: 0x000c, 0x204b: 0x000c,
+       0x2065: 0x000c, 0x2066: 0x000c, 0x2068: 0x000a, 0x2069: 0x000a,
+       0x206a: 0x000a, 0x206b: 0x000a,
+       0x2078: 0x0004, 0x2079: 0x0004,
+       // Block 0x82, offset 0x2080
+       0x20b4: 0x000a, 0x20b5: 0x000a,
+       0x20b6: 0x000a, 0x20b7: 0x000a,
+       // Block 0x83, offset 0x20c0
+       0x20c4: 0x000c, 0x20c5: 0x000c,
+       0x20e0: 0x000c, 0x20e1: 0x000c, 0x20e2: 0x000c, 0x20e3: 0x000c,
+       0x20e4: 0x000c, 0x20e5: 0x000c, 0x20e6: 0x000c, 0x20e7: 0x000c, 0x20e8: 0x000c, 0x20e9: 0x000c,
+       0x20ea: 0x000c, 0x20eb: 0x000c, 0x20ec: 0x000c, 0x20ed: 0x000c, 0x20ee: 0x000c, 0x20ef: 0x000c,
+       0x20f0: 0x000c, 0x20f1: 0x000c,
+       // Block 0x84, offset 0x2100
+       0x2126: 0x000c, 0x2127: 0x000c, 0x2128: 0x000c, 0x2129: 0x000c,
+       0x212a: 0x000c, 0x212b: 0x000c, 0x212c: 0x000c, 0x212d: 0x000c,
+       // Block 0x85, offset 0x2140
+       0x2147: 0x000c, 0x2148: 0x000c, 0x2149: 0x000c, 0x214a: 0x000c, 0x214b: 0x000c,
+       0x214c: 0x000c, 0x214d: 0x000c, 0x214e: 0x000c, 0x214f: 0x000c, 0x2150: 0x000c, 0x2151: 0x000c,
+       // Block 0x86, offset 0x2180
+       0x2180: 0x000c, 0x2181: 0x000c, 0x2182: 0x000c,
+       0x21b3: 0x000c,
+       0x21b6: 0x000c, 0x21b7: 0x000c, 0x21b8: 0x000c, 0x21b9: 0x000c,
+       0x21bc: 0x000c,
+       // Block 0x87, offset 0x21c0
+       0x21e5: 0x000c,
+       // Block 0x88, offset 0x2200
+       0x2229: 0x000c,
+       0x222a: 0x000c, 0x222b: 0x000c, 0x222c: 0x000c, 0x222d: 0x000c, 0x222e: 0x000c,
+       0x2231: 0x000c, 0x2232: 0x000c, 0x2235: 0x000c,
+       0x2236: 0x000c,
+       // Block 0x89, offset 0x2240
+       0x2243: 0x000c,
+       0x224c: 0x000c,
+       0x227c: 0x000c,
+       // Block 0x8a, offset 0x2280
+       0x22b0: 0x000c, 0x22b2: 0x000c, 0x22b3: 0x000c, 0x22b4: 0x000c,
+       0x22b7: 0x000c, 0x22b8: 0x000c,
+       0x22be: 0x000c, 0x22bf: 0x000c,
+       // Block 0x8b, offset 0x22c0
+       0x22c1: 0x000c,
+       0x22ec: 0x000c, 0x22ed: 0x000c,
+       0x22f6: 0x000c,
+       // Block 0x8c, offset 0x2300
+       0x2325: 0x000c, 0x2328: 0x000c,
+       0x232d: 0x000c,
+       // Block 0x8d, offset 0x2340
+       0x235d: 0x0001,
+       0x235e: 0x000c, 0x235f: 0x0001, 0x2360: 0x0001, 0x2361: 0x0001, 0x2362: 0x0001, 0x2363: 0x0001,
+       0x2364: 0x0001, 0x2365: 0x0001, 0x2366: 0x0001, 0x2367: 0x0001, 0x2368: 0x0001, 0x2369: 0x0003,
+       0x236a: 0x0001, 0x236b: 0x0001, 0x236c: 0x0001, 0x236d: 0x0001, 0x236e: 0x0001, 0x236f: 0x0001,
+       0x2370: 0x0001, 0x2371: 0x0001, 0x2372: 0x0001, 0x2373: 0x0001, 0x2374: 0x0001, 0x2375: 0x0001,
+       0x2376: 0x0001, 0x2377: 0x0001, 0x2378: 0x0001, 0x2379: 0x0001, 0x237a: 0x0001, 0x237b: 0x0001,
+       0x237c: 0x0001, 0x237d: 0x0001, 0x237e: 0x0001, 0x237f: 0x0001,
+       // Block 0x8e, offset 0x2380
+       0x2380: 0x0001, 0x2381: 0x0001, 0x2382: 0x0001, 0x2383: 0x0001, 0x2384: 0x0001, 0x2385: 0x0001,
+       0x2386: 0x0001, 0x2387: 0x0001, 0x2388: 0x0001, 0x2389: 0x0001, 0x238a: 0x0001, 0x238b: 0x0001,
+       0x238c: 0x0001, 0x238d: 0x0001, 0x238e: 0x0001, 0x238f: 0x0001, 0x2390: 0x000d, 0x2391: 0x000d,
+       0x2392: 0x000d, 0x2393: 0x000d, 0x2394: 0x000d, 0x2395: 0x000d, 0x2396: 0x000d, 0x2397: 0x000d,
+       0x2398: 0x000d, 0x2399: 0x000d, 0x239a: 0x000d, 0x239b: 0x000d, 0x239c: 0x000d, 0x239d: 0x000d,
+       0x239e: 0x000d, 0x239f: 0x000d, 0x23a0: 0x000d, 0x23a1: 0x000d, 0x23a2: 0x000d, 0x23a3: 0x000d,
+       0x23a4: 0x000d, 0x23a5: 0x000d, 0x23a6: 0x000d, 0x23a7: 0x000d, 0x23a8: 0x000d, 0x23a9: 0x000d,
+       0x23aa: 0x000d, 0x23ab: 0x000d, 0x23ac: 0x000d, 0x23ad: 0x000d, 0x23ae: 0x000d, 0x23af: 0x000d,
+       0x23b0: 0x000d, 0x23b1: 0x000d, 0x23b2: 0x000d, 0x23b3: 0x000d, 0x23b4: 0x000d, 0x23b5: 0x000d,
+       0x23b6: 0x000d, 0x23b7: 0x000d, 0x23b8: 0x000d, 0x23b9: 0x000d, 0x23ba: 0x000d, 0x23bb: 0x000d,
+       0x23bc: 0x000d, 0x23bd: 0x000d, 0x23be: 0x000d, 0x23bf: 0x000d,
+       // Block 0x8f, offset 0x23c0
+       0x23c0: 0x000d, 0x23c1: 0x000d, 0x23c2: 0x000d, 0x23c3: 0x000d, 0x23c4: 0x000d, 0x23c5: 0x000d,
+       0x23c6: 0x000d, 0x23c7: 0x000d, 0x23c8: 0x000d, 0x23c9: 0x000d, 0x23ca: 0x000d, 0x23cb: 0x000d,
+       0x23cc: 0x000d, 0x23cd: 0x000d, 0x23ce: 0x000d, 0x23cf: 0x000d, 0x23d0: 0x000d, 0x23d1: 0x000d,
+       0x23d2: 0x000d, 0x23d3: 0x000d, 0x23d4: 0x000d, 0x23d5: 0x000d, 0x23d6: 0x000d, 0x23d7: 0x000d,
+       0x23d8: 0x000d, 0x23d9: 0x000d, 0x23da: 0x000d, 0x23db: 0x000d, 0x23dc: 0x000d, 0x23dd: 0x000d,
+       0x23de: 0x000d, 0x23df: 0x000d, 0x23e0: 0x000d, 0x23e1: 0x000d, 0x23e2: 0x000d, 0x23e3: 0x000d,
+       0x23e4: 0x000d, 0x23e5: 0x000d, 0x23e6: 0x000d, 0x23e7: 0x000d, 0x23e8: 0x000d, 0x23e9: 0x000d,
+       0x23ea: 0x000d, 0x23eb: 0x000d, 0x23ec: 0x000d, 0x23ed: 0x000d, 0x23ee: 0x000d, 0x23ef: 0x000d,
+       0x23f0: 0x000d, 0x23f1: 0x000d, 0x23f2: 0x000d, 0x23f3: 0x000d, 0x23f4: 0x000d, 0x23f5: 0x000d,
+       0x23f6: 0x000d, 0x23f7: 0x000d, 0x23f8: 0x000d, 0x23f9: 0x000d, 0x23fa: 0x000d, 0x23fb: 0x000d,
+       0x23fc: 0x000d, 0x23fd: 0x000d, 0x23fe: 0x000a, 0x23ff: 0x000a,
+       // Block 0x90, offset 0x2400
+       0x2400: 0x000d, 0x2401: 0x000d, 0x2402: 0x000d, 0x2403: 0x000d, 0x2404: 0x000d, 0x2405: 0x000d,
+       0x2406: 0x000d, 0x2407: 0x000d, 0x2408: 0x000d, 0x2409: 0x000d, 0x240a: 0x000d, 0x240b: 0x000d,
+       0x240c: 0x000d, 0x240d: 0x000d, 0x240e: 0x000d, 0x240f: 0x000d, 0x2410: 0x000b, 0x2411: 0x000b,
+       0x2412: 0x000b, 0x2413: 0x000b, 0x2414: 0x000b, 0x2415: 0x000b, 0x2416: 0x000b, 0x2417: 0x000b,
+       0x2418: 0x000b, 0x2419: 0x000b, 0x241a: 0x000b, 0x241b: 0x000b, 0x241c: 0x000b, 0x241d: 0x000b,
+       0x241e: 0x000b, 0x241f: 0x000b, 0x2420: 0x000b, 0x2421: 0x000b, 0x2422: 0x000b, 0x2423: 0x000b,
+       0x2424: 0x000b, 0x2425: 0x000b, 0x2426: 0x000b, 0x2427: 0x000b, 0x2428: 0x000b, 0x2429: 0x000b,
+       0x242a: 0x000b, 0x242b: 0x000b, 0x242c: 0x000b, 0x242d: 0x000b, 0x242e: 0x000b, 0x242f: 0x000b,
+       0x2430: 0x000d, 0x2431: 0x000d, 0x2432: 0x000d, 0x2433: 0x000d, 0x2434: 0x000d, 0x2435: 0x000d,
+       0x2436: 0x000d, 0x2437: 0x000d, 0x2438: 0x000d, 0x2439: 0x000d, 0x243a: 0x000d, 0x243b: 0x000d,
+       0x243c: 0x000d, 0x243d: 0x000a, 0x243e: 0x000d, 0x243f: 0x000d,
+       // Block 0x91, offset 0x2440
+       0x2440: 0x000c, 0x2441: 0x000c, 0x2442: 0x000c, 0x2443: 0x000c, 0x2444: 0x000c, 0x2445: 0x000c,
+       0x2446: 0x000c, 0x2447: 0x000c, 0x2448: 0x000c, 0x2449: 0x000c, 0x244a: 0x000c, 0x244b: 0x000c,
+       0x244c: 0x000c, 0x244d: 0x000c, 0x244e: 0x000c, 0x244f: 0x000c, 0x2450: 0x000a, 0x2451: 0x000a,
+       0x2452: 0x000a, 0x2453: 0x000a, 0x2454: 0x000a, 0x2455: 0x000a, 0x2456: 0x000a, 0x2457: 0x000a,
+       0x2458: 0x000a, 0x2459: 0x000a,
+       0x2460: 0x000c, 0x2461: 0x000c, 0x2462: 0x000c, 0x2463: 0x000c,
+       0x2464: 0x000c, 0x2465: 0x000c, 0x2466: 0x000c, 0x2467: 0x000c, 0x2468: 0x000c, 0x2469: 0x000c,
+       0x246a: 0x000c, 0x246b: 0x000c, 0x246c: 0x000c, 0x246d: 0x000c, 0x246e: 0x000c, 0x246f: 0x000c,
+       0x2470: 0x000a, 0x2471: 0x000a, 0x2472: 0x000a, 0x2473: 0x000a, 0x2474: 0x000a, 0x2475: 0x000a,
+       0x2476: 0x000a, 0x2477: 0x000a, 0x2478: 0x000a, 0x2479: 0x000a, 0x247a: 0x000a, 0x247b: 0x000a,
+       0x247c: 0x000a, 0x247d: 0x000a, 0x247e: 0x000a, 0x247f: 0x000a,
+       // Block 0x92, offset 0x2480
+       0x2480: 0x000a, 0x2481: 0x000a, 0x2482: 0x000a, 0x2483: 0x000a, 0x2484: 0x000a, 0x2485: 0x000a,
+       0x2486: 0x000a, 0x2487: 0x000a, 0x2488: 0x000a, 0x2489: 0x000a, 0x248a: 0x000a, 0x248b: 0x000a,
+       0x248c: 0x000a, 0x248d: 0x000a, 0x248e: 0x000a, 0x248f: 0x000a, 0x2490: 0x0006, 0x2491: 0x000a,
+       0x2492: 0x0006, 0x2494: 0x000a, 0x2495: 0x0006, 0x2496: 0x000a, 0x2497: 0x000a,
+       0x2498: 0x000a, 0x2499: 0x009a, 0x249a: 0x008a, 0x249b: 0x007a, 0x249c: 0x006a, 0x249d: 0x009a,
+       0x249e: 0x008a, 0x249f: 0x0004, 0x24a0: 0x000a, 0x24a1: 0x000a, 0x24a2: 0x0003, 0x24a3: 0x0003,
+       0x24a4: 0x000a, 0x24a5: 0x000a, 0x24a6: 0x000a, 0x24a8: 0x000a, 0x24a9: 0x0004,
+       0x24aa: 0x0004, 0x24ab: 0x000a,
+       0x24b0: 0x000d, 0x24b1: 0x000d, 0x24b2: 0x000d, 0x24b3: 0x000d, 0x24b4: 0x000d, 0x24b5: 0x000d,
+       0x24b6: 0x000d, 0x24b7: 0x000d, 0x24b8: 0x000d, 0x24b9: 0x000d, 0x24ba: 0x000d, 0x24bb: 0x000d,
+       0x24bc: 0x000d, 0x24bd: 0x000d, 0x24be: 0x000d, 0x24bf: 0x000d,
+       // Block 0x93, offset 0x24c0
+       0x24c0: 0x000d, 0x24c1: 0x000d, 0x24c2: 0x000d, 0x24c3: 0x000d, 0x24c4: 0x000d, 0x24c5: 0x000d,
+       0x24c6: 0x000d, 0x24c7: 0x000d, 0x24c8: 0x000d, 0x24c9: 0x000d, 0x24ca: 0x000d, 0x24cb: 0x000d,
+       0x24cc: 0x000d, 0x24cd: 0x000d, 0x24ce: 0x000d, 0x24cf: 0x000d, 0x24d0: 0x000d, 0x24d1: 0x000d,
+       0x24d2: 0x000d, 0x24d3: 0x000d, 0x24d4: 0x000d, 0x24d5: 0x000d, 0x24d6: 0x000d, 0x24d7: 0x000d,
+       0x24d8: 0x000d, 0x24d9: 0x000d, 0x24da: 0x000d, 0x24db: 0x000d, 0x24dc: 0x000d, 0x24dd: 0x000d,
+       0x24de: 0x000d, 0x24df: 0x000d, 0x24e0: 0x000d, 0x24e1: 0x000d, 0x24e2: 0x000d, 0x24e3: 0x000d,
+       0x24e4: 0x000d, 0x24e5: 0x000d, 0x24e6: 0x000d, 0x24e7: 0x000d, 0x24e8: 0x000d, 0x24e9: 0x000d,
+       0x24ea: 0x000d, 0x24eb: 0x000d, 0x24ec: 0x000d, 0x24ed: 0x000d, 0x24ee: 0x000d, 0x24ef: 0x000d,
+       0x24f0: 0x000d, 0x24f1: 0x000d, 0x24f2: 0x000d, 0x24f3: 0x000d, 0x24f4: 0x000d, 0x24f5: 0x000d,
+       0x24f6: 0x000d, 0x24f7: 0x000d, 0x24f8: 0x000d, 0x24f9: 0x000d, 0x24fa: 0x000d, 0x24fb: 0x000d,
+       0x24fc: 0x000d, 0x24fd: 0x000d, 0x24fe: 0x000d, 0x24ff: 0x000b,
+       // Block 0x94, offset 0x2500
+       0x2501: 0x000a, 0x2502: 0x000a, 0x2503: 0x0004, 0x2504: 0x0004, 0x2505: 0x0004,
+       0x2506: 0x000a, 0x2507: 0x000a, 0x2508: 0x003a, 0x2509: 0x002a, 0x250a: 0x000a, 0x250b: 0x0003,
+       0x250c: 0x0006, 0x250d: 0x0003, 0x250e: 0x0006, 0x250f: 0x0006, 0x2510: 0x0002, 0x2511: 0x0002,
+       0x2512: 0x0002, 0x2513: 0x0002, 0x2514: 0x0002, 0x2515: 0x0002, 0x2516: 0x0002, 0x2517: 0x0002,
+       0x2518: 0x0002, 0x2519: 0x0002, 0x251a: 0x0006, 0x251b: 0x000a, 0x251c: 0x000a, 0x251d: 0x000a,
+       0x251e: 0x000a, 0x251f: 0x000a, 0x2520: 0x000a,
+       0x253b: 0x005a,
+       0x253c: 0x000a, 0x253d: 0x004a, 0x253e: 0x000a, 0x253f: 0x000a,
+       // Block 0x95, offset 0x2540
+       0x2540: 0x000a,
+       0x255b: 0x005a, 0x255c: 0x000a, 0x255d: 0x004a,
+       0x255e: 0x000a, 0x255f: 0x00fa, 0x2560: 0x00ea, 0x2561: 0x000a, 0x2562: 0x003a, 0x2563: 0x002a,
+       0x2564: 0x000a, 0x2565: 0x000a,
+       // Block 0x96, offset 0x2580
+       0x25a0: 0x0004, 0x25a1: 0x0004, 0x25a2: 0x000a, 0x25a3: 0x000a,
+       0x25a4: 0x000a, 0x25a5: 0x0004, 0x25a6: 0x0004, 0x25a8: 0x000a, 0x25a9: 0x000a,
+       0x25aa: 0x000a, 0x25ab: 0x000a, 0x25ac: 0x000a, 0x25ad: 0x000a, 0x25ae: 0x000a,
+       0x25b0: 0x000b, 0x25b1: 0x000b, 0x25b2: 0x000b, 0x25b3: 0x000b, 0x25b4: 0x000b, 0x25b5: 0x000b,
+       0x25b6: 0x000b, 0x25b7: 0x000b, 0x25b8: 0x000b, 0x25b9: 0x000a, 0x25ba: 0x000a, 0x25bb: 0x000a,
+       0x25bc: 0x000a, 0x25bd: 0x000a, 0x25be: 0x000b, 0x25bf: 0x000b,
+       // Block 0x97, offset 0x25c0
+       0x25c1: 0x000a,
+       // Block 0x98, offset 0x2600
+       0x2600: 0x000a, 0x2601: 0x000a, 0x2602: 0x000a, 0x2603: 0x000a, 0x2604: 0x000a, 0x2605: 0x000a,
+       0x2606: 0x000a, 0x2607: 0x000a, 0x2608: 0x000a, 0x2609: 0x000a, 0x260a: 0x000a, 0x260b: 0x000a,
+       0x260c: 0x000a, 0x2610: 0x000a, 0x2611: 0x000a,
+       0x2612: 0x000a, 0x2613: 0x000a, 0x2614: 0x000a, 0x2615: 0x000a, 0x2616: 0x000a, 0x2617: 0x000a,
+       0x2618: 0x000a, 0x2619: 0x000a, 0x261a: 0x000a, 0x261b: 0x000a,
+       0x2620: 0x000a,
+       // Block 0x99, offset 0x2640
+       0x267d: 0x000c,
+       // Block 0x9a, offset 0x2680
+       0x26a0: 0x000c, 0x26a1: 0x0002, 0x26a2: 0x0002, 0x26a3: 0x0002,
+       0x26a4: 0x0002, 0x26a5: 0x0002, 0x26a6: 0x0002, 0x26a7: 0x0002, 0x26a8: 0x0002, 0x26a9: 0x0002,
+       0x26aa: 0x0002, 0x26ab: 0x0002, 0x26ac: 0x0002, 0x26ad: 0x0002, 0x26ae: 0x0002, 0x26af: 0x0002,
+       0x26b0: 0x0002, 0x26b1: 0x0002, 0x26b2: 0x0002, 0x26b3: 0x0002, 0x26b4: 0x0002, 0x26b5: 0x0002,
+       0x26b6: 0x0002, 0x26b7: 0x0002, 0x26b8: 0x0002, 0x26b9: 0x0002, 0x26ba: 0x0002, 0x26bb: 0x0002,
+       // Block 0x9b, offset 0x26c0
+       0x26f6: 0x000c, 0x26f7: 0x000c, 0x26f8: 0x000c, 0x26f9: 0x000c, 0x26fa: 0x000c,
+       // Block 0x9c, offset 0x2700
+       0x2700: 0x0001, 0x2701: 0x0001, 0x2702: 0x0001, 0x2703: 0x0001, 0x2704: 0x0001, 0x2705: 0x0001,
+       0x2706: 0x0001, 0x2707: 0x0001, 0x2708: 0x0001, 0x2709: 0x0001, 0x270a: 0x0001, 0x270b: 0x0001,
+       0x270c: 0x0001, 0x270d: 0x0001, 0x270e: 0x0001, 0x270f: 0x0001, 0x2710: 0x0001, 0x2711: 0x0001,
+       0x2712: 0x0001, 0x2713: 0x0001, 0x2714: 0x0001, 0x2715: 0x0001, 0x2716: 0x0001, 0x2717: 0x0001,
+       0x2718: 0x0001, 0x2719: 0x0001, 0x271a: 0x0001, 0x271b: 0x0001, 0x271c: 0x0001, 0x271d: 0x0001,
+       0x271e: 0x0001, 0x271f: 0x0001, 0x2720: 0x0001, 0x2721: 0x0001, 0x2722: 0x0001, 0x2723: 0x0001,
+       0x2724: 0x0001, 0x2725: 0x0001, 0x2726: 0x0001, 0x2727: 0x0001, 0x2728: 0x0001, 0x2729: 0x0001,
+       0x272a: 0x0001, 0x272b: 0x0001, 0x272c: 0x0001, 0x272d: 0x0001, 0x272e: 0x0001, 0x272f: 0x0001,
+       0x2730: 0x0001, 0x2731: 0x0001, 0x2732: 0x0001, 0x2733: 0x0001, 0x2734: 0x0001, 0x2735: 0x0001,
+       0x2736: 0x0001, 0x2737: 0x0001, 0x2738: 0x0001, 0x2739: 0x0001, 0x273a: 0x0001, 0x273b: 0x0001,
+       0x273c: 0x0001, 0x273d: 0x0001, 0x273e: 0x0001, 0x273f: 0x0001,
+       // Block 0x9d, offset 0x2740
+       0x2740: 0x0001, 0x2741: 0x0001, 0x2742: 0x0001, 0x2743: 0x0001, 0x2744: 0x0001, 0x2745: 0x0001,
+       0x2746: 0x0001, 0x2747: 0x0001, 0x2748: 0x0001, 0x2749: 0x0001, 0x274a: 0x0001, 0x274b: 0x0001,
+       0x274c: 0x0001, 0x274d: 0x0001, 0x274e: 0x0001, 0x274f: 0x0001, 0x2750: 0x0001, 0x2751: 0x0001,
+       0x2752: 0x0001, 0x2753: 0x0001, 0x2754: 0x0001, 0x2755: 0x0001, 0x2756: 0x0001, 0x2757: 0x0001,
+       0x2758: 0x0001, 0x2759: 0x0001, 0x275a: 0x0001, 0x275b: 0x0001, 0x275c: 0x0001, 0x275d: 0x0001,
+       0x275e: 0x0001, 0x275f: 0x000a, 0x2760: 0x0001, 0x2761: 0x0001, 0x2762: 0x0001, 0x2763: 0x0001,
+       0x2764: 0x0001, 0x2765: 0x0001, 0x2766: 0x0001, 0x2767: 0x0001, 0x2768: 0x0001, 0x2769: 0x0001,
+       0x276a: 0x0001, 0x276b: 0x0001, 0x276c: 0x0001, 0x276d: 0x0001, 0x276e: 0x0001, 0x276f: 0x0001,
+       0x2770: 0x0001, 0x2771: 0x0001, 0x2772: 0x0001, 0x2773: 0x0001, 0x2774: 0x0001, 0x2775: 0x0001,
+       0x2776: 0x0001, 0x2777: 0x0001, 0x2778: 0x0001, 0x2779: 0x0001, 0x277a: 0x0001, 0x277b: 0x0001,
+       0x277c: 0x0001, 0x277d: 0x0001, 0x277e: 0x0001, 0x277f: 0x0001,
+       // Block 0x9e, offset 0x2780
+       0x2780: 0x0001, 0x2781: 0x000c, 0x2782: 0x000c, 0x2783: 0x000c, 0x2784: 0x0001, 0x2785: 0x000c,
+       0x2786: 0x000c, 0x2787: 0x0001, 0x2788: 0x0001, 0x2789: 0x0001, 0x278a: 0x0001, 0x278b: 0x0001,
+       0x278c: 0x000c, 0x278d: 0x000c, 0x278e: 0x000c, 0x278f: 0x000c, 0x2790: 0x0001, 0x2791: 0x0001,
+       0x2792: 0x0001, 0x2793: 0x0001, 0x2794: 0x0001, 0x2795: 0x0001, 0x2796: 0x0001, 0x2797: 0x0001,
+       0x2798: 0x0001, 0x2799: 0x0001, 0x279a: 0x0001, 0x279b: 0x0001, 0x279c: 0x0001, 0x279d: 0x0001,
+       0x279e: 0x0001, 0x279f: 0x0001, 0x27a0: 0x0001, 0x27a1: 0x0001, 0x27a2: 0x0001, 0x27a3: 0x0001,
+       0x27a4: 0x0001, 0x27a5: 0x0001, 0x27a6: 0x0001, 0x27a7: 0x0001, 0x27a8: 0x0001, 0x27a9: 0x0001,
+       0x27aa: 0x0001, 0x27ab: 0x0001, 0x27ac: 0x0001, 0x27ad: 0x0001, 0x27ae: 0x0001, 0x27af: 0x0001,
+       0x27b0: 0x0001, 0x27b1: 0x0001, 0x27b2: 0x0001, 0x27b3: 0x0001, 0x27b4: 0x0001, 0x27b5: 0x0001,
+       0x27b6: 0x0001, 0x27b7: 0x0001, 0x27b8: 0x000c, 0x27b9: 0x000c, 0x27ba: 0x000c, 0x27bb: 0x0001,
+       0x27bc: 0x0001, 0x27bd: 0x0001, 0x27be: 0x0001, 0x27bf: 0x000c,
+       // Block 0x9f, offset 0x27c0
+       0x27c0: 0x0001, 0x27c1: 0x0001, 0x27c2: 0x0001, 0x27c3: 0x0001, 0x27c4: 0x0001, 0x27c5: 0x0001,
+       0x27c6: 0x0001, 0x27c7: 0x0001, 0x27c8: 0x0001, 0x27c9: 0x0001, 0x27ca: 0x0001, 0x27cb: 0x0001,
+       0x27cc: 0x0001, 0x27cd: 0x0001, 0x27ce: 0x0001, 0x27cf: 0x0001, 0x27d0: 0x0001, 0x27d1: 0x0001,
+       0x27d2: 0x0001, 0x27d3: 0x0001, 0x27d4: 0x0001, 0x27d5: 0x0001, 0x27d6: 0x0001, 0x27d7: 0x0001,
+       0x27d8: 0x0001, 0x27d9: 0x0001, 0x27da: 0x0001, 0x27db: 0x0001, 0x27dc: 0x0001, 0x27dd: 0x0001,
+       0x27de: 0x0001, 0x27df: 0x0001, 0x27e0: 0x0001, 0x27e1: 0x0001, 0x27e2: 0x0001, 0x27e3: 0x0001,
+       0x27e4: 0x0001, 0x27e5: 0x000c, 0x27e6: 0x000c, 0x27e7: 0x0001, 0x27e8: 0x0001, 0x27e9: 0x0001,
+       0x27ea: 0x0001, 0x27eb: 0x0001, 0x27ec: 0x0001, 0x27ed: 0x0001, 0x27ee: 0x0001, 0x27ef: 0x0001,
+       0x27f0: 0x0001, 0x27f1: 0x0001, 0x27f2: 0x0001, 0x27f3: 0x0001, 0x27f4: 0x0001, 0x27f5: 0x0001,
+       0x27f6: 0x0001, 0x27f7: 0x0001, 0x27f8: 0x0001, 0x27f9: 0x0001, 0x27fa: 0x0001, 0x27fb: 0x0001,
+       0x27fc: 0x0001, 0x27fd: 0x0001, 0x27fe: 0x0001, 0x27ff: 0x0001,
+       // Block 0xa0, offset 0x2800
+       0x2800: 0x0001, 0x2801: 0x0001, 0x2802: 0x0001, 0x2803: 0x0001, 0x2804: 0x0001, 0x2805: 0x0001,
+       0x2806: 0x0001, 0x2807: 0x0001, 0x2808: 0x0001, 0x2809: 0x0001, 0x280a: 0x0001, 0x280b: 0x0001,
+       0x280c: 0x0001, 0x280d: 0x0001, 0x280e: 0x0001, 0x280f: 0x0001, 0x2810: 0x0001, 0x2811: 0x0001,
+       0x2812: 0x0001, 0x2813: 0x0001, 0x2814: 0x0001, 0x2815: 0x0001, 0x2816: 0x0001, 0x2817: 0x0001,
+       0x2818: 0x0001, 0x2819: 0x0001, 0x281a: 0x0001, 0x281b: 0x0001, 0x281c: 0x0001, 0x281d: 0x0001,
+       0x281e: 0x0001, 0x281f: 0x0001, 0x2820: 0x0001, 0x2821: 0x0001, 0x2822: 0x0001, 0x2823: 0x0001,
+       0x2824: 0x0001, 0x2825: 0x0001, 0x2826: 0x0001, 0x2827: 0x0001, 0x2828: 0x0001, 0x2829: 0x0001,
+       0x282a: 0x0001, 0x282b: 0x0001, 0x282c: 0x0001, 0x282d: 0x0001, 0x282e: 0x0001, 0x282f: 0x0001,
+       0x2830: 0x0001, 0x2831: 0x0001, 0x2832: 0x0001, 0x2833: 0x0001, 0x2834: 0x0001, 0x2835: 0x0001,
+       0x2836: 0x0001, 0x2837: 0x0001, 0x2838: 0x0001, 0x2839: 0x000a, 0x283a: 0x000a, 0x283b: 0x000a,
+       0x283c: 0x000a, 0x283d: 0x000a, 0x283e: 0x000a, 0x283f: 0x000a,
+       // Block 0xa1, offset 0x2840
+       0x2840: 0x0001, 0x2841: 0x0001, 0x2842: 0x0001, 0x2843: 0x0001, 0x2844: 0x0001, 0x2845: 0x0001,
+       0x2846: 0x0001, 0x2847: 0x0001, 0x2848: 0x0001, 0x2849: 0x0001, 0x284a: 0x0001, 0x284b: 0x0001,
+       0x284c: 0x0001, 0x284d: 0x0001, 0x284e: 0x0001, 0x284f: 0x0001, 0x2850: 0x0001, 0x2851: 0x0001,
+       0x2852: 0x0001, 0x2853: 0x0001, 0x2854: 0x0001, 0x2855: 0x0001, 0x2856: 0x0001, 0x2857: 0x0001,
+       0x2858: 0x0001, 0x2859: 0x0001, 0x285a: 0x0001, 0x285b: 0x0001, 0x285c: 0x0001, 0x285d: 0x0001,
+       0x285e: 0x0001, 0x285f: 0x0001, 0x2860: 0x0005, 0x2861: 0x0005, 0x2862: 0x0005, 0x2863: 0x0005,
+       0x2864: 0x0005, 0x2865: 0x0005, 0x2866: 0x0005, 0x2867: 0x0005, 0x2868: 0x0005, 0x2869: 0x0005,
+       0x286a: 0x0005, 0x286b: 0x0005, 0x286c: 0x0005, 0x286d: 0x0005, 0x286e: 0x0005, 0x286f: 0x0005,
+       0x2870: 0x0005, 0x2871: 0x0005, 0x2872: 0x0005, 0x2873: 0x0005, 0x2874: 0x0005, 0x2875: 0x0005,
+       0x2876: 0x0005, 0x2877: 0x0005, 0x2878: 0x0005, 0x2879: 0x0005, 0x287a: 0x0005, 0x287b: 0x0005,
+       0x287c: 0x0005, 0x287d: 0x0005, 0x287e: 0x0005, 0x287f: 0x0001,
+       // Block 0xa2, offset 0x2880
+       0x2881: 0x000c,
+       0x28b8: 0x000c, 0x28b9: 0x000c, 0x28ba: 0x000c, 0x28bb: 0x000c,
+       0x28bc: 0x000c, 0x28bd: 0x000c, 0x28be: 0x000c, 0x28bf: 0x000c,
+       // Block 0xa3, offset 0x28c0
+       0x28c0: 0x000c, 0x28c1: 0x000c, 0x28c2: 0x000c, 0x28c3: 0x000c, 0x28c4: 0x000c, 0x28c5: 0x000c,
+       0x28c6: 0x000c,
+       0x28d2: 0x000a, 0x28d3: 0x000a, 0x28d4: 0x000a, 0x28d5: 0x000a, 0x28d6: 0x000a, 0x28d7: 0x000a,
+       0x28d8: 0x000a, 0x28d9: 0x000a, 0x28da: 0x000a, 0x28db: 0x000a, 0x28dc: 0x000a, 0x28dd: 0x000a,
+       0x28de: 0x000a, 0x28df: 0x000a, 0x28e0: 0x000a, 0x28e1: 0x000a, 0x28e2: 0x000a, 0x28e3: 0x000a,
+       0x28e4: 0x000a, 0x28e5: 0x000a,
+       0x28ff: 0x000c,
+       // Block 0xa4, offset 0x2900
+       0x2900: 0x000c, 0x2901: 0x000c,
+       0x2933: 0x000c, 0x2934: 0x000c, 0x2935: 0x000c,
+       0x2936: 0x000c, 0x2939: 0x000c, 0x293a: 0x000c,
+       // Block 0xa5, offset 0x2940
+       0x2940: 0x000c, 0x2941: 0x000c, 0x2942: 0x000c,
+       0x2967: 0x000c, 0x2968: 0x000c, 0x2969: 0x000c,
+       0x296a: 0x000c, 0x296b: 0x000c, 0x296d: 0x000c, 0x296e: 0x000c, 0x296f: 0x000c,
+       0x2970: 0x000c, 0x2971: 0x000c, 0x2972: 0x000c, 0x2973: 0x000c, 0x2974: 0x000c,
+       // Block 0xa6, offset 0x2980
+       0x29b3: 0x000c,
+       // Block 0xa7, offset 0x29c0
+       0x29c0: 0x000c, 0x29c1: 0x000c,
+       0x29f6: 0x000c, 0x29f7: 0x000c, 0x29f8: 0x000c, 0x29f9: 0x000c, 0x29fa: 0x000c, 0x29fb: 0x000c,
+       0x29fc: 0x000c, 0x29fd: 0x000c, 0x29fe: 0x000c,
+       // Block 0xa8, offset 0x2a00
+       0x2a0a: 0x000c, 0x2a0b: 0x000c,
+       0x2a0c: 0x000c,
+       // Block 0xa9, offset 0x2a40
+       0x2a6f: 0x000c,
+       0x2a70: 0x000c, 0x2a71: 0x000c, 0x2a74: 0x000c,
+       0x2a76: 0x000c, 0x2a77: 0x000c,
+       0x2a7e: 0x000c,
+       // Block 0xaa, offset 0x2a80
+       0x2a9f: 0x000c, 0x2aa3: 0x000c,
+       0x2aa4: 0x000c, 0x2aa5: 0x000c, 0x2aa6: 0x000c, 0x2aa7: 0x000c, 0x2aa8: 0x000c, 0x2aa9: 0x000c,
+       0x2aaa: 0x000c,
+       // Block 0xab, offset 0x2ac0
+       0x2ac0: 0x000c, 0x2ac1: 0x000c,
+       0x2afc: 0x000c,
+       // Block 0xac, offset 0x2b00
+       0x2b00: 0x000c,
+       0x2b26: 0x000c, 0x2b27: 0x000c, 0x2b28: 0x000c, 0x2b29: 0x000c,
+       0x2b2a: 0x000c, 0x2b2b: 0x000c, 0x2b2c: 0x000c,
+       0x2b30: 0x000c, 0x2b31: 0x000c, 0x2b32: 0x000c, 0x2b33: 0x000c, 0x2b34: 0x000c,
+       // Block 0xad, offset 0x2b40
+       0x2b78: 0x000c, 0x2b79: 0x000c, 0x2b7a: 0x000c, 0x2b7b: 0x000c,
+       0x2b7c: 0x000c, 0x2b7d: 0x000c, 0x2b7e: 0x000c, 0x2b7f: 0x000c,
+       // Block 0xae, offset 0x2b80
+       0x2b82: 0x000c, 0x2b83: 0x000c, 0x2b84: 0x000c,
+       0x2b86: 0x000c,
+       // Block 0xaf, offset 0x2bc0
+       0x2bf3: 0x000c, 0x2bf4: 0x000c, 0x2bf5: 0x000c,
+       0x2bf6: 0x000c, 0x2bf7: 0x000c, 0x2bf8: 0x000c, 0x2bfa: 0x000c,
+       0x2bff: 0x000c,
+       // Block 0xb0, offset 0x2c00
+       0x2c00: 0x000c, 0x2c02: 0x000c, 0x2c03: 0x000c,
+       // Block 0xb1, offset 0x2c40
+       0x2c72: 0x000c, 0x2c73: 0x000c, 0x2c74: 0x000c, 0x2c75: 0x000c,
+       0x2c7c: 0x000c, 0x2c7d: 0x000c, 0x2c7f: 0x000c,
+       // Block 0xb2, offset 0x2c80
+       0x2c80: 0x000c,
+       0x2c9c: 0x000c, 0x2c9d: 0x000c,
+       // Block 0xb3, offset 0x2cc0
+       0x2cf3: 0x000c, 0x2cf4: 0x000c, 0x2cf5: 0x000c,
+       0x2cf6: 0x000c, 0x2cf7: 0x000c, 0x2cf8: 0x000c, 0x2cf9: 0x000c, 0x2cfa: 0x000c,
+       0x2cfd: 0x000c, 0x2cff: 0x000c,
+       // Block 0xb4, offset 0x2d00
+       0x2d00: 0x000c,
+       0x2d20: 0x000a, 0x2d21: 0x000a, 0x2d22: 0x000a, 0x2d23: 0x000a,
+       0x2d24: 0x000a, 0x2d25: 0x000a, 0x2d26: 0x000a, 0x2d27: 0x000a, 0x2d28: 0x000a, 0x2d29: 0x000a,
+       0x2d2a: 0x000a, 0x2d2b: 0x000a, 0x2d2c: 0x000a,
+       // Block 0xb5, offset 0x2d40
+       0x2d6b: 0x000c, 0x2d6d: 0x000c,
+       0x2d70: 0x000c, 0x2d71: 0x000c, 0x2d72: 0x000c, 0x2d73: 0x000c, 0x2d74: 0x000c, 0x2d75: 0x000c,
+       0x2d77: 0x000c,
+       // Block 0xb6, offset 0x2d80
+       0x2d9d: 0x000c,
+       0x2d9e: 0x000c, 0x2d9f: 0x000c, 0x2da2: 0x000c, 0x2da3: 0x000c,
+       0x2da4: 0x000c, 0x2da5: 0x000c, 0x2da7: 0x000c, 0x2da8: 0x000c, 0x2da9: 0x000c,
+       0x2daa: 0x000c, 0x2dab: 0x000c,
+       // Block 0xb7, offset 0x2dc0
+       0x2dc1: 0x000c, 0x2dc2: 0x000c, 0x2dc3: 0x000c, 0x2dc4: 0x000c, 0x2dc5: 0x000c,
+       0x2dc6: 0x000c, 0x2dc9: 0x000c, 0x2dca: 0x000c,
+       0x2df3: 0x000c, 0x2df4: 0x000c, 0x2df5: 0x000c,
+       0x2df6: 0x000c, 0x2df7: 0x000c, 0x2df8: 0x000c, 0x2dfb: 0x000c,
+       0x2dfc: 0x000c, 0x2dfd: 0x000c, 0x2dfe: 0x000c,
+       // Block 0xb8, offset 0x2e00
+       0x2e07: 0x000c,
+       0x2e11: 0x000c,
+       0x2e12: 0x000c, 0x2e13: 0x000c, 0x2e14: 0x000c, 0x2e15: 0x000c, 0x2e16: 0x000c,
+       0x2e19: 0x000c, 0x2e1a: 0x000c, 0x2e1b: 0x000c,
+       // Block 0xb9, offset 0x2e40
+       0x2e4a: 0x000c, 0x2e4b: 0x000c,
+       0x2e4c: 0x000c, 0x2e4d: 0x000c, 0x2e4e: 0x000c, 0x2e4f: 0x000c, 0x2e50: 0x000c, 0x2e51: 0x000c,
+       0x2e52: 0x000c, 0x2e53: 0x000c, 0x2e54: 0x000c, 0x2e55: 0x000c, 0x2e56: 0x000c,
+       0x2e58: 0x000c, 0x2e59: 0x000c,
+       // Block 0xba, offset 0x2e80
+       0x2eb0: 0x000c, 0x2eb1: 0x000c, 0x2eb2: 0x000c, 0x2eb3: 0x000c, 0x2eb4: 0x000c, 0x2eb5: 0x000c,
+       0x2eb6: 0x000c, 0x2eb8: 0x000c, 0x2eb9: 0x000c, 0x2eba: 0x000c, 0x2ebb: 0x000c,
+       0x2ebc: 0x000c, 0x2ebd: 0x000c,
+       // Block 0xbb, offset 0x2ec0
+       0x2ed2: 0x000c, 0x2ed3: 0x000c, 0x2ed4: 0x000c, 0x2ed5: 0x000c, 0x2ed6: 0x000c, 0x2ed7: 0x000c,
+       0x2ed8: 0x000c, 0x2ed9: 0x000c, 0x2eda: 0x000c, 0x2edb: 0x000c, 0x2edc: 0x000c, 0x2edd: 0x000c,
+       0x2ede: 0x000c, 0x2edf: 0x000c, 0x2ee0: 0x000c, 0x2ee1: 0x000c, 0x2ee2: 0x000c, 0x2ee3: 0x000c,
+       0x2ee4: 0x000c, 0x2ee5: 0x000c, 0x2ee6: 0x000c, 0x2ee7: 0x000c,
+       0x2eea: 0x000c, 0x2eeb: 0x000c, 0x2eec: 0x000c, 0x2eed: 0x000c, 0x2eee: 0x000c, 0x2eef: 0x000c,
+       0x2ef0: 0x000c, 0x2ef2: 0x000c, 0x2ef3: 0x000c, 0x2ef5: 0x000c,
+       0x2ef6: 0x000c,
+       // Block 0xbc, offset 0x2f00
+       0x2f31: 0x000c, 0x2f32: 0x000c, 0x2f33: 0x000c, 0x2f34: 0x000c, 0x2f35: 0x000c,
+       0x2f36: 0x000c, 0x2f3a: 0x000c,
+       0x2f3c: 0x000c, 0x2f3d: 0x000c, 0x2f3f: 0x000c,
+       // Block 0xbd, offset 0x2f40
+       0x2f40: 0x000c, 0x2f41: 0x000c, 0x2f42: 0x000c, 0x2f43: 0x000c, 0x2f44: 0x000c, 0x2f45: 0x000c,
+       0x2f47: 0x000c,
+       // Block 0xbe, offset 0x2f80
+       0x2fb0: 0x000c, 0x2fb1: 0x000c, 0x2fb2: 0x000c, 0x2fb3: 0x000c, 0x2fb4: 0x000c,
+       // Block 0xbf, offset 0x2fc0
+       0x2ff0: 0x000c, 0x2ff1: 0x000c, 0x2ff2: 0x000c, 0x2ff3: 0x000c, 0x2ff4: 0x000c, 0x2ff5: 0x000c,
+       0x2ff6: 0x000c,
+       // Block 0xc0, offset 0x3000
+       0x300f: 0x000c, 0x3010: 0x000c, 0x3011: 0x000c,
+       0x3012: 0x000c,
+       // Block 0xc1, offset 0x3040
+       0x305d: 0x000c,
+       0x305e: 0x000c, 0x3060: 0x000b, 0x3061: 0x000b, 0x3062: 0x000b, 0x3063: 0x000b,
+       // Block 0xc2, offset 0x3080
+       0x30a7: 0x000c, 0x30a8: 0x000c, 0x30a9: 0x000c,
+       0x30b3: 0x000b, 0x30b4: 0x000b, 0x30b5: 0x000b,
+       0x30b6: 0x000b, 0x30b7: 0x000b, 0x30b8: 0x000b, 0x30b9: 0x000b, 0x30ba: 0x000b, 0x30bb: 0x000c,
+       0x30bc: 0x000c, 0x30bd: 0x000c, 0x30be: 0x000c, 0x30bf: 0x000c,
+       // Block 0xc3, offset 0x30c0
+       0x30c0: 0x000c, 0x30c1: 0x000c, 0x30c2: 0x000c, 0x30c5: 0x000c,
+       0x30c6: 0x000c, 0x30c7: 0x000c, 0x30c8: 0x000c, 0x30c9: 0x000c, 0x30ca: 0x000c, 0x30cb: 0x000c,
+       0x30ea: 0x000c, 0x30eb: 0x000c, 0x30ec: 0x000c, 0x30ed: 0x000c,
+       // Block 0xc4, offset 0x3100
+       0x3100: 0x000a, 0x3101: 0x000a, 0x3102: 0x000c, 0x3103: 0x000c, 0x3104: 0x000c, 0x3105: 0x000a,
+       // Block 0xc5, offset 0x3140
+       0x3140: 0x000a, 0x3141: 0x000a, 0x3142: 0x000a, 0x3143: 0x000a, 0x3144: 0x000a, 0x3145: 0x000a,
+       0x3146: 0x000a, 0x3147: 0x000a, 0x3148: 0x000a, 0x3149: 0x000a, 0x314a: 0x000a, 0x314b: 0x000a,
+       0x314c: 0x000a, 0x314d: 0x000a, 0x314e: 0x000a, 0x314f: 0x000a, 0x3150: 0x000a, 0x3151: 0x000a,
+       0x3152: 0x000a, 0x3153: 0x000a, 0x3154: 0x000a, 0x3155: 0x000a, 0x3156: 0x000a,
+       // Block 0xc6, offset 0x3180
+       0x319b: 0x000a,
+       // Block 0xc7, offset 0x31c0
+       0x31d5: 0x000a,
+       // Block 0xc8, offset 0x3200
+       0x320f: 0x000a,
+       // Block 0xc9, offset 0x3240
+       0x3249: 0x000a,
+       // Block 0xca, offset 0x3280
+       0x3283: 0x000a,
+       0x328e: 0x0002, 0x328f: 0x0002, 0x3290: 0x0002, 0x3291: 0x0002,
+       0x3292: 0x0002, 0x3293: 0x0002, 0x3294: 0x0002, 0x3295: 0x0002, 0x3296: 0x0002, 0x3297: 0x0002,
+       0x3298: 0x0002, 0x3299: 0x0002, 0x329a: 0x0002, 0x329b: 0x0002, 0x329c: 0x0002, 0x329d: 0x0002,
+       0x329e: 0x0002, 0x329f: 0x0002, 0x32a0: 0x0002, 0x32a1: 0x0002, 0x32a2: 0x0002, 0x32a3: 0x0002,
+       0x32a4: 0x0002, 0x32a5: 0x0002, 0x32a6: 0x0002, 0x32a7: 0x0002, 0x32a8: 0x0002, 0x32a9: 0x0002,
+       0x32aa: 0x0002, 0x32ab: 0x0002, 0x32ac: 0x0002, 0x32ad: 0x0002, 0x32ae: 0x0002, 0x32af: 0x0002,
+       0x32b0: 0x0002, 0x32b1: 0x0002, 0x32b2: 0x0002, 0x32b3: 0x0002, 0x32b4: 0x0002, 0x32b5: 0x0002,
+       0x32b6: 0x0002, 0x32b7: 0x0002, 0x32b8: 0x0002, 0x32b9: 0x0002, 0x32ba: 0x0002, 0x32bb: 0x0002,
+       0x32bc: 0x0002, 0x32bd: 0x0002, 0x32be: 0x0002, 0x32bf: 0x0002,
+       // Block 0xcb, offset 0x32c0
+       0x32c0: 0x000c, 0x32c1: 0x000c, 0x32c2: 0x000c, 0x32c3: 0x000c, 0x32c4: 0x000c, 0x32c5: 0x000c,
+       0x32c6: 0x000c, 0x32c7: 0x000c, 0x32c8: 0x000c, 0x32c9: 0x000c, 0x32ca: 0x000c, 0x32cb: 0x000c,
+       0x32cc: 0x000c, 0x32cd: 0x000c, 0x32ce: 0x000c, 0x32cf: 0x000c, 0x32d0: 0x000c, 0x32d1: 0x000c,
+       0x32d2: 0x000c, 0x32d3: 0x000c, 0x32d4: 0x000c, 0x32d5: 0x000c, 0x32d6: 0x000c, 0x32d7: 0x000c,
+       0x32d8: 0x000c, 0x32d9: 0x000c, 0x32da: 0x000c, 0x32db: 0x000c, 0x32dc: 0x000c, 0x32dd: 0x000c,
+       0x32de: 0x000c, 0x32df: 0x000c, 0x32e0: 0x000c, 0x32e1: 0x000c, 0x32e2: 0x000c, 0x32e3: 0x000c,
+       0x32e4: 0x000c, 0x32e5: 0x000c, 0x32e6: 0x000c, 0x32e7: 0x000c, 0x32e8: 0x000c, 0x32e9: 0x000c,
+       0x32ea: 0x000c, 0x32eb: 0x000c, 0x32ec: 0x000c, 0x32ed: 0x000c, 0x32ee: 0x000c, 0x32ef: 0x000c,
+       0x32f0: 0x000c, 0x32f1: 0x000c, 0x32f2: 0x000c, 0x32f3: 0x000c, 0x32f4: 0x000c, 0x32f5: 0x000c,
+       0x32f6: 0x000c, 0x32fb: 0x000c,
+       0x32fc: 0x000c, 0x32fd: 0x000c, 0x32fe: 0x000c, 0x32ff: 0x000c,
+       // Block 0xcc, offset 0x3300
+       0x3300: 0x000c, 0x3301: 0x000c, 0x3302: 0x000c, 0x3303: 0x000c, 0x3304: 0x000c, 0x3305: 0x000c,
+       0x3306: 0x000c, 0x3307: 0x000c, 0x3308: 0x000c, 0x3309: 0x000c, 0x330a: 0x000c, 0x330b: 0x000c,
+       0x330c: 0x000c, 0x330d: 0x000c, 0x330e: 0x000c, 0x330f: 0x000c, 0x3310: 0x000c, 0x3311: 0x000c,
+       0x3312: 0x000c, 0x3313: 0x000c, 0x3314: 0x000c, 0x3315: 0x000c, 0x3316: 0x000c, 0x3317: 0x000c,
+       0x3318: 0x000c, 0x3319: 0x000c, 0x331a: 0x000c, 0x331b: 0x000c, 0x331c: 0x000c, 0x331d: 0x000c,
+       0x331e: 0x000c, 0x331f: 0x000c, 0x3320: 0x000c, 0x3321: 0x000c, 0x3322: 0x000c, 0x3323: 0x000c,
+       0x3324: 0x000c, 0x3325: 0x000c, 0x3326: 0x000c, 0x3327: 0x000c, 0x3328: 0x000c, 0x3329: 0x000c,
+       0x332a: 0x000c, 0x332b: 0x000c, 0x332c: 0x000c,
+       0x3335: 0x000c,
+       // Block 0xcd, offset 0x3340
+       0x3344: 0x000c,
+       0x335b: 0x000c, 0x335c: 0x000c, 0x335d: 0x000c,
+       0x335e: 0x000c, 0x335f: 0x000c, 0x3361: 0x000c, 0x3362: 0x000c, 0x3363: 0x000c,
+       0x3364: 0x000c, 0x3365: 0x000c, 0x3366: 0x000c, 0x3367: 0x000c, 0x3368: 0x000c, 0x3369: 0x000c,
+       0x336a: 0x000c, 0x336b: 0x000c, 0x336c: 0x000c, 0x336d: 0x000c, 0x336e: 0x000c, 0x336f: 0x000c,
+       // Block 0xce, offset 0x3380
+       0x3380: 0x000c, 0x3381: 0x000c, 0x3382: 0x000c, 0x3383: 0x000c, 0x3384: 0x000c, 0x3385: 0x000c,
+       0x3386: 0x000c, 0x3388: 0x000c, 0x3389: 0x000c, 0x338a: 0x000c, 0x338b: 0x000c,
+       0x338c: 0x000c, 0x338d: 0x000c, 0x338e: 0x000c, 0x338f: 0x000c, 0x3390: 0x000c, 0x3391: 0x000c,
+       0x3392: 0x000c, 0x3393: 0x000c, 0x3394: 0x000c, 0x3395: 0x000c, 0x3396: 0x000c, 0x3397: 0x000c,
+       0x3398: 0x000c, 0x339b: 0x000c, 0x339c: 0x000c, 0x339d: 0x000c,
+       0x339e: 0x000c, 0x339f: 0x000c, 0x33a0: 0x000c, 0x33a1: 0x000c, 0x33a3: 0x000c,
+       0x33a4: 0x000c, 0x33a6: 0x000c, 0x33a7: 0x000c, 0x33a8: 0x000c, 0x33a9: 0x000c,
+       0x33aa: 0x000c,
+       // Block 0xcf, offset 0x33c0
+       0x33c0: 0x0001, 0x33c1: 0x0001, 0x33c2: 0x0001, 0x33c3: 0x0001, 0x33c4: 0x0001, 0x33c5: 0x0001,
+       0x33c6: 0x0001, 0x33c7: 0x0001, 0x33c8: 0x0001, 0x33c9: 0x0001, 0x33ca: 0x0001, 0x33cb: 0x0001,
+       0x33cc: 0x0001, 0x33cd: 0x0001, 0x33ce: 0x0001, 0x33cf: 0x0001, 0x33d0: 0x000c, 0x33d1: 0x000c,
+       0x33d2: 0x000c, 0x33d3: 0x000c, 0x33d4: 0x000c, 0x33d5: 0x000c, 0x33d6: 0x000c, 0x33d7: 0x0001,
+       0x33d8: 0x0001, 0x33d9: 0x0001, 0x33da: 0x0001, 0x33db: 0x0001, 0x33dc: 0x0001, 0x33dd: 0x0001,
+       0x33de: 0x0001, 0x33df: 0x0001, 0x33e0: 0x0001, 0x33e1: 0x0001, 0x33e2: 0x0001, 0x33e3: 0x0001,
+       0x33e4: 0x0001, 0x33e5: 0x0001, 0x33e6: 0x0001, 0x33e7: 0x0001, 0x33e8: 0x0001, 0x33e9: 0x0001,
+       0x33ea: 0x0001, 0x33eb: 0x0001, 0x33ec: 0x0001, 0x33ed: 0x0001, 0x33ee: 0x0001, 0x33ef: 0x0001,
+       0x33f0: 0x0001, 0x33f1: 0x0001, 0x33f2: 0x0001, 0x33f3: 0x0001, 0x33f4: 0x0001, 0x33f5: 0x0001,
+       0x33f6: 0x0001, 0x33f7: 0x0001, 0x33f8: 0x0001, 0x33f9: 0x0001, 0x33fa: 0x0001, 0x33fb: 0x0001,
+       0x33fc: 0x0001, 0x33fd: 0x0001, 0x33fe: 0x0001, 0x33ff: 0x0001,
+       // Block 0xd0, offset 0x3400
+       0x3400: 0x0001, 0x3401: 0x0001, 0x3402: 0x0001, 0x3403: 0x0001, 0x3404: 0x000c, 0x3405: 0x000c,
+       0x3406: 0x000c, 0x3407: 0x000c, 0x3408: 0x000c, 0x3409: 0x000c, 0x340a: 0x000c, 0x340b: 0x0001,
+       0x340c: 0x0001, 0x340d: 0x0001, 0x340e: 0x0001, 0x340f: 0x0001, 0x3410: 0x0001, 0x3411: 0x0001,
+       0x3412: 0x0001, 0x3413: 0x0001, 0x3414: 0x0001, 0x3415: 0x0001, 0x3416: 0x0001, 0x3417: 0x0001,
+       0x3418: 0x0001, 0x3419: 0x0001, 0x341a: 0x0001, 0x341b: 0x0001, 0x341c: 0x0001, 0x341d: 0x0001,
+       0x341e: 0x0001, 0x341f: 0x0001, 0x3420: 0x0001, 0x3421: 0x0001, 0x3422: 0x0001, 0x3423: 0x0001,
+       0x3424: 0x0001, 0x3425: 0x0001, 0x3426: 0x0001, 0x3427: 0x0001, 0x3428: 0x0001, 0x3429: 0x0001,
+       0x342a: 0x0001, 0x342b: 0x0001, 0x342c: 0x0001, 0x342d: 0x0001, 0x342e: 0x0001, 0x342f: 0x0001,
+       0x3430: 0x0001, 0x3431: 0x0001, 0x3432: 0x0001, 0x3433: 0x0001, 0x3434: 0x0001, 0x3435: 0x0001,
+       0x3436: 0x0001, 0x3437: 0x0001, 0x3438: 0x0001, 0x3439: 0x0001, 0x343a: 0x0001, 0x343b: 0x0001,
+       0x343c: 0x0001, 0x343d: 0x0001, 0x343e: 0x0001, 0x343f: 0x0001,
+       // Block 0xd1, offset 0x3440
+       0x3440: 0x000d, 0x3441: 0x000d, 0x3442: 0x000d, 0x3443: 0x000d, 0x3444: 0x000d, 0x3445: 0x000d,
+       0x3446: 0x000d, 0x3447: 0x000d, 0x3448: 0x000d, 0x3449: 0x000d, 0x344a: 0x000d, 0x344b: 0x000d,
+       0x344c: 0x000d, 0x344d: 0x000d, 0x344e: 0x000d, 0x344f: 0x000d, 0x3450: 0x000d, 0x3451: 0x000d,
+       0x3452: 0x000d, 0x3453: 0x000d, 0x3454: 0x000d, 0x3455: 0x000d, 0x3456: 0x000d, 0x3457: 0x000d,
+       0x3458: 0x000d, 0x3459: 0x000d, 0x345a: 0x000d, 0x345b: 0x000d, 0x345c: 0x000d, 0x345d: 0x000d,
+       0x345e: 0x000d, 0x345f: 0x000d, 0x3460: 0x000d, 0x3461: 0x000d, 0x3462: 0x000d, 0x3463: 0x000d,
+       0x3464: 0x000d, 0x3465: 0x000d, 0x3466: 0x000d, 0x3467: 0x000d, 0x3468: 0x000d, 0x3469: 0x000d,
+       0x346a: 0x000d, 0x346b: 0x000d, 0x346c: 0x000d, 0x346d: 0x000d, 0x346e: 0x000d, 0x346f: 0x000d,
+       0x3470: 0x000a, 0x3471: 0x000a, 0x3472: 0x000d, 0x3473: 0x000d, 0x3474: 0x000d, 0x3475: 0x000d,
+       0x3476: 0x000d, 0x3477: 0x000d, 0x3478: 0x000d, 0x3479: 0x000d, 0x347a: 0x000d, 0x347b: 0x000d,
+       0x347c: 0x000d, 0x347d: 0x000d, 0x347e: 0x000d, 0x347f: 0x000d,
+       // Block 0xd2, offset 0x3480
+       0x3480: 0x000a, 0x3481: 0x000a, 0x3482: 0x000a, 0x3483: 0x000a, 0x3484: 0x000a, 0x3485: 0x000a,
+       0x3486: 0x000a, 0x3487: 0x000a, 0x3488: 0x000a, 0x3489: 0x000a, 0x348a: 0x000a, 0x348b: 0x000a,
+       0x348c: 0x000a, 0x348d: 0x000a, 0x348e: 0x000a, 0x348f: 0x000a, 0x3490: 0x000a, 0x3491: 0x000a,
+       0x3492: 0x000a, 0x3493: 0x000a, 0x3494: 0x000a, 0x3495: 0x000a, 0x3496: 0x000a, 0x3497: 0x000a,
+       0x3498: 0x000a, 0x3499: 0x000a, 0x349a: 0x000a, 0x349b: 0x000a, 0x349c: 0x000a, 0x349d: 0x000a,
+       0x349e: 0x000a, 0x349f: 0x000a, 0x34a0: 0x000a, 0x34a1: 0x000a, 0x34a2: 0x000a, 0x34a3: 0x000a,
+       0x34a4: 0x000a, 0x34a5: 0x000a, 0x34a6: 0x000a, 0x34a7: 0x000a, 0x34a8: 0x000a, 0x34a9: 0x000a,
+       0x34aa: 0x000a, 0x34ab: 0x000a,
+       0x34b0: 0x000a, 0x34b1: 0x000a, 0x34b2: 0x000a, 0x34b3: 0x000a, 0x34b4: 0x000a, 0x34b5: 0x000a,
+       0x34b6: 0x000a, 0x34b7: 0x000a, 0x34b8: 0x000a, 0x34b9: 0x000a, 0x34ba: 0x000a, 0x34bb: 0x000a,
+       0x34bc: 0x000a, 0x34bd: 0x000a, 0x34be: 0x000a, 0x34bf: 0x000a,
+       // Block 0xd3, offset 0x34c0
+       0x34c0: 0x000a, 0x34c1: 0x000a, 0x34c2: 0x000a, 0x34c3: 0x000a, 0x34c4: 0x000a, 0x34c5: 0x000a,
+       0x34c6: 0x000a, 0x34c7: 0x000a, 0x34c8: 0x000a, 0x34c9: 0x000a, 0x34ca: 0x000a, 0x34cb: 0x000a,
+       0x34cc: 0x000a, 0x34cd: 0x000a, 0x34ce: 0x000a, 0x34cf: 0x000a, 0x34d0: 0x000a, 0x34d1: 0x000a,
+       0x34d2: 0x000a, 0x34d3: 0x000a,
+       0x34e0: 0x000a, 0x34e1: 0x000a, 0x34e2: 0x000a, 0x34e3: 0x000a,
+       0x34e4: 0x000a, 0x34e5: 0x000a, 0x34e6: 0x000a, 0x34e7: 0x000a, 0x34e8: 0x000a, 0x34e9: 0x000a,
+       0x34ea: 0x000a, 0x34eb: 0x000a, 0x34ec: 0x000a, 0x34ed: 0x000a, 0x34ee: 0x000a,
+       0x34f1: 0x000a, 0x34f2: 0x000a, 0x34f3: 0x000a, 0x34f4: 0x000a, 0x34f5: 0x000a,
+       0x34f6: 0x000a, 0x34f7: 0x000a, 0x34f8: 0x000a, 0x34f9: 0x000a, 0x34fa: 0x000a, 0x34fb: 0x000a,
+       0x34fc: 0x000a, 0x34fd: 0x000a, 0x34fe: 0x000a, 0x34ff: 0x000a,
+       // Block 0xd4, offset 0x3500
+       0x3501: 0x000a, 0x3502: 0x000a, 0x3503: 0x000a, 0x3504: 0x000a, 0x3505: 0x000a,
+       0x3506: 0x000a, 0x3507: 0x000a, 0x3508: 0x000a, 0x3509: 0x000a, 0x350a: 0x000a, 0x350b: 0x000a,
+       0x350c: 0x000a, 0x350d: 0x000a, 0x350e: 0x000a, 0x350f: 0x000a, 0x3511: 0x000a,
+       0x3512: 0x000a, 0x3513: 0x000a, 0x3514: 0x000a, 0x3515: 0x000a, 0x3516: 0x000a, 0x3517: 0x000a,
+       0x3518: 0x000a, 0x3519: 0x000a, 0x351a: 0x000a, 0x351b: 0x000a, 0x351c: 0x000a, 0x351d: 0x000a,
+       0x351e: 0x000a, 0x351f: 0x000a, 0x3520: 0x000a, 0x3521: 0x000a, 0x3522: 0x000a, 0x3523: 0x000a,
+       0x3524: 0x000a, 0x3525: 0x000a, 0x3526: 0x000a, 0x3527: 0x000a, 0x3528: 0x000a, 0x3529: 0x000a,
+       0x352a: 0x000a, 0x352b: 0x000a, 0x352c: 0x000a, 0x352d: 0x000a, 0x352e: 0x000a, 0x352f: 0x000a,
+       0x3530: 0x000a, 0x3531: 0x000a, 0x3532: 0x000a, 0x3533: 0x000a, 0x3534: 0x000a, 0x3535: 0x000a,
+       // Block 0xd5, offset 0x3540
+       0x3540: 0x0002, 0x3541: 0x0002, 0x3542: 0x0002, 0x3543: 0x0002, 0x3544: 0x0002, 0x3545: 0x0002,
+       0x3546: 0x0002, 0x3547: 0x0002, 0x3548: 0x0002, 0x3549: 0x0002, 0x354a: 0x0002, 0x354b: 0x000a,
+       0x354c: 0x000a,
+       // Block 0xd6, offset 0x3580
+       0x35aa: 0x000a, 0x35ab: 0x000a,
+       // Block 0xd7, offset 0x35c0
+       0x35e0: 0x000a, 0x35e1: 0x000a, 0x35e2: 0x000a, 0x35e3: 0x000a,
+       0x35e4: 0x000a, 0x35e5: 0x000a,
+       // Block 0xd8, offset 0x3600
+       0x3600: 0x000a, 0x3601: 0x000a, 0x3602: 0x000a, 0x3603: 0x000a, 0x3604: 0x000a, 0x3605: 0x000a,
+       0x3606: 0x000a, 0x3607: 0x000a, 0x3608: 0x000a, 0x3609: 0x000a, 0x360a: 0x000a, 0x360b: 0x000a,
+       0x360c: 0x000a, 0x360d: 0x000a, 0x360e: 0x000a, 0x360f: 0x000a, 0x3610: 0x000a, 0x3611: 0x000a,
+       0x3612: 0x000a, 0x3613: 0x000a, 0x3614: 0x000a,
+       0x3620: 0x000a, 0x3621: 0x000a, 0x3622: 0x000a, 0x3623: 0x000a,
+       0x3624: 0x000a, 0x3625: 0x000a, 0x3626: 0x000a, 0x3627: 0x000a, 0x3628: 0x000a, 0x3629: 0x000a,
+       0x362a: 0x000a, 0x362b: 0x000a, 0x362c: 0x000a,
+       0x3630: 0x000a, 0x3631: 0x000a, 0x3632: 0x000a, 0x3633: 0x000a, 0x3634: 0x000a, 0x3635: 0x000a,
+       0x3636: 0x000a, 0x3637: 0x000a, 0x3638: 0x000a,
+       // Block 0xd9, offset 0x3640
+       0x3640: 0x000a, 0x3641: 0x000a, 0x3642: 0x000a, 0x3643: 0x000a, 0x3644: 0x000a, 0x3645: 0x000a,
+       0x3646: 0x000a, 0x3647: 0x000a, 0x3648: 0x000a, 0x3649: 0x000a, 0x364a: 0x000a, 0x364b: 0x000a,
+       0x364c: 0x000a, 0x364d: 0x000a, 0x364e: 0x000a, 0x364f: 0x000a, 0x3650: 0x000a, 0x3651: 0x000a,
+       0x3652: 0x000a, 0x3653: 0x000a, 0x3654: 0x000a,
+       // Block 0xda, offset 0x3680
+       0x3680: 0x000a, 0x3681: 0x000a, 0x3682: 0x000a, 0x3683: 0x000a, 0x3684: 0x000a, 0x3685: 0x000a,
+       0x3686: 0x000a, 0x3687: 0x000a, 0x3688: 0x000a, 0x3689: 0x000a, 0x368a: 0x000a, 0x368b: 0x000a,
+       0x3690: 0x000a, 0x3691: 0x000a,
+       0x3692: 0x000a, 0x3693: 0x000a, 0x3694: 0x000a, 0x3695: 0x000a, 0x3696: 0x000a, 0x3697: 0x000a,
+       0x3698: 0x000a, 0x3699: 0x000a, 0x369a: 0x000a, 0x369b: 0x000a, 0x369c: 0x000a, 0x369d: 0x000a,
+       0x369e: 0x000a, 0x369f: 0x000a, 0x36a0: 0x000a, 0x36a1: 0x000a, 0x36a2: 0x000a, 0x36a3: 0x000a,
+       0x36a4: 0x000a, 0x36a5: 0x000a, 0x36a6: 0x000a, 0x36a7: 0x000a, 0x36a8: 0x000a, 0x36a9: 0x000a,
+       0x36aa: 0x000a, 0x36ab: 0x000a, 0x36ac: 0x000a, 0x36ad: 0x000a, 0x36ae: 0x000a, 0x36af: 0x000a,
+       0x36b0: 0x000a, 0x36b1: 0x000a, 0x36b2: 0x000a, 0x36b3: 0x000a, 0x36b4: 0x000a, 0x36b5: 0x000a,
+       0x36b6: 0x000a, 0x36b7: 0x000a, 0x36b8: 0x000a, 0x36b9: 0x000a, 0x36ba: 0x000a, 0x36bb: 0x000a,
+       0x36bc: 0x000a, 0x36bd: 0x000a, 0x36be: 0x000a, 0x36bf: 0x000a,
+       // Block 0xdb, offset 0x36c0
+       0x36c0: 0x000a, 0x36c1: 0x000a, 0x36c2: 0x000a, 0x36c3: 0x000a, 0x36c4: 0x000a, 0x36c5: 0x000a,
+       0x36c6: 0x000a, 0x36c7: 0x000a,
+       0x36d0: 0x000a, 0x36d1: 0x000a,
+       0x36d2: 0x000a, 0x36d3: 0x000a, 0x36d4: 0x000a, 0x36d5: 0x000a, 0x36d6: 0x000a, 0x36d7: 0x000a,
+       0x36d8: 0x000a, 0x36d9: 0x000a,
+       0x36e0: 0x000a, 0x36e1: 0x000a, 0x36e2: 0x000a, 0x36e3: 0x000a,
+       0x36e4: 0x000a, 0x36e5: 0x000a, 0x36e6: 0x000a, 0x36e7: 0x000a, 0x36e8: 0x000a, 0x36e9: 0x000a,
+       0x36ea: 0x000a, 0x36eb: 0x000a, 0x36ec: 0x000a, 0x36ed: 0x000a, 0x36ee: 0x000a, 0x36ef: 0x000a,
+       0x36f0: 0x000a, 0x36f1: 0x000a, 0x36f2: 0x000a, 0x36f3: 0x000a, 0x36f4: 0x000a, 0x36f5: 0x000a,
+       0x36f6: 0x000a, 0x36f7: 0x000a, 0x36f8: 0x000a, 0x36f9: 0x000a, 0x36fa: 0x000a, 0x36fb: 0x000a,
+       0x36fc: 0x000a, 0x36fd: 0x000a, 0x36fe: 0x000a, 0x36ff: 0x000a,
+       // Block 0xdc, offset 0x3700
+       0x3700: 0x000a, 0x3701: 0x000a, 0x3702: 0x000a, 0x3703: 0x000a, 0x3704: 0x000a, 0x3705: 0x000a,
+       0x3706: 0x000a, 0x3707: 0x000a,
+       0x3710: 0x000a, 0x3711: 0x000a,
+       0x3712: 0x000a, 0x3713: 0x000a, 0x3714: 0x000a, 0x3715: 0x000a, 0x3716: 0x000a, 0x3717: 0x000a,
+       0x3718: 0x000a, 0x3719: 0x000a, 0x371a: 0x000a, 0x371b: 0x000a, 0x371c: 0x000a, 0x371d: 0x000a,
+       0x371e: 0x000a, 0x371f: 0x000a, 0x3720: 0x000a, 0x3721: 0x000a, 0x3722: 0x000a, 0x3723: 0x000a,
+       0x3724: 0x000a, 0x3725: 0x000a, 0x3726: 0x000a, 0x3727: 0x000a, 0x3728: 0x000a, 0x3729: 0x000a,
+       0x372a: 0x000a, 0x372b: 0x000a, 0x372c: 0x000a, 0x372d: 0x000a,
+       // Block 0xdd, offset 0x3740
+       0x3740: 0x000a, 0x3741: 0x000a, 0x3742: 0x000a, 0x3743: 0x000a, 0x3744: 0x000a, 0x3745: 0x000a,
+       0x3746: 0x000a, 0x3747: 0x000a, 0x3748: 0x000a, 0x3749: 0x000a, 0x374a: 0x000a, 0x374b: 0x000a,
+       0x3750: 0x000a, 0x3751: 0x000a,
+       0x3752: 0x000a, 0x3753: 0x000a, 0x3754: 0x000a, 0x3755: 0x000a, 0x3756: 0x000a, 0x3757: 0x000a,
+       0x3758: 0x000a, 0x3759: 0x000a, 0x375a: 0x000a, 0x375b: 0x000a, 0x375c: 0x000a, 0x375d: 0x000a,
+       0x375e: 0x000a, 0x375f: 0x000a, 0x3760: 0x000a, 0x3761: 0x000a, 0x3762: 0x000a, 0x3763: 0x000a,
+       0x3764: 0x000a, 0x3765: 0x000a, 0x3766: 0x000a, 0x3767: 0x000a, 0x3768: 0x000a, 0x3769: 0x000a,
+       0x376a: 0x000a, 0x376b: 0x000a, 0x376c: 0x000a, 0x376d: 0x000a, 0x376e: 0x000a, 0x376f: 0x000a,
+       0x3770: 0x000a, 0x3771: 0x000a, 0x3772: 0x000a, 0x3773: 0x000a, 0x3774: 0x000a, 0x3775: 0x000a,
+       0x3776: 0x000a, 0x3777: 0x000a, 0x3778: 0x000a, 0x3779: 0x000a, 0x377a: 0x000a, 0x377b: 0x000a,
+       0x377c: 0x000a, 0x377d: 0x000a, 0x377e: 0x000a,
+       // Block 0xde, offset 0x3780
+       0x3780: 0x000a, 0x3781: 0x000a, 0x3782: 0x000a, 0x3783: 0x000a, 0x3784: 0x000a, 0x3785: 0x000a,
+       0x3786: 0x000a, 0x3787: 0x000a, 0x3788: 0x000a, 0x3789: 0x000a, 0x378a: 0x000a, 0x378b: 0x000a,
+       0x378c: 0x000a, 0x3790: 0x000a, 0x3791: 0x000a,
+       0x3792: 0x000a, 0x3793: 0x000a, 0x3794: 0x000a, 0x3795: 0x000a, 0x3796: 0x000a, 0x3797: 0x000a,
+       0x3798: 0x000a, 0x3799: 0x000a, 0x379a: 0x000a, 0x379b: 0x000a, 0x379c: 0x000a, 0x379d: 0x000a,
+       0x379e: 0x000a, 0x379f: 0x000a, 0x37a0: 0x000a, 0x37a1: 0x000a, 0x37a2: 0x000a, 0x37a3: 0x000a,
+       0x37a4: 0x000a, 0x37a5: 0x000a, 0x37a6: 0x000a, 0x37a7: 0x000a, 0x37a8: 0x000a, 0x37a9: 0x000a,
+       0x37aa: 0x000a, 0x37ab: 0x000a,
+       // Block 0xdf, offset 0x37c0
+       0x37c0: 0x000a, 0x37c1: 0x000a, 0x37c2: 0x000a, 0x37c3: 0x000a, 0x37c4: 0x000a, 0x37c5: 0x000a,
+       0x37c6: 0x000a, 0x37c7: 0x000a, 0x37c8: 0x000a, 0x37c9: 0x000a, 0x37ca: 0x000a, 0x37cb: 0x000a,
+       0x37cc: 0x000a, 0x37cd: 0x000a, 0x37ce: 0x000a, 0x37cf: 0x000a, 0x37d0: 0x000a, 0x37d1: 0x000a,
+       0x37d2: 0x000a, 0x37d3: 0x000a, 0x37d4: 0x000a, 0x37d5: 0x000a, 0x37d6: 0x000a, 0x37d7: 0x000a,
+       // Block 0xe0, offset 0x3800
+       0x3800: 0x000a,
+       0x3810: 0x000a, 0x3811: 0x000a,
+       0x3812: 0x000a, 0x3813: 0x000a, 0x3814: 0x000a, 0x3815: 0x000a, 0x3816: 0x000a, 0x3817: 0x000a,
+       0x3818: 0x000a, 0x3819: 0x000a, 0x381a: 0x000a, 0x381b: 0x000a, 0x381c: 0x000a, 0x381d: 0x000a,
+       0x381e: 0x000a, 0x381f: 0x000a, 0x3820: 0x000a, 0x3821: 0x000a, 0x3822: 0x000a, 0x3823: 0x000a,
+       0x3824: 0x000a, 0x3825: 0x000a, 0x3826: 0x000a,
+       // Block 0xe1, offset 0x3840
+       0x387e: 0x000b, 0x387f: 0x000b,
+       // Block 0xe2, offset 0x3880
+       0x3880: 0x000b, 0x3881: 0x000b, 0x3882: 0x000b, 0x3883: 0x000b, 0x3884: 0x000b, 0x3885: 0x000b,
+       0x3886: 0x000b, 0x3887: 0x000b, 0x3888: 0x000b, 0x3889: 0x000b, 0x388a: 0x000b, 0x388b: 0x000b,
+       0x388c: 0x000b, 0x388d: 0x000b, 0x388e: 0x000b, 0x388f: 0x000b, 0x3890: 0x000b, 0x3891: 0x000b,
+       0x3892: 0x000b, 0x3893: 0x000b, 0x3894: 0x000b, 0x3895: 0x000b, 0x3896: 0x000b, 0x3897: 0x000b,
+       0x3898: 0x000b, 0x3899: 0x000b, 0x389a: 0x000b, 0x389b: 0x000b, 0x389c: 0x000b, 0x389d: 0x000b,
+       0x389e: 0x000b, 0x389f: 0x000b, 0x38a0: 0x000b, 0x38a1: 0x000b, 0x38a2: 0x000b, 0x38a3: 0x000b,
+       0x38a4: 0x000b, 0x38a5: 0x000b, 0x38a6: 0x000b, 0x38a7: 0x000b, 0x38a8: 0x000b, 0x38a9: 0x000b,
+       0x38aa: 0x000b, 0x38ab: 0x000b, 0x38ac: 0x000b, 0x38ad: 0x000b, 0x38ae: 0x000b, 0x38af: 0x000b,
+       0x38b0: 0x000b, 0x38b1: 0x000b, 0x38b2: 0x000b, 0x38b3: 0x000b, 0x38b4: 0x000b, 0x38b5: 0x000b,
+       0x38b6: 0x000b, 0x38b7: 0x000b, 0x38b8: 0x000b, 0x38b9: 0x000b, 0x38ba: 0x000b, 0x38bb: 0x000b,
+       0x38bc: 0x000b, 0x38bd: 0x000b, 0x38be: 0x000b, 0x38bf: 0x000b,
+       // Block 0xe3, offset 0x38c0
+       0x38c0: 0x000c, 0x38c1: 0x000c, 0x38c2: 0x000c, 0x38c3: 0x000c, 0x38c4: 0x000c, 0x38c5: 0x000c,
+       0x38c6: 0x000c, 0x38c7: 0x000c, 0x38c8: 0x000c, 0x38c9: 0x000c, 0x38ca: 0x000c, 0x38cb: 0x000c,
+       0x38cc: 0x000c, 0x38cd: 0x000c, 0x38ce: 0x000c, 0x38cf: 0x000c, 0x38d0: 0x000c, 0x38d1: 0x000c,
+       0x38d2: 0x000c, 0x38d3: 0x000c, 0x38d4: 0x000c, 0x38d5: 0x000c, 0x38d6: 0x000c, 0x38d7: 0x000c,
+       0x38d8: 0x000c, 0x38d9: 0x000c, 0x38da: 0x000c, 0x38db: 0x000c, 0x38dc: 0x000c, 0x38dd: 0x000c,
+       0x38de: 0x000c, 0x38df: 0x000c, 0x38e0: 0x000c, 0x38e1: 0x000c, 0x38e2: 0x000c, 0x38e3: 0x000c,
+       0x38e4: 0x000c, 0x38e5: 0x000c, 0x38e6: 0x000c, 0x38e7: 0x000c, 0x38e8: 0x000c, 0x38e9: 0x000c,
+       0x38ea: 0x000c, 0x38eb: 0x000c, 0x38ec: 0x000c, 0x38ed: 0x000c, 0x38ee: 0x000c, 0x38ef: 0x000c,
+       0x38f0: 0x000b, 0x38f1: 0x000b, 0x38f2: 0x000b, 0x38f3: 0x000b, 0x38f4: 0x000b, 0x38f5: 0x000b,
+       0x38f6: 0x000b, 0x38f7: 0x000b, 0x38f8: 0x000b, 0x38f9: 0x000b, 0x38fa: 0x000b, 0x38fb: 0x000b,
+       0x38fc: 0x000b, 0x38fd: 0x000b, 0x38fe: 0x000b, 0x38ff: 0x000b,
+}
+
+// bidiIndex: 24 blocks, 1536 entries, 1536 bytes
+// Block 0 is the zero block.
+var bidiIndex = [1536]uint8{
+       // Block 0x0, offset 0x0
+       // Block 0x1, offset 0x40
+       // Block 0x2, offset 0x80
+       // Block 0x3, offset 0xc0
+       0xc2: 0x01, 0xc3: 0x02,
+       0xca: 0x03, 0xcb: 0x04, 0xcc: 0x05, 0xcd: 0x06, 0xce: 0x07, 0xcf: 0x08,
+       0xd2: 0x09, 0xd6: 0x0a, 0xd7: 0x0b,
+       0xd8: 0x0c, 0xd9: 0x0d, 0xda: 0x0e, 0xdb: 0x0f, 0xdc: 0x10, 0xdd: 0x11, 0xde: 0x12, 0xdf: 0x13,
+       0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, 0xe4: 0x06,
+       0xea: 0x07, 0xef: 0x08,
+       0xf0: 0x11, 0xf1: 0x12, 0xf2: 0x12, 0xf3: 0x14, 0xf4: 0x15,
+       // Block 0x4, offset 0x100
+       0x120: 0x14, 0x121: 0x15, 0x122: 0x16, 0x123: 0x17, 0x124: 0x18, 0x125: 0x19, 0x126: 0x1a, 0x127: 0x1b,
+       0x128: 0x1c, 0x129: 0x1d, 0x12a: 0x1c, 0x12b: 0x1e, 0x12c: 0x1f, 0x12d: 0x20, 0x12e: 0x21, 0x12f: 0x22,
+       0x130: 0x23, 0x131: 0x24, 0x132: 0x1a, 0x133: 0x25, 0x134: 0x26, 0x135: 0x27, 0x137: 0x28,
+       0x138: 0x29, 0x139: 0x2a, 0x13a: 0x2b, 0x13b: 0x2c, 0x13c: 0x2d, 0x13d: 0x2e, 0x13e: 0x2f, 0x13f: 0x30,
+       // Block 0x5, offset 0x140
+       0x140: 0x31, 0x141: 0x32, 0x142: 0x33,
+       0x14d: 0x34, 0x14e: 0x35,
+       0x150: 0x36,
+       0x15a: 0x37, 0x15c: 0x38, 0x15d: 0x39, 0x15e: 0x3a, 0x15f: 0x3b,
+       0x160: 0x3c, 0x162: 0x3d, 0x164: 0x3e, 0x165: 0x3f, 0x167: 0x40,
+       0x168: 0x41, 0x169: 0x42, 0x16a: 0x43, 0x16c: 0x44, 0x16d: 0x45, 0x16e: 0x46, 0x16f: 0x47,
+       0x170: 0x48, 0x173: 0x49, 0x177: 0x4a,
+       0x17e: 0x4b, 0x17f: 0x4c,
+       // Block 0x6, offset 0x180
+       0x180: 0x4d, 0x181: 0x4e, 0x182: 0x4f, 0x183: 0x50, 0x184: 0x51, 0x185: 0x52, 0x186: 0x53, 0x187: 0x54,
+       0x188: 0x55, 0x189: 0x54, 0x18a: 0x54, 0x18b: 0x54, 0x18c: 0x56, 0x18d: 0x57, 0x18e: 0x58, 0x18f: 0x54,
+       0x190: 0x59, 0x191: 0x5a, 0x192: 0x5b, 0x193: 0x5c, 0x194: 0x54, 0x195: 0x54, 0x196: 0x54, 0x197: 0x54,
+       0x198: 0x54, 0x199: 0x54, 0x19a: 0x5d, 0x19b: 0x54, 0x19c: 0x54, 0x19d: 0x5e, 0x19e: 0x54, 0x19f: 0x5f,
+       0x1a4: 0x54, 0x1a5: 0x54, 0x1a6: 0x60, 0x1a7: 0x61,
+       0x1a8: 0x54, 0x1a9: 0x54, 0x1aa: 0x54, 0x1ab: 0x54, 0x1ac: 0x54, 0x1ad: 0x62, 0x1ae: 0x63, 0x1af: 0x64,
+       0x1b3: 0x65, 0x1b5: 0x66, 0x1b7: 0x67,
+       0x1b8: 0x68, 0x1b9: 0x69, 0x1ba: 0x6a, 0x1bb: 0x6b, 0x1bc: 0x54, 0x1bd: 0x54, 0x1be: 0x54, 0x1bf: 0x6c,
+       // Block 0x7, offset 0x1c0
+       0x1c0: 0x6d, 0x1c2: 0x6e, 0x1c3: 0x6f, 0x1c7: 0x70,
+       0x1c8: 0x71, 0x1c9: 0x72, 0x1ca: 0x73, 0x1cb: 0x74, 0x1cd: 0x75, 0x1cf: 0x76,
+       // Block 0x8, offset 0x200
+       0x237: 0x54,
+       // Block 0x9, offset 0x240
+       0x252: 0x77, 0x253: 0x78,
+       0x258: 0x79, 0x259: 0x7a, 0x25a: 0x7b, 0x25b: 0x7c, 0x25c: 0x7d, 0x25e: 0x7e,
+       0x260: 0x7f, 0x261: 0x80, 0x263: 0x81, 0x264: 0x82, 0x265: 0x83, 0x266: 0x84, 0x267: 0x85,
+       0x268: 0x86, 0x269: 0x87, 0x26a: 0x88, 0x26b: 0x89, 0x26f: 0x8a,
+       // Block 0xa, offset 0x280
+       0x2ac: 0x8b, 0x2ad: 0x8c, 0x2ae: 0x0e, 0x2af: 0x0e,
+       0x2b0: 0x0e, 0x2b1: 0x0e, 0x2b2: 0x0e, 0x2b3: 0x0e, 0x2b4: 0x8d, 0x2b5: 0x0e, 0x2b6: 0x0e, 0x2b7: 0x8e,
+       0x2b8: 0x8f, 0x2b9: 0x90, 0x2ba: 0x0e, 0x2bb: 0x91, 0x2bc: 0x92, 0x2bd: 0x93, 0x2bf: 0x94,
+       // Block 0xb, offset 0x2c0
+       0x2c4: 0x95, 0x2c5: 0x54, 0x2c6: 0x96, 0x2c7: 0x97,
+       0x2cb: 0x98, 0x2cd: 0x99,
+       0x2e0: 0x9a, 0x2e1: 0x9a, 0x2e2: 0x9a, 0x2e3: 0x9a, 0x2e4: 0x9b, 0x2e5: 0x9a, 0x2e6: 0x9a, 0x2e7: 0x9a,
+       0x2e8: 0x9c, 0x2e9: 0x9a, 0x2ea: 0x9a, 0x2eb: 0x9d, 0x2ec: 0x9e, 0x2ed: 0x9a, 0x2ee: 0x9a, 0x2ef: 0x9a,
+       0x2f0: 0x9a, 0x2f1: 0x9a, 0x2f2: 0x9a, 0x2f3: 0x9a, 0x2f4: 0x9a, 0x2f5: 0x9a, 0x2f6: 0x9a, 0x2f7: 0x9a,
+       0x2f8: 0x9a, 0x2f9: 0x9f, 0x2fa: 0x9a, 0x2fb: 0x9a, 0x2fc: 0x9a, 0x2fd: 0x9a, 0x2fe: 0x9a, 0x2ff: 0x9a,
+       // Block 0xc, offset 0x300
+       0x300: 0xa0, 0x301: 0xa1, 0x302: 0xa2, 0x304: 0xa3, 0x305: 0xa4, 0x306: 0xa5, 0x307: 0xa6,
+       0x308: 0xa7, 0x30b: 0xa8, 0x30c: 0xa9, 0x30d: 0xaa,
+       0x310: 0xab, 0x311: 0xac, 0x312: 0xad, 0x313: 0xae, 0x316: 0xaf, 0x317: 0xb0,
+       0x318: 0xb1, 0x319: 0xb2, 0x31a: 0xb3, 0x31c: 0xb4,
+       0x328: 0xb5, 0x329: 0xb6, 0x32a: 0xb7,
+       0x330: 0xb8, 0x332: 0xb9, 0x334: 0xba, 0x335: 0xbb,
+       // Block 0xd, offset 0x340
+       0x36b: 0xbc, 0x36c: 0xbd,
+       0x37e: 0xbe,
+       // Block 0xe, offset 0x380
+       0x3b2: 0xbf,
+       // Block 0xf, offset 0x3c0
+       0x3c5: 0xc0, 0x3c6: 0xc1,
+       0x3c8: 0x54, 0x3c9: 0xc2, 0x3cc: 0x54, 0x3cd: 0xc3,
+       0x3db: 0xc4, 0x3dc: 0xc5, 0x3dd: 0xc6, 0x3de: 0xc7, 0x3df: 0xc8,
+       0x3e8: 0xc9, 0x3e9: 0xca, 0x3ea: 0xcb,
+       // Block 0x10, offset 0x400
+       0x400: 0xcc,
+       0x420: 0x9a, 0x421: 0x9a, 0x422: 0x9a, 0x423: 0xcd, 0x424: 0x9a, 0x425: 0xce, 0x426: 0x9a, 0x427: 0x9a,
+       0x428: 0x9a, 0x429: 0x9a, 0x42a: 0x9a, 0x42b: 0x9a, 0x42c: 0x9a, 0x42d: 0x9a, 0x42e: 0x9a, 0x42f: 0x9a,
+       0x430: 0x9a, 0x431: 0x9a, 0x432: 0x9a, 0x433: 0x9a, 0x434: 0x9a, 0x435: 0x9a, 0x436: 0x9a, 0x437: 0x9a,
+       0x438: 0x0e, 0x439: 0x0e, 0x43a: 0x0e, 0x43b: 0xcf, 0x43c: 0x9a, 0x43d: 0x9a, 0x43e: 0x9a, 0x43f: 0x9a,
+       // Block 0x11, offset 0x440
+       0x440: 0xd0, 0x441: 0x54, 0x442: 0xd1, 0x443: 0xd2, 0x444: 0xd3, 0x445: 0xd4,
+       0x449: 0xd5, 0x44c: 0x54, 0x44d: 0x54, 0x44e: 0x54, 0x44f: 0x54,
+       0x450: 0x54, 0x451: 0x54, 0x452: 0x54, 0x453: 0x54, 0x454: 0x54, 0x455: 0x54, 0x456: 0x54, 0x457: 0x54,
+       0x458: 0x54, 0x459: 0x54, 0x45a: 0x54, 0x45b: 0xd6, 0x45c: 0x54, 0x45d: 0x6b, 0x45e: 0x54, 0x45f: 0xd7,
+       0x460: 0xd8, 0x461: 0xd9, 0x462: 0xda, 0x464: 0xdb, 0x465: 0xdc, 0x466: 0xdd, 0x467: 0xde,
+       0x47f: 0xdf,
+       // Block 0x12, offset 0x480
+       0x4bf: 0xdf,
+       // Block 0x13, offset 0x4c0
+       0x4d0: 0x09, 0x4d1: 0x0a, 0x4d6: 0x0b,
+       0x4db: 0x0c, 0x4dd: 0x0d, 0x4de: 0x0e, 0x4df: 0x0f,
+       0x4ef: 0x10,
+       0x4ff: 0x10,
+       // Block 0x14, offset 0x500
+       0x50f: 0x10,
+       0x51f: 0x10,
+       0x52f: 0x10,
+       0x53f: 0x10,
+       // Block 0x15, offset 0x540
+       0x540: 0xe0, 0x541: 0xe0, 0x542: 0xe0, 0x543: 0xe0, 0x544: 0x05, 0x545: 0x05, 0x546: 0x05, 0x547: 0xe1,
+       0x548: 0xe0, 0x549: 0xe0, 0x54a: 0xe0, 0x54b: 0xe0, 0x54c: 0xe0, 0x54d: 0xe0, 0x54e: 0xe0, 0x54f: 0xe0,
+       0x550: 0xe0, 0x551: 0xe0, 0x552: 0xe0, 0x553: 0xe0, 0x554: 0xe0, 0x555: 0xe0, 0x556: 0xe0, 0x557: 0xe0,
+       0x558: 0xe0, 0x559: 0xe0, 0x55a: 0xe0, 0x55b: 0xe0, 0x55c: 0xe0, 0x55d: 0xe0, 0x55e: 0xe0, 0x55f: 0xe0,
+       0x560: 0xe0, 0x561: 0xe0, 0x562: 0xe0, 0x563: 0xe0, 0x564: 0xe0, 0x565: 0xe0, 0x566: 0xe0, 0x567: 0xe0,
+       0x568: 0xe0, 0x569: 0xe0, 0x56a: 0xe0, 0x56b: 0xe0, 0x56c: 0xe0, 0x56d: 0xe0, 0x56e: 0xe0, 0x56f: 0xe0,
+       0x570: 0xe0, 0x571: 0xe0, 0x572: 0xe0, 0x573: 0xe0, 0x574: 0xe0, 0x575: 0xe0, 0x576: 0xe0, 0x577: 0xe0,
+       0x578: 0xe0, 0x579: 0xe0, 0x57a: 0xe0, 0x57b: 0xe0, 0x57c: 0xe0, 0x57d: 0xe0, 0x57e: 0xe0, 0x57f: 0xe0,
+       // Block 0x16, offset 0x580
+       0x58f: 0x10,
+       0x59f: 0x10,
+       0x5a0: 0x13,
+       0x5af: 0x10,
+       0x5bf: 0x10,
+       // Block 0x17, offset 0x5c0
+       0x5cf: 0x10,
+}
+
+// Total table size 16184 bytes (15KiB); checksum: F50EF68C
diff --git a/vendor/golang.org/x/text/unicode/bidi/tables11.0.0.go b/vendor/golang.org/x/text/unicode/bidi/tables11.0.0.go
new file mode 100644 (file)
index 0000000..022e3c6
--- /dev/null
@@ -0,0 +1,1887 @@
+// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT.
+
+// +build go1.13
+
+package bidi
+
+// UnicodeVersion is the Unicode version from which the tables in this package are derived.
+const UnicodeVersion = "11.0.0"
+
+// xorMasks contains masks to be xor-ed with brackets to get the reverse
+// version.
+var xorMasks = []int32{ // 8 elements
+       0, 1, 6, 7, 3, 15, 29, 63,
+} // Size: 56 bytes
+
+// 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 *bidiTrie) lookup(s []byte) (v uint8, sz int) {
+       c0 := s[0]
+       switch {
+       case c0 < 0x80: // is ASCII
+               return bidiValues[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 := bidiIndex[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 := bidiIndex[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 = bidiIndex[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 := bidiIndex[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 = bidiIndex[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 = bidiIndex[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 *bidiTrie) lookupUnsafe(s []byte) uint8 {
+       c0 := s[0]
+       if c0 < 0x80 { // is ASCII
+               return bidiValues[c0]
+       }
+       i := bidiIndex[c0]
+       if c0 < 0xE0 { // 2-byte UTF-8
+               return t.lookupValue(uint32(i), s[1])
+       }
+       i = bidiIndex[uint32(i)<<6+uint32(s[1])]
+       if c0 < 0xF0 { // 3-byte UTF-8
+               return t.lookupValue(uint32(i), s[2])
+       }
+       i = bidiIndex[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 *bidiTrie) lookupString(s string) (v uint8, sz int) {
+       c0 := s[0]
+       switch {
+       case c0 < 0x80: // is ASCII
+               return bidiValues[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 := bidiIndex[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 := bidiIndex[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 = bidiIndex[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 := bidiIndex[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 = bidiIndex[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 = bidiIndex[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 *bidiTrie) lookupStringUnsafe(s string) uint8 {
+       c0 := s[0]
+       if c0 < 0x80 { // is ASCII
+               return bidiValues[c0]
+       }
+       i := bidiIndex[c0]
+       if c0 < 0xE0 { // 2-byte UTF-8
+               return t.lookupValue(uint32(i), s[1])
+       }
+       i = bidiIndex[uint32(i)<<6+uint32(s[1])]
+       if c0 < 0xF0 { // 3-byte UTF-8
+               return t.lookupValue(uint32(i), s[2])
+       }
+       i = bidiIndex[uint32(i)<<6+uint32(s[2])]
+       if c0 < 0xF8 { // 4-byte UTF-8
+               return t.lookupValue(uint32(i), s[3])
+       }
+       return 0
+}
+
+// bidiTrie. Total size: 16512 bytes (16.12 KiB). Checksum: 2a9cf1317f2ffaa.
+type bidiTrie struct{}
+
+func newBidiTrie(i int) *bidiTrie {
+       return &bidiTrie{}
+}
+
+// lookupValue determines the type of block n and looks up the value for b.
+func (t *bidiTrie) lookupValue(n uint32, b byte) uint8 {
+       switch {
+       default:
+               return uint8(bidiValues[n<<6+uint32(b)])
+       }
+}
+
+// bidiValues: 234 blocks, 14976 entries, 14976 bytes
+// The third block is the zero block.
+var bidiValues = [14976]uint8{
+       // Block 0x0, offset 0x0
+       0x00: 0x000b, 0x01: 0x000b, 0x02: 0x000b, 0x03: 0x000b, 0x04: 0x000b, 0x05: 0x000b,
+       0x06: 0x000b, 0x07: 0x000b, 0x08: 0x000b, 0x09: 0x0008, 0x0a: 0x0007, 0x0b: 0x0008,
+       0x0c: 0x0009, 0x0d: 0x0007, 0x0e: 0x000b, 0x0f: 0x000b, 0x10: 0x000b, 0x11: 0x000b,
+       0x12: 0x000b, 0x13: 0x000b, 0x14: 0x000b, 0x15: 0x000b, 0x16: 0x000b, 0x17: 0x000b,
+       0x18: 0x000b, 0x19: 0x000b, 0x1a: 0x000b, 0x1b: 0x000b, 0x1c: 0x0007, 0x1d: 0x0007,
+       0x1e: 0x0007, 0x1f: 0x0008, 0x20: 0x0009, 0x21: 0x000a, 0x22: 0x000a, 0x23: 0x0004,
+       0x24: 0x0004, 0x25: 0x0004, 0x26: 0x000a, 0x27: 0x000a, 0x28: 0x003a, 0x29: 0x002a,
+       0x2a: 0x000a, 0x2b: 0x0003, 0x2c: 0x0006, 0x2d: 0x0003, 0x2e: 0x0006, 0x2f: 0x0006,
+       0x30: 0x0002, 0x31: 0x0002, 0x32: 0x0002, 0x33: 0x0002, 0x34: 0x0002, 0x35: 0x0002,
+       0x36: 0x0002, 0x37: 0x0002, 0x38: 0x0002, 0x39: 0x0002, 0x3a: 0x0006, 0x3b: 0x000a,
+       0x3c: 0x000a, 0x3d: 0x000a, 0x3e: 0x000a, 0x3f: 0x000a,
+       // Block 0x1, offset 0x40
+       0x40: 0x000a,
+       0x5b: 0x005a, 0x5c: 0x000a, 0x5d: 0x004a,
+       0x5e: 0x000a, 0x5f: 0x000a, 0x60: 0x000a,
+       0x7b: 0x005a,
+       0x7c: 0x000a, 0x7d: 0x004a, 0x7e: 0x000a, 0x7f: 0x000b,
+       // Block 0x2, offset 0x80
+       // Block 0x3, offset 0xc0
+       0xc0: 0x000b, 0xc1: 0x000b, 0xc2: 0x000b, 0xc3: 0x000b, 0xc4: 0x000b, 0xc5: 0x0007,
+       0xc6: 0x000b, 0xc7: 0x000b, 0xc8: 0x000b, 0xc9: 0x000b, 0xca: 0x000b, 0xcb: 0x000b,
+       0xcc: 0x000b, 0xcd: 0x000b, 0xce: 0x000b, 0xcf: 0x000b, 0xd0: 0x000b, 0xd1: 0x000b,
+       0xd2: 0x000b, 0xd3: 0x000b, 0xd4: 0x000b, 0xd5: 0x000b, 0xd6: 0x000b, 0xd7: 0x000b,
+       0xd8: 0x000b, 0xd9: 0x000b, 0xda: 0x000b, 0xdb: 0x000b, 0xdc: 0x000b, 0xdd: 0x000b,
+       0xde: 0x000b, 0xdf: 0x000b, 0xe0: 0x0006, 0xe1: 0x000a, 0xe2: 0x0004, 0xe3: 0x0004,
+       0xe4: 0x0004, 0xe5: 0x0004, 0xe6: 0x000a, 0xe7: 0x000a, 0xe8: 0x000a, 0xe9: 0x000a,
+       0xeb: 0x000a, 0xec: 0x000a, 0xed: 0x000b, 0xee: 0x000a, 0xef: 0x000a,
+       0xf0: 0x0004, 0xf1: 0x0004, 0xf2: 0x0002, 0xf3: 0x0002, 0xf4: 0x000a,
+       0xf6: 0x000a, 0xf7: 0x000a, 0xf8: 0x000a, 0xf9: 0x0002, 0xfb: 0x000a,
+       0xfc: 0x000a, 0xfd: 0x000a, 0xfe: 0x000a, 0xff: 0x000a,
+       // Block 0x4, offset 0x100
+       0x117: 0x000a,
+       0x137: 0x000a,
+       // Block 0x5, offset 0x140
+       0x179: 0x000a, 0x17a: 0x000a,
+       // Block 0x6, offset 0x180
+       0x182: 0x000a, 0x183: 0x000a, 0x184: 0x000a, 0x185: 0x000a,
+       0x186: 0x000a, 0x187: 0x000a, 0x188: 0x000a, 0x189: 0x000a, 0x18a: 0x000a, 0x18b: 0x000a,
+       0x18c: 0x000a, 0x18d: 0x000a, 0x18e: 0x000a, 0x18f: 0x000a,
+       0x192: 0x000a, 0x193: 0x000a, 0x194: 0x000a, 0x195: 0x000a, 0x196: 0x000a, 0x197: 0x000a,
+       0x198: 0x000a, 0x199: 0x000a, 0x19a: 0x000a, 0x19b: 0x000a, 0x19c: 0x000a, 0x19d: 0x000a,
+       0x19e: 0x000a, 0x19f: 0x000a,
+       0x1a5: 0x000a, 0x1a6: 0x000a, 0x1a7: 0x000a, 0x1a8: 0x000a, 0x1a9: 0x000a,
+       0x1aa: 0x000a, 0x1ab: 0x000a, 0x1ac: 0x000a, 0x1ad: 0x000a, 0x1af: 0x000a,
+       0x1b0: 0x000a, 0x1b1: 0x000a, 0x1b2: 0x000a, 0x1b3: 0x000a, 0x1b4: 0x000a, 0x1b5: 0x000a,
+       0x1b6: 0x000a, 0x1b7: 0x000a, 0x1b8: 0x000a, 0x1b9: 0x000a, 0x1ba: 0x000a, 0x1bb: 0x000a,
+       0x1bc: 0x000a, 0x1bd: 0x000a, 0x1be: 0x000a, 0x1bf: 0x000a,
+       // Block 0x7, offset 0x1c0
+       0x1c0: 0x000c, 0x1c1: 0x000c, 0x1c2: 0x000c, 0x1c3: 0x000c, 0x1c4: 0x000c, 0x1c5: 0x000c,
+       0x1c6: 0x000c, 0x1c7: 0x000c, 0x1c8: 0x000c, 0x1c9: 0x000c, 0x1ca: 0x000c, 0x1cb: 0x000c,
+       0x1cc: 0x000c, 0x1cd: 0x000c, 0x1ce: 0x000c, 0x1cf: 0x000c, 0x1d0: 0x000c, 0x1d1: 0x000c,
+       0x1d2: 0x000c, 0x1d3: 0x000c, 0x1d4: 0x000c, 0x1d5: 0x000c, 0x1d6: 0x000c, 0x1d7: 0x000c,
+       0x1d8: 0x000c, 0x1d9: 0x000c, 0x1da: 0x000c, 0x1db: 0x000c, 0x1dc: 0x000c, 0x1dd: 0x000c,
+       0x1de: 0x000c, 0x1df: 0x000c, 0x1e0: 0x000c, 0x1e1: 0x000c, 0x1e2: 0x000c, 0x1e3: 0x000c,
+       0x1e4: 0x000c, 0x1e5: 0x000c, 0x1e6: 0x000c, 0x1e7: 0x000c, 0x1e8: 0x000c, 0x1e9: 0x000c,
+       0x1ea: 0x000c, 0x1eb: 0x000c, 0x1ec: 0x000c, 0x1ed: 0x000c, 0x1ee: 0x000c, 0x1ef: 0x000c,
+       0x1f0: 0x000c, 0x1f1: 0x000c, 0x1f2: 0x000c, 0x1f3: 0x000c, 0x1f4: 0x000c, 0x1f5: 0x000c,
+       0x1f6: 0x000c, 0x1f7: 0x000c, 0x1f8: 0x000c, 0x1f9: 0x000c, 0x1fa: 0x000c, 0x1fb: 0x000c,
+       0x1fc: 0x000c, 0x1fd: 0x000c, 0x1fe: 0x000c, 0x1ff: 0x000c,
+       // Block 0x8, offset 0x200
+       0x200: 0x000c, 0x201: 0x000c, 0x202: 0x000c, 0x203: 0x000c, 0x204: 0x000c, 0x205: 0x000c,
+       0x206: 0x000c, 0x207: 0x000c, 0x208: 0x000c, 0x209: 0x000c, 0x20a: 0x000c, 0x20b: 0x000c,
+       0x20c: 0x000c, 0x20d: 0x000c, 0x20e: 0x000c, 0x20f: 0x000c, 0x210: 0x000c, 0x211: 0x000c,
+       0x212: 0x000c, 0x213: 0x000c, 0x214: 0x000c, 0x215: 0x000c, 0x216: 0x000c, 0x217: 0x000c,
+       0x218: 0x000c, 0x219: 0x000c, 0x21a: 0x000c, 0x21b: 0x000c, 0x21c: 0x000c, 0x21d: 0x000c,
+       0x21e: 0x000c, 0x21f: 0x000c, 0x220: 0x000c, 0x221: 0x000c, 0x222: 0x000c, 0x223: 0x000c,
+       0x224: 0x000c, 0x225: 0x000c, 0x226: 0x000c, 0x227: 0x000c, 0x228: 0x000c, 0x229: 0x000c,
+       0x22a: 0x000c, 0x22b: 0x000c, 0x22c: 0x000c, 0x22d: 0x000c, 0x22e: 0x000c, 0x22f: 0x000c,
+       0x234: 0x000a, 0x235: 0x000a,
+       0x23e: 0x000a,
+       // Block 0x9, offset 0x240
+       0x244: 0x000a, 0x245: 0x000a,
+       0x247: 0x000a,
+       // Block 0xa, offset 0x280
+       0x2b6: 0x000a,
+       // Block 0xb, offset 0x2c0
+       0x2c3: 0x000c, 0x2c4: 0x000c, 0x2c5: 0x000c,
+       0x2c6: 0x000c, 0x2c7: 0x000c, 0x2c8: 0x000c, 0x2c9: 0x000c,
+       // Block 0xc, offset 0x300
+       0x30a: 0x000a,
+       0x30d: 0x000a, 0x30e: 0x000a, 0x30f: 0x0004, 0x310: 0x0001, 0x311: 0x000c,
+       0x312: 0x000c, 0x313: 0x000c, 0x314: 0x000c, 0x315: 0x000c, 0x316: 0x000c, 0x317: 0x000c,
+       0x318: 0x000c, 0x319: 0x000c, 0x31a: 0x000c, 0x31b: 0x000c, 0x31c: 0x000c, 0x31d: 0x000c,
+       0x31e: 0x000c, 0x31f: 0x000c, 0x320: 0x000c, 0x321: 0x000c, 0x322: 0x000c, 0x323: 0x000c,
+       0x324: 0x000c, 0x325: 0x000c, 0x326: 0x000c, 0x327: 0x000c, 0x328: 0x000c, 0x329: 0x000c,
+       0x32a: 0x000c, 0x32b: 0x000c, 0x32c: 0x000c, 0x32d: 0x000c, 0x32e: 0x000c, 0x32f: 0x000c,
+       0x330: 0x000c, 0x331: 0x000c, 0x332: 0x000c, 0x333: 0x000c, 0x334: 0x000c, 0x335: 0x000c,
+       0x336: 0x000c, 0x337: 0x000c, 0x338: 0x000c, 0x339: 0x000c, 0x33a: 0x000c, 0x33b: 0x000c,
+       0x33c: 0x000c, 0x33d: 0x000c, 0x33e: 0x0001, 0x33f: 0x000c,
+       // Block 0xd, offset 0x340
+       0x340: 0x0001, 0x341: 0x000c, 0x342: 0x000c, 0x343: 0x0001, 0x344: 0x000c, 0x345: 0x000c,
+       0x346: 0x0001, 0x347: 0x000c, 0x348: 0x0001, 0x349: 0x0001, 0x34a: 0x0001, 0x34b: 0x0001,
+       0x34c: 0x0001, 0x34d: 0x0001, 0x34e: 0x0001, 0x34f: 0x0001, 0x350: 0x0001, 0x351: 0x0001,
+       0x352: 0x0001, 0x353: 0x0001, 0x354: 0x0001, 0x355: 0x0001, 0x356: 0x0001, 0x357: 0x0001,
+       0x358: 0x0001, 0x359: 0x0001, 0x35a: 0x0001, 0x35b: 0x0001, 0x35c: 0x0001, 0x35d: 0x0001,
+       0x35e: 0x0001, 0x35f: 0x0001, 0x360: 0x0001, 0x361: 0x0001, 0x362: 0x0001, 0x363: 0x0001,
+       0x364: 0x0001, 0x365: 0x0001, 0x366: 0x0001, 0x367: 0x0001, 0x368: 0x0001, 0x369: 0x0001,
+       0x36a: 0x0001, 0x36b: 0x0001, 0x36c: 0x0001, 0x36d: 0x0001, 0x36e: 0x0001, 0x36f: 0x0001,
+       0x370: 0x0001, 0x371: 0x0001, 0x372: 0x0001, 0x373: 0x0001, 0x374: 0x0001, 0x375: 0x0001,
+       0x376: 0x0001, 0x377: 0x0001, 0x378: 0x0001, 0x379: 0x0001, 0x37a: 0x0001, 0x37b: 0x0001,
+       0x37c: 0x0001, 0x37d: 0x0001, 0x37e: 0x0001, 0x37f: 0x0001,
+       // Block 0xe, offset 0x380
+       0x380: 0x0005, 0x381: 0x0005, 0x382: 0x0005, 0x383: 0x0005, 0x384: 0x0005, 0x385: 0x0005,
+       0x386: 0x000a, 0x387: 0x000a, 0x388: 0x000d, 0x389: 0x0004, 0x38a: 0x0004, 0x38b: 0x000d,
+       0x38c: 0x0006, 0x38d: 0x000d, 0x38e: 0x000a, 0x38f: 0x000a, 0x390: 0x000c, 0x391: 0x000c,
+       0x392: 0x000c, 0x393: 0x000c, 0x394: 0x000c, 0x395: 0x000c, 0x396: 0x000c, 0x397: 0x000c,
+       0x398: 0x000c, 0x399: 0x000c, 0x39a: 0x000c, 0x39b: 0x000d, 0x39c: 0x000d, 0x39d: 0x000d,
+       0x39e: 0x000d, 0x39f: 0x000d, 0x3a0: 0x000d, 0x3a1: 0x000d, 0x3a2: 0x000d, 0x3a3: 0x000d,
+       0x3a4: 0x000d, 0x3a5: 0x000d, 0x3a6: 0x000d, 0x3a7: 0x000d, 0x3a8: 0x000d, 0x3a9: 0x000d,
+       0x3aa: 0x000d, 0x3ab: 0x000d, 0x3ac: 0x000d, 0x3ad: 0x000d, 0x3ae: 0x000d, 0x3af: 0x000d,
+       0x3b0: 0x000d, 0x3b1: 0x000d, 0x3b2: 0x000d, 0x3b3: 0x000d, 0x3b4: 0x000d, 0x3b5: 0x000d,
+       0x3b6: 0x000d, 0x3b7: 0x000d, 0x3b8: 0x000d, 0x3b9: 0x000d, 0x3ba: 0x000d, 0x3bb: 0x000d,
+       0x3bc: 0x000d, 0x3bd: 0x000d, 0x3be: 0x000d, 0x3bf: 0x000d,
+       // Block 0xf, offset 0x3c0
+       0x3c0: 0x000d, 0x3c1: 0x000d, 0x3c2: 0x000d, 0x3c3: 0x000d, 0x3c4: 0x000d, 0x3c5: 0x000d,
+       0x3c6: 0x000d, 0x3c7: 0x000d, 0x3c8: 0x000d, 0x3c9: 0x000d, 0x3ca: 0x000d, 0x3cb: 0x000c,
+       0x3cc: 0x000c, 0x3cd: 0x000c, 0x3ce: 0x000c, 0x3cf: 0x000c, 0x3d0: 0x000c, 0x3d1: 0x000c,
+       0x3d2: 0x000c, 0x3d3: 0x000c, 0x3d4: 0x000c, 0x3d5: 0x000c, 0x3d6: 0x000c, 0x3d7: 0x000c,
+       0x3d8: 0x000c, 0x3d9: 0x000c, 0x3da: 0x000c, 0x3db: 0x000c, 0x3dc: 0x000c, 0x3dd: 0x000c,
+       0x3de: 0x000c, 0x3df: 0x000c, 0x3e0: 0x0005, 0x3e1: 0x0005, 0x3e2: 0x0005, 0x3e3: 0x0005,
+       0x3e4: 0x0005, 0x3e5: 0x0005, 0x3e6: 0x0005, 0x3e7: 0x0005, 0x3e8: 0x0005, 0x3e9: 0x0005,
+       0x3ea: 0x0004, 0x3eb: 0x0005, 0x3ec: 0x0005, 0x3ed: 0x000d, 0x3ee: 0x000d, 0x3ef: 0x000d,
+       0x3f0: 0x000c, 0x3f1: 0x000d, 0x3f2: 0x000d, 0x3f3: 0x000d, 0x3f4: 0x000d, 0x3f5: 0x000d,
+       0x3f6: 0x000d, 0x3f7: 0x000d, 0x3f8: 0x000d, 0x3f9: 0x000d, 0x3fa: 0x000d, 0x3fb: 0x000d,
+       0x3fc: 0x000d, 0x3fd: 0x000d, 0x3fe: 0x000d, 0x3ff: 0x000d,
+       // Block 0x10, offset 0x400
+       0x400: 0x000d, 0x401: 0x000d, 0x402: 0x000d, 0x403: 0x000d, 0x404: 0x000d, 0x405: 0x000d,
+       0x406: 0x000d, 0x407: 0x000d, 0x408: 0x000d, 0x409: 0x000d, 0x40a: 0x000d, 0x40b: 0x000d,
+       0x40c: 0x000d, 0x40d: 0x000d, 0x40e: 0x000d, 0x40f: 0x000d, 0x410: 0x000d, 0x411: 0x000d,
+       0x412: 0x000d, 0x413: 0x000d, 0x414: 0x000d, 0x415: 0x000d, 0x416: 0x000d, 0x417: 0x000d,
+       0x418: 0x000d, 0x419: 0x000d, 0x41a: 0x000d, 0x41b: 0x000d, 0x41c: 0x000d, 0x41d: 0x000d,
+       0x41e: 0x000d, 0x41f: 0x000d, 0x420: 0x000d, 0x421: 0x000d, 0x422: 0x000d, 0x423: 0x000d,
+       0x424: 0x000d, 0x425: 0x000d, 0x426: 0x000d, 0x427: 0x000d, 0x428: 0x000d, 0x429: 0x000d,
+       0x42a: 0x000d, 0x42b: 0x000d, 0x42c: 0x000d, 0x42d: 0x000d, 0x42e: 0x000d, 0x42f: 0x000d,
+       0x430: 0x000d, 0x431: 0x000d, 0x432: 0x000d, 0x433: 0x000d, 0x434: 0x000d, 0x435: 0x000d,
+       0x436: 0x000d, 0x437: 0x000d, 0x438: 0x000d, 0x439: 0x000d, 0x43a: 0x000d, 0x43b: 0x000d,
+       0x43c: 0x000d, 0x43d: 0x000d, 0x43e: 0x000d, 0x43f: 0x000d,
+       // Block 0x11, offset 0x440
+       0x440: 0x000d, 0x441: 0x000d, 0x442: 0x000d, 0x443: 0x000d, 0x444: 0x000d, 0x445: 0x000d,
+       0x446: 0x000d, 0x447: 0x000d, 0x448: 0x000d, 0x449: 0x000d, 0x44a: 0x000d, 0x44b: 0x000d,
+       0x44c: 0x000d, 0x44d: 0x000d, 0x44e: 0x000d, 0x44f: 0x000d, 0x450: 0x000d, 0x451: 0x000d,
+       0x452: 0x000d, 0x453: 0x000d, 0x454: 0x000d, 0x455: 0x000d, 0x456: 0x000c, 0x457: 0x000c,
+       0x458: 0x000c, 0x459: 0x000c, 0x45a: 0x000c, 0x45b: 0x000c, 0x45c: 0x000c, 0x45d: 0x0005,
+       0x45e: 0x000a, 0x45f: 0x000c, 0x460: 0x000c, 0x461: 0x000c, 0x462: 0x000c, 0x463: 0x000c,
+       0x464: 0x000c, 0x465: 0x000d, 0x466: 0x000d, 0x467: 0x000c, 0x468: 0x000c, 0x469: 0x000a,
+       0x46a: 0x000c, 0x46b: 0x000c, 0x46c: 0x000c, 0x46d: 0x000c, 0x46e: 0x000d, 0x46f: 0x000d,
+       0x470: 0x0002, 0x471: 0x0002, 0x472: 0x0002, 0x473: 0x0002, 0x474: 0x0002, 0x475: 0x0002,
+       0x476: 0x0002, 0x477: 0x0002, 0x478: 0x0002, 0x479: 0x0002, 0x47a: 0x000d, 0x47b: 0x000d,
+       0x47c: 0x000d, 0x47d: 0x000d, 0x47e: 0x000d, 0x47f: 0x000d,
+       // Block 0x12, offset 0x480
+       0x480: 0x000d, 0x481: 0x000d, 0x482: 0x000d, 0x483: 0x000d, 0x484: 0x000d, 0x485: 0x000d,
+       0x486: 0x000d, 0x487: 0x000d, 0x488: 0x000d, 0x489: 0x000d, 0x48a: 0x000d, 0x48b: 0x000d,
+       0x48c: 0x000d, 0x48d: 0x000d, 0x48e: 0x000d, 0x48f: 0x000d, 0x490: 0x000d, 0x491: 0x000c,
+       0x492: 0x000d, 0x493: 0x000d, 0x494: 0x000d, 0x495: 0x000d, 0x496: 0x000d, 0x497: 0x000d,
+       0x498: 0x000d, 0x499: 0x000d, 0x49a: 0x000d, 0x49b: 0x000d, 0x49c: 0x000d, 0x49d: 0x000d,
+       0x49e: 0x000d, 0x49f: 0x000d, 0x4a0: 0x000d, 0x4a1: 0x000d, 0x4a2: 0x000d, 0x4a3: 0x000d,
+       0x4a4: 0x000d, 0x4a5: 0x000d, 0x4a6: 0x000d, 0x4a7: 0x000d, 0x4a8: 0x000d, 0x4a9: 0x000d,
+       0x4aa: 0x000d, 0x4ab: 0x000d, 0x4ac: 0x000d, 0x4ad: 0x000d, 0x4ae: 0x000d, 0x4af: 0x000d,
+       0x4b0: 0x000c, 0x4b1: 0x000c, 0x4b2: 0x000c, 0x4b3: 0x000c, 0x4b4: 0x000c, 0x4b5: 0x000c,
+       0x4b6: 0x000c, 0x4b7: 0x000c, 0x4b8: 0x000c, 0x4b9: 0x000c, 0x4ba: 0x000c, 0x4bb: 0x000c,
+       0x4bc: 0x000c, 0x4bd: 0x000c, 0x4be: 0x000c, 0x4bf: 0x000c,
+       // Block 0x13, offset 0x4c0
+       0x4c0: 0x000c, 0x4c1: 0x000c, 0x4c2: 0x000c, 0x4c3: 0x000c, 0x4c4: 0x000c, 0x4c5: 0x000c,
+       0x4c6: 0x000c, 0x4c7: 0x000c, 0x4c8: 0x000c, 0x4c9: 0x000c, 0x4ca: 0x000c, 0x4cb: 0x000d,
+       0x4cc: 0x000d, 0x4cd: 0x000d, 0x4ce: 0x000d, 0x4cf: 0x000d, 0x4d0: 0x000d, 0x4d1: 0x000d,
+       0x4d2: 0x000d, 0x4d3: 0x000d, 0x4d4: 0x000d, 0x4d5: 0x000d, 0x4d6: 0x000d, 0x4d7: 0x000d,
+       0x4d8: 0x000d, 0x4d9: 0x000d, 0x4da: 0x000d, 0x4db: 0x000d, 0x4dc: 0x000d, 0x4dd: 0x000d,
+       0x4de: 0x000d, 0x4df: 0x000d, 0x4e0: 0x000d, 0x4e1: 0x000d, 0x4e2: 0x000d, 0x4e3: 0x000d,
+       0x4e4: 0x000d, 0x4e5: 0x000d, 0x4e6: 0x000d, 0x4e7: 0x000d, 0x4e8: 0x000d, 0x4e9: 0x000d,
+       0x4ea: 0x000d, 0x4eb: 0x000d, 0x4ec: 0x000d, 0x4ed: 0x000d, 0x4ee: 0x000d, 0x4ef: 0x000d,
+       0x4f0: 0x000d, 0x4f1: 0x000d, 0x4f2: 0x000d, 0x4f3: 0x000d, 0x4f4: 0x000d, 0x4f5: 0x000d,
+       0x4f6: 0x000d, 0x4f7: 0x000d, 0x4f8: 0x000d, 0x4f9: 0x000d, 0x4fa: 0x000d, 0x4fb: 0x000d,
+       0x4fc: 0x000d, 0x4fd: 0x000d, 0x4fe: 0x000d, 0x4ff: 0x000d,
+       // Block 0x14, offset 0x500
+       0x500: 0x000d, 0x501: 0x000d, 0x502: 0x000d, 0x503: 0x000d, 0x504: 0x000d, 0x505: 0x000d,
+       0x506: 0x000d, 0x507: 0x000d, 0x508: 0x000d, 0x509: 0x000d, 0x50a: 0x000d, 0x50b: 0x000d,
+       0x50c: 0x000d, 0x50d: 0x000d, 0x50e: 0x000d, 0x50f: 0x000d, 0x510: 0x000d, 0x511: 0x000d,
+       0x512: 0x000d, 0x513: 0x000d, 0x514: 0x000d, 0x515: 0x000d, 0x516: 0x000d, 0x517: 0x000d,
+       0x518: 0x000d, 0x519: 0x000d, 0x51a: 0x000d, 0x51b: 0x000d, 0x51c: 0x000d, 0x51d: 0x000d,
+       0x51e: 0x000d, 0x51f: 0x000d, 0x520: 0x000d, 0x521: 0x000d, 0x522: 0x000d, 0x523: 0x000d,
+       0x524: 0x000d, 0x525: 0x000d, 0x526: 0x000c, 0x527: 0x000c, 0x528: 0x000c, 0x529: 0x000c,
+       0x52a: 0x000c, 0x52b: 0x000c, 0x52c: 0x000c, 0x52d: 0x000c, 0x52e: 0x000c, 0x52f: 0x000c,
+       0x530: 0x000c, 0x531: 0x000d, 0x532: 0x000d, 0x533: 0x000d, 0x534: 0x000d, 0x535: 0x000d,
+       0x536: 0x000d, 0x537: 0x000d, 0x538: 0x000d, 0x539: 0x000d, 0x53a: 0x000d, 0x53b: 0x000d,
+       0x53c: 0x000d, 0x53d: 0x000d, 0x53e: 0x000d, 0x53f: 0x000d,
+       // Block 0x15, offset 0x540
+       0x540: 0x0001, 0x541: 0x0001, 0x542: 0x0001, 0x543: 0x0001, 0x544: 0x0001, 0x545: 0x0001,
+       0x546: 0x0001, 0x547: 0x0001, 0x548: 0x0001, 0x549: 0x0001, 0x54a: 0x0001, 0x54b: 0x0001,
+       0x54c: 0x0001, 0x54d: 0x0001, 0x54e: 0x0001, 0x54f: 0x0001, 0x550: 0x0001, 0x551: 0x0001,
+       0x552: 0x0001, 0x553: 0x0001, 0x554: 0x0001, 0x555: 0x0001, 0x556: 0x0001, 0x557: 0x0001,
+       0x558: 0x0001, 0x559: 0x0001, 0x55a: 0x0001, 0x55b: 0x0001, 0x55c: 0x0001, 0x55d: 0x0001,
+       0x55e: 0x0001, 0x55f: 0x0001, 0x560: 0x0001, 0x561: 0x0001, 0x562: 0x0001, 0x563: 0x0001,
+       0x564: 0x0001, 0x565: 0x0001, 0x566: 0x0001, 0x567: 0x0001, 0x568: 0x0001, 0x569: 0x0001,
+       0x56a: 0x0001, 0x56b: 0x000c, 0x56c: 0x000c, 0x56d: 0x000c, 0x56e: 0x000c, 0x56f: 0x000c,
+       0x570: 0x000c, 0x571: 0x000c, 0x572: 0x000c, 0x573: 0x000c, 0x574: 0x0001, 0x575: 0x0001,
+       0x576: 0x000a, 0x577: 0x000a, 0x578: 0x000a, 0x579: 0x000a, 0x57a: 0x0001, 0x57b: 0x0001,
+       0x57c: 0x0001, 0x57d: 0x000c, 0x57e: 0x0001, 0x57f: 0x0001,
+       // Block 0x16, offset 0x580
+       0x580: 0x0001, 0x581: 0x0001, 0x582: 0x0001, 0x583: 0x0001, 0x584: 0x0001, 0x585: 0x0001,
+       0x586: 0x0001, 0x587: 0x0001, 0x588: 0x0001, 0x589: 0x0001, 0x58a: 0x0001, 0x58b: 0x0001,
+       0x58c: 0x0001, 0x58d: 0x0001, 0x58e: 0x0001, 0x58f: 0x0001, 0x590: 0x0001, 0x591: 0x0001,
+       0x592: 0x0001, 0x593: 0x0001, 0x594: 0x0001, 0x595: 0x0001, 0x596: 0x000c, 0x597: 0x000c,
+       0x598: 0x000c, 0x599: 0x000c, 0x59a: 0x0001, 0x59b: 0x000c, 0x59c: 0x000c, 0x59d: 0x000c,
+       0x59e: 0x000c, 0x59f: 0x000c, 0x5a0: 0x000c, 0x5a1: 0x000c, 0x5a2: 0x000c, 0x5a3: 0x000c,
+       0x5a4: 0x0001, 0x5a5: 0x000c, 0x5a6: 0x000c, 0x5a7: 0x000c, 0x5a8: 0x0001, 0x5a9: 0x000c,
+       0x5aa: 0x000c, 0x5ab: 0x000c, 0x5ac: 0x000c, 0x5ad: 0x000c, 0x5ae: 0x0001, 0x5af: 0x0001,
+       0x5b0: 0x0001, 0x5b1: 0x0001, 0x5b2: 0x0001, 0x5b3: 0x0001, 0x5b4: 0x0001, 0x5b5: 0x0001,
+       0x5b6: 0x0001, 0x5b7: 0x0001, 0x5b8: 0x0001, 0x5b9: 0x0001, 0x5ba: 0x0001, 0x5bb: 0x0001,
+       0x5bc: 0x0001, 0x5bd: 0x0001, 0x5be: 0x0001, 0x5bf: 0x0001,
+       // Block 0x17, offset 0x5c0
+       0x5c0: 0x0001, 0x5c1: 0x0001, 0x5c2: 0x0001, 0x5c3: 0x0001, 0x5c4: 0x0001, 0x5c5: 0x0001,
+       0x5c6: 0x0001, 0x5c7: 0x0001, 0x5c8: 0x0001, 0x5c9: 0x0001, 0x5ca: 0x0001, 0x5cb: 0x0001,
+       0x5cc: 0x0001, 0x5cd: 0x0001, 0x5ce: 0x0001, 0x5cf: 0x0001, 0x5d0: 0x0001, 0x5d1: 0x0001,
+       0x5d2: 0x0001, 0x5d3: 0x0001, 0x5d4: 0x0001, 0x5d5: 0x0001, 0x5d6: 0x0001, 0x5d7: 0x0001,
+       0x5d8: 0x0001, 0x5d9: 0x000c, 0x5da: 0x000c, 0x5db: 0x000c, 0x5dc: 0x0001, 0x5dd: 0x0001,
+       0x5de: 0x0001, 0x5df: 0x0001, 0x5e0: 0x000d, 0x5e1: 0x000d, 0x5e2: 0x000d, 0x5e3: 0x000d,
+       0x5e4: 0x000d, 0x5e5: 0x000d, 0x5e6: 0x000d, 0x5e7: 0x000d, 0x5e8: 0x000d, 0x5e9: 0x000d,
+       0x5ea: 0x000d, 0x5eb: 0x000d, 0x5ec: 0x000d, 0x5ed: 0x000d, 0x5ee: 0x000d, 0x5ef: 0x000d,
+       0x5f0: 0x0001, 0x5f1: 0x0001, 0x5f2: 0x0001, 0x5f3: 0x0001, 0x5f4: 0x0001, 0x5f5: 0x0001,
+       0x5f6: 0x0001, 0x5f7: 0x0001, 0x5f8: 0x0001, 0x5f9: 0x0001, 0x5fa: 0x0001, 0x5fb: 0x0001,
+       0x5fc: 0x0001, 0x5fd: 0x0001, 0x5fe: 0x0001, 0x5ff: 0x0001,
+       // Block 0x18, offset 0x600
+       0x600: 0x0001, 0x601: 0x0001, 0x602: 0x0001, 0x603: 0x0001, 0x604: 0x0001, 0x605: 0x0001,
+       0x606: 0x0001, 0x607: 0x0001, 0x608: 0x0001, 0x609: 0x0001, 0x60a: 0x0001, 0x60b: 0x0001,
+       0x60c: 0x0001, 0x60d: 0x0001, 0x60e: 0x0001, 0x60f: 0x0001, 0x610: 0x0001, 0x611: 0x0001,
+       0x612: 0x0001, 0x613: 0x0001, 0x614: 0x0001, 0x615: 0x0001, 0x616: 0x0001, 0x617: 0x0001,
+       0x618: 0x0001, 0x619: 0x0001, 0x61a: 0x0001, 0x61b: 0x0001, 0x61c: 0x0001, 0x61d: 0x0001,
+       0x61e: 0x0001, 0x61f: 0x0001, 0x620: 0x000d, 0x621: 0x000d, 0x622: 0x000d, 0x623: 0x000d,
+       0x624: 0x000d, 0x625: 0x000d, 0x626: 0x000d, 0x627: 0x000d, 0x628: 0x000d, 0x629: 0x000d,
+       0x62a: 0x000d, 0x62b: 0x000d, 0x62c: 0x000d, 0x62d: 0x000d, 0x62e: 0x000d, 0x62f: 0x000d,
+       0x630: 0x000d, 0x631: 0x000d, 0x632: 0x000d, 0x633: 0x000d, 0x634: 0x000d, 0x635: 0x000d,
+       0x636: 0x000d, 0x637: 0x000d, 0x638: 0x000d, 0x639: 0x000d, 0x63a: 0x000d, 0x63b: 0x000d,
+       0x63c: 0x000d, 0x63d: 0x000d, 0x63e: 0x000d, 0x63f: 0x000d,
+       // Block 0x19, offset 0x640
+       0x640: 0x000d, 0x641: 0x000d, 0x642: 0x000d, 0x643: 0x000d, 0x644: 0x000d, 0x645: 0x000d,
+       0x646: 0x000d, 0x647: 0x000d, 0x648: 0x000d, 0x649: 0x000d, 0x64a: 0x000d, 0x64b: 0x000d,
+       0x64c: 0x000d, 0x64d: 0x000d, 0x64e: 0x000d, 0x64f: 0x000d, 0x650: 0x000d, 0x651: 0x000d,
+       0x652: 0x000d, 0x653: 0x000c, 0x654: 0x000c, 0x655: 0x000c, 0x656: 0x000c, 0x657: 0x000c,
+       0x658: 0x000c, 0x659: 0x000c, 0x65a: 0x000c, 0x65b: 0x000c, 0x65c: 0x000c, 0x65d: 0x000c,
+       0x65e: 0x000c, 0x65f: 0x000c, 0x660: 0x000c, 0x661: 0x000c, 0x662: 0x0005, 0x663: 0x000c,
+       0x664: 0x000c, 0x665: 0x000c, 0x666: 0x000c, 0x667: 0x000c, 0x668: 0x000c, 0x669: 0x000c,
+       0x66a: 0x000c, 0x66b: 0x000c, 0x66c: 0x000c, 0x66d: 0x000c, 0x66e: 0x000c, 0x66f: 0x000c,
+       0x670: 0x000c, 0x671: 0x000c, 0x672: 0x000c, 0x673: 0x000c, 0x674: 0x000c, 0x675: 0x000c,
+       0x676: 0x000c, 0x677: 0x000c, 0x678: 0x000c, 0x679: 0x000c, 0x67a: 0x000c, 0x67b: 0x000c,
+       0x67c: 0x000c, 0x67d: 0x000c, 0x67e: 0x000c, 0x67f: 0x000c,
+       // Block 0x1a, offset 0x680
+       0x680: 0x000c, 0x681: 0x000c, 0x682: 0x000c,
+       0x6ba: 0x000c,
+       0x6bc: 0x000c,
+       // Block 0x1b, offset 0x6c0
+       0x6c1: 0x000c, 0x6c2: 0x000c, 0x6c3: 0x000c, 0x6c4: 0x000c, 0x6c5: 0x000c,
+       0x6c6: 0x000c, 0x6c7: 0x000c, 0x6c8: 0x000c,
+       0x6cd: 0x000c, 0x6d1: 0x000c,
+       0x6d2: 0x000c, 0x6d3: 0x000c, 0x6d4: 0x000c, 0x6d5: 0x000c, 0x6d6: 0x000c, 0x6d7: 0x000c,
+       0x6e2: 0x000c, 0x6e3: 0x000c,
+       // Block 0x1c, offset 0x700
+       0x701: 0x000c,
+       0x73c: 0x000c,
+       // Block 0x1d, offset 0x740
+       0x741: 0x000c, 0x742: 0x000c, 0x743: 0x000c, 0x744: 0x000c,
+       0x74d: 0x000c,
+       0x762: 0x000c, 0x763: 0x000c,
+       0x772: 0x0004, 0x773: 0x0004,
+       0x77b: 0x0004,
+       0x77e: 0x000c,
+       // Block 0x1e, offset 0x780
+       0x781: 0x000c, 0x782: 0x000c,
+       0x7bc: 0x000c,
+       // Block 0x1f, offset 0x7c0
+       0x7c1: 0x000c, 0x7c2: 0x000c,
+       0x7c7: 0x000c, 0x7c8: 0x000c, 0x7cb: 0x000c,
+       0x7cc: 0x000c, 0x7cd: 0x000c, 0x7d1: 0x000c,
+       0x7f0: 0x000c, 0x7f1: 0x000c, 0x7f5: 0x000c,
+       // Block 0x20, offset 0x800
+       0x801: 0x000c, 0x802: 0x000c, 0x803: 0x000c, 0x804: 0x000c, 0x805: 0x000c,
+       0x807: 0x000c, 0x808: 0x000c,
+       0x80d: 0x000c,
+       0x822: 0x000c, 0x823: 0x000c,
+       0x831: 0x0004,
+       0x83a: 0x000c, 0x83b: 0x000c,
+       0x83c: 0x000c, 0x83d: 0x000c, 0x83e: 0x000c, 0x83f: 0x000c,
+       // Block 0x21, offset 0x840
+       0x841: 0x000c,
+       0x87c: 0x000c, 0x87f: 0x000c,
+       // Block 0x22, offset 0x880
+       0x881: 0x000c, 0x882: 0x000c, 0x883: 0x000c, 0x884: 0x000c,
+       0x88d: 0x000c,
+       0x896: 0x000c,
+       0x8a2: 0x000c, 0x8a3: 0x000c,
+       // Block 0x23, offset 0x8c0
+       0x8c2: 0x000c,
+       // Block 0x24, offset 0x900
+       0x900: 0x000c,
+       0x90d: 0x000c,
+       0x933: 0x000a, 0x934: 0x000a, 0x935: 0x000a,
+       0x936: 0x000a, 0x937: 0x000a, 0x938: 0x000a, 0x939: 0x0004, 0x93a: 0x000a,
+       // Block 0x25, offset 0x940
+       0x940: 0x000c, 0x944: 0x000c,
+       0x97e: 0x000c, 0x97f: 0x000c,
+       // Block 0x26, offset 0x980
+       0x980: 0x000c,
+       0x986: 0x000c, 0x987: 0x000c, 0x988: 0x000c, 0x98a: 0x000c, 0x98b: 0x000c,
+       0x98c: 0x000c, 0x98d: 0x000c,
+       0x995: 0x000c, 0x996: 0x000c,
+       0x9a2: 0x000c, 0x9a3: 0x000c,
+       0x9b8: 0x000a, 0x9b9: 0x000a, 0x9ba: 0x000a, 0x9bb: 0x000a,
+       0x9bc: 0x000a, 0x9bd: 0x000a, 0x9be: 0x000a,
+       // Block 0x27, offset 0x9c0
+       0x9cc: 0x000c, 0x9cd: 0x000c,
+       0x9e2: 0x000c, 0x9e3: 0x000c,
+       // Block 0x28, offset 0xa00
+       0xa00: 0x000c, 0xa01: 0x000c,
+       0xa3b: 0x000c,
+       0xa3c: 0x000c,
+       // Block 0x29, offset 0xa40
+       0xa41: 0x000c, 0xa42: 0x000c, 0xa43: 0x000c, 0xa44: 0x000c,
+       0xa4d: 0x000c,
+       0xa62: 0x000c, 0xa63: 0x000c,
+       // Block 0x2a, offset 0xa80
+       0xa8a: 0x000c,
+       0xa92: 0x000c, 0xa93: 0x000c, 0xa94: 0x000c, 0xa96: 0x000c,
+       // Block 0x2b, offset 0xac0
+       0xaf1: 0x000c, 0xaf4: 0x000c, 0xaf5: 0x000c,
+       0xaf6: 0x000c, 0xaf7: 0x000c, 0xaf8: 0x000c, 0xaf9: 0x000c, 0xafa: 0x000c,
+       0xaff: 0x0004,
+       // Block 0x2c, offset 0xb00
+       0xb07: 0x000c, 0xb08: 0x000c, 0xb09: 0x000c, 0xb0a: 0x000c, 0xb0b: 0x000c,
+       0xb0c: 0x000c, 0xb0d: 0x000c, 0xb0e: 0x000c,
+       // Block 0x2d, offset 0xb40
+       0xb71: 0x000c, 0xb74: 0x000c, 0xb75: 0x000c,
+       0xb76: 0x000c, 0xb77: 0x000c, 0xb78: 0x000c, 0xb79: 0x000c, 0xb7b: 0x000c,
+       0xb7c: 0x000c,
+       // Block 0x2e, offset 0xb80
+       0xb88: 0x000c, 0xb89: 0x000c, 0xb8a: 0x000c, 0xb8b: 0x000c,
+       0xb8c: 0x000c, 0xb8d: 0x000c,
+       // Block 0x2f, offset 0xbc0
+       0xbd8: 0x000c, 0xbd9: 0x000c,
+       0xbf5: 0x000c,
+       0xbf7: 0x000c, 0xbf9: 0x000c, 0xbfa: 0x003a, 0xbfb: 0x002a,
+       0xbfc: 0x003a, 0xbfd: 0x002a,
+       // Block 0x30, offset 0xc00
+       0xc31: 0x000c, 0xc32: 0x000c, 0xc33: 0x000c, 0xc34: 0x000c, 0xc35: 0x000c,
+       0xc36: 0x000c, 0xc37: 0x000c, 0xc38: 0x000c, 0xc39: 0x000c, 0xc3a: 0x000c, 0xc3b: 0x000c,
+       0xc3c: 0x000c, 0xc3d: 0x000c, 0xc3e: 0x000c,
+       // Block 0x31, offset 0xc40
+       0xc40: 0x000c, 0xc41: 0x000c, 0xc42: 0x000c, 0xc43: 0x000c, 0xc44: 0x000c,
+       0xc46: 0x000c, 0xc47: 0x000c,
+       0xc4d: 0x000c, 0xc4e: 0x000c, 0xc4f: 0x000c, 0xc50: 0x000c, 0xc51: 0x000c,
+       0xc52: 0x000c, 0xc53: 0x000c, 0xc54: 0x000c, 0xc55: 0x000c, 0xc56: 0x000c, 0xc57: 0x000c,
+       0xc59: 0x000c, 0xc5a: 0x000c, 0xc5b: 0x000c, 0xc5c: 0x000c, 0xc5d: 0x000c,
+       0xc5e: 0x000c, 0xc5f: 0x000c, 0xc60: 0x000c, 0xc61: 0x000c, 0xc62: 0x000c, 0xc63: 0x000c,
+       0xc64: 0x000c, 0xc65: 0x000c, 0xc66: 0x000c, 0xc67: 0x000c, 0xc68: 0x000c, 0xc69: 0x000c,
+       0xc6a: 0x000c, 0xc6b: 0x000c, 0xc6c: 0x000c, 0xc6d: 0x000c, 0xc6e: 0x000c, 0xc6f: 0x000c,
+       0xc70: 0x000c, 0xc71: 0x000c, 0xc72: 0x000c, 0xc73: 0x000c, 0xc74: 0x000c, 0xc75: 0x000c,
+       0xc76: 0x000c, 0xc77: 0x000c, 0xc78: 0x000c, 0xc79: 0x000c, 0xc7a: 0x000c, 0xc7b: 0x000c,
+       0xc7c: 0x000c,
+       // Block 0x32, offset 0xc80
+       0xc86: 0x000c,
+       // Block 0x33, offset 0xcc0
+       0xced: 0x000c, 0xcee: 0x000c, 0xcef: 0x000c,
+       0xcf0: 0x000c, 0xcf2: 0x000c, 0xcf3: 0x000c, 0xcf4: 0x000c, 0xcf5: 0x000c,
+       0xcf6: 0x000c, 0xcf7: 0x000c, 0xcf9: 0x000c, 0xcfa: 0x000c,
+       0xcfd: 0x000c, 0xcfe: 0x000c,
+       // Block 0x34, offset 0xd00
+       0xd18: 0x000c, 0xd19: 0x000c,
+       0xd1e: 0x000c, 0xd1f: 0x000c, 0xd20: 0x000c,
+       0xd31: 0x000c, 0xd32: 0x000c, 0xd33: 0x000c, 0xd34: 0x000c,
+       // Block 0x35, offset 0xd40
+       0xd42: 0x000c, 0xd45: 0x000c,
+       0xd46: 0x000c,
+       0xd4d: 0x000c,
+       0xd5d: 0x000c,
+       // Block 0x36, offset 0xd80
+       0xd9d: 0x000c,
+       0xd9e: 0x000c, 0xd9f: 0x000c,
+       // Block 0x37, offset 0xdc0
+       0xdd0: 0x000a, 0xdd1: 0x000a,
+       0xdd2: 0x000a, 0xdd3: 0x000a, 0xdd4: 0x000a, 0xdd5: 0x000a, 0xdd6: 0x000a, 0xdd7: 0x000a,
+       0xdd8: 0x000a, 0xdd9: 0x000a,
+       // Block 0x38, offset 0xe00
+       0xe00: 0x000a,
+       // Block 0x39, offset 0xe40
+       0xe40: 0x0009,
+       0xe5b: 0x007a, 0xe5c: 0x006a,
+       // Block 0x3a, offset 0xe80
+       0xe92: 0x000c, 0xe93: 0x000c, 0xe94: 0x000c,
+       0xeb2: 0x000c, 0xeb3: 0x000c, 0xeb4: 0x000c,
+       // Block 0x3b, offset 0xec0
+       0xed2: 0x000c, 0xed3: 0x000c,
+       0xef2: 0x000c, 0xef3: 0x000c,
+       // Block 0x3c, offset 0xf00
+       0xf34: 0x000c, 0xf35: 0x000c,
+       0xf37: 0x000c, 0xf38: 0x000c, 0xf39: 0x000c, 0xf3a: 0x000c, 0xf3b: 0x000c,
+       0xf3c: 0x000c, 0xf3d: 0x000c,
+       // Block 0x3d, offset 0xf40
+       0xf46: 0x000c, 0xf49: 0x000c, 0xf4a: 0x000c, 0xf4b: 0x000c,
+       0xf4c: 0x000c, 0xf4d: 0x000c, 0xf4e: 0x000c, 0xf4f: 0x000c, 0xf50: 0x000c, 0xf51: 0x000c,
+       0xf52: 0x000c, 0xf53: 0x000c,
+       0xf5b: 0x0004, 0xf5d: 0x000c,
+       0xf70: 0x000a, 0xf71: 0x000a, 0xf72: 0x000a, 0xf73: 0x000a, 0xf74: 0x000a, 0xf75: 0x000a,
+       0xf76: 0x000a, 0xf77: 0x000a, 0xf78: 0x000a, 0xf79: 0x000a,
+       // Block 0x3e, offset 0xf80
+       0xf80: 0x000a, 0xf81: 0x000a, 0xf82: 0x000a, 0xf83: 0x000a, 0xf84: 0x000a, 0xf85: 0x000a,
+       0xf86: 0x000a, 0xf87: 0x000a, 0xf88: 0x000a, 0xf89: 0x000a, 0xf8a: 0x000a, 0xf8b: 0x000c,
+       0xf8c: 0x000c, 0xf8d: 0x000c, 0xf8e: 0x000b,
+       // Block 0x3f, offset 0xfc0
+       0xfc5: 0x000c,
+       0xfc6: 0x000c,
+       0xfe9: 0x000c,
+       // Block 0x40, offset 0x1000
+       0x1020: 0x000c, 0x1021: 0x000c, 0x1022: 0x000c,
+       0x1027: 0x000c, 0x1028: 0x000c,
+       0x1032: 0x000c,
+       0x1039: 0x000c, 0x103a: 0x000c, 0x103b: 0x000c,
+       // Block 0x41, offset 0x1040
+       0x1040: 0x000a, 0x1044: 0x000a, 0x1045: 0x000a,
+       // Block 0x42, offset 0x1080
+       0x109e: 0x000a, 0x109f: 0x000a, 0x10a0: 0x000a, 0x10a1: 0x000a, 0x10a2: 0x000a, 0x10a3: 0x000a,
+       0x10a4: 0x000a, 0x10a5: 0x000a, 0x10a6: 0x000a, 0x10a7: 0x000a, 0x10a8: 0x000a, 0x10a9: 0x000a,
+       0x10aa: 0x000a, 0x10ab: 0x000a, 0x10ac: 0x000a, 0x10ad: 0x000a, 0x10ae: 0x000a, 0x10af: 0x000a,
+       0x10b0: 0x000a, 0x10b1: 0x000a, 0x10b2: 0x000a, 0x10b3: 0x000a, 0x10b4: 0x000a, 0x10b5: 0x000a,
+       0x10b6: 0x000a, 0x10b7: 0x000a, 0x10b8: 0x000a, 0x10b9: 0x000a, 0x10ba: 0x000a, 0x10bb: 0x000a,
+       0x10bc: 0x000a, 0x10bd: 0x000a, 0x10be: 0x000a, 0x10bf: 0x000a,
+       // Block 0x43, offset 0x10c0
+       0x10d7: 0x000c,
+       0x10d8: 0x000c, 0x10db: 0x000c,
+       // Block 0x44, offset 0x1100
+       0x1116: 0x000c,
+       0x1118: 0x000c, 0x1119: 0x000c, 0x111a: 0x000c, 0x111b: 0x000c, 0x111c: 0x000c, 0x111d: 0x000c,
+       0x111e: 0x000c, 0x1120: 0x000c, 0x1122: 0x000c,
+       0x1125: 0x000c, 0x1126: 0x000c, 0x1127: 0x000c, 0x1128: 0x000c, 0x1129: 0x000c,
+       0x112a: 0x000c, 0x112b: 0x000c, 0x112c: 0x000c,
+       0x1133: 0x000c, 0x1134: 0x000c, 0x1135: 0x000c,
+       0x1136: 0x000c, 0x1137: 0x000c, 0x1138: 0x000c, 0x1139: 0x000c, 0x113a: 0x000c, 0x113b: 0x000c,
+       0x113c: 0x000c, 0x113f: 0x000c,
+       // Block 0x45, offset 0x1140
+       0x1170: 0x000c, 0x1171: 0x000c, 0x1172: 0x000c, 0x1173: 0x000c, 0x1174: 0x000c, 0x1175: 0x000c,
+       0x1176: 0x000c, 0x1177: 0x000c, 0x1178: 0x000c, 0x1179: 0x000c, 0x117a: 0x000c, 0x117b: 0x000c,
+       0x117c: 0x000c, 0x117d: 0x000c, 0x117e: 0x000c,
+       // Block 0x46, offset 0x1180
+       0x1180: 0x000c, 0x1181: 0x000c, 0x1182: 0x000c, 0x1183: 0x000c,
+       0x11b4: 0x000c,
+       0x11b6: 0x000c, 0x11b7: 0x000c, 0x11b8: 0x000c, 0x11b9: 0x000c, 0x11ba: 0x000c,
+       0x11bc: 0x000c,
+       // Block 0x47, offset 0x11c0
+       0x11c2: 0x000c,
+       0x11eb: 0x000c, 0x11ec: 0x000c, 0x11ed: 0x000c, 0x11ee: 0x000c, 0x11ef: 0x000c,
+       0x11f0: 0x000c, 0x11f1: 0x000c, 0x11f2: 0x000c, 0x11f3: 0x000c,
+       // Block 0x48, offset 0x1200
+       0x1200: 0x000c, 0x1201: 0x000c,
+       0x1222: 0x000c, 0x1223: 0x000c,
+       0x1224: 0x000c, 0x1225: 0x000c, 0x1228: 0x000c, 0x1229: 0x000c,
+       0x122b: 0x000c, 0x122c: 0x000c, 0x122d: 0x000c,
+       // Block 0x49, offset 0x1240
+       0x1266: 0x000c, 0x1268: 0x000c, 0x1269: 0x000c,
+       0x126d: 0x000c, 0x126f: 0x000c,
+       0x1270: 0x000c, 0x1271: 0x000c,
+       // Block 0x4a, offset 0x1280
+       0x12ac: 0x000c, 0x12ad: 0x000c, 0x12ae: 0x000c, 0x12af: 0x000c,
+       0x12b0: 0x000c, 0x12b1: 0x000c, 0x12b2: 0x000c, 0x12b3: 0x000c,
+       0x12b6: 0x000c, 0x12b7: 0x000c,
+       // Block 0x4b, offset 0x12c0
+       0x12d0: 0x000c, 0x12d1: 0x000c,
+       0x12d2: 0x000c, 0x12d4: 0x000c, 0x12d5: 0x000c, 0x12d6: 0x000c, 0x12d7: 0x000c,
+       0x12d8: 0x000c, 0x12d9: 0x000c, 0x12da: 0x000c, 0x12db: 0x000c, 0x12dc: 0x000c, 0x12dd: 0x000c,
+       0x12de: 0x000c, 0x12df: 0x000c, 0x12e0: 0x000c, 0x12e2: 0x000c, 0x12e3: 0x000c,
+       0x12e4: 0x000c, 0x12e5: 0x000c, 0x12e6: 0x000c, 0x12e7: 0x000c, 0x12e8: 0x000c,
+       0x12ed: 0x000c,
+       0x12f4: 0x000c,
+       0x12f8: 0x000c, 0x12f9: 0x000c,
+       // Block 0x4c, offset 0x1300
+       0x1300: 0x000c, 0x1301: 0x000c, 0x1302: 0x000c, 0x1303: 0x000c, 0x1304: 0x000c, 0x1305: 0x000c,
+       0x1306: 0x000c, 0x1307: 0x000c, 0x1308: 0x000c, 0x1309: 0x000c, 0x130a: 0x000c, 0x130b: 0x000c,
+       0x130c: 0x000c, 0x130d: 0x000c, 0x130e: 0x000c, 0x130f: 0x000c, 0x1310: 0x000c, 0x1311: 0x000c,
+       0x1312: 0x000c, 0x1313: 0x000c, 0x1314: 0x000c, 0x1315: 0x000c, 0x1316: 0x000c, 0x1317: 0x000c,
+       0x1318: 0x000c, 0x1319: 0x000c, 0x131a: 0x000c, 0x131b: 0x000c, 0x131c: 0x000c, 0x131d: 0x000c,
+       0x131e: 0x000c, 0x131f: 0x000c, 0x1320: 0x000c, 0x1321: 0x000c, 0x1322: 0x000c, 0x1323: 0x000c,
+       0x1324: 0x000c, 0x1325: 0x000c, 0x1326: 0x000c, 0x1327: 0x000c, 0x1328: 0x000c, 0x1329: 0x000c,
+       0x132a: 0x000c, 0x132b: 0x000c, 0x132c: 0x000c, 0x132d: 0x000c, 0x132e: 0x000c, 0x132f: 0x000c,
+       0x1330: 0x000c, 0x1331: 0x000c, 0x1332: 0x000c, 0x1333: 0x000c, 0x1334: 0x000c, 0x1335: 0x000c,
+       0x1336: 0x000c, 0x1337: 0x000c, 0x1338: 0x000c, 0x1339: 0x000c, 0x133b: 0x000c,
+       0x133c: 0x000c, 0x133d: 0x000c, 0x133e: 0x000c, 0x133f: 0x000c,
+       // Block 0x4d, offset 0x1340
+       0x137d: 0x000a, 0x137f: 0x000a,
+       // Block 0x4e, offset 0x1380
+       0x1380: 0x000a, 0x1381: 0x000a,
+       0x138d: 0x000a, 0x138e: 0x000a, 0x138f: 0x000a,
+       0x139d: 0x000a,
+       0x139e: 0x000a, 0x139f: 0x000a,
+       0x13ad: 0x000a, 0x13ae: 0x000a, 0x13af: 0x000a,
+       0x13bd: 0x000a, 0x13be: 0x000a,
+       // Block 0x4f, offset 0x13c0
+       0x13c0: 0x0009, 0x13c1: 0x0009, 0x13c2: 0x0009, 0x13c3: 0x0009, 0x13c4: 0x0009, 0x13c5: 0x0009,
+       0x13c6: 0x0009, 0x13c7: 0x0009, 0x13c8: 0x0009, 0x13c9: 0x0009, 0x13ca: 0x0009, 0x13cb: 0x000b,
+       0x13cc: 0x000b, 0x13cd: 0x000b, 0x13cf: 0x0001, 0x13d0: 0x000a, 0x13d1: 0x000a,
+       0x13d2: 0x000a, 0x13d3: 0x000a, 0x13d4: 0x000a, 0x13d5: 0x000a, 0x13d6: 0x000a, 0x13d7: 0x000a,
+       0x13d8: 0x000a, 0x13d9: 0x000a, 0x13da: 0x000a, 0x13db: 0x000a, 0x13dc: 0x000a, 0x13dd: 0x000a,
+       0x13de: 0x000a, 0x13df: 0x000a, 0x13e0: 0x000a, 0x13e1: 0x000a, 0x13e2: 0x000a, 0x13e3: 0x000a,
+       0x13e4: 0x000a, 0x13e5: 0x000a, 0x13e6: 0x000a, 0x13e7: 0x000a, 0x13e8: 0x0009, 0x13e9: 0x0007,
+       0x13ea: 0x000e, 0x13eb: 0x000e, 0x13ec: 0x000e, 0x13ed: 0x000e, 0x13ee: 0x000e, 0x13ef: 0x0006,
+       0x13f0: 0x0004, 0x13f1: 0x0004, 0x13f2: 0x0004, 0x13f3: 0x0004, 0x13f4: 0x0004, 0x13f5: 0x000a,
+       0x13f6: 0x000a, 0x13f7: 0x000a, 0x13f8: 0x000a, 0x13f9: 0x000a, 0x13fa: 0x000a, 0x13fb: 0x000a,
+       0x13fc: 0x000a, 0x13fd: 0x000a, 0x13fe: 0x000a, 0x13ff: 0x000a,
+       // Block 0x50, offset 0x1400
+       0x1400: 0x000a, 0x1401: 0x000a, 0x1402: 0x000a, 0x1403: 0x000a, 0x1404: 0x0006, 0x1405: 0x009a,
+       0x1406: 0x008a, 0x1407: 0x000a, 0x1408: 0x000a, 0x1409: 0x000a, 0x140a: 0x000a, 0x140b: 0x000a,
+       0x140c: 0x000a, 0x140d: 0x000a, 0x140e: 0x000a, 0x140f: 0x000a, 0x1410: 0x000a, 0x1411: 0x000a,
+       0x1412: 0x000a, 0x1413: 0x000a, 0x1414: 0x000a, 0x1415: 0x000a, 0x1416: 0x000a, 0x1417: 0x000a,
+       0x1418: 0x000a, 0x1419: 0x000a, 0x141a: 0x000a, 0x141b: 0x000a, 0x141c: 0x000a, 0x141d: 0x000a,
+       0x141e: 0x000a, 0x141f: 0x0009, 0x1420: 0x000b, 0x1421: 0x000b, 0x1422: 0x000b, 0x1423: 0x000b,
+       0x1424: 0x000b, 0x1425: 0x000b, 0x1426: 0x000e, 0x1427: 0x000e, 0x1428: 0x000e, 0x1429: 0x000e,
+       0x142a: 0x000b, 0x142b: 0x000b, 0x142c: 0x000b, 0x142d: 0x000b, 0x142e: 0x000b, 0x142f: 0x000b,
+       0x1430: 0x0002, 0x1434: 0x0002, 0x1435: 0x0002,
+       0x1436: 0x0002, 0x1437: 0x0002, 0x1438: 0x0002, 0x1439: 0x0002, 0x143a: 0x0003, 0x143b: 0x0003,
+       0x143c: 0x000a, 0x143d: 0x009a, 0x143e: 0x008a,
+       // Block 0x51, offset 0x1440
+       0x1440: 0x0002, 0x1441: 0x0002, 0x1442: 0x0002, 0x1443: 0x0002, 0x1444: 0x0002, 0x1445: 0x0002,
+       0x1446: 0x0002, 0x1447: 0x0002, 0x1448: 0x0002, 0x1449: 0x0002, 0x144a: 0x0003, 0x144b: 0x0003,
+       0x144c: 0x000a, 0x144d: 0x009a, 0x144e: 0x008a,
+       0x1460: 0x0004, 0x1461: 0x0004, 0x1462: 0x0004, 0x1463: 0x0004,
+       0x1464: 0x0004, 0x1465: 0x0004, 0x1466: 0x0004, 0x1467: 0x0004, 0x1468: 0x0004, 0x1469: 0x0004,
+       0x146a: 0x0004, 0x146b: 0x0004, 0x146c: 0x0004, 0x146d: 0x0004, 0x146e: 0x0004, 0x146f: 0x0004,
+       0x1470: 0x0004, 0x1471: 0x0004, 0x1472: 0x0004, 0x1473: 0x0004, 0x1474: 0x0004, 0x1475: 0x0004,
+       0x1476: 0x0004, 0x1477: 0x0004, 0x1478: 0x0004, 0x1479: 0x0004, 0x147a: 0x0004, 0x147b: 0x0004,
+       0x147c: 0x0004, 0x147d: 0x0004, 0x147e: 0x0004, 0x147f: 0x0004,
+       // Block 0x52, offset 0x1480
+       0x1480: 0x0004, 0x1481: 0x0004, 0x1482: 0x0004, 0x1483: 0x0004, 0x1484: 0x0004, 0x1485: 0x0004,
+       0x1486: 0x0004, 0x1487: 0x0004, 0x1488: 0x0004, 0x1489: 0x0004, 0x148a: 0x0004, 0x148b: 0x0004,
+       0x148c: 0x0004, 0x148d: 0x0004, 0x148e: 0x0004, 0x148f: 0x0004, 0x1490: 0x000c, 0x1491: 0x000c,
+       0x1492: 0x000c, 0x1493: 0x000c, 0x1494: 0x000c, 0x1495: 0x000c, 0x1496: 0x000c, 0x1497: 0x000c,
+       0x1498: 0x000c, 0x1499: 0x000c, 0x149a: 0x000c, 0x149b: 0x000c, 0x149c: 0x000c, 0x149d: 0x000c,
+       0x149e: 0x000c, 0x149f: 0x000c, 0x14a0: 0x000c, 0x14a1: 0x000c, 0x14a2: 0x000c, 0x14a3: 0x000c,
+       0x14a4: 0x000c, 0x14a5: 0x000c, 0x14a6: 0x000c, 0x14a7: 0x000c, 0x14a8: 0x000c, 0x14a9: 0x000c,
+       0x14aa: 0x000c, 0x14ab: 0x000c, 0x14ac: 0x000c, 0x14ad: 0x000c, 0x14ae: 0x000c, 0x14af: 0x000c,
+       0x14b0: 0x000c,
+       // Block 0x53, offset 0x14c0
+       0x14c0: 0x000a, 0x14c1: 0x000a, 0x14c3: 0x000a, 0x14c4: 0x000a, 0x14c5: 0x000a,
+       0x14c6: 0x000a, 0x14c8: 0x000a, 0x14c9: 0x000a,
+       0x14d4: 0x000a, 0x14d6: 0x000a, 0x14d7: 0x000a,
+       0x14d8: 0x000a,
+       0x14de: 0x000a, 0x14df: 0x000a, 0x14e0: 0x000a, 0x14e1: 0x000a, 0x14e2: 0x000a, 0x14e3: 0x000a,
+       0x14e5: 0x000a, 0x14e7: 0x000a, 0x14e9: 0x000a,
+       0x14ee: 0x0004,
+       0x14fa: 0x000a, 0x14fb: 0x000a,
+       // Block 0x54, offset 0x1500
+       0x1500: 0x000a, 0x1501: 0x000a, 0x1502: 0x000a, 0x1503: 0x000a, 0x1504: 0x000a,
+       0x150a: 0x000a, 0x150b: 0x000a,
+       0x150c: 0x000a, 0x150d: 0x000a, 0x1510: 0x000a, 0x1511: 0x000a,
+       0x1512: 0x000a, 0x1513: 0x000a, 0x1514: 0x000a, 0x1515: 0x000a, 0x1516: 0x000a, 0x1517: 0x000a,
+       0x1518: 0x000a, 0x1519: 0x000a, 0x151a: 0x000a, 0x151b: 0x000a, 0x151c: 0x000a, 0x151d: 0x000a,
+       0x151e: 0x000a, 0x151f: 0x000a,
+       // Block 0x55, offset 0x1540
+       0x1549: 0x000a, 0x154a: 0x000a, 0x154b: 0x000a,
+       0x1550: 0x000a, 0x1551: 0x000a,
+       0x1552: 0x000a, 0x1553: 0x000a, 0x1554: 0x000a, 0x1555: 0x000a, 0x1556: 0x000a, 0x1557: 0x000a,
+       0x1558: 0x000a, 0x1559: 0x000a, 0x155a: 0x000a, 0x155b: 0x000a, 0x155c: 0x000a, 0x155d: 0x000a,
+       0x155e: 0x000a, 0x155f: 0x000a, 0x1560: 0x000a, 0x1561: 0x000a, 0x1562: 0x000a, 0x1563: 0x000a,
+       0x1564: 0x000a, 0x1565: 0x000a, 0x1566: 0x000a, 0x1567: 0x000a, 0x1568: 0x000a, 0x1569: 0x000a,
+       0x156a: 0x000a, 0x156b: 0x000a, 0x156c: 0x000a, 0x156d: 0x000a, 0x156e: 0x000a, 0x156f: 0x000a,
+       0x1570: 0x000a, 0x1571: 0x000a, 0x1572: 0x000a, 0x1573: 0x000a, 0x1574: 0x000a, 0x1575: 0x000a,
+       0x1576: 0x000a, 0x1577: 0x000a, 0x1578: 0x000a, 0x1579: 0x000a, 0x157a: 0x000a, 0x157b: 0x000a,
+       0x157c: 0x000a, 0x157d: 0x000a, 0x157e: 0x000a, 0x157f: 0x000a,
+       // Block 0x56, offset 0x1580
+       0x1580: 0x000a, 0x1581: 0x000a, 0x1582: 0x000a, 0x1583: 0x000a, 0x1584: 0x000a, 0x1585: 0x000a,
+       0x1586: 0x000a, 0x1587: 0x000a, 0x1588: 0x000a, 0x1589: 0x000a, 0x158a: 0x000a, 0x158b: 0x000a,
+       0x158c: 0x000a, 0x158d: 0x000a, 0x158e: 0x000a, 0x158f: 0x000a, 0x1590: 0x000a, 0x1591: 0x000a,
+       0x1592: 0x000a, 0x1593: 0x000a, 0x1594: 0x000a, 0x1595: 0x000a, 0x1596: 0x000a, 0x1597: 0x000a,
+       0x1598: 0x000a, 0x1599: 0x000a, 0x159a: 0x000a, 0x159b: 0x000a, 0x159c: 0x000a, 0x159d: 0x000a,
+       0x159e: 0x000a, 0x159f: 0x000a, 0x15a0: 0x000a, 0x15a1: 0x000a, 0x15a2: 0x000a, 0x15a3: 0x000a,
+       0x15a4: 0x000a, 0x15a5: 0x000a, 0x15a6: 0x000a, 0x15a7: 0x000a, 0x15a8: 0x000a, 0x15a9: 0x000a,
+       0x15aa: 0x000a, 0x15ab: 0x000a, 0x15ac: 0x000a, 0x15ad: 0x000a, 0x15ae: 0x000a, 0x15af: 0x000a,
+       0x15b0: 0x000a, 0x15b1: 0x000a, 0x15b2: 0x000a, 0x15b3: 0x000a, 0x15b4: 0x000a, 0x15b5: 0x000a,
+       0x15b6: 0x000a, 0x15b7: 0x000a, 0x15b8: 0x000a, 0x15b9: 0x000a, 0x15ba: 0x000a, 0x15bb: 0x000a,
+       0x15bc: 0x000a, 0x15bd: 0x000a, 0x15be: 0x000a, 0x15bf: 0x000a,
+       // Block 0x57, offset 0x15c0
+       0x15c0: 0x000a, 0x15c1: 0x000a, 0x15c2: 0x000a, 0x15c3: 0x000a, 0x15c4: 0x000a, 0x15c5: 0x000a,
+       0x15c6: 0x000a, 0x15c7: 0x000a, 0x15c8: 0x000a, 0x15c9: 0x000a, 0x15ca: 0x000a, 0x15cb: 0x000a,
+       0x15cc: 0x000a, 0x15cd: 0x000a, 0x15ce: 0x000a, 0x15cf: 0x000a, 0x15d0: 0x000a, 0x15d1: 0x000a,
+       0x15d2: 0x0003, 0x15d3: 0x0004, 0x15d4: 0x000a, 0x15d5: 0x000a, 0x15d6: 0x000a, 0x15d7: 0x000a,
+       0x15d8: 0x000a, 0x15d9: 0x000a, 0x15da: 0x000a, 0x15db: 0x000a, 0x15dc: 0x000a, 0x15dd: 0x000a,
+       0x15de: 0x000a, 0x15df: 0x000a, 0x15e0: 0x000a, 0x15e1: 0x000a, 0x15e2: 0x000a, 0x15e3: 0x000a,
+       0x15e4: 0x000a, 0x15e5: 0x000a, 0x15e6: 0x000a, 0x15e7: 0x000a, 0x15e8: 0x000a, 0x15e9: 0x000a,
+       0x15ea: 0x000a, 0x15eb: 0x000a, 0x15ec: 0x000a, 0x15ed: 0x000a, 0x15ee: 0x000a, 0x15ef: 0x000a,
+       0x15f0: 0x000a, 0x15f1: 0x000a, 0x15f2: 0x000a, 0x15f3: 0x000a, 0x15f4: 0x000a, 0x15f5: 0x000a,
+       0x15f6: 0x000a, 0x15f7: 0x000a, 0x15f8: 0x000a, 0x15f9: 0x000a, 0x15fa: 0x000a, 0x15fb: 0x000a,
+       0x15fc: 0x000a, 0x15fd: 0x000a, 0x15fe: 0x000a, 0x15ff: 0x000a,
+       // Block 0x58, offset 0x1600
+       0x1600: 0x000a, 0x1601: 0x000a, 0x1602: 0x000a, 0x1603: 0x000a, 0x1604: 0x000a, 0x1605: 0x000a,
+       0x1606: 0x000a, 0x1607: 0x000a, 0x1608: 0x003a, 0x1609: 0x002a, 0x160a: 0x003a, 0x160b: 0x002a,
+       0x160c: 0x000a, 0x160d: 0x000a, 0x160e: 0x000a, 0x160f: 0x000a, 0x1610: 0x000a, 0x1611: 0x000a,
+       0x1612: 0x000a, 0x1613: 0x000a, 0x1614: 0x000a, 0x1615: 0x000a, 0x1616: 0x000a, 0x1617: 0x000a,
+       0x1618: 0x000a, 0x1619: 0x000a, 0x161a: 0x000a, 0x161b: 0x000a, 0x161c: 0x000a, 0x161d: 0x000a,
+       0x161e: 0x000a, 0x161f: 0x000a, 0x1620: 0x000a, 0x1621: 0x000a, 0x1622: 0x000a, 0x1623: 0x000a,
+       0x1624: 0x000a, 0x1625: 0x000a, 0x1626: 0x000a, 0x1627: 0x000a, 0x1628: 0x000a, 0x1629: 0x009a,
+       0x162a: 0x008a, 0x162b: 0x000a, 0x162c: 0x000a, 0x162d: 0x000a, 0x162e: 0x000a, 0x162f: 0x000a,
+       0x1630: 0x000a, 0x1631: 0x000a, 0x1632: 0x000a, 0x1633: 0x000a, 0x1634: 0x000a, 0x1635: 0x000a,
+       // Block 0x59, offset 0x1640
+       0x167b: 0x000a,
+       0x167c: 0x000a, 0x167d: 0x000a, 0x167e: 0x000a, 0x167f: 0x000a,
+       // Block 0x5a, offset 0x1680
+       0x1680: 0x000a, 0x1681: 0x000a, 0x1682: 0x000a, 0x1683: 0x000a, 0x1684: 0x000a, 0x1685: 0x000a,
+       0x1686: 0x000a, 0x1687: 0x000a, 0x1688: 0x000a, 0x1689: 0x000a, 0x168a: 0x000a, 0x168b: 0x000a,
+       0x168c: 0x000a, 0x168d: 0x000a, 0x168e: 0x000a, 0x168f: 0x000a, 0x1690: 0x000a, 0x1691: 0x000a,
+       0x1692: 0x000a, 0x1693: 0x000a, 0x1694: 0x000a, 0x1696: 0x000a, 0x1697: 0x000a,
+       0x1698: 0x000a, 0x1699: 0x000a, 0x169a: 0x000a, 0x169b: 0x000a, 0x169c: 0x000a, 0x169d: 0x000a,
+       0x169e: 0x000a, 0x169f: 0x000a, 0x16a0: 0x000a, 0x16a1: 0x000a, 0x16a2: 0x000a, 0x16a3: 0x000a,
+       0x16a4: 0x000a, 0x16a5: 0x000a, 0x16a6: 0x000a, 0x16a7: 0x000a, 0x16a8: 0x000a, 0x16a9: 0x000a,
+       0x16aa: 0x000a, 0x16ab: 0x000a, 0x16ac: 0x000a, 0x16ad: 0x000a, 0x16ae: 0x000a, 0x16af: 0x000a,
+       0x16b0: 0x000a, 0x16b1: 0x000a, 0x16b2: 0x000a, 0x16b3: 0x000a, 0x16b4: 0x000a, 0x16b5: 0x000a,
+       0x16b6: 0x000a, 0x16b7: 0x000a, 0x16b8: 0x000a, 0x16b9: 0x000a, 0x16ba: 0x000a, 0x16bb: 0x000a,
+       0x16bc: 0x000a, 0x16bd: 0x000a, 0x16be: 0x000a, 0x16bf: 0x000a,
+       // Block 0x5b, offset 0x16c0
+       0x16c0: 0x000a, 0x16c1: 0x000a, 0x16c2: 0x000a, 0x16c3: 0x000a, 0x16c4: 0x000a, 0x16c5: 0x000a,
+       0x16c6: 0x000a, 0x16c7: 0x000a, 0x16c8: 0x000a, 0x16c9: 0x000a, 0x16ca: 0x000a, 0x16cb: 0x000a,
+       0x16cc: 0x000a, 0x16cd: 0x000a, 0x16ce: 0x000a, 0x16cf: 0x000a, 0x16d0: 0x000a, 0x16d1: 0x000a,
+       0x16d2: 0x000a, 0x16d3: 0x000a, 0x16d4: 0x000a, 0x16d5: 0x000a, 0x16d6: 0x000a, 0x16d7: 0x000a,
+       0x16d8: 0x000a, 0x16d9: 0x000a, 0x16da: 0x000a, 0x16db: 0x000a, 0x16dc: 0x000a, 0x16dd: 0x000a,
+       0x16de: 0x000a, 0x16df: 0x000a, 0x16e0: 0x000a, 0x16e1: 0x000a, 0x16e2: 0x000a, 0x16e3: 0x000a,
+       0x16e4: 0x000a, 0x16e5: 0x000a, 0x16e6: 0x000a,
+       // Block 0x5c, offset 0x1700
+       0x1700: 0x000a, 0x1701: 0x000a, 0x1702: 0x000a, 0x1703: 0x000a, 0x1704: 0x000a, 0x1705: 0x000a,
+       0x1706: 0x000a, 0x1707: 0x000a, 0x1708: 0x000a, 0x1709: 0x000a, 0x170a: 0x000a,
+       0x1720: 0x000a, 0x1721: 0x000a, 0x1722: 0x000a, 0x1723: 0x000a,
+       0x1724: 0x000a, 0x1725: 0x000a, 0x1726: 0x000a, 0x1727: 0x000a, 0x1728: 0x000a, 0x1729: 0x000a,
+       0x172a: 0x000a, 0x172b: 0x000a, 0x172c: 0x000a, 0x172d: 0x000a, 0x172e: 0x000a, 0x172f: 0x000a,
+       0x1730: 0x000a, 0x1731: 0x000a, 0x1732: 0x000a, 0x1733: 0x000a, 0x1734: 0x000a, 0x1735: 0x000a,
+       0x1736: 0x000a, 0x1737: 0x000a, 0x1738: 0x000a, 0x1739: 0x000a, 0x173a: 0x000a, 0x173b: 0x000a,
+       0x173c: 0x000a, 0x173d: 0x000a, 0x173e: 0x000a, 0x173f: 0x000a,
+       // Block 0x5d, offset 0x1740
+       0x1740: 0x000a, 0x1741: 0x000a, 0x1742: 0x000a, 0x1743: 0x000a, 0x1744: 0x000a, 0x1745: 0x000a,
+       0x1746: 0x000a, 0x1747: 0x000a, 0x1748: 0x0002, 0x1749: 0x0002, 0x174a: 0x0002, 0x174b: 0x0002,
+       0x174c: 0x0002, 0x174d: 0x0002, 0x174e: 0x0002, 0x174f: 0x0002, 0x1750: 0x0002, 0x1751: 0x0002,
+       0x1752: 0x0002, 0x1753: 0x0002, 0x1754: 0x0002, 0x1755: 0x0002, 0x1756: 0x0002, 0x1757: 0x0002,
+       0x1758: 0x0002, 0x1759: 0x0002, 0x175a: 0x0002, 0x175b: 0x0002,
+       // Block 0x5e, offset 0x1780
+       0x17aa: 0x000a, 0x17ab: 0x000a, 0x17ac: 0x000a, 0x17ad: 0x000a, 0x17ae: 0x000a, 0x17af: 0x000a,
+       0x17b0: 0x000a, 0x17b1: 0x000a, 0x17b2: 0x000a, 0x17b3: 0x000a, 0x17b4: 0x000a, 0x17b5: 0x000a,
+       0x17b6: 0x000a, 0x17b7: 0x000a, 0x17b8: 0x000a, 0x17b9: 0x000a, 0x17ba: 0x000a, 0x17bb: 0x000a,
+       0x17bc: 0x000a, 0x17bd: 0x000a, 0x17be: 0x000a, 0x17bf: 0x000a,
+       // Block 0x5f, offset 0x17c0
+       0x17c0: 0x000a, 0x17c1: 0x000a, 0x17c2: 0x000a, 0x17c3: 0x000a, 0x17c4: 0x000a, 0x17c5: 0x000a,
+       0x17c6: 0x000a, 0x17c7: 0x000a, 0x17c8: 0x000a, 0x17c9: 0x000a, 0x17ca: 0x000a, 0x17cb: 0x000a,
+       0x17cc: 0x000a, 0x17cd: 0x000a, 0x17ce: 0x000a, 0x17cf: 0x000a, 0x17d0: 0x000a, 0x17d1: 0x000a,
+       0x17d2: 0x000a, 0x17d3: 0x000a, 0x17d4: 0x000a, 0x17d5: 0x000a, 0x17d6: 0x000a, 0x17d7: 0x000a,
+       0x17d8: 0x000a, 0x17d9: 0x000a, 0x17da: 0x000a, 0x17db: 0x000a, 0x17dc: 0x000a, 0x17dd: 0x000a,
+       0x17de: 0x000a, 0x17df: 0x000a, 0x17e0: 0x000a, 0x17e1: 0x000a, 0x17e2: 0x000a, 0x17e3: 0x000a,
+       0x17e4: 0x000a, 0x17e5: 0x000a, 0x17e6: 0x000a, 0x17e7: 0x000a, 0x17e8: 0x000a, 0x17e9: 0x000a,
+       0x17ea: 0x000a, 0x17eb: 0x000a, 0x17ed: 0x000a, 0x17ee: 0x000a, 0x17ef: 0x000a,
+       0x17f0: 0x000a, 0x17f1: 0x000a, 0x17f2: 0x000a, 0x17f3: 0x000a, 0x17f4: 0x000a, 0x17f5: 0x000a,
+       0x17f6: 0x000a, 0x17f7: 0x000a, 0x17f8: 0x000a, 0x17f9: 0x000a, 0x17fa: 0x000a, 0x17fb: 0x000a,
+       0x17fc: 0x000a, 0x17fd: 0x000a, 0x17fe: 0x000a, 0x17ff: 0x000a,
+       // Block 0x60, offset 0x1800
+       0x1800: 0x000a, 0x1801: 0x000a, 0x1802: 0x000a, 0x1803: 0x000a, 0x1804: 0x000a, 0x1805: 0x000a,
+       0x1806: 0x000a, 0x1807: 0x000a, 0x1808: 0x000a, 0x1809: 0x000a, 0x180a: 0x000a, 0x180b: 0x000a,
+       0x180c: 0x000a, 0x180d: 0x000a, 0x180e: 0x000a, 0x180f: 0x000a, 0x1810: 0x000a, 0x1811: 0x000a,
+       0x1812: 0x000a, 0x1813: 0x000a, 0x1814: 0x000a, 0x1815: 0x000a, 0x1816: 0x000a, 0x1817: 0x000a,
+       0x1818: 0x000a, 0x1819: 0x000a, 0x181a: 0x000a, 0x181b: 0x000a, 0x181c: 0x000a, 0x181d: 0x000a,
+       0x181e: 0x000a, 0x181f: 0x000a, 0x1820: 0x000a, 0x1821: 0x000a, 0x1822: 0x000a, 0x1823: 0x000a,
+       0x1824: 0x000a, 0x1825: 0x000a, 0x1826: 0x000a, 0x1827: 0x000a, 0x1828: 0x003a, 0x1829: 0x002a,
+       0x182a: 0x003a, 0x182b: 0x002a, 0x182c: 0x003a, 0x182d: 0x002a, 0x182e: 0x003a, 0x182f: 0x002a,
+       0x1830: 0x003a, 0x1831: 0x002a, 0x1832: 0x003a, 0x1833: 0x002a, 0x1834: 0x003a, 0x1835: 0x002a,
+       0x1836: 0x000a, 0x1837: 0x000a, 0x1838: 0x000a, 0x1839: 0x000a, 0x183a: 0x000a, 0x183b: 0x000a,
+       0x183c: 0x000a, 0x183d: 0x000a, 0x183e: 0x000a, 0x183f: 0x000a,
+       // Block 0x61, offset 0x1840
+       0x1840: 0x000a, 0x1841: 0x000a, 0x1842: 0x000a, 0x1843: 0x000a, 0x1844: 0x000a, 0x1845: 0x009a,
+       0x1846: 0x008a, 0x1847: 0x000a, 0x1848: 0x000a, 0x1849: 0x000a, 0x184a: 0x000a, 0x184b: 0x000a,
+       0x184c: 0x000a, 0x184d: 0x000a, 0x184e: 0x000a, 0x184f: 0x000a, 0x1850: 0x000a, 0x1851: 0x000a,
+       0x1852: 0x000a, 0x1853: 0x000a, 0x1854: 0x000a, 0x1855: 0x000a, 0x1856: 0x000a, 0x1857: 0x000a,
+       0x1858: 0x000a, 0x1859: 0x000a, 0x185a: 0x000a, 0x185b: 0x000a, 0x185c: 0x000a, 0x185d: 0x000a,
+       0x185e: 0x000a, 0x185f: 0x000a, 0x1860: 0x000a, 0x1861: 0x000a, 0x1862: 0x000a, 0x1863: 0x000a,
+       0x1864: 0x000a, 0x1865: 0x000a, 0x1866: 0x003a, 0x1867: 0x002a, 0x1868: 0x003a, 0x1869: 0x002a,
+       0x186a: 0x003a, 0x186b: 0x002a, 0x186c: 0x003a, 0x186d: 0x002a, 0x186e: 0x003a, 0x186f: 0x002a,
+       0x1870: 0x000a, 0x1871: 0x000a, 0x1872: 0x000a, 0x1873: 0x000a, 0x1874: 0x000a, 0x1875: 0x000a,
+       0x1876: 0x000a, 0x1877: 0x000a, 0x1878: 0x000a, 0x1879: 0x000a, 0x187a: 0x000a, 0x187b: 0x000a,
+       0x187c: 0x000a, 0x187d: 0x000a, 0x187e: 0x000a, 0x187f: 0x000a,
+       // Block 0x62, offset 0x1880
+       0x1880: 0x000a, 0x1881: 0x000a, 0x1882: 0x000a, 0x1883: 0x007a, 0x1884: 0x006a, 0x1885: 0x009a,
+       0x1886: 0x008a, 0x1887: 0x00ba, 0x1888: 0x00aa, 0x1889: 0x009a, 0x188a: 0x008a, 0x188b: 0x007a,
+       0x188c: 0x006a, 0x188d: 0x00da, 0x188e: 0x002a, 0x188f: 0x003a, 0x1890: 0x00ca, 0x1891: 0x009a,
+       0x1892: 0x008a, 0x1893: 0x007a, 0x1894: 0x006a, 0x1895: 0x009a, 0x1896: 0x008a, 0x1897: 0x00ba,
+       0x1898: 0x00aa, 0x1899: 0x000a, 0x189a: 0x000a, 0x189b: 0x000a, 0x189c: 0x000a, 0x189d: 0x000a,
+       0x189e: 0x000a, 0x189f: 0x000a, 0x18a0: 0x000a, 0x18a1: 0x000a, 0x18a2: 0x000a, 0x18a3: 0x000a,
+       0x18a4: 0x000a, 0x18a5: 0x000a, 0x18a6: 0x000a, 0x18a7: 0x000a, 0x18a8: 0x000a, 0x18a9: 0x000a,
+       0x18aa: 0x000a, 0x18ab: 0x000a, 0x18ac: 0x000a, 0x18ad: 0x000a, 0x18ae: 0x000a, 0x18af: 0x000a,
+       0x18b0: 0x000a, 0x18b1: 0x000a, 0x18b2: 0x000a, 0x18b3: 0x000a, 0x18b4: 0x000a, 0x18b5: 0x000a,
+       0x18b6: 0x000a, 0x18b7: 0x000a, 0x18b8: 0x000a, 0x18b9: 0x000a, 0x18ba: 0x000a, 0x18bb: 0x000a,
+       0x18bc: 0x000a, 0x18bd: 0x000a, 0x18be: 0x000a, 0x18bf: 0x000a,
+       // Block 0x63, offset 0x18c0
+       0x18c0: 0x000a, 0x18c1: 0x000a, 0x18c2: 0x000a, 0x18c3: 0x000a, 0x18c4: 0x000a, 0x18c5: 0x000a,
+       0x18c6: 0x000a, 0x18c7: 0x000a, 0x18c8: 0x000a, 0x18c9: 0x000a, 0x18ca: 0x000a, 0x18cb: 0x000a,
+       0x18cc: 0x000a, 0x18cd: 0x000a, 0x18ce: 0x000a, 0x18cf: 0x000a, 0x18d0: 0x000a, 0x18d1: 0x000a,
+       0x18d2: 0x000a, 0x18d3: 0x000a, 0x18d4: 0x000a, 0x18d5: 0x000a, 0x18d6: 0x000a, 0x18d7: 0x000a,
+       0x18d8: 0x003a, 0x18d9: 0x002a, 0x18da: 0x003a, 0x18db: 0x002a, 0x18dc: 0x000a, 0x18dd: 0x000a,
+       0x18de: 0x000a, 0x18df: 0x000a, 0x18e0: 0x000a, 0x18e1: 0x000a, 0x18e2: 0x000a, 0x18e3: 0x000a,
+       0x18e4: 0x000a, 0x18e5: 0x000a, 0x18e6: 0x000a, 0x18e7: 0x000a, 0x18e8: 0x000a, 0x18e9: 0x000a,
+       0x18ea: 0x000a, 0x18eb: 0x000a, 0x18ec: 0x000a, 0x18ed: 0x000a, 0x18ee: 0x000a, 0x18ef: 0x000a,
+       0x18f0: 0x000a, 0x18f1: 0x000a, 0x18f2: 0x000a, 0x18f3: 0x000a, 0x18f4: 0x000a, 0x18f5: 0x000a,
+       0x18f6: 0x000a, 0x18f7: 0x000a, 0x18f8: 0x000a, 0x18f9: 0x000a, 0x18fa: 0x000a, 0x18fb: 0x000a,
+       0x18fc: 0x003a, 0x18fd: 0x002a, 0x18fe: 0x000a, 0x18ff: 0x000a,
+       // Block 0x64, offset 0x1900
+       0x1900: 0x000a, 0x1901: 0x000a, 0x1902: 0x000a, 0x1903: 0x000a, 0x1904: 0x000a, 0x1905: 0x000a,
+       0x1906: 0x000a, 0x1907: 0x000a, 0x1908: 0x000a, 0x1909: 0x000a, 0x190a: 0x000a, 0x190b: 0x000a,
+       0x190c: 0x000a, 0x190d: 0x000a, 0x190e: 0x000a, 0x190f: 0x000a, 0x1910: 0x000a, 0x1911: 0x000a,
+       0x1912: 0x000a, 0x1913: 0x000a, 0x1914: 0x000a, 0x1915: 0x000a, 0x1916: 0x000a, 0x1917: 0x000a,
+       0x1918: 0x000a, 0x1919: 0x000a, 0x191a: 0x000a, 0x191b: 0x000a, 0x191c: 0x000a, 0x191d: 0x000a,
+       0x191e: 0x000a, 0x191f: 0x000a, 0x1920: 0x000a, 0x1921: 0x000a, 0x1922: 0x000a, 0x1923: 0x000a,
+       0x1924: 0x000a, 0x1925: 0x000a, 0x1926: 0x000a, 0x1927: 0x000a, 0x1928: 0x000a, 0x1929: 0x000a,
+       0x192a: 0x000a, 0x192b: 0x000a, 0x192c: 0x000a, 0x192d: 0x000a, 0x192e: 0x000a, 0x192f: 0x000a,
+       0x1930: 0x000a, 0x1931: 0x000a, 0x1932: 0x000a, 0x1933: 0x000a,
+       0x1936: 0x000a, 0x1937: 0x000a, 0x1938: 0x000a, 0x1939: 0x000a, 0x193a: 0x000a, 0x193b: 0x000a,
+       0x193c: 0x000a, 0x193d: 0x000a, 0x193e: 0x000a, 0x193f: 0x000a,
+       // Block 0x65, offset 0x1940
+       0x1940: 0x000a, 0x1941: 0x000a, 0x1942: 0x000a, 0x1943: 0x000a, 0x1944: 0x000a, 0x1945: 0x000a,
+       0x1946: 0x000a, 0x1947: 0x000a, 0x1948: 0x000a, 0x1949: 0x000a, 0x194a: 0x000a, 0x194b: 0x000a,
+       0x194c: 0x000a, 0x194d: 0x000a, 0x194e: 0x000a, 0x194f: 0x000a, 0x1950: 0x000a, 0x1951: 0x000a,
+       0x1952: 0x000a, 0x1953: 0x000a, 0x1954: 0x000a, 0x1955: 0x000a,
+       0x1958: 0x000a, 0x1959: 0x000a, 0x195a: 0x000a, 0x195b: 0x000a, 0x195c: 0x000a, 0x195d: 0x000a,
+       0x195e: 0x000a, 0x195f: 0x000a, 0x1960: 0x000a, 0x1961: 0x000a, 0x1962: 0x000a, 0x1963: 0x000a,
+       0x1964: 0x000a, 0x1965: 0x000a, 0x1966: 0x000a, 0x1967: 0x000a, 0x1968: 0x000a, 0x1969: 0x000a,
+       0x196a: 0x000a, 0x196b: 0x000a, 0x196c: 0x000a, 0x196d: 0x000a, 0x196e: 0x000a, 0x196f: 0x000a,
+       0x1970: 0x000a, 0x1971: 0x000a, 0x1972: 0x000a, 0x1973: 0x000a, 0x1974: 0x000a, 0x1975: 0x000a,
+       0x1976: 0x000a, 0x1977: 0x000a, 0x1978: 0x000a, 0x1979: 0x000a, 0x197a: 0x000a, 0x197b: 0x000a,
+       0x197c: 0x000a, 0x197d: 0x000a, 0x197e: 0x000a, 0x197f: 0x000a,
+       // Block 0x66, offset 0x1980
+       0x1980: 0x000a, 0x1981: 0x000a, 0x1982: 0x000a, 0x1983: 0x000a, 0x1984: 0x000a, 0x1985: 0x000a,
+       0x1986: 0x000a, 0x1987: 0x000a, 0x1988: 0x000a, 0x198a: 0x000a, 0x198b: 0x000a,
+       0x198c: 0x000a, 0x198d: 0x000a, 0x198e: 0x000a, 0x198f: 0x000a, 0x1990: 0x000a, 0x1991: 0x000a,
+       0x1992: 0x000a, 0x1993: 0x000a, 0x1994: 0x000a, 0x1995: 0x000a, 0x1996: 0x000a, 0x1997: 0x000a,
+       0x1998: 0x000a, 0x1999: 0x000a, 0x199a: 0x000a, 0x199b: 0x000a, 0x199c: 0x000a, 0x199d: 0x000a,
+       0x199e: 0x000a, 0x199f: 0x000a, 0x19a0: 0x000a, 0x19a1: 0x000a, 0x19a2: 0x000a, 0x19a3: 0x000a,
+       0x19a4: 0x000a, 0x19a5: 0x000a, 0x19a6: 0x000a, 0x19a7: 0x000a, 0x19a8: 0x000a, 0x19a9: 0x000a,
+       0x19aa: 0x000a, 0x19ab: 0x000a, 0x19ac: 0x000a, 0x19ad: 0x000a, 0x19ae: 0x000a, 0x19af: 0x000a,
+       0x19b0: 0x000a, 0x19b1: 0x000a, 0x19b2: 0x000a, 0x19b3: 0x000a, 0x19b4: 0x000a, 0x19b5: 0x000a,
+       0x19b6: 0x000a, 0x19b7: 0x000a, 0x19b8: 0x000a, 0x19b9: 0x000a, 0x19ba: 0x000a, 0x19bb: 0x000a,
+       0x19bc: 0x000a, 0x19bd: 0x000a, 0x19be: 0x000a,
+       // Block 0x67, offset 0x19c0
+       0x19e5: 0x000a, 0x19e6: 0x000a, 0x19e7: 0x000a, 0x19e8: 0x000a, 0x19e9: 0x000a,
+       0x19ea: 0x000a, 0x19ef: 0x000c,
+       0x19f0: 0x000c, 0x19f1: 0x000c,
+       0x19f9: 0x000a, 0x19fa: 0x000a, 0x19fb: 0x000a,
+       0x19fc: 0x000a, 0x19fd: 0x000a, 0x19fe: 0x000a, 0x19ff: 0x000a,
+       // Block 0x68, offset 0x1a00
+       0x1a3f: 0x000c,
+       // Block 0x69, offset 0x1a40
+       0x1a60: 0x000c, 0x1a61: 0x000c, 0x1a62: 0x000c, 0x1a63: 0x000c,
+       0x1a64: 0x000c, 0x1a65: 0x000c, 0x1a66: 0x000c, 0x1a67: 0x000c, 0x1a68: 0x000c, 0x1a69: 0x000c,
+       0x1a6a: 0x000c, 0x1a6b: 0x000c, 0x1a6c: 0x000c, 0x1a6d: 0x000c, 0x1a6e: 0x000c, 0x1a6f: 0x000c,
+       0x1a70: 0x000c, 0x1a71: 0x000c, 0x1a72: 0x000c, 0x1a73: 0x000c, 0x1a74: 0x000c, 0x1a75: 0x000c,
+       0x1a76: 0x000c, 0x1a77: 0x000c, 0x1a78: 0x000c, 0x1a79: 0x000c, 0x1a7a: 0x000c, 0x1a7b: 0x000c,
+       0x1a7c: 0x000c, 0x1a7d: 0x000c, 0x1a7e: 0x000c, 0x1a7f: 0x000c,
+       // Block 0x6a, offset 0x1a80
+       0x1a80: 0x000a, 0x1a81: 0x000a, 0x1a82: 0x000a, 0x1a83: 0x000a, 0x1a84: 0x000a, 0x1a85: 0x000a,
+       0x1a86: 0x000a, 0x1a87: 0x000a, 0x1a88: 0x000a, 0x1a89: 0x000a, 0x1a8a: 0x000a, 0x1a8b: 0x000a,
+       0x1a8c: 0x000a, 0x1a8d: 0x000a, 0x1a8e: 0x000a, 0x1a8f: 0x000a, 0x1a90: 0x000a, 0x1a91: 0x000a,
+       0x1a92: 0x000a, 0x1a93: 0x000a, 0x1a94: 0x000a, 0x1a95: 0x000a, 0x1a96: 0x000a, 0x1a97: 0x000a,
+       0x1a98: 0x000a, 0x1a99: 0x000a, 0x1a9a: 0x000a, 0x1a9b: 0x000a, 0x1a9c: 0x000a, 0x1a9d: 0x000a,
+       0x1a9e: 0x000a, 0x1a9f: 0x000a, 0x1aa0: 0x000a, 0x1aa1: 0x000a, 0x1aa2: 0x003a, 0x1aa3: 0x002a,
+       0x1aa4: 0x003a, 0x1aa5: 0x002a, 0x1aa6: 0x003a, 0x1aa7: 0x002a, 0x1aa8: 0x003a, 0x1aa9: 0x002a,
+       0x1aaa: 0x000a, 0x1aab: 0x000a, 0x1aac: 0x000a, 0x1aad: 0x000a, 0x1aae: 0x000a, 0x1aaf: 0x000a,
+       0x1ab0: 0x000a, 0x1ab1: 0x000a, 0x1ab2: 0x000a, 0x1ab3: 0x000a, 0x1ab4: 0x000a, 0x1ab5: 0x000a,
+       0x1ab6: 0x000a, 0x1ab7: 0x000a, 0x1ab8: 0x000a, 0x1ab9: 0x000a, 0x1aba: 0x000a, 0x1abb: 0x000a,
+       0x1abc: 0x000a, 0x1abd: 0x000a, 0x1abe: 0x000a, 0x1abf: 0x000a,
+       // Block 0x6b, offset 0x1ac0
+       0x1ac0: 0x000a, 0x1ac1: 0x000a, 0x1ac2: 0x000a, 0x1ac3: 0x000a, 0x1ac4: 0x000a, 0x1ac5: 0x000a,
+       0x1ac6: 0x000a, 0x1ac7: 0x000a, 0x1ac8: 0x000a, 0x1ac9: 0x000a, 0x1aca: 0x000a, 0x1acb: 0x000a,
+       0x1acc: 0x000a, 0x1acd: 0x000a, 0x1ace: 0x000a,
+       // Block 0x6c, offset 0x1b00
+       0x1b00: 0x000a, 0x1b01: 0x000a, 0x1b02: 0x000a, 0x1b03: 0x000a, 0x1b04: 0x000a, 0x1b05: 0x000a,
+       0x1b06: 0x000a, 0x1b07: 0x000a, 0x1b08: 0x000a, 0x1b09: 0x000a, 0x1b0a: 0x000a, 0x1b0b: 0x000a,
+       0x1b0c: 0x000a, 0x1b0d: 0x000a, 0x1b0e: 0x000a, 0x1b0f: 0x000a, 0x1b10: 0x000a, 0x1b11: 0x000a,
+       0x1b12: 0x000a, 0x1b13: 0x000a, 0x1b14: 0x000a, 0x1b15: 0x000a, 0x1b16: 0x000a, 0x1b17: 0x000a,
+       0x1b18: 0x000a, 0x1b19: 0x000a, 0x1b1b: 0x000a, 0x1b1c: 0x000a, 0x1b1d: 0x000a,
+       0x1b1e: 0x000a, 0x1b1f: 0x000a, 0x1b20: 0x000a, 0x1b21: 0x000a, 0x1b22: 0x000a, 0x1b23: 0x000a,
+       0x1b24: 0x000a, 0x1b25: 0x000a, 0x1b26: 0x000a, 0x1b27: 0x000a, 0x1b28: 0x000a, 0x1b29: 0x000a,
+       0x1b2a: 0x000a, 0x1b2b: 0x000a, 0x1b2c: 0x000a, 0x1b2d: 0x000a, 0x1b2e: 0x000a, 0x1b2f: 0x000a,
+       0x1b30: 0x000a, 0x1b31: 0x000a, 0x1b32: 0x000a, 0x1b33: 0x000a, 0x1b34: 0x000a, 0x1b35: 0x000a,
+       0x1b36: 0x000a, 0x1b37: 0x000a, 0x1b38: 0x000a, 0x1b39: 0x000a, 0x1b3a: 0x000a, 0x1b3b: 0x000a,
+       0x1b3c: 0x000a, 0x1b3d: 0x000a, 0x1b3e: 0x000a, 0x1b3f: 0x000a,
+       // Block 0x6d, offset 0x1b40
+       0x1b40: 0x000a, 0x1b41: 0x000a, 0x1b42: 0x000a, 0x1b43: 0x000a, 0x1b44: 0x000a, 0x1b45: 0x000a,
+       0x1b46: 0x000a, 0x1b47: 0x000a, 0x1b48: 0x000a, 0x1b49: 0x000a, 0x1b4a: 0x000a, 0x1b4b: 0x000a,
+       0x1b4c: 0x000a, 0x1b4d: 0x000a, 0x1b4e: 0x000a, 0x1b4f: 0x000a, 0x1b50: 0x000a, 0x1b51: 0x000a,
+       0x1b52: 0x000a, 0x1b53: 0x000a, 0x1b54: 0x000a, 0x1b55: 0x000a, 0x1b56: 0x000a, 0x1b57: 0x000a,
+       0x1b58: 0x000a, 0x1b59: 0x000a, 0x1b5a: 0x000a, 0x1b5b: 0x000a, 0x1b5c: 0x000a, 0x1b5d: 0x000a,
+       0x1b5e: 0x000a, 0x1b5f: 0x000a, 0x1b60: 0x000a, 0x1b61: 0x000a, 0x1b62: 0x000a, 0x1b63: 0x000a,
+       0x1b64: 0x000a, 0x1b65: 0x000a, 0x1b66: 0x000a, 0x1b67: 0x000a, 0x1b68: 0x000a, 0x1b69: 0x000a,
+       0x1b6a: 0x000a, 0x1b6b: 0x000a, 0x1b6c: 0x000a, 0x1b6d: 0x000a, 0x1b6e: 0x000a, 0x1b6f: 0x000a,
+       0x1b70: 0x000a, 0x1b71: 0x000a, 0x1b72: 0x000a, 0x1b73: 0x000a,
+       // Block 0x6e, offset 0x1b80
+       0x1b80: 0x000a, 0x1b81: 0x000a, 0x1b82: 0x000a, 0x1b83: 0x000a, 0x1b84: 0x000a, 0x1b85: 0x000a,
+       0x1b86: 0x000a, 0x1b87: 0x000a, 0x1b88: 0x000a, 0x1b89: 0x000a, 0x1b8a: 0x000a, 0x1b8b: 0x000a,
+       0x1b8c: 0x000a, 0x1b8d: 0x000a, 0x1b8e: 0x000a, 0x1b8f: 0x000a, 0x1b90: 0x000a, 0x1b91: 0x000a,
+       0x1b92: 0x000a, 0x1b93: 0x000a, 0x1b94: 0x000a, 0x1b95: 0x000a,
+       0x1bb0: 0x000a, 0x1bb1: 0x000a, 0x1bb2: 0x000a, 0x1bb3: 0x000a, 0x1bb4: 0x000a, 0x1bb5: 0x000a,
+       0x1bb6: 0x000a, 0x1bb7: 0x000a, 0x1bb8: 0x000a, 0x1bb9: 0x000a, 0x1bba: 0x000a, 0x1bbb: 0x000a,
+       // Block 0x6f, offset 0x1bc0
+       0x1bc0: 0x0009, 0x1bc1: 0x000a, 0x1bc2: 0x000a, 0x1bc3: 0x000a, 0x1bc4: 0x000a,
+       0x1bc8: 0x003a, 0x1bc9: 0x002a, 0x1bca: 0x003a, 0x1bcb: 0x002a,
+       0x1bcc: 0x003a, 0x1bcd: 0x002a, 0x1bce: 0x003a, 0x1bcf: 0x002a, 0x1bd0: 0x003a, 0x1bd1: 0x002a,
+       0x1bd2: 0x000a, 0x1bd3: 0x000a, 0x1bd4: 0x003a, 0x1bd5: 0x002a, 0x1bd6: 0x003a, 0x1bd7: 0x002a,
+       0x1bd8: 0x003a, 0x1bd9: 0x002a, 0x1bda: 0x003a, 0x1bdb: 0x002a, 0x1bdc: 0x000a, 0x1bdd: 0x000a,
+       0x1bde: 0x000a, 0x1bdf: 0x000a, 0x1be0: 0x000a,
+       0x1bea: 0x000c, 0x1beb: 0x000c, 0x1bec: 0x000c, 0x1bed: 0x000c,
+       0x1bf0: 0x000a,
+       0x1bf6: 0x000a, 0x1bf7: 0x000a,
+       0x1bfd: 0x000a, 0x1bfe: 0x000a, 0x1bff: 0x000a,
+       // Block 0x70, offset 0x1c00
+       0x1c19: 0x000c, 0x1c1a: 0x000c, 0x1c1b: 0x000a, 0x1c1c: 0x000a,
+       0x1c20: 0x000a,
+       // Block 0x71, offset 0x1c40
+       0x1c7b: 0x000a,
+       // Block 0x72, offset 0x1c80
+       0x1c80: 0x000a, 0x1c81: 0x000a, 0x1c82: 0x000a, 0x1c83: 0x000a, 0x1c84: 0x000a, 0x1c85: 0x000a,
+       0x1c86: 0x000a, 0x1c87: 0x000a, 0x1c88: 0x000a, 0x1c89: 0x000a, 0x1c8a: 0x000a, 0x1c8b: 0x000a,
+       0x1c8c: 0x000a, 0x1c8d: 0x000a, 0x1c8e: 0x000a, 0x1c8f: 0x000a, 0x1c90: 0x000a, 0x1c91: 0x000a,
+       0x1c92: 0x000a, 0x1c93: 0x000a, 0x1c94: 0x000a, 0x1c95: 0x000a, 0x1c96: 0x000a, 0x1c97: 0x000a,
+       0x1c98: 0x000a, 0x1c99: 0x000a, 0x1c9a: 0x000a, 0x1c9b: 0x000a, 0x1c9c: 0x000a, 0x1c9d: 0x000a,
+       0x1c9e: 0x000a, 0x1c9f: 0x000a, 0x1ca0: 0x000a, 0x1ca1: 0x000a, 0x1ca2: 0x000a, 0x1ca3: 0x000a,
+       // Block 0x73, offset 0x1cc0
+       0x1cdd: 0x000a,
+       0x1cde: 0x000a,
+       // Block 0x74, offset 0x1d00
+       0x1d10: 0x000a, 0x1d11: 0x000a,
+       0x1d12: 0x000a, 0x1d13: 0x000a, 0x1d14: 0x000a, 0x1d15: 0x000a, 0x1d16: 0x000a, 0x1d17: 0x000a,
+       0x1d18: 0x000a, 0x1d19: 0x000a, 0x1d1a: 0x000a, 0x1d1b: 0x000a, 0x1d1c: 0x000a, 0x1d1d: 0x000a,
+       0x1d1e: 0x000a, 0x1d1f: 0x000a,
+       0x1d3c: 0x000a, 0x1d3d: 0x000a, 0x1d3e: 0x000a,
+       // Block 0x75, offset 0x1d40
+       0x1d71: 0x000a, 0x1d72: 0x000a, 0x1d73: 0x000a, 0x1d74: 0x000a, 0x1d75: 0x000a,
+       0x1d76: 0x000a, 0x1d77: 0x000a, 0x1d78: 0x000a, 0x1d79: 0x000a, 0x1d7a: 0x000a, 0x1d7b: 0x000a,
+       0x1d7c: 0x000a, 0x1d7d: 0x000a, 0x1d7e: 0x000a, 0x1d7f: 0x000a,
+       // Block 0x76, offset 0x1d80
+       0x1d8c: 0x000a, 0x1d8d: 0x000a, 0x1d8e: 0x000a, 0x1d8f: 0x000a,
+       // Block 0x77, offset 0x1dc0
+       0x1df7: 0x000a, 0x1df8: 0x000a, 0x1df9: 0x000a, 0x1dfa: 0x000a,
+       // Block 0x78, offset 0x1e00
+       0x1e1e: 0x000a, 0x1e1f: 0x000a,
+       0x1e3f: 0x000a,
+       // Block 0x79, offset 0x1e40
+       0x1e50: 0x000a, 0x1e51: 0x000a,
+       0x1e52: 0x000a, 0x1e53: 0x000a, 0x1e54: 0x000a, 0x1e55: 0x000a, 0x1e56: 0x000a, 0x1e57: 0x000a,
+       0x1e58: 0x000a, 0x1e59: 0x000a, 0x1e5a: 0x000a, 0x1e5b: 0x000a, 0x1e5c: 0x000a, 0x1e5d: 0x000a,
+       0x1e5e: 0x000a, 0x1e5f: 0x000a, 0x1e60: 0x000a, 0x1e61: 0x000a, 0x1e62: 0x000a, 0x1e63: 0x000a,
+       0x1e64: 0x000a, 0x1e65: 0x000a, 0x1e66: 0x000a, 0x1e67: 0x000a, 0x1e68: 0x000a, 0x1e69: 0x000a,
+       0x1e6a: 0x000a, 0x1e6b: 0x000a, 0x1e6c: 0x000a, 0x1e6d: 0x000a, 0x1e6e: 0x000a, 0x1e6f: 0x000a,
+       0x1e70: 0x000a, 0x1e71: 0x000a, 0x1e72: 0x000a, 0x1e73: 0x000a, 0x1e74: 0x000a, 0x1e75: 0x000a,
+       0x1e76: 0x000a, 0x1e77: 0x000a, 0x1e78: 0x000a, 0x1e79: 0x000a, 0x1e7a: 0x000a, 0x1e7b: 0x000a,
+       0x1e7c: 0x000a, 0x1e7d: 0x000a, 0x1e7e: 0x000a, 0x1e7f: 0x000a,
+       // Block 0x7a, offset 0x1e80
+       0x1e80: 0x000a, 0x1e81: 0x000a, 0x1e82: 0x000a, 0x1e83: 0x000a, 0x1e84: 0x000a, 0x1e85: 0x000a,
+       0x1e86: 0x000a,
+       // Block 0x7b, offset 0x1ec0
+       0x1ecd: 0x000a, 0x1ece: 0x000a, 0x1ecf: 0x000a,
+       // Block 0x7c, offset 0x1f00
+       0x1f2f: 0x000c,
+       0x1f30: 0x000c, 0x1f31: 0x000c, 0x1f32: 0x000c, 0x1f33: 0x000a, 0x1f34: 0x000c, 0x1f35: 0x000c,
+       0x1f36: 0x000c, 0x1f37: 0x000c, 0x1f38: 0x000c, 0x1f39: 0x000c, 0x1f3a: 0x000c, 0x1f3b: 0x000c,
+       0x1f3c: 0x000c, 0x1f3d: 0x000c, 0x1f3e: 0x000a, 0x1f3f: 0x000a,
+       // Block 0x7d, offset 0x1f40
+       0x1f5e: 0x000c, 0x1f5f: 0x000c,
+       // Block 0x7e, offset 0x1f80
+       0x1fb0: 0x000c, 0x1fb1: 0x000c,
+       // Block 0x7f, offset 0x1fc0
+       0x1fc0: 0x000a, 0x1fc1: 0x000a, 0x1fc2: 0x000a, 0x1fc3: 0x000a, 0x1fc4: 0x000a, 0x1fc5: 0x000a,
+       0x1fc6: 0x000a, 0x1fc7: 0x000a, 0x1fc8: 0x000a, 0x1fc9: 0x000a, 0x1fca: 0x000a, 0x1fcb: 0x000a,
+       0x1fcc: 0x000a, 0x1fcd: 0x000a, 0x1fce: 0x000a, 0x1fcf: 0x000a, 0x1fd0: 0x000a, 0x1fd1: 0x000a,
+       0x1fd2: 0x000a, 0x1fd3: 0x000a, 0x1fd4: 0x000a, 0x1fd5: 0x000a, 0x1fd6: 0x000a, 0x1fd7: 0x000a,
+       0x1fd8: 0x000a, 0x1fd9: 0x000a, 0x1fda: 0x000a, 0x1fdb: 0x000a, 0x1fdc: 0x000a, 0x1fdd: 0x000a,
+       0x1fde: 0x000a, 0x1fdf: 0x000a, 0x1fe0: 0x000a, 0x1fe1: 0x000a,
+       // Block 0x80, offset 0x2000
+       0x2008: 0x000a,
+       // Block 0x81, offset 0x2040
+       0x2042: 0x000c,
+       0x2046: 0x000c, 0x204b: 0x000c,
+       0x2065: 0x000c, 0x2066: 0x000c, 0x2068: 0x000a, 0x2069: 0x000a,
+       0x206a: 0x000a, 0x206b: 0x000a,
+       0x2078: 0x0004, 0x2079: 0x0004,
+       // Block 0x82, offset 0x2080
+       0x20b4: 0x000a, 0x20b5: 0x000a,
+       0x20b6: 0x000a, 0x20b7: 0x000a,
+       // Block 0x83, offset 0x20c0
+       0x20c4: 0x000c, 0x20c5: 0x000c,
+       0x20e0: 0x000c, 0x20e1: 0x000c, 0x20e2: 0x000c, 0x20e3: 0x000c,
+       0x20e4: 0x000c, 0x20e5: 0x000c, 0x20e6: 0x000c, 0x20e7: 0x000c, 0x20e8: 0x000c, 0x20e9: 0x000c,
+       0x20ea: 0x000c, 0x20eb: 0x000c, 0x20ec: 0x000c, 0x20ed: 0x000c, 0x20ee: 0x000c, 0x20ef: 0x000c,
+       0x20f0: 0x000c, 0x20f1: 0x000c,
+       0x20ff: 0x000c,
+       // Block 0x84, offset 0x2100
+       0x2126: 0x000c, 0x2127: 0x000c, 0x2128: 0x000c, 0x2129: 0x000c,
+       0x212a: 0x000c, 0x212b: 0x000c, 0x212c: 0x000c, 0x212d: 0x000c,
+       // Block 0x85, offset 0x2140
+       0x2147: 0x000c, 0x2148: 0x000c, 0x2149: 0x000c, 0x214a: 0x000c, 0x214b: 0x000c,
+       0x214c: 0x000c, 0x214d: 0x000c, 0x214e: 0x000c, 0x214f: 0x000c, 0x2150: 0x000c, 0x2151: 0x000c,
+       // Block 0x86, offset 0x2180
+       0x2180: 0x000c, 0x2181: 0x000c, 0x2182: 0x000c,
+       0x21b3: 0x000c,
+       0x21b6: 0x000c, 0x21b7: 0x000c, 0x21b8: 0x000c, 0x21b9: 0x000c,
+       0x21bc: 0x000c,
+       // Block 0x87, offset 0x21c0
+       0x21e5: 0x000c,
+       // Block 0x88, offset 0x2200
+       0x2229: 0x000c,
+       0x222a: 0x000c, 0x222b: 0x000c, 0x222c: 0x000c, 0x222d: 0x000c, 0x222e: 0x000c,
+       0x2231: 0x000c, 0x2232: 0x000c, 0x2235: 0x000c,
+       0x2236: 0x000c,
+       // Block 0x89, offset 0x2240
+       0x2243: 0x000c,
+       0x224c: 0x000c,
+       0x227c: 0x000c,
+       // Block 0x8a, offset 0x2280
+       0x22b0: 0x000c, 0x22b2: 0x000c, 0x22b3: 0x000c, 0x22b4: 0x000c,
+       0x22b7: 0x000c, 0x22b8: 0x000c,
+       0x22be: 0x000c, 0x22bf: 0x000c,
+       // Block 0x8b, offset 0x22c0
+       0x22c1: 0x000c,
+       0x22ec: 0x000c, 0x22ed: 0x000c,
+       0x22f6: 0x000c,
+       // Block 0x8c, offset 0x2300
+       0x2325: 0x000c, 0x2328: 0x000c,
+       0x232d: 0x000c,
+       // Block 0x8d, offset 0x2340
+       0x235d: 0x0001,
+       0x235e: 0x000c, 0x235f: 0x0001, 0x2360: 0x0001, 0x2361: 0x0001, 0x2362: 0x0001, 0x2363: 0x0001,
+       0x2364: 0x0001, 0x2365: 0x0001, 0x2366: 0x0001, 0x2367: 0x0001, 0x2368: 0x0001, 0x2369: 0x0003,
+       0x236a: 0x0001, 0x236b: 0x0001, 0x236c: 0x0001, 0x236d: 0x0001, 0x236e: 0x0001, 0x236f: 0x0001,
+       0x2370: 0x0001, 0x2371: 0x0001, 0x2372: 0x0001, 0x2373: 0x0001, 0x2374: 0x0001, 0x2375: 0x0001,
+       0x2376: 0x0001, 0x2377: 0x0001, 0x2378: 0x0001, 0x2379: 0x0001, 0x237a: 0x0001, 0x237b: 0x0001,
+       0x237c: 0x0001, 0x237d: 0x0001, 0x237e: 0x0001, 0x237f: 0x0001,
+       // Block 0x8e, offset 0x2380
+       0x2380: 0x0001, 0x2381: 0x0001, 0x2382: 0x0001, 0x2383: 0x0001, 0x2384: 0x0001, 0x2385: 0x0001,
+       0x2386: 0x0001, 0x2387: 0x0001, 0x2388: 0x0001, 0x2389: 0x0001, 0x238a: 0x0001, 0x238b: 0x0001,
+       0x238c: 0x0001, 0x238d: 0x0001, 0x238e: 0x0001, 0x238f: 0x0001, 0x2390: 0x000d, 0x2391: 0x000d,
+       0x2392: 0x000d, 0x2393: 0x000d, 0x2394: 0x000d, 0x2395: 0x000d, 0x2396: 0x000d, 0x2397: 0x000d,
+       0x2398: 0x000d, 0x2399: 0x000d, 0x239a: 0x000d, 0x239b: 0x000d, 0x239c: 0x000d, 0x239d: 0x000d,
+       0x239e: 0x000d, 0x239f: 0x000d, 0x23a0: 0x000d, 0x23a1: 0x000d, 0x23a2: 0x000d, 0x23a3: 0x000d,
+       0x23a4: 0x000d, 0x23a5: 0x000d, 0x23a6: 0x000d, 0x23a7: 0x000d, 0x23a8: 0x000d, 0x23a9: 0x000d,
+       0x23aa: 0x000d, 0x23ab: 0x000d, 0x23ac: 0x000d, 0x23ad: 0x000d, 0x23ae: 0x000d, 0x23af: 0x000d,
+       0x23b0: 0x000d, 0x23b1: 0x000d, 0x23b2: 0x000d, 0x23b3: 0x000d, 0x23b4: 0x000d, 0x23b5: 0x000d,
+       0x23b6: 0x000d, 0x23b7: 0x000d, 0x23b8: 0x000d, 0x23b9: 0x000d, 0x23ba: 0x000d, 0x23bb: 0x000d,
+       0x23bc: 0x000d, 0x23bd: 0x000d, 0x23be: 0x000d, 0x23bf: 0x000d,
+       // Block 0x8f, offset 0x23c0
+       0x23c0: 0x000d, 0x23c1: 0x000d, 0x23c2: 0x000d, 0x23c3: 0x000d, 0x23c4: 0x000d, 0x23c5: 0x000d,
+       0x23c6: 0x000d, 0x23c7: 0x000d, 0x23c8: 0x000d, 0x23c9: 0x000d, 0x23ca: 0x000d, 0x23cb: 0x000d,
+       0x23cc: 0x000d, 0x23cd: 0x000d, 0x23ce: 0x000d, 0x23cf: 0x000d, 0x23d0: 0x000d, 0x23d1: 0x000d,
+       0x23d2: 0x000d, 0x23d3: 0x000d, 0x23d4: 0x000d, 0x23d5: 0x000d, 0x23d6: 0x000d, 0x23d7: 0x000d,
+       0x23d8: 0x000d, 0x23d9: 0x000d, 0x23da: 0x000d, 0x23db: 0x000d, 0x23dc: 0x000d, 0x23dd: 0x000d,
+       0x23de: 0x000d, 0x23df: 0x000d, 0x23e0: 0x000d, 0x23e1: 0x000d, 0x23e2: 0x000d, 0x23e3: 0x000d,
+       0x23e4: 0x000d, 0x23e5: 0x000d, 0x23e6: 0x000d, 0x23e7: 0x000d, 0x23e8: 0x000d, 0x23e9: 0x000d,
+       0x23ea: 0x000d, 0x23eb: 0x000d, 0x23ec: 0x000d, 0x23ed: 0x000d, 0x23ee: 0x000d, 0x23ef: 0x000d,
+       0x23f0: 0x000d, 0x23f1: 0x000d, 0x23f2: 0x000d, 0x23f3: 0x000d, 0x23f4: 0x000d, 0x23f5: 0x000d,
+       0x23f6: 0x000d, 0x23f7: 0x000d, 0x23f8: 0x000d, 0x23f9: 0x000d, 0x23fa: 0x000d, 0x23fb: 0x000d,
+       0x23fc: 0x000d, 0x23fd: 0x000d, 0x23fe: 0x000a, 0x23ff: 0x000a,
+       // Block 0x90, offset 0x2400
+       0x2400: 0x000d, 0x2401: 0x000d, 0x2402: 0x000d, 0x2403: 0x000d, 0x2404: 0x000d, 0x2405: 0x000d,
+       0x2406: 0x000d, 0x2407: 0x000d, 0x2408: 0x000d, 0x2409: 0x000d, 0x240a: 0x000d, 0x240b: 0x000d,
+       0x240c: 0x000d, 0x240d: 0x000d, 0x240e: 0x000d, 0x240f: 0x000d, 0x2410: 0x000b, 0x2411: 0x000b,
+       0x2412: 0x000b, 0x2413: 0x000b, 0x2414: 0x000b, 0x2415: 0x000b, 0x2416: 0x000b, 0x2417: 0x000b,
+       0x2418: 0x000b, 0x2419: 0x000b, 0x241a: 0x000b, 0x241b: 0x000b, 0x241c: 0x000b, 0x241d: 0x000b,
+       0x241e: 0x000b, 0x241f: 0x000b, 0x2420: 0x000b, 0x2421: 0x000b, 0x2422: 0x000b, 0x2423: 0x000b,
+       0x2424: 0x000b, 0x2425: 0x000b, 0x2426: 0x000b, 0x2427: 0x000b, 0x2428: 0x000b, 0x2429: 0x000b,
+       0x242a: 0x000b, 0x242b: 0x000b, 0x242c: 0x000b, 0x242d: 0x000b, 0x242e: 0x000b, 0x242f: 0x000b,
+       0x2430: 0x000d, 0x2431: 0x000d, 0x2432: 0x000d, 0x2433: 0x000d, 0x2434: 0x000d, 0x2435: 0x000d,
+       0x2436: 0x000d, 0x2437: 0x000d, 0x2438: 0x000d, 0x2439: 0x000d, 0x243a: 0x000d, 0x243b: 0x000d,
+       0x243c: 0x000d, 0x243d: 0x000a, 0x243e: 0x000d, 0x243f: 0x000d,
+       // Block 0x91, offset 0x2440
+       0x2440: 0x000c, 0x2441: 0x000c, 0x2442: 0x000c, 0x2443: 0x000c, 0x2444: 0x000c, 0x2445: 0x000c,
+       0x2446: 0x000c, 0x2447: 0x000c, 0x2448: 0x000c, 0x2449: 0x000c, 0x244a: 0x000c, 0x244b: 0x000c,
+       0x244c: 0x000c, 0x244d: 0x000c, 0x244e: 0x000c, 0x244f: 0x000c, 0x2450: 0x000a, 0x2451: 0x000a,
+       0x2452: 0x000a, 0x2453: 0x000a, 0x2454: 0x000a, 0x2455: 0x000a, 0x2456: 0x000a, 0x2457: 0x000a,
+       0x2458: 0x000a, 0x2459: 0x000a,
+       0x2460: 0x000c, 0x2461: 0x000c, 0x2462: 0x000c, 0x2463: 0x000c,
+       0x2464: 0x000c, 0x2465: 0x000c, 0x2466: 0x000c, 0x2467: 0x000c, 0x2468: 0x000c, 0x2469: 0x000c,
+       0x246a: 0x000c, 0x246b: 0x000c, 0x246c: 0x000c, 0x246d: 0x000c, 0x246e: 0x000c, 0x246f: 0x000c,
+       0x2470: 0x000a, 0x2471: 0x000a, 0x2472: 0x000a, 0x2473: 0x000a, 0x2474: 0x000a, 0x2475: 0x000a,
+       0x2476: 0x000a, 0x2477: 0x000a, 0x2478: 0x000a, 0x2479: 0x000a, 0x247a: 0x000a, 0x247b: 0x000a,
+       0x247c: 0x000a, 0x247d: 0x000a, 0x247e: 0x000a, 0x247f: 0x000a,
+       // Block 0x92, offset 0x2480
+       0x2480: 0x000a, 0x2481: 0x000a, 0x2482: 0x000a, 0x2483: 0x000a, 0x2484: 0x000a, 0x2485: 0x000a,
+       0x2486: 0x000a, 0x2487: 0x000a, 0x2488: 0x000a, 0x2489: 0x000a, 0x248a: 0x000a, 0x248b: 0x000a,
+       0x248c: 0x000a, 0x248d: 0x000a, 0x248e: 0x000a, 0x248f: 0x000a, 0x2490: 0x0006, 0x2491: 0x000a,
+       0x2492: 0x0006, 0x2494: 0x000a, 0x2495: 0x0006, 0x2496: 0x000a, 0x2497: 0x000a,
+       0x2498: 0x000a, 0x2499: 0x009a, 0x249a: 0x008a, 0x249b: 0x007a, 0x249c: 0x006a, 0x249d: 0x009a,
+       0x249e: 0x008a, 0x249f: 0x0004, 0x24a0: 0x000a, 0x24a1: 0x000a, 0x24a2: 0x0003, 0x24a3: 0x0003,
+       0x24a4: 0x000a, 0x24a5: 0x000a, 0x24a6: 0x000a, 0x24a8: 0x000a, 0x24a9: 0x0004,
+       0x24aa: 0x0004, 0x24ab: 0x000a,
+       0x24b0: 0x000d, 0x24b1: 0x000d, 0x24b2: 0x000d, 0x24b3: 0x000d, 0x24b4: 0x000d, 0x24b5: 0x000d,
+       0x24b6: 0x000d, 0x24b7: 0x000d, 0x24b8: 0x000d, 0x24b9: 0x000d, 0x24ba: 0x000d, 0x24bb: 0x000d,
+       0x24bc: 0x000d, 0x24bd: 0x000d, 0x24be: 0x000d, 0x24bf: 0x000d,
+       // Block 0x93, offset 0x24c0
+       0x24c0: 0x000d, 0x24c1: 0x000d, 0x24c2: 0x000d, 0x24c3: 0x000d, 0x24c4: 0x000d, 0x24c5: 0x000d,
+       0x24c6: 0x000d, 0x24c7: 0x000d, 0x24c8: 0x000d, 0x24c9: 0x000d, 0x24ca: 0x000d, 0x24cb: 0x000d,
+       0x24cc: 0x000d, 0x24cd: 0x000d, 0x24ce: 0x000d, 0x24cf: 0x000d, 0x24d0: 0x000d, 0x24d1: 0x000d,
+       0x24d2: 0x000d, 0x24d3: 0x000d, 0x24d4: 0x000d, 0x24d5: 0x000d, 0x24d6: 0x000d, 0x24d7: 0x000d,
+       0x24d8: 0x000d, 0x24d9: 0x000d, 0x24da: 0x000d, 0x24db: 0x000d, 0x24dc: 0x000d, 0x24dd: 0x000d,
+       0x24de: 0x000d, 0x24df: 0x000d, 0x24e0: 0x000d, 0x24e1: 0x000d, 0x24e2: 0x000d, 0x24e3: 0x000d,
+       0x24e4: 0x000d, 0x24e5: 0x000d, 0x24e6: 0x000d, 0x24e7: 0x000d, 0x24e8: 0x000d, 0x24e9: 0x000d,
+       0x24ea: 0x000d, 0x24eb: 0x000d, 0x24ec: 0x000d, 0x24ed: 0x000d, 0x24ee: 0x000d, 0x24ef: 0x000d,
+       0x24f0: 0x000d, 0x24f1: 0x000d, 0x24f2: 0x000d, 0x24f3: 0x000d, 0x24f4: 0x000d, 0x24f5: 0x000d,
+       0x24f6: 0x000d, 0x24f7: 0x000d, 0x24f8: 0x000d, 0x24f9: 0x000d, 0x24fa: 0x000d, 0x24fb: 0x000d,
+       0x24fc: 0x000d, 0x24fd: 0x000d, 0x24fe: 0x000d, 0x24ff: 0x000b,
+       // Block 0x94, offset 0x2500
+       0x2501: 0x000a, 0x2502: 0x000a, 0x2503: 0x0004, 0x2504: 0x0004, 0x2505: 0x0004,
+       0x2506: 0x000a, 0x2507: 0x000a, 0x2508: 0x003a, 0x2509: 0x002a, 0x250a: 0x000a, 0x250b: 0x0003,
+       0x250c: 0x0006, 0x250d: 0x0003, 0x250e: 0x0006, 0x250f: 0x0006, 0x2510: 0x0002, 0x2511: 0x0002,
+       0x2512: 0x0002, 0x2513: 0x0002, 0x2514: 0x0002, 0x2515: 0x0002, 0x2516: 0x0002, 0x2517: 0x0002,
+       0x2518: 0x0002, 0x2519: 0x0002, 0x251a: 0x0006, 0x251b: 0x000a, 0x251c: 0x000a, 0x251d: 0x000a,
+       0x251e: 0x000a, 0x251f: 0x000a, 0x2520: 0x000a,
+       0x253b: 0x005a,
+       0x253c: 0x000a, 0x253d: 0x004a, 0x253e: 0x000a, 0x253f: 0x000a,
+       // Block 0x95, offset 0x2540
+       0x2540: 0x000a,
+       0x255b: 0x005a, 0x255c: 0x000a, 0x255d: 0x004a,
+       0x255e: 0x000a, 0x255f: 0x00fa, 0x2560: 0x00ea, 0x2561: 0x000a, 0x2562: 0x003a, 0x2563: 0x002a,
+       0x2564: 0x000a, 0x2565: 0x000a,
+       // Block 0x96, offset 0x2580
+       0x25a0: 0x0004, 0x25a1: 0x0004, 0x25a2: 0x000a, 0x25a3: 0x000a,
+       0x25a4: 0x000a, 0x25a5: 0x0004, 0x25a6: 0x0004, 0x25a8: 0x000a, 0x25a9: 0x000a,
+       0x25aa: 0x000a, 0x25ab: 0x000a, 0x25ac: 0x000a, 0x25ad: 0x000a, 0x25ae: 0x000a,
+       0x25b0: 0x000b, 0x25b1: 0x000b, 0x25b2: 0x000b, 0x25b3: 0x000b, 0x25b4: 0x000b, 0x25b5: 0x000b,
+       0x25b6: 0x000b, 0x25b7: 0x000b, 0x25b8: 0x000b, 0x25b9: 0x000a, 0x25ba: 0x000a, 0x25bb: 0x000a,
+       0x25bc: 0x000a, 0x25bd: 0x000a, 0x25be: 0x000b, 0x25bf: 0x000b,
+       // Block 0x97, offset 0x25c0
+       0x25c1: 0x000a,
+       // Block 0x98, offset 0x2600
+       0x2600: 0x000a, 0x2601: 0x000a, 0x2602: 0x000a, 0x2603: 0x000a, 0x2604: 0x000a, 0x2605: 0x000a,
+       0x2606: 0x000a, 0x2607: 0x000a, 0x2608: 0x000a, 0x2609: 0x000a, 0x260a: 0x000a, 0x260b: 0x000a,
+       0x260c: 0x000a, 0x2610: 0x000a, 0x2611: 0x000a,
+       0x2612: 0x000a, 0x2613: 0x000a, 0x2614: 0x000a, 0x2615: 0x000a, 0x2616: 0x000a, 0x2617: 0x000a,
+       0x2618: 0x000a, 0x2619: 0x000a, 0x261a: 0x000a, 0x261b: 0x000a,
+       0x2620: 0x000a,
+       // Block 0x99, offset 0x2640
+       0x267d: 0x000c,
+       // Block 0x9a, offset 0x2680
+       0x26a0: 0x000c, 0x26a1: 0x0002, 0x26a2: 0x0002, 0x26a3: 0x0002,
+       0x26a4: 0x0002, 0x26a5: 0x0002, 0x26a6: 0x0002, 0x26a7: 0x0002, 0x26a8: 0x0002, 0x26a9: 0x0002,
+       0x26aa: 0x0002, 0x26ab: 0x0002, 0x26ac: 0x0002, 0x26ad: 0x0002, 0x26ae: 0x0002, 0x26af: 0x0002,
+       0x26b0: 0x0002, 0x26b1: 0x0002, 0x26b2: 0x0002, 0x26b3: 0x0002, 0x26b4: 0x0002, 0x26b5: 0x0002,
+       0x26b6: 0x0002, 0x26b7: 0x0002, 0x26b8: 0x0002, 0x26b9: 0x0002, 0x26ba: 0x0002, 0x26bb: 0x0002,
+       // Block 0x9b, offset 0x26c0
+       0x26f6: 0x000c, 0x26f7: 0x000c, 0x26f8: 0x000c, 0x26f9: 0x000c, 0x26fa: 0x000c,
+       // Block 0x9c, offset 0x2700
+       0x2700: 0x0001, 0x2701: 0x0001, 0x2702: 0x0001, 0x2703: 0x0001, 0x2704: 0x0001, 0x2705: 0x0001,
+       0x2706: 0x0001, 0x2707: 0x0001, 0x2708: 0x0001, 0x2709: 0x0001, 0x270a: 0x0001, 0x270b: 0x0001,
+       0x270c: 0x0001, 0x270d: 0x0001, 0x270e: 0x0001, 0x270f: 0x0001, 0x2710: 0x0001, 0x2711: 0x0001,
+       0x2712: 0x0001, 0x2713: 0x0001, 0x2714: 0x0001, 0x2715: 0x0001, 0x2716: 0x0001, 0x2717: 0x0001,
+       0x2718: 0x0001, 0x2719: 0x0001, 0x271a: 0x0001, 0x271b: 0x0001, 0x271c: 0x0001, 0x271d: 0x0001,
+       0x271e: 0x0001, 0x271f: 0x0001, 0x2720: 0x0001, 0x2721: 0x0001, 0x2722: 0x0001, 0x2723: 0x0001,
+       0x2724: 0x0001, 0x2725: 0x0001, 0x2726: 0x0001, 0x2727: 0x0001, 0x2728: 0x0001, 0x2729: 0x0001,
+       0x272a: 0x0001, 0x272b: 0x0001, 0x272c: 0x0001, 0x272d: 0x0001, 0x272e: 0x0001, 0x272f: 0x0001,
+       0x2730: 0x0001, 0x2731: 0x0001, 0x2732: 0x0001, 0x2733: 0x0001, 0x2734: 0x0001, 0x2735: 0x0001,
+       0x2736: 0x0001, 0x2737: 0x0001, 0x2738: 0x0001, 0x2739: 0x0001, 0x273a: 0x0001, 0x273b: 0x0001,
+       0x273c: 0x0001, 0x273d: 0x0001, 0x273e: 0x0001, 0x273f: 0x0001,
+       // Block 0x9d, offset 0x2740
+       0x2740: 0x0001, 0x2741: 0x0001, 0x2742: 0x0001, 0x2743: 0x0001, 0x2744: 0x0001, 0x2745: 0x0001,
+       0x2746: 0x0001, 0x2747: 0x0001, 0x2748: 0x0001, 0x2749: 0x0001, 0x274a: 0x0001, 0x274b: 0x0001,
+       0x274c: 0x0001, 0x274d: 0x0001, 0x274e: 0x0001, 0x274f: 0x0001, 0x2750: 0x0001, 0x2751: 0x0001,
+       0x2752: 0x0001, 0x2753: 0x0001, 0x2754: 0x0001, 0x2755: 0x0001, 0x2756: 0x0001, 0x2757: 0x0001,
+       0x2758: 0x0001, 0x2759: 0x0001, 0x275a: 0x0001, 0x275b: 0x0001, 0x275c: 0x0001, 0x275d: 0x0001,
+       0x275e: 0x0001, 0x275f: 0x000a, 0x2760: 0x0001, 0x2761: 0x0001, 0x2762: 0x0001, 0x2763: 0x0001,
+       0x2764: 0x0001, 0x2765: 0x0001, 0x2766: 0x0001, 0x2767: 0x0001, 0x2768: 0x0001, 0x2769: 0x0001,
+       0x276a: 0x0001, 0x276b: 0x0001, 0x276c: 0x0001, 0x276d: 0x0001, 0x276e: 0x0001, 0x276f: 0x0001,
+       0x2770: 0x0001, 0x2771: 0x0001, 0x2772: 0x0001, 0x2773: 0x0001, 0x2774: 0x0001, 0x2775: 0x0001,
+       0x2776: 0x0001, 0x2777: 0x0001, 0x2778: 0x0001, 0x2779: 0x0001, 0x277a: 0x0001, 0x277b: 0x0001,
+       0x277c: 0x0001, 0x277d: 0x0001, 0x277e: 0x0001, 0x277f: 0x0001,
+       // Block 0x9e, offset 0x2780
+       0x2780: 0x0001, 0x2781: 0x000c, 0x2782: 0x000c, 0x2783: 0x000c, 0x2784: 0x0001, 0x2785: 0x000c,
+       0x2786: 0x000c, 0x2787: 0x0001, 0x2788: 0x0001, 0x2789: 0x0001, 0x278a: 0x0001, 0x278b: 0x0001,
+       0x278c: 0x000c, 0x278d: 0x000c, 0x278e: 0x000c, 0x278f: 0x000c, 0x2790: 0x0001, 0x2791: 0x0001,
+       0x2792: 0x0001, 0x2793: 0x0001, 0x2794: 0x0001, 0x2795: 0x0001, 0x2796: 0x0001, 0x2797: 0x0001,
+       0x2798: 0x0001, 0x2799: 0x0001, 0x279a: 0x0001, 0x279b: 0x0001, 0x279c: 0x0001, 0x279d: 0x0001,
+       0x279e: 0x0001, 0x279f: 0x0001, 0x27a0: 0x0001, 0x27a1: 0x0001, 0x27a2: 0x0001, 0x27a3: 0x0001,
+       0x27a4: 0x0001, 0x27a5: 0x0001, 0x27a6: 0x0001, 0x27a7: 0x0001, 0x27a8: 0x0001, 0x27a9: 0x0001,
+       0x27aa: 0x0001, 0x27ab: 0x0001, 0x27ac: 0x0001, 0x27ad: 0x0001, 0x27ae: 0x0001, 0x27af: 0x0001,
+       0x27b0: 0x0001, 0x27b1: 0x0001, 0x27b2: 0x0001, 0x27b3: 0x0001, 0x27b4: 0x0001, 0x27b5: 0x0001,
+       0x27b6: 0x0001, 0x27b7: 0x0001, 0x27b8: 0x000c, 0x27b9: 0x000c, 0x27ba: 0x000c, 0x27bb: 0x0001,
+       0x27bc: 0x0001, 0x27bd: 0x0001, 0x27be: 0x0001, 0x27bf: 0x000c,
+       // Block 0x9f, offset 0x27c0
+       0x27c0: 0x0001, 0x27c1: 0x0001, 0x27c2: 0x0001, 0x27c3: 0x0001, 0x27c4: 0x0001, 0x27c5: 0x0001,
+       0x27c6: 0x0001, 0x27c7: 0x0001, 0x27c8: 0x0001, 0x27c9: 0x0001, 0x27ca: 0x0001, 0x27cb: 0x0001,
+       0x27cc: 0x0001, 0x27cd: 0x0001, 0x27ce: 0x0001, 0x27cf: 0x0001, 0x27d0: 0x0001, 0x27d1: 0x0001,
+       0x27d2: 0x0001, 0x27d3: 0x0001, 0x27d4: 0x0001, 0x27d5: 0x0001, 0x27d6: 0x0001, 0x27d7: 0x0001,
+       0x27d8: 0x0001, 0x27d9: 0x0001, 0x27da: 0x0001, 0x27db: 0x0001, 0x27dc: 0x0001, 0x27dd: 0x0001,
+       0x27de: 0x0001, 0x27df: 0x0001, 0x27e0: 0x0001, 0x27e1: 0x0001, 0x27e2: 0x0001, 0x27e3: 0x0001,
+       0x27e4: 0x0001, 0x27e5: 0x000c, 0x27e6: 0x000c, 0x27e7: 0x0001, 0x27e8: 0x0001, 0x27e9: 0x0001,
+       0x27ea: 0x0001, 0x27eb: 0x0001, 0x27ec: 0x0001, 0x27ed: 0x0001, 0x27ee: 0x0001, 0x27ef: 0x0001,
+       0x27f0: 0x0001, 0x27f1: 0x0001, 0x27f2: 0x0001, 0x27f3: 0x0001, 0x27f4: 0x0001, 0x27f5: 0x0001,
+       0x27f6: 0x0001, 0x27f7: 0x0001, 0x27f8: 0x0001, 0x27f9: 0x0001, 0x27fa: 0x0001, 0x27fb: 0x0001,
+       0x27fc: 0x0001, 0x27fd: 0x0001, 0x27fe: 0x0001, 0x27ff: 0x0001,
+       // Block 0xa0, offset 0x2800
+       0x2800: 0x0001, 0x2801: 0x0001, 0x2802: 0x0001, 0x2803: 0x0001, 0x2804: 0x0001, 0x2805: 0x0001,
+       0x2806: 0x0001, 0x2807: 0x0001, 0x2808: 0x0001, 0x2809: 0x0001, 0x280a: 0x0001, 0x280b: 0x0001,
+       0x280c: 0x0001, 0x280d: 0x0001, 0x280e: 0x0001, 0x280f: 0x0001, 0x2810: 0x0001, 0x2811: 0x0001,
+       0x2812: 0x0001, 0x2813: 0x0001, 0x2814: 0x0001, 0x2815: 0x0001, 0x2816: 0x0001, 0x2817: 0x0001,
+       0x2818: 0x0001, 0x2819: 0x0001, 0x281a: 0x0001, 0x281b: 0x0001, 0x281c: 0x0001, 0x281d: 0x0001,
+       0x281e: 0x0001, 0x281f: 0x0001, 0x2820: 0x0001, 0x2821: 0x0001, 0x2822: 0x0001, 0x2823: 0x0001,
+       0x2824: 0x0001, 0x2825: 0x0001, 0x2826: 0x0001, 0x2827: 0x0001, 0x2828: 0x0001, 0x2829: 0x0001,
+       0x282a: 0x0001, 0x282b: 0x0001, 0x282c: 0x0001, 0x282d: 0x0001, 0x282e: 0x0001, 0x282f: 0x0001,
+       0x2830: 0x0001, 0x2831: 0x0001, 0x2832: 0x0001, 0x2833: 0x0001, 0x2834: 0x0001, 0x2835: 0x0001,
+       0x2836: 0x0001, 0x2837: 0x0001, 0x2838: 0x0001, 0x2839: 0x000a, 0x283a: 0x000a, 0x283b: 0x000a,
+       0x283c: 0x000a, 0x283d: 0x000a, 0x283e: 0x000a, 0x283f: 0x000a,
+       // Block 0xa1, offset 0x2840
+       0x2840: 0x000d, 0x2841: 0x000d, 0x2842: 0x000d, 0x2843: 0x000d, 0x2844: 0x000d, 0x2845: 0x000d,
+       0x2846: 0x000d, 0x2847: 0x000d, 0x2848: 0x000d, 0x2849: 0x000d, 0x284a: 0x000d, 0x284b: 0x000d,
+       0x284c: 0x000d, 0x284d: 0x000d, 0x284e: 0x000d, 0x284f: 0x000d, 0x2850: 0x000d, 0x2851: 0x000d,
+       0x2852: 0x000d, 0x2853: 0x000d, 0x2854: 0x000d, 0x2855: 0x000d, 0x2856: 0x000d, 0x2857: 0x000d,
+       0x2858: 0x000d, 0x2859: 0x000d, 0x285a: 0x000d, 0x285b: 0x000d, 0x285c: 0x000d, 0x285d: 0x000d,
+       0x285e: 0x000d, 0x285f: 0x000d, 0x2860: 0x000d, 0x2861: 0x000d, 0x2862: 0x000d, 0x2863: 0x000d,
+       0x2864: 0x000c, 0x2865: 0x000c, 0x2866: 0x000c, 0x2867: 0x000c, 0x2868: 0x000d, 0x2869: 0x000d,
+       0x286a: 0x000d, 0x286b: 0x000d, 0x286c: 0x000d, 0x286d: 0x000d, 0x286e: 0x000d, 0x286f: 0x000d,
+       0x2870: 0x0005, 0x2871: 0x0005, 0x2872: 0x0005, 0x2873: 0x0005, 0x2874: 0x0005, 0x2875: 0x0005,
+       0x2876: 0x0005, 0x2877: 0x0005, 0x2878: 0x0005, 0x2879: 0x0005, 0x287a: 0x000d, 0x287b: 0x000d,
+       0x287c: 0x000d, 0x287d: 0x000d, 0x287e: 0x000d, 0x287f: 0x000d,
+       // Block 0xa2, offset 0x2880
+       0x2880: 0x0001, 0x2881: 0x0001, 0x2882: 0x0001, 0x2883: 0x0001, 0x2884: 0x0001, 0x2885: 0x0001,
+       0x2886: 0x0001, 0x2887: 0x0001, 0x2888: 0x0001, 0x2889: 0x0001, 0x288a: 0x0001, 0x288b: 0x0001,
+       0x288c: 0x0001, 0x288d: 0x0001, 0x288e: 0x0001, 0x288f: 0x0001, 0x2890: 0x0001, 0x2891: 0x0001,
+       0x2892: 0x0001, 0x2893: 0x0001, 0x2894: 0x0001, 0x2895: 0x0001, 0x2896: 0x0001, 0x2897: 0x0001,
+       0x2898: 0x0001, 0x2899: 0x0001, 0x289a: 0x0001, 0x289b: 0x0001, 0x289c: 0x0001, 0x289d: 0x0001,
+       0x289e: 0x0001, 0x289f: 0x0001, 0x28a0: 0x0005, 0x28a1: 0x0005, 0x28a2: 0x0005, 0x28a3: 0x0005,
+       0x28a4: 0x0005, 0x28a5: 0x0005, 0x28a6: 0x0005, 0x28a7: 0x0005, 0x28a8: 0x0005, 0x28a9: 0x0005,
+       0x28aa: 0x0005, 0x28ab: 0x0005, 0x28ac: 0x0005, 0x28ad: 0x0005, 0x28ae: 0x0005, 0x28af: 0x0005,
+       0x28b0: 0x0005, 0x28b1: 0x0005, 0x28b2: 0x0005, 0x28b3: 0x0005, 0x28b4: 0x0005, 0x28b5: 0x0005,
+       0x28b6: 0x0005, 0x28b7: 0x0005, 0x28b8: 0x0005, 0x28b9: 0x0005, 0x28ba: 0x0005, 0x28bb: 0x0005,
+       0x28bc: 0x0005, 0x28bd: 0x0005, 0x28be: 0x0005, 0x28bf: 0x0001,
+       // Block 0xa3, offset 0x28c0
+       0x28c0: 0x0001, 0x28c1: 0x0001, 0x28c2: 0x0001, 0x28c3: 0x0001, 0x28c4: 0x0001, 0x28c5: 0x0001,
+       0x28c6: 0x0001, 0x28c7: 0x0001, 0x28c8: 0x0001, 0x28c9: 0x0001, 0x28ca: 0x0001, 0x28cb: 0x0001,
+       0x28cc: 0x0001, 0x28cd: 0x0001, 0x28ce: 0x0001, 0x28cf: 0x0001, 0x28d0: 0x0001, 0x28d1: 0x0001,
+       0x28d2: 0x0001, 0x28d3: 0x0001, 0x28d4: 0x0001, 0x28d5: 0x0001, 0x28d6: 0x0001, 0x28d7: 0x0001,
+       0x28d8: 0x0001, 0x28d9: 0x0001, 0x28da: 0x0001, 0x28db: 0x0001, 0x28dc: 0x0001, 0x28dd: 0x0001,
+       0x28de: 0x0001, 0x28df: 0x0001, 0x28e0: 0x0001, 0x28e1: 0x0001, 0x28e2: 0x0001, 0x28e3: 0x0001,
+       0x28e4: 0x0001, 0x28e5: 0x0001, 0x28e6: 0x0001, 0x28e7: 0x0001, 0x28e8: 0x0001, 0x28e9: 0x0001,
+       0x28ea: 0x0001, 0x28eb: 0x0001, 0x28ec: 0x0001, 0x28ed: 0x0001, 0x28ee: 0x0001, 0x28ef: 0x0001,
+       0x28f0: 0x000d, 0x28f1: 0x000d, 0x28f2: 0x000d, 0x28f3: 0x000d, 0x28f4: 0x000d, 0x28f5: 0x000d,
+       0x28f6: 0x000d, 0x28f7: 0x000d, 0x28f8: 0x000d, 0x28f9: 0x000d, 0x28fa: 0x000d, 0x28fb: 0x000d,
+       0x28fc: 0x000d, 0x28fd: 0x000d, 0x28fe: 0x000d, 0x28ff: 0x000d,
+       // Block 0xa4, offset 0x2900
+       0x2900: 0x000d, 0x2901: 0x000d, 0x2902: 0x000d, 0x2903: 0x000d, 0x2904: 0x000d, 0x2905: 0x000d,
+       0x2906: 0x000c, 0x2907: 0x000c, 0x2908: 0x000c, 0x2909: 0x000c, 0x290a: 0x000c, 0x290b: 0x000c,
+       0x290c: 0x000c, 0x290d: 0x000c, 0x290e: 0x000c, 0x290f: 0x000c, 0x2910: 0x000c, 0x2911: 0x000d,
+       0x2912: 0x000d, 0x2913: 0x000d, 0x2914: 0x000d, 0x2915: 0x000d, 0x2916: 0x000d, 0x2917: 0x000d,
+       0x2918: 0x000d, 0x2919: 0x000d, 0x291a: 0x000d, 0x291b: 0x000d, 0x291c: 0x000d, 0x291d: 0x000d,
+       0x291e: 0x000d, 0x291f: 0x000d, 0x2920: 0x000d, 0x2921: 0x000d, 0x2922: 0x000d, 0x2923: 0x000d,
+       0x2924: 0x000d, 0x2925: 0x000d, 0x2926: 0x000d, 0x2927: 0x000d, 0x2928: 0x000d, 0x2929: 0x000d,
+       0x292a: 0x000d, 0x292b: 0x000d, 0x292c: 0x000d, 0x292d: 0x000d, 0x292e: 0x000d, 0x292f: 0x000d,
+       0x2930: 0x0001, 0x2931: 0x0001, 0x2932: 0x0001, 0x2933: 0x0001, 0x2934: 0x0001, 0x2935: 0x0001,
+       0x2936: 0x0001, 0x2937: 0x0001, 0x2938: 0x0001, 0x2939: 0x0001, 0x293a: 0x0001, 0x293b: 0x0001,
+       0x293c: 0x0001, 0x293d: 0x0001, 0x293e: 0x0001, 0x293f: 0x0001,
+       // Block 0xa5, offset 0x2940
+       0x2941: 0x000c,
+       0x2978: 0x000c, 0x2979: 0x000c, 0x297a: 0x000c, 0x297b: 0x000c,
+       0x297c: 0x000c, 0x297d: 0x000c, 0x297e: 0x000c, 0x297f: 0x000c,
+       // Block 0xa6, offset 0x2980
+       0x2980: 0x000c, 0x2981: 0x000c, 0x2982: 0x000c, 0x2983: 0x000c, 0x2984: 0x000c, 0x2985: 0x000c,
+       0x2986: 0x000c,
+       0x2992: 0x000a, 0x2993: 0x000a, 0x2994: 0x000a, 0x2995: 0x000a, 0x2996: 0x000a, 0x2997: 0x000a,
+       0x2998: 0x000a, 0x2999: 0x000a, 0x299a: 0x000a, 0x299b: 0x000a, 0x299c: 0x000a, 0x299d: 0x000a,
+       0x299e: 0x000a, 0x299f: 0x000a, 0x29a0: 0x000a, 0x29a1: 0x000a, 0x29a2: 0x000a, 0x29a3: 0x000a,
+       0x29a4: 0x000a, 0x29a5: 0x000a,
+       0x29bf: 0x000c,
+       // Block 0xa7, offset 0x29c0
+       0x29c0: 0x000c, 0x29c1: 0x000c,
+       0x29f3: 0x000c, 0x29f4: 0x000c, 0x29f5: 0x000c,
+       0x29f6: 0x000c, 0x29f9: 0x000c, 0x29fa: 0x000c,
+       // Block 0xa8, offset 0x2a00
+       0x2a00: 0x000c, 0x2a01: 0x000c, 0x2a02: 0x000c,
+       0x2a27: 0x000c, 0x2a28: 0x000c, 0x2a29: 0x000c,
+       0x2a2a: 0x000c, 0x2a2b: 0x000c, 0x2a2d: 0x000c, 0x2a2e: 0x000c, 0x2a2f: 0x000c,
+       0x2a30: 0x000c, 0x2a31: 0x000c, 0x2a32: 0x000c, 0x2a33: 0x000c, 0x2a34: 0x000c,
+       // Block 0xa9, offset 0x2a40
+       0x2a73: 0x000c,
+       // Block 0xaa, offset 0x2a80
+       0x2a80: 0x000c, 0x2a81: 0x000c,
+       0x2ab6: 0x000c, 0x2ab7: 0x000c, 0x2ab8: 0x000c, 0x2ab9: 0x000c, 0x2aba: 0x000c, 0x2abb: 0x000c,
+       0x2abc: 0x000c, 0x2abd: 0x000c, 0x2abe: 0x000c,
+       // Block 0xab, offset 0x2ac0
+       0x2ac9: 0x000c, 0x2aca: 0x000c, 0x2acb: 0x000c,
+       0x2acc: 0x000c,
+       // Block 0xac, offset 0x2b00
+       0x2b2f: 0x000c,
+       0x2b30: 0x000c, 0x2b31: 0x000c, 0x2b34: 0x000c,
+       0x2b36: 0x000c, 0x2b37: 0x000c,
+       0x2b3e: 0x000c,
+       // Block 0xad, offset 0x2b40
+       0x2b5f: 0x000c, 0x2b63: 0x000c,
+       0x2b64: 0x000c, 0x2b65: 0x000c, 0x2b66: 0x000c, 0x2b67: 0x000c, 0x2b68: 0x000c, 0x2b69: 0x000c,
+       0x2b6a: 0x000c,
+       // Block 0xae, offset 0x2b80
+       0x2b80: 0x000c,
+       0x2ba6: 0x000c, 0x2ba7: 0x000c, 0x2ba8: 0x000c, 0x2ba9: 0x000c,
+       0x2baa: 0x000c, 0x2bab: 0x000c, 0x2bac: 0x000c,
+       0x2bb0: 0x000c, 0x2bb1: 0x000c, 0x2bb2: 0x000c, 0x2bb3: 0x000c, 0x2bb4: 0x000c,
+       // Block 0xaf, offset 0x2bc0
+       0x2bf8: 0x000c, 0x2bf9: 0x000c, 0x2bfa: 0x000c, 0x2bfb: 0x000c,
+       0x2bfc: 0x000c, 0x2bfd: 0x000c, 0x2bfe: 0x000c, 0x2bff: 0x000c,
+       // Block 0xb0, offset 0x2c00
+       0x2c02: 0x000c, 0x2c03: 0x000c, 0x2c04: 0x000c,
+       0x2c06: 0x000c,
+       0x2c1e: 0x000c,
+       // Block 0xb1, offset 0x2c40
+       0x2c73: 0x000c, 0x2c74: 0x000c, 0x2c75: 0x000c,
+       0x2c76: 0x000c, 0x2c77: 0x000c, 0x2c78: 0x000c, 0x2c7a: 0x000c,
+       0x2c7f: 0x000c,
+       // Block 0xb2, offset 0x2c80
+       0x2c80: 0x000c, 0x2c82: 0x000c, 0x2c83: 0x000c,
+       // Block 0xb3, offset 0x2cc0
+       0x2cf2: 0x000c, 0x2cf3: 0x000c, 0x2cf4: 0x000c, 0x2cf5: 0x000c,
+       0x2cfc: 0x000c, 0x2cfd: 0x000c, 0x2cff: 0x000c,
+       // Block 0xb4, offset 0x2d00
+       0x2d00: 0x000c,
+       0x2d1c: 0x000c, 0x2d1d: 0x000c,
+       // Block 0xb5, offset 0x2d40
+       0x2d73: 0x000c, 0x2d74: 0x000c, 0x2d75: 0x000c,
+       0x2d76: 0x000c, 0x2d77: 0x000c, 0x2d78: 0x000c, 0x2d79: 0x000c, 0x2d7a: 0x000c,
+       0x2d7d: 0x000c, 0x2d7f: 0x000c,
+       // Block 0xb6, offset 0x2d80
+       0x2d80: 0x000c,
+       0x2da0: 0x000a, 0x2da1: 0x000a, 0x2da2: 0x000a, 0x2da3: 0x000a,
+       0x2da4: 0x000a, 0x2da5: 0x000a, 0x2da6: 0x000a, 0x2da7: 0x000a, 0x2da8: 0x000a, 0x2da9: 0x000a,
+       0x2daa: 0x000a, 0x2dab: 0x000a, 0x2dac: 0x000a,
+       // Block 0xb7, offset 0x2dc0
+       0x2deb: 0x000c, 0x2ded: 0x000c,
+       0x2df0: 0x000c, 0x2df1: 0x000c, 0x2df2: 0x000c, 0x2df3: 0x000c, 0x2df4: 0x000c, 0x2df5: 0x000c,
+       0x2df7: 0x000c,
+       // Block 0xb8, offset 0x2e00
+       0x2e1d: 0x000c,
+       0x2e1e: 0x000c, 0x2e1f: 0x000c, 0x2e22: 0x000c, 0x2e23: 0x000c,
+       0x2e24: 0x000c, 0x2e25: 0x000c, 0x2e27: 0x000c, 0x2e28: 0x000c, 0x2e29: 0x000c,
+       0x2e2a: 0x000c, 0x2e2b: 0x000c,
+       // Block 0xb9, offset 0x2e40
+       0x2e6f: 0x000c,
+       0x2e70: 0x000c, 0x2e71: 0x000c, 0x2e72: 0x000c, 0x2e73: 0x000c, 0x2e74: 0x000c, 0x2e75: 0x000c,
+       0x2e76: 0x000c, 0x2e77: 0x000c, 0x2e79: 0x000c, 0x2e7a: 0x000c,
+       // Block 0xba, offset 0x2e80
+       0x2e81: 0x000c, 0x2e82: 0x000c, 0x2e83: 0x000c, 0x2e84: 0x000c, 0x2e85: 0x000c,
+       0x2e86: 0x000c, 0x2e89: 0x000c, 0x2e8a: 0x000c,
+       0x2eb3: 0x000c, 0x2eb4: 0x000c, 0x2eb5: 0x000c,
+       0x2eb6: 0x000c, 0x2eb7: 0x000c, 0x2eb8: 0x000c, 0x2ebb: 0x000c,
+       0x2ebc: 0x000c, 0x2ebd: 0x000c, 0x2ebe: 0x000c,
+       // Block 0xbb, offset 0x2ec0
+       0x2ec7: 0x000c,
+       0x2ed1: 0x000c,
+       0x2ed2: 0x000c, 0x2ed3: 0x000c, 0x2ed4: 0x000c, 0x2ed5: 0x000c, 0x2ed6: 0x000c,
+       0x2ed9: 0x000c, 0x2eda: 0x000c, 0x2edb: 0x000c,
+       // Block 0xbc, offset 0x2f00
+       0x2f0a: 0x000c, 0x2f0b: 0x000c,
+       0x2f0c: 0x000c, 0x2f0d: 0x000c, 0x2f0e: 0x000c, 0x2f0f: 0x000c, 0x2f10: 0x000c, 0x2f11: 0x000c,
+       0x2f12: 0x000c, 0x2f13: 0x000c, 0x2f14: 0x000c, 0x2f15: 0x000c, 0x2f16: 0x000c,
+       0x2f18: 0x000c, 0x2f19: 0x000c,
+       // Block 0xbd, offset 0x2f40
+       0x2f70: 0x000c, 0x2f71: 0x000c, 0x2f72: 0x000c, 0x2f73: 0x000c, 0x2f74: 0x000c, 0x2f75: 0x000c,
+       0x2f76: 0x000c, 0x2f78: 0x000c, 0x2f79: 0x000c, 0x2f7a: 0x000c, 0x2f7b: 0x000c,
+       0x2f7c: 0x000c, 0x2f7d: 0x000c,
+       // Block 0xbe, offset 0x2f80
+       0x2f92: 0x000c, 0x2f93: 0x000c, 0x2f94: 0x000c, 0x2f95: 0x000c, 0x2f96: 0x000c, 0x2f97: 0x000c,
+       0x2f98: 0x000c, 0x2f99: 0x000c, 0x2f9a: 0x000c, 0x2f9b: 0x000c, 0x2f9c: 0x000c, 0x2f9d: 0x000c,
+       0x2f9e: 0x000c, 0x2f9f: 0x000c, 0x2fa0: 0x000c, 0x2fa1: 0x000c, 0x2fa2: 0x000c, 0x2fa3: 0x000c,
+       0x2fa4: 0x000c, 0x2fa5: 0x000c, 0x2fa6: 0x000c, 0x2fa7: 0x000c,
+       0x2faa: 0x000c, 0x2fab: 0x000c, 0x2fac: 0x000c, 0x2fad: 0x000c, 0x2fae: 0x000c, 0x2faf: 0x000c,
+       0x2fb0: 0x000c, 0x2fb2: 0x000c, 0x2fb3: 0x000c, 0x2fb5: 0x000c,
+       0x2fb6: 0x000c,
+       // Block 0xbf, offset 0x2fc0
+       0x2ff1: 0x000c, 0x2ff2: 0x000c, 0x2ff3: 0x000c, 0x2ff4: 0x000c, 0x2ff5: 0x000c,
+       0x2ff6: 0x000c, 0x2ffa: 0x000c,
+       0x2ffc: 0x000c, 0x2ffd: 0x000c, 0x2fff: 0x000c,
+       // Block 0xc0, offset 0x3000
+       0x3000: 0x000c, 0x3001: 0x000c, 0x3002: 0x000c, 0x3003: 0x000c, 0x3004: 0x000c, 0x3005: 0x000c,
+       0x3007: 0x000c,
+       // Block 0xc1, offset 0x3040
+       0x3050: 0x000c, 0x3051: 0x000c,
+       0x3055: 0x000c, 0x3057: 0x000c,
+       // Block 0xc2, offset 0x3080
+       0x30b3: 0x000c, 0x30b4: 0x000c,
+       // Block 0xc3, offset 0x30c0
+       0x30f0: 0x000c, 0x30f1: 0x000c, 0x30f2: 0x000c, 0x30f3: 0x000c, 0x30f4: 0x000c,
+       // Block 0xc4, offset 0x3100
+       0x3130: 0x000c, 0x3131: 0x000c, 0x3132: 0x000c, 0x3133: 0x000c, 0x3134: 0x000c, 0x3135: 0x000c,
+       0x3136: 0x000c,
+       // Block 0xc5, offset 0x3140
+       0x314f: 0x000c, 0x3150: 0x000c, 0x3151: 0x000c,
+       0x3152: 0x000c,
+       // Block 0xc6, offset 0x3180
+       0x319d: 0x000c,
+       0x319e: 0x000c, 0x31a0: 0x000b, 0x31a1: 0x000b, 0x31a2: 0x000b, 0x31a3: 0x000b,
+       // Block 0xc7, offset 0x31c0
+       0x31e7: 0x000c, 0x31e8: 0x000c, 0x31e9: 0x000c,
+       0x31f3: 0x000b, 0x31f4: 0x000b, 0x31f5: 0x000b,
+       0x31f6: 0x000b, 0x31f7: 0x000b, 0x31f8: 0x000b, 0x31f9: 0x000b, 0x31fa: 0x000b, 0x31fb: 0x000c,
+       0x31fc: 0x000c, 0x31fd: 0x000c, 0x31fe: 0x000c, 0x31ff: 0x000c,
+       // Block 0xc8, offset 0x3200
+       0x3200: 0x000c, 0x3201: 0x000c, 0x3202: 0x000c, 0x3205: 0x000c,
+       0x3206: 0x000c, 0x3207: 0x000c, 0x3208: 0x000c, 0x3209: 0x000c, 0x320a: 0x000c, 0x320b: 0x000c,
+       0x322a: 0x000c, 0x322b: 0x000c, 0x322c: 0x000c, 0x322d: 0x000c,
+       // Block 0xc9, offset 0x3240
+       0x3240: 0x000a, 0x3241: 0x000a, 0x3242: 0x000c, 0x3243: 0x000c, 0x3244: 0x000c, 0x3245: 0x000a,
+       // Block 0xca, offset 0x3280
+       0x3280: 0x000a, 0x3281: 0x000a, 0x3282: 0x000a, 0x3283: 0x000a, 0x3284: 0x000a, 0x3285: 0x000a,
+       0x3286: 0x000a, 0x3287: 0x000a, 0x3288: 0x000a, 0x3289: 0x000a, 0x328a: 0x000a, 0x328b: 0x000a,
+       0x328c: 0x000a, 0x328d: 0x000a, 0x328e: 0x000a, 0x328f: 0x000a, 0x3290: 0x000a, 0x3291: 0x000a,
+       0x3292: 0x000a, 0x3293: 0x000a, 0x3294: 0x000a, 0x3295: 0x000a, 0x3296: 0x000a,
+       // Block 0xcb, offset 0x32c0
+       0x32db: 0x000a,
+       // Block 0xcc, offset 0x3300
+       0x3315: 0x000a,
+       // Block 0xcd, offset 0x3340
+       0x334f: 0x000a,
+       // Block 0xce, offset 0x3380
+       0x3389: 0x000a,
+       // Block 0xcf, offset 0x33c0
+       0x33c3: 0x000a,
+       0x33ce: 0x0002, 0x33cf: 0x0002, 0x33d0: 0x0002, 0x33d1: 0x0002,
+       0x33d2: 0x0002, 0x33d3: 0x0002, 0x33d4: 0x0002, 0x33d5: 0x0002, 0x33d6: 0x0002, 0x33d7: 0x0002,
+       0x33d8: 0x0002, 0x33d9: 0x0002, 0x33da: 0x0002, 0x33db: 0x0002, 0x33dc: 0x0002, 0x33dd: 0x0002,
+       0x33de: 0x0002, 0x33df: 0x0002, 0x33e0: 0x0002, 0x33e1: 0x0002, 0x33e2: 0x0002, 0x33e3: 0x0002,
+       0x33e4: 0x0002, 0x33e5: 0x0002, 0x33e6: 0x0002, 0x33e7: 0x0002, 0x33e8: 0x0002, 0x33e9: 0x0002,
+       0x33ea: 0x0002, 0x33eb: 0x0002, 0x33ec: 0x0002, 0x33ed: 0x0002, 0x33ee: 0x0002, 0x33ef: 0x0002,
+       0x33f0: 0x0002, 0x33f1: 0x0002, 0x33f2: 0x0002, 0x33f3: 0x0002, 0x33f4: 0x0002, 0x33f5: 0x0002,
+       0x33f6: 0x0002, 0x33f7: 0x0002, 0x33f8: 0x0002, 0x33f9: 0x0002, 0x33fa: 0x0002, 0x33fb: 0x0002,
+       0x33fc: 0x0002, 0x33fd: 0x0002, 0x33fe: 0x0002, 0x33ff: 0x0002,
+       // Block 0xd0, offset 0x3400
+       0x3400: 0x000c, 0x3401: 0x000c, 0x3402: 0x000c, 0x3403: 0x000c, 0x3404: 0x000c, 0x3405: 0x000c,
+       0x3406: 0x000c, 0x3407: 0x000c, 0x3408: 0x000c, 0x3409: 0x000c, 0x340a: 0x000c, 0x340b: 0x000c,
+       0x340c: 0x000c, 0x340d: 0x000c, 0x340e: 0x000c, 0x340f: 0x000c, 0x3410: 0x000c, 0x3411: 0x000c,
+       0x3412: 0x000c, 0x3413: 0x000c, 0x3414: 0x000c, 0x3415: 0x000c, 0x3416: 0x000c, 0x3417: 0x000c,
+       0x3418: 0x000c, 0x3419: 0x000c, 0x341a: 0x000c, 0x341b: 0x000c, 0x341c: 0x000c, 0x341d: 0x000c,
+       0x341e: 0x000c, 0x341f: 0x000c, 0x3420: 0x000c, 0x3421: 0x000c, 0x3422: 0x000c, 0x3423: 0x000c,
+       0x3424: 0x000c, 0x3425: 0x000c, 0x3426: 0x000c, 0x3427: 0x000c, 0x3428: 0x000c, 0x3429: 0x000c,
+       0x342a: 0x000c, 0x342b: 0x000c, 0x342c: 0x000c, 0x342d: 0x000c, 0x342e: 0x000c, 0x342f: 0x000c,
+       0x3430: 0x000c, 0x3431: 0x000c, 0x3432: 0x000c, 0x3433: 0x000c, 0x3434: 0x000c, 0x3435: 0x000c,
+       0x3436: 0x000c, 0x343b: 0x000c,
+       0x343c: 0x000c, 0x343d: 0x000c, 0x343e: 0x000c, 0x343f: 0x000c,
+       // Block 0xd1, offset 0x3440
+       0x3440: 0x000c, 0x3441: 0x000c, 0x3442: 0x000c, 0x3443: 0x000c, 0x3444: 0x000c, 0x3445: 0x000c,
+       0x3446: 0x000c, 0x3447: 0x000c, 0x3448: 0x000c, 0x3449: 0x000c, 0x344a: 0x000c, 0x344b: 0x000c,
+       0x344c: 0x000c, 0x344d: 0x000c, 0x344e: 0x000c, 0x344f: 0x000c, 0x3450: 0x000c, 0x3451: 0x000c,
+       0x3452: 0x000c, 0x3453: 0x000c, 0x3454: 0x000c, 0x3455: 0x000c, 0x3456: 0x000c, 0x3457: 0x000c,
+       0x3458: 0x000c, 0x3459: 0x000c, 0x345a: 0x000c, 0x345b: 0x000c, 0x345c: 0x000c, 0x345d: 0x000c,
+       0x345e: 0x000c, 0x345f: 0x000c, 0x3460: 0x000c, 0x3461: 0x000c, 0x3462: 0x000c, 0x3463: 0x000c,
+       0x3464: 0x000c, 0x3465: 0x000c, 0x3466: 0x000c, 0x3467: 0x000c, 0x3468: 0x000c, 0x3469: 0x000c,
+       0x346a: 0x000c, 0x346b: 0x000c, 0x346c: 0x000c,
+       0x3475: 0x000c,
+       // Block 0xd2, offset 0x3480
+       0x3484: 0x000c,
+       0x349b: 0x000c, 0x349c: 0x000c, 0x349d: 0x000c,
+       0x349e: 0x000c, 0x349f: 0x000c, 0x34a1: 0x000c, 0x34a2: 0x000c, 0x34a3: 0x000c,
+       0x34a4: 0x000c, 0x34a5: 0x000c, 0x34a6: 0x000c, 0x34a7: 0x000c, 0x34a8: 0x000c, 0x34a9: 0x000c,
+       0x34aa: 0x000c, 0x34ab: 0x000c, 0x34ac: 0x000c, 0x34ad: 0x000c, 0x34ae: 0x000c, 0x34af: 0x000c,
+       // Block 0xd3, offset 0x34c0
+       0x34c0: 0x000c, 0x34c1: 0x000c, 0x34c2: 0x000c, 0x34c3: 0x000c, 0x34c4: 0x000c, 0x34c5: 0x000c,
+       0x34c6: 0x000c, 0x34c8: 0x000c, 0x34c9: 0x000c, 0x34ca: 0x000c, 0x34cb: 0x000c,
+       0x34cc: 0x000c, 0x34cd: 0x000c, 0x34ce: 0x000c, 0x34cf: 0x000c, 0x34d0: 0x000c, 0x34d1: 0x000c,
+       0x34d2: 0x000c, 0x34d3: 0x000c, 0x34d4: 0x000c, 0x34d5: 0x000c, 0x34d6: 0x000c, 0x34d7: 0x000c,
+       0x34d8: 0x000c, 0x34db: 0x000c, 0x34dc: 0x000c, 0x34dd: 0x000c,
+       0x34de: 0x000c, 0x34df: 0x000c, 0x34e0: 0x000c, 0x34e1: 0x000c, 0x34e3: 0x000c,
+       0x34e4: 0x000c, 0x34e6: 0x000c, 0x34e7: 0x000c, 0x34e8: 0x000c, 0x34e9: 0x000c,
+       0x34ea: 0x000c,
+       // Block 0xd4, offset 0x3500
+       0x3500: 0x0001, 0x3501: 0x0001, 0x3502: 0x0001, 0x3503: 0x0001, 0x3504: 0x0001, 0x3505: 0x0001,
+       0x3506: 0x0001, 0x3507: 0x0001, 0x3508: 0x0001, 0x3509: 0x0001, 0x350a: 0x0001, 0x350b: 0x0001,
+       0x350c: 0x0001, 0x350d: 0x0001, 0x350e: 0x0001, 0x350f: 0x0001, 0x3510: 0x000c, 0x3511: 0x000c,
+       0x3512: 0x000c, 0x3513: 0x000c, 0x3514: 0x000c, 0x3515: 0x000c, 0x3516: 0x000c, 0x3517: 0x0001,
+       0x3518: 0x0001, 0x3519: 0x0001, 0x351a: 0x0001, 0x351b: 0x0001, 0x351c: 0x0001, 0x351d: 0x0001,
+       0x351e: 0x0001, 0x351f: 0x0001, 0x3520: 0x0001, 0x3521: 0x0001, 0x3522: 0x0001, 0x3523: 0x0001,
+       0x3524: 0x0001, 0x3525: 0x0001, 0x3526: 0x0001, 0x3527: 0x0001, 0x3528: 0x0001, 0x3529: 0x0001,
+       0x352a: 0x0001, 0x352b: 0x0001, 0x352c: 0x0001, 0x352d: 0x0001, 0x352e: 0x0001, 0x352f: 0x0001,
+       0x3530: 0x0001, 0x3531: 0x0001, 0x3532: 0x0001, 0x3533: 0x0001, 0x3534: 0x0001, 0x3535: 0x0001,
+       0x3536: 0x0001, 0x3537: 0x0001, 0x3538: 0x0001, 0x3539: 0x0001, 0x353a: 0x0001, 0x353b: 0x0001,
+       0x353c: 0x0001, 0x353d: 0x0001, 0x353e: 0x0001, 0x353f: 0x0001,
+       // Block 0xd5, offset 0x3540
+       0x3540: 0x0001, 0x3541: 0x0001, 0x3542: 0x0001, 0x3543: 0x0001, 0x3544: 0x000c, 0x3545: 0x000c,
+       0x3546: 0x000c, 0x3547: 0x000c, 0x3548: 0x000c, 0x3549: 0x000c, 0x354a: 0x000c, 0x354b: 0x0001,
+       0x354c: 0x0001, 0x354d: 0x0001, 0x354e: 0x0001, 0x354f: 0x0001, 0x3550: 0x0001, 0x3551: 0x0001,
+       0x3552: 0x0001, 0x3553: 0x0001, 0x3554: 0x0001, 0x3555: 0x0001, 0x3556: 0x0001, 0x3557: 0x0001,
+       0x3558: 0x0001, 0x3559: 0x0001, 0x355a: 0x0001, 0x355b: 0x0001, 0x355c: 0x0001, 0x355d: 0x0001,
+       0x355e: 0x0001, 0x355f: 0x0001, 0x3560: 0x0001, 0x3561: 0x0001, 0x3562: 0x0001, 0x3563: 0x0001,
+       0x3564: 0x0001, 0x3565: 0x0001, 0x3566: 0x0001, 0x3567: 0x0001, 0x3568: 0x0001, 0x3569: 0x0001,
+       0x356a: 0x0001, 0x356b: 0x0001, 0x356c: 0x0001, 0x356d: 0x0001, 0x356e: 0x0001, 0x356f: 0x0001,
+       0x3570: 0x0001, 0x3571: 0x0001, 0x3572: 0x0001, 0x3573: 0x0001, 0x3574: 0x0001, 0x3575: 0x0001,
+       0x3576: 0x0001, 0x3577: 0x0001, 0x3578: 0x0001, 0x3579: 0x0001, 0x357a: 0x0001, 0x357b: 0x0001,
+       0x357c: 0x0001, 0x357d: 0x0001, 0x357e: 0x0001, 0x357f: 0x0001,
+       // Block 0xd6, offset 0x3580
+       0x3580: 0x000d, 0x3581: 0x000d, 0x3582: 0x000d, 0x3583: 0x000d, 0x3584: 0x000d, 0x3585: 0x000d,
+       0x3586: 0x000d, 0x3587: 0x000d, 0x3588: 0x000d, 0x3589: 0x000d, 0x358a: 0x000d, 0x358b: 0x000d,
+       0x358c: 0x000d, 0x358d: 0x000d, 0x358e: 0x000d, 0x358f: 0x000d, 0x3590: 0x000d, 0x3591: 0x000d,
+       0x3592: 0x000d, 0x3593: 0x000d, 0x3594: 0x000d, 0x3595: 0x000d, 0x3596: 0x000d, 0x3597: 0x000d,
+       0x3598: 0x000d, 0x3599: 0x000d, 0x359a: 0x000d, 0x359b: 0x000d, 0x359c: 0x000d, 0x359d: 0x000d,
+       0x359e: 0x000d, 0x359f: 0x000d, 0x35a0: 0x000d, 0x35a1: 0x000d, 0x35a2: 0x000d, 0x35a3: 0x000d,
+       0x35a4: 0x000d, 0x35a5: 0x000d, 0x35a6: 0x000d, 0x35a7: 0x000d, 0x35a8: 0x000d, 0x35a9: 0x000d,
+       0x35aa: 0x000d, 0x35ab: 0x000d, 0x35ac: 0x000d, 0x35ad: 0x000d, 0x35ae: 0x000d, 0x35af: 0x000d,
+       0x35b0: 0x000a, 0x35b1: 0x000a, 0x35b2: 0x000d, 0x35b3: 0x000d, 0x35b4: 0x000d, 0x35b5: 0x000d,
+       0x35b6: 0x000d, 0x35b7: 0x000d, 0x35b8: 0x000d, 0x35b9: 0x000d, 0x35ba: 0x000d, 0x35bb: 0x000d,
+       0x35bc: 0x000d, 0x35bd: 0x000d, 0x35be: 0x000d, 0x35bf: 0x000d,
+       // Block 0xd7, offset 0x35c0
+       0x35c0: 0x000a, 0x35c1: 0x000a, 0x35c2: 0x000a, 0x35c3: 0x000a, 0x35c4: 0x000a, 0x35c5: 0x000a,
+       0x35c6: 0x000a, 0x35c7: 0x000a, 0x35c8: 0x000a, 0x35c9: 0x000a, 0x35ca: 0x000a, 0x35cb: 0x000a,
+       0x35cc: 0x000a, 0x35cd: 0x000a, 0x35ce: 0x000a, 0x35cf: 0x000a, 0x35d0: 0x000a, 0x35d1: 0x000a,
+       0x35d2: 0x000a, 0x35d3: 0x000a, 0x35d4: 0x000a, 0x35d5: 0x000a, 0x35d6: 0x000a, 0x35d7: 0x000a,
+       0x35d8: 0x000a, 0x35d9: 0x000a, 0x35da: 0x000a, 0x35db: 0x000a, 0x35dc: 0x000a, 0x35dd: 0x000a,
+       0x35de: 0x000a, 0x35df: 0x000a, 0x35e0: 0x000a, 0x35e1: 0x000a, 0x35e2: 0x000a, 0x35e3: 0x000a,
+       0x35e4: 0x000a, 0x35e5: 0x000a, 0x35e6: 0x000a, 0x35e7: 0x000a, 0x35e8: 0x000a, 0x35e9: 0x000a,
+       0x35ea: 0x000a, 0x35eb: 0x000a,
+       0x35f0: 0x000a, 0x35f1: 0x000a, 0x35f2: 0x000a, 0x35f3: 0x000a, 0x35f4: 0x000a, 0x35f5: 0x000a,
+       0x35f6: 0x000a, 0x35f7: 0x000a, 0x35f8: 0x000a, 0x35f9: 0x000a, 0x35fa: 0x000a, 0x35fb: 0x000a,
+       0x35fc: 0x000a, 0x35fd: 0x000a, 0x35fe: 0x000a, 0x35ff: 0x000a,
+       // Block 0xd8, offset 0x3600
+       0x3600: 0x000a, 0x3601: 0x000a, 0x3602: 0x000a, 0x3603: 0x000a, 0x3604: 0x000a, 0x3605: 0x000a,
+       0x3606: 0x000a, 0x3607: 0x000a, 0x3608: 0x000a, 0x3609: 0x000a, 0x360a: 0x000a, 0x360b: 0x000a,
+       0x360c: 0x000a, 0x360d: 0x000a, 0x360e: 0x000a, 0x360f: 0x000a, 0x3610: 0x000a, 0x3611: 0x000a,
+       0x3612: 0x000a, 0x3613: 0x000a,
+       0x3620: 0x000a, 0x3621: 0x000a, 0x3622: 0x000a, 0x3623: 0x000a,
+       0x3624: 0x000a, 0x3625: 0x000a, 0x3626: 0x000a, 0x3627: 0x000a, 0x3628: 0x000a, 0x3629: 0x000a,
+       0x362a: 0x000a, 0x362b: 0x000a, 0x362c: 0x000a, 0x362d: 0x000a, 0x362e: 0x000a,
+       0x3631: 0x000a, 0x3632: 0x000a, 0x3633: 0x000a, 0x3634: 0x000a, 0x3635: 0x000a,
+       0x3636: 0x000a, 0x3637: 0x000a, 0x3638: 0x000a, 0x3639: 0x000a, 0x363a: 0x000a, 0x363b: 0x000a,
+       0x363c: 0x000a, 0x363d: 0x000a, 0x363e: 0x000a, 0x363f: 0x000a,
+       // Block 0xd9, offset 0x3640
+       0x3641: 0x000a, 0x3642: 0x000a, 0x3643: 0x000a, 0x3644: 0x000a, 0x3645: 0x000a,
+       0x3646: 0x000a, 0x3647: 0x000a, 0x3648: 0x000a, 0x3649: 0x000a, 0x364a: 0x000a, 0x364b: 0x000a,
+       0x364c: 0x000a, 0x364d: 0x000a, 0x364e: 0x000a, 0x364f: 0x000a, 0x3651: 0x000a,
+       0x3652: 0x000a, 0x3653: 0x000a, 0x3654: 0x000a, 0x3655: 0x000a, 0x3656: 0x000a, 0x3657: 0x000a,
+       0x3658: 0x000a, 0x3659: 0x000a, 0x365a: 0x000a, 0x365b: 0x000a, 0x365c: 0x000a, 0x365d: 0x000a,
+       0x365e: 0x000a, 0x365f: 0x000a, 0x3660: 0x000a, 0x3661: 0x000a, 0x3662: 0x000a, 0x3663: 0x000a,
+       0x3664: 0x000a, 0x3665: 0x000a, 0x3666: 0x000a, 0x3667: 0x000a, 0x3668: 0x000a, 0x3669: 0x000a,
+       0x366a: 0x000a, 0x366b: 0x000a, 0x366c: 0x000a, 0x366d: 0x000a, 0x366e: 0x000a, 0x366f: 0x000a,
+       0x3670: 0x000a, 0x3671: 0x000a, 0x3672: 0x000a, 0x3673: 0x000a, 0x3674: 0x000a, 0x3675: 0x000a,
+       // Block 0xda, offset 0x3680
+       0x3680: 0x0002, 0x3681: 0x0002, 0x3682: 0x0002, 0x3683: 0x0002, 0x3684: 0x0002, 0x3685: 0x0002,
+       0x3686: 0x0002, 0x3687: 0x0002, 0x3688: 0x0002, 0x3689: 0x0002, 0x368a: 0x0002, 0x368b: 0x000a,
+       0x368c: 0x000a,
+       0x36af: 0x000a,
+       // Block 0xdb, offset 0x36c0
+       0x36ea: 0x000a, 0x36eb: 0x000a,
+       // Block 0xdc, offset 0x3700
+       0x3720: 0x000a, 0x3721: 0x000a, 0x3722: 0x000a, 0x3723: 0x000a,
+       0x3724: 0x000a, 0x3725: 0x000a,
+       // Block 0xdd, offset 0x3740
+       0x3740: 0x000a, 0x3741: 0x000a, 0x3742: 0x000a, 0x3743: 0x000a, 0x3744: 0x000a, 0x3745: 0x000a,
+       0x3746: 0x000a, 0x3747: 0x000a, 0x3748: 0x000a, 0x3749: 0x000a, 0x374a: 0x000a, 0x374b: 0x000a,
+       0x374c: 0x000a, 0x374d: 0x000a, 0x374e: 0x000a, 0x374f: 0x000a, 0x3750: 0x000a, 0x3751: 0x000a,
+       0x3752: 0x000a, 0x3753: 0x000a, 0x3754: 0x000a,
+       0x3760: 0x000a, 0x3761: 0x000a, 0x3762: 0x000a, 0x3763: 0x000a,
+       0x3764: 0x000a, 0x3765: 0x000a, 0x3766: 0x000a, 0x3767: 0x000a, 0x3768: 0x000a, 0x3769: 0x000a,
+       0x376a: 0x000a, 0x376b: 0x000a, 0x376c: 0x000a,
+       0x3770: 0x000a, 0x3771: 0x000a, 0x3772: 0x000a, 0x3773: 0x000a, 0x3774: 0x000a, 0x3775: 0x000a,
+       0x3776: 0x000a, 0x3777: 0x000a, 0x3778: 0x000a, 0x3779: 0x000a,
+       // Block 0xde, offset 0x3780
+       0x3780: 0x000a, 0x3781: 0x000a, 0x3782: 0x000a, 0x3783: 0x000a, 0x3784: 0x000a, 0x3785: 0x000a,
+       0x3786: 0x000a, 0x3787: 0x000a, 0x3788: 0x000a, 0x3789: 0x000a, 0x378a: 0x000a, 0x378b: 0x000a,
+       0x378c: 0x000a, 0x378d: 0x000a, 0x378e: 0x000a, 0x378f: 0x000a, 0x3790: 0x000a, 0x3791: 0x000a,
+       0x3792: 0x000a, 0x3793: 0x000a, 0x3794: 0x000a, 0x3795: 0x000a, 0x3796: 0x000a, 0x3797: 0x000a,
+       0x3798: 0x000a,
+       // Block 0xdf, offset 0x37c0
+       0x37c0: 0x000a, 0x37c1: 0x000a, 0x37c2: 0x000a, 0x37c3: 0x000a, 0x37c4: 0x000a, 0x37c5: 0x000a,
+       0x37c6: 0x000a, 0x37c7: 0x000a, 0x37c8: 0x000a, 0x37c9: 0x000a, 0x37ca: 0x000a, 0x37cb: 0x000a,
+       0x37d0: 0x000a, 0x37d1: 0x000a,
+       0x37d2: 0x000a, 0x37d3: 0x000a, 0x37d4: 0x000a, 0x37d5: 0x000a, 0x37d6: 0x000a, 0x37d7: 0x000a,
+       0x37d8: 0x000a, 0x37d9: 0x000a, 0x37da: 0x000a, 0x37db: 0x000a, 0x37dc: 0x000a, 0x37dd: 0x000a,
+       0x37de: 0x000a, 0x37df: 0x000a, 0x37e0: 0x000a, 0x37e1: 0x000a, 0x37e2: 0x000a, 0x37e3: 0x000a,
+       0x37e4: 0x000a, 0x37e5: 0x000a, 0x37e6: 0x000a, 0x37e7: 0x000a, 0x37e8: 0x000a, 0x37e9: 0x000a,
+       0x37ea: 0x000a, 0x37eb: 0x000a, 0x37ec: 0x000a, 0x37ed: 0x000a, 0x37ee: 0x000a, 0x37ef: 0x000a,
+       0x37f0: 0x000a, 0x37f1: 0x000a, 0x37f2: 0x000a, 0x37f3: 0x000a, 0x37f4: 0x000a, 0x37f5: 0x000a,
+       0x37f6: 0x000a, 0x37f7: 0x000a, 0x37f8: 0x000a, 0x37f9: 0x000a, 0x37fa: 0x000a, 0x37fb: 0x000a,
+       0x37fc: 0x000a, 0x37fd: 0x000a, 0x37fe: 0x000a, 0x37ff: 0x000a,
+       // Block 0xe0, offset 0x3800
+       0x3800: 0x000a, 0x3801: 0x000a, 0x3802: 0x000a, 0x3803: 0x000a, 0x3804: 0x000a, 0x3805: 0x000a,
+       0x3806: 0x000a, 0x3807: 0x000a,
+       0x3810: 0x000a, 0x3811: 0x000a,
+       0x3812: 0x000a, 0x3813: 0x000a, 0x3814: 0x000a, 0x3815: 0x000a, 0x3816: 0x000a, 0x3817: 0x000a,
+       0x3818: 0x000a, 0x3819: 0x000a,
+       0x3820: 0x000a, 0x3821: 0x000a, 0x3822: 0x000a, 0x3823: 0x000a,
+       0x3824: 0x000a, 0x3825: 0x000a, 0x3826: 0x000a, 0x3827: 0x000a, 0x3828: 0x000a, 0x3829: 0x000a,
+       0x382a: 0x000a, 0x382b: 0x000a, 0x382c: 0x000a, 0x382d: 0x000a, 0x382e: 0x000a, 0x382f: 0x000a,
+       0x3830: 0x000a, 0x3831: 0x000a, 0x3832: 0x000a, 0x3833: 0x000a, 0x3834: 0x000a, 0x3835: 0x000a,
+       0x3836: 0x000a, 0x3837: 0x000a, 0x3838: 0x000a, 0x3839: 0x000a, 0x383a: 0x000a, 0x383b: 0x000a,
+       0x383c: 0x000a, 0x383d: 0x000a, 0x383e: 0x000a, 0x383f: 0x000a,
+       // Block 0xe1, offset 0x3840
+       0x3840: 0x000a, 0x3841: 0x000a, 0x3842: 0x000a, 0x3843: 0x000a, 0x3844: 0x000a, 0x3845: 0x000a,
+       0x3846: 0x000a, 0x3847: 0x000a,
+       0x3850: 0x000a, 0x3851: 0x000a,
+       0x3852: 0x000a, 0x3853: 0x000a, 0x3854: 0x000a, 0x3855: 0x000a, 0x3856: 0x000a, 0x3857: 0x000a,
+       0x3858: 0x000a, 0x3859: 0x000a, 0x385a: 0x000a, 0x385b: 0x000a, 0x385c: 0x000a, 0x385d: 0x000a,
+       0x385e: 0x000a, 0x385f: 0x000a, 0x3860: 0x000a, 0x3861: 0x000a, 0x3862: 0x000a, 0x3863: 0x000a,
+       0x3864: 0x000a, 0x3865: 0x000a, 0x3866: 0x000a, 0x3867: 0x000a, 0x3868: 0x000a, 0x3869: 0x000a,
+       0x386a: 0x000a, 0x386b: 0x000a, 0x386c: 0x000a, 0x386d: 0x000a,
+       // Block 0xe2, offset 0x3880
+       0x3880: 0x000a, 0x3881: 0x000a, 0x3882: 0x000a, 0x3883: 0x000a, 0x3884: 0x000a, 0x3885: 0x000a,
+       0x3886: 0x000a, 0x3887: 0x000a, 0x3888: 0x000a, 0x3889: 0x000a, 0x388a: 0x000a, 0x388b: 0x000a,
+       0x3890: 0x000a, 0x3891: 0x000a,
+       0x3892: 0x000a, 0x3893: 0x000a, 0x3894: 0x000a, 0x3895: 0x000a, 0x3896: 0x000a, 0x3897: 0x000a,
+       0x3898: 0x000a, 0x3899: 0x000a, 0x389a: 0x000a, 0x389b: 0x000a, 0x389c: 0x000a, 0x389d: 0x000a,
+       0x389e: 0x000a, 0x389f: 0x000a, 0x38a0: 0x000a, 0x38a1: 0x000a, 0x38a2: 0x000a, 0x38a3: 0x000a,
+       0x38a4: 0x000a, 0x38a5: 0x000a, 0x38a6: 0x000a, 0x38a7: 0x000a, 0x38a8: 0x000a, 0x38a9: 0x000a,
+       0x38aa: 0x000a, 0x38ab: 0x000a, 0x38ac: 0x000a, 0x38ad: 0x000a, 0x38ae: 0x000a, 0x38af: 0x000a,
+       0x38b0: 0x000a, 0x38b1: 0x000a, 0x38b2: 0x000a, 0x38b3: 0x000a, 0x38b4: 0x000a, 0x38b5: 0x000a,
+       0x38b6: 0x000a, 0x38b7: 0x000a, 0x38b8: 0x000a, 0x38b9: 0x000a, 0x38ba: 0x000a, 0x38bb: 0x000a,
+       0x38bc: 0x000a, 0x38bd: 0x000a, 0x38be: 0x000a,
+       // Block 0xe3, offset 0x38c0
+       0x38c0: 0x000a, 0x38c1: 0x000a, 0x38c2: 0x000a, 0x38c3: 0x000a, 0x38c4: 0x000a, 0x38c5: 0x000a,
+       0x38c6: 0x000a, 0x38c7: 0x000a, 0x38c8: 0x000a, 0x38c9: 0x000a, 0x38ca: 0x000a, 0x38cb: 0x000a,
+       0x38cc: 0x000a, 0x38cd: 0x000a, 0x38ce: 0x000a, 0x38cf: 0x000a, 0x38d0: 0x000a, 0x38d1: 0x000a,
+       0x38d2: 0x000a, 0x38d3: 0x000a, 0x38d4: 0x000a, 0x38d5: 0x000a, 0x38d6: 0x000a, 0x38d7: 0x000a,
+       0x38d8: 0x000a, 0x38d9: 0x000a, 0x38da: 0x000a, 0x38db: 0x000a, 0x38dc: 0x000a, 0x38dd: 0x000a,
+       0x38de: 0x000a, 0x38df: 0x000a, 0x38e0: 0x000a, 0x38e1: 0x000a, 0x38e2: 0x000a, 0x38e3: 0x000a,
+       0x38e4: 0x000a, 0x38e5: 0x000a, 0x38e6: 0x000a, 0x38e7: 0x000a, 0x38e8: 0x000a, 0x38e9: 0x000a,
+       0x38ea: 0x000a, 0x38eb: 0x000a, 0x38ec: 0x000a, 0x38ed: 0x000a, 0x38ee: 0x000a, 0x38ef: 0x000a,
+       0x38f0: 0x000a, 0x38f3: 0x000a, 0x38f4: 0x000a, 0x38f5: 0x000a,
+       0x38f6: 0x000a, 0x38fa: 0x000a,
+       0x38fc: 0x000a, 0x38fd: 0x000a, 0x38fe: 0x000a, 0x38ff: 0x000a,
+       // Block 0xe4, offset 0x3900
+       0x3900: 0x000a, 0x3901: 0x000a, 0x3902: 0x000a, 0x3903: 0x000a, 0x3904: 0x000a, 0x3905: 0x000a,
+       0x3906: 0x000a, 0x3907: 0x000a, 0x3908: 0x000a, 0x3909: 0x000a, 0x390a: 0x000a, 0x390b: 0x000a,
+       0x390c: 0x000a, 0x390d: 0x000a, 0x390e: 0x000a, 0x390f: 0x000a, 0x3910: 0x000a, 0x3911: 0x000a,
+       0x3912: 0x000a, 0x3913: 0x000a, 0x3914: 0x000a, 0x3915: 0x000a, 0x3916: 0x000a, 0x3917: 0x000a,
+       0x3918: 0x000a, 0x3919: 0x000a, 0x391a: 0x000a, 0x391b: 0x000a, 0x391c: 0x000a, 0x391d: 0x000a,
+       0x391e: 0x000a, 0x391f: 0x000a, 0x3920: 0x000a, 0x3921: 0x000a, 0x3922: 0x000a,
+       0x3930: 0x000a, 0x3931: 0x000a, 0x3932: 0x000a, 0x3933: 0x000a, 0x3934: 0x000a, 0x3935: 0x000a,
+       0x3936: 0x000a, 0x3937: 0x000a, 0x3938: 0x000a, 0x3939: 0x000a,
+       // Block 0xe5, offset 0x3940
+       0x3940: 0x000a, 0x3941: 0x000a, 0x3942: 0x000a,
+       0x3950: 0x000a, 0x3951: 0x000a,
+       0x3952: 0x000a, 0x3953: 0x000a, 0x3954: 0x000a, 0x3955: 0x000a, 0x3956: 0x000a, 0x3957: 0x000a,
+       0x3958: 0x000a, 0x3959: 0x000a, 0x395a: 0x000a, 0x395b: 0x000a, 0x395c: 0x000a, 0x395d: 0x000a,
+       0x395e: 0x000a, 0x395f: 0x000a, 0x3960: 0x000a, 0x3961: 0x000a, 0x3962: 0x000a, 0x3963: 0x000a,
+       0x3964: 0x000a, 0x3965: 0x000a, 0x3966: 0x000a, 0x3967: 0x000a, 0x3968: 0x000a, 0x3969: 0x000a,
+       0x396a: 0x000a, 0x396b: 0x000a, 0x396c: 0x000a, 0x396d: 0x000a, 0x396e: 0x000a, 0x396f: 0x000a,
+       0x3970: 0x000a, 0x3971: 0x000a, 0x3972: 0x000a, 0x3973: 0x000a, 0x3974: 0x000a, 0x3975: 0x000a,
+       0x3976: 0x000a, 0x3977: 0x000a, 0x3978: 0x000a, 0x3979: 0x000a, 0x397a: 0x000a, 0x397b: 0x000a,
+       0x397c: 0x000a, 0x397d: 0x000a, 0x397e: 0x000a, 0x397f: 0x000a,
+       // Block 0xe6, offset 0x3980
+       0x39a0: 0x000a, 0x39a1: 0x000a, 0x39a2: 0x000a, 0x39a3: 0x000a,
+       0x39a4: 0x000a, 0x39a5: 0x000a, 0x39a6: 0x000a, 0x39a7: 0x000a, 0x39a8: 0x000a, 0x39a9: 0x000a,
+       0x39aa: 0x000a, 0x39ab: 0x000a, 0x39ac: 0x000a, 0x39ad: 0x000a,
+       // Block 0xe7, offset 0x39c0
+       0x39fe: 0x000b, 0x39ff: 0x000b,
+       // Block 0xe8, offset 0x3a00
+       0x3a00: 0x000b, 0x3a01: 0x000b, 0x3a02: 0x000b, 0x3a03: 0x000b, 0x3a04: 0x000b, 0x3a05: 0x000b,
+       0x3a06: 0x000b, 0x3a07: 0x000b, 0x3a08: 0x000b, 0x3a09: 0x000b, 0x3a0a: 0x000b, 0x3a0b: 0x000b,
+       0x3a0c: 0x000b, 0x3a0d: 0x000b, 0x3a0e: 0x000b, 0x3a0f: 0x000b, 0x3a10: 0x000b, 0x3a11: 0x000b,
+       0x3a12: 0x000b, 0x3a13: 0x000b, 0x3a14: 0x000b, 0x3a15: 0x000b, 0x3a16: 0x000b, 0x3a17: 0x000b,
+       0x3a18: 0x000b, 0x3a19: 0x000b, 0x3a1a: 0x000b, 0x3a1b: 0x000b, 0x3a1c: 0x000b, 0x3a1d: 0x000b,
+       0x3a1e: 0x000b, 0x3a1f: 0x000b, 0x3a20: 0x000b, 0x3a21: 0x000b, 0x3a22: 0x000b, 0x3a23: 0x000b,
+       0x3a24: 0x000b, 0x3a25: 0x000b, 0x3a26: 0x000b, 0x3a27: 0x000b, 0x3a28: 0x000b, 0x3a29: 0x000b,
+       0x3a2a: 0x000b, 0x3a2b: 0x000b, 0x3a2c: 0x000b, 0x3a2d: 0x000b, 0x3a2e: 0x000b, 0x3a2f: 0x000b,
+       0x3a30: 0x000b, 0x3a31: 0x000b, 0x3a32: 0x000b, 0x3a33: 0x000b, 0x3a34: 0x000b, 0x3a35: 0x000b,
+       0x3a36: 0x000b, 0x3a37: 0x000b, 0x3a38: 0x000b, 0x3a39: 0x000b, 0x3a3a: 0x000b, 0x3a3b: 0x000b,
+       0x3a3c: 0x000b, 0x3a3d: 0x000b, 0x3a3e: 0x000b, 0x3a3f: 0x000b,
+       // Block 0xe9, offset 0x3a40
+       0x3a40: 0x000c, 0x3a41: 0x000c, 0x3a42: 0x000c, 0x3a43: 0x000c, 0x3a44: 0x000c, 0x3a45: 0x000c,
+       0x3a46: 0x000c, 0x3a47: 0x000c, 0x3a48: 0x000c, 0x3a49: 0x000c, 0x3a4a: 0x000c, 0x3a4b: 0x000c,
+       0x3a4c: 0x000c, 0x3a4d: 0x000c, 0x3a4e: 0x000c, 0x3a4f: 0x000c, 0x3a50: 0x000c, 0x3a51: 0x000c,
+       0x3a52: 0x000c, 0x3a53: 0x000c, 0x3a54: 0x000c, 0x3a55: 0x000c, 0x3a56: 0x000c, 0x3a57: 0x000c,
+       0x3a58: 0x000c, 0x3a59: 0x000c, 0x3a5a: 0x000c, 0x3a5b: 0x000c, 0x3a5c: 0x000c, 0x3a5d: 0x000c,
+       0x3a5e: 0x000c, 0x3a5f: 0x000c, 0x3a60: 0x000c, 0x3a61: 0x000c, 0x3a62: 0x000c, 0x3a63: 0x000c,
+       0x3a64: 0x000c, 0x3a65: 0x000c, 0x3a66: 0x000c, 0x3a67: 0x000c, 0x3a68: 0x000c, 0x3a69: 0x000c,
+       0x3a6a: 0x000c, 0x3a6b: 0x000c, 0x3a6c: 0x000c, 0x3a6d: 0x000c, 0x3a6e: 0x000c, 0x3a6f: 0x000c,
+       0x3a70: 0x000b, 0x3a71: 0x000b, 0x3a72: 0x000b, 0x3a73: 0x000b, 0x3a74: 0x000b, 0x3a75: 0x000b,
+       0x3a76: 0x000b, 0x3a77: 0x000b, 0x3a78: 0x000b, 0x3a79: 0x000b, 0x3a7a: 0x000b, 0x3a7b: 0x000b,
+       0x3a7c: 0x000b, 0x3a7d: 0x000b, 0x3a7e: 0x000b, 0x3a7f: 0x000b,
+}
+
+// bidiIndex: 24 blocks, 1536 entries, 1536 bytes
+// Block 0 is the zero block.
+var bidiIndex = [1536]uint8{
+       // Block 0x0, offset 0x0
+       // Block 0x1, offset 0x40
+       // Block 0x2, offset 0x80
+       // Block 0x3, offset 0xc0
+       0xc2: 0x01, 0xc3: 0x02,
+       0xca: 0x03, 0xcb: 0x04, 0xcc: 0x05, 0xcd: 0x06, 0xce: 0x07, 0xcf: 0x08,
+       0xd2: 0x09, 0xd6: 0x0a, 0xd7: 0x0b,
+       0xd8: 0x0c, 0xd9: 0x0d, 0xda: 0x0e, 0xdb: 0x0f, 0xdc: 0x10, 0xdd: 0x11, 0xde: 0x12, 0xdf: 0x13,
+       0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, 0xe4: 0x06,
+       0xea: 0x07, 0xef: 0x08,
+       0xf0: 0x11, 0xf1: 0x12, 0xf2: 0x12, 0xf3: 0x14, 0xf4: 0x15,
+       // Block 0x4, offset 0x100
+       0x120: 0x14, 0x121: 0x15, 0x122: 0x16, 0x123: 0x17, 0x124: 0x18, 0x125: 0x19, 0x126: 0x1a, 0x127: 0x1b,
+       0x128: 0x1c, 0x129: 0x1d, 0x12a: 0x1c, 0x12b: 0x1e, 0x12c: 0x1f, 0x12d: 0x20, 0x12e: 0x21, 0x12f: 0x22,
+       0x130: 0x23, 0x131: 0x24, 0x132: 0x1a, 0x133: 0x25, 0x134: 0x26, 0x135: 0x27, 0x137: 0x28,
+       0x138: 0x29, 0x139: 0x2a, 0x13a: 0x2b, 0x13b: 0x2c, 0x13c: 0x2d, 0x13d: 0x2e, 0x13e: 0x2f, 0x13f: 0x30,
+       // Block 0x5, offset 0x140
+       0x140: 0x31, 0x141: 0x32, 0x142: 0x33,
+       0x14d: 0x34, 0x14e: 0x35,
+       0x150: 0x36,
+       0x15a: 0x37, 0x15c: 0x38, 0x15d: 0x39, 0x15e: 0x3a, 0x15f: 0x3b,
+       0x160: 0x3c, 0x162: 0x3d, 0x164: 0x3e, 0x165: 0x3f, 0x167: 0x40,
+       0x168: 0x41, 0x169: 0x42, 0x16a: 0x43, 0x16c: 0x44, 0x16d: 0x45, 0x16e: 0x46, 0x16f: 0x47,
+       0x170: 0x48, 0x173: 0x49, 0x177: 0x4a,
+       0x17e: 0x4b, 0x17f: 0x4c,
+       // Block 0x6, offset 0x180
+       0x180: 0x4d, 0x181: 0x4e, 0x182: 0x4f, 0x183: 0x50, 0x184: 0x51, 0x185: 0x52, 0x186: 0x53, 0x187: 0x54,
+       0x188: 0x55, 0x189: 0x54, 0x18a: 0x54, 0x18b: 0x54, 0x18c: 0x56, 0x18d: 0x57, 0x18e: 0x58, 0x18f: 0x54,
+       0x190: 0x59, 0x191: 0x5a, 0x192: 0x5b, 0x193: 0x5c, 0x194: 0x54, 0x195: 0x54, 0x196: 0x54, 0x197: 0x54,
+       0x198: 0x54, 0x199: 0x54, 0x19a: 0x5d, 0x19b: 0x54, 0x19c: 0x54, 0x19d: 0x5e, 0x19e: 0x54, 0x19f: 0x5f,
+       0x1a4: 0x54, 0x1a5: 0x54, 0x1a6: 0x60, 0x1a7: 0x61,
+       0x1a8: 0x54, 0x1a9: 0x54, 0x1aa: 0x54, 0x1ab: 0x54, 0x1ac: 0x54, 0x1ad: 0x62, 0x1ae: 0x63, 0x1af: 0x64,
+       0x1b3: 0x65, 0x1b5: 0x66, 0x1b7: 0x67,
+       0x1b8: 0x68, 0x1b9: 0x69, 0x1ba: 0x6a, 0x1bb: 0x6b, 0x1bc: 0x54, 0x1bd: 0x54, 0x1be: 0x54, 0x1bf: 0x6c,
+       // Block 0x7, offset 0x1c0
+       0x1c0: 0x6d, 0x1c2: 0x6e, 0x1c3: 0x6f, 0x1c7: 0x70,
+       0x1c8: 0x71, 0x1c9: 0x72, 0x1ca: 0x73, 0x1cb: 0x74, 0x1cd: 0x75, 0x1cf: 0x76,
+       // Block 0x8, offset 0x200
+       0x237: 0x54,
+       // Block 0x9, offset 0x240
+       0x252: 0x77, 0x253: 0x78,
+       0x258: 0x79, 0x259: 0x7a, 0x25a: 0x7b, 0x25b: 0x7c, 0x25c: 0x7d, 0x25e: 0x7e,
+       0x260: 0x7f, 0x261: 0x80, 0x263: 0x81, 0x264: 0x82, 0x265: 0x83, 0x266: 0x84, 0x267: 0x85,
+       0x268: 0x86, 0x269: 0x87, 0x26a: 0x88, 0x26b: 0x89, 0x26f: 0x8a,
+       // Block 0xa, offset 0x280
+       0x2ac: 0x8b, 0x2ad: 0x8c, 0x2ae: 0x0e, 0x2af: 0x0e,
+       0x2b0: 0x0e, 0x2b1: 0x0e, 0x2b2: 0x0e, 0x2b3: 0x0e, 0x2b4: 0x8d, 0x2b5: 0x0e, 0x2b6: 0x0e, 0x2b7: 0x8e,
+       0x2b8: 0x8f, 0x2b9: 0x90, 0x2ba: 0x0e, 0x2bb: 0x91, 0x2bc: 0x92, 0x2bd: 0x93, 0x2bf: 0x94,
+       // Block 0xb, offset 0x2c0
+       0x2c4: 0x95, 0x2c5: 0x54, 0x2c6: 0x96, 0x2c7: 0x97,
+       0x2cb: 0x98, 0x2cd: 0x99,
+       0x2e0: 0x9a, 0x2e1: 0x9a, 0x2e2: 0x9a, 0x2e3: 0x9a, 0x2e4: 0x9b, 0x2e5: 0x9a, 0x2e6: 0x9a, 0x2e7: 0x9a,
+       0x2e8: 0x9c, 0x2e9: 0x9a, 0x2ea: 0x9a, 0x2eb: 0x9d, 0x2ec: 0x9e, 0x2ed: 0x9a, 0x2ee: 0x9a, 0x2ef: 0x9a,
+       0x2f0: 0x9a, 0x2f1: 0x9a, 0x2f2: 0x9a, 0x2f3: 0x9a, 0x2f4: 0x9f, 0x2f5: 0x9a, 0x2f6: 0x9a, 0x2f7: 0x9a,
+       0x2f8: 0x9a, 0x2f9: 0xa0, 0x2fa: 0x9a, 0x2fb: 0x9a, 0x2fc: 0xa1, 0x2fd: 0xa2, 0x2fe: 0x9a, 0x2ff: 0x9a,
+       // Block 0xc, offset 0x300
+       0x300: 0xa3, 0x301: 0xa4, 0x302: 0xa5, 0x304: 0xa6, 0x305: 0xa7, 0x306: 0xa8, 0x307: 0xa9,
+       0x308: 0xaa, 0x30b: 0xab, 0x30c: 0x26, 0x30d: 0xac,
+       0x310: 0xad, 0x311: 0xae, 0x312: 0xaf, 0x313: 0xb0, 0x316: 0xb1, 0x317: 0xb2,
+       0x318: 0xb3, 0x319: 0xb4, 0x31a: 0xb5, 0x31c: 0xb6,
+       0x320: 0xb7,
+       0x328: 0xb8, 0x329: 0xb9, 0x32a: 0xba,
+       0x330: 0xbb, 0x332: 0xbc, 0x334: 0xbd, 0x335: 0xbe, 0x336: 0xbf,
+       0x33b: 0xc0,
+       // Block 0xd, offset 0x340
+       0x36b: 0xc1, 0x36c: 0xc2,
+       0x37e: 0xc3,
+       // Block 0xe, offset 0x380
+       0x3b2: 0xc4,
+       // Block 0xf, offset 0x3c0
+       0x3c5: 0xc5, 0x3c6: 0xc6,
+       0x3c8: 0x54, 0x3c9: 0xc7, 0x3cc: 0x54, 0x3cd: 0xc8,
+       0x3db: 0xc9, 0x3dc: 0xca, 0x3dd: 0xcb, 0x3de: 0xcc, 0x3df: 0xcd,
+       0x3e8: 0xce, 0x3e9: 0xcf, 0x3ea: 0xd0,
+       // Block 0x10, offset 0x400
+       0x400: 0xd1,
+       0x420: 0x9a, 0x421: 0x9a, 0x422: 0x9a, 0x423: 0xd2, 0x424: 0x9a, 0x425: 0xd3, 0x426: 0x9a, 0x427: 0x9a,
+       0x428: 0x9a, 0x429: 0x9a, 0x42a: 0x9a, 0x42b: 0x9a, 0x42c: 0x9a, 0x42d: 0x9a, 0x42e: 0x9a, 0x42f: 0x9a,
+       0x430: 0x9a, 0x431: 0xa1, 0x432: 0x0e, 0x433: 0x9a, 0x434: 0x9a, 0x435: 0x9a, 0x436: 0x9a, 0x437: 0x9a,
+       0x438: 0x0e, 0x439: 0x0e, 0x43a: 0x0e, 0x43b: 0xd4, 0x43c: 0x9a, 0x43d: 0x9a, 0x43e: 0x9a, 0x43f: 0x9a,
+       // Block 0x11, offset 0x440
+       0x440: 0xd5, 0x441: 0x54, 0x442: 0xd6, 0x443: 0xd7, 0x444: 0xd8, 0x445: 0xd9,
+       0x449: 0xda, 0x44c: 0x54, 0x44d: 0x54, 0x44e: 0x54, 0x44f: 0x54,
+       0x450: 0x54, 0x451: 0x54, 0x452: 0x54, 0x453: 0x54, 0x454: 0x54, 0x455: 0x54, 0x456: 0x54, 0x457: 0x54,
+       0x458: 0x54, 0x459: 0x54, 0x45a: 0x54, 0x45b: 0xdb, 0x45c: 0x54, 0x45d: 0x6b, 0x45e: 0x54, 0x45f: 0xdc,
+       0x460: 0xdd, 0x461: 0xde, 0x462: 0xdf, 0x464: 0xe0, 0x465: 0xe1, 0x466: 0xe2, 0x467: 0xe3,
+       0x469: 0xe4,
+       0x47f: 0xe5,
+       // Block 0x12, offset 0x480
+       0x4bf: 0xe5,
+       // Block 0x13, offset 0x4c0
+       0x4d0: 0x09, 0x4d1: 0x0a, 0x4d6: 0x0b,
+       0x4db: 0x0c, 0x4dd: 0x0d, 0x4de: 0x0e, 0x4df: 0x0f,
+       0x4ef: 0x10,
+       0x4ff: 0x10,
+       // Block 0x14, offset 0x500
+       0x50f: 0x10,
+       0x51f: 0x10,
+       0x52f: 0x10,
+       0x53f: 0x10,
+       // Block 0x15, offset 0x540
+       0x540: 0xe6, 0x541: 0xe6, 0x542: 0xe6, 0x543: 0xe6, 0x544: 0x05, 0x545: 0x05, 0x546: 0x05, 0x547: 0xe7,
+       0x548: 0xe6, 0x549: 0xe6, 0x54a: 0xe6, 0x54b: 0xe6, 0x54c: 0xe6, 0x54d: 0xe6, 0x54e: 0xe6, 0x54f: 0xe6,
+       0x550: 0xe6, 0x551: 0xe6, 0x552: 0xe6, 0x553: 0xe6, 0x554: 0xe6, 0x555: 0xe6, 0x556: 0xe6, 0x557: 0xe6,
+       0x558: 0xe6, 0x559: 0xe6, 0x55a: 0xe6, 0x55b: 0xe6, 0x55c: 0xe6, 0x55d: 0xe6, 0x55e: 0xe6, 0x55f: 0xe6,
+       0x560: 0xe6, 0x561: 0xe6, 0x562: 0xe6, 0x563: 0xe6, 0x564: 0xe6, 0x565: 0xe6, 0x566: 0xe6, 0x567: 0xe6,
+       0x568: 0xe6, 0x569: 0xe6, 0x56a: 0xe6, 0x56b: 0xe6, 0x56c: 0xe6, 0x56d: 0xe6, 0x56e: 0xe6, 0x56f: 0xe6,
+       0x570: 0xe6, 0x571: 0xe6, 0x572: 0xe6, 0x573: 0xe6, 0x574: 0xe6, 0x575: 0xe6, 0x576: 0xe6, 0x577: 0xe6,
+       0x578: 0xe6, 0x579: 0xe6, 0x57a: 0xe6, 0x57b: 0xe6, 0x57c: 0xe6, 0x57d: 0xe6, 0x57e: 0xe6, 0x57f: 0xe6,
+       // Block 0x16, offset 0x580
+       0x58f: 0x10,
+       0x59f: 0x10,
+       0x5a0: 0x13,
+       0x5af: 0x10,
+       0x5bf: 0x10,
+       // Block 0x17, offset 0x5c0
+       0x5cf: 0x10,
+}
+
+// Total table size 16568 bytes (16KiB); checksum: F50EF68C
diff --git a/vendor/golang.org/x/text/unicode/bidi/tables9.0.0.go b/vendor/golang.org/x/text/unicode/bidi/tables9.0.0.go
new file mode 100644 (file)
index 0000000..0ca0193
--- /dev/null
@@ -0,0 +1,1781 @@
+// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT.
+
+// +build !go1.10
+
+package bidi
+
+// UnicodeVersion is the Unicode version from which the tables in this package are derived.
+const UnicodeVersion = "9.0.0"
+
+// xorMasks contains masks to be xor-ed with brackets to get the reverse
+// version.
+var xorMasks = []int32{ // 8 elements
+       0, 1, 6, 7, 3, 15, 29, 63,
+} // Size: 56 bytes
+
+// 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 *bidiTrie) lookup(s []byte) (v uint8, sz int) {
+       c0 := s[0]
+       switch {
+       case c0 < 0x80: // is ASCII
+               return bidiValues[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 := bidiIndex[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 := bidiIndex[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 = bidiIndex[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 := bidiIndex[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 = bidiIndex[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 = bidiIndex[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 *bidiTrie) lookupUnsafe(s []byte) uint8 {
+       c0 := s[0]
+       if c0 < 0x80 { // is ASCII
+               return bidiValues[c0]
+       }
+       i := bidiIndex[c0]
+       if c0 < 0xE0 { // 2-byte UTF-8
+               return t.lookupValue(uint32(i), s[1])
+       }
+       i = bidiIndex[uint32(i)<<6+uint32(s[1])]
+       if c0 < 0xF0 { // 3-byte UTF-8
+               return t.lookupValue(uint32(i), s[2])
+       }
+       i = bidiIndex[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 *bidiTrie) lookupString(s string) (v uint8, sz int) {
+       c0 := s[0]
+       switch {
+       case c0 < 0x80: // is ASCII
+               return bidiValues[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 := bidiIndex[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 := bidiIndex[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 = bidiIndex[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 := bidiIndex[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 = bidiIndex[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 = bidiIndex[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 *bidiTrie) lookupStringUnsafe(s string) uint8 {
+       c0 := s[0]
+       if c0 < 0x80 { // is ASCII
+               return bidiValues[c0]
+       }
+       i := bidiIndex[c0]
+       if c0 < 0xE0 { // 2-byte UTF-8
+               return t.lookupValue(uint32(i), s[1])
+       }
+       i = bidiIndex[uint32(i)<<6+uint32(s[1])]
+       if c0 < 0xF0 { // 3-byte UTF-8
+               return t.lookupValue(uint32(i), s[2])
+       }
+       i = bidiIndex[uint32(i)<<6+uint32(s[2])]
+       if c0 < 0xF8 { // 4-byte UTF-8
+               return t.lookupValue(uint32(i), s[3])
+       }
+       return 0
+}
+
+// bidiTrie. Total size: 15744 bytes (15.38 KiB). Checksum: b4c3b70954803b86.
+type bidiTrie struct{}
+
+func newBidiTrie(i int) *bidiTrie {
+       return &bidiTrie{}
+}
+
+// lookupValue determines the type of block n and looks up the value for b.
+func (t *bidiTrie) lookupValue(n uint32, b byte) uint8 {
+       switch {
+       default:
+               return uint8(bidiValues[n<<6+uint32(b)])
+       }
+}
+
+// bidiValues: 222 blocks, 14208 entries, 14208 bytes
+// The third block is the zero block.
+var bidiValues = [14208]uint8{
+       // Block 0x0, offset 0x0
+       0x00: 0x000b, 0x01: 0x000b, 0x02: 0x000b, 0x03: 0x000b, 0x04: 0x000b, 0x05: 0x000b,
+       0x06: 0x000b, 0x07: 0x000b, 0x08: 0x000b, 0x09: 0x0008, 0x0a: 0x0007, 0x0b: 0x0008,
+       0x0c: 0x0009, 0x0d: 0x0007, 0x0e: 0x000b, 0x0f: 0x000b, 0x10: 0x000b, 0x11: 0x000b,
+       0x12: 0x000b, 0x13: 0x000b, 0x14: 0x000b, 0x15: 0x000b, 0x16: 0x000b, 0x17: 0x000b,
+       0x18: 0x000b, 0x19: 0x000b, 0x1a: 0x000b, 0x1b: 0x000b, 0x1c: 0x0007, 0x1d: 0x0007,
+       0x1e: 0x0007, 0x1f: 0x0008, 0x20: 0x0009, 0x21: 0x000a, 0x22: 0x000a, 0x23: 0x0004,
+       0x24: 0x0004, 0x25: 0x0004, 0x26: 0x000a, 0x27: 0x000a, 0x28: 0x003a, 0x29: 0x002a,
+       0x2a: 0x000a, 0x2b: 0x0003, 0x2c: 0x0006, 0x2d: 0x0003, 0x2e: 0x0006, 0x2f: 0x0006,
+       0x30: 0x0002, 0x31: 0x0002, 0x32: 0x0002, 0x33: 0x0002, 0x34: 0x0002, 0x35: 0x0002,
+       0x36: 0x0002, 0x37: 0x0002, 0x38: 0x0002, 0x39: 0x0002, 0x3a: 0x0006, 0x3b: 0x000a,
+       0x3c: 0x000a, 0x3d: 0x000a, 0x3e: 0x000a, 0x3f: 0x000a,
+       // Block 0x1, offset 0x40
+       0x40: 0x000a,
+       0x5b: 0x005a, 0x5c: 0x000a, 0x5d: 0x004a,
+       0x5e: 0x000a, 0x5f: 0x000a, 0x60: 0x000a,
+       0x7b: 0x005a,
+       0x7c: 0x000a, 0x7d: 0x004a, 0x7e: 0x000a, 0x7f: 0x000b,
+       // Block 0x2, offset 0x80
+       // Block 0x3, offset 0xc0
+       0xc0: 0x000b, 0xc1: 0x000b, 0xc2: 0x000b, 0xc3: 0x000b, 0xc4: 0x000b, 0xc5: 0x0007,
+       0xc6: 0x000b, 0xc7: 0x000b, 0xc8: 0x000b, 0xc9: 0x000b, 0xca: 0x000b, 0xcb: 0x000b,
+       0xcc: 0x000b, 0xcd: 0x000b, 0xce: 0x000b, 0xcf: 0x000b, 0xd0: 0x000b, 0xd1: 0x000b,
+       0xd2: 0x000b, 0xd3: 0x000b, 0xd4: 0x000b, 0xd5: 0x000b, 0xd6: 0x000b, 0xd7: 0x000b,
+       0xd8: 0x000b, 0xd9: 0x000b, 0xda: 0x000b, 0xdb: 0x000b, 0xdc: 0x000b, 0xdd: 0x000b,
+       0xde: 0x000b, 0xdf: 0x000b, 0xe0: 0x0006, 0xe1: 0x000a, 0xe2: 0x0004, 0xe3: 0x0004,
+       0xe4: 0x0004, 0xe5: 0x0004, 0xe6: 0x000a, 0xe7: 0x000a, 0xe8: 0x000a, 0xe9: 0x000a,
+       0xeb: 0x000a, 0xec: 0x000a, 0xed: 0x000b, 0xee: 0x000a, 0xef: 0x000a,
+       0xf0: 0x0004, 0xf1: 0x0004, 0xf2: 0x0002, 0xf3: 0x0002, 0xf4: 0x000a,
+       0xf6: 0x000a, 0xf7: 0x000a, 0xf8: 0x000a, 0xf9: 0x0002, 0xfb: 0x000a,
+       0xfc: 0x000a, 0xfd: 0x000a, 0xfe: 0x000a, 0xff: 0x000a,
+       // Block 0x4, offset 0x100
+       0x117: 0x000a,
+       0x137: 0x000a,
+       // Block 0x5, offset 0x140
+       0x179: 0x000a, 0x17a: 0x000a,
+       // Block 0x6, offset 0x180
+       0x182: 0x000a, 0x183: 0x000a, 0x184: 0x000a, 0x185: 0x000a,
+       0x186: 0x000a, 0x187: 0x000a, 0x188: 0x000a, 0x189: 0x000a, 0x18a: 0x000a, 0x18b: 0x000a,
+       0x18c: 0x000a, 0x18d: 0x000a, 0x18e: 0x000a, 0x18f: 0x000a,
+       0x192: 0x000a, 0x193: 0x000a, 0x194: 0x000a, 0x195: 0x000a, 0x196: 0x000a, 0x197: 0x000a,
+       0x198: 0x000a, 0x199: 0x000a, 0x19a: 0x000a, 0x19b: 0x000a, 0x19c: 0x000a, 0x19d: 0x000a,
+       0x19e: 0x000a, 0x19f: 0x000a,
+       0x1a5: 0x000a, 0x1a6: 0x000a, 0x1a7: 0x000a, 0x1a8: 0x000a, 0x1a9: 0x000a,
+       0x1aa: 0x000a, 0x1ab: 0x000a, 0x1ac: 0x000a, 0x1ad: 0x000a, 0x1af: 0x000a,
+       0x1b0: 0x000a, 0x1b1: 0x000a, 0x1b2: 0x000a, 0x1b3: 0x000a, 0x1b4: 0x000a, 0x1b5: 0x000a,
+       0x1b6: 0x000a, 0x1b7: 0x000a, 0x1b8: 0x000a, 0x1b9: 0x000a, 0x1ba: 0x000a, 0x1bb: 0x000a,
+       0x1bc: 0x000a, 0x1bd: 0x000a, 0x1be: 0x000a, 0x1bf: 0x000a,
+       // Block 0x7, offset 0x1c0
+       0x1c0: 0x000c, 0x1c1: 0x000c, 0x1c2: 0x000c, 0x1c3: 0x000c, 0x1c4: 0x000c, 0x1c5: 0x000c,
+       0x1c6: 0x000c, 0x1c7: 0x000c, 0x1c8: 0x000c, 0x1c9: 0x000c, 0x1ca: 0x000c, 0x1cb: 0x000c,
+       0x1cc: 0x000c, 0x1cd: 0x000c, 0x1ce: 0x000c, 0x1cf: 0x000c, 0x1d0: 0x000c, 0x1d1: 0x000c,
+       0x1d2: 0x000c, 0x1d3: 0x000c, 0x1d4: 0x000c, 0x1d5: 0x000c, 0x1d6: 0x000c, 0x1d7: 0x000c,
+       0x1d8: 0x000c, 0x1d9: 0x000c, 0x1da: 0x000c, 0x1db: 0x000c, 0x1dc: 0x000c, 0x1dd: 0x000c,
+       0x1de: 0x000c, 0x1df: 0x000c, 0x1e0: 0x000c, 0x1e1: 0x000c, 0x1e2: 0x000c, 0x1e3: 0x000c,
+       0x1e4: 0x000c, 0x1e5: 0x000c, 0x1e6: 0x000c, 0x1e7: 0x000c, 0x1e8: 0x000c, 0x1e9: 0x000c,
+       0x1ea: 0x000c, 0x1eb: 0x000c, 0x1ec: 0x000c, 0x1ed: 0x000c, 0x1ee: 0x000c, 0x1ef: 0x000c,
+       0x1f0: 0x000c, 0x1f1: 0x000c, 0x1f2: 0x000c, 0x1f3: 0x000c, 0x1f4: 0x000c, 0x1f5: 0x000c,
+       0x1f6: 0x000c, 0x1f7: 0x000c, 0x1f8: 0x000c, 0x1f9: 0x000c, 0x1fa: 0x000c, 0x1fb: 0x000c,
+       0x1fc: 0x000c, 0x1fd: 0x000c, 0x1fe: 0x000c, 0x1ff: 0x000c,
+       // Block 0x8, offset 0x200
+       0x200: 0x000c, 0x201: 0x000c, 0x202: 0x000c, 0x203: 0x000c, 0x204: 0x000c, 0x205: 0x000c,
+       0x206: 0x000c, 0x207: 0x000c, 0x208: 0x000c, 0x209: 0x000c, 0x20a: 0x000c, 0x20b: 0x000c,
+       0x20c: 0x000c, 0x20d: 0x000c, 0x20e: 0x000c, 0x20f: 0x000c, 0x210: 0x000c, 0x211: 0x000c,
+       0x212: 0x000c, 0x213: 0x000c, 0x214: 0x000c, 0x215: 0x000c, 0x216: 0x000c, 0x217: 0x000c,
+       0x218: 0x000c, 0x219: 0x000c, 0x21a: 0x000c, 0x21b: 0x000c, 0x21c: 0x000c, 0x21d: 0x000c,
+       0x21e: 0x000c, 0x21f: 0x000c, 0x220: 0x000c, 0x221: 0x000c, 0x222: 0x000c, 0x223: 0x000c,
+       0x224: 0x000c, 0x225: 0x000c, 0x226: 0x000c, 0x227: 0x000c, 0x228: 0x000c, 0x229: 0x000c,
+       0x22a: 0x000c, 0x22b: 0x000c, 0x22c: 0x000c, 0x22d: 0x000c, 0x22e: 0x000c, 0x22f: 0x000c,
+       0x234: 0x000a, 0x235: 0x000a,
+       0x23e: 0x000a,
+       // Block 0x9, offset 0x240
+       0x244: 0x000a, 0x245: 0x000a,
+       0x247: 0x000a,
+       // Block 0xa, offset 0x280
+       0x2b6: 0x000a,
+       // Block 0xb, offset 0x2c0
+       0x2c3: 0x000c, 0x2c4: 0x000c, 0x2c5: 0x000c,
+       0x2c6: 0x000c, 0x2c7: 0x000c, 0x2c8: 0x000c, 0x2c9: 0x000c,
+       // Block 0xc, offset 0x300
+       0x30a: 0x000a,
+       0x30d: 0x000a, 0x30e: 0x000a, 0x30f: 0x0004, 0x310: 0x0001, 0x311: 0x000c,
+       0x312: 0x000c, 0x313: 0x000c, 0x314: 0x000c, 0x315: 0x000c, 0x316: 0x000c, 0x317: 0x000c,
+       0x318: 0x000c, 0x319: 0x000c, 0x31a: 0x000c, 0x31b: 0x000c, 0x31c: 0x000c, 0x31d: 0x000c,
+       0x31e: 0x000c, 0x31f: 0x000c, 0x320: 0x000c, 0x321: 0x000c, 0x322: 0x000c, 0x323: 0x000c,
+       0x324: 0x000c, 0x325: 0x000c, 0x326: 0x000c, 0x327: 0x000c, 0x328: 0x000c, 0x329: 0x000c,
+       0x32a: 0x000c, 0x32b: 0x000c, 0x32c: 0x000c, 0x32d: 0x000c, 0x32e: 0x000c, 0x32f: 0x000c,
+       0x330: 0x000c, 0x331: 0x000c, 0x332: 0x000c, 0x333: 0x000c, 0x334: 0x000c, 0x335: 0x000c,
+       0x336: 0x000c, 0x337: 0x000c, 0x338: 0x000c, 0x339: 0x000c, 0x33a: 0x000c, 0x33b: 0x000c,
+       0x33c: 0x000c, 0x33d: 0x000c, 0x33e: 0x0001, 0x33f: 0x000c,
+       // Block 0xd, offset 0x340
+       0x340: 0x0001, 0x341: 0x000c, 0x342: 0x000c, 0x343: 0x0001, 0x344: 0x000c, 0x345: 0x000c,
+       0x346: 0x0001, 0x347: 0x000c, 0x348: 0x0001, 0x349: 0x0001, 0x34a: 0x0001, 0x34b: 0x0001,
+       0x34c: 0x0001, 0x34d: 0x0001, 0x34e: 0x0001, 0x34f: 0x0001, 0x350: 0x0001, 0x351: 0x0001,
+       0x352: 0x0001, 0x353: 0x0001, 0x354: 0x0001, 0x355: 0x0001, 0x356: 0x0001, 0x357: 0x0001,
+       0x358: 0x0001, 0x359: 0x0001, 0x35a: 0x0001, 0x35b: 0x0001, 0x35c: 0x0001, 0x35d: 0x0001,
+       0x35e: 0x0001, 0x35f: 0x0001, 0x360: 0x0001, 0x361: 0x0001, 0x362: 0x0001, 0x363: 0x0001,
+       0x364: 0x0001, 0x365: 0x0001, 0x366: 0x0001, 0x367: 0x0001, 0x368: 0x0001, 0x369: 0x0001,
+       0x36a: 0x0001, 0x36b: 0x0001, 0x36c: 0x0001, 0x36d: 0x0001, 0x36e: 0x0001, 0x36f: 0x0001,
+       0x370: 0x0001, 0x371: 0x0001, 0x372: 0x0001, 0x373: 0x0001, 0x374: 0x0001, 0x375: 0x0001,
+       0x376: 0x0001, 0x377: 0x0001, 0x378: 0x0001, 0x379: 0x0001, 0x37a: 0x0001, 0x37b: 0x0001,
+       0x37c: 0x0001, 0x37d: 0x0001, 0x37e: 0x0001, 0x37f: 0x0001,
+       // Block 0xe, offset 0x380
+       0x380: 0x0005, 0x381: 0x0005, 0x382: 0x0005, 0x383: 0x0005, 0x384: 0x0005, 0x385: 0x0005,
+       0x386: 0x000a, 0x387: 0x000a, 0x388: 0x000d, 0x389: 0x0004, 0x38a: 0x0004, 0x38b: 0x000d,
+       0x38c: 0x0006, 0x38d: 0x000d, 0x38e: 0x000a, 0x38f: 0x000a, 0x390: 0x000c, 0x391: 0x000c,
+       0x392: 0x000c, 0x393: 0x000c, 0x394: 0x000c, 0x395: 0x000c, 0x396: 0x000c, 0x397: 0x000c,
+       0x398: 0x000c, 0x399: 0x000c, 0x39a: 0x000c, 0x39b: 0x000d, 0x39c: 0x000d, 0x39d: 0x000d,
+       0x39e: 0x000d, 0x39f: 0x000d, 0x3a0: 0x000d, 0x3a1: 0x000d, 0x3a2: 0x000d, 0x3a3: 0x000d,
+       0x3a4: 0x000d, 0x3a5: 0x000d, 0x3a6: 0x000d, 0x3a7: 0x000d, 0x3a8: 0x000d, 0x3a9: 0x000d,
+       0x3aa: 0x000d, 0x3ab: 0x000d, 0x3ac: 0x000d, 0x3ad: 0x000d, 0x3ae: 0x000d, 0x3af: 0x000d,
+       0x3b0: 0x000d, 0x3b1: 0x000d, 0x3b2: 0x000d, 0x3b3: 0x000d, 0x3b4: 0x000d, 0x3b5: 0x000d,
+       0x3b6: 0x000d, 0x3b7: 0x000d, 0x3b8: 0x000d, 0x3b9: 0x000d, 0x3ba: 0x000d, 0x3bb: 0x000d,
+       0x3bc: 0x000d, 0x3bd: 0x000d, 0x3be: 0x000d, 0x3bf: 0x000d,
+       // Block 0xf, offset 0x3c0
+       0x3c0: 0x000d, 0x3c1: 0x000d, 0x3c2: 0x000d, 0x3c3: 0x000d, 0x3c4: 0x000d, 0x3c5: 0x000d,
+       0x3c6: 0x000d, 0x3c7: 0x000d, 0x3c8: 0x000d, 0x3c9: 0x000d, 0x3ca: 0x000d, 0x3cb: 0x000c,
+       0x3cc: 0x000c, 0x3cd: 0x000c, 0x3ce: 0x000c, 0x3cf: 0x000c, 0x3d0: 0x000c, 0x3d1: 0x000c,
+       0x3d2: 0x000c, 0x3d3: 0x000c, 0x3d4: 0x000c, 0x3d5: 0x000c, 0x3d6: 0x000c, 0x3d7: 0x000c,
+       0x3d8: 0x000c, 0x3d9: 0x000c, 0x3da: 0x000c, 0x3db: 0x000c, 0x3dc: 0x000c, 0x3dd: 0x000c,
+       0x3de: 0x000c, 0x3df: 0x000c, 0x3e0: 0x0005, 0x3e1: 0x0005, 0x3e2: 0x0005, 0x3e3: 0x0005,
+       0x3e4: 0x0005, 0x3e5: 0x0005, 0x3e6: 0x0005, 0x3e7: 0x0005, 0x3e8: 0x0005, 0x3e9: 0x0005,
+       0x3ea: 0x0004, 0x3eb: 0x0005, 0x3ec: 0x0005, 0x3ed: 0x000d, 0x3ee: 0x000d, 0x3ef: 0x000d,
+       0x3f0: 0x000c, 0x3f1: 0x000d, 0x3f2: 0x000d, 0x3f3: 0x000d, 0x3f4: 0x000d, 0x3f5: 0x000d,
+       0x3f6: 0x000d, 0x3f7: 0x000d, 0x3f8: 0x000d, 0x3f9: 0x000d, 0x3fa: 0x000d, 0x3fb: 0x000d,
+       0x3fc: 0x000d, 0x3fd: 0x000d, 0x3fe: 0x000d, 0x3ff: 0x000d,
+       // Block 0x10, offset 0x400
+       0x400: 0x000d, 0x401: 0x000d, 0x402: 0x000d, 0x403: 0x000d, 0x404: 0x000d, 0x405: 0x000d,
+       0x406: 0x000d, 0x407: 0x000d, 0x408: 0x000d, 0x409: 0x000d, 0x40a: 0x000d, 0x40b: 0x000d,
+       0x40c: 0x000d, 0x40d: 0x000d, 0x40e: 0x000d, 0x40f: 0x000d, 0x410: 0x000d, 0x411: 0x000d,
+       0x412: 0x000d, 0x413: 0x000d, 0x414: 0x000d, 0x415: 0x000d, 0x416: 0x000d, 0x417: 0x000d,
+       0x418: 0x000d, 0x419: 0x000d, 0x41a: 0x000d, 0x41b: 0x000d, 0x41c: 0x000d, 0x41d: 0x000d,
+       0x41e: 0x000d, 0x41f: 0x000d, 0x420: 0x000d, 0x421: 0x000d, 0x422: 0x000d, 0x423: 0x000d,
+       0x424: 0x000d, 0x425: 0x000d, 0x426: 0x000d, 0x427: 0x000d, 0x428: 0x000d, 0x429: 0x000d,
+       0x42a: 0x000d, 0x42b: 0x000d, 0x42c: 0x000d, 0x42d: 0x000d, 0x42e: 0x000d, 0x42f: 0x000d,
+       0x430: 0x000d, 0x431: 0x000d, 0x432: 0x000d, 0x433: 0x000d, 0x434: 0x000d, 0x435: 0x000d,
+       0x436: 0x000d, 0x437: 0x000d, 0x438: 0x000d, 0x439: 0x000d, 0x43a: 0x000d, 0x43b: 0x000d,
+       0x43c: 0x000d, 0x43d: 0x000d, 0x43e: 0x000d, 0x43f: 0x000d,
+       // Block 0x11, offset 0x440
+       0x440: 0x000d, 0x441: 0x000d, 0x442: 0x000d, 0x443: 0x000d, 0x444: 0x000d, 0x445: 0x000d,
+       0x446: 0x000d, 0x447: 0x000d, 0x448: 0x000d, 0x449: 0x000d, 0x44a: 0x000d, 0x44b: 0x000d,
+       0x44c: 0x000d, 0x44d: 0x000d, 0x44e: 0x000d, 0x44f: 0x000d, 0x450: 0x000d, 0x451: 0x000d,
+       0x452: 0x000d, 0x453: 0x000d, 0x454: 0x000d, 0x455: 0x000d, 0x456: 0x000c, 0x457: 0x000c,
+       0x458: 0x000c, 0x459: 0x000c, 0x45a: 0x000c, 0x45b: 0x000c, 0x45c: 0x000c, 0x45d: 0x0005,
+       0x45e: 0x000a, 0x45f: 0x000c, 0x460: 0x000c, 0x461: 0x000c, 0x462: 0x000c, 0x463: 0x000c,
+       0x464: 0x000c, 0x465: 0x000d, 0x466: 0x000d, 0x467: 0x000c, 0x468: 0x000c, 0x469: 0x000a,
+       0x46a: 0x000c, 0x46b: 0x000c, 0x46c: 0x000c, 0x46d: 0x000c, 0x46e: 0x000d, 0x46f: 0x000d,
+       0x470: 0x0002, 0x471: 0x0002, 0x472: 0x0002, 0x473: 0x0002, 0x474: 0x0002, 0x475: 0x0002,
+       0x476: 0x0002, 0x477: 0x0002, 0x478: 0x0002, 0x479: 0x0002, 0x47a: 0x000d, 0x47b: 0x000d,
+       0x47c: 0x000d, 0x47d: 0x000d, 0x47e: 0x000d, 0x47f: 0x000d,
+       // Block 0x12, offset 0x480
+       0x480: 0x000d, 0x481: 0x000d, 0x482: 0x000d, 0x483: 0x000d, 0x484: 0x000d, 0x485: 0x000d,
+       0x486: 0x000d, 0x487: 0x000d, 0x488: 0x000d, 0x489: 0x000d, 0x48a: 0x000d, 0x48b: 0x000d,
+       0x48c: 0x000d, 0x48d: 0x000d, 0x48e: 0x000d, 0x48f: 0x000d, 0x490: 0x000d, 0x491: 0x000c,
+       0x492: 0x000d, 0x493: 0x000d, 0x494: 0x000d, 0x495: 0x000d, 0x496: 0x000d, 0x497: 0x000d,
+       0x498: 0x000d, 0x499: 0x000d, 0x49a: 0x000d, 0x49b: 0x000d, 0x49c: 0x000d, 0x49d: 0x000d,
+       0x49e: 0x000d, 0x49f: 0x000d, 0x4a0: 0x000d, 0x4a1: 0x000d, 0x4a2: 0x000d, 0x4a3: 0x000d,
+       0x4a4: 0x000d, 0x4a5: 0x000d, 0x4a6: 0x000d, 0x4a7: 0x000d, 0x4a8: 0x000d, 0x4a9: 0x000d,
+       0x4aa: 0x000d, 0x4ab: 0x000d, 0x4ac: 0x000d, 0x4ad: 0x000d, 0x4ae: 0x000d, 0x4af: 0x000d,
+       0x4b0: 0x000c, 0x4b1: 0x000c, 0x4b2: 0x000c, 0x4b3: 0x000c, 0x4b4: 0x000c, 0x4b5: 0x000c,
+       0x4b6: 0x000c, 0x4b7: 0x000c, 0x4b8: 0x000c, 0x4b9: 0x000c, 0x4ba: 0x000c, 0x4bb: 0x000c,
+       0x4bc: 0x000c, 0x4bd: 0x000c, 0x4be: 0x000c, 0x4bf: 0x000c,
+       // Block 0x13, offset 0x4c0
+       0x4c0: 0x000c, 0x4c1: 0x000c, 0x4c2: 0x000c, 0x4c3: 0x000c, 0x4c4: 0x000c, 0x4c5: 0x000c,
+       0x4c6: 0x000c, 0x4c7: 0x000c, 0x4c8: 0x000c, 0x4c9: 0x000c, 0x4ca: 0x000c, 0x4cb: 0x000d,
+       0x4cc: 0x000d, 0x4cd: 0x000d, 0x4ce: 0x000d, 0x4cf: 0x000d, 0x4d0: 0x000d, 0x4d1: 0x000d,
+       0x4d2: 0x000d, 0x4d3: 0x000d, 0x4d4: 0x000d, 0x4d5: 0x000d, 0x4d6: 0x000d, 0x4d7: 0x000d,
+       0x4d8: 0x000d, 0x4d9: 0x000d, 0x4da: 0x000d, 0x4db: 0x000d, 0x4dc: 0x000d, 0x4dd: 0x000d,
+       0x4de: 0x000d, 0x4df: 0x000d, 0x4e0: 0x000d, 0x4e1: 0x000d, 0x4e2: 0x000d, 0x4e3: 0x000d,
+       0x4e4: 0x000d, 0x4e5: 0x000d, 0x4e6: 0x000d, 0x4e7: 0x000d, 0x4e8: 0x000d, 0x4e9: 0x000d,
+       0x4ea: 0x000d, 0x4eb: 0x000d, 0x4ec: 0x000d, 0x4ed: 0x000d, 0x4ee: 0x000d, 0x4ef: 0x000d,
+       0x4f0: 0x000d, 0x4f1: 0x000d, 0x4f2: 0x000d, 0x4f3: 0x000d, 0x4f4: 0x000d, 0x4f5: 0x000d,
+       0x4f6: 0x000d, 0x4f7: 0x000d, 0x4f8: 0x000d, 0x4f9: 0x000d, 0x4fa: 0x000d, 0x4fb: 0x000d,
+       0x4fc: 0x000d, 0x4fd: 0x000d, 0x4fe: 0x000d, 0x4ff: 0x000d,
+       // Block 0x14, offset 0x500
+       0x500: 0x000d, 0x501: 0x000d, 0x502: 0x000d, 0x503: 0x000d, 0x504: 0x000d, 0x505: 0x000d,
+       0x506: 0x000d, 0x507: 0x000d, 0x508: 0x000d, 0x509: 0x000d, 0x50a: 0x000d, 0x50b: 0x000d,
+       0x50c: 0x000d, 0x50d: 0x000d, 0x50e: 0x000d, 0x50f: 0x000d, 0x510: 0x000d, 0x511: 0x000d,
+       0x512: 0x000d, 0x513: 0x000d, 0x514: 0x000d, 0x515: 0x000d, 0x516: 0x000d, 0x517: 0x000d,
+       0x518: 0x000d, 0x519: 0x000d, 0x51a: 0x000d, 0x51b: 0x000d, 0x51c: 0x000d, 0x51d: 0x000d,
+       0x51e: 0x000d, 0x51f: 0x000d, 0x520: 0x000d, 0x521: 0x000d, 0x522: 0x000d, 0x523: 0x000d,
+       0x524: 0x000d, 0x525: 0x000d, 0x526: 0x000c, 0x527: 0x000c, 0x528: 0x000c, 0x529: 0x000c,
+       0x52a: 0x000c, 0x52b: 0x000c, 0x52c: 0x000c, 0x52d: 0x000c, 0x52e: 0x000c, 0x52f: 0x000c,
+       0x530: 0x000c, 0x531: 0x000d, 0x532: 0x000d, 0x533: 0x000d, 0x534: 0x000d, 0x535: 0x000d,
+       0x536: 0x000d, 0x537: 0x000d, 0x538: 0x000d, 0x539: 0x000d, 0x53a: 0x000d, 0x53b: 0x000d,
+       0x53c: 0x000d, 0x53d: 0x000d, 0x53e: 0x000d, 0x53f: 0x000d,
+       // Block 0x15, offset 0x540
+       0x540: 0x0001, 0x541: 0x0001, 0x542: 0x0001, 0x543: 0x0001, 0x544: 0x0001, 0x545: 0x0001,
+       0x546: 0x0001, 0x547: 0x0001, 0x548: 0x0001, 0x549: 0x0001, 0x54a: 0x0001, 0x54b: 0x0001,
+       0x54c: 0x0001, 0x54d: 0x0001, 0x54e: 0x0001, 0x54f: 0x0001, 0x550: 0x0001, 0x551: 0x0001,
+       0x552: 0x0001, 0x553: 0x0001, 0x554: 0x0001, 0x555: 0x0001, 0x556: 0x0001, 0x557: 0x0001,
+       0x558: 0x0001, 0x559: 0x0001, 0x55a: 0x0001, 0x55b: 0x0001, 0x55c: 0x0001, 0x55d: 0x0001,
+       0x55e: 0x0001, 0x55f: 0x0001, 0x560: 0x0001, 0x561: 0x0001, 0x562: 0x0001, 0x563: 0x0001,
+       0x564: 0x0001, 0x565: 0x0001, 0x566: 0x0001, 0x567: 0x0001, 0x568: 0x0001, 0x569: 0x0001,
+       0x56a: 0x0001, 0x56b: 0x000c, 0x56c: 0x000c, 0x56d: 0x000c, 0x56e: 0x000c, 0x56f: 0x000c,
+       0x570: 0x000c, 0x571: 0x000c, 0x572: 0x000c, 0x573: 0x000c, 0x574: 0x0001, 0x575: 0x0001,
+       0x576: 0x000a, 0x577: 0x000a, 0x578: 0x000a, 0x579: 0x000a, 0x57a: 0x0001, 0x57b: 0x0001,
+       0x57c: 0x0001, 0x57d: 0x0001, 0x57e: 0x0001, 0x57f: 0x0001,
+       // Block 0x16, offset 0x580
+       0x580: 0x0001, 0x581: 0x0001, 0x582: 0x0001, 0x583: 0x0001, 0x584: 0x0001, 0x585: 0x0001,
+       0x586: 0x0001, 0x587: 0x0001, 0x588: 0x0001, 0x589: 0x0001, 0x58a: 0x0001, 0x58b: 0x0001,
+       0x58c: 0x0001, 0x58d: 0x0001, 0x58e: 0x0001, 0x58f: 0x0001, 0x590: 0x0001, 0x591: 0x0001,
+       0x592: 0x0001, 0x593: 0x0001, 0x594: 0x0001, 0x595: 0x0001, 0x596: 0x000c, 0x597: 0x000c,
+       0x598: 0x000c, 0x599: 0x000c, 0x59a: 0x0001, 0x59b: 0x000c, 0x59c: 0x000c, 0x59d: 0x000c,
+       0x59e: 0x000c, 0x59f: 0x000c, 0x5a0: 0x000c, 0x5a1: 0x000c, 0x5a2: 0x000c, 0x5a3: 0x000c,
+       0x5a4: 0x0001, 0x5a5: 0x000c, 0x5a6: 0x000c, 0x5a7: 0x000c, 0x5a8: 0x0001, 0x5a9: 0x000c,
+       0x5aa: 0x000c, 0x5ab: 0x000c, 0x5ac: 0x000c, 0x5ad: 0x000c, 0x5ae: 0x0001, 0x5af: 0x0001,
+       0x5b0: 0x0001, 0x5b1: 0x0001, 0x5b2: 0x0001, 0x5b3: 0x0001, 0x5b4: 0x0001, 0x5b5: 0x0001,
+       0x5b6: 0x0001, 0x5b7: 0x0001, 0x5b8: 0x0001, 0x5b9: 0x0001, 0x5ba: 0x0001, 0x5bb: 0x0001,
+       0x5bc: 0x0001, 0x5bd: 0x0001, 0x5be: 0x0001, 0x5bf: 0x0001,
+       // Block 0x17, offset 0x5c0
+       0x5c0: 0x0001, 0x5c1: 0x0001, 0x5c2: 0x0001, 0x5c3: 0x0001, 0x5c4: 0x0001, 0x5c5: 0x0001,
+       0x5c6: 0x0001, 0x5c7: 0x0001, 0x5c8: 0x0001, 0x5c9: 0x0001, 0x5ca: 0x0001, 0x5cb: 0x0001,
+       0x5cc: 0x0001, 0x5cd: 0x0001, 0x5ce: 0x0001, 0x5cf: 0x0001, 0x5d0: 0x0001, 0x5d1: 0x0001,
+       0x5d2: 0x0001, 0x5d3: 0x0001, 0x5d4: 0x0001, 0x5d5: 0x0001, 0x5d6: 0x0001, 0x5d7: 0x0001,
+       0x5d8: 0x0001, 0x5d9: 0x000c, 0x5da: 0x000c, 0x5db: 0x000c, 0x5dc: 0x0001, 0x5dd: 0x0001,
+       0x5de: 0x0001, 0x5df: 0x0001, 0x5e0: 0x0001, 0x5e1: 0x0001, 0x5e2: 0x0001, 0x5e3: 0x0001,
+       0x5e4: 0x0001, 0x5e5: 0x0001, 0x5e6: 0x0001, 0x5e7: 0x0001, 0x5e8: 0x0001, 0x5e9: 0x0001,
+       0x5ea: 0x0001, 0x5eb: 0x0001, 0x5ec: 0x0001, 0x5ed: 0x0001, 0x5ee: 0x0001, 0x5ef: 0x0001,
+       0x5f0: 0x0001, 0x5f1: 0x0001, 0x5f2: 0x0001, 0x5f3: 0x0001, 0x5f4: 0x0001, 0x5f5: 0x0001,
+       0x5f6: 0x0001, 0x5f7: 0x0001, 0x5f8: 0x0001, 0x5f9: 0x0001, 0x5fa: 0x0001, 0x5fb: 0x0001,
+       0x5fc: 0x0001, 0x5fd: 0x0001, 0x5fe: 0x0001, 0x5ff: 0x0001,
+       // Block 0x18, offset 0x600
+       0x600: 0x0001, 0x601: 0x0001, 0x602: 0x0001, 0x603: 0x0001, 0x604: 0x0001, 0x605: 0x0001,
+       0x606: 0x0001, 0x607: 0x0001, 0x608: 0x0001, 0x609: 0x0001, 0x60a: 0x0001, 0x60b: 0x0001,
+       0x60c: 0x0001, 0x60d: 0x0001, 0x60e: 0x0001, 0x60f: 0x0001, 0x610: 0x0001, 0x611: 0x0001,
+       0x612: 0x0001, 0x613: 0x0001, 0x614: 0x0001, 0x615: 0x0001, 0x616: 0x0001, 0x617: 0x0001,
+       0x618: 0x0001, 0x619: 0x0001, 0x61a: 0x0001, 0x61b: 0x0001, 0x61c: 0x0001, 0x61d: 0x0001,
+       0x61e: 0x0001, 0x61f: 0x0001, 0x620: 0x000d, 0x621: 0x000d, 0x622: 0x000d, 0x623: 0x000d,
+       0x624: 0x000d, 0x625: 0x000d, 0x626: 0x000d, 0x627: 0x000d, 0x628: 0x000d, 0x629: 0x000d,
+       0x62a: 0x000d, 0x62b: 0x000d, 0x62c: 0x000d, 0x62d: 0x000d, 0x62e: 0x000d, 0x62f: 0x000d,
+       0x630: 0x000d, 0x631: 0x000d, 0x632: 0x000d, 0x633: 0x000d, 0x634: 0x000d, 0x635: 0x000d,
+       0x636: 0x000d, 0x637: 0x000d, 0x638: 0x000d, 0x639: 0x000d, 0x63a: 0x000d, 0x63b: 0x000d,
+       0x63c: 0x000d, 0x63d: 0x000d, 0x63e: 0x000d, 0x63f: 0x000d,
+       // Block 0x19, offset 0x640
+       0x640: 0x000d, 0x641: 0x000d, 0x642: 0x000d, 0x643: 0x000d, 0x644: 0x000d, 0x645: 0x000d,
+       0x646: 0x000d, 0x647: 0x000d, 0x648: 0x000d, 0x649: 0x000d, 0x64a: 0x000d, 0x64b: 0x000d,
+       0x64c: 0x000d, 0x64d: 0x000d, 0x64e: 0x000d, 0x64f: 0x000d, 0x650: 0x000d, 0x651: 0x000d,
+       0x652: 0x000d, 0x653: 0x000d, 0x654: 0x000c, 0x655: 0x000c, 0x656: 0x000c, 0x657: 0x000c,
+       0x658: 0x000c, 0x659: 0x000c, 0x65a: 0x000c, 0x65b: 0x000c, 0x65c: 0x000c, 0x65d: 0x000c,
+       0x65e: 0x000c, 0x65f: 0x000c, 0x660: 0x000c, 0x661: 0x000c, 0x662: 0x0005, 0x663: 0x000c,
+       0x664: 0x000c, 0x665: 0x000c, 0x666: 0x000c, 0x667: 0x000c, 0x668: 0x000c, 0x669: 0x000c,
+       0x66a: 0x000c, 0x66b: 0x000c, 0x66c: 0x000c, 0x66d: 0x000c, 0x66e: 0x000c, 0x66f: 0x000c,
+       0x670: 0x000c, 0x671: 0x000c, 0x672: 0x000c, 0x673: 0x000c, 0x674: 0x000c, 0x675: 0x000c,
+       0x676: 0x000c, 0x677: 0x000c, 0x678: 0x000c, 0x679: 0x000c, 0x67a: 0x000c, 0x67b: 0x000c,
+       0x67c: 0x000c, 0x67d: 0x000c, 0x67e: 0x000c, 0x67f: 0x000c,
+       // Block 0x1a, offset 0x680
+       0x680: 0x000c, 0x681: 0x000c, 0x682: 0x000c,
+       0x6ba: 0x000c,
+       0x6bc: 0x000c,
+       // Block 0x1b, offset 0x6c0
+       0x6c1: 0x000c, 0x6c2: 0x000c, 0x6c3: 0x000c, 0x6c4: 0x000c, 0x6c5: 0x000c,
+       0x6c6: 0x000c, 0x6c7: 0x000c, 0x6c8: 0x000c,
+       0x6cd: 0x000c, 0x6d1: 0x000c,
+       0x6d2: 0x000c, 0x6d3: 0x000c, 0x6d4: 0x000c, 0x6d5: 0x000c, 0x6d6: 0x000c, 0x6d7: 0x000c,
+       0x6e2: 0x000c, 0x6e3: 0x000c,
+       // Block 0x1c, offset 0x700
+       0x701: 0x000c,
+       0x73c: 0x000c,
+       // Block 0x1d, offset 0x740
+       0x741: 0x000c, 0x742: 0x000c, 0x743: 0x000c, 0x744: 0x000c,
+       0x74d: 0x000c,
+       0x762: 0x000c, 0x763: 0x000c,
+       0x772: 0x0004, 0x773: 0x0004,
+       0x77b: 0x0004,
+       // Block 0x1e, offset 0x780
+       0x781: 0x000c, 0x782: 0x000c,
+       0x7bc: 0x000c,
+       // Block 0x1f, offset 0x7c0
+       0x7c1: 0x000c, 0x7c2: 0x000c,
+       0x7c7: 0x000c, 0x7c8: 0x000c, 0x7cb: 0x000c,
+       0x7cc: 0x000c, 0x7cd: 0x000c, 0x7d1: 0x000c,
+       0x7f0: 0x000c, 0x7f1: 0x000c, 0x7f5: 0x000c,
+       // Block 0x20, offset 0x800
+       0x801: 0x000c, 0x802: 0x000c, 0x803: 0x000c, 0x804: 0x000c, 0x805: 0x000c,
+       0x807: 0x000c, 0x808: 0x000c,
+       0x80d: 0x000c,
+       0x822: 0x000c, 0x823: 0x000c,
+       0x831: 0x0004,
+       // Block 0x21, offset 0x840
+       0x841: 0x000c,
+       0x87c: 0x000c, 0x87f: 0x000c,
+       // Block 0x22, offset 0x880
+       0x881: 0x000c, 0x882: 0x000c, 0x883: 0x000c, 0x884: 0x000c,
+       0x88d: 0x000c,
+       0x896: 0x000c,
+       0x8a2: 0x000c, 0x8a3: 0x000c,
+       // Block 0x23, offset 0x8c0
+       0x8c2: 0x000c,
+       // Block 0x24, offset 0x900
+       0x900: 0x000c,
+       0x90d: 0x000c,
+       0x933: 0x000a, 0x934: 0x000a, 0x935: 0x000a,
+       0x936: 0x000a, 0x937: 0x000a, 0x938: 0x000a, 0x939: 0x0004, 0x93a: 0x000a,
+       // Block 0x25, offset 0x940
+       0x940: 0x000c,
+       0x97e: 0x000c, 0x97f: 0x000c,
+       // Block 0x26, offset 0x980
+       0x980: 0x000c,
+       0x986: 0x000c, 0x987: 0x000c, 0x988: 0x000c, 0x98a: 0x000c, 0x98b: 0x000c,
+       0x98c: 0x000c, 0x98d: 0x000c,
+       0x995: 0x000c, 0x996: 0x000c,
+       0x9a2: 0x000c, 0x9a3: 0x000c,
+       0x9b8: 0x000a, 0x9b9: 0x000a, 0x9ba: 0x000a, 0x9bb: 0x000a,
+       0x9bc: 0x000a, 0x9bd: 0x000a, 0x9be: 0x000a,
+       // Block 0x27, offset 0x9c0
+       0x9cc: 0x000c, 0x9cd: 0x000c,
+       0x9e2: 0x000c, 0x9e3: 0x000c,
+       // Block 0x28, offset 0xa00
+       0xa01: 0x000c,
+       // Block 0x29, offset 0xa40
+       0xa41: 0x000c, 0xa42: 0x000c, 0xa43: 0x000c, 0xa44: 0x000c,
+       0xa4d: 0x000c,
+       0xa62: 0x000c, 0xa63: 0x000c,
+       // Block 0x2a, offset 0xa80
+       0xa8a: 0x000c,
+       0xa92: 0x000c, 0xa93: 0x000c, 0xa94: 0x000c, 0xa96: 0x000c,
+       // Block 0x2b, offset 0xac0
+       0xaf1: 0x000c, 0xaf4: 0x000c, 0xaf5: 0x000c,
+       0xaf6: 0x000c, 0xaf7: 0x000c, 0xaf8: 0x000c, 0xaf9: 0x000c, 0xafa: 0x000c,
+       0xaff: 0x0004,
+       // Block 0x2c, offset 0xb00
+       0xb07: 0x000c, 0xb08: 0x000c, 0xb09: 0x000c, 0xb0a: 0x000c, 0xb0b: 0x000c,
+       0xb0c: 0x000c, 0xb0d: 0x000c, 0xb0e: 0x000c,
+       // Block 0x2d, offset 0xb40
+       0xb71: 0x000c, 0xb74: 0x000c, 0xb75: 0x000c,
+       0xb76: 0x000c, 0xb77: 0x000c, 0xb78: 0x000c, 0xb79: 0x000c, 0xb7b: 0x000c,
+       0xb7c: 0x000c,
+       // Block 0x2e, offset 0xb80
+       0xb88: 0x000c, 0xb89: 0x000c, 0xb8a: 0x000c, 0xb8b: 0x000c,
+       0xb8c: 0x000c, 0xb8d: 0x000c,
+       // Block 0x2f, offset 0xbc0
+       0xbd8: 0x000c, 0xbd9: 0x000c,
+       0xbf5: 0x000c,
+       0xbf7: 0x000c, 0xbf9: 0x000c, 0xbfa: 0x003a, 0xbfb: 0x002a,
+       0xbfc: 0x003a, 0xbfd: 0x002a,
+       // Block 0x30, offset 0xc00
+       0xc31: 0x000c, 0xc32: 0x000c, 0xc33: 0x000c, 0xc34: 0x000c, 0xc35: 0x000c,
+       0xc36: 0x000c, 0xc37: 0x000c, 0xc38: 0x000c, 0xc39: 0x000c, 0xc3a: 0x000c, 0xc3b: 0x000c,
+       0xc3c: 0x000c, 0xc3d: 0x000c, 0xc3e: 0x000c,
+       // Block 0x31, offset 0xc40
+       0xc40: 0x000c, 0xc41: 0x000c, 0xc42: 0x000c, 0xc43: 0x000c, 0xc44: 0x000c,
+       0xc46: 0x000c, 0xc47: 0x000c,
+       0xc4d: 0x000c, 0xc4e: 0x000c, 0xc4f: 0x000c, 0xc50: 0x000c, 0xc51: 0x000c,
+       0xc52: 0x000c, 0xc53: 0x000c, 0xc54: 0x000c, 0xc55: 0x000c, 0xc56: 0x000c, 0xc57: 0x000c,
+       0xc59: 0x000c, 0xc5a: 0x000c, 0xc5b: 0x000c, 0xc5c: 0x000c, 0xc5d: 0x000c,
+       0xc5e: 0x000c, 0xc5f: 0x000c, 0xc60: 0x000c, 0xc61: 0x000c, 0xc62: 0x000c, 0xc63: 0x000c,
+       0xc64: 0x000c, 0xc65: 0x000c, 0xc66: 0x000c, 0xc67: 0x000c, 0xc68: 0x000c, 0xc69: 0x000c,
+       0xc6a: 0x000c, 0xc6b: 0x000c, 0xc6c: 0x000c, 0xc6d: 0x000c, 0xc6e: 0x000c, 0xc6f: 0x000c,
+       0xc70: 0x000c, 0xc71: 0x000c, 0xc72: 0x000c, 0xc73: 0x000c, 0xc74: 0x000c, 0xc75: 0x000c,
+       0xc76: 0x000c, 0xc77: 0x000c, 0xc78: 0x000c, 0xc79: 0x000c, 0xc7a: 0x000c, 0xc7b: 0x000c,
+       0xc7c: 0x000c,
+       // Block 0x32, offset 0xc80
+       0xc86: 0x000c,
+       // Block 0x33, offset 0xcc0
+       0xced: 0x000c, 0xcee: 0x000c, 0xcef: 0x000c,
+       0xcf0: 0x000c, 0xcf2: 0x000c, 0xcf3: 0x000c, 0xcf4: 0x000c, 0xcf5: 0x000c,
+       0xcf6: 0x000c, 0xcf7: 0x000c, 0xcf9: 0x000c, 0xcfa: 0x000c,
+       0xcfd: 0x000c, 0xcfe: 0x000c,
+       // Block 0x34, offset 0xd00
+       0xd18: 0x000c, 0xd19: 0x000c,
+       0xd1e: 0x000c, 0xd1f: 0x000c, 0xd20: 0x000c,
+       0xd31: 0x000c, 0xd32: 0x000c, 0xd33: 0x000c, 0xd34: 0x000c,
+       // Block 0x35, offset 0xd40
+       0xd42: 0x000c, 0xd45: 0x000c,
+       0xd46: 0x000c,
+       0xd4d: 0x000c,
+       0xd5d: 0x000c,
+       // Block 0x36, offset 0xd80
+       0xd9d: 0x000c,
+       0xd9e: 0x000c, 0xd9f: 0x000c,
+       // Block 0x37, offset 0xdc0
+       0xdd0: 0x000a, 0xdd1: 0x000a,
+       0xdd2: 0x000a, 0xdd3: 0x000a, 0xdd4: 0x000a, 0xdd5: 0x000a, 0xdd6: 0x000a, 0xdd7: 0x000a,
+       0xdd8: 0x000a, 0xdd9: 0x000a,
+       // Block 0x38, offset 0xe00
+       0xe00: 0x000a,
+       // Block 0x39, offset 0xe40
+       0xe40: 0x0009,
+       0xe5b: 0x007a, 0xe5c: 0x006a,
+       // Block 0x3a, offset 0xe80
+       0xe92: 0x000c, 0xe93: 0x000c, 0xe94: 0x000c,
+       0xeb2: 0x000c, 0xeb3: 0x000c, 0xeb4: 0x000c,
+       // Block 0x3b, offset 0xec0
+       0xed2: 0x000c, 0xed3: 0x000c,
+       0xef2: 0x000c, 0xef3: 0x000c,
+       // Block 0x3c, offset 0xf00
+       0xf34: 0x000c, 0xf35: 0x000c,
+       0xf37: 0x000c, 0xf38: 0x000c, 0xf39: 0x000c, 0xf3a: 0x000c, 0xf3b: 0x000c,
+       0xf3c: 0x000c, 0xf3d: 0x000c,
+       // Block 0x3d, offset 0xf40
+       0xf46: 0x000c, 0xf49: 0x000c, 0xf4a: 0x000c, 0xf4b: 0x000c,
+       0xf4c: 0x000c, 0xf4d: 0x000c, 0xf4e: 0x000c, 0xf4f: 0x000c, 0xf50: 0x000c, 0xf51: 0x000c,
+       0xf52: 0x000c, 0xf53: 0x000c,
+       0xf5b: 0x0004, 0xf5d: 0x000c,
+       0xf70: 0x000a, 0xf71: 0x000a, 0xf72: 0x000a, 0xf73: 0x000a, 0xf74: 0x000a, 0xf75: 0x000a,
+       0xf76: 0x000a, 0xf77: 0x000a, 0xf78: 0x000a, 0xf79: 0x000a,
+       // Block 0x3e, offset 0xf80
+       0xf80: 0x000a, 0xf81: 0x000a, 0xf82: 0x000a, 0xf83: 0x000a, 0xf84: 0x000a, 0xf85: 0x000a,
+       0xf86: 0x000a, 0xf87: 0x000a, 0xf88: 0x000a, 0xf89: 0x000a, 0xf8a: 0x000a, 0xf8b: 0x000c,
+       0xf8c: 0x000c, 0xf8d: 0x000c, 0xf8e: 0x000b,
+       // Block 0x3f, offset 0xfc0
+       0xfc5: 0x000c,
+       0xfc6: 0x000c,
+       0xfe9: 0x000c,
+       // Block 0x40, offset 0x1000
+       0x1020: 0x000c, 0x1021: 0x000c, 0x1022: 0x000c,
+       0x1027: 0x000c, 0x1028: 0x000c,
+       0x1032: 0x000c,
+       0x1039: 0x000c, 0x103a: 0x000c, 0x103b: 0x000c,
+       // Block 0x41, offset 0x1040
+       0x1040: 0x000a, 0x1044: 0x000a, 0x1045: 0x000a,
+       // Block 0x42, offset 0x1080
+       0x109e: 0x000a, 0x109f: 0x000a, 0x10a0: 0x000a, 0x10a1: 0x000a, 0x10a2: 0x000a, 0x10a3: 0x000a,
+       0x10a4: 0x000a, 0x10a5: 0x000a, 0x10a6: 0x000a, 0x10a7: 0x000a, 0x10a8: 0x000a, 0x10a9: 0x000a,
+       0x10aa: 0x000a, 0x10ab: 0x000a, 0x10ac: 0x000a, 0x10ad: 0x000a, 0x10ae: 0x000a, 0x10af: 0x000a,
+       0x10b0: 0x000a, 0x10b1: 0x000a, 0x10b2: 0x000a, 0x10b3: 0x000a, 0x10b4: 0x000a, 0x10b5: 0x000a,
+       0x10b6: 0x000a, 0x10b7: 0x000a, 0x10b8: 0x000a, 0x10b9: 0x000a, 0x10ba: 0x000a, 0x10bb: 0x000a,
+       0x10bc: 0x000a, 0x10bd: 0x000a, 0x10be: 0x000a, 0x10bf: 0x000a,
+       // Block 0x43, offset 0x10c0
+       0x10d7: 0x000c,
+       0x10d8: 0x000c, 0x10db: 0x000c,
+       // Block 0x44, offset 0x1100
+       0x1116: 0x000c,
+       0x1118: 0x000c, 0x1119: 0x000c, 0x111a: 0x000c, 0x111b: 0x000c, 0x111c: 0x000c, 0x111d: 0x000c,
+       0x111e: 0x000c, 0x1120: 0x000c, 0x1122: 0x000c,
+       0x1125: 0x000c, 0x1126: 0x000c, 0x1127: 0x000c, 0x1128: 0x000c, 0x1129: 0x000c,
+       0x112a: 0x000c, 0x112b: 0x000c, 0x112c: 0x000c,
+       0x1133: 0x000c, 0x1134: 0x000c, 0x1135: 0x000c,
+       0x1136: 0x000c, 0x1137: 0x000c, 0x1138: 0x000c, 0x1139: 0x000c, 0x113a: 0x000c, 0x113b: 0x000c,
+       0x113c: 0x000c, 0x113f: 0x000c,
+       // Block 0x45, offset 0x1140
+       0x1170: 0x000c, 0x1171: 0x000c, 0x1172: 0x000c, 0x1173: 0x000c, 0x1174: 0x000c, 0x1175: 0x000c,
+       0x1176: 0x000c, 0x1177: 0x000c, 0x1178: 0x000c, 0x1179: 0x000c, 0x117a: 0x000c, 0x117b: 0x000c,
+       0x117c: 0x000c, 0x117d: 0x000c, 0x117e: 0x000c,
+       // Block 0x46, offset 0x1180
+       0x1180: 0x000c, 0x1181: 0x000c, 0x1182: 0x000c, 0x1183: 0x000c,
+       0x11b4: 0x000c,
+       0x11b6: 0x000c, 0x11b7: 0x000c, 0x11b8: 0x000c, 0x11b9: 0x000c, 0x11ba: 0x000c,
+       0x11bc: 0x000c,
+       // Block 0x47, offset 0x11c0
+       0x11c2: 0x000c,
+       0x11eb: 0x000c, 0x11ec: 0x000c, 0x11ed: 0x000c, 0x11ee: 0x000c, 0x11ef: 0x000c,
+       0x11f0: 0x000c, 0x11f1: 0x000c, 0x11f2: 0x000c, 0x11f3: 0x000c,
+       // Block 0x48, offset 0x1200
+       0x1200: 0x000c, 0x1201: 0x000c,
+       0x1222: 0x000c, 0x1223: 0x000c,
+       0x1224: 0x000c, 0x1225: 0x000c, 0x1228: 0x000c, 0x1229: 0x000c,
+       0x122b: 0x000c, 0x122c: 0x000c, 0x122d: 0x000c,
+       // Block 0x49, offset 0x1240
+       0x1266: 0x000c, 0x1268: 0x000c, 0x1269: 0x000c,
+       0x126d: 0x000c, 0x126f: 0x000c,
+       0x1270: 0x000c, 0x1271: 0x000c,
+       // Block 0x4a, offset 0x1280
+       0x12ac: 0x000c, 0x12ad: 0x000c, 0x12ae: 0x000c, 0x12af: 0x000c,
+       0x12b0: 0x000c, 0x12b1: 0x000c, 0x12b2: 0x000c, 0x12b3: 0x000c,
+       0x12b6: 0x000c, 0x12b7: 0x000c,
+       // Block 0x4b, offset 0x12c0
+       0x12d0: 0x000c, 0x12d1: 0x000c,
+       0x12d2: 0x000c, 0x12d4: 0x000c, 0x12d5: 0x000c, 0x12d6: 0x000c, 0x12d7: 0x000c,
+       0x12d8: 0x000c, 0x12d9: 0x000c, 0x12da: 0x000c, 0x12db: 0x000c, 0x12dc: 0x000c, 0x12dd: 0x000c,
+       0x12de: 0x000c, 0x12df: 0x000c, 0x12e0: 0x000c, 0x12e2: 0x000c, 0x12e3: 0x000c,
+       0x12e4: 0x000c, 0x12e5: 0x000c, 0x12e6: 0x000c, 0x12e7: 0x000c, 0x12e8: 0x000c,
+       0x12ed: 0x000c,
+       0x12f4: 0x000c,
+       0x12f8: 0x000c, 0x12f9: 0x000c,
+       // Block 0x4c, offset 0x1300
+       0x1300: 0x000c, 0x1301: 0x000c, 0x1302: 0x000c, 0x1303: 0x000c, 0x1304: 0x000c, 0x1305: 0x000c,
+       0x1306: 0x000c, 0x1307: 0x000c, 0x1308: 0x000c, 0x1309: 0x000c, 0x130a: 0x000c, 0x130b: 0x000c,
+       0x130c: 0x000c, 0x130d: 0x000c, 0x130e: 0x000c, 0x130f: 0x000c, 0x1310: 0x000c, 0x1311: 0x000c,
+       0x1312: 0x000c, 0x1313: 0x000c, 0x1314: 0x000c, 0x1315: 0x000c, 0x1316: 0x000c, 0x1317: 0x000c,
+       0x1318: 0x000c, 0x1319: 0x000c, 0x131a: 0x000c, 0x131b: 0x000c, 0x131c: 0x000c, 0x131d: 0x000c,
+       0x131e: 0x000c, 0x131f: 0x000c, 0x1320: 0x000c, 0x1321: 0x000c, 0x1322: 0x000c, 0x1323: 0x000c,
+       0x1324: 0x000c, 0x1325: 0x000c, 0x1326: 0x000c, 0x1327: 0x000c, 0x1328: 0x000c, 0x1329: 0x000c,
+       0x132a: 0x000c, 0x132b: 0x000c, 0x132c: 0x000c, 0x132d: 0x000c, 0x132e: 0x000c, 0x132f: 0x000c,
+       0x1330: 0x000c, 0x1331: 0x000c, 0x1332: 0x000c, 0x1333: 0x000c, 0x1334: 0x000c, 0x1335: 0x000c,
+       0x133b: 0x000c,
+       0x133c: 0x000c, 0x133d: 0x000c, 0x133e: 0x000c, 0x133f: 0x000c,
+       // Block 0x4d, offset 0x1340
+       0x137d: 0x000a, 0x137f: 0x000a,
+       // Block 0x4e, offset 0x1380
+       0x1380: 0x000a, 0x1381: 0x000a,
+       0x138d: 0x000a, 0x138e: 0x000a, 0x138f: 0x000a,
+       0x139d: 0x000a,
+       0x139e: 0x000a, 0x139f: 0x000a,
+       0x13ad: 0x000a, 0x13ae: 0x000a, 0x13af: 0x000a,
+       0x13bd: 0x000a, 0x13be: 0x000a,
+       // Block 0x4f, offset 0x13c0
+       0x13c0: 0x0009, 0x13c1: 0x0009, 0x13c2: 0x0009, 0x13c3: 0x0009, 0x13c4: 0x0009, 0x13c5: 0x0009,
+       0x13c6: 0x0009, 0x13c7: 0x0009, 0x13c8: 0x0009, 0x13c9: 0x0009, 0x13ca: 0x0009, 0x13cb: 0x000b,
+       0x13cc: 0x000b, 0x13cd: 0x000b, 0x13cf: 0x0001, 0x13d0: 0x000a, 0x13d1: 0x000a,
+       0x13d2: 0x000a, 0x13d3: 0x000a, 0x13d4: 0x000a, 0x13d5: 0x000a, 0x13d6: 0x000a, 0x13d7: 0x000a,
+       0x13d8: 0x000a, 0x13d9: 0x000a, 0x13da: 0x000a, 0x13db: 0x000a, 0x13dc: 0x000a, 0x13dd: 0x000a,
+       0x13de: 0x000a, 0x13df: 0x000a, 0x13e0: 0x000a, 0x13e1: 0x000a, 0x13e2: 0x000a, 0x13e3: 0x000a,
+       0x13e4: 0x000a, 0x13e5: 0x000a, 0x13e6: 0x000a, 0x13e7: 0x000a, 0x13e8: 0x0009, 0x13e9: 0x0007,
+       0x13ea: 0x000e, 0x13eb: 0x000e, 0x13ec: 0x000e, 0x13ed: 0x000e, 0x13ee: 0x000e, 0x13ef: 0x0006,
+       0x13f0: 0x0004, 0x13f1: 0x0004, 0x13f2: 0x0004, 0x13f3: 0x0004, 0x13f4: 0x0004, 0x13f5: 0x000a,
+       0x13f6: 0x000a, 0x13f7: 0x000a, 0x13f8: 0x000a, 0x13f9: 0x000a, 0x13fa: 0x000a, 0x13fb: 0x000a,
+       0x13fc: 0x000a, 0x13fd: 0x000a, 0x13fe: 0x000a, 0x13ff: 0x000a,
+       // Block 0x50, offset 0x1400
+       0x1400: 0x000a, 0x1401: 0x000a, 0x1402: 0x000a, 0x1403: 0x000a, 0x1404: 0x0006, 0x1405: 0x009a,
+       0x1406: 0x008a, 0x1407: 0x000a, 0x1408: 0x000a, 0x1409: 0x000a, 0x140a: 0x000a, 0x140b: 0x000a,
+       0x140c: 0x000a, 0x140d: 0x000a, 0x140e: 0x000a, 0x140f: 0x000a, 0x1410: 0x000a, 0x1411: 0x000a,
+       0x1412: 0x000a, 0x1413: 0x000a, 0x1414: 0x000a, 0x1415: 0x000a, 0x1416: 0x000a, 0x1417: 0x000a,
+       0x1418: 0x000a, 0x1419: 0x000a, 0x141a: 0x000a, 0x141b: 0x000a, 0x141c: 0x000a, 0x141d: 0x000a,
+       0x141e: 0x000a, 0x141f: 0x0009, 0x1420: 0x000b, 0x1421: 0x000b, 0x1422: 0x000b, 0x1423: 0x000b,
+       0x1424: 0x000b, 0x1425: 0x000b, 0x1426: 0x000e, 0x1427: 0x000e, 0x1428: 0x000e, 0x1429: 0x000e,
+       0x142a: 0x000b, 0x142b: 0x000b, 0x142c: 0x000b, 0x142d: 0x000b, 0x142e: 0x000b, 0x142f: 0x000b,
+       0x1430: 0x0002, 0x1434: 0x0002, 0x1435: 0x0002,
+       0x1436: 0x0002, 0x1437: 0x0002, 0x1438: 0x0002, 0x1439: 0x0002, 0x143a: 0x0003, 0x143b: 0x0003,
+       0x143c: 0x000a, 0x143d: 0x009a, 0x143e: 0x008a,
+       // Block 0x51, offset 0x1440
+       0x1440: 0x0002, 0x1441: 0x0002, 0x1442: 0x0002, 0x1443: 0x0002, 0x1444: 0x0002, 0x1445: 0x0002,
+       0x1446: 0x0002, 0x1447: 0x0002, 0x1448: 0x0002, 0x1449: 0x0002, 0x144a: 0x0003, 0x144b: 0x0003,
+       0x144c: 0x000a, 0x144d: 0x009a, 0x144e: 0x008a,
+       0x1460: 0x0004, 0x1461: 0x0004, 0x1462: 0x0004, 0x1463: 0x0004,
+       0x1464: 0x0004, 0x1465: 0x0004, 0x1466: 0x0004, 0x1467: 0x0004, 0x1468: 0x0004, 0x1469: 0x0004,
+       0x146a: 0x0004, 0x146b: 0x0004, 0x146c: 0x0004, 0x146d: 0x0004, 0x146e: 0x0004, 0x146f: 0x0004,
+       0x1470: 0x0004, 0x1471: 0x0004, 0x1472: 0x0004, 0x1473: 0x0004, 0x1474: 0x0004, 0x1475: 0x0004,
+       0x1476: 0x0004, 0x1477: 0x0004, 0x1478: 0x0004, 0x1479: 0x0004, 0x147a: 0x0004, 0x147b: 0x0004,
+       0x147c: 0x0004, 0x147d: 0x0004, 0x147e: 0x0004, 0x147f: 0x0004,
+       // Block 0x52, offset 0x1480
+       0x1480: 0x0004, 0x1481: 0x0004, 0x1482: 0x0004, 0x1483: 0x0004, 0x1484: 0x0004, 0x1485: 0x0004,
+       0x1486: 0x0004, 0x1487: 0x0004, 0x1488: 0x0004, 0x1489: 0x0004, 0x148a: 0x0004, 0x148b: 0x0004,
+       0x148c: 0x0004, 0x148d: 0x0004, 0x148e: 0x0004, 0x148f: 0x0004, 0x1490: 0x000c, 0x1491: 0x000c,
+       0x1492: 0x000c, 0x1493: 0x000c, 0x1494: 0x000c, 0x1495: 0x000c, 0x1496: 0x000c, 0x1497: 0x000c,
+       0x1498: 0x000c, 0x1499: 0x000c, 0x149a: 0x000c, 0x149b: 0x000c, 0x149c: 0x000c, 0x149d: 0x000c,
+       0x149e: 0x000c, 0x149f: 0x000c, 0x14a0: 0x000c, 0x14a1: 0x000c, 0x14a2: 0x000c, 0x14a3: 0x000c,
+       0x14a4: 0x000c, 0x14a5: 0x000c, 0x14a6: 0x000c, 0x14a7: 0x000c, 0x14a8: 0x000c, 0x14a9: 0x000c,
+       0x14aa: 0x000c, 0x14ab: 0x000c, 0x14ac: 0x000c, 0x14ad: 0x000c, 0x14ae: 0x000c, 0x14af: 0x000c,
+       0x14b0: 0x000c,
+       // Block 0x53, offset 0x14c0
+       0x14c0: 0x000a, 0x14c1: 0x000a, 0x14c3: 0x000a, 0x14c4: 0x000a, 0x14c5: 0x000a,
+       0x14c6: 0x000a, 0x14c8: 0x000a, 0x14c9: 0x000a,
+       0x14d4: 0x000a, 0x14d6: 0x000a, 0x14d7: 0x000a,
+       0x14d8: 0x000a,
+       0x14de: 0x000a, 0x14df: 0x000a, 0x14e0: 0x000a, 0x14e1: 0x000a, 0x14e2: 0x000a, 0x14e3: 0x000a,
+       0x14e5: 0x000a, 0x14e7: 0x000a, 0x14e9: 0x000a,
+       0x14ee: 0x0004,
+       0x14fa: 0x000a, 0x14fb: 0x000a,
+       // Block 0x54, offset 0x1500
+       0x1500: 0x000a, 0x1501: 0x000a, 0x1502: 0x000a, 0x1503: 0x000a, 0x1504: 0x000a,
+       0x150a: 0x000a, 0x150b: 0x000a,
+       0x150c: 0x000a, 0x150d: 0x000a, 0x1510: 0x000a, 0x1511: 0x000a,
+       0x1512: 0x000a, 0x1513: 0x000a, 0x1514: 0x000a, 0x1515: 0x000a, 0x1516: 0x000a, 0x1517: 0x000a,
+       0x1518: 0x000a, 0x1519: 0x000a, 0x151a: 0x000a, 0x151b: 0x000a, 0x151c: 0x000a, 0x151d: 0x000a,
+       0x151e: 0x000a, 0x151f: 0x000a,
+       // Block 0x55, offset 0x1540
+       0x1549: 0x000a, 0x154a: 0x000a, 0x154b: 0x000a,
+       0x1550: 0x000a, 0x1551: 0x000a,
+       0x1552: 0x000a, 0x1553: 0x000a, 0x1554: 0x000a, 0x1555: 0x000a, 0x1556: 0x000a, 0x1557: 0x000a,
+       0x1558: 0x000a, 0x1559: 0x000a, 0x155a: 0x000a, 0x155b: 0x000a, 0x155c: 0x000a, 0x155d: 0x000a,
+       0x155e: 0x000a, 0x155f: 0x000a, 0x1560: 0x000a, 0x1561: 0x000a, 0x1562: 0x000a, 0x1563: 0x000a,
+       0x1564: 0x000a, 0x1565: 0x000a, 0x1566: 0x000a, 0x1567: 0x000a, 0x1568: 0x000a, 0x1569: 0x000a,
+       0x156a: 0x000a, 0x156b: 0x000a, 0x156c: 0x000a, 0x156d: 0x000a, 0x156e: 0x000a, 0x156f: 0x000a,
+       0x1570: 0x000a, 0x1571: 0x000a, 0x1572: 0x000a, 0x1573: 0x000a, 0x1574: 0x000a, 0x1575: 0x000a,
+       0x1576: 0x000a, 0x1577: 0x000a, 0x1578: 0x000a, 0x1579: 0x000a, 0x157a: 0x000a, 0x157b: 0x000a,
+       0x157c: 0x000a, 0x157d: 0x000a, 0x157e: 0x000a, 0x157f: 0x000a,
+       // Block 0x56, offset 0x1580
+       0x1580: 0x000a, 0x1581: 0x000a, 0x1582: 0x000a, 0x1583: 0x000a, 0x1584: 0x000a, 0x1585: 0x000a,
+       0x1586: 0x000a, 0x1587: 0x000a, 0x1588: 0x000a, 0x1589: 0x000a, 0x158a: 0x000a, 0x158b: 0x000a,
+       0x158c: 0x000a, 0x158d: 0x000a, 0x158e: 0x000a, 0x158f: 0x000a, 0x1590: 0x000a, 0x1591: 0x000a,
+       0x1592: 0x000a, 0x1593: 0x000a, 0x1594: 0x000a, 0x1595: 0x000a, 0x1596: 0x000a, 0x1597: 0x000a,
+       0x1598: 0x000a, 0x1599: 0x000a, 0x159a: 0x000a, 0x159b: 0x000a, 0x159c: 0x000a, 0x159d: 0x000a,
+       0x159e: 0x000a, 0x159f: 0x000a, 0x15a0: 0x000a, 0x15a1: 0x000a, 0x15a2: 0x000a, 0x15a3: 0x000a,
+       0x15a4: 0x000a, 0x15a5: 0x000a, 0x15a6: 0x000a, 0x15a7: 0x000a, 0x15a8: 0x000a, 0x15a9: 0x000a,
+       0x15aa: 0x000a, 0x15ab: 0x000a, 0x15ac: 0x000a, 0x15ad: 0x000a, 0x15ae: 0x000a, 0x15af: 0x000a,
+       0x15b0: 0x000a, 0x15b1: 0x000a, 0x15b2: 0x000a, 0x15b3: 0x000a, 0x15b4: 0x000a, 0x15b5: 0x000a,
+       0x15b6: 0x000a, 0x15b7: 0x000a, 0x15b8: 0x000a, 0x15b9: 0x000a, 0x15ba: 0x000a, 0x15bb: 0x000a,
+       0x15bc: 0x000a, 0x15bd: 0x000a, 0x15be: 0x000a, 0x15bf: 0x000a,
+       // Block 0x57, offset 0x15c0
+       0x15c0: 0x000a, 0x15c1: 0x000a, 0x15c2: 0x000a, 0x15c3: 0x000a, 0x15c4: 0x000a, 0x15c5: 0x000a,
+       0x15c6: 0x000a, 0x15c7: 0x000a, 0x15c8: 0x000a, 0x15c9: 0x000a, 0x15ca: 0x000a, 0x15cb: 0x000a,
+       0x15cc: 0x000a, 0x15cd: 0x000a, 0x15ce: 0x000a, 0x15cf: 0x000a, 0x15d0: 0x000a, 0x15d1: 0x000a,
+       0x15d2: 0x0003, 0x15d3: 0x0004, 0x15d4: 0x000a, 0x15d5: 0x000a, 0x15d6: 0x000a, 0x15d7: 0x000a,
+       0x15d8: 0x000a, 0x15d9: 0x000a, 0x15da: 0x000a, 0x15db: 0x000a, 0x15dc: 0x000a, 0x15dd: 0x000a,
+       0x15de: 0x000a, 0x15df: 0x000a, 0x15e0: 0x000a, 0x15e1: 0x000a, 0x15e2: 0x000a, 0x15e3: 0x000a,
+       0x15e4: 0x000a, 0x15e5: 0x000a, 0x15e6: 0x000a, 0x15e7: 0x000a, 0x15e8: 0x000a, 0x15e9: 0x000a,
+       0x15ea: 0x000a, 0x15eb: 0x000a, 0x15ec: 0x000a, 0x15ed: 0x000a, 0x15ee: 0x000a, 0x15ef: 0x000a,
+       0x15f0: 0x000a, 0x15f1: 0x000a, 0x15f2: 0x000a, 0x15f3: 0x000a, 0x15f4: 0x000a, 0x15f5: 0x000a,
+       0x15f6: 0x000a, 0x15f7: 0x000a, 0x15f8: 0x000a, 0x15f9: 0x000a, 0x15fa: 0x000a, 0x15fb: 0x000a,
+       0x15fc: 0x000a, 0x15fd: 0x000a, 0x15fe: 0x000a, 0x15ff: 0x000a,
+       // Block 0x58, offset 0x1600
+       0x1600: 0x000a, 0x1601: 0x000a, 0x1602: 0x000a, 0x1603: 0x000a, 0x1604: 0x000a, 0x1605: 0x000a,
+       0x1606: 0x000a, 0x1607: 0x000a, 0x1608: 0x003a, 0x1609: 0x002a, 0x160a: 0x003a, 0x160b: 0x002a,
+       0x160c: 0x000a, 0x160d: 0x000a, 0x160e: 0x000a, 0x160f: 0x000a, 0x1610: 0x000a, 0x1611: 0x000a,
+       0x1612: 0x000a, 0x1613: 0x000a, 0x1614: 0x000a, 0x1615: 0x000a, 0x1616: 0x000a, 0x1617: 0x000a,
+       0x1618: 0x000a, 0x1619: 0x000a, 0x161a: 0x000a, 0x161b: 0x000a, 0x161c: 0x000a, 0x161d: 0x000a,
+       0x161e: 0x000a, 0x161f: 0x000a, 0x1620: 0x000a, 0x1621: 0x000a, 0x1622: 0x000a, 0x1623: 0x000a,
+       0x1624: 0x000a, 0x1625: 0x000a, 0x1626: 0x000a, 0x1627: 0x000a, 0x1628: 0x000a, 0x1629: 0x009a,
+       0x162a: 0x008a, 0x162b: 0x000a, 0x162c: 0x000a, 0x162d: 0x000a, 0x162e: 0x000a, 0x162f: 0x000a,
+       0x1630: 0x000a, 0x1631: 0x000a, 0x1632: 0x000a, 0x1633: 0x000a, 0x1634: 0x000a, 0x1635: 0x000a,
+       // Block 0x59, offset 0x1640
+       0x167b: 0x000a,
+       0x167c: 0x000a, 0x167d: 0x000a, 0x167e: 0x000a, 0x167f: 0x000a,
+       // Block 0x5a, offset 0x1680
+       0x1680: 0x000a, 0x1681: 0x000a, 0x1682: 0x000a, 0x1683: 0x000a, 0x1684: 0x000a, 0x1685: 0x000a,
+       0x1686: 0x000a, 0x1687: 0x000a, 0x1688: 0x000a, 0x1689: 0x000a, 0x168a: 0x000a, 0x168b: 0x000a,
+       0x168c: 0x000a, 0x168d: 0x000a, 0x168e: 0x000a, 0x168f: 0x000a, 0x1690: 0x000a, 0x1691: 0x000a,
+       0x1692: 0x000a, 0x1693: 0x000a, 0x1694: 0x000a, 0x1696: 0x000a, 0x1697: 0x000a,
+       0x1698: 0x000a, 0x1699: 0x000a, 0x169a: 0x000a, 0x169b: 0x000a, 0x169c: 0x000a, 0x169d: 0x000a,
+       0x169e: 0x000a, 0x169f: 0x000a, 0x16a0: 0x000a, 0x16a1: 0x000a, 0x16a2: 0x000a, 0x16a3: 0x000a,
+       0x16a4: 0x000a, 0x16a5: 0x000a, 0x16a6: 0x000a, 0x16a7: 0x000a, 0x16a8: 0x000a, 0x16a9: 0x000a,
+       0x16aa: 0x000a, 0x16ab: 0x000a, 0x16ac: 0x000a, 0x16ad: 0x000a, 0x16ae: 0x000a, 0x16af: 0x000a,
+       0x16b0: 0x000a, 0x16b1: 0x000a, 0x16b2: 0x000a, 0x16b3: 0x000a, 0x16b4: 0x000a, 0x16b5: 0x000a,
+       0x16b6: 0x000a, 0x16b7: 0x000a, 0x16b8: 0x000a, 0x16b9: 0x000a, 0x16ba: 0x000a, 0x16bb: 0x000a,
+       0x16bc: 0x000a, 0x16bd: 0x000a, 0x16be: 0x000a, 0x16bf: 0x000a,
+       // Block 0x5b, offset 0x16c0
+       0x16c0: 0x000a, 0x16c1: 0x000a, 0x16c2: 0x000a, 0x16c3: 0x000a, 0x16c4: 0x000a, 0x16c5: 0x000a,
+       0x16c6: 0x000a, 0x16c7: 0x000a, 0x16c8: 0x000a, 0x16c9: 0x000a, 0x16ca: 0x000a, 0x16cb: 0x000a,
+       0x16cc: 0x000a, 0x16cd: 0x000a, 0x16ce: 0x000a, 0x16cf: 0x000a, 0x16d0: 0x000a, 0x16d1: 0x000a,
+       0x16d2: 0x000a, 0x16d3: 0x000a, 0x16d4: 0x000a, 0x16d5: 0x000a, 0x16d6: 0x000a, 0x16d7: 0x000a,
+       0x16d8: 0x000a, 0x16d9: 0x000a, 0x16da: 0x000a, 0x16db: 0x000a, 0x16dc: 0x000a, 0x16dd: 0x000a,
+       0x16de: 0x000a, 0x16df: 0x000a, 0x16e0: 0x000a, 0x16e1: 0x000a, 0x16e2: 0x000a, 0x16e3: 0x000a,
+       0x16e4: 0x000a, 0x16e5: 0x000a, 0x16e6: 0x000a, 0x16e7: 0x000a, 0x16e8: 0x000a, 0x16e9: 0x000a,
+       0x16ea: 0x000a, 0x16eb: 0x000a, 0x16ec: 0x000a, 0x16ed: 0x000a, 0x16ee: 0x000a, 0x16ef: 0x000a,
+       0x16f0: 0x000a, 0x16f1: 0x000a, 0x16f2: 0x000a, 0x16f3: 0x000a, 0x16f4: 0x000a, 0x16f5: 0x000a,
+       0x16f6: 0x000a, 0x16f7: 0x000a, 0x16f8: 0x000a, 0x16f9: 0x000a, 0x16fa: 0x000a, 0x16fb: 0x000a,
+       0x16fc: 0x000a, 0x16fd: 0x000a, 0x16fe: 0x000a,
+       // Block 0x5c, offset 0x1700
+       0x1700: 0x000a, 0x1701: 0x000a, 0x1702: 0x000a, 0x1703: 0x000a, 0x1704: 0x000a, 0x1705: 0x000a,
+       0x1706: 0x000a, 0x1707: 0x000a, 0x1708: 0x000a, 0x1709: 0x000a, 0x170a: 0x000a, 0x170b: 0x000a,
+       0x170c: 0x000a, 0x170d: 0x000a, 0x170e: 0x000a, 0x170f: 0x000a, 0x1710: 0x000a, 0x1711: 0x000a,
+       0x1712: 0x000a, 0x1713: 0x000a, 0x1714: 0x000a, 0x1715: 0x000a, 0x1716: 0x000a, 0x1717: 0x000a,
+       0x1718: 0x000a, 0x1719: 0x000a, 0x171a: 0x000a, 0x171b: 0x000a, 0x171c: 0x000a, 0x171d: 0x000a,
+       0x171e: 0x000a, 0x171f: 0x000a, 0x1720: 0x000a, 0x1721: 0x000a, 0x1722: 0x000a, 0x1723: 0x000a,
+       0x1724: 0x000a, 0x1725: 0x000a, 0x1726: 0x000a,
+       // Block 0x5d, offset 0x1740
+       0x1740: 0x000a, 0x1741: 0x000a, 0x1742: 0x000a, 0x1743: 0x000a, 0x1744: 0x000a, 0x1745: 0x000a,
+       0x1746: 0x000a, 0x1747: 0x000a, 0x1748: 0x000a, 0x1749: 0x000a, 0x174a: 0x000a,
+       0x1760: 0x000a, 0x1761: 0x000a, 0x1762: 0x000a, 0x1763: 0x000a,
+       0x1764: 0x000a, 0x1765: 0x000a, 0x1766: 0x000a, 0x1767: 0x000a, 0x1768: 0x000a, 0x1769: 0x000a,
+       0x176a: 0x000a, 0x176b: 0x000a, 0x176c: 0x000a, 0x176d: 0x000a, 0x176e: 0x000a, 0x176f: 0x000a,
+       0x1770: 0x000a, 0x1771: 0x000a, 0x1772: 0x000a, 0x1773: 0x000a, 0x1774: 0x000a, 0x1775: 0x000a,
+       0x1776: 0x000a, 0x1777: 0x000a, 0x1778: 0x000a, 0x1779: 0x000a, 0x177a: 0x000a, 0x177b: 0x000a,
+       0x177c: 0x000a, 0x177d: 0x000a, 0x177e: 0x000a, 0x177f: 0x000a,
+       // Block 0x5e, offset 0x1780
+       0x1780: 0x000a, 0x1781: 0x000a, 0x1782: 0x000a, 0x1783: 0x000a, 0x1784: 0x000a, 0x1785: 0x000a,
+       0x1786: 0x000a, 0x1787: 0x000a, 0x1788: 0x0002, 0x1789: 0x0002, 0x178a: 0x0002, 0x178b: 0x0002,
+       0x178c: 0x0002, 0x178d: 0x0002, 0x178e: 0x0002, 0x178f: 0x0002, 0x1790: 0x0002, 0x1791: 0x0002,
+       0x1792: 0x0002, 0x1793: 0x0002, 0x1794: 0x0002, 0x1795: 0x0002, 0x1796: 0x0002, 0x1797: 0x0002,
+       0x1798: 0x0002, 0x1799: 0x0002, 0x179a: 0x0002, 0x179b: 0x0002,
+       // Block 0x5f, offset 0x17c0
+       0x17ea: 0x000a, 0x17eb: 0x000a, 0x17ec: 0x000a, 0x17ed: 0x000a, 0x17ee: 0x000a, 0x17ef: 0x000a,
+       0x17f0: 0x000a, 0x17f1: 0x000a, 0x17f2: 0x000a, 0x17f3: 0x000a, 0x17f4: 0x000a, 0x17f5: 0x000a,
+       0x17f6: 0x000a, 0x17f7: 0x000a, 0x17f8: 0x000a, 0x17f9: 0x000a, 0x17fa: 0x000a, 0x17fb: 0x000a,
+       0x17fc: 0x000a, 0x17fd: 0x000a, 0x17fe: 0x000a, 0x17ff: 0x000a,
+       // Block 0x60, offset 0x1800
+       0x1800: 0x000a, 0x1801: 0x000a, 0x1802: 0x000a, 0x1803: 0x000a, 0x1804: 0x000a, 0x1805: 0x000a,
+       0x1806: 0x000a, 0x1807: 0x000a, 0x1808: 0x000a, 0x1809: 0x000a, 0x180a: 0x000a, 0x180b: 0x000a,
+       0x180c: 0x000a, 0x180d: 0x000a, 0x180e: 0x000a, 0x180f: 0x000a, 0x1810: 0x000a, 0x1811: 0x000a,
+       0x1812: 0x000a, 0x1813: 0x000a, 0x1814: 0x000a, 0x1815: 0x000a, 0x1816: 0x000a, 0x1817: 0x000a,
+       0x1818: 0x000a, 0x1819: 0x000a, 0x181a: 0x000a, 0x181b: 0x000a, 0x181c: 0x000a, 0x181d: 0x000a,
+       0x181e: 0x000a, 0x181f: 0x000a, 0x1820: 0x000a, 0x1821: 0x000a, 0x1822: 0x000a, 0x1823: 0x000a,
+       0x1824: 0x000a, 0x1825: 0x000a, 0x1826: 0x000a, 0x1827: 0x000a, 0x1828: 0x000a, 0x1829: 0x000a,
+       0x182a: 0x000a, 0x182b: 0x000a, 0x182d: 0x000a, 0x182e: 0x000a, 0x182f: 0x000a,
+       0x1830: 0x000a, 0x1831: 0x000a, 0x1832: 0x000a, 0x1833: 0x000a, 0x1834: 0x000a, 0x1835: 0x000a,
+       0x1836: 0x000a, 0x1837: 0x000a, 0x1838: 0x000a, 0x1839: 0x000a, 0x183a: 0x000a, 0x183b: 0x000a,
+       0x183c: 0x000a, 0x183d: 0x000a, 0x183e: 0x000a, 0x183f: 0x000a,
+       // Block 0x61, offset 0x1840
+       0x1840: 0x000a, 0x1841: 0x000a, 0x1842: 0x000a, 0x1843: 0x000a, 0x1844: 0x000a, 0x1845: 0x000a,
+       0x1846: 0x000a, 0x1847: 0x000a, 0x1848: 0x000a, 0x1849: 0x000a, 0x184a: 0x000a, 0x184b: 0x000a,
+       0x184c: 0x000a, 0x184d: 0x000a, 0x184e: 0x000a, 0x184f: 0x000a, 0x1850: 0x000a, 0x1851: 0x000a,
+       0x1852: 0x000a, 0x1853: 0x000a, 0x1854: 0x000a, 0x1855: 0x000a, 0x1856: 0x000a, 0x1857: 0x000a,
+       0x1858: 0x000a, 0x1859: 0x000a, 0x185a: 0x000a, 0x185b: 0x000a, 0x185c: 0x000a, 0x185d: 0x000a,
+       0x185e: 0x000a, 0x185f: 0x000a, 0x1860: 0x000a, 0x1861: 0x000a, 0x1862: 0x000a, 0x1863: 0x000a,
+       0x1864: 0x000a, 0x1865: 0x000a, 0x1866: 0x000a, 0x1867: 0x000a, 0x1868: 0x003a, 0x1869: 0x002a,
+       0x186a: 0x003a, 0x186b: 0x002a, 0x186c: 0x003a, 0x186d: 0x002a, 0x186e: 0x003a, 0x186f: 0x002a,
+       0x1870: 0x003a, 0x1871: 0x002a, 0x1872: 0x003a, 0x1873: 0x002a, 0x1874: 0x003a, 0x1875: 0x002a,
+       0x1876: 0x000a, 0x1877: 0x000a, 0x1878: 0x000a, 0x1879: 0x000a, 0x187a: 0x000a, 0x187b: 0x000a,
+       0x187c: 0x000a, 0x187d: 0x000a, 0x187e: 0x000a, 0x187f: 0x000a,
+       // Block 0x62, offset 0x1880
+       0x1880: 0x000a, 0x1881: 0x000a, 0x1882: 0x000a, 0x1883: 0x000a, 0x1884: 0x000a, 0x1885: 0x009a,
+       0x1886: 0x008a, 0x1887: 0x000a, 0x1888: 0x000a, 0x1889: 0x000a, 0x188a: 0x000a, 0x188b: 0x000a,
+       0x188c: 0x000a, 0x188d: 0x000a, 0x188e: 0x000a, 0x188f: 0x000a, 0x1890: 0x000a, 0x1891: 0x000a,
+       0x1892: 0x000a, 0x1893: 0x000a, 0x1894: 0x000a, 0x1895: 0x000a, 0x1896: 0x000a, 0x1897: 0x000a,
+       0x1898: 0x000a, 0x1899: 0x000a, 0x189a: 0x000a, 0x189b: 0x000a, 0x189c: 0x000a, 0x189d: 0x000a,
+       0x189e: 0x000a, 0x189f: 0x000a, 0x18a0: 0x000a, 0x18a1: 0x000a, 0x18a2: 0x000a, 0x18a3: 0x000a,
+       0x18a4: 0x000a, 0x18a5: 0x000a, 0x18a6: 0x003a, 0x18a7: 0x002a, 0x18a8: 0x003a, 0x18a9: 0x002a,
+       0x18aa: 0x003a, 0x18ab: 0x002a, 0x18ac: 0x003a, 0x18ad: 0x002a, 0x18ae: 0x003a, 0x18af: 0x002a,
+       0x18b0: 0x000a, 0x18b1: 0x000a, 0x18b2: 0x000a, 0x18b3: 0x000a, 0x18b4: 0x000a, 0x18b5: 0x000a,
+       0x18b6: 0x000a, 0x18b7: 0x000a, 0x18b8: 0x000a, 0x18b9: 0x000a, 0x18ba: 0x000a, 0x18bb: 0x000a,
+       0x18bc: 0x000a, 0x18bd: 0x000a, 0x18be: 0x000a, 0x18bf: 0x000a,
+       // Block 0x63, offset 0x18c0
+       0x18c0: 0x000a, 0x18c1: 0x000a, 0x18c2: 0x000a, 0x18c3: 0x007a, 0x18c4: 0x006a, 0x18c5: 0x009a,
+       0x18c6: 0x008a, 0x18c7: 0x00ba, 0x18c8: 0x00aa, 0x18c9: 0x009a, 0x18ca: 0x008a, 0x18cb: 0x007a,
+       0x18cc: 0x006a, 0x18cd: 0x00da, 0x18ce: 0x002a, 0x18cf: 0x003a, 0x18d0: 0x00ca, 0x18d1: 0x009a,
+       0x18d2: 0x008a, 0x18d3: 0x007a, 0x18d4: 0x006a, 0x18d5: 0x009a, 0x18d6: 0x008a, 0x18d7: 0x00ba,
+       0x18d8: 0x00aa, 0x18d9: 0x000a, 0x18da: 0x000a, 0x18db: 0x000a, 0x18dc: 0x000a, 0x18dd: 0x000a,
+       0x18de: 0x000a, 0x18df: 0x000a, 0x18e0: 0x000a, 0x18e1: 0x000a, 0x18e2: 0x000a, 0x18e3: 0x000a,
+       0x18e4: 0x000a, 0x18e5: 0x000a, 0x18e6: 0x000a, 0x18e7: 0x000a, 0x18e8: 0x000a, 0x18e9: 0x000a,
+       0x18ea: 0x000a, 0x18eb: 0x000a, 0x18ec: 0x000a, 0x18ed: 0x000a, 0x18ee: 0x000a, 0x18ef: 0x000a,
+       0x18f0: 0x000a, 0x18f1: 0x000a, 0x18f2: 0x000a, 0x18f3: 0x000a, 0x18f4: 0x000a, 0x18f5: 0x000a,
+       0x18f6: 0x000a, 0x18f7: 0x000a, 0x18f8: 0x000a, 0x18f9: 0x000a, 0x18fa: 0x000a, 0x18fb: 0x000a,
+       0x18fc: 0x000a, 0x18fd: 0x000a, 0x18fe: 0x000a, 0x18ff: 0x000a,
+       // Block 0x64, offset 0x1900
+       0x1900: 0x000a, 0x1901: 0x000a, 0x1902: 0x000a, 0x1903: 0x000a, 0x1904: 0x000a, 0x1905: 0x000a,
+       0x1906: 0x000a, 0x1907: 0x000a, 0x1908: 0x000a, 0x1909: 0x000a, 0x190a: 0x000a, 0x190b: 0x000a,
+       0x190c: 0x000a, 0x190d: 0x000a, 0x190e: 0x000a, 0x190f: 0x000a, 0x1910: 0x000a, 0x1911: 0x000a,
+       0x1912: 0x000a, 0x1913: 0x000a, 0x1914: 0x000a, 0x1915: 0x000a, 0x1916: 0x000a, 0x1917: 0x000a,
+       0x1918: 0x003a, 0x1919: 0x002a, 0x191a: 0x003a, 0x191b: 0x002a, 0x191c: 0x000a, 0x191d: 0x000a,
+       0x191e: 0x000a, 0x191f: 0x000a, 0x1920: 0x000a, 0x1921: 0x000a, 0x1922: 0x000a, 0x1923: 0x000a,
+       0x1924: 0x000a, 0x1925: 0x000a, 0x1926: 0x000a, 0x1927: 0x000a, 0x1928: 0x000a, 0x1929: 0x000a,
+       0x192a: 0x000a, 0x192b: 0x000a, 0x192c: 0x000a, 0x192d: 0x000a, 0x192e: 0x000a, 0x192f: 0x000a,
+       0x1930: 0x000a, 0x1931: 0x000a, 0x1932: 0x000a, 0x1933: 0x000a, 0x1934: 0x000a, 0x1935: 0x000a,
+       0x1936: 0x000a, 0x1937: 0x000a, 0x1938: 0x000a, 0x1939: 0x000a, 0x193a: 0x000a, 0x193b: 0x000a,
+       0x193c: 0x003a, 0x193d: 0x002a, 0x193e: 0x000a, 0x193f: 0x000a,
+       // Block 0x65, offset 0x1940
+       0x1940: 0x000a, 0x1941: 0x000a, 0x1942: 0x000a, 0x1943: 0x000a, 0x1944: 0x000a, 0x1945: 0x000a,
+       0x1946: 0x000a, 0x1947: 0x000a, 0x1948: 0x000a, 0x1949: 0x000a, 0x194a: 0x000a, 0x194b: 0x000a,
+       0x194c: 0x000a, 0x194d: 0x000a, 0x194e: 0x000a, 0x194f: 0x000a, 0x1950: 0x000a, 0x1951: 0x000a,
+       0x1952: 0x000a, 0x1953: 0x000a, 0x1954: 0x000a, 0x1955: 0x000a, 0x1956: 0x000a, 0x1957: 0x000a,
+       0x1958: 0x000a, 0x1959: 0x000a, 0x195a: 0x000a, 0x195b: 0x000a, 0x195c: 0x000a, 0x195d: 0x000a,
+       0x195e: 0x000a, 0x195f: 0x000a, 0x1960: 0x000a, 0x1961: 0x000a, 0x1962: 0x000a, 0x1963: 0x000a,
+       0x1964: 0x000a, 0x1965: 0x000a, 0x1966: 0x000a, 0x1967: 0x000a, 0x1968: 0x000a, 0x1969: 0x000a,
+       0x196a: 0x000a, 0x196b: 0x000a, 0x196c: 0x000a, 0x196d: 0x000a, 0x196e: 0x000a, 0x196f: 0x000a,
+       0x1970: 0x000a, 0x1971: 0x000a, 0x1972: 0x000a, 0x1973: 0x000a,
+       0x1976: 0x000a, 0x1977: 0x000a, 0x1978: 0x000a, 0x1979: 0x000a, 0x197a: 0x000a, 0x197b: 0x000a,
+       0x197c: 0x000a, 0x197d: 0x000a, 0x197e: 0x000a, 0x197f: 0x000a,
+       // Block 0x66, offset 0x1980
+       0x1980: 0x000a, 0x1981: 0x000a, 0x1982: 0x000a, 0x1983: 0x000a, 0x1984: 0x000a, 0x1985: 0x000a,
+       0x1986: 0x000a, 0x1987: 0x000a, 0x1988: 0x000a, 0x1989: 0x000a, 0x198a: 0x000a, 0x198b: 0x000a,
+       0x198c: 0x000a, 0x198d: 0x000a, 0x198e: 0x000a, 0x198f: 0x000a, 0x1990: 0x000a, 0x1991: 0x000a,
+       0x1992: 0x000a, 0x1993: 0x000a, 0x1994: 0x000a, 0x1995: 0x000a,
+       0x1998: 0x000a, 0x1999: 0x000a, 0x199a: 0x000a, 0x199b: 0x000a, 0x199c: 0x000a, 0x199d: 0x000a,
+       0x199e: 0x000a, 0x199f: 0x000a, 0x19a0: 0x000a, 0x19a1: 0x000a, 0x19a2: 0x000a, 0x19a3: 0x000a,
+       0x19a4: 0x000a, 0x19a5: 0x000a, 0x19a6: 0x000a, 0x19a7: 0x000a, 0x19a8: 0x000a, 0x19a9: 0x000a,
+       0x19aa: 0x000a, 0x19ab: 0x000a, 0x19ac: 0x000a, 0x19ad: 0x000a, 0x19ae: 0x000a, 0x19af: 0x000a,
+       0x19b0: 0x000a, 0x19b1: 0x000a, 0x19b2: 0x000a, 0x19b3: 0x000a, 0x19b4: 0x000a, 0x19b5: 0x000a,
+       0x19b6: 0x000a, 0x19b7: 0x000a, 0x19b8: 0x000a, 0x19b9: 0x000a,
+       0x19bd: 0x000a, 0x19be: 0x000a, 0x19bf: 0x000a,
+       // Block 0x67, offset 0x19c0
+       0x19c0: 0x000a, 0x19c1: 0x000a, 0x19c2: 0x000a, 0x19c3: 0x000a, 0x19c4: 0x000a, 0x19c5: 0x000a,
+       0x19c6: 0x000a, 0x19c7: 0x000a, 0x19c8: 0x000a, 0x19ca: 0x000a, 0x19cb: 0x000a,
+       0x19cc: 0x000a, 0x19cd: 0x000a, 0x19ce: 0x000a, 0x19cf: 0x000a, 0x19d0: 0x000a, 0x19d1: 0x000a,
+       0x19ec: 0x000a, 0x19ed: 0x000a, 0x19ee: 0x000a, 0x19ef: 0x000a,
+       // Block 0x68, offset 0x1a00
+       0x1a25: 0x000a, 0x1a26: 0x000a, 0x1a27: 0x000a, 0x1a28: 0x000a, 0x1a29: 0x000a,
+       0x1a2a: 0x000a, 0x1a2f: 0x000c,
+       0x1a30: 0x000c, 0x1a31: 0x000c,
+       0x1a39: 0x000a, 0x1a3a: 0x000a, 0x1a3b: 0x000a,
+       0x1a3c: 0x000a, 0x1a3d: 0x000a, 0x1a3e: 0x000a, 0x1a3f: 0x000a,
+       // Block 0x69, offset 0x1a40
+       0x1a7f: 0x000c,
+       // Block 0x6a, offset 0x1a80
+       0x1aa0: 0x000c, 0x1aa1: 0x000c, 0x1aa2: 0x000c, 0x1aa3: 0x000c,
+       0x1aa4: 0x000c, 0x1aa5: 0x000c, 0x1aa6: 0x000c, 0x1aa7: 0x000c, 0x1aa8: 0x000c, 0x1aa9: 0x000c,
+       0x1aaa: 0x000c, 0x1aab: 0x000c, 0x1aac: 0x000c, 0x1aad: 0x000c, 0x1aae: 0x000c, 0x1aaf: 0x000c,
+       0x1ab0: 0x000c, 0x1ab1: 0x000c, 0x1ab2: 0x000c, 0x1ab3: 0x000c, 0x1ab4: 0x000c, 0x1ab5: 0x000c,
+       0x1ab6: 0x000c, 0x1ab7: 0x000c, 0x1ab8: 0x000c, 0x1ab9: 0x000c, 0x1aba: 0x000c, 0x1abb: 0x000c,
+       0x1abc: 0x000c, 0x1abd: 0x000c, 0x1abe: 0x000c, 0x1abf: 0x000c,
+       // Block 0x6b, offset 0x1ac0
+       0x1ac0: 0x000a, 0x1ac1: 0x000a, 0x1ac2: 0x000a, 0x1ac3: 0x000a, 0x1ac4: 0x000a, 0x1ac5: 0x000a,
+       0x1ac6: 0x000a, 0x1ac7: 0x000a, 0x1ac8: 0x000a, 0x1ac9: 0x000a, 0x1aca: 0x000a, 0x1acb: 0x000a,
+       0x1acc: 0x000a, 0x1acd: 0x000a, 0x1ace: 0x000a, 0x1acf: 0x000a, 0x1ad0: 0x000a, 0x1ad1: 0x000a,
+       0x1ad2: 0x000a, 0x1ad3: 0x000a, 0x1ad4: 0x000a, 0x1ad5: 0x000a, 0x1ad6: 0x000a, 0x1ad7: 0x000a,
+       0x1ad8: 0x000a, 0x1ad9: 0x000a, 0x1ada: 0x000a, 0x1adb: 0x000a, 0x1adc: 0x000a, 0x1add: 0x000a,
+       0x1ade: 0x000a, 0x1adf: 0x000a, 0x1ae0: 0x000a, 0x1ae1: 0x000a, 0x1ae2: 0x003a, 0x1ae3: 0x002a,
+       0x1ae4: 0x003a, 0x1ae5: 0x002a, 0x1ae6: 0x003a, 0x1ae7: 0x002a, 0x1ae8: 0x003a, 0x1ae9: 0x002a,
+       0x1aea: 0x000a, 0x1aeb: 0x000a, 0x1aec: 0x000a, 0x1aed: 0x000a, 0x1aee: 0x000a, 0x1aef: 0x000a,
+       0x1af0: 0x000a, 0x1af1: 0x000a, 0x1af2: 0x000a, 0x1af3: 0x000a, 0x1af4: 0x000a, 0x1af5: 0x000a,
+       0x1af6: 0x000a, 0x1af7: 0x000a, 0x1af8: 0x000a, 0x1af9: 0x000a, 0x1afa: 0x000a, 0x1afb: 0x000a,
+       0x1afc: 0x000a, 0x1afd: 0x000a, 0x1afe: 0x000a, 0x1aff: 0x000a,
+       // Block 0x6c, offset 0x1b00
+       0x1b00: 0x000a, 0x1b01: 0x000a, 0x1b02: 0x000a, 0x1b03: 0x000a, 0x1b04: 0x000a,
+       // Block 0x6d, offset 0x1b40
+       0x1b40: 0x000a, 0x1b41: 0x000a, 0x1b42: 0x000a, 0x1b43: 0x000a, 0x1b44: 0x000a, 0x1b45: 0x000a,
+       0x1b46: 0x000a, 0x1b47: 0x000a, 0x1b48: 0x000a, 0x1b49: 0x000a, 0x1b4a: 0x000a, 0x1b4b: 0x000a,
+       0x1b4c: 0x000a, 0x1b4d: 0x000a, 0x1b4e: 0x000a, 0x1b4f: 0x000a, 0x1b50: 0x000a, 0x1b51: 0x000a,
+       0x1b52: 0x000a, 0x1b53: 0x000a, 0x1b54: 0x000a, 0x1b55: 0x000a, 0x1b56: 0x000a, 0x1b57: 0x000a,
+       0x1b58: 0x000a, 0x1b59: 0x000a, 0x1b5b: 0x000a, 0x1b5c: 0x000a, 0x1b5d: 0x000a,
+       0x1b5e: 0x000a, 0x1b5f: 0x000a, 0x1b60: 0x000a, 0x1b61: 0x000a, 0x1b62: 0x000a, 0x1b63: 0x000a,
+       0x1b64: 0x000a, 0x1b65: 0x000a, 0x1b66: 0x000a, 0x1b67: 0x000a, 0x1b68: 0x000a, 0x1b69: 0x000a,
+       0x1b6a: 0x000a, 0x1b6b: 0x000a, 0x1b6c: 0x000a, 0x1b6d: 0x000a, 0x1b6e: 0x000a, 0x1b6f: 0x000a,
+       0x1b70: 0x000a, 0x1b71: 0x000a, 0x1b72: 0x000a, 0x1b73: 0x000a, 0x1b74: 0x000a, 0x1b75: 0x000a,
+       0x1b76: 0x000a, 0x1b77: 0x000a, 0x1b78: 0x000a, 0x1b79: 0x000a, 0x1b7a: 0x000a, 0x1b7b: 0x000a,
+       0x1b7c: 0x000a, 0x1b7d: 0x000a, 0x1b7e: 0x000a, 0x1b7f: 0x000a,
+       // Block 0x6e, offset 0x1b80
+       0x1b80: 0x000a, 0x1b81: 0x000a, 0x1b82: 0x000a, 0x1b83: 0x000a, 0x1b84: 0x000a, 0x1b85: 0x000a,
+       0x1b86: 0x000a, 0x1b87: 0x000a, 0x1b88: 0x000a, 0x1b89: 0x000a, 0x1b8a: 0x000a, 0x1b8b: 0x000a,
+       0x1b8c: 0x000a, 0x1b8d: 0x000a, 0x1b8e: 0x000a, 0x1b8f: 0x000a, 0x1b90: 0x000a, 0x1b91: 0x000a,
+       0x1b92: 0x000a, 0x1b93: 0x000a, 0x1b94: 0x000a, 0x1b95: 0x000a, 0x1b96: 0x000a, 0x1b97: 0x000a,
+       0x1b98: 0x000a, 0x1b99: 0x000a, 0x1b9a: 0x000a, 0x1b9b: 0x000a, 0x1b9c: 0x000a, 0x1b9d: 0x000a,
+       0x1b9e: 0x000a, 0x1b9f: 0x000a, 0x1ba0: 0x000a, 0x1ba1: 0x000a, 0x1ba2: 0x000a, 0x1ba3: 0x000a,
+       0x1ba4: 0x000a, 0x1ba5: 0x000a, 0x1ba6: 0x000a, 0x1ba7: 0x000a, 0x1ba8: 0x000a, 0x1ba9: 0x000a,
+       0x1baa: 0x000a, 0x1bab: 0x000a, 0x1bac: 0x000a, 0x1bad: 0x000a, 0x1bae: 0x000a, 0x1baf: 0x000a,
+       0x1bb0: 0x000a, 0x1bb1: 0x000a, 0x1bb2: 0x000a, 0x1bb3: 0x000a,
+       // Block 0x6f, offset 0x1bc0
+       0x1bc0: 0x000a, 0x1bc1: 0x000a, 0x1bc2: 0x000a, 0x1bc3: 0x000a, 0x1bc4: 0x000a, 0x1bc5: 0x000a,
+       0x1bc6: 0x000a, 0x1bc7: 0x000a, 0x1bc8: 0x000a, 0x1bc9: 0x000a, 0x1bca: 0x000a, 0x1bcb: 0x000a,
+       0x1bcc: 0x000a, 0x1bcd: 0x000a, 0x1bce: 0x000a, 0x1bcf: 0x000a, 0x1bd0: 0x000a, 0x1bd1: 0x000a,
+       0x1bd2: 0x000a, 0x1bd3: 0x000a, 0x1bd4: 0x000a, 0x1bd5: 0x000a,
+       0x1bf0: 0x000a, 0x1bf1: 0x000a, 0x1bf2: 0x000a, 0x1bf3: 0x000a, 0x1bf4: 0x000a, 0x1bf5: 0x000a,
+       0x1bf6: 0x000a, 0x1bf7: 0x000a, 0x1bf8: 0x000a, 0x1bf9: 0x000a, 0x1bfa: 0x000a, 0x1bfb: 0x000a,
+       // Block 0x70, offset 0x1c00
+       0x1c00: 0x0009, 0x1c01: 0x000a, 0x1c02: 0x000a, 0x1c03: 0x000a, 0x1c04: 0x000a,
+       0x1c08: 0x003a, 0x1c09: 0x002a, 0x1c0a: 0x003a, 0x1c0b: 0x002a,
+       0x1c0c: 0x003a, 0x1c0d: 0x002a, 0x1c0e: 0x003a, 0x1c0f: 0x002a, 0x1c10: 0x003a, 0x1c11: 0x002a,
+       0x1c12: 0x000a, 0x1c13: 0x000a, 0x1c14: 0x003a, 0x1c15: 0x002a, 0x1c16: 0x003a, 0x1c17: 0x002a,
+       0x1c18: 0x003a, 0x1c19: 0x002a, 0x1c1a: 0x003a, 0x1c1b: 0x002a, 0x1c1c: 0x000a, 0x1c1d: 0x000a,
+       0x1c1e: 0x000a, 0x1c1f: 0x000a, 0x1c20: 0x000a,
+       0x1c2a: 0x000c, 0x1c2b: 0x000c, 0x1c2c: 0x000c, 0x1c2d: 0x000c,
+       0x1c30: 0x000a,
+       0x1c36: 0x000a, 0x1c37: 0x000a,
+       0x1c3d: 0x000a, 0x1c3e: 0x000a, 0x1c3f: 0x000a,
+       // Block 0x71, offset 0x1c40
+       0x1c59: 0x000c, 0x1c5a: 0x000c, 0x1c5b: 0x000a, 0x1c5c: 0x000a,
+       0x1c60: 0x000a,
+       // Block 0x72, offset 0x1c80
+       0x1cbb: 0x000a,
+       // Block 0x73, offset 0x1cc0
+       0x1cc0: 0x000a, 0x1cc1: 0x000a, 0x1cc2: 0x000a, 0x1cc3: 0x000a, 0x1cc4: 0x000a, 0x1cc5: 0x000a,
+       0x1cc6: 0x000a, 0x1cc7: 0x000a, 0x1cc8: 0x000a, 0x1cc9: 0x000a, 0x1cca: 0x000a, 0x1ccb: 0x000a,
+       0x1ccc: 0x000a, 0x1ccd: 0x000a, 0x1cce: 0x000a, 0x1ccf: 0x000a, 0x1cd0: 0x000a, 0x1cd1: 0x000a,
+       0x1cd2: 0x000a, 0x1cd3: 0x000a, 0x1cd4: 0x000a, 0x1cd5: 0x000a, 0x1cd6: 0x000a, 0x1cd7: 0x000a,
+       0x1cd8: 0x000a, 0x1cd9: 0x000a, 0x1cda: 0x000a, 0x1cdb: 0x000a, 0x1cdc: 0x000a, 0x1cdd: 0x000a,
+       0x1cde: 0x000a, 0x1cdf: 0x000a, 0x1ce0: 0x000a, 0x1ce1: 0x000a, 0x1ce2: 0x000a, 0x1ce3: 0x000a,
+       // Block 0x74, offset 0x1d00
+       0x1d1d: 0x000a,
+       0x1d1e: 0x000a,
+       // Block 0x75, offset 0x1d40
+       0x1d50: 0x000a, 0x1d51: 0x000a,
+       0x1d52: 0x000a, 0x1d53: 0x000a, 0x1d54: 0x000a, 0x1d55: 0x000a, 0x1d56: 0x000a, 0x1d57: 0x000a,
+       0x1d58: 0x000a, 0x1d59: 0x000a, 0x1d5a: 0x000a, 0x1d5b: 0x000a, 0x1d5c: 0x000a, 0x1d5d: 0x000a,
+       0x1d5e: 0x000a, 0x1d5f: 0x000a,
+       0x1d7c: 0x000a, 0x1d7d: 0x000a, 0x1d7e: 0x000a,
+       // Block 0x76, offset 0x1d80
+       0x1db1: 0x000a, 0x1db2: 0x000a, 0x1db3: 0x000a, 0x1db4: 0x000a, 0x1db5: 0x000a,
+       0x1db6: 0x000a, 0x1db7: 0x000a, 0x1db8: 0x000a, 0x1db9: 0x000a, 0x1dba: 0x000a, 0x1dbb: 0x000a,
+       0x1dbc: 0x000a, 0x1dbd: 0x000a, 0x1dbe: 0x000a, 0x1dbf: 0x000a,
+       // Block 0x77, offset 0x1dc0
+       0x1dcc: 0x000a, 0x1dcd: 0x000a, 0x1dce: 0x000a, 0x1dcf: 0x000a,
+       // Block 0x78, offset 0x1e00
+       0x1e37: 0x000a, 0x1e38: 0x000a, 0x1e39: 0x000a, 0x1e3a: 0x000a,
+       // Block 0x79, offset 0x1e40
+       0x1e5e: 0x000a, 0x1e5f: 0x000a,
+       0x1e7f: 0x000a,
+       // Block 0x7a, offset 0x1e80
+       0x1e90: 0x000a, 0x1e91: 0x000a,
+       0x1e92: 0x000a, 0x1e93: 0x000a, 0x1e94: 0x000a, 0x1e95: 0x000a, 0x1e96: 0x000a, 0x1e97: 0x000a,
+       0x1e98: 0x000a, 0x1e99: 0x000a, 0x1e9a: 0x000a, 0x1e9b: 0x000a, 0x1e9c: 0x000a, 0x1e9d: 0x000a,
+       0x1e9e: 0x000a, 0x1e9f: 0x000a, 0x1ea0: 0x000a, 0x1ea1: 0x000a, 0x1ea2: 0x000a, 0x1ea3: 0x000a,
+       0x1ea4: 0x000a, 0x1ea5: 0x000a, 0x1ea6: 0x000a, 0x1ea7: 0x000a, 0x1ea8: 0x000a, 0x1ea9: 0x000a,
+       0x1eaa: 0x000a, 0x1eab: 0x000a, 0x1eac: 0x000a, 0x1ead: 0x000a, 0x1eae: 0x000a, 0x1eaf: 0x000a,
+       0x1eb0: 0x000a, 0x1eb1: 0x000a, 0x1eb2: 0x000a, 0x1eb3: 0x000a, 0x1eb4: 0x000a, 0x1eb5: 0x000a,
+       0x1eb6: 0x000a, 0x1eb7: 0x000a, 0x1eb8: 0x000a, 0x1eb9: 0x000a, 0x1eba: 0x000a, 0x1ebb: 0x000a,
+       0x1ebc: 0x000a, 0x1ebd: 0x000a, 0x1ebe: 0x000a, 0x1ebf: 0x000a,
+       // Block 0x7b, offset 0x1ec0
+       0x1ec0: 0x000a, 0x1ec1: 0x000a, 0x1ec2: 0x000a, 0x1ec3: 0x000a, 0x1ec4: 0x000a, 0x1ec5: 0x000a,
+       0x1ec6: 0x000a,
+       // Block 0x7c, offset 0x1f00
+       0x1f0d: 0x000a, 0x1f0e: 0x000a, 0x1f0f: 0x000a,
+       // Block 0x7d, offset 0x1f40
+       0x1f6f: 0x000c,
+       0x1f70: 0x000c, 0x1f71: 0x000c, 0x1f72: 0x000c, 0x1f73: 0x000a, 0x1f74: 0x000c, 0x1f75: 0x000c,
+       0x1f76: 0x000c, 0x1f77: 0x000c, 0x1f78: 0x000c, 0x1f79: 0x000c, 0x1f7a: 0x000c, 0x1f7b: 0x000c,
+       0x1f7c: 0x000c, 0x1f7d: 0x000c, 0x1f7e: 0x000a, 0x1f7f: 0x000a,
+       // Block 0x7e, offset 0x1f80
+       0x1f9e: 0x000c, 0x1f9f: 0x000c,
+       // Block 0x7f, offset 0x1fc0
+       0x1ff0: 0x000c, 0x1ff1: 0x000c,
+       // Block 0x80, offset 0x2000
+       0x2000: 0x000a, 0x2001: 0x000a, 0x2002: 0x000a, 0x2003: 0x000a, 0x2004: 0x000a, 0x2005: 0x000a,
+       0x2006: 0x000a, 0x2007: 0x000a, 0x2008: 0x000a, 0x2009: 0x000a, 0x200a: 0x000a, 0x200b: 0x000a,
+       0x200c: 0x000a, 0x200d: 0x000a, 0x200e: 0x000a, 0x200f: 0x000a, 0x2010: 0x000a, 0x2011: 0x000a,
+       0x2012: 0x000a, 0x2013: 0x000a, 0x2014: 0x000a, 0x2015: 0x000a, 0x2016: 0x000a, 0x2017: 0x000a,
+       0x2018: 0x000a, 0x2019: 0x000a, 0x201a: 0x000a, 0x201b: 0x000a, 0x201c: 0x000a, 0x201d: 0x000a,
+       0x201e: 0x000a, 0x201f: 0x000a, 0x2020: 0x000a, 0x2021: 0x000a,
+       // Block 0x81, offset 0x2040
+       0x2048: 0x000a,
+       // Block 0x82, offset 0x2080
+       0x2082: 0x000c,
+       0x2086: 0x000c, 0x208b: 0x000c,
+       0x20a5: 0x000c, 0x20a6: 0x000c, 0x20a8: 0x000a, 0x20a9: 0x000a,
+       0x20aa: 0x000a, 0x20ab: 0x000a,
+       0x20b8: 0x0004, 0x20b9: 0x0004,
+       // Block 0x83, offset 0x20c0
+       0x20f4: 0x000a, 0x20f5: 0x000a,
+       0x20f6: 0x000a, 0x20f7: 0x000a,
+       // Block 0x84, offset 0x2100
+       0x2104: 0x000c, 0x2105: 0x000c,
+       0x2120: 0x000c, 0x2121: 0x000c, 0x2122: 0x000c, 0x2123: 0x000c,
+       0x2124: 0x000c, 0x2125: 0x000c, 0x2126: 0x000c, 0x2127: 0x000c, 0x2128: 0x000c, 0x2129: 0x000c,
+       0x212a: 0x000c, 0x212b: 0x000c, 0x212c: 0x000c, 0x212d: 0x000c, 0x212e: 0x000c, 0x212f: 0x000c,
+       0x2130: 0x000c, 0x2131: 0x000c,
+       // Block 0x85, offset 0x2140
+       0x2166: 0x000c, 0x2167: 0x000c, 0x2168: 0x000c, 0x2169: 0x000c,
+       0x216a: 0x000c, 0x216b: 0x000c, 0x216c: 0x000c, 0x216d: 0x000c,
+       // Block 0x86, offset 0x2180
+       0x2187: 0x000c, 0x2188: 0x000c, 0x2189: 0x000c, 0x218a: 0x000c, 0x218b: 0x000c,
+       0x218c: 0x000c, 0x218d: 0x000c, 0x218e: 0x000c, 0x218f: 0x000c, 0x2190: 0x000c, 0x2191: 0x000c,
+       // Block 0x87, offset 0x21c0
+       0x21c0: 0x000c, 0x21c1: 0x000c, 0x21c2: 0x000c,
+       0x21f3: 0x000c,
+       0x21f6: 0x000c, 0x21f7: 0x000c, 0x21f8: 0x000c, 0x21f9: 0x000c,
+       0x21fc: 0x000c,
+       // Block 0x88, offset 0x2200
+       0x2225: 0x000c,
+       // Block 0x89, offset 0x2240
+       0x2269: 0x000c,
+       0x226a: 0x000c, 0x226b: 0x000c, 0x226c: 0x000c, 0x226d: 0x000c, 0x226e: 0x000c,
+       0x2271: 0x000c, 0x2272: 0x000c, 0x2275: 0x000c,
+       0x2276: 0x000c,
+       // Block 0x8a, offset 0x2280
+       0x2283: 0x000c,
+       0x228c: 0x000c,
+       0x22bc: 0x000c,
+       // Block 0x8b, offset 0x22c0
+       0x22f0: 0x000c, 0x22f2: 0x000c, 0x22f3: 0x000c, 0x22f4: 0x000c,
+       0x22f7: 0x000c, 0x22f8: 0x000c,
+       0x22fe: 0x000c, 0x22ff: 0x000c,
+       // Block 0x8c, offset 0x2300
+       0x2301: 0x000c,
+       0x232c: 0x000c, 0x232d: 0x000c,
+       0x2336: 0x000c,
+       // Block 0x8d, offset 0x2340
+       0x2365: 0x000c, 0x2368: 0x000c,
+       0x236d: 0x000c,
+       // Block 0x8e, offset 0x2380
+       0x239d: 0x0001,
+       0x239e: 0x000c, 0x239f: 0x0001, 0x23a0: 0x0001, 0x23a1: 0x0001, 0x23a2: 0x0001, 0x23a3: 0x0001,
+       0x23a4: 0x0001, 0x23a5: 0x0001, 0x23a6: 0x0001, 0x23a7: 0x0001, 0x23a8: 0x0001, 0x23a9: 0x0003,
+       0x23aa: 0x0001, 0x23ab: 0x0001, 0x23ac: 0x0001, 0x23ad: 0x0001, 0x23ae: 0x0001, 0x23af: 0x0001,
+       0x23b0: 0x0001, 0x23b1: 0x0001, 0x23b2: 0x0001, 0x23b3: 0x0001, 0x23b4: 0x0001, 0x23b5: 0x0001,
+       0x23b6: 0x0001, 0x23b7: 0x0001, 0x23b8: 0x0001, 0x23b9: 0x0001, 0x23ba: 0x0001, 0x23bb: 0x0001,
+       0x23bc: 0x0001, 0x23bd: 0x0001, 0x23be: 0x0001, 0x23bf: 0x0001,
+       // Block 0x8f, offset 0x23c0
+       0x23c0: 0x0001, 0x23c1: 0x0001, 0x23c2: 0x0001, 0x23c3: 0x0001, 0x23c4: 0x0001, 0x23c5: 0x0001,
+       0x23c6: 0x0001, 0x23c7: 0x0001, 0x23c8: 0x0001, 0x23c9: 0x0001, 0x23ca: 0x0001, 0x23cb: 0x0001,
+       0x23cc: 0x0001, 0x23cd: 0x0001, 0x23ce: 0x0001, 0x23cf: 0x0001, 0x23d0: 0x000d, 0x23d1: 0x000d,
+       0x23d2: 0x000d, 0x23d3: 0x000d, 0x23d4: 0x000d, 0x23d5: 0x000d, 0x23d6: 0x000d, 0x23d7: 0x000d,
+       0x23d8: 0x000d, 0x23d9: 0x000d, 0x23da: 0x000d, 0x23db: 0x000d, 0x23dc: 0x000d, 0x23dd: 0x000d,
+       0x23de: 0x000d, 0x23df: 0x000d, 0x23e0: 0x000d, 0x23e1: 0x000d, 0x23e2: 0x000d, 0x23e3: 0x000d,
+       0x23e4: 0x000d, 0x23e5: 0x000d, 0x23e6: 0x000d, 0x23e7: 0x000d, 0x23e8: 0x000d, 0x23e9: 0x000d,
+       0x23ea: 0x000d, 0x23eb: 0x000d, 0x23ec: 0x000d, 0x23ed: 0x000d, 0x23ee: 0x000d, 0x23ef: 0x000d,
+       0x23f0: 0x000d, 0x23f1: 0x000d, 0x23f2: 0x000d, 0x23f3: 0x000d, 0x23f4: 0x000d, 0x23f5: 0x000d,
+       0x23f6: 0x000d, 0x23f7: 0x000d, 0x23f8: 0x000d, 0x23f9: 0x000d, 0x23fa: 0x000d, 0x23fb: 0x000d,
+       0x23fc: 0x000d, 0x23fd: 0x000d, 0x23fe: 0x000d, 0x23ff: 0x000d,
+       // Block 0x90, offset 0x2400
+       0x2400: 0x000d, 0x2401: 0x000d, 0x2402: 0x000d, 0x2403: 0x000d, 0x2404: 0x000d, 0x2405: 0x000d,
+       0x2406: 0x000d, 0x2407: 0x000d, 0x2408: 0x000d, 0x2409: 0x000d, 0x240a: 0x000d, 0x240b: 0x000d,
+       0x240c: 0x000d, 0x240d: 0x000d, 0x240e: 0x000d, 0x240f: 0x000d, 0x2410: 0x000d, 0x2411: 0x000d,
+       0x2412: 0x000d, 0x2413: 0x000d, 0x2414: 0x000d, 0x2415: 0x000d, 0x2416: 0x000d, 0x2417: 0x000d,
+       0x2418: 0x000d, 0x2419: 0x000d, 0x241a: 0x000d, 0x241b: 0x000d, 0x241c: 0x000d, 0x241d: 0x000d,
+       0x241e: 0x000d, 0x241f: 0x000d, 0x2420: 0x000d, 0x2421: 0x000d, 0x2422: 0x000d, 0x2423: 0x000d,
+       0x2424: 0x000d, 0x2425: 0x000d, 0x2426: 0x000d, 0x2427: 0x000d, 0x2428: 0x000d, 0x2429: 0x000d,
+       0x242a: 0x000d, 0x242b: 0x000d, 0x242c: 0x000d, 0x242d: 0x000d, 0x242e: 0x000d, 0x242f: 0x000d,
+       0x2430: 0x000d, 0x2431: 0x000d, 0x2432: 0x000d, 0x2433: 0x000d, 0x2434: 0x000d, 0x2435: 0x000d,
+       0x2436: 0x000d, 0x2437: 0x000d, 0x2438: 0x000d, 0x2439: 0x000d, 0x243a: 0x000d, 0x243b: 0x000d,
+       0x243c: 0x000d, 0x243d: 0x000d, 0x243e: 0x000a, 0x243f: 0x000a,
+       // Block 0x91, offset 0x2440
+       0x2440: 0x000d, 0x2441: 0x000d, 0x2442: 0x000d, 0x2443: 0x000d, 0x2444: 0x000d, 0x2445: 0x000d,
+       0x2446: 0x000d, 0x2447: 0x000d, 0x2448: 0x000d, 0x2449: 0x000d, 0x244a: 0x000d, 0x244b: 0x000d,
+       0x244c: 0x000d, 0x244d: 0x000d, 0x244e: 0x000d, 0x244f: 0x000d, 0x2450: 0x000b, 0x2451: 0x000b,
+       0x2452: 0x000b, 0x2453: 0x000b, 0x2454: 0x000b, 0x2455: 0x000b, 0x2456: 0x000b, 0x2457: 0x000b,
+       0x2458: 0x000b, 0x2459: 0x000b, 0x245a: 0x000b, 0x245b: 0x000b, 0x245c: 0x000b, 0x245d: 0x000b,
+       0x245e: 0x000b, 0x245f: 0x000b, 0x2460: 0x000b, 0x2461: 0x000b, 0x2462: 0x000b, 0x2463: 0x000b,
+       0x2464: 0x000b, 0x2465: 0x000b, 0x2466: 0x000b, 0x2467: 0x000b, 0x2468: 0x000b, 0x2469: 0x000b,
+       0x246a: 0x000b, 0x246b: 0x000b, 0x246c: 0x000b, 0x246d: 0x000b, 0x246e: 0x000b, 0x246f: 0x000b,
+       0x2470: 0x000d, 0x2471: 0x000d, 0x2472: 0x000d, 0x2473: 0x000d, 0x2474: 0x000d, 0x2475: 0x000d,
+       0x2476: 0x000d, 0x2477: 0x000d, 0x2478: 0x000d, 0x2479: 0x000d, 0x247a: 0x000d, 0x247b: 0x000d,
+       0x247c: 0x000d, 0x247d: 0x000a, 0x247e: 0x000d, 0x247f: 0x000d,
+       // Block 0x92, offset 0x2480
+       0x2480: 0x000c, 0x2481: 0x000c, 0x2482: 0x000c, 0x2483: 0x000c, 0x2484: 0x000c, 0x2485: 0x000c,
+       0x2486: 0x000c, 0x2487: 0x000c, 0x2488: 0x000c, 0x2489: 0x000c, 0x248a: 0x000c, 0x248b: 0x000c,
+       0x248c: 0x000c, 0x248d: 0x000c, 0x248e: 0x000c, 0x248f: 0x000c, 0x2490: 0x000a, 0x2491: 0x000a,
+       0x2492: 0x000a, 0x2493: 0x000a, 0x2494: 0x000a, 0x2495: 0x000a, 0x2496: 0x000a, 0x2497: 0x000a,
+       0x2498: 0x000a, 0x2499: 0x000a,
+       0x24a0: 0x000c, 0x24a1: 0x000c, 0x24a2: 0x000c, 0x24a3: 0x000c,
+       0x24a4: 0x000c, 0x24a5: 0x000c, 0x24a6: 0x000c, 0x24a7: 0x000c, 0x24a8: 0x000c, 0x24a9: 0x000c,
+       0x24aa: 0x000c, 0x24ab: 0x000c, 0x24ac: 0x000c, 0x24ad: 0x000c, 0x24ae: 0x000c, 0x24af: 0x000c,
+       0x24b0: 0x000a, 0x24b1: 0x000a, 0x24b2: 0x000a, 0x24b3: 0x000a, 0x24b4: 0x000a, 0x24b5: 0x000a,
+       0x24b6: 0x000a, 0x24b7: 0x000a, 0x24b8: 0x000a, 0x24b9: 0x000a, 0x24ba: 0x000a, 0x24bb: 0x000a,
+       0x24bc: 0x000a, 0x24bd: 0x000a, 0x24be: 0x000a, 0x24bf: 0x000a,
+       // Block 0x93, offset 0x24c0
+       0x24c0: 0x000a, 0x24c1: 0x000a, 0x24c2: 0x000a, 0x24c3: 0x000a, 0x24c4: 0x000a, 0x24c5: 0x000a,
+       0x24c6: 0x000a, 0x24c7: 0x000a, 0x24c8: 0x000a, 0x24c9: 0x000a, 0x24ca: 0x000a, 0x24cb: 0x000a,
+       0x24cc: 0x000a, 0x24cd: 0x000a, 0x24ce: 0x000a, 0x24cf: 0x000a, 0x24d0: 0x0006, 0x24d1: 0x000a,
+       0x24d2: 0x0006, 0x24d4: 0x000a, 0x24d5: 0x0006, 0x24d6: 0x000a, 0x24d7: 0x000a,
+       0x24d8: 0x000a, 0x24d9: 0x009a, 0x24da: 0x008a, 0x24db: 0x007a, 0x24dc: 0x006a, 0x24dd: 0x009a,
+       0x24de: 0x008a, 0x24df: 0x0004, 0x24e0: 0x000a, 0x24e1: 0x000a, 0x24e2: 0x0003, 0x24e3: 0x0003,
+       0x24e4: 0x000a, 0x24e5: 0x000a, 0x24e6: 0x000a, 0x24e8: 0x000a, 0x24e9: 0x0004,
+       0x24ea: 0x0004, 0x24eb: 0x000a,
+       0x24f0: 0x000d, 0x24f1: 0x000d, 0x24f2: 0x000d, 0x24f3: 0x000d, 0x24f4: 0x000d, 0x24f5: 0x000d,
+       0x24f6: 0x000d, 0x24f7: 0x000d, 0x24f8: 0x000d, 0x24f9: 0x000d, 0x24fa: 0x000d, 0x24fb: 0x000d,
+       0x24fc: 0x000d, 0x24fd: 0x000d, 0x24fe: 0x000d, 0x24ff: 0x000d,
+       // Block 0x94, offset 0x2500
+       0x2500: 0x000d, 0x2501: 0x000d, 0x2502: 0x000d, 0x2503: 0x000d, 0x2504: 0x000d, 0x2505: 0x000d,
+       0x2506: 0x000d, 0x2507: 0x000d, 0x2508: 0x000d, 0x2509: 0x000d, 0x250a: 0x000d, 0x250b: 0x000d,
+       0x250c: 0x000d, 0x250d: 0x000d, 0x250e: 0x000d, 0x250f: 0x000d, 0x2510: 0x000d, 0x2511: 0x000d,
+       0x2512: 0x000d, 0x2513: 0x000d, 0x2514: 0x000d, 0x2515: 0x000d, 0x2516: 0x000d, 0x2517: 0x000d,
+       0x2518: 0x000d, 0x2519: 0x000d, 0x251a: 0x000d, 0x251b: 0x000d, 0x251c: 0x000d, 0x251d: 0x000d,
+       0x251e: 0x000d, 0x251f: 0x000d, 0x2520: 0x000d, 0x2521: 0x000d, 0x2522: 0x000d, 0x2523: 0x000d,
+       0x2524: 0x000d, 0x2525: 0x000d, 0x2526: 0x000d, 0x2527: 0x000d, 0x2528: 0x000d, 0x2529: 0x000d,
+       0x252a: 0x000d, 0x252b: 0x000d, 0x252c: 0x000d, 0x252d: 0x000d, 0x252e: 0x000d, 0x252f: 0x000d,
+       0x2530: 0x000d, 0x2531: 0x000d, 0x2532: 0x000d, 0x2533: 0x000d, 0x2534: 0x000d, 0x2535: 0x000d,
+       0x2536: 0x000d, 0x2537: 0x000d, 0x2538: 0x000d, 0x2539: 0x000d, 0x253a: 0x000d, 0x253b: 0x000d,
+       0x253c: 0x000d, 0x253d: 0x000d, 0x253e: 0x000d, 0x253f: 0x000b,
+       // Block 0x95, offset 0x2540
+       0x2541: 0x000a, 0x2542: 0x000a, 0x2543: 0x0004, 0x2544: 0x0004, 0x2545: 0x0004,
+       0x2546: 0x000a, 0x2547: 0x000a, 0x2548: 0x003a, 0x2549: 0x002a, 0x254a: 0x000a, 0x254b: 0x0003,
+       0x254c: 0x0006, 0x254d: 0x0003, 0x254e: 0x0006, 0x254f: 0x0006, 0x2550: 0x0002, 0x2551: 0x0002,
+       0x2552: 0x0002, 0x2553: 0x0002, 0x2554: 0x0002, 0x2555: 0x0002, 0x2556: 0x0002, 0x2557: 0x0002,
+       0x2558: 0x0002, 0x2559: 0x0002, 0x255a: 0x0006, 0x255b: 0x000a, 0x255c: 0x000a, 0x255d: 0x000a,
+       0x255e: 0x000a, 0x255f: 0x000a, 0x2560: 0x000a,
+       0x257b: 0x005a,
+       0x257c: 0x000a, 0x257d: 0x004a, 0x257e: 0x000a, 0x257f: 0x000a,
+       // Block 0x96, offset 0x2580
+       0x2580: 0x000a,
+       0x259b: 0x005a, 0x259c: 0x000a, 0x259d: 0x004a,
+       0x259e: 0x000a, 0x259f: 0x00fa, 0x25a0: 0x00ea, 0x25a1: 0x000a, 0x25a2: 0x003a, 0x25a3: 0x002a,
+       0x25a4: 0x000a, 0x25a5: 0x000a,
+       // Block 0x97, offset 0x25c0
+       0x25e0: 0x0004, 0x25e1: 0x0004, 0x25e2: 0x000a, 0x25e3: 0x000a,
+       0x25e4: 0x000a, 0x25e5: 0x0004, 0x25e6: 0x0004, 0x25e8: 0x000a, 0x25e9: 0x000a,
+       0x25ea: 0x000a, 0x25eb: 0x000a, 0x25ec: 0x000a, 0x25ed: 0x000a, 0x25ee: 0x000a,
+       0x25f0: 0x000b, 0x25f1: 0x000b, 0x25f2: 0x000b, 0x25f3: 0x000b, 0x25f4: 0x000b, 0x25f5: 0x000b,
+       0x25f6: 0x000b, 0x25f7: 0x000b, 0x25f8: 0x000b, 0x25f9: 0x000a, 0x25fa: 0x000a, 0x25fb: 0x000a,
+       0x25fc: 0x000a, 0x25fd: 0x000a, 0x25fe: 0x000b, 0x25ff: 0x000b,
+       // Block 0x98, offset 0x2600
+       0x2601: 0x000a,
+       // Block 0x99, offset 0x2640
+       0x2640: 0x000a, 0x2641: 0x000a, 0x2642: 0x000a, 0x2643: 0x000a, 0x2644: 0x000a, 0x2645: 0x000a,
+       0x2646: 0x000a, 0x2647: 0x000a, 0x2648: 0x000a, 0x2649: 0x000a, 0x264a: 0x000a, 0x264b: 0x000a,
+       0x264c: 0x000a, 0x2650: 0x000a, 0x2651: 0x000a,
+       0x2652: 0x000a, 0x2653: 0x000a, 0x2654: 0x000a, 0x2655: 0x000a, 0x2656: 0x000a, 0x2657: 0x000a,
+       0x2658: 0x000a, 0x2659: 0x000a, 0x265a: 0x000a, 0x265b: 0x000a,
+       0x2660: 0x000a,
+       // Block 0x9a, offset 0x2680
+       0x26bd: 0x000c,
+       // Block 0x9b, offset 0x26c0
+       0x26e0: 0x000c, 0x26e1: 0x0002, 0x26e2: 0x0002, 0x26e3: 0x0002,
+       0x26e4: 0x0002, 0x26e5: 0x0002, 0x26e6: 0x0002, 0x26e7: 0x0002, 0x26e8: 0x0002, 0x26e9: 0x0002,
+       0x26ea: 0x0002, 0x26eb: 0x0002, 0x26ec: 0x0002, 0x26ed: 0x0002, 0x26ee: 0x0002, 0x26ef: 0x0002,
+       0x26f0: 0x0002, 0x26f1: 0x0002, 0x26f2: 0x0002, 0x26f3: 0x0002, 0x26f4: 0x0002, 0x26f5: 0x0002,
+       0x26f6: 0x0002, 0x26f7: 0x0002, 0x26f8: 0x0002, 0x26f9: 0x0002, 0x26fa: 0x0002, 0x26fb: 0x0002,
+       // Block 0x9c, offset 0x2700
+       0x2736: 0x000c, 0x2737: 0x000c, 0x2738: 0x000c, 0x2739: 0x000c, 0x273a: 0x000c,
+       // Block 0x9d, offset 0x2740
+       0x2740: 0x0001, 0x2741: 0x0001, 0x2742: 0x0001, 0x2743: 0x0001, 0x2744: 0x0001, 0x2745: 0x0001,
+       0x2746: 0x0001, 0x2747: 0x0001, 0x2748: 0x0001, 0x2749: 0x0001, 0x274a: 0x0001, 0x274b: 0x0001,
+       0x274c: 0x0001, 0x274d: 0x0001, 0x274e: 0x0001, 0x274f: 0x0001, 0x2750: 0x0001, 0x2751: 0x0001,
+       0x2752: 0x0001, 0x2753: 0x0001, 0x2754: 0x0001, 0x2755: 0x0001, 0x2756: 0x0001, 0x2757: 0x0001,
+       0x2758: 0x0001, 0x2759: 0x0001, 0x275a: 0x0001, 0x275b: 0x0001, 0x275c: 0x0001, 0x275d: 0x0001,
+       0x275e: 0x0001, 0x275f: 0x0001, 0x2760: 0x0001, 0x2761: 0x0001, 0x2762: 0x0001, 0x2763: 0x0001,
+       0x2764: 0x0001, 0x2765: 0x0001, 0x2766: 0x0001, 0x2767: 0x0001, 0x2768: 0x0001, 0x2769: 0x0001,
+       0x276a: 0x0001, 0x276b: 0x0001, 0x276c: 0x0001, 0x276d: 0x0001, 0x276e: 0x0001, 0x276f: 0x0001,
+       0x2770: 0x0001, 0x2771: 0x0001, 0x2772: 0x0001, 0x2773: 0x0001, 0x2774: 0x0001, 0x2775: 0x0001,
+       0x2776: 0x0001, 0x2777: 0x0001, 0x2778: 0x0001, 0x2779: 0x0001, 0x277a: 0x0001, 0x277b: 0x0001,
+       0x277c: 0x0001, 0x277d: 0x0001, 0x277e: 0x0001, 0x277f: 0x0001,
+       // Block 0x9e, offset 0x2780
+       0x2780: 0x0001, 0x2781: 0x0001, 0x2782: 0x0001, 0x2783: 0x0001, 0x2784: 0x0001, 0x2785: 0x0001,
+       0x2786: 0x0001, 0x2787: 0x0001, 0x2788: 0x0001, 0x2789: 0x0001, 0x278a: 0x0001, 0x278b: 0x0001,
+       0x278c: 0x0001, 0x278d: 0x0001, 0x278e: 0x0001, 0x278f: 0x0001, 0x2790: 0x0001, 0x2791: 0x0001,
+       0x2792: 0x0001, 0x2793: 0x0001, 0x2794: 0x0001, 0x2795: 0x0001, 0x2796: 0x0001, 0x2797: 0x0001,
+       0x2798: 0x0001, 0x2799: 0x0001, 0x279a: 0x0001, 0x279b: 0x0001, 0x279c: 0x0001, 0x279d: 0x0001,
+       0x279e: 0x0001, 0x279f: 0x000a, 0x27a0: 0x0001, 0x27a1: 0x0001, 0x27a2: 0x0001, 0x27a3: 0x0001,
+       0x27a4: 0x0001, 0x27a5: 0x0001, 0x27a6: 0x0001, 0x27a7: 0x0001, 0x27a8: 0x0001, 0x27a9: 0x0001,
+       0x27aa: 0x0001, 0x27ab: 0x0001, 0x27ac: 0x0001, 0x27ad: 0x0001, 0x27ae: 0x0001, 0x27af: 0x0001,
+       0x27b0: 0x0001, 0x27b1: 0x0001, 0x27b2: 0x0001, 0x27b3: 0x0001, 0x27b4: 0x0001, 0x27b5: 0x0001,
+       0x27b6: 0x0001, 0x27b7: 0x0001, 0x27b8: 0x0001, 0x27b9: 0x0001, 0x27ba: 0x0001, 0x27bb: 0x0001,
+       0x27bc: 0x0001, 0x27bd: 0x0001, 0x27be: 0x0001, 0x27bf: 0x0001,
+       // Block 0x9f, offset 0x27c0
+       0x27c0: 0x0001, 0x27c1: 0x000c, 0x27c2: 0x000c, 0x27c3: 0x000c, 0x27c4: 0x0001, 0x27c5: 0x000c,
+       0x27c6: 0x000c, 0x27c7: 0x0001, 0x27c8: 0x0001, 0x27c9: 0x0001, 0x27ca: 0x0001, 0x27cb: 0x0001,
+       0x27cc: 0x000c, 0x27cd: 0x000c, 0x27ce: 0x000c, 0x27cf: 0x000c, 0x27d0: 0x0001, 0x27d1: 0x0001,
+       0x27d2: 0x0001, 0x27d3: 0x0001, 0x27d4: 0x0001, 0x27d5: 0x0001, 0x27d6: 0x0001, 0x27d7: 0x0001,
+       0x27d8: 0x0001, 0x27d9: 0x0001, 0x27da: 0x0001, 0x27db: 0x0001, 0x27dc: 0x0001, 0x27dd: 0x0001,
+       0x27de: 0x0001, 0x27df: 0x0001, 0x27e0: 0x0001, 0x27e1: 0x0001, 0x27e2: 0x0001, 0x27e3: 0x0001,
+       0x27e4: 0x0001, 0x27e5: 0x0001, 0x27e6: 0x0001, 0x27e7: 0x0001, 0x27e8: 0x0001, 0x27e9: 0x0001,
+       0x27ea: 0x0001, 0x27eb: 0x0001, 0x27ec: 0x0001, 0x27ed: 0x0001, 0x27ee: 0x0001, 0x27ef: 0x0001,
+       0x27f0: 0x0001, 0x27f1: 0x0001, 0x27f2: 0x0001, 0x27f3: 0x0001, 0x27f4: 0x0001, 0x27f5: 0x0001,
+       0x27f6: 0x0001, 0x27f7: 0x0001, 0x27f8: 0x000c, 0x27f9: 0x000c, 0x27fa: 0x000c, 0x27fb: 0x0001,
+       0x27fc: 0x0001, 0x27fd: 0x0001, 0x27fe: 0x0001, 0x27ff: 0x000c,
+       // Block 0xa0, offset 0x2800
+       0x2800: 0x0001, 0x2801: 0x0001, 0x2802: 0x0001, 0x2803: 0x0001, 0x2804: 0x0001, 0x2805: 0x0001,
+       0x2806: 0x0001, 0x2807: 0x0001, 0x2808: 0x0001, 0x2809: 0x0001, 0x280a: 0x0001, 0x280b: 0x0001,
+       0x280c: 0x0001, 0x280d: 0x0001, 0x280e: 0x0001, 0x280f: 0x0001, 0x2810: 0x0001, 0x2811: 0x0001,
+       0x2812: 0x0001, 0x2813: 0x0001, 0x2814: 0x0001, 0x2815: 0x0001, 0x2816: 0x0001, 0x2817: 0x0001,
+       0x2818: 0x0001, 0x2819: 0x0001, 0x281a: 0x0001, 0x281b: 0x0001, 0x281c: 0x0001, 0x281d: 0x0001,
+       0x281e: 0x0001, 0x281f: 0x0001, 0x2820: 0x0001, 0x2821: 0x0001, 0x2822: 0x0001, 0x2823: 0x0001,
+       0x2824: 0x0001, 0x2825: 0x000c, 0x2826: 0x000c, 0x2827: 0x0001, 0x2828: 0x0001, 0x2829: 0x0001,
+       0x282a: 0x0001, 0x282b: 0x0001, 0x282c: 0x0001, 0x282d: 0x0001, 0x282e: 0x0001, 0x282f: 0x0001,
+       0x2830: 0x0001, 0x2831: 0x0001, 0x2832: 0x0001, 0x2833: 0x0001, 0x2834: 0x0001, 0x2835: 0x0001,
+       0x2836: 0x0001, 0x2837: 0x0001, 0x2838: 0x0001, 0x2839: 0x0001, 0x283a: 0x0001, 0x283b: 0x0001,
+       0x283c: 0x0001, 0x283d: 0x0001, 0x283e: 0x0001, 0x283f: 0x0001,
+       // Block 0xa1, offset 0x2840
+       0x2840: 0x0001, 0x2841: 0x0001, 0x2842: 0x0001, 0x2843: 0x0001, 0x2844: 0x0001, 0x2845: 0x0001,
+       0x2846: 0x0001, 0x2847: 0x0001, 0x2848: 0x0001, 0x2849: 0x0001, 0x284a: 0x0001, 0x284b: 0x0001,
+       0x284c: 0x0001, 0x284d: 0x0001, 0x284e: 0x0001, 0x284f: 0x0001, 0x2850: 0x0001, 0x2851: 0x0001,
+       0x2852: 0x0001, 0x2853: 0x0001, 0x2854: 0x0001, 0x2855: 0x0001, 0x2856: 0x0001, 0x2857: 0x0001,
+       0x2858: 0x0001, 0x2859: 0x0001, 0x285a: 0x0001, 0x285b: 0x0001, 0x285c: 0x0001, 0x285d: 0x0001,
+       0x285e: 0x0001, 0x285f: 0x0001, 0x2860: 0x0001, 0x2861: 0x0001, 0x2862: 0x0001, 0x2863: 0x0001,
+       0x2864: 0x0001, 0x2865: 0x0001, 0x2866: 0x0001, 0x2867: 0x0001, 0x2868: 0x0001, 0x2869: 0x0001,
+       0x286a: 0x0001, 0x286b: 0x0001, 0x286c: 0x0001, 0x286d: 0x0001, 0x286e: 0x0001, 0x286f: 0x0001,
+       0x2870: 0x0001, 0x2871: 0x0001, 0x2872: 0x0001, 0x2873: 0x0001, 0x2874: 0x0001, 0x2875: 0x0001,
+       0x2876: 0x0001, 0x2877: 0x0001, 0x2878: 0x0001, 0x2879: 0x000a, 0x287a: 0x000a, 0x287b: 0x000a,
+       0x287c: 0x000a, 0x287d: 0x000a, 0x287e: 0x000a, 0x287f: 0x000a,
+       // Block 0xa2, offset 0x2880
+       0x2880: 0x0001, 0x2881: 0x0001, 0x2882: 0x0001, 0x2883: 0x0001, 0x2884: 0x0001, 0x2885: 0x0001,
+       0x2886: 0x0001, 0x2887: 0x0001, 0x2888: 0x0001, 0x2889: 0x0001, 0x288a: 0x0001, 0x288b: 0x0001,
+       0x288c: 0x0001, 0x288d: 0x0001, 0x288e: 0x0001, 0x288f: 0x0001, 0x2890: 0x0001, 0x2891: 0x0001,
+       0x2892: 0x0001, 0x2893: 0x0001, 0x2894: 0x0001, 0x2895: 0x0001, 0x2896: 0x0001, 0x2897: 0x0001,
+       0x2898: 0x0001, 0x2899: 0x0001, 0x289a: 0x0001, 0x289b: 0x0001, 0x289c: 0x0001, 0x289d: 0x0001,
+       0x289e: 0x0001, 0x289f: 0x0001, 0x28a0: 0x0005, 0x28a1: 0x0005, 0x28a2: 0x0005, 0x28a3: 0x0005,
+       0x28a4: 0x0005, 0x28a5: 0x0005, 0x28a6: 0x0005, 0x28a7: 0x0005, 0x28a8: 0x0005, 0x28a9: 0x0005,
+       0x28aa: 0x0005, 0x28ab: 0x0005, 0x28ac: 0x0005, 0x28ad: 0x0005, 0x28ae: 0x0005, 0x28af: 0x0005,
+       0x28b0: 0x0005, 0x28b1: 0x0005, 0x28b2: 0x0005, 0x28b3: 0x0005, 0x28b4: 0x0005, 0x28b5: 0x0005,
+       0x28b6: 0x0005, 0x28b7: 0x0005, 0x28b8: 0x0005, 0x28b9: 0x0005, 0x28ba: 0x0005, 0x28bb: 0x0005,
+       0x28bc: 0x0005, 0x28bd: 0x0005, 0x28be: 0x0005, 0x28bf: 0x0001,
+       // Block 0xa3, offset 0x28c0
+       0x28c1: 0x000c,
+       0x28f8: 0x000c, 0x28f9: 0x000c, 0x28fa: 0x000c, 0x28fb: 0x000c,
+       0x28fc: 0x000c, 0x28fd: 0x000c, 0x28fe: 0x000c, 0x28ff: 0x000c,
+       // Block 0xa4, offset 0x2900
+       0x2900: 0x000c, 0x2901: 0x000c, 0x2902: 0x000c, 0x2903: 0x000c, 0x2904: 0x000c, 0x2905: 0x000c,
+       0x2906: 0x000c,
+       0x2912: 0x000a, 0x2913: 0x000a, 0x2914: 0x000a, 0x2915: 0x000a, 0x2916: 0x000a, 0x2917: 0x000a,
+       0x2918: 0x000a, 0x2919: 0x000a, 0x291a: 0x000a, 0x291b: 0x000a, 0x291c: 0x000a, 0x291d: 0x000a,
+       0x291e: 0x000a, 0x291f: 0x000a, 0x2920: 0x000a, 0x2921: 0x000a, 0x2922: 0x000a, 0x2923: 0x000a,
+       0x2924: 0x000a, 0x2925: 0x000a,
+       0x293f: 0x000c,
+       // Block 0xa5, offset 0x2940
+       0x2940: 0x000c, 0x2941: 0x000c,
+       0x2973: 0x000c, 0x2974: 0x000c, 0x2975: 0x000c,
+       0x2976: 0x000c, 0x2979: 0x000c, 0x297a: 0x000c,
+       // Block 0xa6, offset 0x2980
+       0x2980: 0x000c, 0x2981: 0x000c, 0x2982: 0x000c,
+       0x29a7: 0x000c, 0x29a8: 0x000c, 0x29a9: 0x000c,
+       0x29aa: 0x000c, 0x29ab: 0x000c, 0x29ad: 0x000c, 0x29ae: 0x000c, 0x29af: 0x000c,
+       0x29b0: 0x000c, 0x29b1: 0x000c, 0x29b2: 0x000c, 0x29b3: 0x000c, 0x29b4: 0x000c,
+       // Block 0xa7, offset 0x29c0
+       0x29f3: 0x000c,
+       // Block 0xa8, offset 0x2a00
+       0x2a00: 0x000c, 0x2a01: 0x000c,
+       0x2a36: 0x000c, 0x2a37: 0x000c, 0x2a38: 0x000c, 0x2a39: 0x000c, 0x2a3a: 0x000c, 0x2a3b: 0x000c,
+       0x2a3c: 0x000c, 0x2a3d: 0x000c, 0x2a3e: 0x000c,
+       // Block 0xa9, offset 0x2a40
+       0x2a4a: 0x000c, 0x2a4b: 0x000c,
+       0x2a4c: 0x000c,
+       // Block 0xaa, offset 0x2a80
+       0x2aaf: 0x000c,
+       0x2ab0: 0x000c, 0x2ab1: 0x000c, 0x2ab4: 0x000c,
+       0x2ab6: 0x000c, 0x2ab7: 0x000c,
+       0x2abe: 0x000c,
+       // Block 0xab, offset 0x2ac0
+       0x2adf: 0x000c, 0x2ae3: 0x000c,
+       0x2ae4: 0x000c, 0x2ae5: 0x000c, 0x2ae6: 0x000c, 0x2ae7: 0x000c, 0x2ae8: 0x000c, 0x2ae9: 0x000c,
+       0x2aea: 0x000c,
+       // Block 0xac, offset 0x2b00
+       0x2b00: 0x000c, 0x2b01: 0x000c,
+       0x2b3c: 0x000c,
+       // Block 0xad, offset 0x2b40
+       0x2b40: 0x000c,
+       0x2b66: 0x000c, 0x2b67: 0x000c, 0x2b68: 0x000c, 0x2b69: 0x000c,
+       0x2b6a: 0x000c, 0x2b6b: 0x000c, 0x2b6c: 0x000c,
+       0x2b70: 0x000c, 0x2b71: 0x000c, 0x2b72: 0x000c, 0x2b73: 0x000c, 0x2b74: 0x000c,
+       // Block 0xae, offset 0x2b80
+       0x2bb8: 0x000c, 0x2bb9: 0x000c, 0x2bba: 0x000c, 0x2bbb: 0x000c,
+       0x2bbc: 0x000c, 0x2bbd: 0x000c, 0x2bbe: 0x000c, 0x2bbf: 0x000c,
+       // Block 0xaf, offset 0x2bc0
+       0x2bc2: 0x000c, 0x2bc3: 0x000c, 0x2bc4: 0x000c,
+       0x2bc6: 0x000c,
+       // Block 0xb0, offset 0x2c00
+       0x2c33: 0x000c, 0x2c34: 0x000c, 0x2c35: 0x000c,
+       0x2c36: 0x000c, 0x2c37: 0x000c, 0x2c38: 0x000c, 0x2c3a: 0x000c,
+       0x2c3f: 0x000c,
+       // Block 0xb1, offset 0x2c40
+       0x2c40: 0x000c, 0x2c42: 0x000c, 0x2c43: 0x000c,
+       // Block 0xb2, offset 0x2c80
+       0x2cb2: 0x000c, 0x2cb3: 0x000c, 0x2cb4: 0x000c, 0x2cb5: 0x000c,
+       0x2cbc: 0x000c, 0x2cbd: 0x000c, 0x2cbf: 0x000c,
+       // Block 0xb3, offset 0x2cc0
+       0x2cc0: 0x000c,
+       0x2cdc: 0x000c, 0x2cdd: 0x000c,
+       // Block 0xb4, offset 0x2d00
+       0x2d33: 0x000c, 0x2d34: 0x000c, 0x2d35: 0x000c,
+       0x2d36: 0x000c, 0x2d37: 0x000c, 0x2d38: 0x000c, 0x2d39: 0x000c, 0x2d3a: 0x000c,
+       0x2d3d: 0x000c, 0x2d3f: 0x000c,
+       // Block 0xb5, offset 0x2d40
+       0x2d40: 0x000c,
+       0x2d60: 0x000a, 0x2d61: 0x000a, 0x2d62: 0x000a, 0x2d63: 0x000a,
+       0x2d64: 0x000a, 0x2d65: 0x000a, 0x2d66: 0x000a, 0x2d67: 0x000a, 0x2d68: 0x000a, 0x2d69: 0x000a,
+       0x2d6a: 0x000a, 0x2d6b: 0x000a, 0x2d6c: 0x000a,
+       // Block 0xb6, offset 0x2d80
+       0x2dab: 0x000c, 0x2dad: 0x000c,
+       0x2db0: 0x000c, 0x2db1: 0x000c, 0x2db2: 0x000c, 0x2db3: 0x000c, 0x2db4: 0x000c, 0x2db5: 0x000c,
+       0x2db7: 0x000c,
+       // Block 0xb7, offset 0x2dc0
+       0x2ddd: 0x000c,
+       0x2dde: 0x000c, 0x2ddf: 0x000c, 0x2de2: 0x000c, 0x2de3: 0x000c,
+       0x2de4: 0x000c, 0x2de5: 0x000c, 0x2de7: 0x000c, 0x2de8: 0x000c, 0x2de9: 0x000c,
+       0x2dea: 0x000c, 0x2deb: 0x000c,
+       // Block 0xb8, offset 0x2e00
+       0x2e30: 0x000c, 0x2e31: 0x000c, 0x2e32: 0x000c, 0x2e33: 0x000c, 0x2e34: 0x000c, 0x2e35: 0x000c,
+       0x2e36: 0x000c, 0x2e38: 0x000c, 0x2e39: 0x000c, 0x2e3a: 0x000c, 0x2e3b: 0x000c,
+       0x2e3c: 0x000c, 0x2e3d: 0x000c,
+       // Block 0xb9, offset 0x2e40
+       0x2e52: 0x000c, 0x2e53: 0x000c, 0x2e54: 0x000c, 0x2e55: 0x000c, 0x2e56: 0x000c, 0x2e57: 0x000c,
+       0x2e58: 0x000c, 0x2e59: 0x000c, 0x2e5a: 0x000c, 0x2e5b: 0x000c, 0x2e5c: 0x000c, 0x2e5d: 0x000c,
+       0x2e5e: 0x000c, 0x2e5f: 0x000c, 0x2e60: 0x000c, 0x2e61: 0x000c, 0x2e62: 0x000c, 0x2e63: 0x000c,
+       0x2e64: 0x000c, 0x2e65: 0x000c, 0x2e66: 0x000c, 0x2e67: 0x000c,
+       0x2e6a: 0x000c, 0x2e6b: 0x000c, 0x2e6c: 0x000c, 0x2e6d: 0x000c, 0x2e6e: 0x000c, 0x2e6f: 0x000c,
+       0x2e70: 0x000c, 0x2e72: 0x000c, 0x2e73: 0x000c, 0x2e75: 0x000c,
+       0x2e76: 0x000c,
+       // Block 0xba, offset 0x2e80
+       0x2eb0: 0x000c, 0x2eb1: 0x000c, 0x2eb2: 0x000c, 0x2eb3: 0x000c, 0x2eb4: 0x000c,
+       // Block 0xbb, offset 0x2ec0
+       0x2ef0: 0x000c, 0x2ef1: 0x000c, 0x2ef2: 0x000c, 0x2ef3: 0x000c, 0x2ef4: 0x000c, 0x2ef5: 0x000c,
+       0x2ef6: 0x000c,
+       // Block 0xbc, offset 0x2f00
+       0x2f0f: 0x000c, 0x2f10: 0x000c, 0x2f11: 0x000c,
+       0x2f12: 0x000c,
+       // Block 0xbd, offset 0x2f40
+       0x2f5d: 0x000c,
+       0x2f5e: 0x000c, 0x2f60: 0x000b, 0x2f61: 0x000b, 0x2f62: 0x000b, 0x2f63: 0x000b,
+       // Block 0xbe, offset 0x2f80
+       0x2fa7: 0x000c, 0x2fa8: 0x000c, 0x2fa9: 0x000c,
+       0x2fb3: 0x000b, 0x2fb4: 0x000b, 0x2fb5: 0x000b,
+       0x2fb6: 0x000b, 0x2fb7: 0x000b, 0x2fb8: 0x000b, 0x2fb9: 0x000b, 0x2fba: 0x000b, 0x2fbb: 0x000c,
+       0x2fbc: 0x000c, 0x2fbd: 0x000c, 0x2fbe: 0x000c, 0x2fbf: 0x000c,
+       // Block 0xbf, offset 0x2fc0
+       0x2fc0: 0x000c, 0x2fc1: 0x000c, 0x2fc2: 0x000c, 0x2fc5: 0x000c,
+       0x2fc6: 0x000c, 0x2fc7: 0x000c, 0x2fc8: 0x000c, 0x2fc9: 0x000c, 0x2fca: 0x000c, 0x2fcb: 0x000c,
+       0x2fea: 0x000c, 0x2feb: 0x000c, 0x2fec: 0x000c, 0x2fed: 0x000c,
+       // Block 0xc0, offset 0x3000
+       0x3000: 0x000a, 0x3001: 0x000a, 0x3002: 0x000c, 0x3003: 0x000c, 0x3004: 0x000c, 0x3005: 0x000a,
+       // Block 0xc1, offset 0x3040
+       0x3040: 0x000a, 0x3041: 0x000a, 0x3042: 0x000a, 0x3043: 0x000a, 0x3044: 0x000a, 0x3045: 0x000a,
+       0x3046: 0x000a, 0x3047: 0x000a, 0x3048: 0x000a, 0x3049: 0x000a, 0x304a: 0x000a, 0x304b: 0x000a,
+       0x304c: 0x000a, 0x304d: 0x000a, 0x304e: 0x000a, 0x304f: 0x000a, 0x3050: 0x000a, 0x3051: 0x000a,
+       0x3052: 0x000a, 0x3053: 0x000a, 0x3054: 0x000a, 0x3055: 0x000a, 0x3056: 0x000a,
+       // Block 0xc2, offset 0x3080
+       0x309b: 0x000a,
+       // Block 0xc3, offset 0x30c0
+       0x30d5: 0x000a,
+       // Block 0xc4, offset 0x3100
+       0x310f: 0x000a,
+       // Block 0xc5, offset 0x3140
+       0x3149: 0x000a,
+       // Block 0xc6, offset 0x3180
+       0x3183: 0x000a,
+       0x318e: 0x0002, 0x318f: 0x0002, 0x3190: 0x0002, 0x3191: 0x0002,
+       0x3192: 0x0002, 0x3193: 0x0002, 0x3194: 0x0002, 0x3195: 0x0002, 0x3196: 0x0002, 0x3197: 0x0002,
+       0x3198: 0x0002, 0x3199: 0x0002, 0x319a: 0x0002, 0x319b: 0x0002, 0x319c: 0x0002, 0x319d: 0x0002,
+       0x319e: 0x0002, 0x319f: 0x0002, 0x31a0: 0x0002, 0x31a1: 0x0002, 0x31a2: 0x0002, 0x31a3: 0x0002,
+       0x31a4: 0x0002, 0x31a5: 0x0002, 0x31a6: 0x0002, 0x31a7: 0x0002, 0x31a8: 0x0002, 0x31a9: 0x0002,
+       0x31aa: 0x0002, 0x31ab: 0x0002, 0x31ac: 0x0002, 0x31ad: 0x0002, 0x31ae: 0x0002, 0x31af: 0x0002,
+       0x31b0: 0x0002, 0x31b1: 0x0002, 0x31b2: 0x0002, 0x31b3: 0x0002, 0x31b4: 0x0002, 0x31b5: 0x0002,
+       0x31b6: 0x0002, 0x31b7: 0x0002, 0x31b8: 0x0002, 0x31b9: 0x0002, 0x31ba: 0x0002, 0x31bb: 0x0002,
+       0x31bc: 0x0002, 0x31bd: 0x0002, 0x31be: 0x0002, 0x31bf: 0x0002,
+       // Block 0xc7, offset 0x31c0
+       0x31c0: 0x000c, 0x31c1: 0x000c, 0x31c2: 0x000c, 0x31c3: 0x000c, 0x31c4: 0x000c, 0x31c5: 0x000c,
+       0x31c6: 0x000c, 0x31c7: 0x000c, 0x31c8: 0x000c, 0x31c9: 0x000c, 0x31ca: 0x000c, 0x31cb: 0x000c,
+       0x31cc: 0x000c, 0x31cd: 0x000c, 0x31ce: 0x000c, 0x31cf: 0x000c, 0x31d0: 0x000c, 0x31d1: 0x000c,
+       0x31d2: 0x000c, 0x31d3: 0x000c, 0x31d4: 0x000c, 0x31d5: 0x000c, 0x31d6: 0x000c, 0x31d7: 0x000c,
+       0x31d8: 0x000c, 0x31d9: 0x000c, 0x31da: 0x000c, 0x31db: 0x000c, 0x31dc: 0x000c, 0x31dd: 0x000c,
+       0x31de: 0x000c, 0x31df: 0x000c, 0x31e0: 0x000c, 0x31e1: 0x000c, 0x31e2: 0x000c, 0x31e3: 0x000c,
+       0x31e4: 0x000c, 0x31e5: 0x000c, 0x31e6: 0x000c, 0x31e7: 0x000c, 0x31e8: 0x000c, 0x31e9: 0x000c,
+       0x31ea: 0x000c, 0x31eb: 0x000c, 0x31ec: 0x000c, 0x31ed: 0x000c, 0x31ee: 0x000c, 0x31ef: 0x000c,
+       0x31f0: 0x000c, 0x31f1: 0x000c, 0x31f2: 0x000c, 0x31f3: 0x000c, 0x31f4: 0x000c, 0x31f5: 0x000c,
+       0x31f6: 0x000c, 0x31fb: 0x000c,
+       0x31fc: 0x000c, 0x31fd: 0x000c, 0x31fe: 0x000c, 0x31ff: 0x000c,
+       // Block 0xc8, offset 0x3200
+       0x3200: 0x000c, 0x3201: 0x000c, 0x3202: 0x000c, 0x3203: 0x000c, 0x3204: 0x000c, 0x3205: 0x000c,
+       0x3206: 0x000c, 0x3207: 0x000c, 0x3208: 0x000c, 0x3209: 0x000c, 0x320a: 0x000c, 0x320b: 0x000c,
+       0x320c: 0x000c, 0x320d: 0x000c, 0x320e: 0x000c, 0x320f: 0x000c, 0x3210: 0x000c, 0x3211: 0x000c,
+       0x3212: 0x000c, 0x3213: 0x000c, 0x3214: 0x000c, 0x3215: 0x000c, 0x3216: 0x000c, 0x3217: 0x000c,
+       0x3218: 0x000c, 0x3219: 0x000c, 0x321a: 0x000c, 0x321b: 0x000c, 0x321c: 0x000c, 0x321d: 0x000c,
+       0x321e: 0x000c, 0x321f: 0x000c, 0x3220: 0x000c, 0x3221: 0x000c, 0x3222: 0x000c, 0x3223: 0x000c,
+       0x3224: 0x000c, 0x3225: 0x000c, 0x3226: 0x000c, 0x3227: 0x000c, 0x3228: 0x000c, 0x3229: 0x000c,
+       0x322a: 0x000c, 0x322b: 0x000c, 0x322c: 0x000c,
+       0x3235: 0x000c,
+       // Block 0xc9, offset 0x3240
+       0x3244: 0x000c,
+       0x325b: 0x000c, 0x325c: 0x000c, 0x325d: 0x000c,
+       0x325e: 0x000c, 0x325f: 0x000c, 0x3261: 0x000c, 0x3262: 0x000c, 0x3263: 0x000c,
+       0x3264: 0x000c, 0x3265: 0x000c, 0x3266: 0x000c, 0x3267: 0x000c, 0x3268: 0x000c, 0x3269: 0x000c,
+       0x326a: 0x000c, 0x326b: 0x000c, 0x326c: 0x000c, 0x326d: 0x000c, 0x326e: 0x000c, 0x326f: 0x000c,
+       // Block 0xca, offset 0x3280
+       0x3280: 0x000c, 0x3281: 0x000c, 0x3282: 0x000c, 0x3283: 0x000c, 0x3284: 0x000c, 0x3285: 0x000c,
+       0x3286: 0x000c, 0x3288: 0x000c, 0x3289: 0x000c, 0x328a: 0x000c, 0x328b: 0x000c,
+       0x328c: 0x000c, 0x328d: 0x000c, 0x328e: 0x000c, 0x328f: 0x000c, 0x3290: 0x000c, 0x3291: 0x000c,
+       0x3292: 0x000c, 0x3293: 0x000c, 0x3294: 0x000c, 0x3295: 0x000c, 0x3296: 0x000c, 0x3297: 0x000c,
+       0x3298: 0x000c, 0x329b: 0x000c, 0x329c: 0x000c, 0x329d: 0x000c,
+       0x329e: 0x000c, 0x329f: 0x000c, 0x32a0: 0x000c, 0x32a1: 0x000c, 0x32a3: 0x000c,
+       0x32a4: 0x000c, 0x32a6: 0x000c, 0x32a7: 0x000c, 0x32a8: 0x000c, 0x32a9: 0x000c,
+       0x32aa: 0x000c,
+       // Block 0xcb, offset 0x32c0
+       0x32c0: 0x0001, 0x32c1: 0x0001, 0x32c2: 0x0001, 0x32c3: 0x0001, 0x32c4: 0x0001, 0x32c5: 0x0001,
+       0x32c6: 0x0001, 0x32c7: 0x0001, 0x32c8: 0x0001, 0x32c9: 0x0001, 0x32ca: 0x0001, 0x32cb: 0x0001,
+       0x32cc: 0x0001, 0x32cd: 0x0001, 0x32ce: 0x0001, 0x32cf: 0x0001, 0x32d0: 0x000c, 0x32d1: 0x000c,
+       0x32d2: 0x000c, 0x32d3: 0x000c, 0x32d4: 0x000c, 0x32d5: 0x000c, 0x32d6: 0x000c, 0x32d7: 0x0001,
+       0x32d8: 0x0001, 0x32d9: 0x0001, 0x32da: 0x0001, 0x32db: 0x0001, 0x32dc: 0x0001, 0x32dd: 0x0001,
+       0x32de: 0x0001, 0x32df: 0x0001, 0x32e0: 0x0001, 0x32e1: 0x0001, 0x32e2: 0x0001, 0x32e3: 0x0001,
+       0x32e4: 0x0001, 0x32e5: 0x0001, 0x32e6: 0x0001, 0x32e7: 0x0001, 0x32e8: 0x0001, 0x32e9: 0x0001,
+       0x32ea: 0x0001, 0x32eb: 0x0001, 0x32ec: 0x0001, 0x32ed: 0x0001, 0x32ee: 0x0001, 0x32ef: 0x0001,
+       0x32f0: 0x0001, 0x32f1: 0x0001, 0x32f2: 0x0001, 0x32f3: 0x0001, 0x32f4: 0x0001, 0x32f5: 0x0001,
+       0x32f6: 0x0001, 0x32f7: 0x0001, 0x32f8: 0x0001, 0x32f9: 0x0001, 0x32fa: 0x0001, 0x32fb: 0x0001,
+       0x32fc: 0x0001, 0x32fd: 0x0001, 0x32fe: 0x0001, 0x32ff: 0x0001,
+       // Block 0xcc, offset 0x3300
+       0x3300: 0x0001, 0x3301: 0x0001, 0x3302: 0x0001, 0x3303: 0x0001, 0x3304: 0x000c, 0x3305: 0x000c,
+       0x3306: 0x000c, 0x3307: 0x000c, 0x3308: 0x000c, 0x3309: 0x000c, 0x330a: 0x000c, 0x330b: 0x0001,
+       0x330c: 0x0001, 0x330d: 0x0001, 0x330e: 0x0001, 0x330f: 0x0001, 0x3310: 0x0001, 0x3311: 0x0001,
+       0x3312: 0x0001, 0x3313: 0x0001, 0x3314: 0x0001, 0x3315: 0x0001, 0x3316: 0x0001, 0x3317: 0x0001,
+       0x3318: 0x0001, 0x3319: 0x0001, 0x331a: 0x0001, 0x331b: 0x0001, 0x331c: 0x0001, 0x331d: 0x0001,
+       0x331e: 0x0001, 0x331f: 0x0001, 0x3320: 0x0001, 0x3321: 0x0001, 0x3322: 0x0001, 0x3323: 0x0001,
+       0x3324: 0x0001, 0x3325: 0x0001, 0x3326: 0x0001, 0x3327: 0x0001, 0x3328: 0x0001, 0x3329: 0x0001,
+       0x332a: 0x0001, 0x332b: 0x0001, 0x332c: 0x0001, 0x332d: 0x0001, 0x332e: 0x0001, 0x332f: 0x0001,
+       0x3330: 0x0001, 0x3331: 0x0001, 0x3332: 0x0001, 0x3333: 0x0001, 0x3334: 0x0001, 0x3335: 0x0001,
+       0x3336: 0x0001, 0x3337: 0x0001, 0x3338: 0x0001, 0x3339: 0x0001, 0x333a: 0x0001, 0x333b: 0x0001,
+       0x333c: 0x0001, 0x333d: 0x0001, 0x333e: 0x0001, 0x333f: 0x0001,
+       // Block 0xcd, offset 0x3340
+       0x3340: 0x000d, 0x3341: 0x000d, 0x3342: 0x000d, 0x3343: 0x000d, 0x3344: 0x000d, 0x3345: 0x000d,
+       0x3346: 0x000d, 0x3347: 0x000d, 0x3348: 0x000d, 0x3349: 0x000d, 0x334a: 0x000d, 0x334b: 0x000d,
+       0x334c: 0x000d, 0x334d: 0x000d, 0x334e: 0x000d, 0x334f: 0x000d, 0x3350: 0x000d, 0x3351: 0x000d,
+       0x3352: 0x000d, 0x3353: 0x000d, 0x3354: 0x000d, 0x3355: 0x000d, 0x3356: 0x000d, 0x3357: 0x000d,
+       0x3358: 0x000d, 0x3359: 0x000d, 0x335a: 0x000d, 0x335b: 0x000d, 0x335c: 0x000d, 0x335d: 0x000d,
+       0x335e: 0x000d, 0x335f: 0x000d, 0x3360: 0x000d, 0x3361: 0x000d, 0x3362: 0x000d, 0x3363: 0x000d,
+       0x3364: 0x000d, 0x3365: 0x000d, 0x3366: 0x000d, 0x3367: 0x000d, 0x3368: 0x000d, 0x3369: 0x000d,
+       0x336a: 0x000d, 0x336b: 0x000d, 0x336c: 0x000d, 0x336d: 0x000d, 0x336e: 0x000d, 0x336f: 0x000d,
+       0x3370: 0x000a, 0x3371: 0x000a, 0x3372: 0x000d, 0x3373: 0x000d, 0x3374: 0x000d, 0x3375: 0x000d,
+       0x3376: 0x000d, 0x3377: 0x000d, 0x3378: 0x000d, 0x3379: 0x000d, 0x337a: 0x000d, 0x337b: 0x000d,
+       0x337c: 0x000d, 0x337d: 0x000d, 0x337e: 0x000d, 0x337f: 0x000d,
+       // Block 0xce, offset 0x3380
+       0x3380: 0x000a, 0x3381: 0x000a, 0x3382: 0x000a, 0x3383: 0x000a, 0x3384: 0x000a, 0x3385: 0x000a,
+       0x3386: 0x000a, 0x3387: 0x000a, 0x3388: 0x000a, 0x3389: 0x000a, 0x338a: 0x000a, 0x338b: 0x000a,
+       0x338c: 0x000a, 0x338d: 0x000a, 0x338e: 0x000a, 0x338f: 0x000a, 0x3390: 0x000a, 0x3391: 0x000a,
+       0x3392: 0x000a, 0x3393: 0x000a, 0x3394: 0x000a, 0x3395: 0x000a, 0x3396: 0x000a, 0x3397: 0x000a,
+       0x3398: 0x000a, 0x3399: 0x000a, 0x339a: 0x000a, 0x339b: 0x000a, 0x339c: 0x000a, 0x339d: 0x000a,
+       0x339e: 0x000a, 0x339f: 0x000a, 0x33a0: 0x000a, 0x33a1: 0x000a, 0x33a2: 0x000a, 0x33a3: 0x000a,
+       0x33a4: 0x000a, 0x33a5: 0x000a, 0x33a6: 0x000a, 0x33a7: 0x000a, 0x33a8: 0x000a, 0x33a9: 0x000a,
+       0x33aa: 0x000a, 0x33ab: 0x000a,
+       0x33b0: 0x000a, 0x33b1: 0x000a, 0x33b2: 0x000a, 0x33b3: 0x000a, 0x33b4: 0x000a, 0x33b5: 0x000a,
+       0x33b6: 0x000a, 0x33b7: 0x000a, 0x33b8: 0x000a, 0x33b9: 0x000a, 0x33ba: 0x000a, 0x33bb: 0x000a,
+       0x33bc: 0x000a, 0x33bd: 0x000a, 0x33be: 0x000a, 0x33bf: 0x000a,
+       // Block 0xcf, offset 0x33c0
+       0x33c0: 0x000a, 0x33c1: 0x000a, 0x33c2: 0x000a, 0x33c3: 0x000a, 0x33c4: 0x000a, 0x33c5: 0x000a,
+       0x33c6: 0x000a, 0x33c7: 0x000a, 0x33c8: 0x000a, 0x33c9: 0x000a, 0x33ca: 0x000a, 0x33cb: 0x000a,
+       0x33cc: 0x000a, 0x33cd: 0x000a, 0x33ce: 0x000a, 0x33cf: 0x000a, 0x33d0: 0x000a, 0x33d1: 0x000a,
+       0x33d2: 0x000a, 0x33d3: 0x000a,
+       0x33e0: 0x000a, 0x33e1: 0x000a, 0x33e2: 0x000a, 0x33e3: 0x000a,
+       0x33e4: 0x000a, 0x33e5: 0x000a, 0x33e6: 0x000a, 0x33e7: 0x000a, 0x33e8: 0x000a, 0x33e9: 0x000a,
+       0x33ea: 0x000a, 0x33eb: 0x000a, 0x33ec: 0x000a, 0x33ed: 0x000a, 0x33ee: 0x000a,
+       0x33f1: 0x000a, 0x33f2: 0x000a, 0x33f3: 0x000a, 0x33f4: 0x000a, 0x33f5: 0x000a,
+       0x33f6: 0x000a, 0x33f7: 0x000a, 0x33f8: 0x000a, 0x33f9: 0x000a, 0x33fa: 0x000a, 0x33fb: 0x000a,
+       0x33fc: 0x000a, 0x33fd: 0x000a, 0x33fe: 0x000a, 0x33ff: 0x000a,
+       // Block 0xd0, offset 0x3400
+       0x3401: 0x000a, 0x3402: 0x000a, 0x3403: 0x000a, 0x3404: 0x000a, 0x3405: 0x000a,
+       0x3406: 0x000a, 0x3407: 0x000a, 0x3408: 0x000a, 0x3409: 0x000a, 0x340a: 0x000a, 0x340b: 0x000a,
+       0x340c: 0x000a, 0x340d: 0x000a, 0x340e: 0x000a, 0x340f: 0x000a, 0x3411: 0x000a,
+       0x3412: 0x000a, 0x3413: 0x000a, 0x3414: 0x000a, 0x3415: 0x000a, 0x3416: 0x000a, 0x3417: 0x000a,
+       0x3418: 0x000a, 0x3419: 0x000a, 0x341a: 0x000a, 0x341b: 0x000a, 0x341c: 0x000a, 0x341d: 0x000a,
+       0x341e: 0x000a, 0x341f: 0x000a, 0x3420: 0x000a, 0x3421: 0x000a, 0x3422: 0x000a, 0x3423: 0x000a,
+       0x3424: 0x000a, 0x3425: 0x000a, 0x3426: 0x000a, 0x3427: 0x000a, 0x3428: 0x000a, 0x3429: 0x000a,
+       0x342a: 0x000a, 0x342b: 0x000a, 0x342c: 0x000a, 0x342d: 0x000a, 0x342e: 0x000a, 0x342f: 0x000a,
+       0x3430: 0x000a, 0x3431: 0x000a, 0x3432: 0x000a, 0x3433: 0x000a, 0x3434: 0x000a, 0x3435: 0x000a,
+       // Block 0xd1, offset 0x3440
+       0x3440: 0x0002, 0x3441: 0x0002, 0x3442: 0x0002, 0x3443: 0x0002, 0x3444: 0x0002, 0x3445: 0x0002,
+       0x3446: 0x0002, 0x3447: 0x0002, 0x3448: 0x0002, 0x3449: 0x0002, 0x344a: 0x0002, 0x344b: 0x000a,
+       0x344c: 0x000a,
+       // Block 0xd2, offset 0x3480
+       0x34aa: 0x000a, 0x34ab: 0x000a,
+       // Block 0xd3, offset 0x34c0
+       0x34c0: 0x000a, 0x34c1: 0x000a, 0x34c2: 0x000a, 0x34c3: 0x000a, 0x34c4: 0x000a, 0x34c5: 0x000a,
+       0x34c6: 0x000a, 0x34c7: 0x000a, 0x34c8: 0x000a, 0x34c9: 0x000a, 0x34ca: 0x000a, 0x34cb: 0x000a,
+       0x34cc: 0x000a, 0x34cd: 0x000a, 0x34ce: 0x000a, 0x34cf: 0x000a, 0x34d0: 0x000a, 0x34d1: 0x000a,
+       0x34d2: 0x000a,
+       0x34e0: 0x000a, 0x34e1: 0x000a, 0x34e2: 0x000a, 0x34e3: 0x000a,
+       0x34e4: 0x000a, 0x34e5: 0x000a, 0x34e6: 0x000a, 0x34e7: 0x000a, 0x34e8: 0x000a, 0x34e9: 0x000a,
+       0x34ea: 0x000a, 0x34eb: 0x000a, 0x34ec: 0x000a,
+       0x34f0: 0x000a, 0x34f1: 0x000a, 0x34f2: 0x000a, 0x34f3: 0x000a, 0x34f4: 0x000a, 0x34f5: 0x000a,
+       0x34f6: 0x000a,
+       // Block 0xd4, offset 0x3500
+       0x3500: 0x000a, 0x3501: 0x000a, 0x3502: 0x000a, 0x3503: 0x000a, 0x3504: 0x000a, 0x3505: 0x000a,
+       0x3506: 0x000a, 0x3507: 0x000a, 0x3508: 0x000a, 0x3509: 0x000a, 0x350a: 0x000a, 0x350b: 0x000a,
+       0x350c: 0x000a, 0x350d: 0x000a, 0x350e: 0x000a, 0x350f: 0x000a, 0x3510: 0x000a, 0x3511: 0x000a,
+       0x3512: 0x000a, 0x3513: 0x000a, 0x3514: 0x000a,
+       // Block 0xd5, offset 0x3540
+       0x3540: 0x000a, 0x3541: 0x000a, 0x3542: 0x000a, 0x3543: 0x000a, 0x3544: 0x000a, 0x3545: 0x000a,
+       0x3546: 0x000a, 0x3547: 0x000a, 0x3548: 0x000a, 0x3549: 0x000a, 0x354a: 0x000a, 0x354b: 0x000a,
+       0x3550: 0x000a, 0x3551: 0x000a,
+       0x3552: 0x000a, 0x3553: 0x000a, 0x3554: 0x000a, 0x3555: 0x000a, 0x3556: 0x000a, 0x3557: 0x000a,
+       0x3558: 0x000a, 0x3559: 0x000a, 0x355a: 0x000a, 0x355b: 0x000a, 0x355c: 0x000a, 0x355d: 0x000a,
+       0x355e: 0x000a, 0x355f: 0x000a, 0x3560: 0x000a, 0x3561: 0x000a, 0x3562: 0x000a, 0x3563: 0x000a,
+       0x3564: 0x000a, 0x3565: 0x000a, 0x3566: 0x000a, 0x3567: 0x000a, 0x3568: 0x000a, 0x3569: 0x000a,
+       0x356a: 0x000a, 0x356b: 0x000a, 0x356c: 0x000a, 0x356d: 0x000a, 0x356e: 0x000a, 0x356f: 0x000a,
+       0x3570: 0x000a, 0x3571: 0x000a, 0x3572: 0x000a, 0x3573: 0x000a, 0x3574: 0x000a, 0x3575: 0x000a,
+       0x3576: 0x000a, 0x3577: 0x000a, 0x3578: 0x000a, 0x3579: 0x000a, 0x357a: 0x000a, 0x357b: 0x000a,
+       0x357c: 0x000a, 0x357d: 0x000a, 0x357e: 0x000a, 0x357f: 0x000a,
+       // Block 0xd6, offset 0x3580
+       0x3580: 0x000a, 0x3581: 0x000a, 0x3582: 0x000a, 0x3583: 0x000a, 0x3584: 0x000a, 0x3585: 0x000a,
+       0x3586: 0x000a, 0x3587: 0x000a,
+       0x3590: 0x000a, 0x3591: 0x000a,
+       0x3592: 0x000a, 0x3593: 0x000a, 0x3594: 0x000a, 0x3595: 0x000a, 0x3596: 0x000a, 0x3597: 0x000a,
+       0x3598: 0x000a, 0x3599: 0x000a,
+       0x35a0: 0x000a, 0x35a1: 0x000a, 0x35a2: 0x000a, 0x35a3: 0x000a,
+       0x35a4: 0x000a, 0x35a5: 0x000a, 0x35a6: 0x000a, 0x35a7: 0x000a, 0x35a8: 0x000a, 0x35a9: 0x000a,
+       0x35aa: 0x000a, 0x35ab: 0x000a, 0x35ac: 0x000a, 0x35ad: 0x000a, 0x35ae: 0x000a, 0x35af: 0x000a,
+       0x35b0: 0x000a, 0x35b1: 0x000a, 0x35b2: 0x000a, 0x35b3: 0x000a, 0x35b4: 0x000a, 0x35b5: 0x000a,
+       0x35b6: 0x000a, 0x35b7: 0x000a, 0x35b8: 0x000a, 0x35b9: 0x000a, 0x35ba: 0x000a, 0x35bb: 0x000a,
+       0x35bc: 0x000a, 0x35bd: 0x000a, 0x35be: 0x000a, 0x35bf: 0x000a,
+       // Block 0xd7, offset 0x35c0
+       0x35c0: 0x000a, 0x35c1: 0x000a, 0x35c2: 0x000a, 0x35c3: 0x000a, 0x35c4: 0x000a, 0x35c5: 0x000a,
+       0x35c6: 0x000a, 0x35c7: 0x000a,
+       0x35d0: 0x000a, 0x35d1: 0x000a,
+       0x35d2: 0x000a, 0x35d3: 0x000a, 0x35d4: 0x000a, 0x35d5: 0x000a, 0x35d6: 0x000a, 0x35d7: 0x000a,
+       0x35d8: 0x000a, 0x35d9: 0x000a, 0x35da: 0x000a, 0x35db: 0x000a, 0x35dc: 0x000a, 0x35dd: 0x000a,
+       0x35de: 0x000a, 0x35df: 0x000a, 0x35e0: 0x000a, 0x35e1: 0x000a, 0x35e2: 0x000a, 0x35e3: 0x000a,
+       0x35e4: 0x000a, 0x35e5: 0x000a, 0x35e6: 0x000a, 0x35e7: 0x000a, 0x35e8: 0x000a, 0x35e9: 0x000a,
+       0x35ea: 0x000a, 0x35eb: 0x000a, 0x35ec: 0x000a, 0x35ed: 0x000a,
+       // Block 0xd8, offset 0x3600
+       0x3610: 0x000a, 0x3611: 0x000a,
+       0x3612: 0x000a, 0x3613: 0x000a, 0x3614: 0x000a, 0x3615: 0x000a, 0x3616: 0x000a, 0x3617: 0x000a,
+       0x3618: 0x000a, 0x3619: 0x000a, 0x361a: 0x000a, 0x361b: 0x000a, 0x361c: 0x000a, 0x361d: 0x000a,
+       0x361e: 0x000a, 0x3620: 0x000a, 0x3621: 0x000a, 0x3622: 0x000a, 0x3623: 0x000a,
+       0x3624: 0x000a, 0x3625: 0x000a, 0x3626: 0x000a, 0x3627: 0x000a,
+       0x3630: 0x000a, 0x3633: 0x000a, 0x3634: 0x000a, 0x3635: 0x000a,
+       0x3636: 0x000a, 0x3637: 0x000a, 0x3638: 0x000a, 0x3639: 0x000a, 0x363a: 0x000a, 0x363b: 0x000a,
+       0x363c: 0x000a, 0x363d: 0x000a, 0x363e: 0x000a,
+       // Block 0xd9, offset 0x3640
+       0x3640: 0x000a, 0x3641: 0x000a, 0x3642: 0x000a, 0x3643: 0x000a, 0x3644: 0x000a, 0x3645: 0x000a,
+       0x3646: 0x000a, 0x3647: 0x000a, 0x3648: 0x000a, 0x3649: 0x000a, 0x364a: 0x000a, 0x364b: 0x000a,
+       0x3650: 0x000a, 0x3651: 0x000a,
+       0x3652: 0x000a, 0x3653: 0x000a, 0x3654: 0x000a, 0x3655: 0x000a, 0x3656: 0x000a, 0x3657: 0x000a,
+       0x3658: 0x000a, 0x3659: 0x000a, 0x365a: 0x000a, 0x365b: 0x000a, 0x365c: 0x000a, 0x365d: 0x000a,
+       0x365e: 0x000a,
+       // Block 0xda, offset 0x3680
+       0x3680: 0x000a, 0x3681: 0x000a, 0x3682: 0x000a, 0x3683: 0x000a, 0x3684: 0x000a, 0x3685: 0x000a,
+       0x3686: 0x000a, 0x3687: 0x000a, 0x3688: 0x000a, 0x3689: 0x000a, 0x368a: 0x000a, 0x368b: 0x000a,
+       0x368c: 0x000a, 0x368d: 0x000a, 0x368e: 0x000a, 0x368f: 0x000a, 0x3690: 0x000a, 0x3691: 0x000a,
+       // Block 0xdb, offset 0x36c0
+       0x36fe: 0x000b, 0x36ff: 0x000b,
+       // Block 0xdc, offset 0x3700
+       0x3700: 0x000b, 0x3701: 0x000b, 0x3702: 0x000b, 0x3703: 0x000b, 0x3704: 0x000b, 0x3705: 0x000b,
+       0x3706: 0x000b, 0x3707: 0x000b, 0x3708: 0x000b, 0x3709: 0x000b, 0x370a: 0x000b, 0x370b: 0x000b,
+       0x370c: 0x000b, 0x370d: 0x000b, 0x370e: 0x000b, 0x370f: 0x000b, 0x3710: 0x000b, 0x3711: 0x000b,
+       0x3712: 0x000b, 0x3713: 0x000b, 0x3714: 0x000b, 0x3715: 0x000b, 0x3716: 0x000b, 0x3717: 0x000b,
+       0x3718: 0x000b, 0x3719: 0x000b, 0x371a: 0x000b, 0x371b: 0x000b, 0x371c: 0x000b, 0x371d: 0x000b,
+       0x371e: 0x000b, 0x371f: 0x000b, 0x3720: 0x000b, 0x3721: 0x000b, 0x3722: 0x000b, 0x3723: 0x000b,
+       0x3724: 0x000b, 0x3725: 0x000b, 0x3726: 0x000b, 0x3727: 0x000b, 0x3728: 0x000b, 0x3729: 0x000b,
+       0x372a: 0x000b, 0x372b: 0x000b, 0x372c: 0x000b, 0x372d: 0x000b, 0x372e: 0x000b, 0x372f: 0x000b,
+       0x3730: 0x000b, 0x3731: 0x000b, 0x3732: 0x000b, 0x3733: 0x000b, 0x3734: 0x000b, 0x3735: 0x000b,
+       0x3736: 0x000b, 0x3737: 0x000b, 0x3738: 0x000b, 0x3739: 0x000b, 0x373a: 0x000b, 0x373b: 0x000b,
+       0x373c: 0x000b, 0x373d: 0x000b, 0x373e: 0x000b, 0x373f: 0x000b,
+       // Block 0xdd, offset 0x3740
+       0x3740: 0x000c, 0x3741: 0x000c, 0x3742: 0x000c, 0x3743: 0x000c, 0x3744: 0x000c, 0x3745: 0x000c,
+       0x3746: 0x000c, 0x3747: 0x000c, 0x3748: 0x000c, 0x3749: 0x000c, 0x374a: 0x000c, 0x374b: 0x000c,
+       0x374c: 0x000c, 0x374d: 0x000c, 0x374e: 0x000c, 0x374f: 0x000c, 0x3750: 0x000c, 0x3751: 0x000c,
+       0x3752: 0x000c, 0x3753: 0x000c, 0x3754: 0x000c, 0x3755: 0x000c, 0x3756: 0x000c, 0x3757: 0x000c,
+       0x3758: 0x000c, 0x3759: 0x000c, 0x375a: 0x000c, 0x375b: 0x000c, 0x375c: 0x000c, 0x375d: 0x000c,
+       0x375e: 0x000c, 0x375f: 0x000c, 0x3760: 0x000c, 0x3761: 0x000c, 0x3762: 0x000c, 0x3763: 0x000c,
+       0x3764: 0x000c, 0x3765: 0x000c, 0x3766: 0x000c, 0x3767: 0x000c, 0x3768: 0x000c, 0x3769: 0x000c,
+       0x376a: 0x000c, 0x376b: 0x000c, 0x376c: 0x000c, 0x376d: 0x000c, 0x376e: 0x000c, 0x376f: 0x000c,
+       0x3770: 0x000b, 0x3771: 0x000b, 0x3772: 0x000b, 0x3773: 0x000b, 0x3774: 0x000b, 0x3775: 0x000b,
+       0x3776: 0x000b, 0x3777: 0x000b, 0x3778: 0x000b, 0x3779: 0x000b, 0x377a: 0x000b, 0x377b: 0x000b,
+       0x377c: 0x000b, 0x377d: 0x000b, 0x377e: 0x000b, 0x377f: 0x000b,
+}
+
+// bidiIndex: 24 blocks, 1536 entries, 1536 bytes
+// Block 0 is the zero block.
+var bidiIndex = [1536]uint8{
+       // Block 0x0, offset 0x0
+       // Block 0x1, offset 0x40
+       // Block 0x2, offset 0x80
+       // Block 0x3, offset 0xc0
+       0xc2: 0x01, 0xc3: 0x02,
+       0xca: 0x03, 0xcb: 0x04, 0xcc: 0x05, 0xcd: 0x06, 0xce: 0x07, 0xcf: 0x08,
+       0xd2: 0x09, 0xd6: 0x0a, 0xd7: 0x0b,
+       0xd8: 0x0c, 0xd9: 0x0d, 0xda: 0x0e, 0xdb: 0x0f, 0xdc: 0x10, 0xdd: 0x11, 0xde: 0x12, 0xdf: 0x13,
+       0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, 0xe4: 0x06,
+       0xea: 0x07, 0xef: 0x08,
+       0xf0: 0x11, 0xf1: 0x12, 0xf2: 0x12, 0xf3: 0x14, 0xf4: 0x15,
+       // Block 0x4, offset 0x100
+       0x120: 0x14, 0x121: 0x15, 0x122: 0x16, 0x123: 0x17, 0x124: 0x18, 0x125: 0x19, 0x126: 0x1a, 0x127: 0x1b,
+       0x128: 0x1c, 0x129: 0x1d, 0x12a: 0x1c, 0x12b: 0x1e, 0x12c: 0x1f, 0x12d: 0x20, 0x12e: 0x21, 0x12f: 0x22,
+       0x130: 0x23, 0x131: 0x24, 0x132: 0x1a, 0x133: 0x25, 0x134: 0x26, 0x135: 0x27, 0x137: 0x28,
+       0x138: 0x29, 0x139: 0x2a, 0x13a: 0x2b, 0x13b: 0x2c, 0x13c: 0x2d, 0x13d: 0x2e, 0x13e: 0x2f, 0x13f: 0x30,
+       // Block 0x5, offset 0x140
+       0x140: 0x31, 0x141: 0x32, 0x142: 0x33,
+       0x14d: 0x34, 0x14e: 0x35,
+       0x150: 0x36,
+       0x15a: 0x37, 0x15c: 0x38, 0x15d: 0x39, 0x15e: 0x3a, 0x15f: 0x3b,
+       0x160: 0x3c, 0x162: 0x3d, 0x164: 0x3e, 0x165: 0x3f, 0x167: 0x40,
+       0x168: 0x41, 0x169: 0x42, 0x16a: 0x43, 0x16c: 0x44, 0x16d: 0x45, 0x16e: 0x46, 0x16f: 0x47,
+       0x170: 0x48, 0x173: 0x49, 0x177: 0x4a,
+       0x17e: 0x4b, 0x17f: 0x4c,
+       // Block 0x6, offset 0x180
+       0x180: 0x4d, 0x181: 0x4e, 0x182: 0x4f, 0x183: 0x50, 0x184: 0x51, 0x185: 0x52, 0x186: 0x53, 0x187: 0x54,
+       0x188: 0x55, 0x189: 0x54, 0x18a: 0x54, 0x18b: 0x54, 0x18c: 0x56, 0x18d: 0x57, 0x18e: 0x58, 0x18f: 0x59,
+       0x190: 0x5a, 0x191: 0x5b, 0x192: 0x5c, 0x193: 0x5d, 0x194: 0x54, 0x195: 0x54, 0x196: 0x54, 0x197: 0x54,
+       0x198: 0x54, 0x199: 0x54, 0x19a: 0x5e, 0x19b: 0x54, 0x19c: 0x54, 0x19d: 0x5f, 0x19e: 0x54, 0x19f: 0x60,
+       0x1a4: 0x54, 0x1a5: 0x54, 0x1a6: 0x61, 0x1a7: 0x62,
+       0x1a8: 0x54, 0x1a9: 0x54, 0x1aa: 0x54, 0x1ab: 0x54, 0x1ac: 0x54, 0x1ad: 0x63, 0x1ae: 0x64, 0x1af: 0x65,
+       0x1b3: 0x66, 0x1b5: 0x67, 0x1b7: 0x68,
+       0x1b8: 0x69, 0x1b9: 0x6a, 0x1ba: 0x6b, 0x1bb: 0x6c, 0x1bc: 0x54, 0x1bd: 0x54, 0x1be: 0x54, 0x1bf: 0x6d,
+       // Block 0x7, offset 0x1c0
+       0x1c0: 0x6e, 0x1c2: 0x6f, 0x1c3: 0x70, 0x1c7: 0x71,
+       0x1c8: 0x72, 0x1c9: 0x73, 0x1ca: 0x74, 0x1cb: 0x75, 0x1cd: 0x76, 0x1cf: 0x77,
+       // Block 0x8, offset 0x200
+       0x237: 0x54,
+       // Block 0x9, offset 0x240
+       0x252: 0x78, 0x253: 0x79,
+       0x258: 0x7a, 0x259: 0x7b, 0x25a: 0x7c, 0x25b: 0x7d, 0x25c: 0x7e, 0x25e: 0x7f,
+       0x260: 0x80, 0x261: 0x81, 0x263: 0x82, 0x264: 0x83, 0x265: 0x84, 0x266: 0x85, 0x267: 0x86,
+       0x268: 0x87, 0x269: 0x88, 0x26a: 0x89, 0x26b: 0x8a, 0x26f: 0x8b,
+       // Block 0xa, offset 0x280
+       0x2ac: 0x8c, 0x2ad: 0x8d, 0x2ae: 0x0e, 0x2af: 0x0e,
+       0x2b0: 0x0e, 0x2b1: 0x0e, 0x2b2: 0x0e, 0x2b3: 0x0e, 0x2b4: 0x8e, 0x2b5: 0x0e, 0x2b6: 0x0e, 0x2b7: 0x8f,
+       0x2b8: 0x90, 0x2b9: 0x91, 0x2ba: 0x0e, 0x2bb: 0x92, 0x2bc: 0x93, 0x2bd: 0x94, 0x2bf: 0x95,
+       // Block 0xb, offset 0x2c0
+       0x2c4: 0x96, 0x2c5: 0x54, 0x2c6: 0x97, 0x2c7: 0x98,
+       0x2cb: 0x99, 0x2cd: 0x9a,
+       0x2e0: 0x9b, 0x2e1: 0x9b, 0x2e2: 0x9b, 0x2e3: 0x9b, 0x2e4: 0x9c, 0x2e5: 0x9b, 0x2e6: 0x9b, 0x2e7: 0x9b,
+       0x2e8: 0x9d, 0x2e9: 0x9b, 0x2ea: 0x9b, 0x2eb: 0x9e, 0x2ec: 0x9f, 0x2ed: 0x9b, 0x2ee: 0x9b, 0x2ef: 0x9b,
+       0x2f0: 0x9b, 0x2f1: 0x9b, 0x2f2: 0x9b, 0x2f3: 0x9b, 0x2f4: 0x9b, 0x2f5: 0x9b, 0x2f6: 0x9b, 0x2f7: 0x9b,
+       0x2f8: 0x9b, 0x2f9: 0xa0, 0x2fa: 0x9b, 0x2fb: 0x9b, 0x2fc: 0x9b, 0x2fd: 0x9b, 0x2fe: 0x9b, 0x2ff: 0x9b,
+       // Block 0xc, offset 0x300
+       0x300: 0xa1, 0x301: 0xa2, 0x302: 0xa3, 0x304: 0xa4, 0x305: 0xa5, 0x306: 0xa6, 0x307: 0xa7,
+       0x308: 0xa8, 0x30b: 0xa9, 0x30c: 0xaa, 0x30d: 0xab,
+       0x310: 0xac, 0x311: 0xad, 0x312: 0xae, 0x313: 0xaf, 0x316: 0xb0, 0x317: 0xb1,
+       0x318: 0xb2, 0x319: 0xb3, 0x31a: 0xb4, 0x31c: 0xb5,
+       0x330: 0xb6, 0x332: 0xb7,
+       // Block 0xd, offset 0x340
+       0x36b: 0xb8, 0x36c: 0xb9,
+       0x37e: 0xba,
+       // Block 0xe, offset 0x380
+       0x3b2: 0xbb,
+       // Block 0xf, offset 0x3c0
+       0x3c5: 0xbc, 0x3c6: 0xbd,
+       0x3c8: 0x54, 0x3c9: 0xbe, 0x3cc: 0x54, 0x3cd: 0xbf,
+       0x3db: 0xc0, 0x3dc: 0xc1, 0x3dd: 0xc2, 0x3de: 0xc3, 0x3df: 0xc4,
+       0x3e8: 0xc5, 0x3e9: 0xc6, 0x3ea: 0xc7,
+       // Block 0x10, offset 0x400
+       0x400: 0xc8,
+       0x420: 0x9b, 0x421: 0x9b, 0x422: 0x9b, 0x423: 0xc9, 0x424: 0x9b, 0x425: 0xca, 0x426: 0x9b, 0x427: 0x9b,
+       0x428: 0x9b, 0x429: 0x9b, 0x42a: 0x9b, 0x42b: 0x9b, 0x42c: 0x9b, 0x42d: 0x9b, 0x42e: 0x9b, 0x42f: 0x9b,
+       0x430: 0x9b, 0x431: 0x9b, 0x432: 0x9b, 0x433: 0x9b, 0x434: 0x9b, 0x435: 0x9b, 0x436: 0x9b, 0x437: 0x9b,
+       0x438: 0x0e, 0x439: 0x0e, 0x43a: 0x0e, 0x43b: 0xcb, 0x43c: 0x9b, 0x43d: 0x9b, 0x43e: 0x9b, 0x43f: 0x9b,
+       // Block 0x11, offset 0x440
+       0x440: 0xcc, 0x441: 0x54, 0x442: 0xcd, 0x443: 0xce, 0x444: 0xcf, 0x445: 0xd0,
+       0x44c: 0x54, 0x44d: 0x54, 0x44e: 0x54, 0x44f: 0x54,
+       0x450: 0x54, 0x451: 0x54, 0x452: 0x54, 0x453: 0x54, 0x454: 0x54, 0x455: 0x54, 0x456: 0x54, 0x457: 0x54,
+       0x458: 0x54, 0x459: 0x54, 0x45a: 0x54, 0x45b: 0xd1, 0x45c: 0x54, 0x45d: 0x6c, 0x45e: 0x54, 0x45f: 0xd2,
+       0x460: 0xd3, 0x461: 0xd4, 0x462: 0xd5, 0x464: 0xd6, 0x465: 0xd7, 0x466: 0xd8, 0x467: 0x36,
+       0x47f: 0xd9,
+       // Block 0x12, offset 0x480
+       0x4bf: 0xd9,
+       // Block 0x13, offset 0x4c0
+       0x4d0: 0x09, 0x4d1: 0x0a, 0x4d6: 0x0b,
+       0x4db: 0x0c, 0x4dd: 0x0d, 0x4de: 0x0e, 0x4df: 0x0f,
+       0x4ef: 0x10,
+       0x4ff: 0x10,
+       // Block 0x14, offset 0x500
+       0x50f: 0x10,
+       0x51f: 0x10,
+       0x52f: 0x10,
+       0x53f: 0x10,
+       // Block 0x15, offset 0x540
+       0x540: 0xda, 0x541: 0xda, 0x542: 0xda, 0x543: 0xda, 0x544: 0x05, 0x545: 0x05, 0x546: 0x05, 0x547: 0xdb,
+       0x548: 0xda, 0x549: 0xda, 0x54a: 0xda, 0x54b: 0xda, 0x54c: 0xda, 0x54d: 0xda, 0x54e: 0xda, 0x54f: 0xda,
+       0x550: 0xda, 0x551: 0xda, 0x552: 0xda, 0x553: 0xda, 0x554: 0xda, 0x555: 0xda, 0x556: 0xda, 0x557: 0xda,
+       0x558: 0xda, 0x559: 0xda, 0x55a: 0xda, 0x55b: 0xda, 0x55c: 0xda, 0x55d: 0xda, 0x55e: 0xda, 0x55f: 0xda,
+       0x560: 0xda, 0x561: 0xda, 0x562: 0xda, 0x563: 0xda, 0x564: 0xda, 0x565: 0xda, 0x566: 0xda, 0x567: 0xda,
+       0x568: 0xda, 0x569: 0xda, 0x56a: 0xda, 0x56b: 0xda, 0x56c: 0xda, 0x56d: 0xda, 0x56e: 0xda, 0x56f: 0xda,
+       0x570: 0xda, 0x571: 0xda, 0x572: 0xda, 0x573: 0xda, 0x574: 0xda, 0x575: 0xda, 0x576: 0xda, 0x577: 0xda,
+       0x578: 0xda, 0x579: 0xda, 0x57a: 0xda, 0x57b: 0xda, 0x57c: 0xda, 0x57d: 0xda, 0x57e: 0xda, 0x57f: 0xda,
+       // Block 0x16, offset 0x580
+       0x58f: 0x10,
+       0x59f: 0x10,
+       0x5a0: 0x13,
+       0x5af: 0x10,
+       0x5bf: 0x10,
+       // Block 0x17, offset 0x5c0
+       0x5cf: 0x10,
+}
+
+// Total table size 15800 bytes (15KiB); checksum: F50EF68C
diff --git a/vendor/golang.org/x/text/unicode/bidi/trieval.go b/vendor/golang.org/x/text/unicode/bidi/trieval.go
new file mode 100644 (file)
index 0000000..4c459c4
--- /dev/null
@@ -0,0 +1,60 @@
+// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT.
+
+package bidi
+
+// Class is the Unicode BiDi class. Each rune has a single class.
+type Class uint
+
+const (
+       L       Class = iota // LeftToRight
+       R                    // RightToLeft
+       EN                   // EuropeanNumber
+       ES                   // EuropeanSeparator
+       ET                   // EuropeanTerminator
+       AN                   // ArabicNumber
+       CS                   // CommonSeparator
+       B                    // ParagraphSeparator
+       S                    // SegmentSeparator
+       WS                   // WhiteSpace
+       ON                   // OtherNeutral
+       BN                   // BoundaryNeutral
+       NSM                  // NonspacingMark
+       AL                   // ArabicLetter
+       Control              // Control LRO - PDI
+
+       numClass
+
+       LRO // LeftToRightOverride
+       RLO // RightToLeftOverride
+       LRE // LeftToRightEmbedding
+       RLE // RightToLeftEmbedding
+       PDF // PopDirectionalFormat
+       LRI // LeftToRightIsolate
+       RLI // RightToLeftIsolate
+       FSI // FirstStrongIsolate
+       PDI // PopDirectionalIsolate
+
+       unknownClass = ^Class(0)
+)
+
+var controlToClass = map[rune]Class{
+       0x202D: LRO, // LeftToRightOverride,
+       0x202E: RLO, // RightToLeftOverride,
+       0x202A: LRE, // LeftToRightEmbedding,
+       0x202B: RLE, // RightToLeftEmbedding,
+       0x202C: PDF, // PopDirectionalFormat,
+       0x2066: LRI, // LeftToRightIsolate,
+       0x2067: RLI, // RightToLeftIsolate,
+       0x2068: FSI, // FirstStrongIsolate,
+       0x2069: PDI, // PopDirectionalIsolate,
+}
+
+// A trie entry has the following bits:
+// 7..5  XOR mask for brackets
+// 4     1: Bracket open, 0: Bracket close
+// 3..0  Class type
+
+const (
+       openMask     = 0x10
+       xorMaskShift = 5
+)
diff --git a/vendor/golang.org/x/text/unicode/norm/composition.go b/vendor/golang.org/x/text/unicode/norm/composition.go
new file mode 100644 (file)
index 0000000..e2087bc
--- /dev/null
@@ -0,0 +1,512 @@
+// 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
+
+// first inserts the first rune of a segment. It is a faster version of next if
+// it is known p represents the first rune in a segment.
+func (ss *streamSafe) first(p Properties) {
+       *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 = streamSafe(p.nTrailingNonStarters())
+               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
+}
+
+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)
+       // As the streamSafe accounting already handles the counting for modifiers,
+       // we don't have to call next. However, we do need to keep the accounting
+       // intact when flushing the buffer.
+       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 https://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 https://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() {
+       // Lazily load the map used by the combine func below, but do
+       // it outside of the loop.
+       recompMapOnce.Do(buildRecompMap)
+
+       // 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/vendor/golang.org/x/text/unicode/norm/forminfo.go b/vendor/golang.org/x/text/unicode/norm/forminfo.go
new file mode 100644 (file)
index 0000000..526c703
--- /dev/null
@@ -0,0 +1,278 @@
+// 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 "encoding/binary"
+
+// 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_QC 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{{
+       form:          NFC,
+       composing:     true,
+       compatibility: false,
+       info:          lookupInfoNFC,
+       nextMain:      nextComposed,
+}, {
+       form:          NFD,
+       composing:     false,
+       compatibility: false,
+       info:          lookupInfoNFC,
+       nextMain:      nextDecomposed,
+}, {
+       form:          NFKC,
+       composing:     true,
+       compatibility: true,
+       info:          lookupInfoNFKC,
+       nextMain:      nextComposed,
+}, {
+       form:          NFKD,
+       composing:     false,
+       compatibility: true,
+       info:          lookupInfoNFKC,
+       nextMain:      nextDecomposed,
+}}
+
+// 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]
+}
+
+func buildRecompMap() {
+       recompMap = make(map[uint32]rune, len(recompMapPacked)/8)
+       var buf [8]byte
+       for i := 0; i < len(recompMapPacked); i += 8 {
+               copy(buf[:], recompMapPacked[i:i+8])
+               key := binary.BigEndian.Uint32(buf[:4])
+               val := binary.BigEndian.Uint32(buf[4:])
+               recompMap[key] = rune(val)
+       }
+}
+
+// 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.
+//
+// The caller is responsible for calling
+// recompMapOnce.Do(buildRecompMap) sometime before this is called.
+func combine(a, b rune) rune {
+       key := uint32(uint16(a))<<16 + uint32(uint16(b))
+       if recompMap == nil {
+               panic("caller error") // see func comment
+       }
+       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/vendor/golang.org/x/text/unicode/norm/input.go b/vendor/golang.org/x/text/unicode/norm/input.go
new file mode 100644 (file)
index 0000000..479e35b
--- /dev/null
@@ -0,0 +1,109 @@
+// 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) {
+       var size int
+       if in.bytes == nil {
+               if !isHangulString(in.str[p:]) {
+                       return 0
+               }
+               r, size = utf8.DecodeRuneInString(in.str[p:])
+       } else {
+               if !isHangul(in.bytes[p:]) {
+                       return 0
+               }
+               r, size = utf8.DecodeRune(in.bytes[p:])
+       }
+       if size != hangulUTF8Size {
+               return 0
+       }
+       return r
+}
diff --git a/vendor/golang.org/x/text/unicode/norm/iter.go b/vendor/golang.org/x/text/unicode/norm/iter.go
new file mode 100644 (file)
index 0000000..417c6b2
--- /dev/null
@@ -0,0 +1,458 @@
+// 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)
+       i.rb.ss.first(i.info)
+}
+
+// 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)
+       i.rb.ss.first(i.info)
+}
+
+// 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 segment.
+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)
+       i.rb.ss.first(i.info)
+       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 {
+               p0 := i.p
+               i.setDone()
+               return i.rb.src.bytes[p0: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.rb.ss.next(i.info)
+               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.insertUnsafe(input{bytes: d}, j, info)
+                       i.multiSeg = d[j+int(info.size):]
+                       return seg
+               }
+               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
+       for {
+               if sz := int(i.info.size); sz <= 1 {
+                       i.rb.ss = 0
+                       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)
+                               // TODO: this condition should not be possible, but we leave it
+                               // in for defensive purposes.
+                               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 i.rb.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 := i.rb.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 {
+               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
+               }
+               if s := i.rb.ss.next(i.info); s == ssOverflow {
+                       i.next = nextCGJDecompose
+                       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
+       i.rb.ss.first(i.info)
+       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
+       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.rb.ss = 0
+                       i.next = i.asciiF
+                       break
+               }
+               i.info = i.rb.f.info(i.rb.src, i.p)
+               if v := i.rb.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:
+       // reset to start position
+       i.p = startp
+       i.info = i.rb.f.info(i.rb.src, i.p)
+       i.rb.ss.first(i.info)
+       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/vendor/golang.org/x/text/unicode/norm/normalize.go b/vendor/golang.org/x/text/unicode/norm/normalize.go
new file mode 100644 (file)
index 0000000..95efcf2
--- /dev/null
@@ -0,0 +1,609 @@
+// 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.
+
+// Note: the file data_test.go that is generated should not be checked in.
+//go:generate go run maketables.go triegen.go
+//go:generate go test -tags 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: https://unicode.org/reports/tr15/ and
+// https://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:
+                       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
+               }
+               // TODO: Using streamSafe to determine the boundary isn't the same as
+               // using BoundaryBefore. Determine which should be used.
+               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 s := rb.ss.next(info); s == ssStarter {
+               // TODO: this could be removed if we don't support merging.
+               if rb.nrune > 0 {
+                       goto end
+               }
+       } else if s == ssOverflow {
+               rb.insertCGJ()
+               goto end
+       }
+       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/vendor/golang.org/x/text/unicode/norm/readwriter.go b/vendor/golang.org/x/text/unicode/norm/readwriter.go
new file mode 100644 (file)
index 0000000..b38096f
--- /dev/null
@@ -0,0 +1,125 @@
+// 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
+// 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
+                       }
+               }
+       }
+}
+
+// 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/vendor/golang.org/x/text/unicode/norm/tables10.0.0.go b/vendor/golang.org/x/text/unicode/norm/tables10.0.0.go
new file mode 100644 (file)
index 0000000..26fbd55
--- /dev/null
@@ -0,0 +1,7657 @@
+// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT.
+
+// +build go1.10,!go1.13
+
+package norm
+
+import "sync"
+
+const (
+       // Version is the Unicode edition from which the tables are derived.
+       Version = "10.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       = 0x49AE
+       firstCCCZeroExcept    = 0x4A78
+       firstStarterWithNLead = 0x4A9F
+       lastDecomp            = 0x4AA1
+       maxDecomp             = 0x8000
+)
+
+// decomps: 19105 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, 0x44, 0x20, 0xE3, 0x82,
+       0x99, 0x0D, 0x44, 0x20, 0xE3, 0x82, 0x9A, 0x0D,
+       0x44, 0xC2, 0xA8, 0xCC, 0x81, 0xCA, 0x44, 0xCE,
+       0x91, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0x95, 0xCC,
+       0x81, 0xC9, 0x44, 0xCE, 0x97, 0xCC, 0x81, 0xC9,
+       // Bytes 4300 - 433f
+       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, 0x44, 0xCE, 0xB7, 0xCC, 0x81, 0xC9,
+       0x44, 0xCE, 0xB9, 0xCC, 0x81, 0xC9, 0x44, 0xCE,
+       0xBF, 0xCC, 0x81, 0xC9, 0x44, 0xCF, 0x85, 0xCC,
+       // Bytes 4340 - 437f
+       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, 0xBC, 0x41, 0x44, 0xD7, 0x93, 0xD6,
+       0xBC, 0x41, 0x44, 0xD7, 0x94, 0xD6, 0xBC, 0x41,
+       0x44, 0xD7, 0x95, 0xD6, 0xB9, 0x39, 0x44, 0xD7,
+       // Bytes 4380 - 43bf
+       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, 0x9B, 0xD6, 0xBF, 0x49, 0x44, 0xD7,
+       0x9C, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x9E, 0xD6,
+       0xBC, 0x41, 0x44, 0xD7, 0xA0, 0xD6, 0xBC, 0x41,
+       // Bytes 43c0 - 43ff
+       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, 0x44, 0xD7, 0xA9, 0xD6, 0xBC, 0x41,
+       0x44, 0xD7, 0xA9, 0xD7, 0x81, 0x4D, 0x44, 0xD7,
+       0xA9, 0xD7, 0x82, 0x51, 0x44, 0xD7, 0xAA, 0xD6,
+       // Bytes 4400 - 443f
+       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, 0xB0, 0x79, 0x44, 0xD9, 0x80, 0xD9,
+       0x8B, 0x59, 0x44, 0xD9, 0x80, 0xD9, 0x8E, 0x65,
+       0x44, 0xD9, 0x80, 0xD9, 0x8F, 0x69, 0x44, 0xD9,
+       // Bytes 4440 - 447f
+       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, 0x92, 0xD9, 0x94, 0xC9, 0x44, 0xDB,
+       0x95, 0xD9, 0x94, 0xC9, 0x45, 0x20, 0xCC, 0x88,
+       0xCC, 0x80, 0xCA, 0x45, 0x20, 0xCC, 0x88, 0xCC,
+       // Bytes 4480 - 44bf
+       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, 0x81, 0xCA, 0x45, 0x20, 0xCC, 0x94,
+       0xCD, 0x82, 0xCA, 0x45, 0x20, 0xD9, 0x8C, 0xD9,
+       0x91, 0x72, 0x45, 0x20, 0xD9, 0x8D, 0xD9, 0x91,
+       // Bytes 44c0 - 44ff
+       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, 0x81, 0xCA, 0x46, 0xCF, 0x85, 0xCC,
+       0x88, 0xCC, 0x81, 0xCA, 0x46, 0xD7, 0xA9, 0xD6,
+       0xBC, 0xD7, 0x81, 0x4E, 0x46, 0xD7, 0xA9, 0xD6,
+       // Bytes 4500 - 453f
+       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, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x97,
+       0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x9C,
+       0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xA1,
+       // Bytes 4540 - 457f
+       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, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xAF,
+       0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x96,
+       0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x97,
+       // Bytes 4580 - 45bf
+       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, 0xBC, 0x09, 0x46, 0xE0, 0xAC, 0xA2,
+       0xE0, 0xAC, 0xBC, 0x09, 0x46, 0xE0, 0xBE, 0xB2,
+       0xE0, 0xBE, 0x80, 0x9D, 0x46, 0xE0, 0xBE, 0xB3,
+       // Bytes 45c0 - 45ff
+       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, 0x48, 0xF0, 0x9D, 0x86, 0xBA, 0xF0,
+       0x9D, 0x85, 0xA5, 0xAD, 0x49, 0xE0, 0xBE, 0xB2,
+       0xE0, 0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0x9E, 0x49,
+       // Bytes 4600 - 463f
+       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, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0,
+       0x9D, 0x85, 0xB0, 0xAE, 0x4C, 0xF0, 0x9D, 0x85,
+       0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85,
+       // Bytes 4640 - 467f
+       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, 0xAF, 0xAE, 0x4C, 0xF0, 0x9D, 0x86,
+       0xBA, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85,
+       0xAE, 0xAE, 0x4C, 0xF0, 0x9D, 0x86, 0xBA, 0xF0,
+       // Bytes 4680 - 46bf
+       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, 0xA5, 0x83, 0x45, 0xCC, 0x82, 0xC9,
+       0x83, 0x45, 0xCC, 0x84, 0xC9, 0x83, 0x45, 0xCC,
+       0xA3, 0xB5, 0x83, 0x45, 0xCC, 0xA7, 0xA5, 0x83,
+       // Bytes 46c0 - 46ff
+       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, 0xA3, 0xB5, 0x83, 0x4F, 0xCC, 0xA8,
+       0xA5, 0x83, 0x52, 0xCC, 0xA3, 0xB5, 0x83, 0x53,
+       0xCC, 0x81, 0xC9, 0x83, 0x53, 0xCC, 0x8C, 0xC9,
+       // Bytes 4700 - 473f
+       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, 0xCC, 0x88, 0xC9, 0x83, 0x61, 0xCC,
+       0x8A, 0xC9, 0x83, 0x61, 0xCC, 0xA3, 0xB5, 0x83,
+       0x63, 0xCC, 0xA7, 0xA5, 0x83, 0x65, 0xCC, 0x82,
+       // Bytes 4740 - 477f
+       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, 0x6F, 0xCC, 0x87, 0xC9, 0x83, 0x6F,
+       0xCC, 0x88, 0xC9, 0x83, 0x6F, 0xCC, 0x9B, 0xAD,
+       0x83, 0x6F, 0xCC, 0xA3, 0xB5, 0x83, 0x6F, 0xCC,
+       // Bytes 4780 - 47bf
+       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, 0x84, 0xCE, 0x91, 0xCC, 0x93, 0xC9,
+       0x84, 0xCE, 0x91, 0xCC, 0x94, 0xC9, 0x84, 0xCE,
+       0x95, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0x95, 0xCC,
+       // Bytes 47c0 - 47ff
+       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, 0x94, 0xC9, 0x84, 0xCE, 0xA9, 0xCC,
+       0x93, 0xC9, 0x84, 0xCE, 0xA9, 0xCC, 0x94, 0xC9,
+       0x84, 0xCE, 0xB1, 0xCC, 0x80, 0xC9, 0x84, 0xCE,
+       // Bytes 4800 - 483f
+       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, 0xB7, 0xCC, 0x81, 0xC9, 0x84, 0xCE,
+       0xB7, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB7, 0xCC,
+       0x94, 0xC9, 0x84, 0xCE, 0xB7, 0xCD, 0x82, 0xC9,
+       // Bytes 4840 - 487f
+       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, 0x84, 0xCF, 0x85, 0xCC, 0x94, 0xC9,
+       0x84, 0xCF, 0x89, 0xCC, 0x80, 0xC9, 0x84, 0xCF,
+       0x89, 0xCC, 0x81, 0xC9, 0x84, 0xCF, 0x89, 0xCC,
+       // Bytes 4880 - 48bf
+       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, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE,
+       0x91, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE,
+       0x91, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE,
+       // Bytes 48c0 - 48ff
+       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, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE,
+       0xA9, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE,
+       0xA9, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE,
+       // Bytes 4900 - 493f
+       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, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE,
+       0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE,
+       0xB1, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE,
+       // Bytes 4940 - 497f
+       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, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE,
+       0xB7, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE,
+       0xB7, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCF,
+       // Bytes 4980 - 49bf
+       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, 0x94, 0xCD, 0x82, 0xCA, 0x42, 0xCC,
+       0x80, 0xC9, 0x32, 0x42, 0xCC, 0x81, 0xC9, 0x32,
+       0x42, 0xCC, 0x93, 0xC9, 0x32, 0x43, 0xE1, 0x85,
+       // Bytes 49c0 - 49ff
+       0xA1, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA2, 0x01,
+       0x00, 0x43, 0xE1, 0x85, 0xA3, 0x01, 0x00, 0x43,
+       0xE1, 0x85, 0xA4, 0x01, 0x00, 0x43, 0xE1, 0x85,
+       0xA5, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA6, 0x01,
+       0x00, 0x43, 0xE1, 0x85, 0xA7, 0x01, 0x00, 0x43,
+       0xE1, 0x85, 0xA8, 0x01, 0x00, 0x43, 0xE1, 0x85,
+       0xA9, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAA, 0x01,
+       0x00, 0x43, 0xE1, 0x85, 0xAB, 0x01, 0x00, 0x43,
+       // Bytes 4a00 - 4a3f
+       0xE1, 0x85, 0xAC, 0x01, 0x00, 0x43, 0xE1, 0x85,
+       0xAD, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAE, 0x01,
+       0x00, 0x43, 0xE1, 0x85, 0xAF, 0x01, 0x00, 0x43,
+       0xE1, 0x85, 0xB0, 0x01, 0x00, 0x43, 0xE1, 0x85,
+       0xB1, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xB2, 0x01,
+       0x00, 0x43, 0xE1, 0x85, 0xB3, 0x01, 0x00, 0x43,
+       0xE1, 0x85, 0xB4, 0x01, 0x00, 0x43, 0xE1, 0x85,
+       0xB5, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xAA, 0x01,
+       // Bytes 4a40 - 4a7f
+       0x00, 0x43, 0xE1, 0x86, 0xAC, 0x01, 0x00, 0x43,
+       0xE1, 0x86, 0xAD, 0x01, 0x00, 0x43, 0xE1, 0x86,
+       0xB0, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB1, 0x01,
+       0x00, 0x43, 0xE1, 0x86, 0xB2, 0x01, 0x00, 0x43,
+       0xE1, 0x86, 0xB3, 0x01, 0x00, 0x43, 0xE1, 0x86,
+       0xB4, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB5, 0x01,
+       0x00, 0x44, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x32,
+       0x43, 0xE3, 0x82, 0x99, 0x0D, 0x03, 0x43, 0xE3,
+       // Bytes 4a80 - 4abf
+       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, 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: 10442 bytes (10.20 KiB). Checksum: 4ba400a9d8208e03.
+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 < 45:
+               return uint16(nfcValues[n<<6+uint32(b)])
+       default:
+               n -= 45
+               return uint16(nfcSparse.lookup(n, b))
+       }
+}
+
+// nfcValues: 47 blocks, 3008 entries, 6016 bytes
+// The third block is the zero block.
+var nfcValues = [3008]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: 0x4688, 0xc3: 0x2f79, 0xc4: 0x4697, 0xc5: 0x469c,
+       0xc6: 0xa000, 0xc7: 0x46a6, 0xc8: 0x2fe2, 0xc9: 0x2fe7, 0xca: 0x46ab, 0xcb: 0x2ffb,
+       0xcc: 0x306e, 0xcd: 0x3073, 0xce: 0x3078, 0xcf: 0x46bf, 0xd1: 0x3104,
+       0xd2: 0x3127, 0xd3: 0x312c, 0xd4: 0x46c9, 0xd5: 0x46ce, 0xd6: 0x46dd,
+       0xd8: 0xa000, 0xd9: 0x31b3, 0xda: 0x31b8, 0xdb: 0x31bd, 0xdc: 0x470f, 0xdd: 0x3235,
+       0xe0: 0x327b, 0xe1: 0x3280, 0xe2: 0x4719, 0xe3: 0x3285,
+       0xe4: 0x4728, 0xe5: 0x472d, 0xe6: 0xa000, 0xe7: 0x4737, 0xe8: 0x32ee, 0xe9: 0x32f3,
+       0xea: 0x473c, 0xeb: 0x3307, 0xec: 0x337f, 0xed: 0x3384, 0xee: 0x3389, 0xef: 0x4750,
+       0xf1: 0x3415, 0xf2: 0x3438, 0xf3: 0x343d, 0xf4: 0x475a, 0xf5: 0x475f,
+       0xf6: 0x476e, 0xf8: 0xa000, 0xf9: 0x34c9, 0xfa: 0x34ce, 0xfb: 0x34d3,
+       0xfc: 0x47a0, 0xfd: 0x3550, 0xff: 0x3569,
+       // Block 0x4, offset 0x100
+       0x100: 0x2f7e, 0x101: 0x328a, 0x102: 0x468d, 0x103: 0x471e, 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: 0x46b0, 0x113: 0x4741, 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: 0x46d3, 0x14d: 0x4764, 0x14e: 0x3131, 0x14f: 0x3442, 0x150: 0x313b, 0x151: 0x344c,
+       0x154: 0x3159, 0x155: 0x346a, 0x156: 0x3172, 0x157: 0x3483,
+       0x158: 0x3163, 0x159: 0x3474, 0x15a: 0x46f6, 0x15b: 0x4787, 0x15c: 0x317c, 0x15d: 0x348d,
+       0x15e: 0x318b, 0x15f: 0x349c, 0x160: 0x46fb, 0x161: 0x478c, 0x162: 0x31a4, 0x163: 0x34ba,
+       0x164: 0x3195, 0x165: 0x34ab, 0x168: 0x4705, 0x169: 0x4796,
+       0x16a: 0x470a, 0x16b: 0x479b, 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: 0x46ec, 0x1ab: 0x477d, 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: 0x4692, 0x1e7: 0x4723, 0x1e8: 0x46ba, 0x1e9: 0x474b,
+       0x1ea: 0x395f, 0x1eb: 0x3aee, 0x1ec: 0x393c, 0x1ed: 0x3acb, 0x1ee: 0x46d8, 0x1ef: 0x4769,
+       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: 0x49ae, 0x241: 0x49b3, 0x242: 0x9932, 0x243: 0x49b8, 0x244: 0x4a71, 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: 0x47fe, 0x2ad: 0x3697, 0x2ae: 0x4828, 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: 0x8132, 0x401: 0x8132, 0x402: 0x812d, 0x403: 0x8132, 0x404: 0x8132, 0x405: 0x8132,
+       0x406: 0x8132, 0x407: 0x8132, 0x408: 0x8132, 0x409: 0x8132, 0x40a: 0x812d, 0x40b: 0x8132,
+       0x40c: 0x8132, 0x40d: 0x8135, 0x40e: 0x812a, 0x40f: 0x812d, 0x410: 0x8129, 0x411: 0x8132,
+       0x412: 0x8132, 0x413: 0x8132, 0x414: 0x8132, 0x415: 0x8132, 0x416: 0x8132, 0x417: 0x8132,
+       0x418: 0x8132, 0x419: 0x8132, 0x41a: 0x8132, 0x41b: 0x8132, 0x41c: 0x8132, 0x41d: 0x8132,
+       0x41e: 0x8132, 0x41f: 0x8132, 0x420: 0x8132, 0x421: 0x8132, 0x422: 0x8132, 0x423: 0x8132,
+       0x424: 0x8132, 0x425: 0x8132, 0x426: 0x8132, 0x427: 0x8132, 0x428: 0x8132, 0x429: 0x8132,
+       0x42a: 0x8132, 0x42b: 0x8132, 0x42c: 0x8132, 0x42d: 0x8132, 0x42e: 0x8132, 0x42f: 0x8132,
+       0x430: 0x8132, 0x431: 0x8132, 0x432: 0x8132, 0x433: 0x8132, 0x434: 0x8132, 0x435: 0x8132,
+       0x436: 0x8133, 0x437: 0x8131, 0x438: 0x8131, 0x439: 0x812d, 0x43b: 0x8132,
+       0x43c: 0x8134, 0x43d: 0x812d, 0x43e: 0x8132, 0x43f: 0x812d,
+       // Block 0x11, offset 0x440
+       0x440: 0x2f97, 0x441: 0x32a3, 0x442: 0x2fa1, 0x443: 0x32ad, 0x444: 0x2fa6, 0x445: 0x32b2,
+       0x446: 0x2fab, 0x447: 0x32b7, 0x448: 0x38cc, 0x449: 0x3a5b, 0x44a: 0x2fc4, 0x44b: 0x32d0,
+       0x44c: 0x2fce, 0x44d: 0x32da, 0x44e: 0x2fdd, 0x44f: 0x32e9, 0x450: 0x2fd3, 0x451: 0x32df,
+       0x452: 0x2fd8, 0x453: 0x32e4, 0x454: 0x38ef, 0x455: 0x3a7e, 0x456: 0x38f6, 0x457: 0x3a85,
+       0x458: 0x3019, 0x459: 0x3325, 0x45a: 0x301e, 0x45b: 0x332a, 0x45c: 0x3904, 0x45d: 0x3a93,
+       0x45e: 0x3023, 0x45f: 0x332f, 0x460: 0x3032, 0x461: 0x333e, 0x462: 0x3050, 0x463: 0x335c,
+       0x464: 0x305f, 0x465: 0x336b, 0x466: 0x3055, 0x467: 0x3361, 0x468: 0x3064, 0x469: 0x3370,
+       0x46a: 0x3069, 0x46b: 0x3375, 0x46c: 0x30af, 0x46d: 0x33bb, 0x46e: 0x390b, 0x46f: 0x3a9a,
+       0x470: 0x30b9, 0x471: 0x33ca, 0x472: 0x30c3, 0x473: 0x33d4, 0x474: 0x30cd, 0x475: 0x33de,
+       0x476: 0x46c4, 0x477: 0x4755, 0x478: 0x3912, 0x479: 0x3aa1, 0x47a: 0x30e6, 0x47b: 0x33f7,
+       0x47c: 0x30e1, 0x47d: 0x33f2, 0x47e: 0x30eb, 0x47f: 0x33fc,
+       // Block 0x12, offset 0x480
+       0x480: 0x30f0, 0x481: 0x3401, 0x482: 0x30f5, 0x483: 0x3406, 0x484: 0x3109, 0x485: 0x341a,
+       0x486: 0x3113, 0x487: 0x3424, 0x488: 0x3122, 0x489: 0x3433, 0x48a: 0x311d, 0x48b: 0x342e,
+       0x48c: 0x3935, 0x48d: 0x3ac4, 0x48e: 0x3943, 0x48f: 0x3ad2, 0x490: 0x394a, 0x491: 0x3ad9,
+       0x492: 0x3951, 0x493: 0x3ae0, 0x494: 0x314f, 0x495: 0x3460, 0x496: 0x3154, 0x497: 0x3465,
+       0x498: 0x315e, 0x499: 0x346f, 0x49a: 0x46f1, 0x49b: 0x4782, 0x49c: 0x3997, 0x49d: 0x3b26,
+       0x49e: 0x3177, 0x49f: 0x3488, 0x4a0: 0x3181, 0x4a1: 0x3492, 0x4a2: 0x4700, 0x4a3: 0x4791,
+       0x4a4: 0x399e, 0x4a5: 0x3b2d, 0x4a6: 0x39a5, 0x4a7: 0x3b34, 0x4a8: 0x39ac, 0x4a9: 0x3b3b,
+       0x4aa: 0x3190, 0x4ab: 0x34a1, 0x4ac: 0x319a, 0x4ad: 0x34b0, 0x4ae: 0x31ae, 0x4af: 0x34c4,
+       0x4b0: 0x31a9, 0x4b1: 0x34bf, 0x4b2: 0x31ea, 0x4b3: 0x3500, 0x4b4: 0x31f9, 0x4b5: 0x350f,
+       0x4b6: 0x31f4, 0x4b7: 0x350a, 0x4b8: 0x39b3, 0x4b9: 0x3b42, 0x4ba: 0x39ba, 0x4bb: 0x3b49,
+       0x4bc: 0x31fe, 0x4bd: 0x3514, 0x4be: 0x3203, 0x4bf: 0x3519,
+       // Block 0x13, offset 0x4c0
+       0x4c0: 0x3208, 0x4c1: 0x351e, 0x4c2: 0x320d, 0x4c3: 0x3523, 0x4c4: 0x321c, 0x4c5: 0x3532,
+       0x4c6: 0x3217, 0x4c7: 0x352d, 0x4c8: 0x3221, 0x4c9: 0x353c, 0x4ca: 0x3226, 0x4cb: 0x3541,
+       0x4cc: 0x322b, 0x4cd: 0x3546, 0x4ce: 0x3249, 0x4cf: 0x3564, 0x4d0: 0x3262, 0x4d1: 0x3582,
+       0x4d2: 0x3271, 0x4d3: 0x3591, 0x4d4: 0x3276, 0x4d5: 0x3596, 0x4d6: 0x337a, 0x4d7: 0x34a6,
+       0x4d8: 0x3537, 0x4d9: 0x3573, 0x4db: 0x35d1,
+       0x4e0: 0x46a1, 0x4e1: 0x4732, 0x4e2: 0x2f83, 0x4e3: 0x328f,
+       0x4e4: 0x3878, 0x4e5: 0x3a07, 0x4e6: 0x3871, 0x4e7: 0x3a00, 0x4e8: 0x3886, 0x4e9: 0x3a15,
+       0x4ea: 0x387f, 0x4eb: 0x3a0e, 0x4ec: 0x38be, 0x4ed: 0x3a4d, 0x4ee: 0x3894, 0x4ef: 0x3a23,
+       0x4f0: 0x388d, 0x4f1: 0x3a1c, 0x4f2: 0x38a2, 0x4f3: 0x3a31, 0x4f4: 0x389b, 0x4f5: 0x3a2a,
+       0x4f6: 0x38c5, 0x4f7: 0x3a54, 0x4f8: 0x46b5, 0x4f9: 0x4746, 0x4fa: 0x3000, 0x4fb: 0x330c,
+       0x4fc: 0x2fec, 0x4fd: 0x32f8, 0x4fe: 0x38da, 0x4ff: 0x3a69,
+       // Block 0x14, offset 0x500
+       0x500: 0x38d3, 0x501: 0x3a62, 0x502: 0x38e8, 0x503: 0x3a77, 0x504: 0x38e1, 0x505: 0x3a70,
+       0x506: 0x38fd, 0x507: 0x3a8c, 0x508: 0x3091, 0x509: 0x339d, 0x50a: 0x30a5, 0x50b: 0x33b1,
+       0x50c: 0x46e7, 0x50d: 0x4778, 0x50e: 0x3136, 0x50f: 0x3447, 0x510: 0x3920, 0x511: 0x3aaf,
+       0x512: 0x3919, 0x513: 0x3aa8, 0x514: 0x392e, 0x515: 0x3abd, 0x516: 0x3927, 0x517: 0x3ab6,
+       0x518: 0x3989, 0x519: 0x3b18, 0x51a: 0x396d, 0x51b: 0x3afc, 0x51c: 0x3966, 0x51d: 0x3af5,
+       0x51e: 0x397b, 0x51f: 0x3b0a, 0x520: 0x3974, 0x521: 0x3b03, 0x522: 0x3982, 0x523: 0x3b11,
+       0x524: 0x31e5, 0x525: 0x34fb, 0x526: 0x31c7, 0x527: 0x34dd, 0x528: 0x39e4, 0x529: 0x3b73,
+       0x52a: 0x39dd, 0x52b: 0x3b6c, 0x52c: 0x39f2, 0x52d: 0x3b81, 0x52e: 0x39eb, 0x52f: 0x3b7a,
+       0x530: 0x39f9, 0x531: 0x3b88, 0x532: 0x3230, 0x533: 0x354b, 0x534: 0x3258, 0x535: 0x3578,
+       0x536: 0x3253, 0x537: 0x356e, 0x538: 0x323f, 0x539: 0x355a,
+       // Block 0x15, offset 0x540
+       0x540: 0x4804, 0x541: 0x480a, 0x542: 0x491e, 0x543: 0x4936, 0x544: 0x4926, 0x545: 0x493e,
+       0x546: 0x492e, 0x547: 0x4946, 0x548: 0x47aa, 0x549: 0x47b0, 0x54a: 0x488e, 0x54b: 0x48a6,
+       0x54c: 0x4896, 0x54d: 0x48ae, 0x54e: 0x489e, 0x54f: 0x48b6, 0x550: 0x4816, 0x551: 0x481c,
+       0x552: 0x3db8, 0x553: 0x3dc8, 0x554: 0x3dc0, 0x555: 0x3dd0,
+       0x558: 0x47b6, 0x559: 0x47bc, 0x55a: 0x3ce8, 0x55b: 0x3cf8, 0x55c: 0x3cf0, 0x55d: 0x3d00,
+       0x560: 0x482e, 0x561: 0x4834, 0x562: 0x494e, 0x563: 0x4966,
+       0x564: 0x4956, 0x565: 0x496e, 0x566: 0x495e, 0x567: 0x4976, 0x568: 0x47c2, 0x569: 0x47c8,
+       0x56a: 0x48be, 0x56b: 0x48d6, 0x56c: 0x48c6, 0x56d: 0x48de, 0x56e: 0x48ce, 0x56f: 0x48e6,
+       0x570: 0x4846, 0x571: 0x484c, 0x572: 0x3e18, 0x573: 0x3e30, 0x574: 0x3e20, 0x575: 0x3e38,
+       0x576: 0x3e28, 0x577: 0x3e40, 0x578: 0x47ce, 0x579: 0x47d4, 0x57a: 0x3d18, 0x57b: 0x3d30,
+       0x57c: 0x3d20, 0x57d: 0x3d38, 0x57e: 0x3d28, 0x57f: 0x3d40,
+       // Block 0x16, offset 0x580
+       0x580: 0x4852, 0x581: 0x4858, 0x582: 0x3e48, 0x583: 0x3e58, 0x584: 0x3e50, 0x585: 0x3e60,
+       0x588: 0x47da, 0x589: 0x47e0, 0x58a: 0x3d48, 0x58b: 0x3d58,
+       0x58c: 0x3d50, 0x58d: 0x3d60, 0x590: 0x4864, 0x591: 0x486a,
+       0x592: 0x3e80, 0x593: 0x3e98, 0x594: 0x3e88, 0x595: 0x3ea0, 0x596: 0x3e90, 0x597: 0x3ea8,
+       0x599: 0x47e6, 0x59b: 0x3d68, 0x59d: 0x3d70,
+       0x59f: 0x3d78, 0x5a0: 0x487c, 0x5a1: 0x4882, 0x5a2: 0x497e, 0x5a3: 0x4996,
+       0x5a4: 0x4986, 0x5a5: 0x499e, 0x5a6: 0x498e, 0x5a7: 0x49a6, 0x5a8: 0x47ec, 0x5a9: 0x47f2,
+       0x5aa: 0x48ee, 0x5ab: 0x4906, 0x5ac: 0x48f6, 0x5ad: 0x490e, 0x5ae: 0x48fe, 0x5af: 0x4916,
+       0x5b0: 0x47f8, 0x5b1: 0x431e, 0x5b2: 0x3691, 0x5b3: 0x4324, 0x5b4: 0x4822, 0x5b5: 0x432a,
+       0x5b6: 0x36a3, 0x5b7: 0x4330, 0x5b8: 0x36c1, 0x5b9: 0x4336, 0x5ba: 0x36d9, 0x5bb: 0x433c,
+       0x5bc: 0x4870, 0x5bd: 0x4342,
+       // Block 0x17, offset 0x5c0
+       0x5c0: 0x3da0, 0x5c1: 0x3da8, 0x5c2: 0x4184, 0x5c3: 0x41a2, 0x5c4: 0x418e, 0x5c5: 0x41ac,
+       0x5c6: 0x4198, 0x5c7: 0x41b6, 0x5c8: 0x3cd8, 0x5c9: 0x3ce0, 0x5ca: 0x40d0, 0x5cb: 0x40ee,
+       0x5cc: 0x40da, 0x5cd: 0x40f8, 0x5ce: 0x40e4, 0x5cf: 0x4102, 0x5d0: 0x3de8, 0x5d1: 0x3df0,
+       0x5d2: 0x41c0, 0x5d3: 0x41de, 0x5d4: 0x41ca, 0x5d5: 0x41e8, 0x5d6: 0x41d4, 0x5d7: 0x41f2,
+       0x5d8: 0x3d08, 0x5d9: 0x3d10, 0x5da: 0x410c, 0x5db: 0x412a, 0x5dc: 0x4116, 0x5dd: 0x4134,
+       0x5de: 0x4120, 0x5df: 0x413e, 0x5e0: 0x3ec0, 0x5e1: 0x3ec8, 0x5e2: 0x41fc, 0x5e3: 0x421a,
+       0x5e4: 0x4206, 0x5e5: 0x4224, 0x5e6: 0x4210, 0x5e7: 0x422e, 0x5e8: 0x3d80, 0x5e9: 0x3d88,
+       0x5ea: 0x4148, 0x5eb: 0x4166, 0x5ec: 0x4152, 0x5ed: 0x4170, 0x5ee: 0x415c, 0x5ef: 0x417a,
+       0x5f0: 0x3685, 0x5f1: 0x367f, 0x5f2: 0x3d90, 0x5f3: 0x368b, 0x5f4: 0x3d98,
+       0x5f6: 0x4810, 0x5f7: 0x3db0, 0x5f8: 0x35f5, 0x5f9: 0x35ef, 0x5fa: 0x35e3, 0x5fb: 0x42ee,
+       0x5fc: 0x35fb, 0x5fd: 0x8100, 0x5fe: 0x01d3, 0x5ff: 0xa100,
+       // Block 0x18, offset 0x600
+       0x600: 0x8100, 0x601: 0x35a7, 0x602: 0x3dd8, 0x603: 0x369d, 0x604: 0x3de0,
+       0x606: 0x483a, 0x607: 0x3df8, 0x608: 0x3601, 0x609: 0x42f4, 0x60a: 0x360d, 0x60b: 0x42fa,
+       0x60c: 0x3619, 0x60d: 0x3b8f, 0x60e: 0x3b96, 0x60f: 0x3b9d, 0x610: 0x36b5, 0x611: 0x36af,
+       0x612: 0x3e00, 0x613: 0x44e4, 0x616: 0x36bb, 0x617: 0x3e10,
+       0x618: 0x3631, 0x619: 0x362b, 0x61a: 0x361f, 0x61b: 0x4300, 0x61d: 0x3ba4,
+       0x61e: 0x3bab, 0x61f: 0x3bb2, 0x620: 0x36eb, 0x621: 0x36e5, 0x622: 0x3e68, 0x623: 0x44ec,
+       0x624: 0x36cd, 0x625: 0x36d3, 0x626: 0x36f1, 0x627: 0x3e78, 0x628: 0x3661, 0x629: 0x365b,
+       0x62a: 0x364f, 0x62b: 0x430c, 0x62c: 0x3649, 0x62d: 0x359b, 0x62e: 0x42e8, 0x62f: 0x0081,
+       0x632: 0x3eb0, 0x633: 0x36f7, 0x634: 0x3eb8,
+       0x636: 0x4888, 0x637: 0x3ed0, 0x638: 0x363d, 0x639: 0x4306, 0x63a: 0x366d, 0x63b: 0x4318,
+       0x63c: 0x3679, 0x63d: 0x4256, 0x63e: 0xa100,
+       // Block 0x19, offset 0x640
+       0x641: 0x3c06, 0x643: 0xa000, 0x644: 0x3c0d, 0x645: 0xa000,
+       0x647: 0x3c14, 0x648: 0xa000, 0x649: 0x3c1b,
+       0x64d: 0xa000,
+       0x660: 0x2f65, 0x661: 0xa000, 0x662: 0x3c29,
+       0x664: 0xa000, 0x665: 0xa000,
+       0x66d: 0x3c22, 0x66e: 0x2f60, 0x66f: 0x2f6a,
+       0x670: 0x3c30, 0x671: 0x3c37, 0x672: 0xa000, 0x673: 0xa000, 0x674: 0x3c3e, 0x675: 0x3c45,
+       0x676: 0xa000, 0x677: 0xa000, 0x678: 0x3c4c, 0x679: 0x3c53, 0x67a: 0xa000, 0x67b: 0xa000,
+       0x67c: 0xa000, 0x67d: 0xa000,
+       // Block 0x1a, offset 0x680
+       0x680: 0x3c5a, 0x681: 0x3c61, 0x682: 0xa000, 0x683: 0xa000, 0x684: 0x3c76, 0x685: 0x3c7d,
+       0x686: 0xa000, 0x687: 0xa000, 0x688: 0x3c84, 0x689: 0x3c8b,
+       0x691: 0xa000,
+       0x692: 0xa000,
+       0x6a2: 0xa000,
+       0x6a8: 0xa000, 0x6a9: 0xa000,
+       0x6ab: 0xa000, 0x6ac: 0x3ca0, 0x6ad: 0x3ca7, 0x6ae: 0x3cae, 0x6af: 0x3cb5,
+       0x6b2: 0xa000, 0x6b3: 0xa000, 0x6b4: 0xa000, 0x6b5: 0xa000,
+       // Block 0x1b, offset 0x6c0
+       0x6c6: 0xa000, 0x6cb: 0xa000,
+       0x6cc: 0x3f08, 0x6cd: 0xa000, 0x6ce: 0x3f10, 0x6cf: 0xa000, 0x6d0: 0x3f18, 0x6d1: 0xa000,
+       0x6d2: 0x3f20, 0x6d3: 0xa000, 0x6d4: 0x3f28, 0x6d5: 0xa000, 0x6d6: 0x3f30, 0x6d7: 0xa000,
+       0x6d8: 0x3f38, 0x6d9: 0xa000, 0x6da: 0x3f40, 0x6db: 0xa000, 0x6dc: 0x3f48, 0x6dd: 0xa000,
+       0x6de: 0x3f50, 0x6df: 0xa000, 0x6e0: 0x3f58, 0x6e1: 0xa000, 0x6e2: 0x3f60,
+       0x6e4: 0xa000, 0x6e5: 0x3f68, 0x6e6: 0xa000, 0x6e7: 0x3f70, 0x6e8: 0xa000, 0x6e9: 0x3f78,
+       0x6ef: 0xa000,
+       0x6f0: 0x3f80, 0x6f1: 0x3f88, 0x6f2: 0xa000, 0x6f3: 0x3f90, 0x6f4: 0x3f98, 0x6f5: 0xa000,
+       0x6f6: 0x3fa0, 0x6f7: 0x3fa8, 0x6f8: 0xa000, 0x6f9: 0x3fb0, 0x6fa: 0x3fb8, 0x6fb: 0xa000,
+       0x6fc: 0x3fc0, 0x6fd: 0x3fc8,
+       // Block 0x1c, offset 0x700
+       0x714: 0x3f00,
+       0x719: 0x9903, 0x71a: 0x9903, 0x71b: 0x8100, 0x71c: 0x8100, 0x71d: 0xa000,
+       0x71e: 0x3fd0,
+       0x726: 0xa000,
+       0x72b: 0xa000, 0x72c: 0x3fe0, 0x72d: 0xa000, 0x72e: 0x3fe8, 0x72f: 0xa000,
+       0x730: 0x3ff0, 0x731: 0xa000, 0x732: 0x3ff8, 0x733: 0xa000, 0x734: 0x4000, 0x735: 0xa000,
+       0x736: 0x4008, 0x737: 0xa000, 0x738: 0x4010, 0x739: 0xa000, 0x73a: 0x4018, 0x73b: 0xa000,
+       0x73c: 0x4020, 0x73d: 0xa000, 0x73e: 0x4028, 0x73f: 0xa000,
+       // Block 0x1d, offset 0x740
+       0x740: 0x4030, 0x741: 0xa000, 0x742: 0x4038, 0x744: 0xa000, 0x745: 0x4040,
+       0x746: 0xa000, 0x747: 0x4048, 0x748: 0xa000, 0x749: 0x4050,
+       0x74f: 0xa000, 0x750: 0x4058, 0x751: 0x4060,
+       0x752: 0xa000, 0x753: 0x4068, 0x754: 0x4070, 0x755: 0xa000, 0x756: 0x4078, 0x757: 0x4080,
+       0x758: 0xa000, 0x759: 0x4088, 0x75a: 0x4090, 0x75b: 0xa000, 0x75c: 0x4098, 0x75d: 0x40a0,
+       0x76f: 0xa000,
+       0x770: 0xa000, 0x771: 0xa000, 0x772: 0xa000, 0x774: 0x3fd8,
+       0x777: 0x40a8, 0x778: 0x40b0, 0x779: 0x40b8, 0x77a: 0x40c0,
+       0x77d: 0xa000, 0x77e: 0x40c8,
+       // Block 0x1e, offset 0x780
+       0x780: 0x1377, 0x781: 0x0cfb, 0x782: 0x13d3, 0x783: 0x139f, 0x784: 0x0e57, 0x785: 0x06eb,
+       0x786: 0x08df, 0x787: 0x162b, 0x788: 0x162b, 0x789: 0x0a0b, 0x78a: 0x145f, 0x78b: 0x0943,
+       0x78c: 0x0a07, 0x78d: 0x0bef, 0x78e: 0x0fcf, 0x78f: 0x115f, 0x790: 0x1297, 0x791: 0x12d3,
+       0x792: 0x1307, 0x793: 0x141b, 0x794: 0x0d73, 0x795: 0x0dff, 0x796: 0x0eab, 0x797: 0x0f43,
+       0x798: 0x125f, 0x799: 0x1447, 0x79a: 0x1573, 0x79b: 0x070f, 0x79c: 0x08b3, 0x79d: 0x0d87,
+       0x79e: 0x0ecf, 0x79f: 0x1293, 0x7a0: 0x15c3, 0x7a1: 0x0ab3, 0x7a2: 0x0e77, 0x7a3: 0x1283,
+       0x7a4: 0x1317, 0x7a5: 0x0c23, 0x7a6: 0x11bb, 0x7a7: 0x12df, 0x7a8: 0x0b1f, 0x7a9: 0x0d0f,
+       0x7aa: 0x0e17, 0x7ab: 0x0f1b, 0x7ac: 0x1427, 0x7ad: 0x074f, 0x7ae: 0x07e7, 0x7af: 0x0853,
+       0x7b0: 0x0c8b, 0x7b1: 0x0d7f, 0x7b2: 0x0ecb, 0x7b3: 0x0fef, 0x7b4: 0x1177, 0x7b5: 0x128b,
+       0x7b6: 0x12a3, 0x7b7: 0x13c7, 0x7b8: 0x14ef, 0x7b9: 0x15a3, 0x7ba: 0x15bf, 0x7bb: 0x102b,
+       0x7bc: 0x106b, 0x7bd: 0x1123, 0x7be: 0x1243, 0x7bf: 0x147b,
+       // Block 0x1f, offset 0x7c0
+       0x7c0: 0x15cb, 0x7c1: 0x134b, 0x7c2: 0x09c7, 0x7c3: 0x0b3b, 0x7c4: 0x10db, 0x7c5: 0x119b,
+       0x7c6: 0x0eff, 0x7c7: 0x1033, 0x7c8: 0x1397, 0x7c9: 0x14e7, 0x7ca: 0x09c3, 0x7cb: 0x0a8f,
+       0x7cc: 0x0d77, 0x7cd: 0x0e2b, 0x7ce: 0x0e5f, 0x7cf: 0x1113, 0x7d0: 0x113b, 0x7d1: 0x14a7,
+       0x7d2: 0x084f, 0x7d3: 0x11a7, 0x7d4: 0x07f3, 0x7d5: 0x07ef, 0x7d6: 0x1097, 0x7d7: 0x1127,
+       0x7d8: 0x125b, 0x7d9: 0x14af, 0x7da: 0x1367, 0x7db: 0x0c27, 0x7dc: 0x0d73, 0x7dd: 0x1357,
+       0x7de: 0x06f7, 0x7df: 0x0a63, 0x7e0: 0x0b93, 0x7e1: 0x0f2f, 0x7e2: 0x0faf, 0x7e3: 0x0873,
+       0x7e4: 0x103b, 0x7e5: 0x075f, 0x7e6: 0x0b77, 0x7e7: 0x06d7, 0x7e8: 0x0deb, 0x7e9: 0x0ca3,
+       0x7ea: 0x110f, 0x7eb: 0x08c7, 0x7ec: 0x09b3, 0x7ed: 0x0ffb, 0x7ee: 0x1263, 0x7ef: 0x133b,
+       0x7f0: 0x0db7, 0x7f1: 0x13f7, 0x7f2: 0x0de3, 0x7f3: 0x0c37, 0x7f4: 0x121b, 0x7f5: 0x0c57,
+       0x7f6: 0x0fab, 0x7f7: 0x072b, 0x7f8: 0x07a7, 0x7f9: 0x07eb, 0x7fa: 0x0d53, 0x7fb: 0x10fb,
+       0x7fc: 0x11f3, 0x7fd: 0x1347, 0x7fe: 0x145b, 0x7ff: 0x085b,
+       // Block 0x20, offset 0x800
+       0x800: 0x090f, 0x801: 0x0a17, 0x802: 0x0b2f, 0x803: 0x0cbf, 0x804: 0x0e7b, 0x805: 0x103f,
+       0x806: 0x1497, 0x807: 0x157b, 0x808: 0x15cf, 0x809: 0x15e7, 0x80a: 0x0837, 0x80b: 0x0cf3,
+       0x80c: 0x0da3, 0x80d: 0x13eb, 0x80e: 0x0afb, 0x80f: 0x0bd7, 0x810: 0x0bf3, 0x811: 0x0c83,
+       0x812: 0x0e6b, 0x813: 0x0eb7, 0x814: 0x0f67, 0x815: 0x108b, 0x816: 0x112f, 0x817: 0x1193,
+       0x818: 0x13db, 0x819: 0x126b, 0x81a: 0x1403, 0x81b: 0x147f, 0x81c: 0x080f, 0x81d: 0x083b,
+       0x81e: 0x0923, 0x81f: 0x0ea7, 0x820: 0x12f3, 0x821: 0x133b, 0x822: 0x0b1b, 0x823: 0x0b8b,
+       0x824: 0x0c4f, 0x825: 0x0daf, 0x826: 0x10d7, 0x827: 0x0f23, 0x828: 0x073b, 0x829: 0x097f,
+       0x82a: 0x0a63, 0x82b: 0x0ac7, 0x82c: 0x0b97, 0x82d: 0x0f3f, 0x82e: 0x0f5b, 0x82f: 0x116b,
+       0x830: 0x118b, 0x831: 0x1463, 0x832: 0x14e3, 0x833: 0x14f3, 0x834: 0x152f, 0x835: 0x0753,
+       0x836: 0x107f, 0x837: 0x144f, 0x838: 0x14cb, 0x839: 0x0baf, 0x83a: 0x0717, 0x83b: 0x0777,
+       0x83c: 0x0a67, 0x83d: 0x0a87, 0x83e: 0x0caf, 0x83f: 0x0d73,
+       // Block 0x21, offset 0x840
+       0x840: 0x0ec3, 0x841: 0x0fcb, 0x842: 0x1277, 0x843: 0x1417, 0x844: 0x1623, 0x845: 0x0ce3,
+       0x846: 0x14a3, 0x847: 0x0833, 0x848: 0x0d2f, 0x849: 0x0d3b, 0x84a: 0x0e0f, 0x84b: 0x0e47,
+       0x84c: 0x0f4b, 0x84d: 0x0fa7, 0x84e: 0x1027, 0x84f: 0x110b, 0x850: 0x153b, 0x851: 0x07af,
+       0x852: 0x0c03, 0x853: 0x14b3, 0x854: 0x0767, 0x855: 0x0aab, 0x856: 0x0e2f, 0x857: 0x13df,
+       0x858: 0x0b67, 0x859: 0x0bb7, 0x85a: 0x0d43, 0x85b: 0x0f2f, 0x85c: 0x14bb, 0x85d: 0x0817,
+       0x85e: 0x08ff, 0x85f: 0x0a97, 0x860: 0x0cd3, 0x861: 0x0d1f, 0x862: 0x0d5f, 0x863: 0x0df3,
+       0x864: 0x0f47, 0x865: 0x0fbb, 0x866: 0x1157, 0x867: 0x12f7, 0x868: 0x1303, 0x869: 0x1457,
+       0x86a: 0x14d7, 0x86b: 0x0883, 0x86c: 0x0e4b, 0x86d: 0x0903, 0x86e: 0x0ec7, 0x86f: 0x0f6b,
+       0x870: 0x1287, 0x871: 0x14bf, 0x872: 0x15ab, 0x873: 0x15d3, 0x874: 0x0d37, 0x875: 0x0e27,
+       0x876: 0x11c3, 0x877: 0x10b7, 0x878: 0x10c3, 0x879: 0x10e7, 0x87a: 0x0f17, 0x87b: 0x0e9f,
+       0x87c: 0x1363, 0x87d: 0x0733, 0x87e: 0x122b, 0x87f: 0x081b,
+       // Block 0x22, offset 0x880
+       0x880: 0x080b, 0x881: 0x0b0b, 0x882: 0x0c2b, 0x883: 0x10f3, 0x884: 0x0a53, 0x885: 0x0e03,
+       0x886: 0x0cef, 0x887: 0x13e7, 0x888: 0x12e7, 0x889: 0x14ab, 0x88a: 0x1323, 0x88b: 0x0b27,
+       0x88c: 0x0787, 0x88d: 0x095b, 0x890: 0x09af,
+       0x892: 0x0cdf, 0x895: 0x07f7, 0x896: 0x0f1f, 0x897: 0x0fe3,
+       0x898: 0x1047, 0x899: 0x1063, 0x89a: 0x1067, 0x89b: 0x107b, 0x89c: 0x14fb, 0x89d: 0x10eb,
+       0x89e: 0x116f, 0x8a0: 0x128f, 0x8a2: 0x1353,
+       0x8a5: 0x1407, 0x8a6: 0x1433,
+       0x8aa: 0x154f, 0x8ab: 0x1553, 0x8ac: 0x1557, 0x8ad: 0x15bb, 0x8ae: 0x142b, 0x8af: 0x14c7,
+       0x8b0: 0x0757, 0x8b1: 0x077b, 0x8b2: 0x078f, 0x8b3: 0x084b, 0x8b4: 0x0857, 0x8b5: 0x0897,
+       0x8b6: 0x094b, 0x8b7: 0x0967, 0x8b8: 0x096f, 0x8b9: 0x09ab, 0x8ba: 0x09b7, 0x8bb: 0x0a93,
+       0x8bc: 0x0a9b, 0x8bd: 0x0ba3, 0x8be: 0x0bcb, 0x8bf: 0x0bd3,
+       // Block 0x23, offset 0x8c0
+       0x8c0: 0x0beb, 0x8c1: 0x0c97, 0x8c2: 0x0cc7, 0x8c3: 0x0ce7, 0x8c4: 0x0d57, 0x8c5: 0x0e1b,
+       0x8c6: 0x0e37, 0x8c7: 0x0e67, 0x8c8: 0x0ebb, 0x8c9: 0x0edb, 0x8ca: 0x0f4f, 0x8cb: 0x102f,
+       0x8cc: 0x104b, 0x8cd: 0x1053, 0x8ce: 0x104f, 0x8cf: 0x1057, 0x8d0: 0x105b, 0x8d1: 0x105f,
+       0x8d2: 0x1073, 0x8d3: 0x1077, 0x8d4: 0x109b, 0x8d5: 0x10af, 0x8d6: 0x10cb, 0x8d7: 0x112f,
+       0x8d8: 0x1137, 0x8d9: 0x113f, 0x8da: 0x1153, 0x8db: 0x117b, 0x8dc: 0x11cb, 0x8dd: 0x11ff,
+       0x8de: 0x11ff, 0x8df: 0x1267, 0x8e0: 0x130f, 0x8e1: 0x1327, 0x8e2: 0x135b, 0x8e3: 0x135f,
+       0x8e4: 0x13a3, 0x8e5: 0x13a7, 0x8e6: 0x13ff, 0x8e7: 0x1407, 0x8e8: 0x14db, 0x8e9: 0x151f,
+       0x8ea: 0x1537, 0x8eb: 0x0b9b, 0x8ec: 0x171e, 0x8ed: 0x11e3,
+       0x8f0: 0x06df, 0x8f1: 0x07e3, 0x8f2: 0x07a3, 0x8f3: 0x074b, 0x8f4: 0x078b, 0x8f5: 0x07b7,
+       0x8f6: 0x0847, 0x8f7: 0x0863, 0x8f8: 0x094b, 0x8f9: 0x0937, 0x8fa: 0x0947, 0x8fb: 0x0963,
+       0x8fc: 0x09af, 0x8fd: 0x09bf, 0x8fe: 0x0a03, 0x8ff: 0x0a0f,
+       // Block 0x24, offset 0x900
+       0x900: 0x0a2b, 0x901: 0x0a3b, 0x902: 0x0b23, 0x903: 0x0b2b, 0x904: 0x0b5b, 0x905: 0x0b7b,
+       0x906: 0x0bab, 0x907: 0x0bc3, 0x908: 0x0bb3, 0x909: 0x0bd3, 0x90a: 0x0bc7, 0x90b: 0x0beb,
+       0x90c: 0x0c07, 0x90d: 0x0c5f, 0x90e: 0x0c6b, 0x90f: 0x0c73, 0x910: 0x0c9b, 0x911: 0x0cdf,
+       0x912: 0x0d0f, 0x913: 0x0d13, 0x914: 0x0d27, 0x915: 0x0da7, 0x916: 0x0db7, 0x917: 0x0e0f,
+       0x918: 0x0e5b, 0x919: 0x0e53, 0x91a: 0x0e67, 0x91b: 0x0e83, 0x91c: 0x0ebb, 0x91d: 0x1013,
+       0x91e: 0x0edf, 0x91f: 0x0f13, 0x920: 0x0f1f, 0x921: 0x0f5f, 0x922: 0x0f7b, 0x923: 0x0f9f,
+       0x924: 0x0fc3, 0x925: 0x0fc7, 0x926: 0x0fe3, 0x927: 0x0fe7, 0x928: 0x0ff7, 0x929: 0x100b,
+       0x92a: 0x1007, 0x92b: 0x1037, 0x92c: 0x10b3, 0x92d: 0x10cb, 0x92e: 0x10e3, 0x92f: 0x111b,
+       0x930: 0x112f, 0x931: 0x114b, 0x932: 0x117b, 0x933: 0x122f, 0x934: 0x1257, 0x935: 0x12cb,
+       0x936: 0x1313, 0x937: 0x131f, 0x938: 0x1327, 0x939: 0x133f, 0x93a: 0x1353, 0x93b: 0x1343,
+       0x93c: 0x135b, 0x93d: 0x1357, 0x93e: 0x134f, 0x93f: 0x135f,
+       // Block 0x25, offset 0x940
+       0x940: 0x136b, 0x941: 0x13a7, 0x942: 0x13e3, 0x943: 0x1413, 0x944: 0x144b, 0x945: 0x146b,
+       0x946: 0x14b7, 0x947: 0x14db, 0x948: 0x14fb, 0x949: 0x150f, 0x94a: 0x151f, 0x94b: 0x152b,
+       0x94c: 0x1537, 0x94d: 0x158b, 0x94e: 0x162b, 0x94f: 0x16b5, 0x950: 0x16b0, 0x951: 0x16e2,
+       0x952: 0x0607, 0x953: 0x062f, 0x954: 0x0633, 0x955: 0x1764, 0x956: 0x1791, 0x957: 0x1809,
+       0x958: 0x1617, 0x959: 0x1627,
+       // Block 0x26, offset 0x980
+       0x980: 0x06fb, 0x981: 0x06f3, 0x982: 0x0703, 0x983: 0x1647, 0x984: 0x0747, 0x985: 0x0757,
+       0x986: 0x075b, 0x987: 0x0763, 0x988: 0x076b, 0x989: 0x076f, 0x98a: 0x077b, 0x98b: 0x0773,
+       0x98c: 0x05b3, 0x98d: 0x165b, 0x98e: 0x078f, 0x98f: 0x0793, 0x990: 0x0797, 0x991: 0x07b3,
+       0x992: 0x164c, 0x993: 0x05b7, 0x994: 0x079f, 0x995: 0x07bf, 0x996: 0x1656, 0x997: 0x07cf,
+       0x998: 0x07d7, 0x999: 0x0737, 0x99a: 0x07df, 0x99b: 0x07e3, 0x99c: 0x1831, 0x99d: 0x07ff,
+       0x99e: 0x0807, 0x99f: 0x05bf, 0x9a0: 0x081f, 0x9a1: 0x0823, 0x9a2: 0x082b, 0x9a3: 0x082f,
+       0x9a4: 0x05c3, 0x9a5: 0x0847, 0x9a6: 0x084b, 0x9a7: 0x0857, 0x9a8: 0x0863, 0x9a9: 0x0867,
+       0x9aa: 0x086b, 0x9ab: 0x0873, 0x9ac: 0x0893, 0x9ad: 0x0897, 0x9ae: 0x089f, 0x9af: 0x08af,
+       0x9b0: 0x08b7, 0x9b1: 0x08bb, 0x9b2: 0x08bb, 0x9b3: 0x08bb, 0x9b4: 0x166a, 0x9b5: 0x0e93,
+       0x9b6: 0x08cf, 0x9b7: 0x08d7, 0x9b8: 0x166f, 0x9b9: 0x08e3, 0x9ba: 0x08eb, 0x9bb: 0x08f3,
+       0x9bc: 0x091b, 0x9bd: 0x0907, 0x9be: 0x0913, 0x9bf: 0x0917,
+       // Block 0x27, offset 0x9c0
+       0x9c0: 0x091f, 0x9c1: 0x0927, 0x9c2: 0x092b, 0x9c3: 0x0933, 0x9c4: 0x093b, 0x9c5: 0x093f,
+       0x9c6: 0x093f, 0x9c7: 0x0947, 0x9c8: 0x094f, 0x9c9: 0x0953, 0x9ca: 0x095f, 0x9cb: 0x0983,
+       0x9cc: 0x0967, 0x9cd: 0x0987, 0x9ce: 0x096b, 0x9cf: 0x0973, 0x9d0: 0x080b, 0x9d1: 0x09cf,
+       0x9d2: 0x0997, 0x9d3: 0x099b, 0x9d4: 0x099f, 0x9d5: 0x0993, 0x9d6: 0x09a7, 0x9d7: 0x09a3,
+       0x9d8: 0x09bb, 0x9d9: 0x1674, 0x9da: 0x09d7, 0x9db: 0x09db, 0x9dc: 0x09e3, 0x9dd: 0x09ef,
+       0x9de: 0x09f7, 0x9df: 0x0a13, 0x9e0: 0x1679, 0x9e1: 0x167e, 0x9e2: 0x0a1f, 0x9e3: 0x0a23,
+       0x9e4: 0x0a27, 0x9e5: 0x0a1b, 0x9e6: 0x0a2f, 0x9e7: 0x05c7, 0x9e8: 0x05cb, 0x9e9: 0x0a37,
+       0x9ea: 0x0a3f, 0x9eb: 0x0a3f, 0x9ec: 0x1683, 0x9ed: 0x0a5b, 0x9ee: 0x0a5f, 0x9ef: 0x0a63,
+       0x9f0: 0x0a6b, 0x9f1: 0x1688, 0x9f2: 0x0a73, 0x9f3: 0x0a77, 0x9f4: 0x0b4f, 0x9f5: 0x0a7f,
+       0x9f6: 0x05cf, 0x9f7: 0x0a8b, 0x9f8: 0x0a9b, 0x9f9: 0x0aa7, 0x9fa: 0x0aa3, 0x9fb: 0x1692,
+       0x9fc: 0x0aaf, 0x9fd: 0x1697, 0x9fe: 0x0abb, 0x9ff: 0x0ab7,
+       // Block 0x28, offset 0xa00
+       0xa00: 0x0abf, 0xa01: 0x0acf, 0xa02: 0x0ad3, 0xa03: 0x05d3, 0xa04: 0x0ae3, 0xa05: 0x0aeb,
+       0xa06: 0x0aef, 0xa07: 0x0af3, 0xa08: 0x05d7, 0xa09: 0x169c, 0xa0a: 0x05db, 0xa0b: 0x0b0f,
+       0xa0c: 0x0b13, 0xa0d: 0x0b17, 0xa0e: 0x0b1f, 0xa0f: 0x1863, 0xa10: 0x0b37, 0xa11: 0x16a6,
+       0xa12: 0x16a6, 0xa13: 0x11d7, 0xa14: 0x0b47, 0xa15: 0x0b47, 0xa16: 0x05df, 0xa17: 0x16c9,
+       0xa18: 0x179b, 0xa19: 0x0b57, 0xa1a: 0x0b5f, 0xa1b: 0x05e3, 0xa1c: 0x0b73, 0xa1d: 0x0b83,
+       0xa1e: 0x0b87, 0xa1f: 0x0b8f, 0xa20: 0x0b9f, 0xa21: 0x05eb, 0xa22: 0x05e7, 0xa23: 0x0ba3,
+       0xa24: 0x16ab, 0xa25: 0x0ba7, 0xa26: 0x0bbb, 0xa27: 0x0bbf, 0xa28: 0x0bc3, 0xa29: 0x0bbf,
+       0xa2a: 0x0bcf, 0xa2b: 0x0bd3, 0xa2c: 0x0be3, 0xa2d: 0x0bdb, 0xa2e: 0x0bdf, 0xa2f: 0x0be7,
+       0xa30: 0x0beb, 0xa31: 0x0bef, 0xa32: 0x0bfb, 0xa33: 0x0bff, 0xa34: 0x0c17, 0xa35: 0x0c1f,
+       0xa36: 0x0c2f, 0xa37: 0x0c43, 0xa38: 0x16ba, 0xa39: 0x0c3f, 0xa3a: 0x0c33, 0xa3b: 0x0c4b,
+       0xa3c: 0x0c53, 0xa3d: 0x0c67, 0xa3e: 0x16bf, 0xa3f: 0x0c6f,
+       // Block 0x29, offset 0xa40
+       0xa40: 0x0c63, 0xa41: 0x0c5b, 0xa42: 0x05ef, 0xa43: 0x0c77, 0xa44: 0x0c7f, 0xa45: 0x0c87,
+       0xa46: 0x0c7b, 0xa47: 0x05f3, 0xa48: 0x0c97, 0xa49: 0x0c9f, 0xa4a: 0x16c4, 0xa4b: 0x0ccb,
+       0xa4c: 0x0cff, 0xa4d: 0x0cdb, 0xa4e: 0x05ff, 0xa4f: 0x0ce7, 0xa50: 0x05fb, 0xa51: 0x05f7,
+       0xa52: 0x07c3, 0xa53: 0x07c7, 0xa54: 0x0d03, 0xa55: 0x0ceb, 0xa56: 0x11ab, 0xa57: 0x0663,
+       0xa58: 0x0d0f, 0xa59: 0x0d13, 0xa5a: 0x0d17, 0xa5b: 0x0d2b, 0xa5c: 0x0d23, 0xa5d: 0x16dd,
+       0xa5e: 0x0603, 0xa5f: 0x0d3f, 0xa60: 0x0d33, 0xa61: 0x0d4f, 0xa62: 0x0d57, 0xa63: 0x16e7,
+       0xa64: 0x0d5b, 0xa65: 0x0d47, 0xa66: 0x0d63, 0xa67: 0x0607, 0xa68: 0x0d67, 0xa69: 0x0d6b,
+       0xa6a: 0x0d6f, 0xa6b: 0x0d7b, 0xa6c: 0x16ec, 0xa6d: 0x0d83, 0xa6e: 0x060b, 0xa6f: 0x0d8f,
+       0xa70: 0x16f1, 0xa71: 0x0d93, 0xa72: 0x060f, 0xa73: 0x0d9f, 0xa74: 0x0dab, 0xa75: 0x0db7,
+       0xa76: 0x0dbb, 0xa77: 0x16f6, 0xa78: 0x168d, 0xa79: 0x16fb, 0xa7a: 0x0ddb, 0xa7b: 0x1700,
+       0xa7c: 0x0de7, 0xa7d: 0x0def, 0xa7e: 0x0ddf, 0xa7f: 0x0dfb,
+       // Block 0x2a, offset 0xa80
+       0xa80: 0x0e0b, 0xa81: 0x0e1b, 0xa82: 0x0e0f, 0xa83: 0x0e13, 0xa84: 0x0e1f, 0xa85: 0x0e23,
+       0xa86: 0x1705, 0xa87: 0x0e07, 0xa88: 0x0e3b, 0xa89: 0x0e3f, 0xa8a: 0x0613, 0xa8b: 0x0e53,
+       0xa8c: 0x0e4f, 0xa8d: 0x170a, 0xa8e: 0x0e33, 0xa8f: 0x0e6f, 0xa90: 0x170f, 0xa91: 0x1714,
+       0xa92: 0x0e73, 0xa93: 0x0e87, 0xa94: 0x0e83, 0xa95: 0x0e7f, 0xa96: 0x0617, 0xa97: 0x0e8b,
+       0xa98: 0x0e9b, 0xa99: 0x0e97, 0xa9a: 0x0ea3, 0xa9b: 0x1651, 0xa9c: 0x0eb3, 0xa9d: 0x1719,
+       0xa9e: 0x0ebf, 0xa9f: 0x1723, 0xaa0: 0x0ed3, 0xaa1: 0x0edf, 0xaa2: 0x0ef3, 0xaa3: 0x1728,
+       0xaa4: 0x0f07, 0xaa5: 0x0f0b, 0xaa6: 0x172d, 0xaa7: 0x1732, 0xaa8: 0x0f27, 0xaa9: 0x0f37,
+       0xaaa: 0x061b, 0xaab: 0x0f3b, 0xaac: 0x061f, 0xaad: 0x061f, 0xaae: 0x0f53, 0xaaf: 0x0f57,
+       0xab0: 0x0f5f, 0xab1: 0x0f63, 0xab2: 0x0f6f, 0xab3: 0x0623, 0xab4: 0x0f87, 0xab5: 0x1737,
+       0xab6: 0x0fa3, 0xab7: 0x173c, 0xab8: 0x0faf, 0xab9: 0x16a1, 0xaba: 0x0fbf, 0xabb: 0x1741,
+       0xabc: 0x1746, 0xabd: 0x174b, 0xabe: 0x0627, 0xabf: 0x062b,
+       // Block 0x2b, offset 0xac0
+       0xac0: 0x0ff7, 0xac1: 0x1755, 0xac2: 0x1750, 0xac3: 0x175a, 0xac4: 0x175f, 0xac5: 0x0fff,
+       0xac6: 0x1003, 0xac7: 0x1003, 0xac8: 0x100b, 0xac9: 0x0633, 0xaca: 0x100f, 0xacb: 0x0637,
+       0xacc: 0x063b, 0xacd: 0x1769, 0xace: 0x1023, 0xacf: 0x102b, 0xad0: 0x1037, 0xad1: 0x063f,
+       0xad2: 0x176e, 0xad3: 0x105b, 0xad4: 0x1773, 0xad5: 0x1778, 0xad6: 0x107b, 0xad7: 0x1093,
+       0xad8: 0x0643, 0xad9: 0x109b, 0xada: 0x109f, 0xadb: 0x10a3, 0xadc: 0x177d, 0xadd: 0x1782,
+       0xade: 0x1782, 0xadf: 0x10bb, 0xae0: 0x0647, 0xae1: 0x1787, 0xae2: 0x10cf, 0xae3: 0x10d3,
+       0xae4: 0x064b, 0xae5: 0x178c, 0xae6: 0x10ef, 0xae7: 0x064f, 0xae8: 0x10ff, 0xae9: 0x10f7,
+       0xaea: 0x1107, 0xaeb: 0x1796, 0xaec: 0x111f, 0xaed: 0x0653, 0xaee: 0x112b, 0xaef: 0x1133,
+       0xaf0: 0x1143, 0xaf1: 0x0657, 0xaf2: 0x17a0, 0xaf3: 0x17a5, 0xaf4: 0x065b, 0xaf5: 0x17aa,
+       0xaf6: 0x115b, 0xaf7: 0x17af, 0xaf8: 0x1167, 0xaf9: 0x1173, 0xafa: 0x117b, 0xafb: 0x17b4,
+       0xafc: 0x17b9, 0xafd: 0x118f, 0xafe: 0x17be, 0xaff: 0x1197,
+       // Block 0x2c, offset 0xb00
+       0xb00: 0x16ce, 0xb01: 0x065f, 0xb02: 0x11af, 0xb03: 0x11b3, 0xb04: 0x0667, 0xb05: 0x11b7,
+       0xb06: 0x0a33, 0xb07: 0x17c3, 0xb08: 0x17c8, 0xb09: 0x16d3, 0xb0a: 0x16d8, 0xb0b: 0x11d7,
+       0xb0c: 0x11db, 0xb0d: 0x13f3, 0xb0e: 0x066b, 0xb0f: 0x1207, 0xb10: 0x1203, 0xb11: 0x120b,
+       0xb12: 0x083f, 0xb13: 0x120f, 0xb14: 0x1213, 0xb15: 0x1217, 0xb16: 0x121f, 0xb17: 0x17cd,
+       0xb18: 0x121b, 0xb19: 0x1223, 0xb1a: 0x1237, 0xb1b: 0x123b, 0xb1c: 0x1227, 0xb1d: 0x123f,
+       0xb1e: 0x1253, 0xb1f: 0x1267, 0xb20: 0x1233, 0xb21: 0x1247, 0xb22: 0x124b, 0xb23: 0x124f,
+       0xb24: 0x17d2, 0xb25: 0x17dc, 0xb26: 0x17d7, 0xb27: 0x066f, 0xb28: 0x126f, 0xb29: 0x1273,
+       0xb2a: 0x127b, 0xb2b: 0x17f0, 0xb2c: 0x127f, 0xb2d: 0x17e1, 0xb2e: 0x0673, 0xb2f: 0x0677,
+       0xb30: 0x17e6, 0xb31: 0x17eb, 0xb32: 0x067b, 0xb33: 0x129f, 0xb34: 0x12a3, 0xb35: 0x12a7,
+       0xb36: 0x12ab, 0xb37: 0x12b7, 0xb38: 0x12b3, 0xb39: 0x12bf, 0xb3a: 0x12bb, 0xb3b: 0x12cb,
+       0xb3c: 0x12c3, 0xb3d: 0x12c7, 0xb3e: 0x12cf, 0xb3f: 0x067f,
+       // Block 0x2d, offset 0xb40
+       0xb40: 0x12d7, 0xb41: 0x12db, 0xb42: 0x0683, 0xb43: 0x12eb, 0xb44: 0x12ef, 0xb45: 0x17f5,
+       0xb46: 0x12fb, 0xb47: 0x12ff, 0xb48: 0x0687, 0xb49: 0x130b, 0xb4a: 0x05bb, 0xb4b: 0x17fa,
+       0xb4c: 0x17ff, 0xb4d: 0x068b, 0xb4e: 0x068f, 0xb4f: 0x1337, 0xb50: 0x134f, 0xb51: 0x136b,
+       0xb52: 0x137b, 0xb53: 0x1804, 0xb54: 0x138f, 0xb55: 0x1393, 0xb56: 0x13ab, 0xb57: 0x13b7,
+       0xb58: 0x180e, 0xb59: 0x1660, 0xb5a: 0x13c3, 0xb5b: 0x13bf, 0xb5c: 0x13cb, 0xb5d: 0x1665,
+       0xb5e: 0x13d7, 0xb5f: 0x13e3, 0xb60: 0x1813, 0xb61: 0x1818, 0xb62: 0x1423, 0xb63: 0x142f,
+       0xb64: 0x1437, 0xb65: 0x181d, 0xb66: 0x143b, 0xb67: 0x1467, 0xb68: 0x1473, 0xb69: 0x1477,
+       0xb6a: 0x146f, 0xb6b: 0x1483, 0xb6c: 0x1487, 0xb6d: 0x1822, 0xb6e: 0x1493, 0xb6f: 0x0693,
+       0xb70: 0x149b, 0xb71: 0x1827, 0xb72: 0x0697, 0xb73: 0x14d3, 0xb74: 0x0ac3, 0xb75: 0x14eb,
+       0xb76: 0x182c, 0xb77: 0x1836, 0xb78: 0x069b, 0xb79: 0x069f, 0xb7a: 0x1513, 0xb7b: 0x183b,
+       0xb7c: 0x06a3, 0xb7d: 0x1840, 0xb7e: 0x152b, 0xb7f: 0x152b,
+       // Block 0x2e, offset 0xb80
+       0xb80: 0x1533, 0xb81: 0x1845, 0xb82: 0x154b, 0xb83: 0x06a7, 0xb84: 0x155b, 0xb85: 0x1567,
+       0xb86: 0x156f, 0xb87: 0x1577, 0xb88: 0x06ab, 0xb89: 0x184a, 0xb8a: 0x158b, 0xb8b: 0x15a7,
+       0xb8c: 0x15b3, 0xb8d: 0x06af, 0xb8e: 0x06b3, 0xb8f: 0x15b7, 0xb90: 0x184f, 0xb91: 0x06b7,
+       0xb92: 0x1854, 0xb93: 0x1859, 0xb94: 0x185e, 0xb95: 0x15db, 0xb96: 0x06bb, 0xb97: 0x15ef,
+       0xb98: 0x15f7, 0xb99: 0x15fb, 0xb9a: 0x1603, 0xb9b: 0x160b, 0xb9c: 0x1613, 0xb9d: 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: 0x2d, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x2e, 0xc7: 0x04,
+       0xc8: 0x05, 0xca: 0x2f, 0xcb: 0x30, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x31,
+       0xd0: 0x09, 0xd1: 0x32, 0xd2: 0x33, 0xd3: 0x0a, 0xd6: 0x0b, 0xd7: 0x34,
+       0xd8: 0x35, 0xd9: 0x0c, 0xdb: 0x36, 0xdc: 0x37, 0xdd: 0x38, 0xdf: 0x39,
+       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: 0x3a, 0x121: 0x3b, 0x123: 0x3c, 0x124: 0x3d, 0x125: 0x3e, 0x126: 0x3f, 0x127: 0x40,
+       0x128: 0x41, 0x129: 0x42, 0x12a: 0x43, 0x12b: 0x44, 0x12c: 0x3f, 0x12d: 0x45, 0x12e: 0x46, 0x12f: 0x47,
+       0x131: 0x48, 0x132: 0x49, 0x133: 0x4a, 0x134: 0x4b, 0x135: 0x4c, 0x137: 0x4d,
+       0x138: 0x4e, 0x139: 0x4f, 0x13a: 0x50, 0x13b: 0x51, 0x13c: 0x52, 0x13d: 0x53, 0x13e: 0x54, 0x13f: 0x55,
+       // Block 0x5, offset 0x140
+       0x140: 0x56, 0x142: 0x57, 0x144: 0x58, 0x145: 0x59, 0x146: 0x5a, 0x147: 0x5b,
+       0x14d: 0x5c,
+       0x15c: 0x5d, 0x15f: 0x5e,
+       0x162: 0x5f, 0x164: 0x60,
+       0x168: 0x61, 0x169: 0x62, 0x16a: 0x63, 0x16c: 0x0d, 0x16d: 0x64, 0x16e: 0x65, 0x16f: 0x66,
+       0x170: 0x67, 0x173: 0x68, 0x177: 0x0e,
+       0x178: 0x0f, 0x179: 0x10, 0x17a: 0x11, 0x17b: 0x12, 0x17c: 0x13, 0x17d: 0x14, 0x17e: 0x15, 0x17f: 0x16,
+       // Block 0x6, offset 0x180
+       0x180: 0x69, 0x183: 0x6a, 0x184: 0x6b, 0x186: 0x6c, 0x187: 0x6d,
+       0x188: 0x6e, 0x189: 0x17, 0x18a: 0x18, 0x18b: 0x6f, 0x18c: 0x70,
+       0x1ab: 0x71,
+       0x1b3: 0x72, 0x1b5: 0x73, 0x1b7: 0x74,
+       // Block 0x7, offset 0x1c0
+       0x1c0: 0x75, 0x1c1: 0x19, 0x1c2: 0x1a, 0x1c3: 0x1b, 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: 0x1c, 0x325: 0x1d, 0x326: 0x1e, 0x327: 0x1f,
+       0x328: 0x20, 0x329: 0x21, 0x32a: 0x22, 0x32b: 0x23, 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: 0x3f, 0x38d: 0xa7,
+       0x391: 0xa8, 0x392: 0xa9, 0x393: 0xaa, 0x396: 0xab, 0x397: 0xac,
+       0x398: 0x73, 0x39a: 0xad, 0x39c: 0xae,
+       0x3a8: 0xaf, 0x3a9: 0xb0, 0x3aa: 0xb1,
+       0x3b0: 0x73, 0x3b5: 0xb2,
+       // Block 0xf, offset 0x3c0
+       0x3eb: 0xb3, 0x3ec: 0xb4,
+       // Block 0x10, offset 0x400
+       0x432: 0xb5,
+       // Block 0x11, offset 0x440
+       0x445: 0xb6, 0x446: 0xb7, 0x447: 0xb8,
+       0x449: 0xb9,
+       // Block 0x12, offset 0x480
+       0x480: 0xba,
+       0x4a3: 0xbb, 0x4a5: 0xbc,
+       // Block 0x13, offset 0x4c0
+       0x4c8: 0xbd,
+       // Block 0x14, offset 0x500
+       0x520: 0x24, 0x521: 0x25, 0x522: 0x26, 0x523: 0x27, 0x524: 0x28, 0x525: 0x29, 0x526: 0x2a, 0x527: 0x2b,
+       0x528: 0x2c,
+       // Block 0x15, offset 0x540
+       0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d,
+       0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11,
+       0x56f: 0x12,
+}
+
+// nfcSparseOffset: 145 entries, 290 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, 0xc8, 0xcf, 0xd7, 0xda, 0xdc, 0xde, 0xe0, 0xe5, 0xf6, 0x102, 0x104, 0x10a, 0x10c, 0x10e, 0x110, 0x112, 0x114, 0x116, 0x119, 0x11c, 0x11e, 0x121, 0x124, 0x128, 0x12d, 0x136, 0x138, 0x13b, 0x13d, 0x148, 0x14c, 0x15a, 0x15d, 0x163, 0x169, 0x174, 0x178, 0x17a, 0x17c, 0x17e, 0x180, 0x182, 0x188, 0x18c, 0x18e, 0x190, 0x198, 0x19c, 0x19f, 0x1a1, 0x1a3, 0x1a5, 0x1a8, 0x1aa, 0x1ac, 0x1ae, 0x1b0, 0x1b6, 0x1b9, 0x1bb, 0x1c2, 0x1c8, 0x1ce, 0x1d6, 0x1dc, 0x1e2, 0x1e8, 0x1ec, 0x1fa, 0x203, 0x206, 0x209, 0x20b, 0x20e, 0x210, 0x214, 0x219, 0x21b, 0x21d, 0x222, 0x228, 0x22a, 0x22c, 0x22e, 0x234, 0x237, 0x23a, 0x242, 0x249, 0x24c, 0x24f, 0x251, 0x259, 0x25c, 0x263, 0x266, 0x26c, 0x26e, 0x271, 0x273, 0x275, 0x277, 0x279, 0x27c, 0x27e, 0x280, 0x282, 0x28f, 0x299, 0x29b, 0x29d, 0x2a3, 0x2a5, 0x2a8}
+
+// nfcSparseValues: 682 entries, 2728 bytes
+var nfcSparseValues = [682]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: 0x46e2, lo: 0xa0, hi: 0xa1},
+       {value: 0x4714, 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: 0x4840, lo: 0x8a, hi: 0x8a},
+       {value: 0x485e, lo: 0x8b, hi: 0x8b},
+       {value: 0x36c7, lo: 0x8c, hi: 0x8c},
+       {value: 0x36df, lo: 0x8d, hi: 0x8d},
+       {value: 0x4876, 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: 0x451c, 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: 0x455c, lo: 0x9c, hi: 0x9d},
+       {value: 0x456c, lo: 0x9f, hi: 0x9f},
+       // Block 0x14, offset 0x93
+       {value: 0x0000, lo: 0x03},
+       {value: 0x4594, lo: 0xb3, hi: 0xb3},
+       {value: 0x459c, 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: 0x4574, lo: 0x99, hi: 0x9b},
+       {value: 0x458c, 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: 0x45a4, lo: 0x9c, hi: 0x9c},
+       {value: 0x45ac, 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: 0x02},
+       {value: 0x8104, lo: 0xbb, hi: 0xbc},
+       {value: 0x9900, lo: 0xbe, hi: 0xbe},
+       // Block 0x1f, offset 0xc8
+       {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 0xcf
+       {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 0xd7
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8122, lo: 0xb8, hi: 0xb9},
+       {value: 0x8104, lo: 0xba, hi: 0xba},
+       // Block 0x22, offset 0xda
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8123, lo: 0x88, hi: 0x8b},
+       // Block 0x23, offset 0xdc
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8124, lo: 0xb8, hi: 0xb9},
+       // Block 0x24, offset 0xde
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8125, lo: 0x88, hi: 0x8b},
+       // Block 0x25, offset 0xe0
+       {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 0xe5
+       {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: 0x4a84, lo: 0xb3, hi: 0xb3},
+       {value: 0x8128, lo: 0xb4, hi: 0xb4},
+       {value: 0x4a8d, lo: 0xb5, hi: 0xb5},
+       {value: 0x45b4, lo: 0xb6, hi: 0xb6},
+       {value: 0x8200, lo: 0xb7, hi: 0xb7},
+       {value: 0x45bc, lo: 0xb8, hi: 0xb8},
+       {value: 0x8200, lo: 0xb9, hi: 0xb9},
+       {value: 0x8127, lo: 0xba, hi: 0xbd},
+       // Block 0x27, offset 0xf6
+       {value: 0x0000, lo: 0x0b},
+       {value: 0x8127, lo: 0x80, hi: 0x80},
+       {value: 0x4a96, 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 0x102
+       {value: 0x0000, lo: 0x01},
+       {value: 0x812d, lo: 0x86, hi: 0x86},
+       // Block 0x29, offset 0x104
+       {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 0x10a
+       {value: 0x0000, lo: 0x01},
+       {value: 0x812d, lo: 0x8d, hi: 0x8d},
+       // Block 0x2b, offset 0x10c
+       {value: 0x0000, lo: 0x01},
+       {value: 0xa000, lo: 0x80, hi: 0x92},
+       // Block 0x2c, offset 0x10e
+       {value: 0x0000, lo: 0x01},
+       {value: 0xb900, lo: 0xa1, hi: 0xb5},
+       // Block 0x2d, offset 0x110
+       {value: 0x0000, lo: 0x01},
+       {value: 0x9900, lo: 0xa8, hi: 0xbf},
+       // Block 0x2e, offset 0x112
+       {value: 0x0000, lo: 0x01},
+       {value: 0x9900, lo: 0x80, hi: 0x82},
+       // Block 0x2f, offset 0x114
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8132, lo: 0x9d, hi: 0x9f},
+       // Block 0x30, offset 0x116
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8104, lo: 0x94, hi: 0x94},
+       {value: 0x8104, lo: 0xb4, hi: 0xb4},
+       // Block 0x31, offset 0x119
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8104, lo: 0x92, hi: 0x92},
+       {value: 0x8132, lo: 0x9d, hi: 0x9d},
+       // Block 0x32, offset 0x11c
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8131, lo: 0xa9, hi: 0xa9},
+       // Block 0x33, offset 0x11e
+       {value: 0x0004, lo: 0x02},
+       {value: 0x812e, lo: 0xb9, hi: 0xba},
+       {value: 0x812d, lo: 0xbb, hi: 0xbb},
+       // Block 0x34, offset 0x121
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8132, lo: 0x97, hi: 0x97},
+       {value: 0x812d, lo: 0x98, hi: 0x98},
+       // Block 0x35, offset 0x124
+       {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 0x128
+       {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 0x12d
+       {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 0x136
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8104, lo: 0xaa, hi: 0xab},
+       // Block 0x39, offset 0x138
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8102, lo: 0xa6, hi: 0xa6},
+       {value: 0x8104, lo: 0xb2, hi: 0xb3},
+       // Block 0x3a, offset 0x13b
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8102, lo: 0xb7, hi: 0xb7},
+       // Block 0x3b, offset 0x13d
+       {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 0x148
+       {value: 0x0004, lo: 0x03},
+       {value: 0x0433, lo: 0x80, hi: 0x81},
+       {value: 0x8100, lo: 0x97, hi: 0x97},
+       {value: 0x8100, lo: 0xbe, hi: 0xbe},
+       // Block 0x3d, offset 0x14c
+       {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 0x3e, offset 0x15a
+       {value: 0x427b, lo: 0x02},
+       {value: 0x01b8, lo: 0xa6, hi: 0xa6},
+       {value: 0x0057, lo: 0xaa, hi: 0xab},
+       // Block 0x3f, offset 0x15d
+       {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 0x40, offset 0x163
+       {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 0x41, offset 0x169
+       {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 0x42, offset 0x174
+       {value: 0x0007, lo: 0x03},
+       {value: 0x3c68, lo: 0xa0, hi: 0xa1},
+       {value: 0x3c92, lo: 0xa2, hi: 0xa3},
+       {value: 0x3cbc, lo: 0xaa, hi: 0xad},
+       // Block 0x43, offset 0x178
+       {value: 0x0004, lo: 0x01},
+       {value: 0x048b, lo: 0xa9, hi: 0xaa},
+       // Block 0x44, offset 0x17a
+       {value: 0x0000, lo: 0x01},
+       {value: 0x44dd, lo: 0x9c, hi: 0x9c},
+       // Block 0x45, offset 0x17c
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8132, lo: 0xaf, hi: 0xb1},
+       // Block 0x46, offset 0x17e
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8104, lo: 0xbf, hi: 0xbf},
+       // Block 0x47, offset 0x180
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8132, lo: 0xa0, hi: 0xbf},
+       // Block 0x48, offset 0x182
+       {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 0x49, offset 0x188
+       {value: 0x0000, lo: 0x03},
+       {value: 0x4a9f, lo: 0xb3, hi: 0xb3},
+       {value: 0x4a9f, lo: 0xb5, hi: 0xb6},
+       {value: 0x4a9f, lo: 0xba, hi: 0xbf},
+       // Block 0x4a, offset 0x18c
+       {value: 0x0000, lo: 0x01},
+       {value: 0x4a9f, lo: 0x8f, hi: 0xa3},
+       // Block 0x4b, offset 0x18e
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8100, lo: 0xae, hi: 0xbe},
+       // Block 0x4c, offset 0x190
+       {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 0x4d, offset 0x198
+       {value: 0x0000, lo: 0x03},
+       {value: 0x8100, lo: 0x80, hi: 0x80},
+       {value: 0x8100, lo: 0x8b, hi: 0x8b},
+       {value: 0x8100, lo: 0x8e, hi: 0x8e},
+       // Block 0x4e, offset 0x19c
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8132, lo: 0xaf, hi: 0xaf},
+       {value: 0x8132, lo: 0xb4, hi: 0xbd},
+       // Block 0x4f, offset 0x19f
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8132, lo: 0x9e, hi: 0x9f},
+       // Block 0x50, offset 0x1a1
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8132, lo: 0xb0, hi: 0xb1},
+       // Block 0x51, offset 0x1a3
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8104, lo: 0x86, hi: 0x86},
+       // Block 0x52, offset 0x1a5
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8104, lo: 0x84, hi: 0x84},
+       {value: 0x8132, lo: 0xa0, hi: 0xb1},
+       // Block 0x53, offset 0x1a8
+       {value: 0x0000, lo: 0x01},
+       {value: 0x812d, lo: 0xab, hi: 0xad},
+       // Block 0x54, offset 0x1aa
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8104, lo: 0x93, hi: 0x93},
+       // Block 0x55, offset 0x1ac
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8102, lo: 0xb3, hi: 0xb3},
+       // Block 0x56, offset 0x1ae
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8104, lo: 0x80, hi: 0x80},
+       // Block 0x57, offset 0x1b0
+       {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 0x58, offset 0x1b6
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8132, lo: 0x81, hi: 0x81},
+       {value: 0x8104, lo: 0xb6, hi: 0xb6},
+       // Block 0x59, offset 0x1b9
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8104, lo: 0xad, hi: 0xad},
+       // Block 0x5a, offset 0x1bb
+       {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 0x5b, offset 0x1c2
+       {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 0x5c, offset 0x1c8
+       {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 0x5d, offset 0x1ce
+       {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 0x5e, offset 0x1d6
+       {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 0x5f, offset 0x1dc
+       {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 0x60, offset 0x1e2
+       {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 0x61, offset 0x1e8
+       {value: 0x0000, lo: 0x03},
+       {value: 0xc600, lo: 0x80, hi: 0x87},
+       {value: 0xe500, lo: 0x88, hi: 0x88},
+       {value: 0xc600, lo: 0x89, hi: 0xa3},
+       // Block 0x62, offset 0x1ec
+       {value: 0x0006, lo: 0x0d},
+       {value: 0x4390, lo: 0x9d, hi: 0x9d},
+       {value: 0x8115, lo: 0x9e, hi: 0x9e},
+       {value: 0x4402, lo: 0x9f, hi: 0x9f},
+       {value: 0x43f0, lo: 0xaa, hi: 0xab},
+       {value: 0x44f4, lo: 0xac, hi: 0xac},
+       {value: 0x44fc, lo: 0xad, hi: 0xad},
+       {value: 0x4348, lo: 0xae, hi: 0xb1},
+       {value: 0x4366, lo: 0xb2, hi: 0xb4},
+       {value: 0x437e, lo: 0xb5, hi: 0xb6},
+       {value: 0x438a, lo: 0xb8, hi: 0xb8},
+       {value: 0x4396, lo: 0xb9, hi: 0xbb},
+       {value: 0x43ae, lo: 0xbc, hi: 0xbc},
+       {value: 0x43b4, lo: 0xbe, hi: 0xbe},
+       // Block 0x63, offset 0x1fa
+       {value: 0x0006, lo: 0x08},
+       {value: 0x43ba, lo: 0x80, hi: 0x81},
+       {value: 0x43c6, lo: 0x83, hi: 0x84},
+       {value: 0x43d8, lo: 0x86, hi: 0x89},
+       {value: 0x43fc, lo: 0x8a, hi: 0x8a},
+       {value: 0x4378, lo: 0x8b, hi: 0x8b},
+       {value: 0x4360, lo: 0x8c, hi: 0x8c},
+       {value: 0x43a8, lo: 0x8d, hi: 0x8d},
+       {value: 0x43d2, lo: 0x8e, hi: 0x8e},
+       // Block 0x64, offset 0x203
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8100, lo: 0xa4, hi: 0xa5},
+       {value: 0x8100, lo: 0xb0, hi: 0xb1},
+       // Block 0x65, offset 0x206
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8100, lo: 0x9b, hi: 0x9d},
+       {value: 0x8200, lo: 0x9e, hi: 0xa3},
+       // Block 0x66, offset 0x209
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8100, lo: 0x90, hi: 0x90},
+       // Block 0x67, offset 0x20b
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8100, lo: 0x99, hi: 0x99},
+       {value: 0x8200, lo: 0xb2, hi: 0xb4},
+       // Block 0x68, offset 0x20e
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8100, lo: 0xbc, hi: 0xbd},
+       // Block 0x69, offset 0x210
+       {value: 0x0000, lo: 0x03},
+       {value: 0x8132, lo: 0xa0, hi: 0xa6},
+       {value: 0x812d, lo: 0xa7, hi: 0xad},
+       {value: 0x8132, lo: 0xae, hi: 0xaf},
+       // Block 0x6a, offset 0x214
+       {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 0x6b, offset 0x219
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8100, lo: 0x81, hi: 0x8c},
+       // Block 0x6c, offset 0x21b
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8100, lo: 0xb5, hi: 0xba},
+       // Block 0x6d, offset 0x21d
+       {value: 0x0000, lo: 0x04},
+       {value: 0x4a9f, lo: 0x9e, hi: 0x9f},
+       {value: 0x4a9f, lo: 0xa3, hi: 0xa3},
+       {value: 0x4a9f, lo: 0xa5, hi: 0xa6},
+       {value: 0x4a9f, lo: 0xaa, hi: 0xaf},
+       // Block 0x6e, offset 0x222
+       {value: 0x0000, lo: 0x05},
+       {value: 0x4a9f, lo: 0x82, hi: 0x87},
+       {value: 0x4a9f, lo: 0x8a, hi: 0x8f},
+       {value: 0x4a9f, lo: 0x92, hi: 0x97},
+       {value: 0x4a9f, lo: 0x9a, hi: 0x9c},
+       {value: 0x8100, lo: 0xa3, hi: 0xa3},
+       // Block 0x6f, offset 0x228
+       {value: 0x0000, lo: 0x01},
+       {value: 0x812d, lo: 0xbd, hi: 0xbd},
+       // Block 0x70, offset 0x22a
+       {value: 0x0000, lo: 0x01},
+       {value: 0x812d, lo: 0xa0, hi: 0xa0},
+       // Block 0x71, offset 0x22c
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8132, lo: 0xb6, hi: 0xba},
+       // Block 0x72, offset 0x22e
+       {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 0x73, offset 0x234
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8132, lo: 0xa5, hi: 0xa5},
+       {value: 0x812d, lo: 0xa6, hi: 0xa6},
+       // Block 0x74, offset 0x237
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8104, lo: 0x86, hi: 0x86},
+       {value: 0x8104, lo: 0xbf, hi: 0xbf},
+       // Block 0x75, offset 0x23a
+       {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 0x76, offset 0x242
+       {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 0x77, offset 0x249
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8104, lo: 0x80, hi: 0x80},
+       {value: 0x8102, lo: 0x8a, hi: 0x8a},
+       // Block 0x78, offset 0x24c
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8104, lo: 0xb5, hi: 0xb5},
+       {value: 0x8102, lo: 0xb6, hi: 0xb6},
+       // Block 0x79, offset 0x24f
+       {value: 0x0002, lo: 0x01},
+       {value: 0x8102, lo: 0xa9, hi: 0xaa},
+       // Block 0x7a, offset 0x251
+       {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 0x7b, offset 0x259
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8104, lo: 0x82, hi: 0x82},
+       {value: 0x8102, lo: 0x86, hi: 0x86},
+       // Block 0x7c, offset 0x25c
+       {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 0x7d, offset 0x263
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8104, lo: 0x82, hi: 0x82},
+       {value: 0x8102, lo: 0x83, hi: 0x83},
+       // Block 0x7e, offset 0x266
+       {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 0x7f, offset 0x26c
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8102, lo: 0x80, hi: 0x80},
+       // Block 0x80, offset 0x26e
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8104, lo: 0xb6, hi: 0xb6},
+       {value: 0x8102, lo: 0xb7, hi: 0xb7},
+       // Block 0x81, offset 0x271
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8104, lo: 0xab, hi: 0xab},
+       // Block 0x82, offset 0x273
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8104, lo: 0xb4, hi: 0xb4},
+       // Block 0x83, offset 0x275
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8104, lo: 0x87, hi: 0x87},
+       // Block 0x84, offset 0x277
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8104, lo: 0x99, hi: 0x99},
+       // Block 0x85, offset 0x279
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8102, lo: 0x82, hi: 0x82},
+       {value: 0x8104, lo: 0x84, hi: 0x85},
+       // Block 0x86, offset 0x27c
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8101, lo: 0xb0, hi: 0xb4},
+       // Block 0x87, offset 0x27e
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8132, lo: 0xb0, hi: 0xb6},
+       // Block 0x88, offset 0x280
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8101, lo: 0x9e, hi: 0x9e},
+       // Block 0x89, offset 0x282
+       {value: 0x0000, lo: 0x0c},
+       {value: 0x45cc, lo: 0x9e, hi: 0x9e},
+       {value: 0x45d6, lo: 0x9f, hi: 0x9f},
+       {value: 0x460a, lo: 0xa0, hi: 0xa0},
+       {value: 0x4618, lo: 0xa1, hi: 0xa1},
+       {value: 0x4626, lo: 0xa2, hi: 0xa2},
+       {value: 0x4634, lo: 0xa3, hi: 0xa3},
+       {value: 0x4642, 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 0x8a, offset 0x28f
+       {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: 0x45e0, lo: 0xbb, hi: 0xbb},
+       {value: 0x45ea, lo: 0xbc, hi: 0xbc},
+       {value: 0x4650, lo: 0xbd, hi: 0xbd},
+       {value: 0x466c, lo: 0xbe, hi: 0xbe},
+       {value: 0x465e, lo: 0xbf, hi: 0xbf},
+       // Block 0x8b, offset 0x299
+       {value: 0x0000, lo: 0x01},
+       {value: 0x467a, lo: 0x80, hi: 0x80},
+       // Block 0x8c, offset 0x29b
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8132, lo: 0x82, hi: 0x84},
+       // Block 0x8d, offset 0x29d
+       {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 0x8e, offset 0x2a3
+       {value: 0x0000, lo: 0x01},
+       {value: 0x812d, lo: 0x90, hi: 0x96},
+       // Block 0x8f, offset 0x2a5
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8132, lo: 0x84, hi: 0x89},
+       {value: 0x8102, lo: 0x8a, hi: 0x8a},
+       // Block 0x90, offset 0x2a8
+       {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: 17104 bytes (16.70 KiB). Checksum: d985061cf5307b35.
+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 < 91:
+               return uint16(nfkcValues[n<<6+uint32(b)])
+       default:
+               n -= 91
+               return uint16(nfkcSparse.lookup(n, b))
+       }
+}
+
+// nfkcValues: 93 blocks, 5952 entries, 11904 bytes
+// The third block is the zero block.
+var nfkcValues = [5952]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: 0x4688, 0xc3: 0x2f79, 0xc4: 0x4697, 0xc5: 0x469c,
+       0xc6: 0xa000, 0xc7: 0x46a6, 0xc8: 0x2fe2, 0xc9: 0x2fe7, 0xca: 0x46ab, 0xcb: 0x2ffb,
+       0xcc: 0x306e, 0xcd: 0x3073, 0xce: 0x3078, 0xcf: 0x46bf, 0xd1: 0x3104,
+       0xd2: 0x3127, 0xd3: 0x312c, 0xd4: 0x46c9, 0xd5: 0x46ce, 0xd6: 0x46dd,
+       0xd8: 0xa000, 0xd9: 0x31b3, 0xda: 0x31b8, 0xdb: 0x31bd, 0xdc: 0x470f, 0xdd: 0x3235,
+       0xe0: 0x327b, 0xe1: 0x3280, 0xe2: 0x4719, 0xe3: 0x3285,
+       0xe4: 0x4728, 0xe5: 0x472d, 0xe6: 0xa000, 0xe7: 0x4737, 0xe8: 0x32ee, 0xe9: 0x32f3,
+       0xea: 0x473c, 0xeb: 0x3307, 0xec: 0x337f, 0xed: 0x3384, 0xee: 0x3389, 0xef: 0x4750,
+       0xf1: 0x3415, 0xf2: 0x3438, 0xf3: 0x343d, 0xf4: 0x475a, 0xf5: 0x475f,
+       0xf6: 0x476e, 0xf8: 0xa000, 0xf9: 0x34c9, 0xfa: 0x34ce, 0xfb: 0x34d3,
+       0xfc: 0x47a0, 0xfd: 0x3550, 0xff: 0x3569,
+       // Block 0x4, offset 0x100
+       0x100: 0x2f7e, 0x101: 0x328a, 0x102: 0x468d, 0x103: 0x471e, 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: 0x46b0, 0x113: 0x4741, 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: 0x46d3, 0x14d: 0x4764, 0x14e: 0x3131, 0x14f: 0x3442, 0x150: 0x313b, 0x151: 0x344c,
+       0x154: 0x3159, 0x155: 0x346a, 0x156: 0x3172, 0x157: 0x3483,
+       0x158: 0x3163, 0x159: 0x3474, 0x15a: 0x46f6, 0x15b: 0x4787, 0x15c: 0x317c, 0x15d: 0x348d,
+       0x15e: 0x318b, 0x15f: 0x349c, 0x160: 0x46fb, 0x161: 0x478c, 0x162: 0x31a4, 0x163: 0x34ba,
+       0x164: 0x3195, 0x165: 0x34ab, 0x168: 0x4705, 0x169: 0x4796,
+       0x16a: 0x470a, 0x16b: 0x479b, 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: 0x46ec, 0x1ab: 0x477d, 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: 0x4692, 0x1e7: 0x4723, 0x1e8: 0x46ba, 0x1e9: 0x474b,
+       0x1ea: 0x395f, 0x1eb: 0x3aee, 0x1ec: 0x393c, 0x1ed: 0x3acb, 0x1ee: 0x46d8, 0x1ef: 0x4769,
+       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: 0x49ae, 0x241: 0x49b3, 0x242: 0x9932, 0x243: 0x49b8, 0x244: 0x4a71, 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: 0x447b,
+       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: 0x47fe, 0x2ad: 0x3697, 0x2ae: 0x4828, 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: 0x4840, 0x2cb: 0x485e,
+       0x2cc: 0x36c7, 0x2cd: 0x36df, 0x2ce: 0x4876, 0x2d0: 0x01be, 0x2d1: 0x01d0,
+       0x2d2: 0x01ac, 0x2d3: 0x430c, 0x2d4: 0x4312, 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: 0x8132, 0x4c1: 0x8132, 0x4c2: 0x812d, 0x4c3: 0x8132, 0x4c4: 0x8132, 0x4c5: 0x8132,
+       0x4c6: 0x8132, 0x4c7: 0x8132, 0x4c8: 0x8132, 0x4c9: 0x8132, 0x4ca: 0x812d, 0x4cb: 0x8132,
+       0x4cc: 0x8132, 0x4cd: 0x8135, 0x4ce: 0x812a, 0x4cf: 0x812d, 0x4d0: 0x8129, 0x4d1: 0x8132,
+       0x4d2: 0x8132, 0x4d3: 0x8132, 0x4d4: 0x8132, 0x4d5: 0x8132, 0x4d6: 0x8132, 0x4d7: 0x8132,
+       0x4d8: 0x8132, 0x4d9: 0x8132, 0x4da: 0x8132, 0x4db: 0x8132, 0x4dc: 0x8132, 0x4dd: 0x8132,
+       0x4de: 0x8132, 0x4df: 0x8132, 0x4e0: 0x8132, 0x4e1: 0x8132, 0x4e2: 0x8132, 0x4e3: 0x8132,
+       0x4e4: 0x8132, 0x4e5: 0x8132, 0x4e6: 0x8132, 0x4e7: 0x8132, 0x4e8: 0x8132, 0x4e9: 0x8132,
+       0x4ea: 0x8132, 0x4eb: 0x8132, 0x4ec: 0x8132, 0x4ed: 0x8132, 0x4ee: 0x8132, 0x4ef: 0x8132,
+       0x4f0: 0x8132, 0x4f1: 0x8132, 0x4f2: 0x8132, 0x4f3: 0x8132, 0x4f4: 0x8132, 0x4f5: 0x8132,
+       0x4f6: 0x8133, 0x4f7: 0x8131, 0x4f8: 0x8131, 0x4f9: 0x812d, 0x4fb: 0x8132,
+       0x4fc: 0x8134, 0x4fd: 0x812d, 0x4fe: 0x8132, 0x4ff: 0x812d,
+       // Block 0x14, offset 0x500
+       0x500: 0x2f97, 0x501: 0x32a3, 0x502: 0x2fa1, 0x503: 0x32ad, 0x504: 0x2fa6, 0x505: 0x32b2,
+       0x506: 0x2fab, 0x507: 0x32b7, 0x508: 0x38cc, 0x509: 0x3a5b, 0x50a: 0x2fc4, 0x50b: 0x32d0,
+       0x50c: 0x2fce, 0x50d: 0x32da, 0x50e: 0x2fdd, 0x50f: 0x32e9, 0x510: 0x2fd3, 0x511: 0x32df,
+       0x512: 0x2fd8, 0x513: 0x32e4, 0x514: 0x38ef, 0x515: 0x3a7e, 0x516: 0x38f6, 0x517: 0x3a85,
+       0x518: 0x3019, 0x519: 0x3325, 0x51a: 0x301e, 0x51b: 0x332a, 0x51c: 0x3904, 0x51d: 0x3a93,
+       0x51e: 0x3023, 0x51f: 0x332f, 0x520: 0x3032, 0x521: 0x333e, 0x522: 0x3050, 0x523: 0x335c,
+       0x524: 0x305f, 0x525: 0x336b, 0x526: 0x3055, 0x527: 0x3361, 0x528: 0x3064, 0x529: 0x3370,
+       0x52a: 0x3069, 0x52b: 0x3375, 0x52c: 0x30af, 0x52d: 0x33bb, 0x52e: 0x390b, 0x52f: 0x3a9a,
+       0x530: 0x30b9, 0x531: 0x33ca, 0x532: 0x30c3, 0x533: 0x33d4, 0x534: 0x30cd, 0x535: 0x33de,
+       0x536: 0x46c4, 0x537: 0x4755, 0x538: 0x3912, 0x539: 0x3aa1, 0x53a: 0x30e6, 0x53b: 0x33f7,
+       0x53c: 0x30e1, 0x53d: 0x33f2, 0x53e: 0x30eb, 0x53f: 0x33fc,
+       // Block 0x15, offset 0x540
+       0x540: 0x30f0, 0x541: 0x3401, 0x542: 0x30f5, 0x543: 0x3406, 0x544: 0x3109, 0x545: 0x341a,
+       0x546: 0x3113, 0x547: 0x3424, 0x548: 0x3122, 0x549: 0x3433, 0x54a: 0x311d, 0x54b: 0x342e,
+       0x54c: 0x3935, 0x54d: 0x3ac4, 0x54e: 0x3943, 0x54f: 0x3ad2, 0x550: 0x394a, 0x551: 0x3ad9,
+       0x552: 0x3951, 0x553: 0x3ae0, 0x554: 0x314f, 0x555: 0x3460, 0x556: 0x3154, 0x557: 0x3465,
+       0x558: 0x315e, 0x559: 0x346f, 0x55a: 0x46f1, 0x55b: 0x4782, 0x55c: 0x3997, 0x55d: 0x3b26,
+       0x55e: 0x3177, 0x55f: 0x3488, 0x560: 0x3181, 0x561: 0x3492, 0x562: 0x4700, 0x563: 0x4791,
+       0x564: 0x399e, 0x565: 0x3b2d, 0x566: 0x39a5, 0x567: 0x3b34, 0x568: 0x39ac, 0x569: 0x3b3b,
+       0x56a: 0x3190, 0x56b: 0x34a1, 0x56c: 0x319a, 0x56d: 0x34b0, 0x56e: 0x31ae, 0x56f: 0x34c4,
+       0x570: 0x31a9, 0x571: 0x34bf, 0x572: 0x31ea, 0x573: 0x3500, 0x574: 0x31f9, 0x575: 0x350f,
+       0x576: 0x31f4, 0x577: 0x350a, 0x578: 0x39b3, 0x579: 0x3b42, 0x57a: 0x39ba, 0x57b: 0x3b49,
+       0x57c: 0x31fe, 0x57d: 0x3514, 0x57e: 0x3203, 0x57f: 0x3519,
+       // Block 0x16, offset 0x580
+       0x580: 0x3208, 0x581: 0x351e, 0x582: 0x320d, 0x583: 0x3523, 0x584: 0x321c, 0x585: 0x3532,
+       0x586: 0x3217, 0x587: 0x352d, 0x588: 0x3221, 0x589: 0x353c, 0x58a: 0x3226, 0x58b: 0x3541,
+       0x58c: 0x322b, 0x58d: 0x3546, 0x58e: 0x3249, 0x58f: 0x3564, 0x590: 0x3262, 0x591: 0x3582,
+       0x592: 0x3271, 0x593: 0x3591, 0x594: 0x3276, 0x595: 0x3596, 0x596: 0x337a, 0x597: 0x34a6,
+       0x598: 0x3537, 0x599: 0x3573, 0x59a: 0x1be0, 0x59b: 0x42d7,
+       0x5a0: 0x46a1, 0x5a1: 0x4732, 0x5a2: 0x2f83, 0x5a3: 0x328f,
+       0x5a4: 0x3878, 0x5a5: 0x3a07, 0x5a6: 0x3871, 0x5a7: 0x3a00, 0x5a8: 0x3886, 0x5a9: 0x3a15,
+       0x5aa: 0x387f, 0x5ab: 0x3a0e, 0x5ac: 0x38be, 0x5ad: 0x3a4d, 0x5ae: 0x3894, 0x5af: 0x3a23,
+       0x5b0: 0x388d, 0x5b1: 0x3a1c, 0x5b2: 0x38a2, 0x5b3: 0x3a31, 0x5b4: 0x389b, 0x5b5: 0x3a2a,
+       0x5b6: 0x38c5, 0x5b7: 0x3a54, 0x5b8: 0x46b5, 0x5b9: 0x4746, 0x5ba: 0x3000, 0x5bb: 0x330c,
+       0x5bc: 0x2fec, 0x5bd: 0x32f8, 0x5be: 0x38da, 0x5bf: 0x3a69,
+       // Block 0x17, offset 0x5c0
+       0x5c0: 0x38d3, 0x5c1: 0x3a62, 0x5c2: 0x38e8, 0x5c3: 0x3a77, 0x5c4: 0x38e1, 0x5c5: 0x3a70,
+       0x5c6: 0x38fd, 0x5c7: 0x3a8c, 0x5c8: 0x3091, 0x5c9: 0x339d, 0x5ca: 0x30a5, 0x5cb: 0x33b1,
+       0x5cc: 0x46e7, 0x5cd: 0x4778, 0x5ce: 0x3136, 0x5cf: 0x3447, 0x5d0: 0x3920, 0x5d1: 0x3aaf,
+       0x5d2: 0x3919, 0x5d3: 0x3aa8, 0x5d4: 0x392e, 0x5d5: 0x3abd, 0x5d6: 0x3927, 0x5d7: 0x3ab6,
+       0x5d8: 0x3989, 0x5d9: 0x3b18, 0x5da: 0x396d, 0x5db: 0x3afc, 0x5dc: 0x3966, 0x5dd: 0x3af5,
+       0x5de: 0x397b, 0x5df: 0x3b0a, 0x5e0: 0x3974, 0x5e1: 0x3b03, 0x5e2: 0x3982, 0x5e3: 0x3b11,
+       0x5e4: 0x31e5, 0x5e5: 0x34fb, 0x5e6: 0x31c7, 0x5e7: 0x34dd, 0x5e8: 0x39e4, 0x5e9: 0x3b73,
+       0x5ea: 0x39dd, 0x5eb: 0x3b6c, 0x5ec: 0x39f2, 0x5ed: 0x3b81, 0x5ee: 0x39eb, 0x5ef: 0x3b7a,
+       0x5f0: 0x39f9, 0x5f1: 0x3b88, 0x5f2: 0x3230, 0x5f3: 0x354b, 0x5f4: 0x3258, 0x5f5: 0x3578,
+       0x5f6: 0x3253, 0x5f7: 0x356e, 0x5f8: 0x323f, 0x5f9: 0x355a,
+       // Block 0x18, offset 0x600
+       0x600: 0x4804, 0x601: 0x480a, 0x602: 0x491e, 0x603: 0x4936, 0x604: 0x4926, 0x605: 0x493e,
+       0x606: 0x492e, 0x607: 0x4946, 0x608: 0x47aa, 0x609: 0x47b0, 0x60a: 0x488e, 0x60b: 0x48a6,
+       0x60c: 0x4896, 0x60d: 0x48ae, 0x60e: 0x489e, 0x60f: 0x48b6, 0x610: 0x4816, 0x611: 0x481c,
+       0x612: 0x3db8, 0x613: 0x3dc8, 0x614: 0x3dc0, 0x615: 0x3dd0,
+       0x618: 0x47b6, 0x619: 0x47bc, 0x61a: 0x3ce8, 0x61b: 0x3cf8, 0x61c: 0x3cf0, 0x61d: 0x3d00,
+       0x620: 0x482e, 0x621: 0x4834, 0x622: 0x494e, 0x623: 0x4966,
+       0x624: 0x4956, 0x625: 0x496e, 0x626: 0x495e, 0x627: 0x4976, 0x628: 0x47c2, 0x629: 0x47c8,
+       0x62a: 0x48be, 0x62b: 0x48d6, 0x62c: 0x48c6, 0x62d: 0x48de, 0x62e: 0x48ce, 0x62f: 0x48e6,
+       0x630: 0x4846, 0x631: 0x484c, 0x632: 0x3e18, 0x633: 0x3e30, 0x634: 0x3e20, 0x635: 0x3e38,
+       0x636: 0x3e28, 0x637: 0x3e40, 0x638: 0x47ce, 0x639: 0x47d4, 0x63a: 0x3d18, 0x63b: 0x3d30,
+       0x63c: 0x3d20, 0x63d: 0x3d38, 0x63e: 0x3d28, 0x63f: 0x3d40,
+       // Block 0x19, offset 0x640
+       0x640: 0x4852, 0x641: 0x4858, 0x642: 0x3e48, 0x643: 0x3e58, 0x644: 0x3e50, 0x645: 0x3e60,
+       0x648: 0x47da, 0x649: 0x47e0, 0x64a: 0x3d48, 0x64b: 0x3d58,
+       0x64c: 0x3d50, 0x64d: 0x3d60, 0x650: 0x4864, 0x651: 0x486a,
+       0x652: 0x3e80, 0x653: 0x3e98, 0x654: 0x3e88, 0x655: 0x3ea0, 0x656: 0x3e90, 0x657: 0x3ea8,
+       0x659: 0x47e6, 0x65b: 0x3d68, 0x65d: 0x3d70,
+       0x65f: 0x3d78, 0x660: 0x487c, 0x661: 0x4882, 0x662: 0x497e, 0x663: 0x4996,
+       0x664: 0x4986, 0x665: 0x499e, 0x666: 0x498e, 0x667: 0x49a6, 0x668: 0x47ec, 0x669: 0x47f2,
+       0x66a: 0x48ee, 0x66b: 0x4906, 0x66c: 0x48f6, 0x66d: 0x490e, 0x66e: 0x48fe, 0x66f: 0x4916,
+       0x670: 0x47f8, 0x671: 0x431e, 0x672: 0x3691, 0x673: 0x4324, 0x674: 0x4822, 0x675: 0x432a,
+       0x676: 0x36a3, 0x677: 0x4330, 0x678: 0x36c1, 0x679: 0x4336, 0x67a: 0x36d9, 0x67b: 0x433c,
+       0x67c: 0x4870, 0x67d: 0x4342,
+       // Block 0x1a, offset 0x680
+       0x680: 0x3da0, 0x681: 0x3da8, 0x682: 0x4184, 0x683: 0x41a2, 0x684: 0x418e, 0x685: 0x41ac,
+       0x686: 0x4198, 0x687: 0x41b6, 0x688: 0x3cd8, 0x689: 0x3ce0, 0x68a: 0x40d0, 0x68b: 0x40ee,
+       0x68c: 0x40da, 0x68d: 0x40f8, 0x68e: 0x40e4, 0x68f: 0x4102, 0x690: 0x3de8, 0x691: 0x3df0,
+       0x692: 0x41c0, 0x693: 0x41de, 0x694: 0x41ca, 0x695: 0x41e8, 0x696: 0x41d4, 0x697: 0x41f2,
+       0x698: 0x3d08, 0x699: 0x3d10, 0x69a: 0x410c, 0x69b: 0x412a, 0x69c: 0x4116, 0x69d: 0x4134,
+       0x69e: 0x4120, 0x69f: 0x413e, 0x6a0: 0x3ec0, 0x6a1: 0x3ec8, 0x6a2: 0x41fc, 0x6a3: 0x421a,
+       0x6a4: 0x4206, 0x6a5: 0x4224, 0x6a6: 0x4210, 0x6a7: 0x422e, 0x6a8: 0x3d80, 0x6a9: 0x3d88,
+       0x6aa: 0x4148, 0x6ab: 0x4166, 0x6ac: 0x4152, 0x6ad: 0x4170, 0x6ae: 0x415c, 0x6af: 0x417a,
+       0x6b0: 0x3685, 0x6b1: 0x367f, 0x6b2: 0x3d90, 0x6b3: 0x368b, 0x6b4: 0x3d98,
+       0x6b6: 0x4810, 0x6b7: 0x3db0, 0x6b8: 0x35f5, 0x6b9: 0x35ef, 0x6ba: 0x35e3, 0x6bb: 0x42ee,
+       0x6bc: 0x35fb, 0x6bd: 0x4287, 0x6be: 0x01d3, 0x6bf: 0x4287,
+       // Block 0x1b, offset 0x6c0
+       0x6c0: 0x42a0, 0x6c1: 0x4482, 0x6c2: 0x3dd8, 0x6c3: 0x369d, 0x6c4: 0x3de0,
+       0x6c6: 0x483a, 0x6c7: 0x3df8, 0x6c8: 0x3601, 0x6c9: 0x42f4, 0x6ca: 0x360d, 0x6cb: 0x42fa,
+       0x6cc: 0x3619, 0x6cd: 0x4489, 0x6ce: 0x4490, 0x6cf: 0x4497, 0x6d0: 0x36b5, 0x6d1: 0x36af,
+       0x6d2: 0x3e00, 0x6d3: 0x44e4, 0x6d6: 0x36bb, 0x6d7: 0x3e10,
+       0x6d8: 0x3631, 0x6d9: 0x362b, 0x6da: 0x361f, 0x6db: 0x4300, 0x6dd: 0x449e,
+       0x6de: 0x44a5, 0x6df: 0x44ac, 0x6e0: 0x36eb, 0x6e1: 0x36e5, 0x6e2: 0x3e68, 0x6e3: 0x44ec,
+       0x6e4: 0x36cd, 0x6e5: 0x36d3, 0x6e6: 0x36f1, 0x6e7: 0x3e78, 0x6e8: 0x3661, 0x6e9: 0x365b,
+       0x6ea: 0x364f, 0x6eb: 0x430c, 0x6ec: 0x3649, 0x6ed: 0x4474, 0x6ee: 0x447b, 0x6ef: 0x0081,
+       0x6f2: 0x3eb0, 0x6f3: 0x36f7, 0x6f4: 0x3eb8,
+       0x6f6: 0x4888, 0x6f7: 0x3ed0, 0x6f8: 0x363d, 0x6f9: 0x4306, 0x6fa: 0x366d, 0x6fb: 0x4318,
+       0x6fc: 0x3679, 0x6fd: 0x425a, 0x6fe: 0x428c,
+       // Block 0x1c, offset 0x700
+       0x700: 0x1bd8, 0x701: 0x1bdc, 0x702: 0x0047, 0x703: 0x1c54, 0x705: 0x1be8,
+       0x706: 0x1bec, 0x707: 0x00e9, 0x709: 0x1c58, 0x70a: 0x008f, 0x70b: 0x0051,
+       0x70c: 0x0051, 0x70d: 0x0051, 0x70e: 0x0091, 0x70f: 0x00da, 0x710: 0x0053, 0x711: 0x0053,
+       0x712: 0x0059, 0x713: 0x0099, 0x715: 0x005d, 0x716: 0x198d,
+       0x719: 0x0061, 0x71a: 0x0063, 0x71b: 0x0065, 0x71c: 0x0065, 0x71d: 0x0065,
+       0x720: 0x199f, 0x721: 0x1bc8, 0x722: 0x19a8,
+       0x724: 0x0075, 0x726: 0x01b8, 0x728: 0x0075,
+       0x72a: 0x0057, 0x72b: 0x42d2, 0x72c: 0x0045, 0x72d: 0x0047, 0x72f: 0x008b,
+       0x730: 0x004b, 0x731: 0x004d, 0x733: 0x005b, 0x734: 0x009f, 0x735: 0x0215,
+       0x736: 0x0218, 0x737: 0x021b, 0x738: 0x021e, 0x739: 0x0093, 0x73b: 0x1b98,
+       0x73c: 0x01e8, 0x73d: 0x01c1, 0x73e: 0x0179, 0x73f: 0x01a0,
+       // Block 0x1d, offset 0x740
+       0x740: 0x0463, 0x745: 0x0049,
+       0x746: 0x0089, 0x747: 0x008b, 0x748: 0x0093, 0x749: 0x0095,
+       0x750: 0x222e, 0x751: 0x223a,
+       0x752: 0x22ee, 0x753: 0x2216, 0x754: 0x229a, 0x755: 0x2222, 0x756: 0x22a0, 0x757: 0x22b8,
+       0x758: 0x22c4, 0x759: 0x2228, 0x75a: 0x22ca, 0x75b: 0x2234, 0x75c: 0x22be, 0x75d: 0x22d0,
+       0x75e: 0x22d6, 0x75f: 0x1cbc, 0x760: 0x0053, 0x761: 0x195a, 0x762: 0x1ba4, 0x763: 0x1963,
+       0x764: 0x006d, 0x765: 0x19ab, 0x766: 0x1bd0, 0x767: 0x1d48, 0x768: 0x1966, 0x769: 0x0071,
+       0x76a: 0x19b7, 0x76b: 0x1bd4, 0x76c: 0x0059, 0x76d: 0x0047, 0x76e: 0x0049, 0x76f: 0x005b,
+       0x770: 0x0093, 0x771: 0x19e4, 0x772: 0x1c18, 0x773: 0x19ed, 0x774: 0x00ad, 0x775: 0x1a62,
+       0x776: 0x1c4c, 0x777: 0x1d5c, 0x778: 0x19f0, 0x779: 0x00b1, 0x77a: 0x1a65, 0x77b: 0x1c50,
+       0x77c: 0x0099, 0x77d: 0x0087, 0x77e: 0x0089, 0x77f: 0x009b,
+       // Block 0x1e, offset 0x780
+       0x781: 0x3c06, 0x783: 0xa000, 0x784: 0x3c0d, 0x785: 0xa000,
+       0x787: 0x3c14, 0x788: 0xa000, 0x789: 0x3c1b,
+       0x78d: 0xa000,
+       0x7a0: 0x2f65, 0x7a1: 0xa000, 0x7a2: 0x3c29,
+       0x7a4: 0xa000, 0x7a5: 0xa000,
+       0x7ad: 0x3c22, 0x7ae: 0x2f60, 0x7af: 0x2f6a,
+       0x7b0: 0x3c30, 0x7b1: 0x3c37, 0x7b2: 0xa000, 0x7b3: 0xa000, 0x7b4: 0x3c3e, 0x7b5: 0x3c45,
+       0x7b6: 0xa000, 0x7b7: 0xa000, 0x7b8: 0x3c4c, 0x7b9: 0x3c53, 0x7ba: 0xa000, 0x7bb: 0xa000,
+       0x7bc: 0xa000, 0x7bd: 0xa000,
+       // Block 0x1f, offset 0x7c0
+       0x7c0: 0x3c5a, 0x7c1: 0x3c61, 0x7c2: 0xa000, 0x7c3: 0xa000, 0x7c4: 0x3c76, 0x7c5: 0x3c7d,
+       0x7c6: 0xa000, 0x7c7: 0xa000, 0x7c8: 0x3c84, 0x7c9: 0x3c8b,
+       0x7d1: 0xa000,
+       0x7d2: 0xa000,
+       0x7e2: 0xa000,
+       0x7e8: 0xa000, 0x7e9: 0xa000,
+       0x7eb: 0xa000, 0x7ec: 0x3ca0, 0x7ed: 0x3ca7, 0x7ee: 0x3cae, 0x7ef: 0x3cb5,
+       0x7f2: 0xa000, 0x7f3: 0xa000, 0x7f4: 0xa000, 0x7f5: 0xa000,
+       // Block 0x20, offset 0x800
+       0x820: 0x0023, 0x821: 0x0025, 0x822: 0x0027, 0x823: 0x0029,
+       0x824: 0x002b, 0x825: 0x002d, 0x826: 0x002f, 0x827: 0x0031, 0x828: 0x0033, 0x829: 0x1882,
+       0x82a: 0x1885, 0x82b: 0x1888, 0x82c: 0x188b, 0x82d: 0x188e, 0x82e: 0x1891, 0x82f: 0x1894,
+       0x830: 0x1897, 0x831: 0x189a, 0x832: 0x189d, 0x833: 0x18a6, 0x834: 0x1a68, 0x835: 0x1a6c,
+       0x836: 0x1a70, 0x837: 0x1a74, 0x838: 0x1a78, 0x839: 0x1a7c, 0x83a: 0x1a80, 0x83b: 0x1a84,
+       0x83c: 0x1a88, 0x83d: 0x1c80, 0x83e: 0x1c85, 0x83f: 0x1c8a,
+       // Block 0x21, offset 0x840
+       0x840: 0x1c8f, 0x841: 0x1c94, 0x842: 0x1c99, 0x843: 0x1c9e, 0x844: 0x1ca3, 0x845: 0x1ca8,
+       0x846: 0x1cad, 0x847: 0x1cb2, 0x848: 0x187f, 0x849: 0x18a3, 0x84a: 0x18c7, 0x84b: 0x18eb,
+       0x84c: 0x190f, 0x84d: 0x1918, 0x84e: 0x191e, 0x84f: 0x1924, 0x850: 0x192a, 0x851: 0x1b60,
+       0x852: 0x1b64, 0x853: 0x1b68, 0x854: 0x1b6c, 0x855: 0x1b70, 0x856: 0x1b74, 0x857: 0x1b78,
+       0x858: 0x1b7c, 0x859: 0x1b80, 0x85a: 0x1b84, 0x85b: 0x1b88, 0x85c: 0x1af4, 0x85d: 0x1af8,
+       0x85e: 0x1afc, 0x85f: 0x1b00, 0x860: 0x1b04, 0x861: 0x1b08, 0x862: 0x1b0c, 0x863: 0x1b10,
+       0x864: 0x1b14, 0x865: 0x1b18, 0x866: 0x1b1c, 0x867: 0x1b20, 0x868: 0x1b24, 0x869: 0x1b28,
+       0x86a: 0x1b2c, 0x86b: 0x1b30, 0x86c: 0x1b34, 0x86d: 0x1b38, 0x86e: 0x1b3c, 0x86f: 0x1b40,
+       0x870: 0x1b44, 0x871: 0x1b48, 0x872: 0x1b4c, 0x873: 0x1b50, 0x874: 0x1b54, 0x875: 0x1b58,
+       0x876: 0x0043, 0x877: 0x0045, 0x878: 0x0047, 0x879: 0x0049, 0x87a: 0x004b, 0x87b: 0x004d,
+       0x87c: 0x004f, 0x87d: 0x0051, 0x87e: 0x0053, 0x87f: 0x0055,
+       // Block 0x22, offset 0x880
+       0x880: 0x06bf, 0x881: 0x06e3, 0x882: 0x06ef, 0x883: 0x06ff, 0x884: 0x0707, 0x885: 0x0713,
+       0x886: 0x071b, 0x887: 0x0723, 0x888: 0x072f, 0x889: 0x0783, 0x88a: 0x079b, 0x88b: 0x07ab,
+       0x88c: 0x07bb, 0x88d: 0x07cb, 0x88e: 0x07db, 0x88f: 0x07fb, 0x890: 0x07ff, 0x891: 0x0803,
+       0x892: 0x0837, 0x893: 0x085f, 0x894: 0x086f, 0x895: 0x0877, 0x896: 0x087b, 0x897: 0x0887,
+       0x898: 0x08a3, 0x899: 0x08a7, 0x89a: 0x08bf, 0x89b: 0x08c3, 0x89c: 0x08cb, 0x89d: 0x08db,
+       0x89e: 0x0977, 0x89f: 0x098b, 0x8a0: 0x09cb, 0x8a1: 0x09df, 0x8a2: 0x09e7, 0x8a3: 0x09eb,
+       0x8a4: 0x09fb, 0x8a5: 0x0a17, 0x8a6: 0x0a43, 0x8a7: 0x0a4f, 0x8a8: 0x0a6f, 0x8a9: 0x0a7b,
+       0x8aa: 0x0a7f, 0x8ab: 0x0a83, 0x8ac: 0x0a9b, 0x8ad: 0x0a9f, 0x8ae: 0x0acb, 0x8af: 0x0ad7,
+       0x8b0: 0x0adf, 0x8b1: 0x0ae7, 0x8b2: 0x0af7, 0x8b3: 0x0aff, 0x8b4: 0x0b07, 0x8b5: 0x0b33,
+       0x8b6: 0x0b37, 0x8b7: 0x0b3f, 0x8b8: 0x0b43, 0x8b9: 0x0b4b, 0x8ba: 0x0b53, 0x8bb: 0x0b63,
+       0x8bc: 0x0b7f, 0x8bd: 0x0bf7, 0x8be: 0x0c0b, 0x8bf: 0x0c0f,
+       // Block 0x23, offset 0x8c0
+       0x8c0: 0x0c8f, 0x8c1: 0x0c93, 0x8c2: 0x0ca7, 0x8c3: 0x0cab, 0x8c4: 0x0cb3, 0x8c5: 0x0cbb,
+       0x8c6: 0x0cc3, 0x8c7: 0x0ccf, 0x8c8: 0x0cf7, 0x8c9: 0x0d07, 0x8ca: 0x0d1b, 0x8cb: 0x0d8b,
+       0x8cc: 0x0d97, 0x8cd: 0x0da7, 0x8ce: 0x0db3, 0x8cf: 0x0dbf, 0x8d0: 0x0dc7, 0x8d1: 0x0dcb,
+       0x8d2: 0x0dcf, 0x8d3: 0x0dd3, 0x8d4: 0x0dd7, 0x8d5: 0x0e8f, 0x8d6: 0x0ed7, 0x8d7: 0x0ee3,
+       0x8d8: 0x0ee7, 0x8d9: 0x0eeb, 0x8da: 0x0eef, 0x8db: 0x0ef7, 0x8dc: 0x0efb, 0x8dd: 0x0f0f,
+       0x8de: 0x0f2b, 0x8df: 0x0f33, 0x8e0: 0x0f73, 0x8e1: 0x0f77, 0x8e2: 0x0f7f, 0x8e3: 0x0f83,
+       0x8e4: 0x0f8b, 0x8e5: 0x0f8f, 0x8e6: 0x0fb3, 0x8e7: 0x0fb7, 0x8e8: 0x0fd3, 0x8e9: 0x0fd7,
+       0x8ea: 0x0fdb, 0x8eb: 0x0fdf, 0x8ec: 0x0ff3, 0x8ed: 0x1017, 0x8ee: 0x101b, 0x8ef: 0x101f,
+       0x8f0: 0x1043, 0x8f1: 0x1083, 0x8f2: 0x1087, 0x8f3: 0x10a7, 0x8f4: 0x10b7, 0x8f5: 0x10bf,
+       0x8f6: 0x10df, 0x8f7: 0x1103, 0x8f8: 0x1147, 0x8f9: 0x114f, 0x8fa: 0x1163, 0x8fb: 0x116f,
+       0x8fc: 0x1177, 0x8fd: 0x117f, 0x8fe: 0x1183, 0x8ff: 0x1187,
+       // Block 0x24, offset 0x900
+       0x900: 0x119f, 0x901: 0x11a3, 0x902: 0x11bf, 0x903: 0x11c7, 0x904: 0x11cf, 0x905: 0x11d3,
+       0x906: 0x11df, 0x907: 0x11e7, 0x908: 0x11eb, 0x909: 0x11ef, 0x90a: 0x11f7, 0x90b: 0x11fb,
+       0x90c: 0x129b, 0x90d: 0x12af, 0x90e: 0x12e3, 0x90f: 0x12e7, 0x910: 0x12ef, 0x911: 0x131b,
+       0x912: 0x1323, 0x913: 0x132b, 0x914: 0x1333, 0x915: 0x136f, 0x916: 0x1373, 0x917: 0x137b,
+       0x918: 0x137f, 0x919: 0x1383, 0x91a: 0x13af, 0x91b: 0x13b3, 0x91c: 0x13bb, 0x91d: 0x13cf,
+       0x91e: 0x13d3, 0x91f: 0x13ef, 0x920: 0x13f7, 0x921: 0x13fb, 0x922: 0x141f, 0x923: 0x143f,
+       0x924: 0x1453, 0x925: 0x1457, 0x926: 0x145f, 0x927: 0x148b, 0x928: 0x148f, 0x929: 0x149f,
+       0x92a: 0x14c3, 0x92b: 0x14cf, 0x92c: 0x14df, 0x92d: 0x14f7, 0x92e: 0x14ff, 0x92f: 0x1503,
+       0x930: 0x1507, 0x931: 0x150b, 0x932: 0x1517, 0x933: 0x151b, 0x934: 0x1523, 0x935: 0x153f,
+       0x936: 0x1543, 0x937: 0x1547, 0x938: 0x155f, 0x939: 0x1563, 0x93a: 0x156b, 0x93b: 0x157f,
+       0x93c: 0x1583, 0x93d: 0x1587, 0x93e: 0x158f, 0x93f: 0x1593,
+       // Block 0x25, offset 0x940
+       0x946: 0xa000, 0x94b: 0xa000,
+       0x94c: 0x3f08, 0x94d: 0xa000, 0x94e: 0x3f10, 0x94f: 0xa000, 0x950: 0x3f18, 0x951: 0xa000,
+       0x952: 0x3f20, 0x953: 0xa000, 0x954: 0x3f28, 0x955: 0xa000, 0x956: 0x3f30, 0x957: 0xa000,
+       0x958: 0x3f38, 0x959: 0xa000, 0x95a: 0x3f40, 0x95b: 0xa000, 0x95c: 0x3f48, 0x95d: 0xa000,
+       0x95e: 0x3f50, 0x95f: 0xa000, 0x960: 0x3f58, 0x961: 0xa000, 0x962: 0x3f60,
+       0x964: 0xa000, 0x965: 0x3f68, 0x966: 0xa000, 0x967: 0x3f70, 0x968: 0xa000, 0x969: 0x3f78,
+       0x96f: 0xa000,
+       0x970: 0x3f80, 0x971: 0x3f88, 0x972: 0xa000, 0x973: 0x3f90, 0x974: 0x3f98, 0x975: 0xa000,
+       0x976: 0x3fa0, 0x977: 0x3fa8, 0x978: 0xa000, 0x979: 0x3fb0, 0x97a: 0x3fb8, 0x97b: 0xa000,
+       0x97c: 0x3fc0, 0x97d: 0x3fc8,
+       // Block 0x26, offset 0x980
+       0x994: 0x3f00,
+       0x999: 0x9903, 0x99a: 0x9903, 0x99b: 0x42dc, 0x99c: 0x42e2, 0x99d: 0xa000,
+       0x99e: 0x3fd0, 0x99f: 0x26b4,
+       0x9a6: 0xa000,
+       0x9ab: 0xa000, 0x9ac: 0x3fe0, 0x9ad: 0xa000, 0x9ae: 0x3fe8, 0x9af: 0xa000,
+       0x9b0: 0x3ff0, 0x9b1: 0xa000, 0x9b2: 0x3ff8, 0x9b3: 0xa000, 0x9b4: 0x4000, 0x9b5: 0xa000,
+       0x9b6: 0x4008, 0x9b7: 0xa000, 0x9b8: 0x4010, 0x9b9: 0xa000, 0x9ba: 0x4018, 0x9bb: 0xa000,
+       0x9bc: 0x4020, 0x9bd: 0xa000, 0x9be: 0x4028, 0x9bf: 0xa000,
+       // Block 0x27, offset 0x9c0
+       0x9c0: 0x4030, 0x9c1: 0xa000, 0x9c2: 0x4038, 0x9c4: 0xa000, 0x9c5: 0x4040,
+       0x9c6: 0xa000, 0x9c7: 0x4048, 0x9c8: 0xa000, 0x9c9: 0x4050,
+       0x9cf: 0xa000, 0x9d0: 0x4058, 0x9d1: 0x4060,
+       0x9d2: 0xa000, 0x9d3: 0x4068, 0x9d4: 0x4070, 0x9d5: 0xa000, 0x9d6: 0x4078, 0x9d7: 0x4080,
+       0x9d8: 0xa000, 0x9d9: 0x4088, 0x9da: 0x4090, 0x9db: 0xa000, 0x9dc: 0x4098, 0x9dd: 0x40a0,
+       0x9ef: 0xa000,
+       0x9f0: 0xa000, 0x9f1: 0xa000, 0x9f2: 0xa000, 0x9f4: 0x3fd8,
+       0x9f7: 0x40a8, 0x9f8: 0x40b0, 0x9f9: 0x40b8, 0x9fa: 0x40c0,
+       0x9fd: 0xa000, 0x9fe: 0x40c8, 0x9ff: 0x26c9,
+       // Block 0x28, offset 0xa00
+       0xa00: 0x0367, 0xa01: 0x032b, 0xa02: 0x032f, 0xa03: 0x0333, 0xa04: 0x037b, 0xa05: 0x0337,
+       0xa06: 0x033b, 0xa07: 0x033f, 0xa08: 0x0343, 0xa09: 0x0347, 0xa0a: 0x034b, 0xa0b: 0x034f,
+       0xa0c: 0x0353, 0xa0d: 0x0357, 0xa0e: 0x035b, 0xa0f: 0x49bd, 0xa10: 0x49c3, 0xa11: 0x49c9,
+       0xa12: 0x49cf, 0xa13: 0x49d5, 0xa14: 0x49db, 0xa15: 0x49e1, 0xa16: 0x49e7, 0xa17: 0x49ed,
+       0xa18: 0x49f3, 0xa19: 0x49f9, 0xa1a: 0x49ff, 0xa1b: 0x4a05, 0xa1c: 0x4a0b, 0xa1d: 0x4a11,
+       0xa1e: 0x4a17, 0xa1f: 0x4a1d, 0xa20: 0x4a23, 0xa21: 0x4a29, 0xa22: 0x4a2f, 0xa23: 0x4a35,
+       0xa24: 0x03c3, 0xa25: 0x035f, 0xa26: 0x0363, 0xa27: 0x03e7, 0xa28: 0x03eb, 0xa29: 0x03ef,
+       0xa2a: 0x03f3, 0xa2b: 0x03f7, 0xa2c: 0x03fb, 0xa2d: 0x03ff, 0xa2e: 0x036b, 0xa2f: 0x0403,
+       0xa30: 0x0407, 0xa31: 0x036f, 0xa32: 0x0373, 0xa33: 0x0377, 0xa34: 0x037f, 0xa35: 0x0383,
+       0xa36: 0x0387, 0xa37: 0x038b, 0xa38: 0x038f, 0xa39: 0x0393, 0xa3a: 0x0397, 0xa3b: 0x039b,
+       0xa3c: 0x039f, 0xa3d: 0x03a3, 0xa3e: 0x03a7, 0xa3f: 0x03ab,
+       // Block 0x29, offset 0xa40
+       0xa40: 0x03af, 0xa41: 0x03b3, 0xa42: 0x040b, 0xa43: 0x040f, 0xa44: 0x03b7, 0xa45: 0x03bb,
+       0xa46: 0x03bf, 0xa47: 0x03c7, 0xa48: 0x03cb, 0xa49: 0x03cf, 0xa4a: 0x03d3, 0xa4b: 0x03d7,
+       0xa4c: 0x03db, 0xa4d: 0x03df, 0xa4e: 0x03e3,
+       0xa52: 0x06bf, 0xa53: 0x071b, 0xa54: 0x06cb, 0xa55: 0x097b, 0xa56: 0x06cf, 0xa57: 0x06e7,
+       0xa58: 0x06d3, 0xa59: 0x0f93, 0xa5a: 0x0707, 0xa5b: 0x06db, 0xa5c: 0x06c3, 0xa5d: 0x09ff,
+       0xa5e: 0x098f, 0xa5f: 0x072f,
+       // Block 0x2a, offset 0xa80
+       0xa80: 0x2054, 0xa81: 0x205a, 0xa82: 0x2060, 0xa83: 0x2066, 0xa84: 0x206c, 0xa85: 0x2072,
+       0xa86: 0x2078, 0xa87: 0x207e, 0xa88: 0x2084, 0xa89: 0x208a, 0xa8a: 0x2090, 0xa8b: 0x2096,
+       0xa8c: 0x209c, 0xa8d: 0x20a2, 0xa8e: 0x2726, 0xa8f: 0x272f, 0xa90: 0x2738, 0xa91: 0x2741,
+       0xa92: 0x274a, 0xa93: 0x2753, 0xa94: 0x275c, 0xa95: 0x2765, 0xa96: 0x276e, 0xa97: 0x2780,
+       0xa98: 0x2789, 0xa99: 0x2792, 0xa9a: 0x279b, 0xa9b: 0x27a4, 0xa9c: 0x2777, 0xa9d: 0x2bac,
+       0xa9e: 0x2aed, 0xaa0: 0x20a8, 0xaa1: 0x20c0, 0xaa2: 0x20b4, 0xaa3: 0x2108,
+       0xaa4: 0x20c6, 0xaa5: 0x20e4, 0xaa6: 0x20ae, 0xaa7: 0x20de, 0xaa8: 0x20ba, 0xaa9: 0x20f0,
+       0xaaa: 0x2120, 0xaab: 0x213e, 0xaac: 0x2138, 0xaad: 0x212c, 0xaae: 0x217a, 0xaaf: 0x210e,
+       0xab0: 0x211a, 0xab1: 0x2132, 0xab2: 0x2126, 0xab3: 0x2150, 0xab4: 0x20fc, 0xab5: 0x2144,
+       0xab6: 0x216e, 0xab7: 0x2156, 0xab8: 0x20ea, 0xab9: 0x20cc, 0xaba: 0x2102, 0xabb: 0x2114,
+       0xabc: 0x214a, 0xabd: 0x20d2, 0xabe: 0x2174, 0xabf: 0x20f6,
+       // Block 0x2b, offset 0xac0
+       0xac0: 0x215c, 0xac1: 0x20d8, 0xac2: 0x2162, 0xac3: 0x2168, 0xac4: 0x092f, 0xac5: 0x0b03,
+       0xac6: 0x0ca7, 0xac7: 0x10c7,
+       0xad0: 0x1bc4, 0xad1: 0x18a9,
+       0xad2: 0x18ac, 0xad3: 0x18af, 0xad4: 0x18b2, 0xad5: 0x18b5, 0xad6: 0x18b8, 0xad7: 0x18bb,
+       0xad8: 0x18be, 0xad9: 0x18c1, 0xada: 0x18ca, 0xadb: 0x18cd, 0xadc: 0x18d0, 0xadd: 0x18d3,
+       0xade: 0x18d6, 0xadf: 0x18d9, 0xae0: 0x0313, 0xae1: 0x031b, 0xae2: 0x031f, 0xae3: 0x0327,
+       0xae4: 0x032b, 0xae5: 0x032f, 0xae6: 0x0337, 0xae7: 0x033f, 0xae8: 0x0343, 0xae9: 0x034b,
+       0xaea: 0x034f, 0xaeb: 0x0353, 0xaec: 0x0357, 0xaed: 0x035b, 0xaee: 0x2e18, 0xaef: 0x2e20,
+       0xaf0: 0x2e28, 0xaf1: 0x2e30, 0xaf2: 0x2e38, 0xaf3: 0x2e40, 0xaf4: 0x2e48, 0xaf5: 0x2e50,
+       0xaf6: 0x2e60, 0xaf7: 0x2e68, 0xaf8: 0x2e70, 0xaf9: 0x2e78, 0xafa: 0x2e80, 0xafb: 0x2e88,
+       0xafc: 0x2ed3, 0xafd: 0x2e9b, 0xafe: 0x2e58,
+       // Block 0x2c, offset 0xb00
+       0xb00: 0x06bf, 0xb01: 0x071b, 0xb02: 0x06cb, 0xb03: 0x097b, 0xb04: 0x071f, 0xb05: 0x07af,
+       0xb06: 0x06c7, 0xb07: 0x07ab, 0xb08: 0x070b, 0xb09: 0x0887, 0xb0a: 0x0d07, 0xb0b: 0x0e8f,
+       0xb0c: 0x0dd7, 0xb0d: 0x0d1b, 0xb0e: 0x145f, 0xb0f: 0x098b, 0xb10: 0x0ccf, 0xb11: 0x0d4b,
+       0xb12: 0x0d0b, 0xb13: 0x104b, 0xb14: 0x08fb, 0xb15: 0x0f03, 0xb16: 0x1387, 0xb17: 0x105f,
+       0xb18: 0x0843, 0xb19: 0x108f, 0xb1a: 0x0f9b, 0xb1b: 0x0a17, 0xb1c: 0x140f, 0xb1d: 0x077f,
+       0xb1e: 0x08ab, 0xb1f: 0x0df7, 0xb20: 0x1527, 0xb21: 0x0743, 0xb22: 0x07d3, 0xb23: 0x0d9b,
+       0xb24: 0x06cf, 0xb25: 0x06e7, 0xb26: 0x06d3, 0xb27: 0x0adb, 0xb28: 0x08ef, 0xb29: 0x087f,
+       0xb2a: 0x0a57, 0xb2b: 0x0a4b, 0xb2c: 0x0feb, 0xb2d: 0x073f, 0xb2e: 0x139b, 0xb2f: 0x089b,
+       0xb30: 0x09f3, 0xb31: 0x18dc, 0xb32: 0x18df, 0xb33: 0x18e2, 0xb34: 0x18e5, 0xb35: 0x18ee,
+       0xb36: 0x18f1, 0xb37: 0x18f4, 0xb38: 0x18f7, 0xb39: 0x18fa, 0xb3a: 0x18fd, 0xb3b: 0x1900,
+       0xb3c: 0x1903, 0xb3d: 0x1906, 0xb3e: 0x1909, 0xb3f: 0x1912,
+       // Block 0x2d, offset 0xb40
+       0xb40: 0x1cc6, 0xb41: 0x1cd5, 0xb42: 0x1ce4, 0xb43: 0x1cf3, 0xb44: 0x1d02, 0xb45: 0x1d11,
+       0xb46: 0x1d20, 0xb47: 0x1d2f, 0xb48: 0x1d3e, 0xb49: 0x218c, 0xb4a: 0x219e, 0xb4b: 0x21b0,
+       0xb4c: 0x1954, 0xb4d: 0x1c04, 0xb4e: 0x19d2, 0xb4f: 0x1ba8, 0xb50: 0x04cb, 0xb51: 0x04d3,
+       0xb52: 0x04db, 0xb53: 0x04e3, 0xb54: 0x04eb, 0xb55: 0x04ef, 0xb56: 0x04f3, 0xb57: 0x04f7,
+       0xb58: 0x04fb, 0xb59: 0x04ff, 0xb5a: 0x0503, 0xb5b: 0x0507, 0xb5c: 0x050b, 0xb5d: 0x050f,
+       0xb5e: 0x0513, 0xb5f: 0x0517, 0xb60: 0x051b, 0xb61: 0x0523, 0xb62: 0x0527, 0xb63: 0x052b,
+       0xb64: 0x052f, 0xb65: 0x0533, 0xb66: 0x0537, 0xb67: 0x053b, 0xb68: 0x053f, 0xb69: 0x0543,
+       0xb6a: 0x0547, 0xb6b: 0x054b, 0xb6c: 0x054f, 0xb6d: 0x0553, 0xb6e: 0x0557, 0xb6f: 0x055b,
+       0xb70: 0x055f, 0xb71: 0x0563, 0xb72: 0x0567, 0xb73: 0x056f, 0xb74: 0x0577, 0xb75: 0x057f,
+       0xb76: 0x0583, 0xb77: 0x0587, 0xb78: 0x058b, 0xb79: 0x058f, 0xb7a: 0x0593, 0xb7b: 0x0597,
+       0xb7c: 0x059b, 0xb7d: 0x059f, 0xb7e: 0x05a3,
+       // Block 0x2e, offset 0xb80
+       0xb80: 0x2b0c, 0xb81: 0x29a8, 0xb82: 0x2b1c, 0xb83: 0x2880, 0xb84: 0x2ee4, 0xb85: 0x288a,
+       0xb86: 0x2894, 0xb87: 0x2f28, 0xb88: 0x29b5, 0xb89: 0x289e, 0xb8a: 0x28a8, 0xb8b: 0x28b2,
+       0xb8c: 0x29dc, 0xb8d: 0x29e9, 0xb8e: 0x29c2, 0xb8f: 0x29cf, 0xb90: 0x2ea9, 0xb91: 0x29f6,
+       0xb92: 0x2a03, 0xb93: 0x2bbe, 0xb94: 0x26bb, 0xb95: 0x2bd1, 0xb96: 0x2be4, 0xb97: 0x2b2c,
+       0xb98: 0x2a10, 0xb99: 0x2bf7, 0xb9a: 0x2c0a, 0xb9b: 0x2a1d, 0xb9c: 0x28bc, 0xb9d: 0x28c6,
+       0xb9e: 0x2eb7, 0xb9f: 0x2a2a, 0xba0: 0x2b3c, 0xba1: 0x2ef5, 0xba2: 0x28d0, 0xba3: 0x28da,
+       0xba4: 0x2a37, 0xba5: 0x28e4, 0xba6: 0x28ee, 0xba7: 0x26d0, 0xba8: 0x26d7, 0xba9: 0x28f8,
+       0xbaa: 0x2902, 0xbab: 0x2c1d, 0xbac: 0x2a44, 0xbad: 0x2b4c, 0xbae: 0x2c30, 0xbaf: 0x2a51,
+       0xbb0: 0x2916, 0xbb1: 0x290c, 0xbb2: 0x2f3c, 0xbb3: 0x2a5e, 0xbb4: 0x2c43, 0xbb5: 0x2920,
+       0xbb6: 0x2b5c, 0xbb7: 0x292a, 0xbb8: 0x2a78, 0xbb9: 0x2934, 0xbba: 0x2a85, 0xbbb: 0x2f06,
+       0xbbc: 0x2a6b, 0xbbd: 0x2b6c, 0xbbe: 0x2a92, 0xbbf: 0x26de,
+       // Block 0x2f, offset 0xbc0
+       0xbc0: 0x2f17, 0xbc1: 0x293e, 0xbc2: 0x2948, 0xbc3: 0x2a9f, 0xbc4: 0x2952, 0xbc5: 0x295c,
+       0xbc6: 0x2966, 0xbc7: 0x2b7c, 0xbc8: 0x2aac, 0xbc9: 0x26e5, 0xbca: 0x2c56, 0xbcb: 0x2e90,
+       0xbcc: 0x2b8c, 0xbcd: 0x2ab9, 0xbce: 0x2ec5, 0xbcf: 0x2970, 0xbd0: 0x297a, 0xbd1: 0x2ac6,
+       0xbd2: 0x26ec, 0xbd3: 0x2ad3, 0xbd4: 0x2b9c, 0xbd5: 0x26f3, 0xbd6: 0x2c69, 0xbd7: 0x2984,
+       0xbd8: 0x1cb7, 0xbd9: 0x1ccb, 0xbda: 0x1cda, 0xbdb: 0x1ce9, 0xbdc: 0x1cf8, 0xbdd: 0x1d07,
+       0xbde: 0x1d16, 0xbdf: 0x1d25, 0xbe0: 0x1d34, 0xbe1: 0x1d43, 0xbe2: 0x2192, 0xbe3: 0x21a4,
+       0xbe4: 0x21b6, 0xbe5: 0x21c2, 0xbe6: 0x21ce, 0xbe7: 0x21da, 0xbe8: 0x21e6, 0xbe9: 0x21f2,
+       0xbea: 0x21fe, 0xbeb: 0x220a, 0xbec: 0x2246, 0xbed: 0x2252, 0xbee: 0x225e, 0xbef: 0x226a,
+       0xbf0: 0x2276, 0xbf1: 0x1c14, 0xbf2: 0x19c6, 0xbf3: 0x1936, 0xbf4: 0x1be4, 0xbf5: 0x1a47,
+       0xbf6: 0x1a56, 0xbf7: 0x19cc, 0xbf8: 0x1bfc, 0xbf9: 0x1c00, 0xbfa: 0x1960, 0xbfb: 0x2701,
+       0xbfc: 0x270f, 0xbfd: 0x26fa, 0xbfe: 0x2708, 0xbff: 0x2ae0,
+       // Block 0x30, offset 0xc00
+       0xc00: 0x1a4a, 0xc01: 0x1a32, 0xc02: 0x1c60, 0xc03: 0x1a1a, 0xc04: 0x19f3, 0xc05: 0x1969,
+       0xc06: 0x1978, 0xc07: 0x1948, 0xc08: 0x1bf0, 0xc09: 0x1d52, 0xc0a: 0x1a4d, 0xc0b: 0x1a35,
+       0xc0c: 0x1c64, 0xc0d: 0x1c70, 0xc0e: 0x1a26, 0xc0f: 0x19fc, 0xc10: 0x1957, 0xc11: 0x1c1c,
+       0xc12: 0x1bb0, 0xc13: 0x1b9c, 0xc14: 0x1bcc, 0xc15: 0x1c74, 0xc16: 0x1a29, 0xc17: 0x19c9,
+       0xc18: 0x19ff, 0xc19: 0x19de, 0xc1a: 0x1a41, 0xc1b: 0x1c78, 0xc1c: 0x1a2c, 0xc1d: 0x19c0,
+       0xc1e: 0x1a02, 0xc1f: 0x1c3c, 0xc20: 0x1bf4, 0xc21: 0x1a14, 0xc22: 0x1c24, 0xc23: 0x1c40,
+       0xc24: 0x1bf8, 0xc25: 0x1a17, 0xc26: 0x1c28, 0xc27: 0x22e8, 0xc28: 0x22fc, 0xc29: 0x1996,
+       0xc2a: 0x1c20, 0xc2b: 0x1bb4, 0xc2c: 0x1ba0, 0xc2d: 0x1c48, 0xc2e: 0x2716, 0xc2f: 0x27ad,
+       0xc30: 0x1a59, 0xc31: 0x1a44, 0xc32: 0x1c7c, 0xc33: 0x1a2f, 0xc34: 0x1a50, 0xc35: 0x1a38,
+       0xc36: 0x1c68, 0xc37: 0x1a1d, 0xc38: 0x19f6, 0xc39: 0x1981, 0xc3a: 0x1a53, 0xc3b: 0x1a3b,
+       0xc3c: 0x1c6c, 0xc3d: 0x1a20, 0xc3e: 0x19f9, 0xc3f: 0x1984,
+       // Block 0x31, offset 0xc40
+       0xc40: 0x1c2c, 0xc41: 0x1bb8, 0xc42: 0x1d4d, 0xc43: 0x1939, 0xc44: 0x19ba, 0xc45: 0x19bd,
+       0xc46: 0x22f5, 0xc47: 0x1b94, 0xc48: 0x19c3, 0xc49: 0x194b, 0xc4a: 0x19e1, 0xc4b: 0x194e,
+       0xc4c: 0x19ea, 0xc4d: 0x196c, 0xc4e: 0x196f, 0xc4f: 0x1a05, 0xc50: 0x1a0b, 0xc51: 0x1a0e,
+       0xc52: 0x1c30, 0xc53: 0x1a11, 0xc54: 0x1a23, 0xc55: 0x1c38, 0xc56: 0x1c44, 0xc57: 0x1990,
+       0xc58: 0x1d57, 0xc59: 0x1bbc, 0xc5a: 0x1993, 0xc5b: 0x1a5c, 0xc5c: 0x19a5, 0xc5d: 0x19b4,
+       0xc5e: 0x22e2, 0xc5f: 0x22dc, 0xc60: 0x1cc1, 0xc61: 0x1cd0, 0xc62: 0x1cdf, 0xc63: 0x1cee,
+       0xc64: 0x1cfd, 0xc65: 0x1d0c, 0xc66: 0x1d1b, 0xc67: 0x1d2a, 0xc68: 0x1d39, 0xc69: 0x2186,
+       0xc6a: 0x2198, 0xc6b: 0x21aa, 0xc6c: 0x21bc, 0xc6d: 0x21c8, 0xc6e: 0x21d4, 0xc6f: 0x21e0,
+       0xc70: 0x21ec, 0xc71: 0x21f8, 0xc72: 0x2204, 0xc73: 0x2240, 0xc74: 0x224c, 0xc75: 0x2258,
+       0xc76: 0x2264, 0xc77: 0x2270, 0xc78: 0x227c, 0xc79: 0x2282, 0xc7a: 0x2288, 0xc7b: 0x228e,
+       0xc7c: 0x2294, 0xc7d: 0x22a6, 0xc7e: 0x22ac, 0xc7f: 0x1c10,
+       // Block 0x32, offset 0xc80
+       0xc80: 0x1377, 0xc81: 0x0cfb, 0xc82: 0x13d3, 0xc83: 0x139f, 0xc84: 0x0e57, 0xc85: 0x06eb,
+       0xc86: 0x08df, 0xc87: 0x162b, 0xc88: 0x162b, 0xc89: 0x0a0b, 0xc8a: 0x145f, 0xc8b: 0x0943,
+       0xc8c: 0x0a07, 0xc8d: 0x0bef, 0xc8e: 0x0fcf, 0xc8f: 0x115f, 0xc90: 0x1297, 0xc91: 0x12d3,
+       0xc92: 0x1307, 0xc93: 0x141b, 0xc94: 0x0d73, 0xc95: 0x0dff, 0xc96: 0x0eab, 0xc97: 0x0f43,
+       0xc98: 0x125f, 0xc99: 0x1447, 0xc9a: 0x1573, 0xc9b: 0x070f, 0xc9c: 0x08b3, 0xc9d: 0x0d87,
+       0xc9e: 0x0ecf, 0xc9f: 0x1293, 0xca0: 0x15c3, 0xca1: 0x0ab3, 0xca2: 0x0e77, 0xca3: 0x1283,
+       0xca4: 0x1317, 0xca5: 0x0c23, 0xca6: 0x11bb, 0xca7: 0x12df, 0xca8: 0x0b1f, 0xca9: 0x0d0f,
+       0xcaa: 0x0e17, 0xcab: 0x0f1b, 0xcac: 0x1427, 0xcad: 0x074f, 0xcae: 0x07e7, 0xcaf: 0x0853,
+       0xcb0: 0x0c8b, 0xcb1: 0x0d7f, 0xcb2: 0x0ecb, 0xcb3: 0x0fef, 0xcb4: 0x1177, 0xcb5: 0x128b,
+       0xcb6: 0x12a3, 0xcb7: 0x13c7, 0xcb8: 0x14ef, 0xcb9: 0x15a3, 0xcba: 0x15bf, 0xcbb: 0x102b,
+       0xcbc: 0x106b, 0xcbd: 0x1123, 0xcbe: 0x1243, 0xcbf: 0x147b,
+       // Block 0x33, offset 0xcc0
+       0xcc0: 0x15cb, 0xcc1: 0x134b, 0xcc2: 0x09c7, 0xcc3: 0x0b3b, 0xcc4: 0x10db, 0xcc5: 0x119b,
+       0xcc6: 0x0eff, 0xcc7: 0x1033, 0xcc8: 0x1397, 0xcc9: 0x14e7, 0xcca: 0x09c3, 0xccb: 0x0a8f,
+       0xccc: 0x0d77, 0xccd: 0x0e2b, 0xcce: 0x0e5f, 0xccf: 0x1113, 0xcd0: 0x113b, 0xcd1: 0x14a7,
+       0xcd2: 0x084f, 0xcd3: 0x11a7, 0xcd4: 0x07f3, 0xcd5: 0x07ef, 0xcd6: 0x1097, 0xcd7: 0x1127,
+       0xcd8: 0x125b, 0xcd9: 0x14af, 0xcda: 0x1367, 0xcdb: 0x0c27, 0xcdc: 0x0d73, 0xcdd: 0x1357,
+       0xcde: 0x06f7, 0xcdf: 0x0a63, 0xce0: 0x0b93, 0xce1: 0x0f2f, 0xce2: 0x0faf, 0xce3: 0x0873,
+       0xce4: 0x103b, 0xce5: 0x075f, 0xce6: 0x0b77, 0xce7: 0x06d7, 0xce8: 0x0deb, 0xce9: 0x0ca3,
+       0xcea: 0x110f, 0xceb: 0x08c7, 0xcec: 0x09b3, 0xced: 0x0ffb, 0xcee: 0x1263, 0xcef: 0x133b,
+       0xcf0: 0x0db7, 0xcf1: 0x13f7, 0xcf2: 0x0de3, 0xcf3: 0x0c37, 0xcf4: 0x121b, 0xcf5: 0x0c57,
+       0xcf6: 0x0fab, 0xcf7: 0x072b, 0xcf8: 0x07a7, 0xcf9: 0x07eb, 0xcfa: 0x0d53, 0xcfb: 0x10fb,
+       0xcfc: 0x11f3, 0xcfd: 0x1347, 0xcfe: 0x145b, 0xcff: 0x085b,
+       // Block 0x34, offset 0xd00
+       0xd00: 0x090f, 0xd01: 0x0a17, 0xd02: 0x0b2f, 0xd03: 0x0cbf, 0xd04: 0x0e7b, 0xd05: 0x103f,
+       0xd06: 0x1497, 0xd07: 0x157b, 0xd08: 0x15cf, 0xd09: 0x15e7, 0xd0a: 0x0837, 0xd0b: 0x0cf3,
+       0xd0c: 0x0da3, 0xd0d: 0x13eb, 0xd0e: 0x0afb, 0xd0f: 0x0bd7, 0xd10: 0x0bf3, 0xd11: 0x0c83,
+       0xd12: 0x0e6b, 0xd13: 0x0eb7, 0xd14: 0x0f67, 0xd15: 0x108b, 0xd16: 0x112f, 0xd17: 0x1193,
+       0xd18: 0x13db, 0xd19: 0x126b, 0xd1a: 0x1403, 0xd1b: 0x147f, 0xd1c: 0x080f, 0xd1d: 0x083b,
+       0xd1e: 0x0923, 0xd1f: 0x0ea7, 0xd20: 0x12f3, 0xd21: 0x133b, 0xd22: 0x0b1b, 0xd23: 0x0b8b,
+       0xd24: 0x0c4f, 0xd25: 0x0daf, 0xd26: 0x10d7, 0xd27: 0x0f23, 0xd28: 0x073b, 0xd29: 0x097f,
+       0xd2a: 0x0a63, 0xd2b: 0x0ac7, 0xd2c: 0x0b97, 0xd2d: 0x0f3f, 0xd2e: 0x0f5b, 0xd2f: 0x116b,
+       0xd30: 0x118b, 0xd31: 0x1463, 0xd32: 0x14e3, 0xd33: 0x14f3, 0xd34: 0x152f, 0xd35: 0x0753,
+       0xd36: 0x107f, 0xd37: 0x144f, 0xd38: 0x14cb, 0xd39: 0x0baf, 0xd3a: 0x0717, 0xd3b: 0x0777,
+       0xd3c: 0x0a67, 0xd3d: 0x0a87, 0xd3e: 0x0caf, 0xd3f: 0x0d73,
+       // Block 0x35, offset 0xd40
+       0xd40: 0x0ec3, 0xd41: 0x0fcb, 0xd42: 0x1277, 0xd43: 0x1417, 0xd44: 0x1623, 0xd45: 0x0ce3,
+       0xd46: 0x14a3, 0xd47: 0x0833, 0xd48: 0x0d2f, 0xd49: 0x0d3b, 0xd4a: 0x0e0f, 0xd4b: 0x0e47,
+       0xd4c: 0x0f4b, 0xd4d: 0x0fa7, 0xd4e: 0x1027, 0xd4f: 0x110b, 0xd50: 0x153b, 0xd51: 0x07af,
+       0xd52: 0x0c03, 0xd53: 0x14b3, 0xd54: 0x0767, 0xd55: 0x0aab, 0xd56: 0x0e2f, 0xd57: 0x13df,
+       0xd58: 0x0b67, 0xd59: 0x0bb7, 0xd5a: 0x0d43, 0xd5b: 0x0f2f, 0xd5c: 0x14bb, 0xd5d: 0x0817,
+       0xd5e: 0x08ff, 0xd5f: 0x0a97, 0xd60: 0x0cd3, 0xd61: 0x0d1f, 0xd62: 0x0d5f, 0xd63: 0x0df3,
+       0xd64: 0x0f47, 0xd65: 0x0fbb, 0xd66: 0x1157, 0xd67: 0x12f7, 0xd68: 0x1303, 0xd69: 0x1457,
+       0xd6a: 0x14d7, 0xd6b: 0x0883, 0xd6c: 0x0e4b, 0xd6d: 0x0903, 0xd6e: 0x0ec7, 0xd6f: 0x0f6b,
+       0xd70: 0x1287, 0xd71: 0x14bf, 0xd72: 0x15ab, 0xd73: 0x15d3, 0xd74: 0x0d37, 0xd75: 0x0e27,
+       0xd76: 0x11c3, 0xd77: 0x10b7, 0xd78: 0x10c3, 0xd79: 0x10e7, 0xd7a: 0x0f17, 0xd7b: 0x0e9f,
+       0xd7c: 0x1363, 0xd7d: 0x0733, 0xd7e: 0x122b, 0xd7f: 0x081b,
+       // Block 0x36, offset 0xd80
+       0xd80: 0x080b, 0xd81: 0x0b0b, 0xd82: 0x0c2b, 0xd83: 0x10f3, 0xd84: 0x0a53, 0xd85: 0x0e03,
+       0xd86: 0x0cef, 0xd87: 0x13e7, 0xd88: 0x12e7, 0xd89: 0x14ab, 0xd8a: 0x1323, 0xd8b: 0x0b27,
+       0xd8c: 0x0787, 0xd8d: 0x095b, 0xd90: 0x09af,
+       0xd92: 0x0cdf, 0xd95: 0x07f7, 0xd96: 0x0f1f, 0xd97: 0x0fe3,
+       0xd98: 0x1047, 0xd99: 0x1063, 0xd9a: 0x1067, 0xd9b: 0x107b, 0xd9c: 0x14fb, 0xd9d: 0x10eb,
+       0xd9e: 0x116f, 0xda0: 0x128f, 0xda2: 0x1353,
+       0xda5: 0x1407, 0xda6: 0x1433,
+       0xdaa: 0x154f, 0xdab: 0x1553, 0xdac: 0x1557, 0xdad: 0x15bb, 0xdae: 0x142b, 0xdaf: 0x14c7,
+       0xdb0: 0x0757, 0xdb1: 0x077b, 0xdb2: 0x078f, 0xdb3: 0x084b, 0xdb4: 0x0857, 0xdb5: 0x0897,
+       0xdb6: 0x094b, 0xdb7: 0x0967, 0xdb8: 0x096f, 0xdb9: 0x09ab, 0xdba: 0x09b7, 0xdbb: 0x0a93,
+       0xdbc: 0x0a9b, 0xdbd: 0x0ba3, 0xdbe: 0x0bcb, 0xdbf: 0x0bd3,
+       // Block 0x37, offset 0xdc0
+       0xdc0: 0x0beb, 0xdc1: 0x0c97, 0xdc2: 0x0cc7, 0xdc3: 0x0ce7, 0xdc4: 0x0d57, 0xdc5: 0x0e1b,
+       0xdc6: 0x0e37, 0xdc7: 0x0e67, 0xdc8: 0x0ebb, 0xdc9: 0x0edb, 0xdca: 0x0f4f, 0xdcb: 0x102f,
+       0xdcc: 0x104b, 0xdcd: 0x1053, 0xdce: 0x104f, 0xdcf: 0x1057, 0xdd0: 0x105b, 0xdd1: 0x105f,
+       0xdd2: 0x1073, 0xdd3: 0x1077, 0xdd4: 0x109b, 0xdd5: 0x10af, 0xdd6: 0x10cb, 0xdd7: 0x112f,
+       0xdd8: 0x1137, 0xdd9: 0x113f, 0xdda: 0x1153, 0xddb: 0x117b, 0xddc: 0x11cb, 0xddd: 0x11ff,
+       0xdde: 0x11ff, 0xddf: 0x1267, 0xde0: 0x130f, 0xde1: 0x1327, 0xde2: 0x135b, 0xde3: 0x135f,
+       0xde4: 0x13a3, 0xde5: 0x13a7, 0xde6: 0x13ff, 0xde7: 0x1407, 0xde8: 0x14db, 0xde9: 0x151f,
+       0xdea: 0x1537, 0xdeb: 0x0b9b, 0xdec: 0x171e, 0xded: 0x11e3,
+       0xdf0: 0x06df, 0xdf1: 0x07e3, 0xdf2: 0x07a3, 0xdf3: 0x074b, 0xdf4: 0x078b, 0xdf5: 0x07b7,
+       0xdf6: 0x0847, 0xdf7: 0x0863, 0xdf8: 0x094b, 0xdf9: 0x0937, 0xdfa: 0x0947, 0xdfb: 0x0963,
+       0xdfc: 0x09af, 0xdfd: 0x09bf, 0xdfe: 0x0a03, 0xdff: 0x0a0f,
+       // Block 0x38, offset 0xe00
+       0xe00: 0x0a2b, 0xe01: 0x0a3b, 0xe02: 0x0b23, 0xe03: 0x0b2b, 0xe04: 0x0b5b, 0xe05: 0x0b7b,
+       0xe06: 0x0bab, 0xe07: 0x0bc3, 0xe08: 0x0bb3, 0xe09: 0x0bd3, 0xe0a: 0x0bc7, 0xe0b: 0x0beb,
+       0xe0c: 0x0c07, 0xe0d: 0x0c5f, 0xe0e: 0x0c6b, 0xe0f: 0x0c73, 0xe10: 0x0c9b, 0xe11: 0x0cdf,
+       0xe12: 0x0d0f, 0xe13: 0x0d13, 0xe14: 0x0d27, 0xe15: 0x0da7, 0xe16: 0x0db7, 0xe17: 0x0e0f,
+       0xe18: 0x0e5b, 0xe19: 0x0e53, 0xe1a: 0x0e67, 0xe1b: 0x0e83, 0xe1c: 0x0ebb, 0xe1d: 0x1013,
+       0xe1e: 0x0edf, 0xe1f: 0x0f13, 0xe20: 0x0f1f, 0xe21: 0x0f5f, 0xe22: 0x0f7b, 0xe23: 0x0f9f,
+       0xe24: 0x0fc3, 0xe25: 0x0fc7, 0xe26: 0x0fe3, 0xe27: 0x0fe7, 0xe28: 0x0ff7, 0xe29: 0x100b,
+       0xe2a: 0x1007, 0xe2b: 0x1037, 0xe2c: 0x10b3, 0xe2d: 0x10cb, 0xe2e: 0x10e3, 0xe2f: 0x111b,
+       0xe30: 0x112f, 0xe31: 0x114b, 0xe32: 0x117b, 0xe33: 0x122f, 0xe34: 0x1257, 0xe35: 0x12cb,
+       0xe36: 0x1313, 0xe37: 0x131f, 0xe38: 0x1327, 0xe39: 0x133f, 0xe3a: 0x1353, 0xe3b: 0x1343,
+       0xe3c: 0x135b, 0xe3d: 0x1357, 0xe3e: 0x134f, 0xe3f: 0x135f,
+       // Block 0x39, offset 0xe40
+       0xe40: 0x136b, 0xe41: 0x13a7, 0xe42: 0x13e3, 0xe43: 0x1413, 0xe44: 0x144b, 0xe45: 0x146b,
+       0xe46: 0x14b7, 0xe47: 0x14db, 0xe48: 0x14fb, 0xe49: 0x150f, 0xe4a: 0x151f, 0xe4b: 0x152b,
+       0xe4c: 0x1537, 0xe4d: 0x158b, 0xe4e: 0x162b, 0xe4f: 0x16b5, 0xe50: 0x16b0, 0xe51: 0x16e2,
+       0xe52: 0x0607, 0xe53: 0x062f, 0xe54: 0x0633, 0xe55: 0x1764, 0xe56: 0x1791, 0xe57: 0x1809,
+       0xe58: 0x1617, 0xe59: 0x1627,
+       // Block 0x3a, offset 0xe80
+       0xe80: 0x19d5, 0xe81: 0x19d8, 0xe82: 0x19db, 0xe83: 0x1c08, 0xe84: 0x1c0c, 0xe85: 0x1a5f,
+       0xe86: 0x1a5f,
+       0xe93: 0x1d75, 0xe94: 0x1d66, 0xe95: 0x1d6b, 0xe96: 0x1d7a, 0xe97: 0x1d70,
+       0xe9d: 0x4390,
+       0xe9e: 0x8115, 0xe9f: 0x4402, 0xea0: 0x022d, 0xea1: 0x0215, 0xea2: 0x021e, 0xea3: 0x0221,
+       0xea4: 0x0224, 0xea5: 0x0227, 0xea6: 0x022a, 0xea7: 0x0230, 0xea8: 0x0233, 0xea9: 0x0017,
+       0xeaa: 0x43f0, 0xeab: 0x43f6, 0xeac: 0x44f4, 0xead: 0x44fc, 0xeae: 0x4348, 0xeaf: 0x434e,
+       0xeb0: 0x4354, 0xeb1: 0x435a, 0xeb2: 0x4366, 0xeb3: 0x436c, 0xeb4: 0x4372, 0xeb5: 0x437e,
+       0xeb6: 0x4384, 0xeb8: 0x438a, 0xeb9: 0x4396, 0xeba: 0x439c, 0xebb: 0x43a2,
+       0xebc: 0x43ae, 0xebe: 0x43b4,
+       // Block 0x3b, offset 0xec0
+       0xec0: 0x43ba, 0xec1: 0x43c0, 0xec3: 0x43c6, 0xec4: 0x43cc,
+       0xec6: 0x43d8, 0xec7: 0x43de, 0xec8: 0x43e4, 0xec9: 0x43ea, 0xeca: 0x43fc, 0xecb: 0x4378,
+       0xecc: 0x4360, 0xecd: 0x43a8, 0xece: 0x43d2, 0xecf: 0x1d7f, 0xed0: 0x0299, 0xed1: 0x0299,
+       0xed2: 0x02a2, 0xed3: 0x02a2, 0xed4: 0x02a2, 0xed5: 0x02a2, 0xed6: 0x02a5, 0xed7: 0x02a5,
+       0xed8: 0x02a5, 0xed9: 0x02a5, 0xeda: 0x02ab, 0xedb: 0x02ab, 0xedc: 0x02ab, 0xedd: 0x02ab,
+       0xede: 0x029f, 0xedf: 0x029f, 0xee0: 0x029f, 0xee1: 0x029f, 0xee2: 0x02a8, 0xee3: 0x02a8,
+       0xee4: 0x02a8, 0xee5: 0x02a8, 0xee6: 0x029c, 0xee7: 0x029c, 0xee8: 0x029c, 0xee9: 0x029c,
+       0xeea: 0x02cf, 0xeeb: 0x02cf, 0xeec: 0x02cf, 0xeed: 0x02cf, 0xeee: 0x02d2, 0xeef: 0x02d2,
+       0xef0: 0x02d2, 0xef1: 0x02d2, 0xef2: 0x02b1, 0xef3: 0x02b1, 0xef4: 0x02b1, 0xef5: 0x02b1,
+       0xef6: 0x02ae, 0xef7: 0x02ae, 0xef8: 0x02ae, 0xef9: 0x02ae, 0xefa: 0x02b4, 0xefb: 0x02b4,
+       0xefc: 0x02b4, 0xefd: 0x02b4, 0xefe: 0x02b7, 0xeff: 0x02b7,
+       // Block 0x3c, offset 0xf00
+       0xf00: 0x02b7, 0xf01: 0x02b7, 0xf02: 0x02c0, 0xf03: 0x02c0, 0xf04: 0x02bd, 0xf05: 0x02bd,
+       0xf06: 0x02c3, 0xf07: 0x02c3, 0xf08: 0x02ba, 0xf09: 0x02ba, 0xf0a: 0x02c9, 0xf0b: 0x02c9,
+       0xf0c: 0x02c6, 0xf0d: 0x02c6, 0xf0e: 0x02d5, 0xf0f: 0x02d5, 0xf10: 0x02d5, 0xf11: 0x02d5,
+       0xf12: 0x02db, 0xf13: 0x02db, 0xf14: 0x02db, 0xf15: 0x02db, 0xf16: 0x02e1, 0xf17: 0x02e1,
+       0xf18: 0x02e1, 0xf19: 0x02e1, 0xf1a: 0x02de, 0xf1b: 0x02de, 0xf1c: 0x02de, 0xf1d: 0x02de,
+       0xf1e: 0x02e4, 0xf1f: 0x02e4, 0xf20: 0x02e7, 0xf21: 0x02e7, 0xf22: 0x02e7, 0xf23: 0x02e7,
+       0xf24: 0x446e, 0xf25: 0x446e, 0xf26: 0x02ed, 0xf27: 0x02ed, 0xf28: 0x02ed, 0xf29: 0x02ed,
+       0xf2a: 0x02ea, 0xf2b: 0x02ea, 0xf2c: 0x02ea, 0xf2d: 0x02ea, 0xf2e: 0x0308, 0xf2f: 0x0308,
+       0xf30: 0x4468, 0xf31: 0x4468,
+       // Block 0x3d, offset 0xf40
+       0xf53: 0x02d8, 0xf54: 0x02d8, 0xf55: 0x02d8, 0xf56: 0x02d8, 0xf57: 0x02f6,
+       0xf58: 0x02f6, 0xf59: 0x02f3, 0xf5a: 0x02f3, 0xf5b: 0x02f9, 0xf5c: 0x02f9, 0xf5d: 0x204f,
+       0xf5e: 0x02ff, 0xf5f: 0x02ff, 0xf60: 0x02f0, 0xf61: 0x02f0, 0xf62: 0x02fc, 0xf63: 0x02fc,
+       0xf64: 0x0305, 0xf65: 0x0305, 0xf66: 0x0305, 0xf67: 0x0305, 0xf68: 0x028d, 0xf69: 0x028d,
+       0xf6a: 0x25aa, 0xf6b: 0x25aa, 0xf6c: 0x261a, 0xf6d: 0x261a, 0xf6e: 0x25e9, 0xf6f: 0x25e9,
+       0xf70: 0x2605, 0xf71: 0x2605, 0xf72: 0x25fe, 0xf73: 0x25fe, 0xf74: 0x260c, 0xf75: 0x260c,
+       0xf76: 0x2613, 0xf77: 0x2613, 0xf78: 0x2613, 0xf79: 0x25f0, 0xf7a: 0x25f0, 0xf7b: 0x25f0,
+       0xf7c: 0x0302, 0xf7d: 0x0302, 0xf7e: 0x0302, 0xf7f: 0x0302,
+       // Block 0x3e, offset 0xf80
+       0xf80: 0x25b1, 0xf81: 0x25b8, 0xf82: 0x25d4, 0xf83: 0x25f0, 0xf84: 0x25f7, 0xf85: 0x1d89,
+       0xf86: 0x1d8e, 0xf87: 0x1d93, 0xf88: 0x1da2, 0xf89: 0x1db1, 0xf8a: 0x1db6, 0xf8b: 0x1dbb,
+       0xf8c: 0x1dc0, 0xf8d: 0x1dc5, 0xf8e: 0x1dd4, 0xf8f: 0x1de3, 0xf90: 0x1de8, 0xf91: 0x1ded,
+       0xf92: 0x1dfc, 0xf93: 0x1e0b, 0xf94: 0x1e10, 0xf95: 0x1e15, 0xf96: 0x1e1a, 0xf97: 0x1e29,
+       0xf98: 0x1e2e, 0xf99: 0x1e3d, 0xf9a: 0x1e42, 0xf9b: 0x1e47, 0xf9c: 0x1e56, 0xf9d: 0x1e5b,
+       0xf9e: 0x1e60, 0xf9f: 0x1e6a, 0xfa0: 0x1ea6, 0xfa1: 0x1eb5, 0xfa2: 0x1ec4, 0xfa3: 0x1ec9,
+       0xfa4: 0x1ece, 0xfa5: 0x1ed8, 0xfa6: 0x1ee7, 0xfa7: 0x1eec, 0xfa8: 0x1efb, 0xfa9: 0x1f00,
+       0xfaa: 0x1f05, 0xfab: 0x1f14, 0xfac: 0x1f19, 0xfad: 0x1f28, 0xfae: 0x1f2d, 0xfaf: 0x1f32,
+       0xfb0: 0x1f37, 0xfb1: 0x1f3c, 0xfb2: 0x1f41, 0xfb3: 0x1f46, 0xfb4: 0x1f4b, 0xfb5: 0x1f50,
+       0xfb6: 0x1f55, 0xfb7: 0x1f5a, 0xfb8: 0x1f5f, 0xfb9: 0x1f64, 0xfba: 0x1f69, 0xfbb: 0x1f6e,
+       0xfbc: 0x1f73, 0xfbd: 0x1f78, 0xfbe: 0x1f7d, 0xfbf: 0x1f87,
+       // Block 0x3f, offset 0xfc0
+       0xfc0: 0x1f8c, 0xfc1: 0x1f91, 0xfc2: 0x1f96, 0xfc3: 0x1fa0, 0xfc4: 0x1fa5, 0xfc5: 0x1faf,
+       0xfc6: 0x1fb4, 0xfc7: 0x1fb9, 0xfc8: 0x1fbe, 0xfc9: 0x1fc3, 0xfca: 0x1fc8, 0xfcb: 0x1fcd,
+       0xfcc: 0x1fd2, 0xfcd: 0x1fd7, 0xfce: 0x1fe6, 0xfcf: 0x1ff5, 0xfd0: 0x1ffa, 0xfd1: 0x1fff,
+       0xfd2: 0x2004, 0xfd3: 0x2009, 0xfd4: 0x200e, 0xfd5: 0x2018, 0xfd6: 0x201d, 0xfd7: 0x2022,
+       0xfd8: 0x2031, 0xfd9: 0x2040, 0xfda: 0x2045, 0xfdb: 0x4420, 0xfdc: 0x4426, 0xfdd: 0x445c,
+       0xfde: 0x44b3, 0xfdf: 0x44ba, 0xfe0: 0x44c1, 0xfe1: 0x44c8, 0xfe2: 0x44cf, 0xfe3: 0x44d6,
+       0xfe4: 0x25c6, 0xfe5: 0x25cd, 0xfe6: 0x25d4, 0xfe7: 0x25db, 0xfe8: 0x25f0, 0xfe9: 0x25f7,
+       0xfea: 0x1d98, 0xfeb: 0x1d9d, 0xfec: 0x1da2, 0xfed: 0x1da7, 0xfee: 0x1db1, 0xfef: 0x1db6,
+       0xff0: 0x1dca, 0xff1: 0x1dcf, 0xff2: 0x1dd4, 0xff3: 0x1dd9, 0xff4: 0x1de3, 0xff5: 0x1de8,
+       0xff6: 0x1df2, 0xff7: 0x1df7, 0xff8: 0x1dfc, 0xff9: 0x1e01, 0xffa: 0x1e0b, 0xffb: 0x1e10,
+       0xffc: 0x1f3c, 0xffd: 0x1f41, 0xffe: 0x1f50, 0xfff: 0x1f55,
+       // Block 0x40, offset 0x1000
+       0x1000: 0x1f5a, 0x1001: 0x1f6e, 0x1002: 0x1f73, 0x1003: 0x1f78, 0x1004: 0x1f7d, 0x1005: 0x1f96,
+       0x1006: 0x1fa0, 0x1007: 0x1fa5, 0x1008: 0x1faa, 0x1009: 0x1fbe, 0x100a: 0x1fdc, 0x100b: 0x1fe1,
+       0x100c: 0x1fe6, 0x100d: 0x1feb, 0x100e: 0x1ff5, 0x100f: 0x1ffa, 0x1010: 0x445c, 0x1011: 0x2027,
+       0x1012: 0x202c, 0x1013: 0x2031, 0x1014: 0x2036, 0x1015: 0x2040, 0x1016: 0x2045, 0x1017: 0x25b1,
+       0x1018: 0x25b8, 0x1019: 0x25bf, 0x101a: 0x25d4, 0x101b: 0x25e2, 0x101c: 0x1d89, 0x101d: 0x1d8e,
+       0x101e: 0x1d93, 0x101f: 0x1da2, 0x1020: 0x1dac, 0x1021: 0x1dbb, 0x1022: 0x1dc0, 0x1023: 0x1dc5,
+       0x1024: 0x1dd4, 0x1025: 0x1dde, 0x1026: 0x1dfc, 0x1027: 0x1e15, 0x1028: 0x1e1a, 0x1029: 0x1e29,
+       0x102a: 0x1e2e, 0x102b: 0x1e3d, 0x102c: 0x1e47, 0x102d: 0x1e56, 0x102e: 0x1e5b, 0x102f: 0x1e60,
+       0x1030: 0x1e6a, 0x1031: 0x1ea6, 0x1032: 0x1eab, 0x1033: 0x1eb5, 0x1034: 0x1ec4, 0x1035: 0x1ec9,
+       0x1036: 0x1ece, 0x1037: 0x1ed8, 0x1038: 0x1ee7, 0x1039: 0x1efb, 0x103a: 0x1f00, 0x103b: 0x1f05,
+       0x103c: 0x1f14, 0x103d: 0x1f19, 0x103e: 0x1f28, 0x103f: 0x1f2d,
+       // Block 0x41, offset 0x1040
+       0x1040: 0x1f32, 0x1041: 0x1f37, 0x1042: 0x1f46, 0x1043: 0x1f4b, 0x1044: 0x1f5f, 0x1045: 0x1f64,
+       0x1046: 0x1f69, 0x1047: 0x1f6e, 0x1048: 0x1f73, 0x1049: 0x1f87, 0x104a: 0x1f8c, 0x104b: 0x1f91,
+       0x104c: 0x1f96, 0x104d: 0x1f9b, 0x104e: 0x1faf, 0x104f: 0x1fb4, 0x1050: 0x1fb9, 0x1051: 0x1fbe,
+       0x1052: 0x1fcd, 0x1053: 0x1fd2, 0x1054: 0x1fd7, 0x1055: 0x1fe6, 0x1056: 0x1ff0, 0x1057: 0x1fff,
+       0x1058: 0x2004, 0x1059: 0x4450, 0x105a: 0x2018, 0x105b: 0x201d, 0x105c: 0x2022, 0x105d: 0x2031,
+       0x105e: 0x203b, 0x105f: 0x25d4, 0x1060: 0x25e2, 0x1061: 0x1da2, 0x1062: 0x1dac, 0x1063: 0x1dd4,
+       0x1064: 0x1dde, 0x1065: 0x1dfc, 0x1066: 0x1e06, 0x1067: 0x1e6a, 0x1068: 0x1e6f, 0x1069: 0x1e92,
+       0x106a: 0x1e97, 0x106b: 0x1f6e, 0x106c: 0x1f73, 0x106d: 0x1f96, 0x106e: 0x1fe6, 0x106f: 0x1ff0,
+       0x1070: 0x2031, 0x1071: 0x203b, 0x1072: 0x4504, 0x1073: 0x450c, 0x1074: 0x4514, 0x1075: 0x1ef1,
+       0x1076: 0x1ef6, 0x1077: 0x1f0a, 0x1078: 0x1f0f, 0x1079: 0x1f1e, 0x107a: 0x1f23, 0x107b: 0x1e74,
+       0x107c: 0x1e79, 0x107d: 0x1e9c, 0x107e: 0x1ea1, 0x107f: 0x1e33,
+       // Block 0x42, offset 0x1080
+       0x1080: 0x1e38, 0x1081: 0x1e1f, 0x1082: 0x1e24, 0x1083: 0x1e4c, 0x1084: 0x1e51, 0x1085: 0x1eba,
+       0x1086: 0x1ebf, 0x1087: 0x1edd, 0x1088: 0x1ee2, 0x1089: 0x1e7e, 0x108a: 0x1e83, 0x108b: 0x1e88,
+       0x108c: 0x1e92, 0x108d: 0x1e8d, 0x108e: 0x1e65, 0x108f: 0x1eb0, 0x1090: 0x1ed3, 0x1091: 0x1ef1,
+       0x1092: 0x1ef6, 0x1093: 0x1f0a, 0x1094: 0x1f0f, 0x1095: 0x1f1e, 0x1096: 0x1f23, 0x1097: 0x1e74,
+       0x1098: 0x1e79, 0x1099: 0x1e9c, 0x109a: 0x1ea1, 0x109b: 0x1e33, 0x109c: 0x1e38, 0x109d: 0x1e1f,
+       0x109e: 0x1e24, 0x109f: 0x1e4c, 0x10a0: 0x1e51, 0x10a1: 0x1eba, 0x10a2: 0x1ebf, 0x10a3: 0x1edd,
+       0x10a4: 0x1ee2, 0x10a5: 0x1e7e, 0x10a6: 0x1e83, 0x10a7: 0x1e88, 0x10a8: 0x1e92, 0x10a9: 0x1e8d,
+       0x10aa: 0x1e65, 0x10ab: 0x1eb0, 0x10ac: 0x1ed3, 0x10ad: 0x1e7e, 0x10ae: 0x1e83, 0x10af: 0x1e88,
+       0x10b0: 0x1e92, 0x10b1: 0x1e6f, 0x10b2: 0x1e97, 0x10b3: 0x1eec, 0x10b4: 0x1e56, 0x10b5: 0x1e5b,
+       0x10b6: 0x1e60, 0x10b7: 0x1e7e, 0x10b8: 0x1e83, 0x10b9: 0x1e88, 0x10ba: 0x1eec, 0x10bb: 0x1efb,
+       0x10bc: 0x4408, 0x10bd: 0x4408,
+       // Block 0x43, offset 0x10c0
+       0x10d0: 0x2311, 0x10d1: 0x2326,
+       0x10d2: 0x2326, 0x10d3: 0x232d, 0x10d4: 0x2334, 0x10d5: 0x2349, 0x10d6: 0x2350, 0x10d7: 0x2357,
+       0x10d8: 0x237a, 0x10d9: 0x237a, 0x10da: 0x239d, 0x10db: 0x2396, 0x10dc: 0x23b2, 0x10dd: 0x23a4,
+       0x10de: 0x23ab, 0x10df: 0x23ce, 0x10e0: 0x23ce, 0x10e1: 0x23c7, 0x10e2: 0x23d5, 0x10e3: 0x23d5,
+       0x10e4: 0x23ff, 0x10e5: 0x23ff, 0x10e6: 0x241b, 0x10e7: 0x23e3, 0x10e8: 0x23e3, 0x10e9: 0x23dc,
+       0x10ea: 0x23f1, 0x10eb: 0x23f1, 0x10ec: 0x23f8, 0x10ed: 0x23f8, 0x10ee: 0x2422, 0x10ef: 0x2430,
+       0x10f0: 0x2430, 0x10f1: 0x2437, 0x10f2: 0x2437, 0x10f3: 0x243e, 0x10f4: 0x2445, 0x10f5: 0x244c,
+       0x10f6: 0x2453, 0x10f7: 0x2453, 0x10f8: 0x245a, 0x10f9: 0x2468, 0x10fa: 0x2476, 0x10fb: 0x246f,
+       0x10fc: 0x247d, 0x10fd: 0x247d, 0x10fe: 0x2492, 0x10ff: 0x2499,
+       // Block 0x44, offset 0x1100
+       0x1100: 0x24ca, 0x1101: 0x24d8, 0x1102: 0x24d1, 0x1103: 0x24b5, 0x1104: 0x24b5, 0x1105: 0x24df,
+       0x1106: 0x24df, 0x1107: 0x24e6, 0x1108: 0x24e6, 0x1109: 0x2510, 0x110a: 0x2517, 0x110b: 0x251e,
+       0x110c: 0x24f4, 0x110d: 0x2502, 0x110e: 0x2525, 0x110f: 0x252c,
+       0x1112: 0x24fb, 0x1113: 0x2580, 0x1114: 0x2587, 0x1115: 0x255d, 0x1116: 0x2564, 0x1117: 0x2548,
+       0x1118: 0x2548, 0x1119: 0x254f, 0x111a: 0x2579, 0x111b: 0x2572, 0x111c: 0x259c, 0x111d: 0x259c,
+       0x111e: 0x230a, 0x111f: 0x231f, 0x1120: 0x2318, 0x1121: 0x2342, 0x1122: 0x233b, 0x1123: 0x2365,
+       0x1124: 0x235e, 0x1125: 0x2388, 0x1126: 0x236c, 0x1127: 0x2381, 0x1128: 0x23b9, 0x1129: 0x2406,
+       0x112a: 0x23ea, 0x112b: 0x2429, 0x112c: 0x24c3, 0x112d: 0x24ed, 0x112e: 0x2595, 0x112f: 0x258e,
+       0x1130: 0x25a3, 0x1131: 0x253a, 0x1132: 0x24a0, 0x1133: 0x256b, 0x1134: 0x2492, 0x1135: 0x24ca,
+       0x1136: 0x2461, 0x1137: 0x24ae, 0x1138: 0x2541, 0x1139: 0x2533, 0x113a: 0x24bc, 0x113b: 0x24a7,
+       0x113c: 0x24bc, 0x113d: 0x2541, 0x113e: 0x2373, 0x113f: 0x238f,
+       // Block 0x45, offset 0x1140
+       0x1140: 0x2509, 0x1141: 0x2484, 0x1142: 0x2303, 0x1143: 0x24a7, 0x1144: 0x244c, 0x1145: 0x241b,
+       0x1146: 0x23c0, 0x1147: 0x2556,
+       0x1170: 0x2414, 0x1171: 0x248b, 0x1172: 0x27bf, 0x1173: 0x27b6, 0x1174: 0x27ec, 0x1175: 0x27da,
+       0x1176: 0x27c8, 0x1177: 0x27e3, 0x1178: 0x27f5, 0x1179: 0x240d, 0x117a: 0x2c7c, 0x117b: 0x2afc,
+       0x117c: 0x27d1,
+       // Block 0x46, offset 0x1180
+       0x1190: 0x0019, 0x1191: 0x0483,
+       0x1192: 0x0487, 0x1193: 0x0035, 0x1194: 0x0037, 0x1195: 0x0003, 0x1196: 0x003f, 0x1197: 0x04bf,
+       0x1198: 0x04c3, 0x1199: 0x1b5c,
+       0x11a0: 0x8132, 0x11a1: 0x8132, 0x11a2: 0x8132, 0x11a3: 0x8132,
+       0x11a4: 0x8132, 0x11a5: 0x8132, 0x11a6: 0x8132, 0x11a7: 0x812d, 0x11a8: 0x812d, 0x11a9: 0x812d,
+       0x11aa: 0x812d, 0x11ab: 0x812d, 0x11ac: 0x812d, 0x11ad: 0x812d, 0x11ae: 0x8132, 0x11af: 0x8132,
+       0x11b0: 0x1873, 0x11b1: 0x0443, 0x11b2: 0x043f, 0x11b3: 0x007f, 0x11b4: 0x007f, 0x11b5: 0x0011,
+       0x11b6: 0x0013, 0x11b7: 0x00b7, 0x11b8: 0x00bb, 0x11b9: 0x04b7, 0x11ba: 0x04bb, 0x11bb: 0x04ab,
+       0x11bc: 0x04af, 0x11bd: 0x0493, 0x11be: 0x0497, 0x11bf: 0x048b,
+       // Block 0x47, offset 0x11c0
+       0x11c0: 0x048f, 0x11c1: 0x049b, 0x11c2: 0x049f, 0x11c3: 0x04a3, 0x11c4: 0x04a7,
+       0x11c7: 0x0077, 0x11c8: 0x007b, 0x11c9: 0x4269, 0x11ca: 0x4269, 0x11cb: 0x4269,
+       0x11cc: 0x4269, 0x11cd: 0x007f, 0x11ce: 0x007f, 0x11cf: 0x007f, 0x11d0: 0x0019, 0x11d1: 0x0483,
+       0x11d2: 0x001d, 0x11d4: 0x0037, 0x11d5: 0x0035, 0x11d6: 0x003f, 0x11d7: 0x0003,
+       0x11d8: 0x0443, 0x11d9: 0x0011, 0x11da: 0x0013, 0x11db: 0x00b7, 0x11dc: 0x00bb, 0x11dd: 0x04b7,
+       0x11de: 0x04bb, 0x11df: 0x0007, 0x11e0: 0x000d, 0x11e1: 0x0015, 0x11e2: 0x0017, 0x11e3: 0x001b,
+       0x11e4: 0x0039, 0x11e5: 0x003d, 0x11e6: 0x003b, 0x11e8: 0x0079, 0x11e9: 0x0009,
+       0x11ea: 0x000b, 0x11eb: 0x0041,
+       0x11f0: 0x42aa, 0x11f1: 0x442c, 0x11f2: 0x42af, 0x11f4: 0x42b4,
+       0x11f6: 0x42b9, 0x11f7: 0x4432, 0x11f8: 0x42be, 0x11f9: 0x4438, 0x11fa: 0x42c3, 0x11fb: 0x443e,
+       0x11fc: 0x42c8, 0x11fd: 0x4444, 0x11fe: 0x42cd, 0x11ff: 0x444a,
+       // Block 0x48, offset 0x1200
+       0x1200: 0x0236, 0x1201: 0x440e, 0x1202: 0x440e, 0x1203: 0x4414, 0x1204: 0x4414, 0x1205: 0x4456,
+       0x1206: 0x4456, 0x1207: 0x441a, 0x1208: 0x441a, 0x1209: 0x4462, 0x120a: 0x4462, 0x120b: 0x4462,
+       0x120c: 0x4462, 0x120d: 0x0239, 0x120e: 0x0239, 0x120f: 0x023c, 0x1210: 0x023c, 0x1211: 0x023c,
+       0x1212: 0x023c, 0x1213: 0x023f, 0x1214: 0x023f, 0x1215: 0x0242, 0x1216: 0x0242, 0x1217: 0x0242,
+       0x1218: 0x0242, 0x1219: 0x0245, 0x121a: 0x0245, 0x121b: 0x0245, 0x121c: 0x0245, 0x121d: 0x0248,
+       0x121e: 0x0248, 0x121f: 0x0248, 0x1220: 0x0248, 0x1221: 0x024b, 0x1222: 0x024b, 0x1223: 0x024b,
+       0x1224: 0x024b, 0x1225: 0x024e, 0x1226: 0x024e, 0x1227: 0x024e, 0x1228: 0x024e, 0x1229: 0x0251,
+       0x122a: 0x0251, 0x122b: 0x0254, 0x122c: 0x0254, 0x122d: 0x0257, 0x122e: 0x0257, 0x122f: 0x025a,
+       0x1230: 0x025a, 0x1231: 0x025d, 0x1232: 0x025d, 0x1233: 0x025d, 0x1234: 0x025d, 0x1235: 0x0260,
+       0x1236: 0x0260, 0x1237: 0x0260, 0x1238: 0x0260, 0x1239: 0x0263, 0x123a: 0x0263, 0x123b: 0x0263,
+       0x123c: 0x0263, 0x123d: 0x0266, 0x123e: 0x0266, 0x123f: 0x0266,
+       // Block 0x49, offset 0x1240
+       0x1240: 0x0266, 0x1241: 0x0269, 0x1242: 0x0269, 0x1243: 0x0269, 0x1244: 0x0269, 0x1245: 0x026c,
+       0x1246: 0x026c, 0x1247: 0x026c, 0x1248: 0x026c, 0x1249: 0x026f, 0x124a: 0x026f, 0x124b: 0x026f,
+       0x124c: 0x026f, 0x124d: 0x0272, 0x124e: 0x0272, 0x124f: 0x0272, 0x1250: 0x0272, 0x1251: 0x0275,
+       0x1252: 0x0275, 0x1253: 0x0275, 0x1254: 0x0275, 0x1255: 0x0278, 0x1256: 0x0278, 0x1257: 0x0278,
+       0x1258: 0x0278, 0x1259: 0x027b, 0x125a: 0x027b, 0x125b: 0x027b, 0x125c: 0x027b, 0x125d: 0x027e,
+       0x125e: 0x027e, 0x125f: 0x027e, 0x1260: 0x027e, 0x1261: 0x0281, 0x1262: 0x0281, 0x1263: 0x0281,
+       0x1264: 0x0281, 0x1265: 0x0284, 0x1266: 0x0284, 0x1267: 0x0284, 0x1268: 0x0284, 0x1269: 0x0287,
+       0x126a: 0x0287, 0x126b: 0x0287, 0x126c: 0x0287, 0x126d: 0x028a, 0x126e: 0x028a, 0x126f: 0x028d,
+       0x1270: 0x028d, 0x1271: 0x0290, 0x1272: 0x0290, 0x1273: 0x0290, 0x1274: 0x0290, 0x1275: 0x2e00,
+       0x1276: 0x2e00, 0x1277: 0x2e08, 0x1278: 0x2e08, 0x1279: 0x2e10, 0x127a: 0x2e10, 0x127b: 0x1f82,
+       0x127c: 0x1f82,
+       // Block 0x4a, offset 0x1280
+       0x1280: 0x0081, 0x1281: 0x0083, 0x1282: 0x0085, 0x1283: 0x0087, 0x1284: 0x0089, 0x1285: 0x008b,
+       0x1286: 0x008d, 0x1287: 0x008f, 0x1288: 0x0091, 0x1289: 0x0093, 0x128a: 0x0095, 0x128b: 0x0097,
+       0x128c: 0x0099, 0x128d: 0x009b, 0x128e: 0x009d, 0x128f: 0x009f, 0x1290: 0x00a1, 0x1291: 0x00a3,
+       0x1292: 0x00a5, 0x1293: 0x00a7, 0x1294: 0x00a9, 0x1295: 0x00ab, 0x1296: 0x00ad, 0x1297: 0x00af,
+       0x1298: 0x00b1, 0x1299: 0x00b3, 0x129a: 0x00b5, 0x129b: 0x00b7, 0x129c: 0x00b9, 0x129d: 0x00bb,
+       0x129e: 0x00bd, 0x129f: 0x0477, 0x12a0: 0x047b, 0x12a1: 0x0487, 0x12a2: 0x049b, 0x12a3: 0x049f,
+       0x12a4: 0x0483, 0x12a5: 0x05ab, 0x12a6: 0x05a3, 0x12a7: 0x04c7, 0x12a8: 0x04cf, 0x12a9: 0x04d7,
+       0x12aa: 0x04df, 0x12ab: 0x04e7, 0x12ac: 0x056b, 0x12ad: 0x0573, 0x12ae: 0x057b, 0x12af: 0x051f,
+       0x12b0: 0x05af, 0x12b1: 0x04cb, 0x12b2: 0x04d3, 0x12b3: 0x04db, 0x12b4: 0x04e3, 0x12b5: 0x04eb,
+       0x12b6: 0x04ef, 0x12b7: 0x04f3, 0x12b8: 0x04f7, 0x12b9: 0x04fb, 0x12ba: 0x04ff, 0x12bb: 0x0503,
+       0x12bc: 0x0507, 0x12bd: 0x050b, 0x12be: 0x050f, 0x12bf: 0x0513,
+       // Block 0x4b, offset 0x12c0
+       0x12c0: 0x0517, 0x12c1: 0x051b, 0x12c2: 0x0523, 0x12c3: 0x0527, 0x12c4: 0x052b, 0x12c5: 0x052f,
+       0x12c6: 0x0533, 0x12c7: 0x0537, 0x12c8: 0x053b, 0x12c9: 0x053f, 0x12ca: 0x0543, 0x12cb: 0x0547,
+       0x12cc: 0x054b, 0x12cd: 0x054f, 0x12ce: 0x0553, 0x12cf: 0x0557, 0x12d0: 0x055b, 0x12d1: 0x055f,
+       0x12d2: 0x0563, 0x12d3: 0x0567, 0x12d4: 0x056f, 0x12d5: 0x0577, 0x12d6: 0x057f, 0x12d7: 0x0583,
+       0x12d8: 0x0587, 0x12d9: 0x058b, 0x12da: 0x058f, 0x12db: 0x0593, 0x12dc: 0x0597, 0x12dd: 0x05a7,
+       0x12de: 0x4a78, 0x12df: 0x4a7e, 0x12e0: 0x03c3, 0x12e1: 0x0313, 0x12e2: 0x0317, 0x12e3: 0x4a3b,
+       0x12e4: 0x031b, 0x12e5: 0x4a41, 0x12e6: 0x4a47, 0x12e7: 0x031f, 0x12e8: 0x0323, 0x12e9: 0x0327,
+       0x12ea: 0x4a4d, 0x12eb: 0x4a53, 0x12ec: 0x4a59, 0x12ed: 0x4a5f, 0x12ee: 0x4a65, 0x12ef: 0x4a6b,
+       0x12f0: 0x0367, 0x12f1: 0x032b, 0x12f2: 0x032f, 0x12f3: 0x0333, 0x12f4: 0x037b, 0x12f5: 0x0337,
+       0x12f6: 0x033b, 0x12f7: 0x033f, 0x12f8: 0x0343, 0x12f9: 0x0347, 0x12fa: 0x034b, 0x12fb: 0x034f,
+       0x12fc: 0x0353, 0x12fd: 0x0357, 0x12fe: 0x035b,
+       // Block 0x4c, offset 0x1300
+       0x1302: 0x49bd, 0x1303: 0x49c3, 0x1304: 0x49c9, 0x1305: 0x49cf,
+       0x1306: 0x49d5, 0x1307: 0x49db, 0x130a: 0x49e1, 0x130b: 0x49e7,
+       0x130c: 0x49ed, 0x130d: 0x49f3, 0x130e: 0x49f9, 0x130f: 0x49ff,
+       0x1312: 0x4a05, 0x1313: 0x4a0b, 0x1314: 0x4a11, 0x1315: 0x4a17, 0x1316: 0x4a1d, 0x1317: 0x4a23,
+       0x131a: 0x4a29, 0x131b: 0x4a2f, 0x131c: 0x4a35,
+       0x1320: 0x00bf, 0x1321: 0x00c2, 0x1322: 0x00cb, 0x1323: 0x4264,
+       0x1324: 0x00c8, 0x1325: 0x00c5, 0x1326: 0x0447, 0x1328: 0x046b, 0x1329: 0x044b,
+       0x132a: 0x044f, 0x132b: 0x0453, 0x132c: 0x0457, 0x132d: 0x046f, 0x132e: 0x0473,
+       // Block 0x4d, offset 0x1340
+       0x1340: 0x0063, 0x1341: 0x0065, 0x1342: 0x0067, 0x1343: 0x0069, 0x1344: 0x006b, 0x1345: 0x006d,
+       0x1346: 0x006f, 0x1347: 0x0071, 0x1348: 0x0073, 0x1349: 0x0075, 0x134a: 0x0083, 0x134b: 0x0085,
+       0x134c: 0x0087, 0x134d: 0x0089, 0x134e: 0x008b, 0x134f: 0x008d, 0x1350: 0x008f, 0x1351: 0x0091,
+       0x1352: 0x0093, 0x1353: 0x0095, 0x1354: 0x0097, 0x1355: 0x0099, 0x1356: 0x009b, 0x1357: 0x009d,
+       0x1358: 0x009f, 0x1359: 0x00a1, 0x135a: 0x00a3, 0x135b: 0x00a5, 0x135c: 0x00a7, 0x135d: 0x00a9,
+       0x135e: 0x00ab, 0x135f: 0x00ad, 0x1360: 0x00af, 0x1361: 0x00b1, 0x1362: 0x00b3, 0x1363: 0x00b5,
+       0x1364: 0x00dd, 0x1365: 0x00f2, 0x1368: 0x0173, 0x1369: 0x0176,
+       0x136a: 0x0179, 0x136b: 0x017c, 0x136c: 0x017f, 0x136d: 0x0182, 0x136e: 0x0185, 0x136f: 0x0188,
+       0x1370: 0x018b, 0x1371: 0x018e, 0x1372: 0x0191, 0x1373: 0x0194, 0x1374: 0x0197, 0x1375: 0x019a,
+       0x1376: 0x019d, 0x1377: 0x01a0, 0x1378: 0x01a3, 0x1379: 0x0188, 0x137a: 0x01a6, 0x137b: 0x01a9,
+       0x137c: 0x01ac, 0x137d: 0x01af, 0x137e: 0x01b2, 0x137f: 0x01b5,
+       // Block 0x4e, offset 0x1380
+       0x1380: 0x01fd, 0x1381: 0x0200, 0x1382: 0x0203, 0x1383: 0x045b, 0x1384: 0x01c7, 0x1385: 0x01d0,
+       0x1386: 0x01d6, 0x1387: 0x01fa, 0x1388: 0x01eb, 0x1389: 0x01e8, 0x138a: 0x0206, 0x138b: 0x0209,
+       0x138e: 0x0021, 0x138f: 0x0023, 0x1390: 0x0025, 0x1391: 0x0027,
+       0x1392: 0x0029, 0x1393: 0x002b, 0x1394: 0x002d, 0x1395: 0x002f, 0x1396: 0x0031, 0x1397: 0x0033,
+       0x1398: 0x0021, 0x1399: 0x0023, 0x139a: 0x0025, 0x139b: 0x0027, 0x139c: 0x0029, 0x139d: 0x002b,
+       0x139e: 0x002d, 0x139f: 0x002f, 0x13a0: 0x0031, 0x13a1: 0x0033, 0x13a2: 0x0021, 0x13a3: 0x0023,
+       0x13a4: 0x0025, 0x13a5: 0x0027, 0x13a6: 0x0029, 0x13a7: 0x002b, 0x13a8: 0x002d, 0x13a9: 0x002f,
+       0x13aa: 0x0031, 0x13ab: 0x0033, 0x13ac: 0x0021, 0x13ad: 0x0023, 0x13ae: 0x0025, 0x13af: 0x0027,
+       0x13b0: 0x0029, 0x13b1: 0x002b, 0x13b2: 0x002d, 0x13b3: 0x002f, 0x13b4: 0x0031, 0x13b5: 0x0033,
+       0x13b6: 0x0021, 0x13b7: 0x0023, 0x13b8: 0x0025, 0x13b9: 0x0027, 0x13ba: 0x0029, 0x13bb: 0x002b,
+       0x13bc: 0x002d, 0x13bd: 0x002f, 0x13be: 0x0031, 0x13bf: 0x0033,
+       // Block 0x4f, offset 0x13c0
+       0x13c0: 0x0239, 0x13c1: 0x023c, 0x13c2: 0x0248, 0x13c3: 0x0251, 0x13c5: 0x028a,
+       0x13c6: 0x025a, 0x13c7: 0x024b, 0x13c8: 0x0269, 0x13c9: 0x0290, 0x13ca: 0x027b, 0x13cb: 0x027e,
+       0x13cc: 0x0281, 0x13cd: 0x0284, 0x13ce: 0x025d, 0x13cf: 0x026f, 0x13d0: 0x0275, 0x13d1: 0x0263,
+       0x13d2: 0x0278, 0x13d3: 0x0257, 0x13d4: 0x0260, 0x13d5: 0x0242, 0x13d6: 0x0245, 0x13d7: 0x024e,
+       0x13d8: 0x0254, 0x13d9: 0x0266, 0x13da: 0x026c, 0x13db: 0x0272, 0x13dc: 0x0293, 0x13dd: 0x02e4,
+       0x13de: 0x02cc, 0x13df: 0x0296, 0x13e1: 0x023c, 0x13e2: 0x0248,
+       0x13e4: 0x0287, 0x13e7: 0x024b, 0x13e9: 0x0290,
+       0x13ea: 0x027b, 0x13eb: 0x027e, 0x13ec: 0x0281, 0x13ed: 0x0284, 0x13ee: 0x025d, 0x13ef: 0x026f,
+       0x13f0: 0x0275, 0x13f1: 0x0263, 0x13f2: 0x0278, 0x13f4: 0x0260, 0x13f5: 0x0242,
+       0x13f6: 0x0245, 0x13f7: 0x024e, 0x13f9: 0x0266, 0x13fb: 0x0272,
+       // Block 0x50, offset 0x1400
+       0x1402: 0x0248,
+       0x1407: 0x024b, 0x1409: 0x0290, 0x140b: 0x027e,
+       0x140d: 0x0284, 0x140e: 0x025d, 0x140f: 0x026f, 0x1411: 0x0263,
+       0x1412: 0x0278, 0x1414: 0x0260, 0x1417: 0x024e,
+       0x1419: 0x0266, 0x141b: 0x0272, 0x141d: 0x02e4,
+       0x141f: 0x0296, 0x1421: 0x023c, 0x1422: 0x0248,
+       0x1424: 0x0287, 0x1427: 0x024b, 0x1428: 0x0269, 0x1429: 0x0290,
+       0x142a: 0x027b, 0x142c: 0x0281, 0x142d: 0x0284, 0x142e: 0x025d, 0x142f: 0x026f,
+       0x1430: 0x0275, 0x1431: 0x0263, 0x1432: 0x0278, 0x1434: 0x0260, 0x1435: 0x0242,
+       0x1436: 0x0245, 0x1437: 0x024e, 0x1439: 0x0266, 0x143a: 0x026c, 0x143b: 0x0272,
+       0x143c: 0x0293, 0x143e: 0x02cc,
+       // Block 0x51, offset 0x1440
+       0x1440: 0x0239, 0x1441: 0x023c, 0x1442: 0x0248, 0x1443: 0x0251, 0x1444: 0x0287, 0x1445: 0x028a,
+       0x1446: 0x025a, 0x1447: 0x024b, 0x1448: 0x0269, 0x1449: 0x0290, 0x144b: 0x027e,
+       0x144c: 0x0281, 0x144d: 0x0284, 0x144e: 0x025d, 0x144f: 0x026f, 0x1450: 0x0275, 0x1451: 0x0263,
+       0x1452: 0x0278, 0x1453: 0x0257, 0x1454: 0x0260, 0x1455: 0x0242, 0x1456: 0x0245, 0x1457: 0x024e,
+       0x1458: 0x0254, 0x1459: 0x0266, 0x145a: 0x026c, 0x145b: 0x0272,
+       0x1461: 0x023c, 0x1462: 0x0248, 0x1463: 0x0251,
+       0x1465: 0x028a, 0x1466: 0x025a, 0x1467: 0x024b, 0x1468: 0x0269, 0x1469: 0x0290,
+       0x146b: 0x027e, 0x146c: 0x0281, 0x146d: 0x0284, 0x146e: 0x025d, 0x146f: 0x026f,
+       0x1470: 0x0275, 0x1471: 0x0263, 0x1472: 0x0278, 0x1473: 0x0257, 0x1474: 0x0260, 0x1475: 0x0242,
+       0x1476: 0x0245, 0x1477: 0x024e, 0x1478: 0x0254, 0x1479: 0x0266, 0x147a: 0x026c, 0x147b: 0x0272,
+       // Block 0x52, offset 0x1480
+       0x1480: 0x1879, 0x1481: 0x1876, 0x1482: 0x187c, 0x1483: 0x18a0, 0x1484: 0x18c4, 0x1485: 0x18e8,
+       0x1486: 0x190c, 0x1487: 0x1915, 0x1488: 0x191b, 0x1489: 0x1921, 0x148a: 0x1927,
+       0x1490: 0x1a8c, 0x1491: 0x1a90,
+       0x1492: 0x1a94, 0x1493: 0x1a98, 0x1494: 0x1a9c, 0x1495: 0x1aa0, 0x1496: 0x1aa4, 0x1497: 0x1aa8,
+       0x1498: 0x1aac, 0x1499: 0x1ab0, 0x149a: 0x1ab4, 0x149b: 0x1ab8, 0x149c: 0x1abc, 0x149d: 0x1ac0,
+       0x149e: 0x1ac4, 0x149f: 0x1ac8, 0x14a0: 0x1acc, 0x14a1: 0x1ad0, 0x14a2: 0x1ad4, 0x14a3: 0x1ad8,
+       0x14a4: 0x1adc, 0x14a5: 0x1ae0, 0x14a6: 0x1ae4, 0x14a7: 0x1ae8, 0x14a8: 0x1aec, 0x14a9: 0x1af0,
+       0x14aa: 0x271e, 0x14ab: 0x0047, 0x14ac: 0x0065, 0x14ad: 0x193c, 0x14ae: 0x19b1,
+       0x14b0: 0x0043, 0x14b1: 0x0045, 0x14b2: 0x0047, 0x14b3: 0x0049, 0x14b4: 0x004b, 0x14b5: 0x004d,
+       0x14b6: 0x004f, 0x14b7: 0x0051, 0x14b8: 0x0053, 0x14b9: 0x0055, 0x14ba: 0x0057, 0x14bb: 0x0059,
+       0x14bc: 0x005b, 0x14bd: 0x005d, 0x14be: 0x005f, 0x14bf: 0x0061,
+       // Block 0x53, offset 0x14c0
+       0x14c0: 0x26ad, 0x14c1: 0x26c2, 0x14c2: 0x0503,
+       0x14d0: 0x0c0f, 0x14d1: 0x0a47,
+       0x14d2: 0x08d3, 0x14d3: 0x45c4, 0x14d4: 0x071b, 0x14d5: 0x09ef, 0x14d6: 0x132f, 0x14d7: 0x09ff,
+       0x14d8: 0x0727, 0x14d9: 0x0cd7, 0x14da: 0x0eaf, 0x14db: 0x0caf, 0x14dc: 0x0827, 0x14dd: 0x0b6b,
+       0x14de: 0x07bf, 0x14df: 0x0cb7, 0x14e0: 0x0813, 0x14e1: 0x1117, 0x14e2: 0x0f83, 0x14e3: 0x138b,
+       0x14e4: 0x09d3, 0x14e5: 0x090b, 0x14e6: 0x0e63, 0x14e7: 0x0c1b, 0x14e8: 0x0c47, 0x14e9: 0x06bf,
+       0x14ea: 0x06cb, 0x14eb: 0x140b, 0x14ec: 0x0adb, 0x14ed: 0x06e7, 0x14ee: 0x08ef, 0x14ef: 0x0c3b,
+       0x14f0: 0x13b3, 0x14f1: 0x0c13, 0x14f2: 0x106f, 0x14f3: 0x10ab, 0x14f4: 0x08f7, 0x14f5: 0x0e43,
+       0x14f6: 0x0d0b, 0x14f7: 0x0d07, 0x14f8: 0x0f97, 0x14f9: 0x082b, 0x14fa: 0x0957, 0x14fb: 0x1443,
+       // Block 0x54, offset 0x1500
+       0x1500: 0x06fb, 0x1501: 0x06f3, 0x1502: 0x0703, 0x1503: 0x1647, 0x1504: 0x0747, 0x1505: 0x0757,
+       0x1506: 0x075b, 0x1507: 0x0763, 0x1508: 0x076b, 0x1509: 0x076f, 0x150a: 0x077b, 0x150b: 0x0773,
+       0x150c: 0x05b3, 0x150d: 0x165b, 0x150e: 0x078f, 0x150f: 0x0793, 0x1510: 0x0797, 0x1511: 0x07b3,
+       0x1512: 0x164c, 0x1513: 0x05b7, 0x1514: 0x079f, 0x1515: 0x07bf, 0x1516: 0x1656, 0x1517: 0x07cf,
+       0x1518: 0x07d7, 0x1519: 0x0737, 0x151a: 0x07df, 0x151b: 0x07e3, 0x151c: 0x1831, 0x151d: 0x07ff,
+       0x151e: 0x0807, 0x151f: 0x05bf, 0x1520: 0x081f, 0x1521: 0x0823, 0x1522: 0x082b, 0x1523: 0x082f,
+       0x1524: 0x05c3, 0x1525: 0x0847, 0x1526: 0x084b, 0x1527: 0x0857, 0x1528: 0x0863, 0x1529: 0x0867,
+       0x152a: 0x086b, 0x152b: 0x0873, 0x152c: 0x0893, 0x152d: 0x0897, 0x152e: 0x089f, 0x152f: 0x08af,
+       0x1530: 0x08b7, 0x1531: 0x08bb, 0x1532: 0x08bb, 0x1533: 0x08bb, 0x1534: 0x166a, 0x1535: 0x0e93,
+       0x1536: 0x08cf, 0x1537: 0x08d7, 0x1538: 0x166f, 0x1539: 0x08e3, 0x153a: 0x08eb, 0x153b: 0x08f3,
+       0x153c: 0x091b, 0x153d: 0x0907, 0x153e: 0x0913, 0x153f: 0x0917,
+       // Block 0x55, offset 0x1540
+       0x1540: 0x091f, 0x1541: 0x0927, 0x1542: 0x092b, 0x1543: 0x0933, 0x1544: 0x093b, 0x1545: 0x093f,
+       0x1546: 0x093f, 0x1547: 0x0947, 0x1548: 0x094f, 0x1549: 0x0953, 0x154a: 0x095f, 0x154b: 0x0983,
+       0x154c: 0x0967, 0x154d: 0x0987, 0x154e: 0x096b, 0x154f: 0x0973, 0x1550: 0x080b, 0x1551: 0x09cf,
+       0x1552: 0x0997, 0x1553: 0x099b, 0x1554: 0x099f, 0x1555: 0x0993, 0x1556: 0x09a7, 0x1557: 0x09a3,
+       0x1558: 0x09bb, 0x1559: 0x1674, 0x155a: 0x09d7, 0x155b: 0x09db, 0x155c: 0x09e3, 0x155d: 0x09ef,
+       0x155e: 0x09f7, 0x155f: 0x0a13, 0x1560: 0x1679, 0x1561: 0x167e, 0x1562: 0x0a1f, 0x1563: 0x0a23,
+       0x1564: 0x0a27, 0x1565: 0x0a1b, 0x1566: 0x0a2f, 0x1567: 0x05c7, 0x1568: 0x05cb, 0x1569: 0x0a37,
+       0x156a: 0x0a3f, 0x156b: 0x0a3f, 0x156c: 0x1683, 0x156d: 0x0a5b, 0x156e: 0x0a5f, 0x156f: 0x0a63,
+       0x1570: 0x0a6b, 0x1571: 0x1688, 0x1572: 0x0a73, 0x1573: 0x0a77, 0x1574: 0x0b4f, 0x1575: 0x0a7f,
+       0x1576: 0x05cf, 0x1577: 0x0a8b, 0x1578: 0x0a9b, 0x1579: 0x0aa7, 0x157a: 0x0aa3, 0x157b: 0x1692,
+       0x157c: 0x0aaf, 0x157d: 0x1697, 0x157e: 0x0abb, 0x157f: 0x0ab7,
+       // Block 0x56, offset 0x1580
+       0x1580: 0x0abf, 0x1581: 0x0acf, 0x1582: 0x0ad3, 0x1583: 0x05d3, 0x1584: 0x0ae3, 0x1585: 0x0aeb,
+       0x1586: 0x0aef, 0x1587: 0x0af3, 0x1588: 0x05d7, 0x1589: 0x169c, 0x158a: 0x05db, 0x158b: 0x0b0f,
+       0x158c: 0x0b13, 0x158d: 0x0b17, 0x158e: 0x0b1f, 0x158f: 0x1863, 0x1590: 0x0b37, 0x1591: 0x16a6,
+       0x1592: 0x16a6, 0x1593: 0x11d7, 0x1594: 0x0b47, 0x1595: 0x0b47, 0x1596: 0x05df, 0x1597: 0x16c9,
+       0x1598: 0x179b, 0x1599: 0x0b57, 0x159a: 0x0b5f, 0x159b: 0x05e3, 0x159c: 0x0b73, 0x159d: 0x0b83,
+       0x159e: 0x0b87, 0x159f: 0x0b8f, 0x15a0: 0x0b9f, 0x15a1: 0x05eb, 0x15a2: 0x05e7, 0x15a3: 0x0ba3,
+       0x15a4: 0x16ab, 0x15a5: 0x0ba7, 0x15a6: 0x0bbb, 0x15a7: 0x0bbf, 0x15a8: 0x0bc3, 0x15a9: 0x0bbf,
+       0x15aa: 0x0bcf, 0x15ab: 0x0bd3, 0x15ac: 0x0be3, 0x15ad: 0x0bdb, 0x15ae: 0x0bdf, 0x15af: 0x0be7,
+       0x15b0: 0x0beb, 0x15b1: 0x0bef, 0x15b2: 0x0bfb, 0x15b3: 0x0bff, 0x15b4: 0x0c17, 0x15b5: 0x0c1f,
+       0x15b6: 0x0c2f, 0x15b7: 0x0c43, 0x15b8: 0x16ba, 0x15b9: 0x0c3f, 0x15ba: 0x0c33, 0x15bb: 0x0c4b,
+       0x15bc: 0x0c53, 0x15bd: 0x0c67, 0x15be: 0x16bf, 0x15bf: 0x0c6f,
+       // Block 0x57, offset 0x15c0
+       0x15c0: 0x0c63, 0x15c1: 0x0c5b, 0x15c2: 0x05ef, 0x15c3: 0x0c77, 0x15c4: 0x0c7f, 0x15c5: 0x0c87,
+       0x15c6: 0x0c7b, 0x15c7: 0x05f3, 0x15c8: 0x0c97, 0x15c9: 0x0c9f, 0x15ca: 0x16c4, 0x15cb: 0x0ccb,
+       0x15cc: 0x0cff, 0x15cd: 0x0cdb, 0x15ce: 0x05ff, 0x15cf: 0x0ce7, 0x15d0: 0x05fb, 0x15d1: 0x05f7,
+       0x15d2: 0x07c3, 0x15d3: 0x07c7, 0x15d4: 0x0d03, 0x15d5: 0x0ceb, 0x15d6: 0x11ab, 0x15d7: 0x0663,
+       0x15d8: 0x0d0f, 0x15d9: 0x0d13, 0x15da: 0x0d17, 0x15db: 0x0d2b, 0x15dc: 0x0d23, 0x15dd: 0x16dd,
+       0x15de: 0x0603, 0x15df: 0x0d3f, 0x15e0: 0x0d33, 0x15e1: 0x0d4f, 0x15e2: 0x0d57, 0x15e3: 0x16e7,
+       0x15e4: 0x0d5b, 0x15e5: 0x0d47, 0x15e6: 0x0d63, 0x15e7: 0x0607, 0x15e8: 0x0d67, 0x15e9: 0x0d6b,
+       0x15ea: 0x0d6f, 0x15eb: 0x0d7b, 0x15ec: 0x16ec, 0x15ed: 0x0d83, 0x15ee: 0x060b, 0x15ef: 0x0d8f,
+       0x15f0: 0x16f1, 0x15f1: 0x0d93, 0x15f2: 0x060f, 0x15f3: 0x0d9f, 0x15f4: 0x0dab, 0x15f5: 0x0db7,
+       0x15f6: 0x0dbb, 0x15f7: 0x16f6, 0x15f8: 0x168d, 0x15f9: 0x16fb, 0x15fa: 0x0ddb, 0x15fb: 0x1700,
+       0x15fc: 0x0de7, 0x15fd: 0x0def, 0x15fe: 0x0ddf, 0x15ff: 0x0dfb,
+       // Block 0x58, offset 0x1600
+       0x1600: 0x0e0b, 0x1601: 0x0e1b, 0x1602: 0x0e0f, 0x1603: 0x0e13, 0x1604: 0x0e1f, 0x1605: 0x0e23,
+       0x1606: 0x1705, 0x1607: 0x0e07, 0x1608: 0x0e3b, 0x1609: 0x0e3f, 0x160a: 0x0613, 0x160b: 0x0e53,
+       0x160c: 0x0e4f, 0x160d: 0x170a, 0x160e: 0x0e33, 0x160f: 0x0e6f, 0x1610: 0x170f, 0x1611: 0x1714,
+       0x1612: 0x0e73, 0x1613: 0x0e87, 0x1614: 0x0e83, 0x1615: 0x0e7f, 0x1616: 0x0617, 0x1617: 0x0e8b,
+       0x1618: 0x0e9b, 0x1619: 0x0e97, 0x161a: 0x0ea3, 0x161b: 0x1651, 0x161c: 0x0eb3, 0x161d: 0x1719,
+       0x161e: 0x0ebf, 0x161f: 0x1723, 0x1620: 0x0ed3, 0x1621: 0x0edf, 0x1622: 0x0ef3, 0x1623: 0x1728,
+       0x1624: 0x0f07, 0x1625: 0x0f0b, 0x1626: 0x172d, 0x1627: 0x1732, 0x1628: 0x0f27, 0x1629: 0x0f37,
+       0x162a: 0x061b, 0x162b: 0x0f3b, 0x162c: 0x061f, 0x162d: 0x061f, 0x162e: 0x0f53, 0x162f: 0x0f57,
+       0x1630: 0x0f5f, 0x1631: 0x0f63, 0x1632: 0x0f6f, 0x1633: 0x0623, 0x1634: 0x0f87, 0x1635: 0x1737,
+       0x1636: 0x0fa3, 0x1637: 0x173c, 0x1638: 0x0faf, 0x1639: 0x16a1, 0x163a: 0x0fbf, 0x163b: 0x1741,
+       0x163c: 0x1746, 0x163d: 0x174b, 0x163e: 0x0627, 0x163f: 0x062b,
+       // Block 0x59, offset 0x1640
+       0x1640: 0x0ff7, 0x1641: 0x1755, 0x1642: 0x1750, 0x1643: 0x175a, 0x1644: 0x175f, 0x1645: 0x0fff,
+       0x1646: 0x1003, 0x1647: 0x1003, 0x1648: 0x100b, 0x1649: 0x0633, 0x164a: 0x100f, 0x164b: 0x0637,
+       0x164c: 0x063b, 0x164d: 0x1769, 0x164e: 0x1023, 0x164f: 0x102b, 0x1650: 0x1037, 0x1651: 0x063f,
+       0x1652: 0x176e, 0x1653: 0x105b, 0x1654: 0x1773, 0x1655: 0x1778, 0x1656: 0x107b, 0x1657: 0x1093,
+       0x1658: 0x0643, 0x1659: 0x109b, 0x165a: 0x109f, 0x165b: 0x10a3, 0x165c: 0x177d, 0x165d: 0x1782,
+       0x165e: 0x1782, 0x165f: 0x10bb, 0x1660: 0x0647, 0x1661: 0x1787, 0x1662: 0x10cf, 0x1663: 0x10d3,
+       0x1664: 0x064b, 0x1665: 0x178c, 0x1666: 0x10ef, 0x1667: 0x064f, 0x1668: 0x10ff, 0x1669: 0x10f7,
+       0x166a: 0x1107, 0x166b: 0x1796, 0x166c: 0x111f, 0x166d: 0x0653, 0x166e: 0x112b, 0x166f: 0x1133,
+       0x1670: 0x1143, 0x1671: 0x0657, 0x1672: 0x17a0, 0x1673: 0x17a5, 0x1674: 0x065b, 0x1675: 0x17aa,
+       0x1676: 0x115b, 0x1677: 0x17af, 0x1678: 0x1167, 0x1679: 0x1173, 0x167a: 0x117b, 0x167b: 0x17b4,
+       0x167c: 0x17b9, 0x167d: 0x118f, 0x167e: 0x17be, 0x167f: 0x1197,
+       // Block 0x5a, offset 0x1680
+       0x1680: 0x16ce, 0x1681: 0x065f, 0x1682: 0x11af, 0x1683: 0x11b3, 0x1684: 0x0667, 0x1685: 0x11b7,
+       0x1686: 0x0a33, 0x1687: 0x17c3, 0x1688: 0x17c8, 0x1689: 0x16d3, 0x168a: 0x16d8, 0x168b: 0x11d7,
+       0x168c: 0x11db, 0x168d: 0x13f3, 0x168e: 0x066b, 0x168f: 0x1207, 0x1690: 0x1203, 0x1691: 0x120b,
+       0x1692: 0x083f, 0x1693: 0x120f, 0x1694: 0x1213, 0x1695: 0x1217, 0x1696: 0x121f, 0x1697: 0x17cd,
+       0x1698: 0x121b, 0x1699: 0x1223, 0x169a: 0x1237, 0x169b: 0x123b, 0x169c: 0x1227, 0x169d: 0x123f,
+       0x169e: 0x1253, 0x169f: 0x1267, 0x16a0: 0x1233, 0x16a1: 0x1247, 0x16a2: 0x124b, 0x16a3: 0x124f,
+       0x16a4: 0x17d2, 0x16a5: 0x17dc, 0x16a6: 0x17d7, 0x16a7: 0x066f, 0x16a8: 0x126f, 0x16a9: 0x1273,
+       0x16aa: 0x127b, 0x16ab: 0x17f0, 0x16ac: 0x127f, 0x16ad: 0x17e1, 0x16ae: 0x0673, 0x16af: 0x0677,
+       0x16b0: 0x17e6, 0x16b1: 0x17eb, 0x16b2: 0x067b, 0x16b3: 0x129f, 0x16b4: 0x12a3, 0x16b5: 0x12a7,
+       0x16b6: 0x12ab, 0x16b7: 0x12b7, 0x16b8: 0x12b3, 0x16b9: 0x12bf, 0x16ba: 0x12bb, 0x16bb: 0x12cb,
+       0x16bc: 0x12c3, 0x16bd: 0x12c7, 0x16be: 0x12cf, 0x16bf: 0x067f,
+       // Block 0x5b, offset 0x16c0
+       0x16c0: 0x12d7, 0x16c1: 0x12db, 0x16c2: 0x0683, 0x16c3: 0x12eb, 0x16c4: 0x12ef, 0x16c5: 0x17f5,
+       0x16c6: 0x12fb, 0x16c7: 0x12ff, 0x16c8: 0x0687, 0x16c9: 0x130b, 0x16ca: 0x05bb, 0x16cb: 0x17fa,
+       0x16cc: 0x17ff, 0x16cd: 0x068b, 0x16ce: 0x068f, 0x16cf: 0x1337, 0x16d0: 0x134f, 0x16d1: 0x136b,
+       0x16d2: 0x137b, 0x16d3: 0x1804, 0x16d4: 0x138f, 0x16d5: 0x1393, 0x16d6: 0x13ab, 0x16d7: 0x13b7,
+       0x16d8: 0x180e, 0x16d9: 0x1660, 0x16da: 0x13c3, 0x16db: 0x13bf, 0x16dc: 0x13cb, 0x16dd: 0x1665,
+       0x16de: 0x13d7, 0x16df: 0x13e3, 0x16e0: 0x1813, 0x16e1: 0x1818, 0x16e2: 0x1423, 0x16e3: 0x142f,
+       0x16e4: 0x1437, 0x16e5: 0x181d, 0x16e6: 0x143b, 0x16e7: 0x1467, 0x16e8: 0x1473, 0x16e9: 0x1477,
+       0x16ea: 0x146f, 0x16eb: 0x1483, 0x16ec: 0x1487, 0x16ed: 0x1822, 0x16ee: 0x1493, 0x16ef: 0x0693,
+       0x16f0: 0x149b, 0x16f1: 0x1827, 0x16f2: 0x0697, 0x16f3: 0x14d3, 0x16f4: 0x0ac3, 0x16f5: 0x14eb,
+       0x16f6: 0x182c, 0x16f7: 0x1836, 0x16f8: 0x069b, 0x16f9: 0x069f, 0x16fa: 0x1513, 0x16fb: 0x183b,
+       0x16fc: 0x06a3, 0x16fd: 0x1840, 0x16fe: 0x152b, 0x16ff: 0x152b,
+       // Block 0x5c, offset 0x1700
+       0x1700: 0x1533, 0x1701: 0x1845, 0x1702: 0x154b, 0x1703: 0x06a7, 0x1704: 0x155b, 0x1705: 0x1567,
+       0x1706: 0x156f, 0x1707: 0x1577, 0x1708: 0x06ab, 0x1709: 0x184a, 0x170a: 0x158b, 0x170b: 0x15a7,
+       0x170c: 0x15b3, 0x170d: 0x06af, 0x170e: 0x06b3, 0x170f: 0x15b7, 0x1710: 0x184f, 0x1711: 0x06b7,
+       0x1712: 0x1854, 0x1713: 0x1859, 0x1714: 0x185e, 0x1715: 0x15db, 0x1716: 0x06bb, 0x1717: 0x15ef,
+       0x1718: 0x15f7, 0x1719: 0x15fb, 0x171a: 0x1603, 0x171b: 0x160b, 0x171c: 0x1613, 0x171d: 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: 0x5b, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x5c, 0xc7: 0x04,
+       0xc8: 0x05, 0xca: 0x5d, 0xcb: 0x5e, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x09,
+       0xd0: 0x0a, 0xd1: 0x5f, 0xd2: 0x60, 0xd3: 0x0b, 0xd6: 0x0c, 0xd7: 0x61,
+       0xd8: 0x62, 0xd9: 0x0d, 0xdb: 0x63, 0xdc: 0x64, 0xdd: 0x65, 0xdf: 0x66,
+       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: 0x67, 0x121: 0x68, 0x123: 0x69, 0x124: 0x6a, 0x125: 0x6b, 0x126: 0x6c, 0x127: 0x6d,
+       0x128: 0x6e, 0x129: 0x6f, 0x12a: 0x70, 0x12b: 0x71, 0x12c: 0x6c, 0x12d: 0x72, 0x12e: 0x73, 0x12f: 0x74,
+       0x131: 0x75, 0x132: 0x76, 0x133: 0x77, 0x134: 0x78, 0x135: 0x79, 0x137: 0x7a,
+       0x138: 0x7b, 0x139: 0x7c, 0x13a: 0x7d, 0x13b: 0x7e, 0x13c: 0x7f, 0x13d: 0x80, 0x13e: 0x81, 0x13f: 0x82,
+       // Block 0x5, offset 0x140
+       0x140: 0x83, 0x142: 0x84, 0x143: 0x85, 0x144: 0x86, 0x145: 0x87, 0x146: 0x88, 0x147: 0x89,
+       0x14d: 0x8a,
+       0x15c: 0x8b, 0x15f: 0x8c,
+       0x162: 0x8d, 0x164: 0x8e,
+       0x168: 0x8f, 0x169: 0x90, 0x16a: 0x91, 0x16c: 0x0e, 0x16d: 0x92, 0x16e: 0x93, 0x16f: 0x94,
+       0x170: 0x95, 0x173: 0x96, 0x174: 0x97, 0x175: 0x0f, 0x176: 0x10, 0x177: 0x11,
+       0x178: 0x12, 0x179: 0x13, 0x17a: 0x14, 0x17b: 0x15, 0x17c: 0x16, 0x17d: 0x17, 0x17e: 0x18, 0x17f: 0x19,
+       // Block 0x6, offset 0x180
+       0x180: 0x98, 0x181: 0x99, 0x182: 0x9a, 0x183: 0x9b, 0x184: 0x1a, 0x185: 0x1b, 0x186: 0x9c, 0x187: 0x9d,
+       0x188: 0x9e, 0x189: 0x1c, 0x18a: 0x1d, 0x18b: 0x9f, 0x18c: 0xa0,
+       0x191: 0x1e, 0x192: 0x1f, 0x193: 0xa1,
+       0x1a8: 0xa2, 0x1a9: 0xa3, 0x1ab: 0xa4,
+       0x1b1: 0xa5, 0x1b3: 0xa6, 0x1b5: 0xa7, 0x1b7: 0xa8,
+       0x1ba: 0xa9, 0x1bb: 0xaa, 0x1bc: 0x20, 0x1bd: 0x21, 0x1be: 0x22, 0x1bf: 0xab,
+       // Block 0x7, offset 0x1c0
+       0x1c0: 0xac, 0x1c1: 0x23, 0x1c2: 0x24, 0x1c3: 0x25, 0x1c4: 0xad, 0x1c5: 0x26, 0x1c6: 0x27,
+       0x1c8: 0x28, 0x1c9: 0x29, 0x1ca: 0x2a, 0x1cb: 0x2b, 0x1cc: 0x2c, 0x1cd: 0x2d, 0x1ce: 0x2e, 0x1cf: 0x2f,
+       // 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: 0x30, 0x325: 0x31, 0x326: 0x32, 0x327: 0x33,
+       0x328: 0x34, 0x329: 0x35, 0x32a: 0x36, 0x32b: 0x37, 0x32c: 0x38, 0x32d: 0x39, 0x32e: 0x3a, 0x32f: 0x3b,
+       0x330: 0x3c, 0x331: 0x3d, 0x332: 0x3e, 0x333: 0x3f, 0x334: 0x40, 0x335: 0x41, 0x336: 0x42, 0x337: 0x43,
+       0x338: 0x44, 0x339: 0x45, 0x33a: 0x46, 0x33b: 0x47, 0x33c: 0xc5, 0x33d: 0x48, 0x33e: 0x49, 0x33f: 0x4a,
+       // 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: 0x6c, 0x38d: 0xd1,
+       0x391: 0xd2, 0x392: 0xd3, 0x393: 0xd4, 0x396: 0xd5, 0x397: 0xd6,
+       0x398: 0xd7, 0x39a: 0xd8, 0x39c: 0xd9,
+       0x3a8: 0xda, 0x3a9: 0xdb, 0x3aa: 0xdc,
+       0x3b0: 0xd7, 0x3b5: 0xdd,
+       // Block 0xf, offset 0x3c0
+       0x3eb: 0xde, 0x3ec: 0xdf,
+       // Block 0x10, offset 0x400
+       0x432: 0xe0,
+       // Block 0x11, offset 0x440
+       0x445: 0xe1, 0x446: 0xe2, 0x447: 0xe3,
+       0x449: 0xe4,
+       0x450: 0xe5, 0x451: 0xe6, 0x452: 0xe7, 0x453: 0xe8, 0x454: 0xe9, 0x455: 0xea, 0x456: 0xeb, 0x457: 0xec,
+       0x458: 0xed, 0x459: 0xee, 0x45a: 0x4b, 0x45b: 0xef, 0x45c: 0xf0, 0x45d: 0xf1, 0x45e: 0xf2, 0x45f: 0x4c,
+       // Block 0x12, offset 0x480
+       0x480: 0xf3,
+       0x4a3: 0xf4, 0x4a5: 0xf5,
+       0x4b8: 0x4d, 0x4b9: 0x4e, 0x4ba: 0x4f,
+       // Block 0x13, offset 0x4c0
+       0x4c4: 0x50, 0x4c5: 0xf6, 0x4c6: 0xf7,
+       0x4c8: 0x51, 0x4c9: 0xf8,
+       // Block 0x14, offset 0x500
+       0x520: 0x52, 0x521: 0x53, 0x522: 0x54, 0x523: 0x55, 0x524: 0x56, 0x525: 0x57, 0x526: 0x58, 0x527: 0x59,
+       0x528: 0x5a,
+       // Block 0x15, offset 0x540
+       0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d,
+       0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11,
+       0x56f: 0x12,
+}
+
+// nfkcSparseOffset: 158 entries, 316 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, 0xd5, 0xdc, 0xe4, 0xe8, 0xea, 0xed, 0xf1, 0xf7, 0x108, 0x114, 0x116, 0x11c, 0x11e, 0x120, 0x122, 0x124, 0x126, 0x128, 0x12a, 0x12d, 0x130, 0x132, 0x135, 0x138, 0x13c, 0x141, 0x14a, 0x14c, 0x14f, 0x151, 0x15c, 0x167, 0x175, 0x183, 0x193, 0x1a1, 0x1a8, 0x1ae, 0x1bd, 0x1c1, 0x1c3, 0x1c7, 0x1c9, 0x1cc, 0x1ce, 0x1d1, 0x1d3, 0x1d6, 0x1d8, 0x1da, 0x1dc, 0x1e8, 0x1f2, 0x1fc, 0x1ff, 0x203, 0x205, 0x207, 0x209, 0x20b, 0x20e, 0x210, 0x212, 0x214, 0x216, 0x21c, 0x21f, 0x223, 0x225, 0x22c, 0x232, 0x238, 0x240, 0x246, 0x24c, 0x252, 0x256, 0x258, 0x25a, 0x25c, 0x25e, 0x264, 0x267, 0x26a, 0x272, 0x279, 0x27c, 0x27f, 0x281, 0x289, 0x28c, 0x293, 0x296, 0x29c, 0x29e, 0x2a0, 0x2a3, 0x2a5, 0x2a7, 0x2a9, 0x2ab, 0x2ae, 0x2b0, 0x2b2, 0x2b4, 0x2c1, 0x2cb, 0x2cd, 0x2cf, 0x2d3, 0x2d8, 0x2e4, 0x2e9, 0x2f2, 0x2f8, 0x2fd, 0x301, 0x306, 0x30a, 0x31a, 0x328, 0x336, 0x344, 0x34a, 0x34c, 0x34f, 0x359, 0x35b}
+
+// nfkcSparseValues: 869 entries, 3476 bytes
+var nfkcSparseValues = [869]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: 0x46e2, lo: 0xa0, hi: 0xa1},
+       {value: 0x4714, 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: 0x451c, 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: 0x455c, lo: 0x9c, hi: 0x9d},
+       {value: 0x456c, lo: 0x9f, hi: 0x9f},
+       // Block 0x13, offset 0xa0
+       {value: 0x0000, lo: 0x03},
+       {value: 0x4594, lo: 0xb3, hi: 0xb3},
+       {value: 0x459c, 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: 0x4574, lo: 0x99, hi: 0x9b},
+       {value: 0x458c, 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: 0x45a4, lo: 0x9c, hi: 0x9c},
+       {value: 0x45ac, 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: 0x02},
+       {value: 0x8104, lo: 0xbb, hi: 0xbc},
+       {value: 0x9900, lo: 0xbe, hi: 0xbe},
+       // Block 0x1e, offset 0xd5
+       {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 0xdc
+       {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 0xe4
+       {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 0xe8
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8123, lo: 0x88, hi: 0x8b},
+       // Block 0x22, offset 0xea
+       {value: 0x0000, lo: 0x02},
+       {value: 0x2636, lo: 0xb3, hi: 0xb3},
+       {value: 0x8124, lo: 0xb8, hi: 0xb9},
+       // Block 0x23, offset 0xed
+       {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 0xf1
+       {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 0xf7
+       {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: 0x4a84, lo: 0xb3, hi: 0xb3},
+       {value: 0x8128, lo: 0xb4, hi: 0xb4},
+       {value: 0x4a8d, lo: 0xb5, hi: 0xb5},
+       {value: 0x45b4, lo: 0xb6, hi: 0xb6},
+       {value: 0x45f4, lo: 0xb7, hi: 0xb7},
+       {value: 0x45bc, lo: 0xb8, hi: 0xb8},
+       {value: 0x45ff, lo: 0xb9, hi: 0xb9},
+       {value: 0x8127, lo: 0xba, hi: 0xbd},
+       // Block 0x26, offset 0x108
+       {value: 0x0000, lo: 0x0b},
+       {value: 0x8127, lo: 0x80, hi: 0x80},
+       {value: 0x4a96, 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 0x114
+       {value: 0x0000, lo: 0x01},
+       {value: 0x812d, lo: 0x86, hi: 0x86},
+       // Block 0x28, offset 0x116
+       {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 0x11c
+       {value: 0x0000, lo: 0x01},
+       {value: 0x812d, lo: 0x8d, hi: 0x8d},
+       // Block 0x2a, offset 0x11e
+       {value: 0x0000, lo: 0x01},
+       {value: 0x030f, lo: 0xbc, hi: 0xbc},
+       // Block 0x2b, offset 0x120
+       {value: 0x0000, lo: 0x01},
+       {value: 0xa000, lo: 0x80, hi: 0x92},
+       // Block 0x2c, offset 0x122
+       {value: 0x0000, lo: 0x01},
+       {value: 0xb900, lo: 0xa1, hi: 0xb5},
+       // Block 0x2d, offset 0x124
+       {value: 0x0000, lo: 0x01},
+       {value: 0x9900, lo: 0xa8, hi: 0xbf},
+       // Block 0x2e, offset 0x126
+       {value: 0x0000, lo: 0x01},
+       {value: 0x9900, lo: 0x80, hi: 0x82},
+       // Block 0x2f, offset 0x128
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8132, lo: 0x9d, hi: 0x9f},
+       // Block 0x30, offset 0x12a
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8104, lo: 0x94, hi: 0x94},
+       {value: 0x8104, lo: 0xb4, hi: 0xb4},
+       // Block 0x31, offset 0x12d
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8104, lo: 0x92, hi: 0x92},
+       {value: 0x8132, lo: 0x9d, hi: 0x9d},
+       // Block 0x32, offset 0x130
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8131, lo: 0xa9, hi: 0xa9},
+       // Block 0x33, offset 0x132
+       {value: 0x0004, lo: 0x02},
+       {value: 0x812e, lo: 0xb9, hi: 0xba},
+       {value: 0x812d, lo: 0xbb, hi: 0xbb},
+       // Block 0x34, offset 0x135
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8132, lo: 0x97, hi: 0x97},
+       {value: 0x812d, lo: 0x98, hi: 0x98},
+       // Block 0x35, offset 0x138
+       {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 0x13c
+       {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 0x141
+       {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 0x14a
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8104, lo: 0xaa, hi: 0xab},
+       // Block 0x39, offset 0x14c
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8102, lo: 0xa6, hi: 0xa6},
+       {value: 0x8104, lo: 0xb2, hi: 0xb3},
+       // Block 0x3a, offset 0x14f
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8102, lo: 0xb7, hi: 0xb7},
+       // Block 0x3b, offset 0x151
+       {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 0x15c
+       {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 0x167
+       {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 0x3e, offset 0x175
+       {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 0x3f, offset 0x183
+       {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 0x40, offset 0x193
+       {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 0x41, offset 0x1a1
+       {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 0x42, offset 0x1a8
+       {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 0x43, offset 0x1ae
+       {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 0x44, offset 0x1bd
+       {value: 0x0007, lo: 0x03},
+       {value: 0x3c68, lo: 0xa0, hi: 0xa1},
+       {value: 0x3c92, lo: 0xa2, hi: 0xa3},
+       {value: 0x3cbc, lo: 0xaa, hi: 0xad},
+       // Block 0x45, offset 0x1c1
+       {value: 0x0004, lo: 0x01},
+       {value: 0x048b, lo: 0xa9, hi: 0xaa},
+       // Block 0x46, offset 0x1c3
+       {value: 0x0002, lo: 0x03},
+       {value: 0x0057, lo: 0x80, hi: 0x8f},
+       {value: 0x0083, lo: 0x90, hi: 0xa9},
+       {value: 0x0021, lo: 0xaa, hi: 0xaa},
+       // Block 0x47, offset 0x1c7
+       {value: 0x0000, lo: 0x01},
+       {value: 0x299b, lo: 0x8c, hi: 0x8c},
+       // Block 0x48, offset 0x1c9
+       {value: 0x0263, lo: 0x02},
+       {value: 0x1b8c, lo: 0xb4, hi: 0xb4},
+       {value: 0x192d, lo: 0xb5, hi: 0xb6},
+       // Block 0x49, offset 0x1cc
+       {value: 0x0000, lo: 0x01},
+       {value: 0x44dd, lo: 0x9c, hi: 0x9c},
+       // Block 0x4a, offset 0x1ce
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0095, lo: 0xbc, hi: 0xbc},
+       {value: 0x006d, lo: 0xbd, hi: 0xbd},
+       // Block 0x4b, offset 0x1d1
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8132, lo: 0xaf, hi: 0xb1},
+       // Block 0x4c, offset 0x1d3
+       {value: 0x0000, lo: 0x02},
+       {value: 0x047f, lo: 0xaf, hi: 0xaf},
+       {value: 0x8104, lo: 0xbf, hi: 0xbf},
+       // Block 0x4d, offset 0x1d6
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8132, lo: 0xa0, hi: 0xbf},
+       // Block 0x4e, offset 0x1d8
+       {value: 0x0000, lo: 0x01},
+       {value: 0x0dc3, lo: 0x9f, hi: 0x9f},
+       // Block 0x4f, offset 0x1da
+       {value: 0x0000, lo: 0x01},
+       {value: 0x162f, lo: 0xb3, hi: 0xb3},
+       // Block 0x50, offset 0x1dc
+       {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 0x51, offset 0x1e8
+       {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 0x52, offset 0x1f2
+       {value: 0x0006, lo: 0x09},
+       {value: 0x0313, lo: 0xb1, hi: 0xb1},
+       {value: 0x0317, lo: 0xb2, hi: 0xb2},
+       {value: 0x4a3b, lo: 0xb3, hi: 0xb3},
+       {value: 0x031b, lo: 0xb4, hi: 0xb4},
+       {value: 0x4a41, lo: 0xb5, hi: 0xb6},
+       {value: 0x031f, lo: 0xb7, hi: 0xb7},
+       {value: 0x0323, lo: 0xb8, hi: 0xb8},
+       {value: 0x0327, lo: 0xb9, hi: 0xb9},
+       {value: 0x4a4d, lo: 0xba, hi: 0xbf},
+       // Block 0x53, offset 0x1fc
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8132, lo: 0xaf, hi: 0xaf},
+       {value: 0x8132, lo: 0xb4, hi: 0xbd},
+       // Block 0x54, offset 0x1ff
+       {value: 0x0000, lo: 0x03},
+       {value: 0x020f, lo: 0x9c, hi: 0x9c},
+       {value: 0x0212, lo: 0x9d, hi: 0x9d},
+       {value: 0x8132, lo: 0x9e, hi: 0x9f},
+       // Block 0x55, offset 0x203
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8132, lo: 0xb0, hi: 0xb1},
+       // Block 0x56, offset 0x205
+       {value: 0x0000, lo: 0x01},
+       {value: 0x163b, lo: 0xb0, hi: 0xb0},
+       // Block 0x57, offset 0x207
+       {value: 0x000c, lo: 0x01},
+       {value: 0x00d7, lo: 0xb8, hi: 0xb9},
+       // Block 0x58, offset 0x209
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8104, lo: 0x86, hi: 0x86},
+       // Block 0x59, offset 0x20b
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8104, lo: 0x84, hi: 0x84},
+       {value: 0x8132, lo: 0xa0, hi: 0xb1},
+       // Block 0x5a, offset 0x20e
+       {value: 0x0000, lo: 0x01},
+       {value: 0x812d, lo: 0xab, hi: 0xad},
+       // Block 0x5b, offset 0x210
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8104, lo: 0x93, hi: 0x93},
+       // Block 0x5c, offset 0x212
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8102, lo: 0xb3, hi: 0xb3},
+       // Block 0x5d, offset 0x214
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8104, lo: 0x80, hi: 0x80},
+       // Block 0x5e, offset 0x216
+       {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 0x5f, offset 0x21c
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8132, lo: 0x81, hi: 0x81},
+       {value: 0x8104, lo: 0xb6, hi: 0xb6},
+       // Block 0x60, offset 0x21f
+       {value: 0x0008, lo: 0x03},
+       {value: 0x1637, lo: 0x9c, hi: 0x9d},
+       {value: 0x0125, lo: 0x9e, hi: 0x9e},
+       {value: 0x1643, lo: 0x9f, hi: 0x9f},
+       // Block 0x61, offset 0x223
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8104, lo: 0xad, hi: 0xad},
+       // Block 0x62, offset 0x225
+       {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 0x63, offset 0x22c
+       {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 0x64, offset 0x232
+       {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 0x65, offset 0x238
+       {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 0x66, offset 0x240
+       {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 0x67, offset 0x246
+       {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 0x68, offset 0x24c
+       {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 0x69, offset 0x252
+       {value: 0x0000, lo: 0x03},
+       {value: 0xc600, lo: 0x80, hi: 0x87},
+       {value: 0xe500, lo: 0x88, hi: 0x88},
+       {value: 0xc600, lo: 0x89, hi: 0xa3},
+       // Block 0x6a, offset 0x256
+       {value: 0x0002, lo: 0x01},
+       {value: 0x0003, lo: 0x81, hi: 0xbf},
+       // Block 0x6b, offset 0x258
+       {value: 0x0000, lo: 0x01},
+       {value: 0x812d, lo: 0xbd, hi: 0xbd},
+       // Block 0x6c, offset 0x25a
+       {value: 0x0000, lo: 0x01},
+       {value: 0x812d, lo: 0xa0, hi: 0xa0},
+       // Block 0x6d, offset 0x25c
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8132, lo: 0xb6, hi: 0xba},
+       // Block 0x6e, offset 0x25e
+       {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 0x6f, offset 0x264
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8132, lo: 0xa5, hi: 0xa5},
+       {value: 0x812d, lo: 0xa6, hi: 0xa6},
+       // Block 0x70, offset 0x267
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8104, lo: 0x86, hi: 0x86},
+       {value: 0x8104, lo: 0xbf, hi: 0xbf},
+       // Block 0x71, offset 0x26a
+       {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 0x72, offset 0x272
+       {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 0x73, offset 0x279
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8104, lo: 0x80, hi: 0x80},
+       {value: 0x8102, lo: 0x8a, hi: 0x8a},
+       // Block 0x74, offset 0x27c
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8104, lo: 0xb5, hi: 0xb5},
+       {value: 0x8102, lo: 0xb6, hi: 0xb6},
+       // Block 0x75, offset 0x27f
+       {value: 0x0002, lo: 0x01},
+       {value: 0x8102, lo: 0xa9, hi: 0xaa},
+       // Block 0x76, offset 0x281
+       {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 0x77, offset 0x289
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8104, lo: 0x82, hi: 0x82},
+       {value: 0x8102, lo: 0x86, hi: 0x86},
+       // Block 0x78, offset 0x28c
+       {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 0x79, offset 0x293
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8104, lo: 0x82, hi: 0x82},
+       {value: 0x8102, lo: 0x83, hi: 0x83},
+       // Block 0x7a, offset 0x296
+       {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 0x7b, offset 0x29c
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8102, lo: 0x80, hi: 0x80},
+       // Block 0x7c, offset 0x29e
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8104, lo: 0xbf, hi: 0xbf},
+       // Block 0x7d, offset 0x2a0
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8104, lo: 0xb6, hi: 0xb6},
+       {value: 0x8102, lo: 0xb7, hi: 0xb7},
+       // Block 0x7e, offset 0x2a3
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8104, lo: 0xab, hi: 0xab},
+       // Block 0x7f, offset 0x2a5
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8104, lo: 0xb4, hi: 0xb4},
+       // Block 0x80, offset 0x2a7
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8104, lo: 0x87, hi: 0x87},
+       // Block 0x81, offset 0x2a9
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8104, lo: 0x99, hi: 0x99},
+       // Block 0x82, offset 0x2ab
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8102, lo: 0x82, hi: 0x82},
+       {value: 0x8104, lo: 0x84, hi: 0x85},
+       // Block 0x83, offset 0x2ae
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8101, lo: 0xb0, hi: 0xb4},
+       // Block 0x84, offset 0x2b0
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8132, lo: 0xb0, hi: 0xb6},
+       // Block 0x85, offset 0x2b2
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8101, lo: 0x9e, hi: 0x9e},
+       // Block 0x86, offset 0x2b4
+       {value: 0x0000, lo: 0x0c},
+       {value: 0x45cc, lo: 0x9e, hi: 0x9e},
+       {value: 0x45d6, lo: 0x9f, hi: 0x9f},
+       {value: 0x460a, lo: 0xa0, hi: 0xa0},
+       {value: 0x4618, lo: 0xa1, hi: 0xa1},
+       {value: 0x4626, lo: 0xa2, hi: 0xa2},
+       {value: 0x4634, lo: 0xa3, hi: 0xa3},
+       {value: 0x4642, 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 0x2c1
+       {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: 0x45e0, lo: 0xbb, hi: 0xbb},
+       {value: 0x45ea, lo: 0xbc, hi: 0xbc},
+       {value: 0x4650, lo: 0xbd, hi: 0xbd},
+       {value: 0x466c, lo: 0xbe, hi: 0xbe},
+       {value: 0x465e, lo: 0xbf, hi: 0xbf},
+       // Block 0x88, offset 0x2cb
+       {value: 0x0000, lo: 0x01},
+       {value: 0x467a, lo: 0x80, hi: 0x80},
+       // Block 0x89, offset 0x2cd
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8132, lo: 0x82, hi: 0x84},
+       // Block 0x8a, offset 0x2cf
+       {value: 0x0002, lo: 0x03},
+       {value: 0x0043, lo: 0x80, hi: 0x99},
+       {value: 0x0083, lo: 0x9a, hi: 0xb3},
+       {value: 0x0043, lo: 0xb4, hi: 0xbf},
+       // Block 0x8b, offset 0x2d3
+       {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 0x8c, offset 0x2d8
+       {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 0x8d, offset 0x2e4
+       {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 0x8e, offset 0x2e9
+       {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 0x8f, offset 0x2f2
+       {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 0x90, offset 0x2f8
+       {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 0x91, offset 0x2fd
+       {value: 0x0002, lo: 0x03},
+       {value: 0x008f, lo: 0x80, hi: 0x93},
+       {value: 0x0043, lo: 0x94, hi: 0xad},
+       {value: 0x0083, lo: 0xae, hi: 0xbf},
+       // Block 0x92, offset 0x301
+       {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 0x93, offset 0x306
+       {value: 0x0002, lo: 0x03},
+       {value: 0x004b, lo: 0x80, hi: 0x95},
+       {value: 0x0083, lo: 0x96, hi: 0xaf},
+       {value: 0x0043, lo: 0xb0, hi: 0xbf},
+       // Block 0x94, offset 0x30a
+       {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 0x95, offset 0x31a
+       {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 0x96, offset 0x328
+       {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 0x97, offset 0x336
+       {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 0x98, offset 0x344
+       {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 0x99, offset 0x34a
+       {value: 0x0000, lo: 0x01},
+       {value: 0x812d, lo: 0x90, hi: 0x96},
+       // Block 0x9a, offset 0x34c
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8132, lo: 0x84, hi: 0x89},
+       {value: 0x8102, lo: 0x8a, hi: 0x8a},
+       // Block 0x9b, offset 0x34f
+       {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 0x9c, offset 0x359
+       {value: 0x0000, lo: 0x01},
+       {value: 0x193f, lo: 0x90, hi: 0x90},
+       // Block 0x9d, offset 0x35b
+       {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
+var recompMapOnce sync.Once
+
+const recompMapPacked = "" +
+       "\x00A\x03\x00\x00\x00\x00\xc0" + // 0x00410300: 0x000000C0
+       "\x00A\x03\x01\x00\x00\x00\xc1" + // 0x00410301: 0x000000C1
+       "\x00A\x03\x02\x00\x00\x00\xc2" + // 0x00410302: 0x000000C2
+       "\x00A\x03\x03\x00\x00\x00\xc3" + // 0x00410303: 0x000000C3
+       "\x00A\x03\b\x00\x00\x00\xc4" + // 0x00410308: 0x000000C4
+       "\x00A\x03\n\x00\x00\x00\xc5" + // 0x0041030A: 0x000000C5
+       "\x00C\x03'\x00\x00\x00\xc7" + // 0x00430327: 0x000000C7
+       "\x00E\x03\x00\x00\x00\x00\xc8" + // 0x00450300: 0x000000C8
+       "\x00E\x03\x01\x00\x00\x00\xc9" + // 0x00450301: 0x000000C9
+       "\x00E\x03\x02\x00\x00\x00\xca" + // 0x00450302: 0x000000CA
+       "\x00E\x03\b\x00\x00\x00\xcb" + // 0x00450308: 0x000000CB
+       "\x00I\x03\x00\x00\x00\x00\xcc" + // 0x00490300: 0x000000CC
+       "\x00I\x03\x01\x00\x00\x00\xcd" + // 0x00490301: 0x000000CD
+       "\x00I\x03\x02\x00\x00\x00\xce" + // 0x00490302: 0x000000CE
+       "\x00I\x03\b\x00\x00\x00\xcf" + // 0x00490308: 0x000000CF
+       "\x00N\x03\x03\x00\x00\x00\xd1" + // 0x004E0303: 0x000000D1
+       "\x00O\x03\x00\x00\x00\x00\xd2" + // 0x004F0300: 0x000000D2
+       "\x00O\x03\x01\x00\x00\x00\xd3" + // 0x004F0301: 0x000000D3
+       "\x00O\x03\x02\x00\x00\x00\xd4" + // 0x004F0302: 0x000000D4
+       "\x00O\x03\x03\x00\x00\x00\xd5" + // 0x004F0303: 0x000000D5
+       "\x00O\x03\b\x00\x00\x00\xd6" + // 0x004F0308: 0x000000D6
+       "\x00U\x03\x00\x00\x00\x00\xd9" + // 0x00550300: 0x000000D9
+       "\x00U\x03\x01\x00\x00\x00\xda" + // 0x00550301: 0x000000DA
+       "\x00U\x03\x02\x00\x00\x00\xdb" + // 0x00550302: 0x000000DB
+       "\x00U\x03\b\x00\x00\x00\xdc" + // 0x00550308: 0x000000DC
+       "\x00Y\x03\x01\x00\x00\x00\xdd" + // 0x00590301: 0x000000DD
+       "\x00a\x03\x00\x00\x00\x00\xe0" + // 0x00610300: 0x000000E0
+       "\x00a\x03\x01\x00\x00\x00\xe1" + // 0x00610301: 0x000000E1
+       "\x00a\x03\x02\x00\x00\x00\xe2" + // 0x00610302: 0x000000E2
+       "\x00a\x03\x03\x00\x00\x00\xe3" + // 0x00610303: 0x000000E3
+       "\x00a\x03\b\x00\x00\x00\xe4" + // 0x00610308: 0x000000E4
+       "\x00a\x03\n\x00\x00\x00\xe5" + // 0x0061030A: 0x000000E5
+       "\x00c\x03'\x00\x00\x00\xe7" + // 0x00630327: 0x000000E7
+       "\x00e\x03\x00\x00\x00\x00\xe8" + // 0x00650300: 0x000000E8
+       "\x00e\x03\x01\x00\x00\x00\xe9" + // 0x00650301: 0x000000E9
+       "\x00e\x03\x02\x00\x00\x00\xea" + // 0x00650302: 0x000000EA
+       "\x00e\x03\b\x00\x00\x00\xeb" + // 0x00650308: 0x000000EB
+       "\x00i\x03\x00\x00\x00\x00\xec" + // 0x00690300: 0x000000EC
+       "\x00i\x03\x01\x00\x00\x00\xed" + // 0x00690301: 0x000000ED
+       "\x00i\x03\x02\x00\x00\x00\xee" + // 0x00690302: 0x000000EE
+       "\x00i\x03\b\x00\x00\x00\xef" + // 0x00690308: 0x000000EF
+       "\x00n\x03\x03\x00\x00\x00\xf1" + // 0x006E0303: 0x000000F1
+       "\x00o\x03\x00\x00\x00\x00\xf2" + // 0x006F0300: 0x000000F2
+       "\x00o\x03\x01\x00\x00\x00\xf3" + // 0x006F0301: 0x000000F3
+       "\x00o\x03\x02\x00\x00\x00\xf4" + // 0x006F0302: 0x000000F4
+       "\x00o\x03\x03\x00\x00\x00\xf5" + // 0x006F0303: 0x000000F5
+       "\x00o\x03\b\x00\x00\x00\xf6" + // 0x006F0308: 0x000000F6
+       "\x00u\x03\x00\x00\x00\x00\xf9" + // 0x00750300: 0x000000F9
+       "\x00u\x03\x01\x00\x00\x00\xfa" + // 0x00750301: 0x000000FA
+       "\x00u\x03\x02\x00\x00\x00\xfb" + // 0x00750302: 0x000000FB
+       "\x00u\x03\b\x00\x00\x00\xfc" + // 0x00750308: 0x000000FC
+       "\x00y\x03\x01\x00\x00\x00\xfd" + // 0x00790301: 0x000000FD
+       "\x00y\x03\b\x00\x00\x00\xff" + // 0x00790308: 0x000000FF
+       "\x00A\x03\x04\x00\x00\x01\x00" + // 0x00410304: 0x00000100
+       "\x00a\x03\x04\x00\x00\x01\x01" + // 0x00610304: 0x00000101
+       "\x00A\x03\x06\x00\x00\x01\x02" + // 0x00410306: 0x00000102
+       "\x00a\x03\x06\x00\x00\x01\x03" + // 0x00610306: 0x00000103
+       "\x00A\x03(\x00\x00\x01\x04" + // 0x00410328: 0x00000104
+       "\x00a\x03(\x00\x00\x01\x05" + // 0x00610328: 0x00000105
+       "\x00C\x03\x01\x00\x00\x01\x06" + // 0x00430301: 0x00000106
+       "\x00c\x03\x01\x00\x00\x01\a" + // 0x00630301: 0x00000107
+       "\x00C\x03\x02\x00\x00\x01\b" + // 0x00430302: 0x00000108
+       "\x00c\x03\x02\x00\x00\x01\t" + // 0x00630302: 0x00000109
+       "\x00C\x03\a\x00\x00\x01\n" + // 0x00430307: 0x0000010A
+       "\x00c\x03\a\x00\x00\x01\v" + // 0x00630307: 0x0000010B
+       "\x00C\x03\f\x00\x00\x01\f" + // 0x0043030C: 0x0000010C
+       "\x00c\x03\f\x00\x00\x01\r" + // 0x0063030C: 0x0000010D
+       "\x00D\x03\f\x00\x00\x01\x0e" + // 0x0044030C: 0x0000010E
+       "\x00d\x03\f\x00\x00\x01\x0f" + // 0x0064030C: 0x0000010F
+       "\x00E\x03\x04\x00\x00\x01\x12" + // 0x00450304: 0x00000112
+       "\x00e\x03\x04\x00\x00\x01\x13" + // 0x00650304: 0x00000113
+       "\x00E\x03\x06\x00\x00\x01\x14" + // 0x00450306: 0x00000114
+       "\x00e\x03\x06\x00\x00\x01\x15" + // 0x00650306: 0x00000115
+       "\x00E\x03\a\x00\x00\x01\x16" + // 0x00450307: 0x00000116
+       "\x00e\x03\a\x00\x00\x01\x17" + // 0x00650307: 0x00000117
+       "\x00E\x03(\x00\x00\x01\x18" + // 0x00450328: 0x00000118
+       "\x00e\x03(\x00\x00\x01\x19" + // 0x00650328: 0x00000119
+       "\x00E\x03\f\x00\x00\x01\x1a" + // 0x0045030C: 0x0000011A
+       "\x00e\x03\f\x00\x00\x01\x1b" + // 0x0065030C: 0x0000011B
+       "\x00G\x03\x02\x00\x00\x01\x1c" + // 0x00470302: 0x0000011C
+       "\x00g\x03\x02\x00\x00\x01\x1d" + // 0x00670302: 0x0000011D
+       "\x00G\x03\x06\x00\x00\x01\x1e" + // 0x00470306: 0x0000011E
+       "\x00g\x03\x06\x00\x00\x01\x1f" + // 0x00670306: 0x0000011F
+       "\x00G\x03\a\x00\x00\x01 " + // 0x00470307: 0x00000120
+       "\x00g\x03\a\x00\x00\x01!" + // 0x00670307: 0x00000121
+       "\x00G\x03'\x00\x00\x01\"" + // 0x00470327: 0x00000122
+       "\x00g\x03'\x00\x00\x01#" + // 0x00670327: 0x00000123
+       "\x00H\x03\x02\x00\x00\x01$" + // 0x00480302: 0x00000124
+       "\x00h\x03\x02\x00\x00\x01%" + // 0x00680302: 0x00000125
+       "\x00I\x03\x03\x00\x00\x01(" + // 0x00490303: 0x00000128
+       "\x00i\x03\x03\x00\x00\x01)" + // 0x00690303: 0x00000129
+       "\x00I\x03\x04\x00\x00\x01*" + // 0x00490304: 0x0000012A
+       "\x00i\x03\x04\x00\x00\x01+" + // 0x00690304: 0x0000012B
+       "\x00I\x03\x06\x00\x00\x01," + // 0x00490306: 0x0000012C
+       "\x00i\x03\x06\x00\x00\x01-" + // 0x00690306: 0x0000012D
+       "\x00I\x03(\x00\x00\x01." + // 0x00490328: 0x0000012E
+       "\x00i\x03(\x00\x00\x01/" + // 0x00690328: 0x0000012F
+       "\x00I\x03\a\x00\x00\x010" + // 0x00490307: 0x00000130
+       "\x00J\x03\x02\x00\x00\x014" + // 0x004A0302: 0x00000134
+       "\x00j\x03\x02\x00\x00\x015" + // 0x006A0302: 0x00000135
+       "\x00K\x03'\x00\x00\x016" + // 0x004B0327: 0x00000136
+       "\x00k\x03'\x00\x00\x017" + // 0x006B0327: 0x00000137
+       "\x00L\x03\x01\x00\x00\x019" + // 0x004C0301: 0x00000139
+       "\x00l\x03\x01\x00\x00\x01:" + // 0x006C0301: 0x0000013A
+       "\x00L\x03'\x00\x00\x01;" + // 0x004C0327: 0x0000013B
+       "\x00l\x03'\x00\x00\x01<" + // 0x006C0327: 0x0000013C
+       "\x00L\x03\f\x00\x00\x01=" + // 0x004C030C: 0x0000013D
+       "\x00l\x03\f\x00\x00\x01>" + // 0x006C030C: 0x0000013E
+       "\x00N\x03\x01\x00\x00\x01C" + // 0x004E0301: 0x00000143
+       "\x00n\x03\x01\x00\x00\x01D" + // 0x006E0301: 0x00000144
+       "\x00N\x03'\x00\x00\x01E" + // 0x004E0327: 0x00000145
+       "\x00n\x03'\x00\x00\x01F" + // 0x006E0327: 0x00000146
+       "\x00N\x03\f\x00\x00\x01G" + // 0x004E030C: 0x00000147
+       "\x00n\x03\f\x00\x00\x01H" + // 0x006E030C: 0x00000148
+       "\x00O\x03\x04\x00\x00\x01L" + // 0x004F0304: 0x0000014C
+       "\x00o\x03\x04\x00\x00\x01M" + // 0x006F0304: 0x0000014D
+       "\x00O\x03\x06\x00\x00\x01N" + // 0x004F0306: 0x0000014E
+       "\x00o\x03\x06\x00\x00\x01O" + // 0x006F0306: 0x0000014F
+       "\x00O\x03\v\x00\x00\x01P" + // 0x004F030B: 0x00000150
+       "\x00o\x03\v\x00\x00\x01Q" + // 0x006F030B: 0x00000151
+       "\x00R\x03\x01\x00\x00\x01T" + // 0x00520301: 0x00000154
+       "\x00r\x03\x01\x00\x00\x01U" + // 0x00720301: 0x00000155
+       "\x00R\x03'\x00\x00\x01V" + // 0x00520327: 0x00000156
+       "\x00r\x03'\x00\x00\x01W" + // 0x00720327: 0x00000157
+       "\x00R\x03\f\x00\x00\x01X" + // 0x0052030C: 0x00000158
+       "\x00r\x03\f\x00\x00\x01Y" + // 0x0072030C: 0x00000159
+       "\x00S\x03\x01\x00\x00\x01Z" + // 0x00530301: 0x0000015A
+       "\x00s\x03\x01\x00\x00\x01[" + // 0x00730301: 0x0000015B
+       "\x00S\x03\x02\x00\x00\x01\\" + // 0x00530302: 0x0000015C
+       "\x00s\x03\x02\x00\x00\x01]" + // 0x00730302: 0x0000015D
+       "\x00S\x03'\x00\x00\x01^" + // 0x00530327: 0x0000015E
+       "\x00s\x03'\x00\x00\x01_" + // 0x00730327: 0x0000015F
+       "\x00S\x03\f\x00\x00\x01`" + // 0x0053030C: 0x00000160
+       "\x00s\x03\f\x00\x00\x01a" + // 0x0073030C: 0x00000161
+       "\x00T\x03'\x00\x00\x01b" + // 0x00540327: 0x00000162
+       "\x00t\x03'\x00\x00\x01c" + // 0x00740327: 0x00000163
+       "\x00T\x03\f\x00\x00\x01d" + // 0x0054030C: 0x00000164
+       "\x00t\x03\f\x00\x00\x01e" + // 0x0074030C: 0x00000165
+       "\x00U\x03\x03\x00\x00\x01h" + // 0x00550303: 0x00000168
+       "\x00u\x03\x03\x00\x00\x01i" + // 0x00750303: 0x00000169
+       "\x00U\x03\x04\x00\x00\x01j" + // 0x00550304: 0x0000016A
+       "\x00u\x03\x04\x00\x00\x01k" + // 0x00750304: 0x0000016B
+       "\x00U\x03\x06\x00\x00\x01l" + // 0x00550306: 0x0000016C
+       "\x00u\x03\x06\x00\x00\x01m" + // 0x00750306: 0x0000016D
+       "\x00U\x03\n\x00\x00\x01n" + // 0x0055030A: 0x0000016E
+       "\x00u\x03\n\x00\x00\x01o" + // 0x0075030A: 0x0000016F
+       "\x00U\x03\v\x00\x00\x01p" + // 0x0055030B: 0x00000170
+       "\x00u\x03\v\x00\x00\x01q" + // 0x0075030B: 0x00000171
+       "\x00U\x03(\x00\x00\x01r" + // 0x00550328: 0x00000172
+       "\x00u\x03(\x00\x00\x01s" + // 0x00750328: 0x00000173
+       "\x00W\x03\x02\x00\x00\x01t" + // 0x00570302: 0x00000174
+       "\x00w\x03\x02\x00\x00\x01u" + // 0x00770302: 0x00000175
+       "\x00Y\x03\x02\x00\x00\x01v" + // 0x00590302: 0x00000176
+       "\x00y\x03\x02\x00\x00\x01w" + // 0x00790302: 0x00000177
+       "\x00Y\x03\b\x00\x00\x01x" + // 0x00590308: 0x00000178
+       "\x00Z\x03\x01\x00\x00\x01y" + // 0x005A0301: 0x00000179
+       "\x00z\x03\x01\x00\x00\x01z" + // 0x007A0301: 0x0000017A
+       "\x00Z\x03\a\x00\x00\x01{" + // 0x005A0307: 0x0000017B
+       "\x00z\x03\a\x00\x00\x01|" + // 0x007A0307: 0x0000017C
+       "\x00Z\x03\f\x00\x00\x01}" + // 0x005A030C: 0x0000017D
+       "\x00z\x03\f\x00\x00\x01~" + // 0x007A030C: 0x0000017E
+       "\x00O\x03\x1b\x00\x00\x01\xa0" + // 0x004F031B: 0x000001A0
+       "\x00o\x03\x1b\x00\x00\x01\xa1" + // 0x006F031B: 0x000001A1
+       "\x00U\x03\x1b\x00\x00\x01\xaf" + // 0x0055031B: 0x000001AF
+       "\x00u\x03\x1b\x00\x00\x01\xb0" + // 0x0075031B: 0x000001B0
+       "\x00A\x03\f\x00\x00\x01\xcd" + // 0x0041030C: 0x000001CD
+       "\x00a\x03\f\x00\x00\x01\xce" + // 0x0061030C: 0x000001CE
+       "\x00I\x03\f\x00\x00\x01\xcf" + // 0x0049030C: 0x000001CF
+       "\x00i\x03\f\x00\x00\x01\xd0" + // 0x0069030C: 0x000001D0
+       "\x00O\x03\f\x00\x00\x01\xd1" + // 0x004F030C: 0x000001D1
+       "\x00o\x03\f\x00\x00\x01\xd2" + // 0x006F030C: 0x000001D2
+       "\x00U\x03\f\x00\x00\x01\xd3" + // 0x0055030C: 0x000001D3
+       "\x00u\x03\f\x00\x00\x01\xd4" + // 0x0075030C: 0x000001D4
+       "\x00\xdc\x03\x04\x00\x00\x01\xd5" + // 0x00DC0304: 0x000001D5
+       "\x00\xfc\x03\x04\x00\x00\x01\xd6" + // 0x00FC0304: 0x000001D6
+       "\x00\xdc\x03\x01\x00\x00\x01\xd7" + // 0x00DC0301: 0x000001D7
+       "\x00\xfc\x03\x01\x00\x00\x01\xd8" + // 0x00FC0301: 0x000001D8
+       "\x00\xdc\x03\f\x00\x00\x01\xd9" + // 0x00DC030C: 0x000001D9
+       "\x00\xfc\x03\f\x00\x00\x01\xda" + // 0x00FC030C: 0x000001DA
+       "\x00\xdc\x03\x00\x00\x00\x01\xdb" + // 0x00DC0300: 0x000001DB
+       "\x00\xfc\x03\x00\x00\x00\x01\xdc" + // 0x00FC0300: 0x000001DC
+       "\x00\xc4\x03\x04\x00\x00\x01\xde" + // 0x00C40304: 0x000001DE
+       "\x00\xe4\x03\x04\x00\x00\x01\xdf" + // 0x00E40304: 0x000001DF
+       "\x02&\x03\x04\x00\x00\x01\xe0" + // 0x02260304: 0x000001E0
+       "\x02'\x03\x04\x00\x00\x01\xe1" + // 0x02270304: 0x000001E1
+       "\x00\xc6\x03\x04\x00\x00\x01\xe2" + // 0x00C60304: 0x000001E2
+       "\x00\xe6\x03\x04\x00\x00\x01\xe3" + // 0x00E60304: 0x000001E3
+       "\x00G\x03\f\x00\x00\x01\xe6" + // 0x0047030C: 0x000001E6
+       "\x00g\x03\f\x00\x00\x01\xe7" + // 0x0067030C: 0x000001E7
+       "\x00K\x03\f\x00\x00\x01\xe8" + // 0x004B030C: 0x000001E8
+       "\x00k\x03\f\x00\x00\x01\xe9" + // 0x006B030C: 0x000001E9
+       "\x00O\x03(\x00\x00\x01\xea" + // 0x004F0328: 0x000001EA
+       "\x00o\x03(\x00\x00\x01\xeb" + // 0x006F0328: 0x000001EB
+       "\x01\xea\x03\x04\x00\x00\x01\xec" + // 0x01EA0304: 0x000001EC
+       "\x01\xeb\x03\x04\x00\x00\x01\xed" + // 0x01EB0304: 0x000001ED
+       "\x01\xb7\x03\f\x00\x00\x01\xee" + // 0x01B7030C: 0x000001EE
+       "\x02\x92\x03\f\x00\x00\x01\xef" + // 0x0292030C: 0x000001EF
+       "\x00j\x03\f\x00\x00\x01\xf0" + // 0x006A030C: 0x000001F0
+       "\x00G\x03\x01\x00\x00\x01\xf4" + // 0x00470301: 0x000001F4
+       "\x00g\x03\x01\x00\x00\x01\xf5" + // 0x00670301: 0x000001F5
+       "\x00N\x03\x00\x00\x00\x01\xf8" + // 0x004E0300: 0x000001F8
+       "\x00n\x03\x00\x00\x00\x01\xf9" + // 0x006E0300: 0x000001F9
+       "\x00\xc5\x03\x01\x00\x00\x01\xfa" + // 0x00C50301: 0x000001FA
+       "\x00\xe5\x03\x01\x00\x00\x01\xfb" + // 0x00E50301: 0x000001FB
+       "\x00\xc6\x03\x01\x00\x00\x01\xfc" + // 0x00C60301: 0x000001FC
+       "\x00\xe6\x03\x01\x00\x00\x01\xfd" + // 0x00E60301: 0x000001FD
+       "\x00\xd8\x03\x01\x00\x00\x01\xfe" + // 0x00D80301: 0x000001FE
+       "\x00\xf8\x03\x01\x00\x00\x01\xff" + // 0x00F80301: 0x000001FF
+       "\x00A\x03\x0f\x00\x00\x02\x00" + // 0x0041030F: 0x00000200
+       "\x00a\x03\x0f\x00\x00\x02\x01" + // 0x0061030F: 0x00000201
+       "\x00A\x03\x11\x00\x00\x02\x02" + // 0x00410311: 0x00000202
+       "\x00a\x03\x11\x00\x00\x02\x03" + // 0x00610311: 0x00000203
+       "\x00E\x03\x0f\x00\x00\x02\x04" + // 0x0045030F: 0x00000204
+       "\x00e\x03\x0f\x00\x00\x02\x05" + // 0x0065030F: 0x00000205
+       "\x00E\x03\x11\x00\x00\x02\x06" + // 0x00450311: 0x00000206
+       "\x00e\x03\x11\x00\x00\x02\a" + // 0x00650311: 0x00000207
+       "\x00I\x03\x0f\x00\x00\x02\b" + // 0x0049030F: 0x00000208
+       "\x00i\x03\x0f\x00\x00\x02\t" + // 0x0069030F: 0x00000209
+       "\x00I\x03\x11\x00\x00\x02\n" + // 0x00490311: 0x0000020A
+       "\x00i\x03\x11\x00\x00\x02\v" + // 0x00690311: 0x0000020B
+       "\x00O\x03\x0f\x00\x00\x02\f" + // 0x004F030F: 0x0000020C
+       "\x00o\x03\x0f\x00\x00\x02\r" + // 0x006F030F: 0x0000020D
+       "\x00O\x03\x11\x00\x00\x02\x0e" + // 0x004F0311: 0x0000020E
+       "\x00o\x03\x11\x00\x00\x02\x0f" + // 0x006F0311: 0x0000020F
+       "\x00R\x03\x0f\x00\x00\x02\x10" + // 0x0052030F: 0x00000210
+       "\x00r\x03\x0f\x00\x00\x02\x11" + // 0x0072030F: 0x00000211
+       "\x00R\x03\x11\x00\x00\x02\x12" + // 0x00520311: 0x00000212
+       "\x00r\x03\x11\x00\x00\x02\x13" + // 0x00720311: 0x00000213
+       "\x00U\x03\x0f\x00\x00\x02\x14" + // 0x0055030F: 0x00000214
+       "\x00u\x03\x0f\x00\x00\x02\x15" + // 0x0075030F: 0x00000215
+       "\x00U\x03\x11\x00\x00\x02\x16" + // 0x00550311: 0x00000216
+       "\x00u\x03\x11\x00\x00\x02\x17" + // 0x00750311: 0x00000217
+       "\x00S\x03&\x00\x00\x02\x18" + // 0x00530326: 0x00000218
+       "\x00s\x03&\x00\x00\x02\x19" + // 0x00730326: 0x00000219
+       "\x00T\x03&\x00\x00\x02\x1a" + // 0x00540326: 0x0000021A
+       "\x00t\x03&\x00\x00\x02\x1b" + // 0x00740326: 0x0000021B
+       "\x00H\x03\f\x00\x00\x02\x1e" + // 0x0048030C: 0x0000021E
+       "\x00h\x03\f\x00\x00\x02\x1f" + // 0x0068030C: 0x0000021F
+       "\x00A\x03\a\x00\x00\x02&" + // 0x00410307: 0x00000226
+       "\x00a\x03\a\x00\x00\x02'" + // 0x00610307: 0x00000227
+       "\x00E\x03'\x00\x00\x02(" + // 0x00450327: 0x00000228
+       "\x00e\x03'\x00\x00\x02)" + // 0x00650327: 0x00000229
+       "\x00\xd6\x03\x04\x00\x00\x02*" + // 0x00D60304: 0x0000022A
+       "\x00\xf6\x03\x04\x00\x00\x02+" + // 0x00F60304: 0x0000022B
+       "\x00\xd5\x03\x04\x00\x00\x02," + // 0x00D50304: 0x0000022C
+       "\x00\xf5\x03\x04\x00\x00\x02-" + // 0x00F50304: 0x0000022D
+       "\x00O\x03\a\x00\x00\x02." + // 0x004F0307: 0x0000022E
+       "\x00o\x03\a\x00\x00\x02/" + // 0x006F0307: 0x0000022F
+       "\x02.\x03\x04\x00\x00\x020" + // 0x022E0304: 0x00000230
+       "\x02/\x03\x04\x00\x00\x021" + // 0x022F0304: 0x00000231
+       "\x00Y\x03\x04\x00\x00\x022" + // 0x00590304: 0x00000232
+       "\x00y\x03\x04\x00\x00\x023" + // 0x00790304: 0x00000233
+       "\x00\xa8\x03\x01\x00\x00\x03\x85" + // 0x00A80301: 0x00000385
+       "\x03\x91\x03\x01\x00\x00\x03\x86" + // 0x03910301: 0x00000386
+       "\x03\x95\x03\x01\x00\x00\x03\x88" + // 0x03950301: 0x00000388
+       "\x03\x97\x03\x01\x00\x00\x03\x89" + // 0x03970301: 0x00000389
+       "\x03\x99\x03\x01\x00\x00\x03\x8a" + // 0x03990301: 0x0000038A
+       "\x03\x9f\x03\x01\x00\x00\x03\x8c" + // 0x039F0301: 0x0000038C
+       "\x03\xa5\x03\x01\x00\x00\x03\x8e" + // 0x03A50301: 0x0000038E
+       "\x03\xa9\x03\x01\x00\x00\x03\x8f" + // 0x03A90301: 0x0000038F
+       "\x03\xca\x03\x01\x00\x00\x03\x90" + // 0x03CA0301: 0x00000390
+       "\x03\x99\x03\b\x00\x00\x03\xaa" + // 0x03990308: 0x000003AA
+       "\x03\xa5\x03\b\x00\x00\x03\xab" + // 0x03A50308: 0x000003AB
+       "\x03\xb1\x03\x01\x00\x00\x03\xac" + // 0x03B10301: 0x000003AC
+       "\x03\xb5\x03\x01\x00\x00\x03\xad" + // 0x03B50301: 0x000003AD
+       "\x03\xb7\x03\x01\x00\x00\x03\xae" + // 0x03B70301: 0x000003AE
+       "\x03\xb9\x03\x01\x00\x00\x03\xaf" + // 0x03B90301: 0x000003AF
+       "\x03\xcb\x03\x01\x00\x00\x03\xb0" + // 0x03CB0301: 0x000003B0
+       "\x03\xb9\x03\b\x00\x00\x03\xca" + // 0x03B90308: 0x000003CA
+       "\x03\xc5\x03\b\x00\x00\x03\xcb" + // 0x03C50308: 0x000003CB
+       "\x03\xbf\x03\x01\x00\x00\x03\xcc" + // 0x03BF0301: 0x000003CC
+       "\x03\xc5\x03\x01\x00\x00\x03\xcd" + // 0x03C50301: 0x000003CD
+       "\x03\xc9\x03\x01\x00\x00\x03\xce" + // 0x03C90301: 0x000003CE
+       "\x03\xd2\x03\x01\x00\x00\x03\xd3" + // 0x03D20301: 0x000003D3
+       "\x03\xd2\x03\b\x00\x00\x03\xd4" + // 0x03D20308: 0x000003D4
+       "\x04\x15\x03\x00\x00\x00\x04\x00" + // 0x04150300: 0x00000400
+       "\x04\x15\x03\b\x00\x00\x04\x01" + // 0x04150308: 0x00000401
+       "\x04\x13\x03\x01\x00\x00\x04\x03" + // 0x04130301: 0x00000403
+       "\x04\x06\x03\b\x00\x00\x04\a" + // 0x04060308: 0x00000407
+       "\x04\x1a\x03\x01\x00\x00\x04\f" + // 0x041A0301: 0x0000040C
+       "\x04\x18\x03\x00\x00\x00\x04\r" + // 0x04180300: 0x0000040D
+       "\x04#\x03\x06\x00\x00\x04\x0e" + // 0x04230306: 0x0000040E
+       "\x04\x18\x03\x06\x00\x00\x04\x19" + // 0x04180306: 0x00000419
+       "\x048\x03\x06\x00\x00\x049" + // 0x04380306: 0x00000439
+       "\x045\x03\x00\x00\x00\x04P" + // 0x04350300: 0x00000450
+       "\x045\x03\b\x00\x00\x04Q" + // 0x04350308: 0x00000451
+       "\x043\x03\x01\x00\x00\x04S" + // 0x04330301: 0x00000453
+       "\x04V\x03\b\x00\x00\x04W" + // 0x04560308: 0x00000457
+       "\x04:\x03\x01\x00\x00\x04\\" + // 0x043A0301: 0x0000045C
+       "\x048\x03\x00\x00\x00\x04]" + // 0x04380300: 0x0000045D
+       "\x04C\x03\x06\x00\x00\x04^" + // 0x04430306: 0x0000045E
+       "\x04t\x03\x0f\x00\x00\x04v" + // 0x0474030F: 0x00000476
+       "\x04u\x03\x0f\x00\x00\x04w" + // 0x0475030F: 0x00000477
+       "\x04\x16\x03\x06\x00\x00\x04\xc1" + // 0x04160306: 0x000004C1
+       "\x046\x03\x06\x00\x00\x04\xc2" + // 0x04360306: 0x000004C2
+       "\x04\x10\x03\x06\x00\x00\x04\xd0" + // 0x04100306: 0x000004D0
+       "\x040\x03\x06\x00\x00\x04\xd1" + // 0x04300306: 0x000004D1
+       "\x04\x10\x03\b\x00\x00\x04\xd2" + // 0x04100308: 0x000004D2
+       "\x040\x03\b\x00\x00\x04\xd3" + // 0x04300308: 0x000004D3
+       "\x04\x15\x03\x06\x00\x00\x04\xd6" + // 0x04150306: 0x000004D6
+       "\x045\x03\x06\x00\x00\x04\xd7" + // 0x04350306: 0x000004D7
+       "\x04\xd8\x03\b\x00\x00\x04\xda" + // 0x04D80308: 0x000004DA
+       "\x04\xd9\x03\b\x00\x00\x04\xdb" + // 0x04D90308: 0x000004DB
+       "\x04\x16\x03\b\x00\x00\x04\xdc" + // 0x04160308: 0x000004DC
+       "\x046\x03\b\x00\x00\x04\xdd" + // 0x04360308: 0x000004DD
+       "\x04\x17\x03\b\x00\x00\x04\xde" + // 0x04170308: 0x000004DE
+       "\x047\x03\b\x00\x00\x04\xdf" + // 0x04370308: 0x000004DF
+       "\x04\x18\x03\x04\x00\x00\x04\xe2" + // 0x04180304: 0x000004E2
+       "\x048\x03\x04\x00\x00\x04\xe3" + // 0x04380304: 0x000004E3
+       "\x04\x18\x03\b\x00\x00\x04\xe4" + // 0x04180308: 0x000004E4
+       "\x048\x03\b\x00\x00\x04\xe5" + // 0x04380308: 0x000004E5
+       "\x04\x1e\x03\b\x00\x00\x04\xe6" + // 0x041E0308: 0x000004E6
+       "\x04>\x03\b\x00\x00\x04\xe7" + // 0x043E0308: 0x000004E7
+       "\x04\xe8\x03\b\x00\x00\x04\xea" + // 0x04E80308: 0x000004EA
+       "\x04\xe9\x03\b\x00\x00\x04\xeb" + // 0x04E90308: 0x000004EB
+       "\x04-\x03\b\x00\x00\x04\xec" + // 0x042D0308: 0x000004EC
+       "\x04M\x03\b\x00\x00\x04\xed" + // 0x044D0308: 0x000004ED
+       "\x04#\x03\x04\x00\x00\x04\xee" + // 0x04230304: 0x000004EE
+       "\x04C\x03\x04\x00\x00\x04\xef" + // 0x04430304: 0x000004EF
+       "\x04#\x03\b\x00\x00\x04\xf0" + // 0x04230308: 0x000004F0
+       "\x04C\x03\b\x00\x00\x04\xf1" + // 0x04430308: 0x000004F1
+       "\x04#\x03\v\x00\x00\x04\xf2" + // 0x0423030B: 0x000004F2
+       "\x04C\x03\v\x00\x00\x04\xf3" + // 0x0443030B: 0x000004F3
+       "\x04'\x03\b\x00\x00\x04\xf4" + // 0x04270308: 0x000004F4
+       "\x04G\x03\b\x00\x00\x04\xf5" + // 0x04470308: 0x000004F5
+       "\x04+\x03\b\x00\x00\x04\xf8" + // 0x042B0308: 0x000004F8
+       "\x04K\x03\b\x00\x00\x04\xf9" + // 0x044B0308: 0x000004F9
+       "\x06'\x06S\x00\x00\x06\"" + // 0x06270653: 0x00000622
+       "\x06'\x06T\x00\x00\x06#" + // 0x06270654: 0x00000623
+       "\x06H\x06T\x00\x00\x06$" + // 0x06480654: 0x00000624
+       "\x06'\x06U\x00\x00\x06%" + // 0x06270655: 0x00000625
+       "\x06J\x06T\x00\x00\x06&" + // 0x064A0654: 0x00000626
+       "\x06\xd5\x06T\x00\x00\x06\xc0" + // 0x06D50654: 0x000006C0
+       "\x06\xc1\x06T\x00\x00\x06\xc2" + // 0x06C10654: 0x000006C2
+       "\x06\xd2\x06T\x00\x00\x06\xd3" + // 0x06D20654: 0x000006D3
+       "\t(\t<\x00\x00\t)" + // 0x0928093C: 0x00000929
+       "\t0\t<\x00\x00\t1" + // 0x0930093C: 0x00000931
+       "\t3\t<\x00\x00\t4" + // 0x0933093C: 0x00000934
+       "\t\xc7\t\xbe\x00\x00\t\xcb" + // 0x09C709BE: 0x000009CB
+       "\t\xc7\t\xd7\x00\x00\t\xcc" + // 0x09C709D7: 0x000009CC
+       "\vG\vV\x00\x00\vH" + // 0x0B470B56: 0x00000B48
+       "\vG\v>\x00\x00\vK" + // 0x0B470B3E: 0x00000B4B
+       "\vG\vW\x00\x00\vL" + // 0x0B470B57: 0x00000B4C
+       "\v\x92\v\xd7\x00\x00\v\x94" + // 0x0B920BD7: 0x00000B94
+       "\v\xc6\v\xbe\x00\x00\v\xca" + // 0x0BC60BBE: 0x00000BCA
+       "\v\xc7\v\xbe\x00\x00\v\xcb" + // 0x0BC70BBE: 0x00000BCB
+       "\v\xc6\v\xd7\x00\x00\v\xcc" + // 0x0BC60BD7: 0x00000BCC
+       "\fF\fV\x00\x00\fH" + // 0x0C460C56: 0x00000C48
+       "\f\xbf\f\xd5\x00\x00\f\xc0" + // 0x0CBF0CD5: 0x00000CC0
+       "\f\xc6\f\xd5\x00\x00\f\xc7" + // 0x0CC60CD5: 0x00000CC7
+       "\f\xc6\f\xd6\x00\x00\f\xc8" + // 0x0CC60CD6: 0x00000CC8
+       "\f\xc6\f\xc2\x00\x00\f\xca" + // 0x0CC60CC2: 0x00000CCA
+       "\f\xca\f\xd5\x00\x00\f\xcb" + // 0x0CCA0CD5: 0x00000CCB
+       "\rF\r>\x00\x00\rJ" + // 0x0D460D3E: 0x00000D4A
+       "\rG\r>\x00\x00\rK" + // 0x0D470D3E: 0x00000D4B
+       "\rF\rW\x00\x00\rL" + // 0x0D460D57: 0x00000D4C
+       "\r\xd9\r\xca\x00\x00\r\xda" + // 0x0DD90DCA: 0x00000DDA
+       "\r\xd9\r\xcf\x00\x00\r\xdc" + // 0x0DD90DCF: 0x00000DDC
+       "\r\xdc\r\xca\x00\x00\r\xdd" + // 0x0DDC0DCA: 0x00000DDD
+       "\r\xd9\r\xdf\x00\x00\r\xde" + // 0x0DD90DDF: 0x00000DDE
+       "\x10%\x10.\x00\x00\x10&" + // 0x1025102E: 0x00001026
+       "\x1b\x05\x1b5\x00\x00\x1b\x06" + // 0x1B051B35: 0x00001B06
+       "\x1b\a\x1b5\x00\x00\x1b\b" + // 0x1B071B35: 0x00001B08
+       "\x1b\t\x1b5\x00\x00\x1b\n" + // 0x1B091B35: 0x00001B0A
+       "\x1b\v\x1b5\x00\x00\x1b\f" + // 0x1B0B1B35: 0x00001B0C
+       "\x1b\r\x1b5\x00\x00\x1b\x0e" + // 0x1B0D1B35: 0x00001B0E
+       "\x1b\x11\x1b5\x00\x00\x1b\x12" + // 0x1B111B35: 0x00001B12
+       "\x1b:\x1b5\x00\x00\x1b;" + // 0x1B3A1B35: 0x00001B3B
+       "\x1b<\x1b5\x00\x00\x1b=" + // 0x1B3C1B35: 0x00001B3D
+       "\x1b>\x1b5\x00\x00\x1b@" + // 0x1B3E1B35: 0x00001B40
+       "\x1b?\x1b5\x00\x00\x1bA" + // 0x1B3F1B35: 0x00001B41
+       "\x1bB\x1b5\x00\x00\x1bC" + // 0x1B421B35: 0x00001B43
+       "\x00A\x03%\x00\x00\x1e\x00" + // 0x00410325: 0x00001E00
+       "\x00a\x03%\x00\x00\x1e\x01" + // 0x00610325: 0x00001E01
+       "\x00B\x03\a\x00\x00\x1e\x02" + // 0x00420307: 0x00001E02
+       "\x00b\x03\a\x00\x00\x1e\x03" + // 0x00620307: 0x00001E03
+       "\x00B\x03#\x00\x00\x1e\x04" + // 0x00420323: 0x00001E04
+       "\x00b\x03#\x00\x00\x1e\x05" + // 0x00620323: 0x00001E05
+       "\x00B\x031\x00\x00\x1e\x06" + // 0x00420331: 0x00001E06
+       "\x00b\x031\x00\x00\x1e\a" + // 0x00620331: 0x00001E07
+       "\x00\xc7\x03\x01\x00\x00\x1e\b" + // 0x00C70301: 0x00001E08
+       "\x00\xe7\x03\x01\x00\x00\x1e\t" + // 0x00E70301: 0x00001E09
+       "\x00D\x03\a\x00\x00\x1e\n" + // 0x00440307: 0x00001E0A
+       "\x00d\x03\a\x00\x00\x1e\v" + // 0x00640307: 0x00001E0B
+       "\x00D\x03#\x00\x00\x1e\f" + // 0x00440323: 0x00001E0C
+       "\x00d\x03#\x00\x00\x1e\r" + // 0x00640323: 0x00001E0D
+       "\x00D\x031\x00\x00\x1e\x0e" + // 0x00440331: 0x00001E0E
+       "\x00d\x031\x00\x00\x1e\x0f" + // 0x00640331: 0x00001E0F
+       "\x00D\x03'\x00\x00\x1e\x10" + // 0x00440327: 0x00001E10
+       "\x00d\x03'\x00\x00\x1e\x11" + // 0x00640327: 0x00001E11
+       "\x00D\x03-\x00\x00\x1e\x12" + // 0x0044032D: 0x00001E12
+       "\x00d\x03-\x00\x00\x1e\x13" + // 0x0064032D: 0x00001E13
+       "\x01\x12\x03\x00\x00\x00\x1e\x14" + // 0x01120300: 0x00001E14
+       "\x01\x13\x03\x00\x00\x00\x1e\x15" + // 0x01130300: 0x00001E15
+       "\x01\x12\x03\x01\x00\x00\x1e\x16" + // 0x01120301: 0x00001E16
+       "\x01\x13\x03\x01\x00\x00\x1e\x17" + // 0x01130301: 0x00001E17
+       "\x00E\x03-\x00\x00\x1e\x18" + // 0x0045032D: 0x00001E18
+       "\x00e\x03-\x00\x00\x1e\x19" + // 0x0065032D: 0x00001E19
+       "\x00E\x030\x00\x00\x1e\x1a" + // 0x00450330: 0x00001E1A
+       "\x00e\x030\x00\x00\x1e\x1b" + // 0x00650330: 0x00001E1B
+       "\x02(\x03\x06\x00\x00\x1e\x1c" + // 0x02280306: 0x00001E1C
+       "\x02)\x03\x06\x00\x00\x1e\x1d" + // 0x02290306: 0x00001E1D
+       "\x00F\x03\a\x00\x00\x1e\x1e" + // 0x00460307: 0x00001E1E
+       "\x00f\x03\a\x00\x00\x1e\x1f" + // 0x00660307: 0x00001E1F
+       "\x00G\x03\x04\x00\x00\x1e " + // 0x00470304: 0x00001E20
+       "\x00g\x03\x04\x00\x00\x1e!" + // 0x00670304: 0x00001E21
+       "\x00H\x03\a\x00\x00\x1e\"" + // 0x00480307: 0x00001E22
+       "\x00h\x03\a\x00\x00\x1e#" + // 0x00680307: 0x00001E23
+       "\x00H\x03#\x00\x00\x1e$" + // 0x00480323: 0x00001E24
+       "\x00h\x03#\x00\x00\x1e%" + // 0x00680323: 0x00001E25
+       "\x00H\x03\b\x00\x00\x1e&" + // 0x00480308: 0x00001E26
+       "\x00h\x03\b\x00\x00\x1e'" + // 0x00680308: 0x00001E27
+       "\x00H\x03'\x00\x00\x1e(" + // 0x00480327: 0x00001E28
+       "\x00h\x03'\x00\x00\x1e)" + // 0x00680327: 0x00001E29
+       "\x00H\x03.\x00\x00\x1e*" + // 0x0048032E: 0x00001E2A
+       "\x00h\x03.\x00\x00\x1e+" + // 0x0068032E: 0x00001E2B
+       "\x00I\x030\x00\x00\x1e," + // 0x00490330: 0x00001E2C
+       "\x00i\x030\x00\x00\x1e-" + // 0x00690330: 0x00001E2D
+       "\x00\xcf\x03\x01\x00\x00\x1e." + // 0x00CF0301: 0x00001E2E
+       "\x00\xef\x03\x01\x00\x00\x1e/" + // 0x00EF0301: 0x00001E2F
+       "\x00K\x03\x01\x00\x00\x1e0" + // 0x004B0301: 0x00001E30
+       "\x00k\x03\x01\x00\x00\x1e1" + // 0x006B0301: 0x00001E31
+       "\x00K\x03#\x00\x00\x1e2" + // 0x004B0323: 0x00001E32
+       "\x00k\x03#\x00\x00\x1e3" + // 0x006B0323: 0x00001E33
+       "\x00K\x031\x00\x00\x1e4" + // 0x004B0331: 0x00001E34
+       "\x00k\x031\x00\x00\x1e5" + // 0x006B0331: 0x00001E35
+       "\x00L\x03#\x00\x00\x1e6" + // 0x004C0323: 0x00001E36
+       "\x00l\x03#\x00\x00\x1e7" + // 0x006C0323: 0x00001E37
+       "\x1e6\x03\x04\x00\x00\x1e8" + // 0x1E360304: 0x00001E38
+       "\x1e7\x03\x04\x00\x00\x1e9" + // 0x1E370304: 0x00001E39
+       "\x00L\x031\x00\x00\x1e:" + // 0x004C0331: 0x00001E3A
+       "\x00l\x031\x00\x00\x1e;" + // 0x006C0331: 0x00001E3B
+       "\x00L\x03-\x00\x00\x1e<" + // 0x004C032D: 0x00001E3C
+       "\x00l\x03-\x00\x00\x1e=" + // 0x006C032D: 0x00001E3D
+       "\x00M\x03\x01\x00\x00\x1e>" + // 0x004D0301: 0x00001E3E
+       "\x00m\x03\x01\x00\x00\x1e?" + // 0x006D0301: 0x00001E3F
+       "\x00M\x03\a\x00\x00\x1e@" + // 0x004D0307: 0x00001E40
+       "\x00m\x03\a\x00\x00\x1eA" + // 0x006D0307: 0x00001E41
+       "\x00M\x03#\x00\x00\x1eB" + // 0x004D0323: 0x00001E42
+       "\x00m\x03#\x00\x00\x1eC" + // 0x006D0323: 0x00001E43
+       "\x00N\x03\a\x00\x00\x1eD" + // 0x004E0307: 0x00001E44
+       "\x00n\x03\a\x00\x00\x1eE" + // 0x006E0307: 0x00001E45
+       "\x00N\x03#\x00\x00\x1eF" + // 0x004E0323: 0x00001E46
+       "\x00n\x03#\x00\x00\x1eG" + // 0x006E0323: 0x00001E47
+       "\x00N\x031\x00\x00\x1eH" + // 0x004E0331: 0x00001E48
+       "\x00n\x031\x00\x00\x1eI" + // 0x006E0331: 0x00001E49
+       "\x00N\x03-\x00\x00\x1eJ" + // 0x004E032D: 0x00001E4A
+       "\x00n\x03-\x00\x00\x1eK" + // 0x006E032D: 0x00001E4B
+       "\x00\xd5\x03\x01\x00\x00\x1eL" + // 0x00D50301: 0x00001E4C
+       "\x00\xf5\x03\x01\x00\x00\x1eM" + // 0x00F50301: 0x00001E4D
+       "\x00\xd5\x03\b\x00\x00\x1eN" + // 0x00D50308: 0x00001E4E
+       "\x00\xf5\x03\b\x00\x00\x1eO" + // 0x00F50308: 0x00001E4F
+       "\x01L\x03\x00\x00\x00\x1eP" + // 0x014C0300: 0x00001E50
+       "\x01M\x03\x00\x00\x00\x1eQ" + // 0x014D0300: 0x00001E51
+       "\x01L\x03\x01\x00\x00\x1eR" + // 0x014C0301: 0x00001E52
+       "\x01M\x03\x01\x00\x00\x1eS" + // 0x014D0301: 0x00001E53
+       "\x00P\x03\x01\x00\x00\x1eT" + // 0x00500301: 0x00001E54
+       "\x00p\x03\x01\x00\x00\x1eU" + // 0x00700301: 0x00001E55
+       "\x00P\x03\a\x00\x00\x1eV" + // 0x00500307: 0x00001E56
+       "\x00p\x03\a\x00\x00\x1eW" + // 0x00700307: 0x00001E57
+       "\x00R\x03\a\x00\x00\x1eX" + // 0x00520307: 0x00001E58
+       "\x00r\x03\a\x00\x00\x1eY" + // 0x00720307: 0x00001E59
+       "\x00R\x03#\x00\x00\x1eZ" + // 0x00520323: 0x00001E5A
+       "\x00r\x03#\x00\x00\x1e[" + // 0x00720323: 0x00001E5B
+       "\x1eZ\x03\x04\x00\x00\x1e\\" + // 0x1E5A0304: 0x00001E5C
+       "\x1e[\x03\x04\x00\x00\x1e]" + // 0x1E5B0304: 0x00001E5D
+       "\x00R\x031\x00\x00\x1e^" + // 0x00520331: 0x00001E5E
+       "\x00r\x031\x00\x00\x1e_" + // 0x00720331: 0x00001E5F
+       "\x00S\x03\a\x00\x00\x1e`" + // 0x00530307: 0x00001E60
+       "\x00s\x03\a\x00\x00\x1ea" + // 0x00730307: 0x00001E61
+       "\x00S\x03#\x00\x00\x1eb" + // 0x00530323: 0x00001E62
+       "\x00s\x03#\x00\x00\x1ec" + // 0x00730323: 0x00001E63
+       "\x01Z\x03\a\x00\x00\x1ed" + // 0x015A0307: 0x00001E64
+       "\x01[\x03\a\x00\x00\x1ee" + // 0x015B0307: 0x00001E65
+       "\x01`\x03\a\x00\x00\x1ef" + // 0x01600307: 0x00001E66
+       "\x01a\x03\a\x00\x00\x1eg" + // 0x01610307: 0x00001E67
+       "\x1eb\x03\a\x00\x00\x1eh" + // 0x1E620307: 0x00001E68
+       "\x1ec\x03\a\x00\x00\x1ei" + // 0x1E630307: 0x00001E69
+       "\x00T\x03\a\x00\x00\x1ej" + // 0x00540307: 0x00001E6A
+       "\x00t\x03\a\x00\x00\x1ek" + // 0x00740307: 0x00001E6B
+       "\x00T\x03#\x00\x00\x1el" + // 0x00540323: 0x00001E6C
+       "\x00t\x03#\x00\x00\x1em" + // 0x00740323: 0x00001E6D
+       "\x00T\x031\x00\x00\x1en" + // 0x00540331: 0x00001E6E
+       "\x00t\x031\x00\x00\x1eo" + // 0x00740331: 0x00001E6F
+       "\x00T\x03-\x00\x00\x1ep" + // 0x0054032D: 0x00001E70
+       "\x00t\x03-\x00\x00\x1eq" + // 0x0074032D: 0x00001E71
+       "\x00U\x03$\x00\x00\x1er" + // 0x00550324: 0x00001E72
+       "\x00u\x03$\x00\x00\x1es" + // 0x00750324: 0x00001E73
+       "\x00U\x030\x00\x00\x1et" + // 0x00550330: 0x00001E74
+       "\x00u\x030\x00\x00\x1eu" + // 0x00750330: 0x00001E75
+       "\x00U\x03-\x00\x00\x1ev" + // 0x0055032D: 0x00001E76
+       "\x00u\x03-\x00\x00\x1ew" + // 0x0075032D: 0x00001E77
+       "\x01h\x03\x01\x00\x00\x1ex" + // 0x01680301: 0x00001E78
+       "\x01i\x03\x01\x00\x00\x1ey" + // 0x01690301: 0x00001E79
+       "\x01j\x03\b\x00\x00\x1ez" + // 0x016A0308: 0x00001E7A
+       "\x01k\x03\b\x00\x00\x1e{" + // 0x016B0308: 0x00001E7B
+       "\x00V\x03\x03\x00\x00\x1e|" + // 0x00560303: 0x00001E7C
+       "\x00v\x03\x03\x00\x00\x1e}" + // 0x00760303: 0x00001E7D
+       "\x00V\x03#\x00\x00\x1e~" + // 0x00560323: 0x00001E7E
+       "\x00v\x03#\x00\x00\x1e\u007f" + // 0x00760323: 0x00001E7F
+       "\x00W\x03\x00\x00\x00\x1e\x80" + // 0x00570300: 0x00001E80
+       "\x00w\x03\x00\x00\x00\x1e\x81" + // 0x00770300: 0x00001E81
+       "\x00W\x03\x01\x00\x00\x1e\x82" + // 0x00570301: 0x00001E82
+       "\x00w\x03\x01\x00\x00\x1e\x83" + // 0x00770301: 0x00001E83
+       "\x00W\x03\b\x00\x00\x1e\x84" + // 0x00570308: 0x00001E84
+       "\x00w\x03\b\x00\x00\x1e\x85" + // 0x00770308: 0x00001E85
+       "\x00W\x03\a\x00\x00\x1e\x86" + // 0x00570307: 0x00001E86
+       "\x00w\x03\a\x00\x00\x1e\x87" + // 0x00770307: 0x00001E87
+       "\x00W\x03#\x00\x00\x1e\x88" + // 0x00570323: 0x00001E88
+       "\x00w\x03#\x00\x00\x1e\x89" + // 0x00770323: 0x00001E89
+       "\x00X\x03\a\x00\x00\x1e\x8a" + // 0x00580307: 0x00001E8A
+       "\x00x\x03\a\x00\x00\x1e\x8b" + // 0x00780307: 0x00001E8B
+       "\x00X\x03\b\x00\x00\x1e\x8c" + // 0x00580308: 0x00001E8C
+       "\x00x\x03\b\x00\x00\x1e\x8d" + // 0x00780308: 0x00001E8D
+       "\x00Y\x03\a\x00\x00\x1e\x8e" + // 0x00590307: 0x00001E8E
+       "\x00y\x03\a\x00\x00\x1e\x8f" + // 0x00790307: 0x00001E8F
+       "\x00Z\x03\x02\x00\x00\x1e\x90" + // 0x005A0302: 0x00001E90
+       "\x00z\x03\x02\x00\x00\x1e\x91" + // 0x007A0302: 0x00001E91
+       "\x00Z\x03#\x00\x00\x1e\x92" + // 0x005A0323: 0x00001E92
+       "\x00z\x03#\x00\x00\x1e\x93" + // 0x007A0323: 0x00001E93
+       "\x00Z\x031\x00\x00\x1e\x94" + // 0x005A0331: 0x00001E94
+       "\x00z\x031\x00\x00\x1e\x95" + // 0x007A0331: 0x00001E95
+       "\x00h\x031\x00\x00\x1e\x96" + // 0x00680331: 0x00001E96
+       "\x00t\x03\b\x00\x00\x1e\x97" + // 0x00740308: 0x00001E97
+       "\x00w\x03\n\x00\x00\x1e\x98" + // 0x0077030A: 0x00001E98
+       "\x00y\x03\n\x00\x00\x1e\x99" + // 0x0079030A: 0x00001E99
+       "\x01\u007f\x03\a\x00\x00\x1e\x9b" + // 0x017F0307: 0x00001E9B
+       "\x00A\x03#\x00\x00\x1e\xa0" + // 0x00410323: 0x00001EA0
+       "\x00a\x03#\x00\x00\x1e\xa1" + // 0x00610323: 0x00001EA1
+       "\x00A\x03\t\x00\x00\x1e\xa2" + // 0x00410309: 0x00001EA2
+       "\x00a\x03\t\x00\x00\x1e\xa3" + // 0x00610309: 0x00001EA3
+       "\x00\xc2\x03\x01\x00\x00\x1e\xa4" + // 0x00C20301: 0x00001EA4
+       "\x00\xe2\x03\x01\x00\x00\x1e\xa5" + // 0x00E20301: 0x00001EA5
+       "\x00\xc2\x03\x00\x00\x00\x1e\xa6" + // 0x00C20300: 0x00001EA6
+       "\x00\xe2\x03\x00\x00\x00\x1e\xa7" + // 0x00E20300: 0x00001EA7
+       "\x00\xc2\x03\t\x00\x00\x1e\xa8" + // 0x00C20309: 0x00001EA8
+       "\x00\xe2\x03\t\x00\x00\x1e\xa9" + // 0x00E20309: 0x00001EA9
+       "\x00\xc2\x03\x03\x00\x00\x1e\xaa" + // 0x00C20303: 0x00001EAA
+       "\x00\xe2\x03\x03\x00\x00\x1e\xab" + // 0x00E20303: 0x00001EAB
+       "\x1e\xa0\x03\x02\x00\x00\x1e\xac" + // 0x1EA00302: 0x00001EAC
+       "\x1e\xa1\x03\x02\x00\x00\x1e\xad" + // 0x1EA10302: 0x00001EAD
+       "\x01\x02\x03\x01\x00\x00\x1e\xae" + // 0x01020301: 0x00001EAE
+       "\x01\x03\x03\x01\x00\x00\x1e\xaf" + // 0x01030301: 0x00001EAF
+       "\x01\x02\x03\x00\x00\x00\x1e\xb0" + // 0x01020300: 0x00001EB0
+       "\x01\x03\x03\x00\x00\x00\x1e\xb1" + // 0x01030300: 0x00001EB1
+       "\x01\x02\x03\t\x00\x00\x1e\xb2" + // 0x01020309: 0x00001EB2
+       "\x01\x03\x03\t\x00\x00\x1e\xb3" + // 0x01030309: 0x00001EB3
+       "\x01\x02\x03\x03\x00\x00\x1e\xb4" + // 0x01020303: 0x00001EB4
+       "\x01\x03\x03\x03\x00\x00\x1e\xb5" + // 0x01030303: 0x00001EB5
+       "\x1e\xa0\x03\x06\x00\x00\x1e\xb6" + // 0x1EA00306: 0x00001EB6
+       "\x1e\xa1\x03\x06\x00\x00\x1e\xb7" + // 0x1EA10306: 0x00001EB7
+       "\x00E\x03#\x00\x00\x1e\xb8" + // 0x00450323: 0x00001EB8
+       "\x00e\x03#\x00\x00\x1e\xb9" + // 0x00650323: 0x00001EB9
+       "\x00E\x03\t\x00\x00\x1e\xba" + // 0x00450309: 0x00001EBA
+       "\x00e\x03\t\x00\x00\x1e\xbb" + // 0x00650309: 0x00001EBB
+       "\x00E\x03\x03\x00\x00\x1e\xbc" + // 0x00450303: 0x00001EBC
+       "\x00e\x03\x03\x00\x00\x1e\xbd" + // 0x00650303: 0x00001EBD
+       "\x00\xca\x03\x01\x00\x00\x1e\xbe" + // 0x00CA0301: 0x00001EBE
+       "\x00\xea\x03\x01\x00\x00\x1e\xbf" + // 0x00EA0301: 0x00001EBF
+       "\x00\xca\x03\x00\x00\x00\x1e\xc0" + // 0x00CA0300: 0x00001EC0
+       "\x00\xea\x03\x00\x00\x00\x1e\xc1" + // 0x00EA0300: 0x00001EC1
+       "\x00\xca\x03\t\x00\x00\x1e\xc2" + // 0x00CA0309: 0x00001EC2
+       "\x00\xea\x03\t\x00\x00\x1e\xc3" + // 0x00EA0309: 0x00001EC3
+       "\x00\xca\x03\x03\x00\x00\x1e\xc4" + // 0x00CA0303: 0x00001EC4
+       "\x00\xea\x03\x03\x00\x00\x1e\xc5" + // 0x00EA0303: 0x00001EC5
+       "\x1e\xb8\x03\x02\x00\x00\x1e\xc6" + // 0x1EB80302: 0x00001EC6
+       "\x1e\xb9\x03\x02\x00\x00\x1e\xc7" + // 0x1EB90302: 0x00001EC7
+       "\x00I\x03\t\x00\x00\x1e\xc8" + // 0x00490309: 0x00001EC8
+       "\x00i\x03\t\x00\x00\x1e\xc9" + // 0x00690309: 0x00001EC9
+       "\x00I\x03#\x00\x00\x1e\xca" + // 0x00490323: 0x00001ECA
+       "\x00i\x03#\x00\x00\x1e\xcb" + // 0x00690323: 0x00001ECB
+       "\x00O\x03#\x00\x00\x1e\xcc" + // 0x004F0323: 0x00001ECC
+       "\x00o\x03#\x00\x00\x1e\xcd" + // 0x006F0323: 0x00001ECD
+       "\x00O\x03\t\x00\x00\x1e\xce" + // 0x004F0309: 0x00001ECE
+       "\x00o\x03\t\x00\x00\x1e\xcf" + // 0x006F0309: 0x00001ECF
+       "\x00\xd4\x03\x01\x00\x00\x1e\xd0" + // 0x00D40301: 0x00001ED0
+       "\x00\xf4\x03\x01\x00\x00\x1e\xd1" + // 0x00F40301: 0x00001ED1
+       "\x00\xd4\x03\x00\x00\x00\x1e\xd2" + // 0x00D40300: 0x00001ED2
+       "\x00\xf4\x03\x00\x00\x00\x1e\xd3" + // 0x00F40300: 0x00001ED3
+       "\x00\xd4\x03\t\x00\x00\x1e\xd4" + // 0x00D40309: 0x00001ED4
+       "\x00\xf4\x03\t\x00\x00\x1e\xd5" + // 0x00F40309: 0x00001ED5
+       "\x00\xd4\x03\x03\x00\x00\x1e\xd6" + // 0x00D40303: 0x00001ED6
+       "\x00\xf4\x03\x03\x00\x00\x1e\xd7" + // 0x00F40303: 0x00001ED7
+       "\x1e\xcc\x03\x02\x00\x00\x1e\xd8" + // 0x1ECC0302: 0x00001ED8
+       "\x1e\xcd\x03\x02\x00\x00\x1e\xd9" + // 0x1ECD0302: 0x00001ED9
+       "\x01\xa0\x03\x01\x00\x00\x1e\xda" + // 0x01A00301: 0x00001EDA
+       "\x01\xa1\x03\x01\x00\x00\x1e\xdb" + // 0x01A10301: 0x00001EDB
+       "\x01\xa0\x03\x00\x00\x00\x1e\xdc" + // 0x01A00300: 0x00001EDC
+       "\x01\xa1\x03\x00\x00\x00\x1e\xdd" + // 0x01A10300: 0x00001EDD
+       "\x01\xa0\x03\t\x00\x00\x1e\xde" + // 0x01A00309: 0x00001EDE
+       "\x01\xa1\x03\t\x00\x00\x1e\xdf" + // 0x01A10309: 0x00001EDF
+       "\x01\xa0\x03\x03\x00\x00\x1e\xe0" + // 0x01A00303: 0x00001EE0
+       "\x01\xa1\x03\x03\x00\x00\x1e\xe1" + // 0x01A10303: 0x00001EE1
+       "\x01\xa0\x03#\x00\x00\x1e\xe2" + // 0x01A00323: 0x00001EE2
+       "\x01\xa1\x03#\x00\x00\x1e\xe3" + // 0x01A10323: 0x00001EE3
+       "\x00U\x03#\x00\x00\x1e\xe4" + // 0x00550323: 0x00001EE4
+       "\x00u\x03#\x00\x00\x1e\xe5" + // 0x00750323: 0x00001EE5
+       "\x00U\x03\t\x00\x00\x1e\xe6" + // 0x00550309: 0x00001EE6
+       "\x00u\x03\t\x00\x00\x1e\xe7" + // 0x00750309: 0x00001EE7
+       "\x01\xaf\x03\x01\x00\x00\x1e\xe8" + // 0x01AF0301: 0x00001EE8
+       "\x01\xb0\x03\x01\x00\x00\x1e\xe9" + // 0x01B00301: 0x00001EE9
+       "\x01\xaf\x03\x00\x00\x00\x1e\xea" + // 0x01AF0300: 0x00001EEA
+       "\x01\xb0\x03\x00\x00\x00\x1e\xeb" + // 0x01B00300: 0x00001EEB
+       "\x01\xaf\x03\t\x00\x00\x1e\xec" + // 0x01AF0309: 0x00001EEC
+       "\x01\xb0\x03\t\x00\x00\x1e\xed" + // 0x01B00309: 0x00001EED
+       "\x01\xaf\x03\x03\x00\x00\x1e\xee" + // 0x01AF0303: 0x00001EEE
+       "\x01\xb0\x03\x03\x00\x00\x1e\xef" + // 0x01B00303: 0x00001EEF
+       "\x01\xaf\x03#\x00\x00\x1e\xf0" + // 0x01AF0323: 0x00001EF0
+       "\x01\xb0\x03#\x00\x00\x1e\xf1" + // 0x01B00323: 0x00001EF1
+       "\x00Y\x03\x00\x00\x00\x1e\xf2" + // 0x00590300: 0x00001EF2
+       "\x00y\x03\x00\x00\x00\x1e\xf3" + // 0x00790300: 0x00001EF3
+       "\x00Y\x03#\x00\x00\x1e\xf4" + // 0x00590323: 0x00001EF4
+       "\x00y\x03#\x00\x00\x1e\xf5" + // 0x00790323: 0x00001EF5
+       "\x00Y\x03\t\x00\x00\x1e\xf6" + // 0x00590309: 0x00001EF6
+       "\x00y\x03\t\x00\x00\x1e\xf7" + // 0x00790309: 0x00001EF7
+       "\x00Y\x03\x03\x00\x00\x1e\xf8" + // 0x00590303: 0x00001EF8
+       "\x00y\x03\x03\x00\x00\x1e\xf9" + // 0x00790303: 0x00001EF9
+       "\x03\xb1\x03\x13\x00\x00\x1f\x00" + // 0x03B10313: 0x00001F00
+       "\x03\xb1\x03\x14\x00\x00\x1f\x01" + // 0x03B10314: 0x00001F01
+       "\x1f\x00\x03\x00\x00\x00\x1f\x02" + // 0x1F000300: 0x00001F02
+       "\x1f\x01\x03\x00\x00\x00\x1f\x03" + // 0x1F010300: 0x00001F03
+       "\x1f\x00\x03\x01\x00\x00\x1f\x04" + // 0x1F000301: 0x00001F04
+       "\x1f\x01\x03\x01\x00\x00\x1f\x05" + // 0x1F010301: 0x00001F05
+       "\x1f\x00\x03B\x00\x00\x1f\x06" + // 0x1F000342: 0x00001F06
+       "\x1f\x01\x03B\x00\x00\x1f\a" + // 0x1F010342: 0x00001F07
+       "\x03\x91\x03\x13\x00\x00\x1f\b" + // 0x03910313: 0x00001F08
+       "\x03\x91\x03\x14\x00\x00\x1f\t" + // 0x03910314: 0x00001F09
+       "\x1f\b\x03\x00\x00\x00\x1f\n" + // 0x1F080300: 0x00001F0A
+       "\x1f\t\x03\x00\x00\x00\x1f\v" + // 0x1F090300: 0x00001F0B
+       "\x1f\b\x03\x01\x00\x00\x1f\f" + // 0x1F080301: 0x00001F0C
+       "\x1f\t\x03\x01\x00\x00\x1f\r" + // 0x1F090301: 0x00001F0D
+       "\x1f\b\x03B\x00\x00\x1f\x0e" + // 0x1F080342: 0x00001F0E
+       "\x1f\t\x03B\x00\x00\x1f\x0f" + // 0x1F090342: 0x00001F0F
+       "\x03\xb5\x03\x13\x00\x00\x1f\x10" + // 0x03B50313: 0x00001F10
+       "\x03\xb5\x03\x14\x00\x00\x1f\x11" + // 0x03B50314: 0x00001F11
+       "\x1f\x10\x03\x00\x00\x00\x1f\x12" + // 0x1F100300: 0x00001F12
+       "\x1f\x11\x03\x00\x00\x00\x1f\x13" + // 0x1F110300: 0x00001F13
+       "\x1f\x10\x03\x01\x00\x00\x1f\x14" + // 0x1F100301: 0x00001F14
+       "\x1f\x11\x03\x01\x00\x00\x1f\x15" + // 0x1F110301: 0x00001F15
+       "\x03\x95\x03\x13\x00\x00\x1f\x18" + // 0x03950313: 0x00001F18
+       "\x03\x95\x03\x14\x00\x00\x1f\x19" + // 0x03950314: 0x00001F19
+       "\x1f\x18\x03\x00\x00\x00\x1f\x1a" + // 0x1F180300: 0x00001F1A
+       "\x1f\x19\x03\x00\x00\x00\x1f\x1b" + // 0x1F190300: 0x00001F1B
+       "\x1f\x18\x03\x01\x00\x00\x1f\x1c" + // 0x1F180301: 0x00001F1C
+       "\x1f\x19\x03\x01\x00\x00\x1f\x1d" + // 0x1F190301: 0x00001F1D
+       "\x03\xb7\x03\x13\x00\x00\x1f " + // 0x03B70313: 0x00001F20
+       "\x03\xb7\x03\x14\x00\x00\x1f!" + // 0x03B70314: 0x00001F21
+       "\x1f \x03\x00\x00\x00\x1f\"" + // 0x1F200300: 0x00001F22
+       "\x1f!\x03\x00\x00\x00\x1f#" + // 0x1F210300: 0x00001F23
+       "\x1f \x03\x01\x00\x00\x1f$" + // 0x1F200301: 0x00001F24
+       "\x1f!\x03\x01\x00\x00\x1f%" + // 0x1F210301: 0x00001F25
+       "\x1f \x03B\x00\x00\x1f&" + // 0x1F200342: 0x00001F26
+       "\x1f!\x03B\x00\x00\x1f'" + // 0x1F210342: 0x00001F27
+       "\x03\x97\x03\x13\x00\x00\x1f(" + // 0x03970313: 0x00001F28
+       "\x03\x97\x03\x14\x00\x00\x1f)" + // 0x03970314: 0x00001F29
+       "\x1f(\x03\x00\x00\x00\x1f*" + // 0x1F280300: 0x00001F2A
+       "\x1f)\x03\x00\x00\x00\x1f+" + // 0x1F290300: 0x00001F2B
+       "\x1f(\x03\x01\x00\x00\x1f," + // 0x1F280301: 0x00001F2C
+       "\x1f)\x03\x01\x00\x00\x1f-" + // 0x1F290301: 0x00001F2D
+       "\x1f(\x03B\x00\x00\x1f." + // 0x1F280342: 0x00001F2E
+       "\x1f)\x03B\x00\x00\x1f/" + // 0x1F290342: 0x00001F2F
+       "\x03\xb9\x03\x13\x00\x00\x1f0" + // 0x03B90313: 0x00001F30
+       "\x03\xb9\x03\x14\x00\x00\x1f1" + // 0x03B90314: 0x00001F31
+       "\x1f0\x03\x00\x00\x00\x1f2" + // 0x1F300300: 0x00001F32
+       "\x1f1\x03\x00\x00\x00\x1f3" + // 0x1F310300: 0x00001F33
+       "\x1f0\x03\x01\x00\x00\x1f4" + // 0x1F300301: 0x00001F34
+       "\x1f1\x03\x01\x00\x00\x1f5" + // 0x1F310301: 0x00001F35
+       "\x1f0\x03B\x00\x00\x1f6" + // 0x1F300342: 0x00001F36
+       "\x1f1\x03B\x00\x00\x1f7" + // 0x1F310342: 0x00001F37
+       "\x03\x99\x03\x13\x00\x00\x1f8" + // 0x03990313: 0x00001F38
+       "\x03\x99\x03\x14\x00\x00\x1f9" + // 0x03990314: 0x00001F39
+       "\x1f8\x03\x00\x00\x00\x1f:" + // 0x1F380300: 0x00001F3A
+       "\x1f9\x03\x00\x00\x00\x1f;" + // 0x1F390300: 0x00001F3B
+       "\x1f8\x03\x01\x00\x00\x1f<" + // 0x1F380301: 0x00001F3C
+       "\x1f9\x03\x01\x00\x00\x1f=" + // 0x1F390301: 0x00001F3D
+       "\x1f8\x03B\x00\x00\x1f>" + // 0x1F380342: 0x00001F3E
+       "\x1f9\x03B\x00\x00\x1f?" + // 0x1F390342: 0x00001F3F
+       "\x03\xbf\x03\x13\x00\x00\x1f@" + // 0x03BF0313: 0x00001F40
+       "\x03\xbf\x03\x14\x00\x00\x1fA" + // 0x03BF0314: 0x00001F41
+       "\x1f@\x03\x00\x00\x00\x1fB" + // 0x1F400300: 0x00001F42
+       "\x1fA\x03\x00\x00\x00\x1fC" + // 0x1F410300: 0x00001F43
+       "\x1f@\x03\x01\x00\x00\x1fD" + // 0x1F400301: 0x00001F44
+       "\x1fA\x03\x01\x00\x00\x1fE" + // 0x1F410301: 0x00001F45
+       "\x03\x9f\x03\x13\x00\x00\x1fH" + // 0x039F0313: 0x00001F48
+       "\x03\x9f\x03\x14\x00\x00\x1fI" + // 0x039F0314: 0x00001F49
+       "\x1fH\x03\x00\x00\x00\x1fJ" + // 0x1F480300: 0x00001F4A
+       "\x1fI\x03\x00\x00\x00\x1fK" + // 0x1F490300: 0x00001F4B
+       "\x1fH\x03\x01\x00\x00\x1fL" + // 0x1F480301: 0x00001F4C
+       "\x1fI\x03\x01\x00\x00\x1fM" + // 0x1F490301: 0x00001F4D
+       "\x03\xc5\x03\x13\x00\x00\x1fP" + // 0x03C50313: 0x00001F50
+       "\x03\xc5\x03\x14\x00\x00\x1fQ" + // 0x03C50314: 0x00001F51
+       "\x1fP\x03\x00\x00\x00\x1fR" + // 0x1F500300: 0x00001F52
+       "\x1fQ\x03\x00\x00\x00\x1fS" + // 0x1F510300: 0x00001F53
+       "\x1fP\x03\x01\x00\x00\x1fT" + // 0x1F500301: 0x00001F54
+       "\x1fQ\x03\x01\x00\x00\x1fU" + // 0x1F510301: 0x00001F55
+       "\x1fP\x03B\x00\x00\x1fV" + // 0x1F500342: 0x00001F56
+       "\x1fQ\x03B\x00\x00\x1fW" + // 0x1F510342: 0x00001F57
+       "\x03\xa5\x03\x14\x00\x00\x1fY" + // 0x03A50314: 0x00001F59
+       "\x1fY\x03\x00\x00\x00\x1f[" + // 0x1F590300: 0x00001F5B
+       "\x1fY\x03\x01\x00\x00\x1f]" + // 0x1F590301: 0x00001F5D
+       "\x1fY\x03B\x00\x00\x1f_" + // 0x1F590342: 0x00001F5F
+       "\x03\xc9\x03\x13\x00\x00\x1f`" + // 0x03C90313: 0x00001F60
+       "\x03\xc9\x03\x14\x00\x00\x1fa" + // 0x03C90314: 0x00001F61
+       "\x1f`\x03\x00\x00\x00\x1fb" + // 0x1F600300: 0x00001F62
+       "\x1fa\x03\x00\x00\x00\x1fc" + // 0x1F610300: 0x00001F63
+       "\x1f`\x03\x01\x00\x00\x1fd" + // 0x1F600301: 0x00001F64
+       "\x1fa\x03\x01\x00\x00\x1fe" + // 0x1F610301: 0x00001F65
+       "\x1f`\x03B\x00\x00\x1ff" + // 0x1F600342: 0x00001F66
+       "\x1fa\x03B\x00\x00\x1fg" + // 0x1F610342: 0x00001F67
+       "\x03\xa9\x03\x13\x00\x00\x1fh" + // 0x03A90313: 0x00001F68
+       "\x03\xa9\x03\x14\x00\x00\x1fi" + // 0x03A90314: 0x00001F69
+       "\x1fh\x03\x00\x00\x00\x1fj" + // 0x1F680300: 0x00001F6A
+       "\x1fi\x03\x00\x00\x00\x1fk" + // 0x1F690300: 0x00001F6B
+       "\x1fh\x03\x01\x00\x00\x1fl" + // 0x1F680301: 0x00001F6C
+       "\x1fi\x03\x01\x00\x00\x1fm" + // 0x1F690301: 0x00001F6D
+       "\x1fh\x03B\x00\x00\x1fn" + // 0x1F680342: 0x00001F6E
+       "\x1fi\x03B\x00\x00\x1fo" + // 0x1F690342: 0x00001F6F
+       "\x03\xb1\x03\x00\x00\x00\x1fp" + // 0x03B10300: 0x00001F70
+       "\x03\xb5\x03\x00\x00\x00\x1fr" + // 0x03B50300: 0x00001F72
+       "\x03\xb7\x03\x00\x00\x00\x1ft" + // 0x03B70300: 0x00001F74
+       "\x03\xb9\x03\x00\x00\x00\x1fv" + // 0x03B90300: 0x00001F76
+       "\x03\xbf\x03\x00\x00\x00\x1fx" + // 0x03BF0300: 0x00001F78
+       "\x03\xc5\x03\x00\x00\x00\x1fz" + // 0x03C50300: 0x00001F7A
+       "\x03\xc9\x03\x00\x00\x00\x1f|" + // 0x03C90300: 0x00001F7C
+       "\x1f\x00\x03E\x00\x00\x1f\x80" + // 0x1F000345: 0x00001F80
+       "\x1f\x01\x03E\x00\x00\x1f\x81" + // 0x1F010345: 0x00001F81
+       "\x1f\x02\x03E\x00\x00\x1f\x82" + // 0x1F020345: 0x00001F82
+       "\x1f\x03\x03E\x00\x00\x1f\x83" + // 0x1F030345: 0x00001F83
+       "\x1f\x04\x03E\x00\x00\x1f\x84" + // 0x1F040345: 0x00001F84
+       "\x1f\x05\x03E\x00\x00\x1f\x85" + // 0x1F050345: 0x00001F85
+       "\x1f\x06\x03E\x00\x00\x1f\x86" + // 0x1F060345: 0x00001F86
+       "\x1f\a\x03E\x00\x00\x1f\x87" + // 0x1F070345: 0x00001F87
+       "\x1f\b\x03E\x00\x00\x1f\x88" + // 0x1F080345: 0x00001F88
+       "\x1f\t\x03E\x00\x00\x1f\x89" + // 0x1F090345: 0x00001F89
+       "\x1f\n\x03E\x00\x00\x1f\x8a" + // 0x1F0A0345: 0x00001F8A
+       "\x1f\v\x03E\x00\x00\x1f\x8b" + // 0x1F0B0345: 0x00001F8B
+       "\x1f\f\x03E\x00\x00\x1f\x8c" + // 0x1F0C0345: 0x00001F8C
+       "\x1f\r\x03E\x00\x00\x1f\x8d" + // 0x1F0D0345: 0x00001F8D
+       "\x1f\x0e\x03E\x00\x00\x1f\x8e" + // 0x1F0E0345: 0x00001F8E
+       "\x1f\x0f\x03E\x00\x00\x1f\x8f" + // 0x1F0F0345: 0x00001F8F
+       "\x1f \x03E\x00\x00\x1f\x90" + // 0x1F200345: 0x00001F90
+       "\x1f!\x03E\x00\x00\x1f\x91" + // 0x1F210345: 0x00001F91
+       "\x1f\"\x03E\x00\x00\x1f\x92" + // 0x1F220345: 0x00001F92
+       "\x1f#\x03E\x00\x00\x1f\x93" + // 0x1F230345: 0x00001F93
+       "\x1f$\x03E\x00\x00\x1f\x94" + // 0x1F240345: 0x00001F94
+       "\x1f%\x03E\x00\x00\x1f\x95" + // 0x1F250345: 0x00001F95
+       "\x1f&\x03E\x00\x00\x1f\x96" + // 0x1F260345: 0x00001F96
+       "\x1f'\x03E\x00\x00\x1f\x97" + // 0x1F270345: 0x00001F97
+       "\x1f(\x03E\x00\x00\x1f\x98" + // 0x1F280345: 0x00001F98
+       "\x1f)\x03E\x00\x00\x1f\x99" + // 0x1F290345: 0x00001F99
+       "\x1f*\x03E\x00\x00\x1f\x9a" + // 0x1F2A0345: 0x00001F9A
+       "\x1f+\x03E\x00\x00\x1f\x9b" + // 0x1F2B0345: 0x00001F9B
+       "\x1f,\x03E\x00\x00\x1f\x9c" + // 0x1F2C0345: 0x00001F9C
+       "\x1f-\x03E\x00\x00\x1f\x9d" + // 0x1F2D0345: 0x00001F9D
+       "\x1f.\x03E\x00\x00\x1f\x9e" + // 0x1F2E0345: 0x00001F9E
+       "\x1f/\x03E\x00\x00\x1f\x9f" + // 0x1F2F0345: 0x00001F9F
+       "\x1f`\x03E\x00\x00\x1f\xa0" + // 0x1F600345: 0x00001FA0
+       "\x1fa\x03E\x00\x00\x1f\xa1" + // 0x1F610345: 0x00001FA1
+       "\x1fb\x03E\x00\x00\x1f\xa2" + // 0x1F620345: 0x00001FA2
+       "\x1fc\x03E\x00\x00\x1f\xa3" + // 0x1F630345: 0x00001FA3
+       "\x1fd\x03E\x00\x00\x1f\xa4" + // 0x1F640345: 0x00001FA4
+       "\x1fe\x03E\x00\x00\x1f\xa5" + // 0x1F650345: 0x00001FA5
+       "\x1ff\x03E\x00\x00\x1f\xa6" + // 0x1F660345: 0x00001FA6
+       "\x1fg\x03E\x00\x00\x1f\xa7" + // 0x1F670345: 0x00001FA7
+       "\x1fh\x03E\x00\x00\x1f\xa8" + // 0x1F680345: 0x00001FA8
+       "\x1fi\x03E\x00\x00\x1f\xa9" + // 0x1F690345: 0x00001FA9
+       "\x1fj\x03E\x00\x00\x1f\xaa" + // 0x1F6A0345: 0x00001FAA
+       "\x1fk\x03E\x00\x00\x1f\xab" + // 0x1F6B0345: 0x00001FAB
+       "\x1fl\x03E\x00\x00\x1f\xac" + // 0x1F6C0345: 0x00001FAC
+       "\x1fm\x03E\x00\x00\x1f\xad" + // 0x1F6D0345: 0x00001FAD
+       "\x1fn\x03E\x00\x00\x1f\xae" + // 0x1F6E0345: 0x00001FAE
+       "\x1fo\x03E\x00\x00\x1f\xaf" + // 0x1F6F0345: 0x00001FAF
+       "\x03\xb1\x03\x06\x00\x00\x1f\xb0" + // 0x03B10306: 0x00001FB0
+       "\x03\xb1\x03\x04\x00\x00\x1f\xb1" + // 0x03B10304: 0x00001FB1
+       "\x1fp\x03E\x00\x00\x1f\xb2" + // 0x1F700345: 0x00001FB2
+       "\x03\xb1\x03E\x00\x00\x1f\xb3" + // 0x03B10345: 0x00001FB3
+       "\x03\xac\x03E\x00\x00\x1f\xb4" + // 0x03AC0345: 0x00001FB4
+       "\x03\xb1\x03B\x00\x00\x1f\xb6" + // 0x03B10342: 0x00001FB6
+       "\x1f\xb6\x03E\x00\x00\x1f\xb7" + // 0x1FB60345: 0x00001FB7
+       "\x03\x91\x03\x06\x00\x00\x1f\xb8" + // 0x03910306: 0x00001FB8
+       "\x03\x91\x03\x04\x00\x00\x1f\xb9" + // 0x03910304: 0x00001FB9
+       "\x03\x91\x03\x00\x00\x00\x1f\xba" + // 0x03910300: 0x00001FBA
+       "\x03\x91\x03E\x00\x00\x1f\xbc" + // 0x03910345: 0x00001FBC
+       "\x00\xa8\x03B\x00\x00\x1f\xc1" + // 0x00A80342: 0x00001FC1
+       "\x1ft\x03E\x00\x00\x1f\xc2" + // 0x1F740345: 0x00001FC2
+       "\x03\xb7\x03E\x00\x00\x1f\xc3" + // 0x03B70345: 0x00001FC3
+       "\x03\xae\x03E\x00\x00\x1f\xc4" + // 0x03AE0345: 0x00001FC4
+       "\x03\xb7\x03B\x00\x00\x1f\xc6" + // 0x03B70342: 0x00001FC6
+       "\x1f\xc6\x03E\x00\x00\x1f\xc7" + // 0x1FC60345: 0x00001FC7
+       "\x03\x95\x03\x00\x00\x00\x1f\xc8" + // 0x03950300: 0x00001FC8
+       "\x03\x97\x03\x00\x00\x00\x1f\xca" + // 0x03970300: 0x00001FCA
+       "\x03\x97\x03E\x00\x00\x1f\xcc" + // 0x03970345: 0x00001FCC
+       "\x1f\xbf\x03\x00\x00\x00\x1f\xcd" + // 0x1FBF0300: 0x00001FCD
+       "\x1f\xbf\x03\x01\x00\x00\x1f\xce" + // 0x1FBF0301: 0x00001FCE
+       "\x1f\xbf\x03B\x00\x00\x1f\xcf" + // 0x1FBF0342: 0x00001FCF
+       "\x03\xb9\x03\x06\x00\x00\x1f\xd0" + // 0x03B90306: 0x00001FD0
+       "\x03\xb9\x03\x04\x00\x00\x1f\xd1" + // 0x03B90304: 0x00001FD1
+       "\x03\xca\x03\x00\x00\x00\x1f\xd2" + // 0x03CA0300: 0x00001FD2
+       "\x03\xb9\x03B\x00\x00\x1f\xd6" + // 0x03B90342: 0x00001FD6
+       "\x03\xca\x03B\x00\x00\x1f\xd7" + // 0x03CA0342: 0x00001FD7
+       "\x03\x99\x03\x06\x00\x00\x1f\xd8" + // 0x03990306: 0x00001FD8
+       "\x03\x99\x03\x04\x00\x00\x1f\xd9" + // 0x03990304: 0x00001FD9
+       "\x03\x99\x03\x00\x00\x00\x1f\xda" + // 0x03990300: 0x00001FDA
+       "\x1f\xfe\x03\x00\x00\x00\x1f\xdd" + // 0x1FFE0300: 0x00001FDD
+       "\x1f\xfe\x03\x01\x00\x00\x1f\xde" + // 0x1FFE0301: 0x00001FDE
+       "\x1f\xfe\x03B\x00\x00\x1f\xdf" + // 0x1FFE0342: 0x00001FDF
+       "\x03\xc5\x03\x06\x00\x00\x1f\xe0" + // 0x03C50306: 0x00001FE0
+       "\x03\xc5\x03\x04\x00\x00\x1f\xe1" + // 0x03C50304: 0x00001FE1
+       "\x03\xcb\x03\x00\x00\x00\x1f\xe2" + // 0x03CB0300: 0x00001FE2
+       "\x03\xc1\x03\x13\x00\x00\x1f\xe4" + // 0x03C10313: 0x00001FE4
+       "\x03\xc1\x03\x14\x00\x00\x1f\xe5" + // 0x03C10314: 0x00001FE5
+       "\x03\xc5\x03B\x00\x00\x1f\xe6" + // 0x03C50342: 0x00001FE6
+       "\x03\xcb\x03B\x00\x00\x1f\xe7" + // 0x03CB0342: 0x00001FE7
+       "\x03\xa5\x03\x06\x00\x00\x1f\xe8" + // 0x03A50306: 0x00001FE8
+       "\x03\xa5\x03\x04\x00\x00\x1f\xe9" + // 0x03A50304: 0x00001FE9
+       "\x03\xa5\x03\x00\x00\x00\x1f\xea" + // 0x03A50300: 0x00001FEA
+       "\x03\xa1\x03\x14\x00\x00\x1f\xec" + // 0x03A10314: 0x00001FEC
+       "\x00\xa8\x03\x00\x00\x00\x1f\xed" + // 0x00A80300: 0x00001FED
+       "\x1f|\x03E\x00\x00\x1f\xf2" + // 0x1F7C0345: 0x00001FF2
+       "\x03\xc9\x03E\x00\x00\x1f\xf3" + // 0x03C90345: 0x00001FF3
+       "\x03\xce\x03E\x00\x00\x1f\xf4" + // 0x03CE0345: 0x00001FF4
+       "\x03\xc9\x03B\x00\x00\x1f\xf6" + // 0x03C90342: 0x00001FF6
+       "\x1f\xf6\x03E\x00\x00\x1f\xf7" + // 0x1FF60345: 0x00001FF7
+       "\x03\x9f\x03\x00\x00\x00\x1f\xf8" + // 0x039F0300: 0x00001FF8
+       "\x03\xa9\x03\x00\x00\x00\x1f\xfa" + // 0x03A90300: 0x00001FFA
+       "\x03\xa9\x03E\x00\x00\x1f\xfc" + // 0x03A90345: 0x00001FFC
+       "!\x90\x038\x00\x00!\x9a" + // 0x21900338: 0x0000219A
+       "!\x92\x038\x00\x00!\x9b" + // 0x21920338: 0x0000219B
+       "!\x94\x038\x00\x00!\xae" + // 0x21940338: 0x000021AE
+       "!\xd0\x038\x00\x00!\xcd" + // 0x21D00338: 0x000021CD
+       "!\xd4\x038\x00\x00!\xce" + // 0x21D40338: 0x000021CE
+       "!\xd2\x038\x00\x00!\xcf" + // 0x21D20338: 0x000021CF
+       "\"\x03\x038\x00\x00\"\x04" + // 0x22030338: 0x00002204
+       "\"\b\x038\x00\x00\"\t" + // 0x22080338: 0x00002209
+       "\"\v\x038\x00\x00\"\f" + // 0x220B0338: 0x0000220C
+       "\"#\x038\x00\x00\"$" + // 0x22230338: 0x00002224
+       "\"%\x038\x00\x00\"&" + // 0x22250338: 0x00002226
+       "\"<\x038\x00\x00\"A" + // 0x223C0338: 0x00002241
+       "\"C\x038\x00\x00\"D" + // 0x22430338: 0x00002244
+       "\"E\x038\x00\x00\"G" + // 0x22450338: 0x00002247
+       "\"H\x038\x00\x00\"I" + // 0x22480338: 0x00002249
+       "\x00=\x038\x00\x00\"`" + // 0x003D0338: 0x00002260
+       "\"a\x038\x00\x00\"b" + // 0x22610338: 0x00002262
+       "\"M\x038\x00\x00\"m" + // 0x224D0338: 0x0000226D
+       "\x00<\x038\x00\x00\"n" + // 0x003C0338: 0x0000226E
+       "\x00>\x038\x00\x00\"o" + // 0x003E0338: 0x0000226F
+       "\"d\x038\x00\x00\"p" + // 0x22640338: 0x00002270
+       "\"e\x038\x00\x00\"q" + // 0x22650338: 0x00002271
+       "\"r\x038\x00\x00\"t" + // 0x22720338: 0x00002274
+       "\"s\x038\x00\x00\"u" + // 0x22730338: 0x00002275
+       "\"v\x038\x00\x00\"x" + // 0x22760338: 0x00002278
+       "\"w\x038\x00\x00\"y" + // 0x22770338: 0x00002279
+       "\"z\x038\x00\x00\"\x80" + // 0x227A0338: 0x00002280
+       "\"{\x038\x00\x00\"\x81" + // 0x227B0338: 0x00002281
+       "\"\x82\x038\x00\x00\"\x84" + // 0x22820338: 0x00002284
+       "\"\x83\x038\x00\x00\"\x85" + // 0x22830338: 0x00002285
+       "\"\x86\x038\x00\x00\"\x88" + // 0x22860338: 0x00002288
+       "\"\x87\x038\x00\x00\"\x89" + // 0x22870338: 0x00002289
+       "\"\xa2\x038\x00\x00\"\xac" + // 0x22A20338: 0x000022AC
+       "\"\xa8\x038\x00\x00\"\xad" + // 0x22A80338: 0x000022AD
+       "\"\xa9\x038\x00\x00\"\xae" + // 0x22A90338: 0x000022AE
+       "\"\xab\x038\x00\x00\"\xaf" + // 0x22AB0338: 0x000022AF
+       "\"|\x038\x00\x00\"\xe0" + // 0x227C0338: 0x000022E0
+       "\"}\x038\x00\x00\"\xe1" + // 0x227D0338: 0x000022E1
+       "\"\x91\x038\x00\x00\"\xe2" + // 0x22910338: 0x000022E2
+       "\"\x92\x038\x00\x00\"\xe3" + // 0x22920338: 0x000022E3
+       "\"\xb2\x038\x00\x00\"\xea" + // 0x22B20338: 0x000022EA
+       "\"\xb3\x038\x00\x00\"\xeb" + // 0x22B30338: 0x000022EB
+       "\"\xb4\x038\x00\x00\"\xec" + // 0x22B40338: 0x000022EC
+       "\"\xb5\x038\x00\x00\"\xed" + // 0x22B50338: 0x000022ED
+       "0K0\x99\x00\x000L" + // 0x304B3099: 0x0000304C
+       "0M0\x99\x00\x000N" + // 0x304D3099: 0x0000304E
+       "0O0\x99\x00\x000P" + // 0x304F3099: 0x00003050
+       "0Q0\x99\x00\x000R" + // 0x30513099: 0x00003052
+       "0S0\x99\x00\x000T" + // 0x30533099: 0x00003054
+       "0U0\x99\x00\x000V" + // 0x30553099: 0x00003056
+       "0W0\x99\x00\x000X" + // 0x30573099: 0x00003058
+       "0Y0\x99\x00\x000Z" + // 0x30593099: 0x0000305A
+       "0[0\x99\x00\x000\\" + // 0x305B3099: 0x0000305C
+       "0]0\x99\x00\x000^" + // 0x305D3099: 0x0000305E
+       "0_0\x99\x00\x000`" + // 0x305F3099: 0x00003060
+       "0a0\x99\x00\x000b" + // 0x30613099: 0x00003062
+       "0d0\x99\x00\x000e" + // 0x30643099: 0x00003065
+       "0f0\x99\x00\x000g" + // 0x30663099: 0x00003067
+       "0h0\x99\x00\x000i" + // 0x30683099: 0x00003069
+       "0o0\x99\x00\x000p" + // 0x306F3099: 0x00003070
+       "0o0\x9a\x00\x000q" + // 0x306F309A: 0x00003071
+       "0r0\x99\x00\x000s" + // 0x30723099: 0x00003073
+       "0r0\x9a\x00\x000t" + // 0x3072309A: 0x00003074
+       "0u0\x99\x00\x000v" + // 0x30753099: 0x00003076
+       "0u0\x9a\x00\x000w" + // 0x3075309A: 0x00003077
+       "0x0\x99\x00\x000y" + // 0x30783099: 0x00003079
+       "0x0\x9a\x00\x000z" + // 0x3078309A: 0x0000307A
+       "0{0\x99\x00\x000|" + // 0x307B3099: 0x0000307C
+       "0{0\x9a\x00\x000}" + // 0x307B309A: 0x0000307D
+       "0F0\x99\x00\x000\x94" + // 0x30463099: 0x00003094
+       "0\x9d0\x99\x00\x000\x9e" + // 0x309D3099: 0x0000309E
+       "0\xab0\x99\x00\x000\xac" + // 0x30AB3099: 0x000030AC
+       "0\xad0\x99\x00\x000\xae" + // 0x30AD3099: 0x000030AE
+       "0\xaf0\x99\x00\x000\xb0" + // 0x30AF3099: 0x000030B0
+       "0\xb10\x99\x00\x000\xb2" + // 0x30B13099: 0x000030B2
+       "0\xb30\x99\x00\x000\xb4" + // 0x30B33099: 0x000030B4
+       "0\xb50\x99\x00\x000\xb6" + // 0x30B53099: 0x000030B6
+       "0\xb70\x99\x00\x000\xb8" + // 0x30B73099: 0x000030B8
+       "0\xb90\x99\x00\x000\xba" + // 0x30B93099: 0x000030BA
+       "0\xbb0\x99\x00\x000\xbc" + // 0x30BB3099: 0x000030BC
+       "0\xbd0\x99\x00\x000\xbe" + // 0x30BD3099: 0x000030BE
+       "0\xbf0\x99\x00\x000\xc0" + // 0x30BF3099: 0x000030C0
+       "0\xc10\x99\x00\x000\xc2" + // 0x30C13099: 0x000030C2
+       "0\xc40\x99\x00\x000\xc5" + // 0x30C43099: 0x000030C5
+       "0\xc60\x99\x00\x000\xc7" + // 0x30C63099: 0x000030C7
+       "0\xc80\x99\x00\x000\xc9" + // 0x30C83099: 0x000030C9
+       "0\xcf0\x99\x00\x000\xd0" + // 0x30CF3099: 0x000030D0
+       "0\xcf0\x9a\x00\x000\xd1" + // 0x30CF309A: 0x000030D1
+       "0\xd20\x99\x00\x000\xd3" + // 0x30D23099: 0x000030D3
+       "0\xd20\x9a\x00\x000\xd4" + // 0x30D2309A: 0x000030D4
+       "0\xd50\x99\x00\x000\xd6" + // 0x30D53099: 0x000030D6
+       "0\xd50\x9a\x00\x000\xd7" + // 0x30D5309A: 0x000030D7
+       "0\xd80\x99\x00\x000\xd9" + // 0x30D83099: 0x000030D9
+       "0\xd80\x9a\x00\x000\xda" + // 0x30D8309A: 0x000030DA
+       "0\xdb0\x99\x00\x000\xdc" + // 0x30DB3099: 0x000030DC
+       "0\xdb0\x9a\x00\x000\xdd" + // 0x30DB309A: 0x000030DD
+       "0\xa60\x99\x00\x000\xf4" + // 0x30A63099: 0x000030F4
+       "0\xef0\x99\x00\x000\xf7" + // 0x30EF3099: 0x000030F7
+       "0\xf00\x99\x00\x000\xf8" + // 0x30F03099: 0x000030F8
+       "0\xf10\x99\x00\x000\xf9" + // 0x30F13099: 0x000030F9
+       "0\xf20\x99\x00\x000\xfa" + // 0x30F23099: 0x000030FA
+       "0\xfd0\x99\x00\x000\xfe" + // 0x30FD3099: 0x000030FE
+       "\x10\x99\x10\xba\x00\x01\x10\x9a" + // 0x109910BA: 0x0001109A
+       "\x10\x9b\x10\xba\x00\x01\x10\x9c" + // 0x109B10BA: 0x0001109C
+       "\x10\xa5\x10\xba\x00\x01\x10\xab" + // 0x10A510BA: 0x000110AB
+       "\x111\x11'\x00\x01\x11." + // 0x11311127: 0x0001112E
+       "\x112\x11'\x00\x01\x11/" + // 0x11321127: 0x0001112F
+       "\x13G\x13>\x00\x01\x13K" + // 0x1347133E: 0x0001134B
+       "\x13G\x13W\x00\x01\x13L" + // 0x13471357: 0x0001134C
+       "\x14\xb9\x14\xba\x00\x01\x14\xbb" + // 0x14B914BA: 0x000114BB
+       "\x14\xb9\x14\xb0\x00\x01\x14\xbc" + // 0x14B914B0: 0x000114BC
+       "\x14\xb9\x14\xbd\x00\x01\x14\xbe" + // 0x14B914BD: 0x000114BE
+       "\x15\xb8\x15\xaf\x00\x01\x15\xba" + // 0x15B815AF: 0x000115BA
+       "\x15\xb9\x15\xaf\x00\x01\x15\xbb" + // 0x15B915AF: 0x000115BB
+       ""
+       // Total size of tables: 53KB (54226 bytes)
diff --git a/vendor/golang.org/x/text/unicode/norm/tables11.0.0.go b/vendor/golang.org/x/text/unicode/norm/tables11.0.0.go
new file mode 100644 (file)
index 0000000..7297cce
--- /dev/null
@@ -0,0 +1,7693 @@
+// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT.
+
+// +build go1.13
+
+package norm
+
+import "sync"
+
+const (
+       // Version is the Unicode edition from which the tables are derived.
+       Version = "11.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       = 0x49AE
+       firstCCCZeroExcept    = 0x4A78
+       firstStarterWithNLead = 0x4A9F
+       lastDecomp            = 0x4AA1
+       maxDecomp             = 0x8000
+)
+
+// decomps: 19105 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, 0x44, 0x20, 0xE3, 0x82,
+       0x99, 0x0D, 0x44, 0x20, 0xE3, 0x82, 0x9A, 0x0D,
+       0x44, 0xC2, 0xA8, 0xCC, 0x81, 0xCA, 0x44, 0xCE,
+       0x91, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0x95, 0xCC,
+       0x81, 0xC9, 0x44, 0xCE, 0x97, 0xCC, 0x81, 0xC9,
+       // Bytes 4300 - 433f
+       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, 0x44, 0xCE, 0xB7, 0xCC, 0x81, 0xC9,
+       0x44, 0xCE, 0xB9, 0xCC, 0x81, 0xC9, 0x44, 0xCE,
+       0xBF, 0xCC, 0x81, 0xC9, 0x44, 0xCF, 0x85, 0xCC,
+       // Bytes 4340 - 437f
+       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, 0xBC, 0x41, 0x44, 0xD7, 0x93, 0xD6,
+       0xBC, 0x41, 0x44, 0xD7, 0x94, 0xD6, 0xBC, 0x41,
+       0x44, 0xD7, 0x95, 0xD6, 0xB9, 0x39, 0x44, 0xD7,
+       // Bytes 4380 - 43bf
+       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, 0x9B, 0xD6, 0xBF, 0x49, 0x44, 0xD7,
+       0x9C, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x9E, 0xD6,
+       0xBC, 0x41, 0x44, 0xD7, 0xA0, 0xD6, 0xBC, 0x41,
+       // Bytes 43c0 - 43ff
+       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, 0x44, 0xD7, 0xA9, 0xD6, 0xBC, 0x41,
+       0x44, 0xD7, 0xA9, 0xD7, 0x81, 0x4D, 0x44, 0xD7,
+       0xA9, 0xD7, 0x82, 0x51, 0x44, 0xD7, 0xAA, 0xD6,
+       // Bytes 4400 - 443f
+       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, 0xB0, 0x79, 0x44, 0xD9, 0x80, 0xD9,
+       0x8B, 0x59, 0x44, 0xD9, 0x80, 0xD9, 0x8E, 0x65,
+       0x44, 0xD9, 0x80, 0xD9, 0x8F, 0x69, 0x44, 0xD9,
+       // Bytes 4440 - 447f
+       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, 0x92, 0xD9, 0x94, 0xC9, 0x44, 0xDB,
+       0x95, 0xD9, 0x94, 0xC9, 0x45, 0x20, 0xCC, 0x88,
+       0xCC, 0x80, 0xCA, 0x45, 0x20, 0xCC, 0x88, 0xCC,
+       // Bytes 4480 - 44bf
+       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, 0x81, 0xCA, 0x45, 0x20, 0xCC, 0x94,
+       0xCD, 0x82, 0xCA, 0x45, 0x20, 0xD9, 0x8C, 0xD9,
+       0x91, 0x72, 0x45, 0x20, 0xD9, 0x8D, 0xD9, 0x91,
+       // Bytes 44c0 - 44ff
+       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, 0x81, 0xCA, 0x46, 0xCF, 0x85, 0xCC,
+       0x88, 0xCC, 0x81, 0xCA, 0x46, 0xD7, 0xA9, 0xD6,
+       0xBC, 0xD7, 0x81, 0x4E, 0x46, 0xD7, 0xA9, 0xD6,
+       // Bytes 4500 - 453f
+       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, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x97,
+       0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x9C,
+       0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xA1,
+       // Bytes 4540 - 457f
+       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, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xAF,
+       0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x96,
+       0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x97,
+       // Bytes 4580 - 45bf
+       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, 0xBC, 0x09, 0x46, 0xE0, 0xAC, 0xA2,
+       0xE0, 0xAC, 0xBC, 0x09, 0x46, 0xE0, 0xBE, 0xB2,
+       0xE0, 0xBE, 0x80, 0x9D, 0x46, 0xE0, 0xBE, 0xB3,
+       // Bytes 45c0 - 45ff
+       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, 0x48, 0xF0, 0x9D, 0x86, 0xBA, 0xF0,
+       0x9D, 0x85, 0xA5, 0xAD, 0x49, 0xE0, 0xBE, 0xB2,
+       0xE0, 0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0x9E, 0x49,
+       // Bytes 4600 - 463f
+       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, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0,
+       0x9D, 0x85, 0xB0, 0xAE, 0x4C, 0xF0, 0x9D, 0x85,
+       0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85,
+       // Bytes 4640 - 467f
+       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, 0xAF, 0xAE, 0x4C, 0xF0, 0x9D, 0x86,
+       0xBA, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85,
+       0xAE, 0xAE, 0x4C, 0xF0, 0x9D, 0x86, 0xBA, 0xF0,
+       // Bytes 4680 - 46bf
+       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, 0xA5, 0x83, 0x45, 0xCC, 0x82, 0xC9,
+       0x83, 0x45, 0xCC, 0x84, 0xC9, 0x83, 0x45, 0xCC,
+       0xA3, 0xB5, 0x83, 0x45, 0xCC, 0xA7, 0xA5, 0x83,
+       // Bytes 46c0 - 46ff
+       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, 0xA3, 0xB5, 0x83, 0x4F, 0xCC, 0xA8,
+       0xA5, 0x83, 0x52, 0xCC, 0xA3, 0xB5, 0x83, 0x53,
+       0xCC, 0x81, 0xC9, 0x83, 0x53, 0xCC, 0x8C, 0xC9,
+       // Bytes 4700 - 473f
+       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, 0xCC, 0x88, 0xC9, 0x83, 0x61, 0xCC,
+       0x8A, 0xC9, 0x83, 0x61, 0xCC, 0xA3, 0xB5, 0x83,
+       0x63, 0xCC, 0xA7, 0xA5, 0x83, 0x65, 0xCC, 0x82,
+       // Bytes 4740 - 477f
+       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, 0x6F, 0xCC, 0x87, 0xC9, 0x83, 0x6F,
+       0xCC, 0x88, 0xC9, 0x83, 0x6F, 0xCC, 0x9B, 0xAD,
+       0x83, 0x6F, 0xCC, 0xA3, 0xB5, 0x83, 0x6F, 0xCC,
+       // Bytes 4780 - 47bf
+       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, 0x84, 0xCE, 0x91, 0xCC, 0x93, 0xC9,
+       0x84, 0xCE, 0x91, 0xCC, 0x94, 0xC9, 0x84, 0xCE,
+       0x95, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0x95, 0xCC,
+       // Bytes 47c0 - 47ff
+       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, 0x94, 0xC9, 0x84, 0xCE, 0xA9, 0xCC,
+       0x93, 0xC9, 0x84, 0xCE, 0xA9, 0xCC, 0x94, 0xC9,
+       0x84, 0xCE, 0xB1, 0xCC, 0x80, 0xC9, 0x84, 0xCE,
+       // Bytes 4800 - 483f
+       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, 0xB7, 0xCC, 0x81, 0xC9, 0x84, 0xCE,
+       0xB7, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB7, 0xCC,
+       0x94, 0xC9, 0x84, 0xCE, 0xB7, 0xCD, 0x82, 0xC9,
+       // Bytes 4840 - 487f
+       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, 0x84, 0xCF, 0x85, 0xCC, 0x94, 0xC9,
+       0x84, 0xCF, 0x89, 0xCC, 0x80, 0xC9, 0x84, 0xCF,
+       0x89, 0xCC, 0x81, 0xC9, 0x84, 0xCF, 0x89, 0xCC,
+       // Bytes 4880 - 48bf
+       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, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE,
+       0x91, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE,
+       0x91, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE,
+       // Bytes 48c0 - 48ff
+       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, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE,
+       0xA9, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE,
+       0xA9, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE,
+       // Bytes 4900 - 493f
+       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, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE,
+       0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE,
+       0xB1, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE,
+       // Bytes 4940 - 497f
+       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, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE,
+       0xB7, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE,
+       0xB7, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCF,
+       // Bytes 4980 - 49bf
+       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, 0x94, 0xCD, 0x82, 0xCA, 0x42, 0xCC,
+       0x80, 0xC9, 0x32, 0x42, 0xCC, 0x81, 0xC9, 0x32,
+       0x42, 0xCC, 0x93, 0xC9, 0x32, 0x43, 0xE1, 0x85,
+       // Bytes 49c0 - 49ff
+       0xA1, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA2, 0x01,
+       0x00, 0x43, 0xE1, 0x85, 0xA3, 0x01, 0x00, 0x43,
+       0xE1, 0x85, 0xA4, 0x01, 0x00, 0x43, 0xE1, 0x85,
+       0xA5, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA6, 0x01,
+       0x00, 0x43, 0xE1, 0x85, 0xA7, 0x01, 0x00, 0x43,
+       0xE1, 0x85, 0xA8, 0x01, 0x00, 0x43, 0xE1, 0x85,
+       0xA9, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAA, 0x01,
+       0x00, 0x43, 0xE1, 0x85, 0xAB, 0x01, 0x00, 0x43,
+       // Bytes 4a00 - 4a3f
+       0xE1, 0x85, 0xAC, 0x01, 0x00, 0x43, 0xE1, 0x85,
+       0xAD, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAE, 0x01,
+       0x00, 0x43, 0xE1, 0x85, 0xAF, 0x01, 0x00, 0x43,
+       0xE1, 0x85, 0xB0, 0x01, 0x00, 0x43, 0xE1, 0x85,
+       0xB1, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xB2, 0x01,
+       0x00, 0x43, 0xE1, 0x85, 0xB3, 0x01, 0x00, 0x43,
+       0xE1, 0x85, 0xB4, 0x01, 0x00, 0x43, 0xE1, 0x85,
+       0xB5, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xAA, 0x01,
+       // Bytes 4a40 - 4a7f
+       0x00, 0x43, 0xE1, 0x86, 0xAC, 0x01, 0x00, 0x43,
+       0xE1, 0x86, 0xAD, 0x01, 0x00, 0x43, 0xE1, 0x86,
+       0xB0, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB1, 0x01,
+       0x00, 0x43, 0xE1, 0x86, 0xB2, 0x01, 0x00, 0x43,
+       0xE1, 0x86, 0xB3, 0x01, 0x00, 0x43, 0xE1, 0x86,
+       0xB4, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB5, 0x01,
+       0x00, 0x44, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x32,
+       0x43, 0xE3, 0x82, 0x99, 0x0D, 0x03, 0x43, 0xE3,
+       // Bytes 4a80 - 4abf
+       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, 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: 10586 bytes (10.34 KiB). Checksum: dd926e82067bee11.
+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 < 46:
+               return uint16(nfcValues[n<<6+uint32(b)])
+       default:
+               n -= 46
+               return uint16(nfcSparse.lookup(n, b))
+       }
+}
+
+// nfcValues: 48 blocks, 3072 entries, 6144 bytes
+// The third block is the zero block.
+var nfcValues = [3072]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: 0x4688, 0xc3: 0x2f79, 0xc4: 0x4697, 0xc5: 0x469c,
+       0xc6: 0xa000, 0xc7: 0x46a6, 0xc8: 0x2fe2, 0xc9: 0x2fe7, 0xca: 0x46ab, 0xcb: 0x2ffb,
+       0xcc: 0x306e, 0xcd: 0x3073, 0xce: 0x3078, 0xcf: 0x46bf, 0xd1: 0x3104,
+       0xd2: 0x3127, 0xd3: 0x312c, 0xd4: 0x46c9, 0xd5: 0x46ce, 0xd6: 0x46dd,
+       0xd8: 0xa000, 0xd9: 0x31b3, 0xda: 0x31b8, 0xdb: 0x31bd, 0xdc: 0x470f, 0xdd: 0x3235,
+       0xe0: 0x327b, 0xe1: 0x3280, 0xe2: 0x4719, 0xe3: 0x3285,
+       0xe4: 0x4728, 0xe5: 0x472d, 0xe6: 0xa000, 0xe7: 0x4737, 0xe8: 0x32ee, 0xe9: 0x32f3,
+       0xea: 0x473c, 0xeb: 0x3307, 0xec: 0x337f, 0xed: 0x3384, 0xee: 0x3389, 0xef: 0x4750,
+       0xf1: 0x3415, 0xf2: 0x3438, 0xf3: 0x343d, 0xf4: 0x475a, 0xf5: 0x475f,
+       0xf6: 0x476e, 0xf8: 0xa000, 0xf9: 0x34c9, 0xfa: 0x34ce, 0xfb: 0x34d3,
+       0xfc: 0x47a0, 0xfd: 0x3550, 0xff: 0x3569,
+       // Block 0x4, offset 0x100
+       0x100: 0x2f7e, 0x101: 0x328a, 0x102: 0x468d, 0x103: 0x471e, 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: 0x46b0, 0x113: 0x4741, 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: 0x46d3, 0x14d: 0x4764, 0x14e: 0x3131, 0x14f: 0x3442, 0x150: 0x313b, 0x151: 0x344c,
+       0x154: 0x3159, 0x155: 0x346a, 0x156: 0x3172, 0x157: 0x3483,
+       0x158: 0x3163, 0x159: 0x3474, 0x15a: 0x46f6, 0x15b: 0x4787, 0x15c: 0x317c, 0x15d: 0x348d,
+       0x15e: 0x318b, 0x15f: 0x349c, 0x160: 0x46fb, 0x161: 0x478c, 0x162: 0x31a4, 0x163: 0x34ba,
+       0x164: 0x3195, 0x165: 0x34ab, 0x168: 0x4705, 0x169: 0x4796,
+       0x16a: 0x470a, 0x16b: 0x479b, 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: 0x46ec, 0x1ab: 0x477d, 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: 0x4692, 0x1e7: 0x4723, 0x1e8: 0x46ba, 0x1e9: 0x474b,
+       0x1ea: 0x395f, 0x1eb: 0x3aee, 0x1ec: 0x393c, 0x1ed: 0x3acb, 0x1ee: 0x46d8, 0x1ef: 0x4769,
+       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: 0x49ae, 0x241: 0x49b3, 0x242: 0x9932, 0x243: 0x49b8, 0x244: 0x4a71, 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: 0x47fe, 0x2ad: 0x3697, 0x2ae: 0x4828, 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
+       0x3d3: 0x812d, 0x3d4: 0x8132, 0x3d5: 0x8132, 0x3d6: 0x8132, 0x3d7: 0x8132,
+       0x3d8: 0x8132, 0x3d9: 0x8132, 0x3da: 0x8132, 0x3db: 0x8132, 0x3dc: 0x8132, 0x3dd: 0x8132,
+       0x3de: 0x8132, 0x3df: 0x8132, 0x3e0: 0x8132, 0x3e1: 0x8132, 0x3e3: 0x812d,
+       0x3e4: 0x8132, 0x3e5: 0x8132, 0x3e6: 0x812d, 0x3e7: 0x8132, 0x3e8: 0x8132, 0x3e9: 0x812d,
+       0x3ea: 0x8132, 0x3eb: 0x8132, 0x3ec: 0x8132, 0x3ed: 0x812d, 0x3ee: 0x812d, 0x3ef: 0x812d,
+       0x3f0: 0x8116, 0x3f1: 0x8117, 0x3f2: 0x8118, 0x3f3: 0x8132, 0x3f4: 0x8132, 0x3f5: 0x8132,
+       0x3f6: 0x812d, 0x3f7: 0x8132, 0x3f8: 0x8132, 0x3f9: 0x812d, 0x3fa: 0x812d, 0x3fb: 0x8132,
+       0x3fc: 0x8132, 0x3fd: 0x8132, 0x3fe: 0x8132, 0x3ff: 0x8132,
+       // 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: 0x8132, 0x441: 0x8132, 0x442: 0x812d, 0x443: 0x8132, 0x444: 0x8132, 0x445: 0x8132,
+       0x446: 0x8132, 0x447: 0x8132, 0x448: 0x8132, 0x449: 0x8132, 0x44a: 0x812d, 0x44b: 0x8132,
+       0x44c: 0x8132, 0x44d: 0x8135, 0x44e: 0x812a, 0x44f: 0x812d, 0x450: 0x8129, 0x451: 0x8132,
+       0x452: 0x8132, 0x453: 0x8132, 0x454: 0x8132, 0x455: 0x8132, 0x456: 0x8132, 0x457: 0x8132,
+       0x458: 0x8132, 0x459: 0x8132, 0x45a: 0x8132, 0x45b: 0x8132, 0x45c: 0x8132, 0x45d: 0x8132,
+       0x45e: 0x8132, 0x45f: 0x8132, 0x460: 0x8132, 0x461: 0x8132, 0x462: 0x8132, 0x463: 0x8132,
+       0x464: 0x8132, 0x465: 0x8132, 0x466: 0x8132, 0x467: 0x8132, 0x468: 0x8132, 0x469: 0x8132,
+       0x46a: 0x8132, 0x46b: 0x8132, 0x46c: 0x8132, 0x46d: 0x8132, 0x46e: 0x8132, 0x46f: 0x8132,
+       0x470: 0x8132, 0x471: 0x8132, 0x472: 0x8132, 0x473: 0x8132, 0x474: 0x8132, 0x475: 0x8132,
+       0x476: 0x8133, 0x477: 0x8131, 0x478: 0x8131, 0x479: 0x812d, 0x47b: 0x8132,
+       0x47c: 0x8134, 0x47d: 0x812d, 0x47e: 0x8132, 0x47f: 0x812d,
+       // Block 0x12, offset 0x480
+       0x480: 0x2f97, 0x481: 0x32a3, 0x482: 0x2fa1, 0x483: 0x32ad, 0x484: 0x2fa6, 0x485: 0x32b2,
+       0x486: 0x2fab, 0x487: 0x32b7, 0x488: 0x38cc, 0x489: 0x3a5b, 0x48a: 0x2fc4, 0x48b: 0x32d0,
+       0x48c: 0x2fce, 0x48d: 0x32da, 0x48e: 0x2fdd, 0x48f: 0x32e9, 0x490: 0x2fd3, 0x491: 0x32df,
+       0x492: 0x2fd8, 0x493: 0x32e4, 0x494: 0x38ef, 0x495: 0x3a7e, 0x496: 0x38f6, 0x497: 0x3a85,
+       0x498: 0x3019, 0x499: 0x3325, 0x49a: 0x301e, 0x49b: 0x332a, 0x49c: 0x3904, 0x49d: 0x3a93,
+       0x49e: 0x3023, 0x49f: 0x332f, 0x4a0: 0x3032, 0x4a1: 0x333e, 0x4a2: 0x3050, 0x4a3: 0x335c,
+       0x4a4: 0x305f, 0x4a5: 0x336b, 0x4a6: 0x3055, 0x4a7: 0x3361, 0x4a8: 0x3064, 0x4a9: 0x3370,
+       0x4aa: 0x3069, 0x4ab: 0x3375, 0x4ac: 0x30af, 0x4ad: 0x33bb, 0x4ae: 0x390b, 0x4af: 0x3a9a,
+       0x4b0: 0x30b9, 0x4b1: 0x33ca, 0x4b2: 0x30c3, 0x4b3: 0x33d4, 0x4b4: 0x30cd, 0x4b5: 0x33de,
+       0x4b6: 0x46c4, 0x4b7: 0x4755, 0x4b8: 0x3912, 0x4b9: 0x3aa1, 0x4ba: 0x30e6, 0x4bb: 0x33f7,
+       0x4bc: 0x30e1, 0x4bd: 0x33f2, 0x4be: 0x30eb, 0x4bf: 0x33fc,
+       // Block 0x13, offset 0x4c0
+       0x4c0: 0x30f0, 0x4c1: 0x3401, 0x4c2: 0x30f5, 0x4c3: 0x3406, 0x4c4: 0x3109, 0x4c5: 0x341a,
+       0x4c6: 0x3113, 0x4c7: 0x3424, 0x4c8: 0x3122, 0x4c9: 0x3433, 0x4ca: 0x311d, 0x4cb: 0x342e,
+       0x4cc: 0x3935, 0x4cd: 0x3ac4, 0x4ce: 0x3943, 0x4cf: 0x3ad2, 0x4d0: 0x394a, 0x4d1: 0x3ad9,
+       0x4d2: 0x3951, 0x4d3: 0x3ae0, 0x4d4: 0x314f, 0x4d5: 0x3460, 0x4d6: 0x3154, 0x4d7: 0x3465,
+       0x4d8: 0x315e, 0x4d9: 0x346f, 0x4da: 0x46f1, 0x4db: 0x4782, 0x4dc: 0x3997, 0x4dd: 0x3b26,
+       0x4de: 0x3177, 0x4df: 0x3488, 0x4e0: 0x3181, 0x4e1: 0x3492, 0x4e2: 0x4700, 0x4e3: 0x4791,
+       0x4e4: 0x399e, 0x4e5: 0x3b2d, 0x4e6: 0x39a5, 0x4e7: 0x3b34, 0x4e8: 0x39ac, 0x4e9: 0x3b3b,
+       0x4ea: 0x3190, 0x4eb: 0x34a1, 0x4ec: 0x319a, 0x4ed: 0x34b0, 0x4ee: 0x31ae, 0x4ef: 0x34c4,
+       0x4f0: 0x31a9, 0x4f1: 0x34bf, 0x4f2: 0x31ea, 0x4f3: 0x3500, 0x4f4: 0x31f9, 0x4f5: 0x350f,
+       0x4f6: 0x31f4, 0x4f7: 0x350a, 0x4f8: 0x39b3, 0x4f9: 0x3b42, 0x4fa: 0x39ba, 0x4fb: 0x3b49,
+       0x4fc: 0x31fe, 0x4fd: 0x3514, 0x4fe: 0x3203, 0x4ff: 0x3519,
+       // Block 0x14, offset 0x500
+       0x500: 0x3208, 0x501: 0x351e, 0x502: 0x320d, 0x503: 0x3523, 0x504: 0x321c, 0x505: 0x3532,
+       0x506: 0x3217, 0x507: 0x352d, 0x508: 0x3221, 0x509: 0x353c, 0x50a: 0x3226, 0x50b: 0x3541,
+       0x50c: 0x322b, 0x50d: 0x3546, 0x50e: 0x3249, 0x50f: 0x3564, 0x510: 0x3262, 0x511: 0x3582,
+       0x512: 0x3271, 0x513: 0x3591, 0x514: 0x3276, 0x515: 0x3596, 0x516: 0x337a, 0x517: 0x34a6,
+       0x518: 0x3537, 0x519: 0x3573, 0x51b: 0x35d1,
+       0x520: 0x46a1, 0x521: 0x4732, 0x522: 0x2f83, 0x523: 0x328f,
+       0x524: 0x3878, 0x525: 0x3a07, 0x526: 0x3871, 0x527: 0x3a00, 0x528: 0x3886, 0x529: 0x3a15,
+       0x52a: 0x387f, 0x52b: 0x3a0e, 0x52c: 0x38be, 0x52d: 0x3a4d, 0x52e: 0x3894, 0x52f: 0x3a23,
+       0x530: 0x388d, 0x531: 0x3a1c, 0x532: 0x38a2, 0x533: 0x3a31, 0x534: 0x389b, 0x535: 0x3a2a,
+       0x536: 0x38c5, 0x537: 0x3a54, 0x538: 0x46b5, 0x539: 0x4746, 0x53a: 0x3000, 0x53b: 0x330c,
+       0x53c: 0x2fec, 0x53d: 0x32f8, 0x53e: 0x38da, 0x53f: 0x3a69,
+       // Block 0x15, offset 0x540
+       0x540: 0x38d3, 0x541: 0x3a62, 0x542: 0x38e8, 0x543: 0x3a77, 0x544: 0x38e1, 0x545: 0x3a70,
+       0x546: 0x38fd, 0x547: 0x3a8c, 0x548: 0x3091, 0x549: 0x339d, 0x54a: 0x30a5, 0x54b: 0x33b1,
+       0x54c: 0x46e7, 0x54d: 0x4778, 0x54e: 0x3136, 0x54f: 0x3447, 0x550: 0x3920, 0x551: 0x3aaf,
+       0x552: 0x3919, 0x553: 0x3aa8, 0x554: 0x392e, 0x555: 0x3abd, 0x556: 0x3927, 0x557: 0x3ab6,
+       0x558: 0x3989, 0x559: 0x3b18, 0x55a: 0x396d, 0x55b: 0x3afc, 0x55c: 0x3966, 0x55d: 0x3af5,
+       0x55e: 0x397b, 0x55f: 0x3b0a, 0x560: 0x3974, 0x561: 0x3b03, 0x562: 0x3982, 0x563: 0x3b11,
+       0x564: 0x31e5, 0x565: 0x34fb, 0x566: 0x31c7, 0x567: 0x34dd, 0x568: 0x39e4, 0x569: 0x3b73,
+       0x56a: 0x39dd, 0x56b: 0x3b6c, 0x56c: 0x39f2, 0x56d: 0x3b81, 0x56e: 0x39eb, 0x56f: 0x3b7a,
+       0x570: 0x39f9, 0x571: 0x3b88, 0x572: 0x3230, 0x573: 0x354b, 0x574: 0x3258, 0x575: 0x3578,
+       0x576: 0x3253, 0x577: 0x356e, 0x578: 0x323f, 0x579: 0x355a,
+       // Block 0x16, offset 0x580
+       0x580: 0x4804, 0x581: 0x480a, 0x582: 0x491e, 0x583: 0x4936, 0x584: 0x4926, 0x585: 0x493e,
+       0x586: 0x492e, 0x587: 0x4946, 0x588: 0x47aa, 0x589: 0x47b0, 0x58a: 0x488e, 0x58b: 0x48a6,
+       0x58c: 0x4896, 0x58d: 0x48ae, 0x58e: 0x489e, 0x58f: 0x48b6, 0x590: 0x4816, 0x591: 0x481c,
+       0x592: 0x3db8, 0x593: 0x3dc8, 0x594: 0x3dc0, 0x595: 0x3dd0,
+       0x598: 0x47b6, 0x599: 0x47bc, 0x59a: 0x3ce8, 0x59b: 0x3cf8, 0x59c: 0x3cf0, 0x59d: 0x3d00,
+       0x5a0: 0x482e, 0x5a1: 0x4834, 0x5a2: 0x494e, 0x5a3: 0x4966,
+       0x5a4: 0x4956, 0x5a5: 0x496e, 0x5a6: 0x495e, 0x5a7: 0x4976, 0x5a8: 0x47c2, 0x5a9: 0x47c8,
+       0x5aa: 0x48be, 0x5ab: 0x48d6, 0x5ac: 0x48c6, 0x5ad: 0x48de, 0x5ae: 0x48ce, 0x5af: 0x48e6,
+       0x5b0: 0x4846, 0x5b1: 0x484c, 0x5b2: 0x3e18, 0x5b3: 0x3e30, 0x5b4: 0x3e20, 0x5b5: 0x3e38,
+       0x5b6: 0x3e28, 0x5b7: 0x3e40, 0x5b8: 0x47ce, 0x5b9: 0x47d4, 0x5ba: 0x3d18, 0x5bb: 0x3d30,
+       0x5bc: 0x3d20, 0x5bd: 0x3d38, 0x5be: 0x3d28, 0x5bf: 0x3d40,
+       // Block 0x17, offset 0x5c0
+       0x5c0: 0x4852, 0x5c1: 0x4858, 0x5c2: 0x3e48, 0x5c3: 0x3e58, 0x5c4: 0x3e50, 0x5c5: 0x3e60,
+       0x5c8: 0x47da, 0x5c9: 0x47e0, 0x5ca: 0x3d48, 0x5cb: 0x3d58,
+       0x5cc: 0x3d50, 0x5cd: 0x3d60, 0x5d0: 0x4864, 0x5d1: 0x486a,
+       0x5d2: 0x3e80, 0x5d3: 0x3e98, 0x5d4: 0x3e88, 0x5d5: 0x3ea0, 0x5d6: 0x3e90, 0x5d7: 0x3ea8,
+       0x5d9: 0x47e6, 0x5db: 0x3d68, 0x5dd: 0x3d70,
+       0x5df: 0x3d78, 0x5e0: 0x487c, 0x5e1: 0x4882, 0x5e2: 0x497e, 0x5e3: 0x4996,
+       0x5e4: 0x4986, 0x5e5: 0x499e, 0x5e6: 0x498e, 0x5e7: 0x49a6, 0x5e8: 0x47ec, 0x5e9: 0x47f2,
+       0x5ea: 0x48ee, 0x5eb: 0x4906, 0x5ec: 0x48f6, 0x5ed: 0x490e, 0x5ee: 0x48fe, 0x5ef: 0x4916,
+       0x5f0: 0x47f8, 0x5f1: 0x431e, 0x5f2: 0x3691, 0x5f3: 0x4324, 0x5f4: 0x4822, 0x5f5: 0x432a,
+       0x5f6: 0x36a3, 0x5f7: 0x4330, 0x5f8: 0x36c1, 0x5f9: 0x4336, 0x5fa: 0x36d9, 0x5fb: 0x433c,
+       0x5fc: 0x4870, 0x5fd: 0x4342,
+       // Block 0x18, offset 0x600
+       0x600: 0x3da0, 0x601: 0x3da8, 0x602: 0x4184, 0x603: 0x41a2, 0x604: 0x418e, 0x605: 0x41ac,
+       0x606: 0x4198, 0x607: 0x41b6, 0x608: 0x3cd8, 0x609: 0x3ce0, 0x60a: 0x40d0, 0x60b: 0x40ee,
+       0x60c: 0x40da, 0x60d: 0x40f8, 0x60e: 0x40e4, 0x60f: 0x4102, 0x610: 0x3de8, 0x611: 0x3df0,
+       0x612: 0x41c0, 0x613: 0x41de, 0x614: 0x41ca, 0x615: 0x41e8, 0x616: 0x41d4, 0x617: 0x41f2,
+       0x618: 0x3d08, 0x619: 0x3d10, 0x61a: 0x410c, 0x61b: 0x412a, 0x61c: 0x4116, 0x61d: 0x4134,
+       0x61e: 0x4120, 0x61f: 0x413e, 0x620: 0x3ec0, 0x621: 0x3ec8, 0x622: 0x41fc, 0x623: 0x421a,
+       0x624: 0x4206, 0x625: 0x4224, 0x626: 0x4210, 0x627: 0x422e, 0x628: 0x3d80, 0x629: 0x3d88,
+       0x62a: 0x4148, 0x62b: 0x4166, 0x62c: 0x4152, 0x62d: 0x4170, 0x62e: 0x415c, 0x62f: 0x417a,
+       0x630: 0x3685, 0x631: 0x367f, 0x632: 0x3d90, 0x633: 0x368b, 0x634: 0x3d98,
+       0x636: 0x4810, 0x637: 0x3db0, 0x638: 0x35f5, 0x639: 0x35ef, 0x63a: 0x35e3, 0x63b: 0x42ee,
+       0x63c: 0x35fb, 0x63d: 0x8100, 0x63e: 0x01d3, 0x63f: 0xa100,
+       // Block 0x19, offset 0x640
+       0x640: 0x8100, 0x641: 0x35a7, 0x642: 0x3dd8, 0x643: 0x369d, 0x644: 0x3de0,
+       0x646: 0x483a, 0x647: 0x3df8, 0x648: 0x3601, 0x649: 0x42f4, 0x64a: 0x360d, 0x64b: 0x42fa,
+       0x64c: 0x3619, 0x64d: 0x3b8f, 0x64e: 0x3b96, 0x64f: 0x3b9d, 0x650: 0x36b5, 0x651: 0x36af,
+       0x652: 0x3e00, 0x653: 0x44e4, 0x656: 0x36bb, 0x657: 0x3e10,
+       0x658: 0x3631, 0x659: 0x362b, 0x65a: 0x361f, 0x65b: 0x4300, 0x65d: 0x3ba4,
+       0x65e: 0x3bab, 0x65f: 0x3bb2, 0x660: 0x36eb, 0x661: 0x36e5, 0x662: 0x3e68, 0x663: 0x44ec,
+       0x664: 0x36cd, 0x665: 0x36d3, 0x666: 0x36f1, 0x667: 0x3e78, 0x668: 0x3661, 0x669: 0x365b,
+       0x66a: 0x364f, 0x66b: 0x430c, 0x66c: 0x3649, 0x66d: 0x359b, 0x66e: 0x42e8, 0x66f: 0x0081,
+       0x672: 0x3eb0, 0x673: 0x36f7, 0x674: 0x3eb8,
+       0x676: 0x4888, 0x677: 0x3ed0, 0x678: 0x363d, 0x679: 0x4306, 0x67a: 0x366d, 0x67b: 0x4318,
+       0x67c: 0x3679, 0x67d: 0x4256, 0x67e: 0xa100,
+       // Block 0x1a, offset 0x680
+       0x681: 0x3c06, 0x683: 0xa000, 0x684: 0x3c0d, 0x685: 0xa000,
+       0x687: 0x3c14, 0x688: 0xa000, 0x689: 0x3c1b,
+       0x68d: 0xa000,
+       0x6a0: 0x2f65, 0x6a1: 0xa000, 0x6a2: 0x3c29,
+       0x6a4: 0xa000, 0x6a5: 0xa000,
+       0x6ad: 0x3c22, 0x6ae: 0x2f60, 0x6af: 0x2f6a,
+       0x6b0: 0x3c30, 0x6b1: 0x3c37, 0x6b2: 0xa000, 0x6b3: 0xa000, 0x6b4: 0x3c3e, 0x6b5: 0x3c45,
+       0x6b6: 0xa000, 0x6b7: 0xa000, 0x6b8: 0x3c4c, 0x6b9: 0x3c53, 0x6ba: 0xa000, 0x6bb: 0xa000,
+       0x6bc: 0xa000, 0x6bd: 0xa000,
+       // Block 0x1b, offset 0x6c0
+       0x6c0: 0x3c5a, 0x6c1: 0x3c61, 0x6c2: 0xa000, 0x6c3: 0xa000, 0x6c4: 0x3c76, 0x6c5: 0x3c7d,
+       0x6c6: 0xa000, 0x6c7: 0xa000, 0x6c8: 0x3c84, 0x6c9: 0x3c8b,
+       0x6d1: 0xa000,
+       0x6d2: 0xa000,
+       0x6e2: 0xa000,
+       0x6e8: 0xa000, 0x6e9: 0xa000,
+       0x6eb: 0xa000, 0x6ec: 0x3ca0, 0x6ed: 0x3ca7, 0x6ee: 0x3cae, 0x6ef: 0x3cb5,
+       0x6f2: 0xa000, 0x6f3: 0xa000, 0x6f4: 0xa000, 0x6f5: 0xa000,
+       // Block 0x1c, offset 0x700
+       0x706: 0xa000, 0x70b: 0xa000,
+       0x70c: 0x3f08, 0x70d: 0xa000, 0x70e: 0x3f10, 0x70f: 0xa000, 0x710: 0x3f18, 0x711: 0xa000,
+       0x712: 0x3f20, 0x713: 0xa000, 0x714: 0x3f28, 0x715: 0xa000, 0x716: 0x3f30, 0x717: 0xa000,
+       0x718: 0x3f38, 0x719: 0xa000, 0x71a: 0x3f40, 0x71b: 0xa000, 0x71c: 0x3f48, 0x71d: 0xa000,
+       0x71e: 0x3f50, 0x71f: 0xa000, 0x720: 0x3f58, 0x721: 0xa000, 0x722: 0x3f60,
+       0x724: 0xa000, 0x725: 0x3f68, 0x726: 0xa000, 0x727: 0x3f70, 0x728: 0xa000, 0x729: 0x3f78,
+       0x72f: 0xa000,
+       0x730: 0x3f80, 0x731: 0x3f88, 0x732: 0xa000, 0x733: 0x3f90, 0x734: 0x3f98, 0x735: 0xa000,
+       0x736: 0x3fa0, 0x737: 0x3fa8, 0x738: 0xa000, 0x739: 0x3fb0, 0x73a: 0x3fb8, 0x73b: 0xa000,
+       0x73c: 0x3fc0, 0x73d: 0x3fc8,
+       // Block 0x1d, offset 0x740
+       0x754: 0x3f00,
+       0x759: 0x9903, 0x75a: 0x9903, 0x75b: 0x8100, 0x75c: 0x8100, 0x75d: 0xa000,
+       0x75e: 0x3fd0,
+       0x766: 0xa000,
+       0x76b: 0xa000, 0x76c: 0x3fe0, 0x76d: 0xa000, 0x76e: 0x3fe8, 0x76f: 0xa000,
+       0x770: 0x3ff0, 0x771: 0xa000, 0x772: 0x3ff8, 0x773: 0xa000, 0x774: 0x4000, 0x775: 0xa000,
+       0x776: 0x4008, 0x777: 0xa000, 0x778: 0x4010, 0x779: 0xa000, 0x77a: 0x4018, 0x77b: 0xa000,
+       0x77c: 0x4020, 0x77d: 0xa000, 0x77e: 0x4028, 0x77f: 0xa000,
+       // Block 0x1e, offset 0x780
+       0x780: 0x4030, 0x781: 0xa000, 0x782: 0x4038, 0x784: 0xa000, 0x785: 0x4040,
+       0x786: 0xa000, 0x787: 0x4048, 0x788: 0xa000, 0x789: 0x4050,
+       0x78f: 0xa000, 0x790: 0x4058, 0x791: 0x4060,
+       0x792: 0xa000, 0x793: 0x4068, 0x794: 0x4070, 0x795: 0xa000, 0x796: 0x4078, 0x797: 0x4080,
+       0x798: 0xa000, 0x799: 0x4088, 0x79a: 0x4090, 0x79b: 0xa000, 0x79c: 0x4098, 0x79d: 0x40a0,
+       0x7af: 0xa000,
+       0x7b0: 0xa000, 0x7b1: 0xa000, 0x7b2: 0xa000, 0x7b4: 0x3fd8,
+       0x7b7: 0x40a8, 0x7b8: 0x40b0, 0x7b9: 0x40b8, 0x7ba: 0x40c0,
+       0x7bd: 0xa000, 0x7be: 0x40c8,
+       // Block 0x1f, offset 0x7c0
+       0x7c0: 0x1377, 0x7c1: 0x0cfb, 0x7c2: 0x13d3, 0x7c3: 0x139f, 0x7c4: 0x0e57, 0x7c5: 0x06eb,
+       0x7c6: 0x08df, 0x7c7: 0x162b, 0x7c8: 0x162b, 0x7c9: 0x0a0b, 0x7ca: 0x145f, 0x7cb: 0x0943,
+       0x7cc: 0x0a07, 0x7cd: 0x0bef, 0x7ce: 0x0fcf, 0x7cf: 0x115f, 0x7d0: 0x1297, 0x7d1: 0x12d3,
+       0x7d2: 0x1307, 0x7d3: 0x141b, 0x7d4: 0x0d73, 0x7d5: 0x0dff, 0x7d6: 0x0eab, 0x7d7: 0x0f43,
+       0x7d8: 0x125f, 0x7d9: 0x1447, 0x7da: 0x1573, 0x7db: 0x070f, 0x7dc: 0x08b3, 0x7dd: 0x0d87,
+       0x7de: 0x0ecf, 0x7df: 0x1293, 0x7e0: 0x15c3, 0x7e1: 0x0ab3, 0x7e2: 0x0e77, 0x7e3: 0x1283,
+       0x7e4: 0x1317, 0x7e5: 0x0c23, 0x7e6: 0x11bb, 0x7e7: 0x12df, 0x7e8: 0x0b1f, 0x7e9: 0x0d0f,
+       0x7ea: 0x0e17, 0x7eb: 0x0f1b, 0x7ec: 0x1427, 0x7ed: 0x074f, 0x7ee: 0x07e7, 0x7ef: 0x0853,
+       0x7f0: 0x0c8b, 0x7f1: 0x0d7f, 0x7f2: 0x0ecb, 0x7f3: 0x0fef, 0x7f4: 0x1177, 0x7f5: 0x128b,
+       0x7f6: 0x12a3, 0x7f7: 0x13c7, 0x7f8: 0x14ef, 0x7f9: 0x15a3, 0x7fa: 0x15bf, 0x7fb: 0x102b,
+       0x7fc: 0x106b, 0x7fd: 0x1123, 0x7fe: 0x1243, 0x7ff: 0x147b,
+       // Block 0x20, offset 0x800
+       0x800: 0x15cb, 0x801: 0x134b, 0x802: 0x09c7, 0x803: 0x0b3b, 0x804: 0x10db, 0x805: 0x119b,
+       0x806: 0x0eff, 0x807: 0x1033, 0x808: 0x1397, 0x809: 0x14e7, 0x80a: 0x09c3, 0x80b: 0x0a8f,
+       0x80c: 0x0d77, 0x80d: 0x0e2b, 0x80e: 0x0e5f, 0x80f: 0x1113, 0x810: 0x113b, 0x811: 0x14a7,
+       0x812: 0x084f, 0x813: 0x11a7, 0x814: 0x07f3, 0x815: 0x07ef, 0x816: 0x1097, 0x817: 0x1127,
+       0x818: 0x125b, 0x819: 0x14af, 0x81a: 0x1367, 0x81b: 0x0c27, 0x81c: 0x0d73, 0x81d: 0x1357,
+       0x81e: 0x06f7, 0x81f: 0x0a63, 0x820: 0x0b93, 0x821: 0x0f2f, 0x822: 0x0faf, 0x823: 0x0873,
+       0x824: 0x103b, 0x825: 0x075f, 0x826: 0x0b77, 0x827: 0x06d7, 0x828: 0x0deb, 0x829: 0x0ca3,
+       0x82a: 0x110f, 0x82b: 0x08c7, 0x82c: 0x09b3, 0x82d: 0x0ffb, 0x82e: 0x1263, 0x82f: 0x133b,
+       0x830: 0x0db7, 0x831: 0x13f7, 0x832: 0x0de3, 0x833: 0x0c37, 0x834: 0x121b, 0x835: 0x0c57,
+       0x836: 0x0fab, 0x837: 0x072b, 0x838: 0x07a7, 0x839: 0x07eb, 0x83a: 0x0d53, 0x83b: 0x10fb,
+       0x83c: 0x11f3, 0x83d: 0x1347, 0x83e: 0x145b, 0x83f: 0x085b,
+       // Block 0x21, offset 0x840
+       0x840: 0x090f, 0x841: 0x0a17, 0x842: 0x0b2f, 0x843: 0x0cbf, 0x844: 0x0e7b, 0x845: 0x103f,
+       0x846: 0x1497, 0x847: 0x157b, 0x848: 0x15cf, 0x849: 0x15e7, 0x84a: 0x0837, 0x84b: 0x0cf3,
+       0x84c: 0x0da3, 0x84d: 0x13eb, 0x84e: 0x0afb, 0x84f: 0x0bd7, 0x850: 0x0bf3, 0x851: 0x0c83,
+       0x852: 0x0e6b, 0x853: 0x0eb7, 0x854: 0x0f67, 0x855: 0x108b, 0x856: 0x112f, 0x857: 0x1193,
+       0x858: 0x13db, 0x859: 0x126b, 0x85a: 0x1403, 0x85b: 0x147f, 0x85c: 0x080f, 0x85d: 0x083b,
+       0x85e: 0x0923, 0x85f: 0x0ea7, 0x860: 0x12f3, 0x861: 0x133b, 0x862: 0x0b1b, 0x863: 0x0b8b,
+       0x864: 0x0c4f, 0x865: 0x0daf, 0x866: 0x10d7, 0x867: 0x0f23, 0x868: 0x073b, 0x869: 0x097f,
+       0x86a: 0x0a63, 0x86b: 0x0ac7, 0x86c: 0x0b97, 0x86d: 0x0f3f, 0x86e: 0x0f5b, 0x86f: 0x116b,
+       0x870: 0x118b, 0x871: 0x1463, 0x872: 0x14e3, 0x873: 0x14f3, 0x874: 0x152f, 0x875: 0x0753,
+       0x876: 0x107f, 0x877: 0x144f, 0x878: 0x14cb, 0x879: 0x0baf, 0x87a: 0x0717, 0x87b: 0x0777,
+       0x87c: 0x0a67, 0x87d: 0x0a87, 0x87e: 0x0caf, 0x87f: 0x0d73,
+       // Block 0x22, offset 0x880
+       0x880: 0x0ec3, 0x881: 0x0fcb, 0x882: 0x1277, 0x883: 0x1417, 0x884: 0x1623, 0x885: 0x0ce3,
+       0x886: 0x14a3, 0x887: 0x0833, 0x888: 0x0d2f, 0x889: 0x0d3b, 0x88a: 0x0e0f, 0x88b: 0x0e47,
+       0x88c: 0x0f4b, 0x88d: 0x0fa7, 0x88e: 0x1027, 0x88f: 0x110b, 0x890: 0x153b, 0x891: 0x07af,
+       0x892: 0x0c03, 0x893: 0x14b3, 0x894: 0x0767, 0x895: 0x0aab, 0x896: 0x0e2f, 0x897: 0x13df,
+       0x898: 0x0b67, 0x899: 0x0bb7, 0x89a: 0x0d43, 0x89b: 0x0f2f, 0x89c: 0x14bb, 0x89d: 0x0817,
+       0x89e: 0x08ff, 0x89f: 0x0a97, 0x8a0: 0x0cd3, 0x8a1: 0x0d1f, 0x8a2: 0x0d5f, 0x8a3: 0x0df3,
+       0x8a4: 0x0f47, 0x8a5: 0x0fbb, 0x8a6: 0x1157, 0x8a7: 0x12f7, 0x8a8: 0x1303, 0x8a9: 0x1457,
+       0x8aa: 0x14d7, 0x8ab: 0x0883, 0x8ac: 0x0e4b, 0x8ad: 0x0903, 0x8ae: 0x0ec7, 0x8af: 0x0f6b,
+       0x8b0: 0x1287, 0x8b1: 0x14bf, 0x8b2: 0x15ab, 0x8b3: 0x15d3, 0x8b4: 0x0d37, 0x8b5: 0x0e27,
+       0x8b6: 0x11c3, 0x8b7: 0x10b7, 0x8b8: 0x10c3, 0x8b9: 0x10e7, 0x8ba: 0x0f17, 0x8bb: 0x0e9f,
+       0x8bc: 0x1363, 0x8bd: 0x0733, 0x8be: 0x122b, 0x8bf: 0x081b,
+       // Block 0x23, offset 0x8c0
+       0x8c0: 0x080b, 0x8c1: 0x0b0b, 0x8c2: 0x0c2b, 0x8c3: 0x10f3, 0x8c4: 0x0a53, 0x8c5: 0x0e03,
+       0x8c6: 0x0cef, 0x8c7: 0x13e7, 0x8c8: 0x12e7, 0x8c9: 0x14ab, 0x8ca: 0x1323, 0x8cb: 0x0b27,
+       0x8cc: 0x0787, 0x8cd: 0x095b, 0x8d0: 0x09af,
+       0x8d2: 0x0cdf, 0x8d5: 0x07f7, 0x8d6: 0x0f1f, 0x8d7: 0x0fe3,
+       0x8d8: 0x1047, 0x8d9: 0x1063, 0x8da: 0x1067, 0x8db: 0x107b, 0x8dc: 0x14fb, 0x8dd: 0x10eb,
+       0x8de: 0x116f, 0x8e0: 0x128f, 0x8e2: 0x1353,
+       0x8e5: 0x1407, 0x8e6: 0x1433,
+       0x8ea: 0x154f, 0x8eb: 0x1553, 0x8ec: 0x1557, 0x8ed: 0x15bb, 0x8ee: 0x142b, 0x8ef: 0x14c7,
+       0x8f0: 0x0757, 0x8f1: 0x077b, 0x8f2: 0x078f, 0x8f3: 0x084b, 0x8f4: 0x0857, 0x8f5: 0x0897,
+       0x8f6: 0x094b, 0x8f7: 0x0967, 0x8f8: 0x096f, 0x8f9: 0x09ab, 0x8fa: 0x09b7, 0x8fb: 0x0a93,
+       0x8fc: 0x0a9b, 0x8fd: 0x0ba3, 0x8fe: 0x0bcb, 0x8ff: 0x0bd3,
+       // Block 0x24, offset 0x900
+       0x900: 0x0beb, 0x901: 0x0c97, 0x902: 0x0cc7, 0x903: 0x0ce7, 0x904: 0x0d57, 0x905: 0x0e1b,
+       0x906: 0x0e37, 0x907: 0x0e67, 0x908: 0x0ebb, 0x909: 0x0edb, 0x90a: 0x0f4f, 0x90b: 0x102f,
+       0x90c: 0x104b, 0x90d: 0x1053, 0x90e: 0x104f, 0x90f: 0x1057, 0x910: 0x105b, 0x911: 0x105f,
+       0x912: 0x1073, 0x913: 0x1077, 0x914: 0x109b, 0x915: 0x10af, 0x916: 0x10cb, 0x917: 0x112f,
+       0x918: 0x1137, 0x919: 0x113f, 0x91a: 0x1153, 0x91b: 0x117b, 0x91c: 0x11cb, 0x91d: 0x11ff,
+       0x91e: 0x11ff, 0x91f: 0x1267, 0x920: 0x130f, 0x921: 0x1327, 0x922: 0x135b, 0x923: 0x135f,
+       0x924: 0x13a3, 0x925: 0x13a7, 0x926: 0x13ff, 0x927: 0x1407, 0x928: 0x14db, 0x929: 0x151f,
+       0x92a: 0x1537, 0x92b: 0x0b9b, 0x92c: 0x171e, 0x92d: 0x11e3,
+       0x930: 0x06df, 0x931: 0x07e3, 0x932: 0x07a3, 0x933: 0x074b, 0x934: 0x078b, 0x935: 0x07b7,
+       0x936: 0x0847, 0x937: 0x0863, 0x938: 0x094b, 0x939: 0x0937, 0x93a: 0x0947, 0x93b: 0x0963,
+       0x93c: 0x09af, 0x93d: 0x09bf, 0x93e: 0x0a03, 0x93f: 0x0a0f,
+       // Block 0x25, offset 0x940
+       0x940: 0x0a2b, 0x941: 0x0a3b, 0x942: 0x0b23, 0x943: 0x0b2b, 0x944: 0x0b5b, 0x945: 0x0b7b,
+       0x946: 0x0bab, 0x947: 0x0bc3, 0x948: 0x0bb3, 0x949: 0x0bd3, 0x94a: 0x0bc7, 0x94b: 0x0beb,
+       0x94c: 0x0c07, 0x94d: 0x0c5f, 0x94e: 0x0c6b, 0x94f: 0x0c73, 0x950: 0x0c9b, 0x951: 0x0cdf,
+       0x952: 0x0d0f, 0x953: 0x0d13, 0x954: 0x0d27, 0x955: 0x0da7, 0x956: 0x0db7, 0x957: 0x0e0f,
+       0x958: 0x0e5b, 0x959: 0x0e53, 0x95a: 0x0e67, 0x95b: 0x0e83, 0x95c: 0x0ebb, 0x95d: 0x1013,
+       0x95e: 0x0edf, 0x95f: 0x0f13, 0x960: 0x0f1f, 0x961: 0x0f5f, 0x962: 0x0f7b, 0x963: 0x0f9f,
+       0x964: 0x0fc3, 0x965: 0x0fc7, 0x966: 0x0fe3, 0x967: 0x0fe7, 0x968: 0x0ff7, 0x969: 0x100b,
+       0x96a: 0x1007, 0x96b: 0x1037, 0x96c: 0x10b3, 0x96d: 0x10cb, 0x96e: 0x10e3, 0x96f: 0x111b,
+       0x970: 0x112f, 0x971: 0x114b, 0x972: 0x117b, 0x973: 0x122f, 0x974: 0x1257, 0x975: 0x12cb,
+       0x976: 0x1313, 0x977: 0x131f, 0x978: 0x1327, 0x979: 0x133f, 0x97a: 0x1353, 0x97b: 0x1343,
+       0x97c: 0x135b, 0x97d: 0x1357, 0x97e: 0x134f, 0x97f: 0x135f,
+       // Block 0x26, offset 0x980
+       0x980: 0x136b, 0x981: 0x13a7, 0x982: 0x13e3, 0x983: 0x1413, 0x984: 0x144b, 0x985: 0x146b,
+       0x986: 0x14b7, 0x987: 0x14db, 0x988: 0x14fb, 0x989: 0x150f, 0x98a: 0x151f, 0x98b: 0x152b,
+       0x98c: 0x1537, 0x98d: 0x158b, 0x98e: 0x162b, 0x98f: 0x16b5, 0x990: 0x16b0, 0x991: 0x16e2,
+       0x992: 0x0607, 0x993: 0x062f, 0x994: 0x0633, 0x995: 0x1764, 0x996: 0x1791, 0x997: 0x1809,
+       0x998: 0x1617, 0x999: 0x1627,
+       // Block 0x27, offset 0x9c0
+       0x9c0: 0x06fb, 0x9c1: 0x06f3, 0x9c2: 0x0703, 0x9c3: 0x1647, 0x9c4: 0x0747, 0x9c5: 0x0757,
+       0x9c6: 0x075b, 0x9c7: 0x0763, 0x9c8: 0x076b, 0x9c9: 0x076f, 0x9ca: 0x077b, 0x9cb: 0x0773,
+       0x9cc: 0x05b3, 0x9cd: 0x165b, 0x9ce: 0x078f, 0x9cf: 0x0793, 0x9d0: 0x0797, 0x9d1: 0x07b3,
+       0x9d2: 0x164c, 0x9d3: 0x05b7, 0x9d4: 0x079f, 0x9d5: 0x07bf, 0x9d6: 0x1656, 0x9d7: 0x07cf,
+       0x9d8: 0x07d7, 0x9d9: 0x0737, 0x9da: 0x07df, 0x9db: 0x07e3, 0x9dc: 0x1831, 0x9dd: 0x07ff,
+       0x9de: 0x0807, 0x9df: 0x05bf, 0x9e0: 0x081f, 0x9e1: 0x0823, 0x9e2: 0x082b, 0x9e3: 0x082f,
+       0x9e4: 0x05c3, 0x9e5: 0x0847, 0x9e6: 0x084b, 0x9e7: 0x0857, 0x9e8: 0x0863, 0x9e9: 0x0867,
+       0x9ea: 0x086b, 0x9eb: 0x0873, 0x9ec: 0x0893, 0x9ed: 0x0897, 0x9ee: 0x089f, 0x9ef: 0x08af,
+       0x9f0: 0x08b7, 0x9f1: 0x08bb, 0x9f2: 0x08bb, 0x9f3: 0x08bb, 0x9f4: 0x166a, 0x9f5: 0x0e93,
+       0x9f6: 0x08cf, 0x9f7: 0x08d7, 0x9f8: 0x166f, 0x9f9: 0x08e3, 0x9fa: 0x08eb, 0x9fb: 0x08f3,
+       0x9fc: 0x091b, 0x9fd: 0x0907, 0x9fe: 0x0913, 0x9ff: 0x0917,
+       // Block 0x28, offset 0xa00
+       0xa00: 0x091f, 0xa01: 0x0927, 0xa02: 0x092b, 0xa03: 0x0933, 0xa04: 0x093b, 0xa05: 0x093f,
+       0xa06: 0x093f, 0xa07: 0x0947, 0xa08: 0x094f, 0xa09: 0x0953, 0xa0a: 0x095f, 0xa0b: 0x0983,
+       0xa0c: 0x0967, 0xa0d: 0x0987, 0xa0e: 0x096b, 0xa0f: 0x0973, 0xa10: 0x080b, 0xa11: 0x09cf,
+       0xa12: 0x0997, 0xa13: 0x099b, 0xa14: 0x099f, 0xa15: 0x0993, 0xa16: 0x09a7, 0xa17: 0x09a3,
+       0xa18: 0x09bb, 0xa19: 0x1674, 0xa1a: 0x09d7, 0xa1b: 0x09db, 0xa1c: 0x09e3, 0xa1d: 0x09ef,
+       0xa1e: 0x09f7, 0xa1f: 0x0a13, 0xa20: 0x1679, 0xa21: 0x167e, 0xa22: 0x0a1f, 0xa23: 0x0a23,
+       0xa24: 0x0a27, 0xa25: 0x0a1b, 0xa26: 0x0a2f, 0xa27: 0x05c7, 0xa28: 0x05cb, 0xa29: 0x0a37,
+       0xa2a: 0x0a3f, 0xa2b: 0x0a3f, 0xa2c: 0x1683, 0xa2d: 0x0a5b, 0xa2e: 0x0a5f, 0xa2f: 0x0a63,
+       0xa30: 0x0a6b, 0xa31: 0x1688, 0xa32: 0x0a73, 0xa33: 0x0a77, 0xa34: 0x0b4f, 0xa35: 0x0a7f,
+       0xa36: 0x05cf, 0xa37: 0x0a8b, 0xa38: 0x0a9b, 0xa39: 0x0aa7, 0xa3a: 0x0aa3, 0xa3b: 0x1692,
+       0xa3c: 0x0aaf, 0xa3d: 0x1697, 0xa3e: 0x0abb, 0xa3f: 0x0ab7,
+       // Block 0x29, offset 0xa40
+       0xa40: 0x0abf, 0xa41: 0x0acf, 0xa42: 0x0ad3, 0xa43: 0x05d3, 0xa44: 0x0ae3, 0xa45: 0x0aeb,
+       0xa46: 0x0aef, 0xa47: 0x0af3, 0xa48: 0x05d7, 0xa49: 0x169c, 0xa4a: 0x05db, 0xa4b: 0x0b0f,
+       0xa4c: 0x0b13, 0xa4d: 0x0b17, 0xa4e: 0x0b1f, 0xa4f: 0x1863, 0xa50: 0x0b37, 0xa51: 0x16a6,
+       0xa52: 0x16a6, 0xa53: 0x11d7, 0xa54: 0x0b47, 0xa55: 0x0b47, 0xa56: 0x05df, 0xa57: 0x16c9,
+       0xa58: 0x179b, 0xa59: 0x0b57, 0xa5a: 0x0b5f, 0xa5b: 0x05e3, 0xa5c: 0x0b73, 0xa5d: 0x0b83,
+       0xa5e: 0x0b87, 0xa5f: 0x0b8f, 0xa60: 0x0b9f, 0xa61: 0x05eb, 0xa62: 0x05e7, 0xa63: 0x0ba3,
+       0xa64: 0x16ab, 0xa65: 0x0ba7, 0xa66: 0x0bbb, 0xa67: 0x0bbf, 0xa68: 0x0bc3, 0xa69: 0x0bbf,
+       0xa6a: 0x0bcf, 0xa6b: 0x0bd3, 0xa6c: 0x0be3, 0xa6d: 0x0bdb, 0xa6e: 0x0bdf, 0xa6f: 0x0be7,
+       0xa70: 0x0beb, 0xa71: 0x0bef, 0xa72: 0x0bfb, 0xa73: 0x0bff, 0xa74: 0x0c17, 0xa75: 0x0c1f,
+       0xa76: 0x0c2f, 0xa77: 0x0c43, 0xa78: 0x16ba, 0xa79: 0x0c3f, 0xa7a: 0x0c33, 0xa7b: 0x0c4b,
+       0xa7c: 0x0c53, 0xa7d: 0x0c67, 0xa7e: 0x16bf, 0xa7f: 0x0c6f,
+       // Block 0x2a, offset 0xa80
+       0xa80: 0x0c63, 0xa81: 0x0c5b, 0xa82: 0x05ef, 0xa83: 0x0c77, 0xa84: 0x0c7f, 0xa85: 0x0c87,
+       0xa86: 0x0c7b, 0xa87: 0x05f3, 0xa88: 0x0c97, 0xa89: 0x0c9f, 0xa8a: 0x16c4, 0xa8b: 0x0ccb,
+       0xa8c: 0x0cff, 0xa8d: 0x0cdb, 0xa8e: 0x05ff, 0xa8f: 0x0ce7, 0xa90: 0x05fb, 0xa91: 0x05f7,
+       0xa92: 0x07c3, 0xa93: 0x07c7, 0xa94: 0x0d03, 0xa95: 0x0ceb, 0xa96: 0x11ab, 0xa97: 0x0663,
+       0xa98: 0x0d0f, 0xa99: 0x0d13, 0xa9a: 0x0d17, 0xa9b: 0x0d2b, 0xa9c: 0x0d23, 0xa9d: 0x16dd,
+       0xa9e: 0x0603, 0xa9f: 0x0d3f, 0xaa0: 0x0d33, 0xaa1: 0x0d4f, 0xaa2: 0x0d57, 0xaa3: 0x16e7,
+       0xaa4: 0x0d5b, 0xaa5: 0x0d47, 0xaa6: 0x0d63, 0xaa7: 0x0607, 0xaa8: 0x0d67, 0xaa9: 0x0d6b,
+       0xaaa: 0x0d6f, 0xaab: 0x0d7b, 0xaac: 0x16ec, 0xaad: 0x0d83, 0xaae: 0x060b, 0xaaf: 0x0d8f,
+       0xab0: 0x16f1, 0xab1: 0x0d93, 0xab2: 0x060f, 0xab3: 0x0d9f, 0xab4: 0x0dab, 0xab5: 0x0db7,
+       0xab6: 0x0dbb, 0xab7: 0x16f6, 0xab8: 0x168d, 0xab9: 0x16fb, 0xaba: 0x0ddb, 0xabb: 0x1700,
+       0xabc: 0x0de7, 0xabd: 0x0def, 0xabe: 0x0ddf, 0xabf: 0x0dfb,
+       // Block 0x2b, offset 0xac0
+       0xac0: 0x0e0b, 0xac1: 0x0e1b, 0xac2: 0x0e0f, 0xac3: 0x0e13, 0xac4: 0x0e1f, 0xac5: 0x0e23,
+       0xac6: 0x1705, 0xac7: 0x0e07, 0xac8: 0x0e3b, 0xac9: 0x0e3f, 0xaca: 0x0613, 0xacb: 0x0e53,
+       0xacc: 0x0e4f, 0xacd: 0x170a, 0xace: 0x0e33, 0xacf: 0x0e6f, 0xad0: 0x170f, 0xad1: 0x1714,
+       0xad2: 0x0e73, 0xad3: 0x0e87, 0xad4: 0x0e83, 0xad5: 0x0e7f, 0xad6: 0x0617, 0xad7: 0x0e8b,
+       0xad8: 0x0e9b, 0xad9: 0x0e97, 0xada: 0x0ea3, 0xadb: 0x1651, 0xadc: 0x0eb3, 0xadd: 0x1719,
+       0xade: 0x0ebf, 0xadf: 0x1723, 0xae0: 0x0ed3, 0xae1: 0x0edf, 0xae2: 0x0ef3, 0xae3: 0x1728,
+       0xae4: 0x0f07, 0xae5: 0x0f0b, 0xae6: 0x172d, 0xae7: 0x1732, 0xae8: 0x0f27, 0xae9: 0x0f37,
+       0xaea: 0x061b, 0xaeb: 0x0f3b, 0xaec: 0x061f, 0xaed: 0x061f, 0xaee: 0x0f53, 0xaef: 0x0f57,
+       0xaf0: 0x0f5f, 0xaf1: 0x0f63, 0xaf2: 0x0f6f, 0xaf3: 0x0623, 0xaf4: 0x0f87, 0xaf5: 0x1737,
+       0xaf6: 0x0fa3, 0xaf7: 0x173c, 0xaf8: 0x0faf, 0xaf9: 0x16a1, 0xafa: 0x0fbf, 0xafb: 0x1741,
+       0xafc: 0x1746, 0xafd: 0x174b, 0xafe: 0x0627, 0xaff: 0x062b,
+       // Block 0x2c, offset 0xb00
+       0xb00: 0x0ff7, 0xb01: 0x1755, 0xb02: 0x1750, 0xb03: 0x175a, 0xb04: 0x175f, 0xb05: 0x0fff,
+       0xb06: 0x1003, 0xb07: 0x1003, 0xb08: 0x100b, 0xb09: 0x0633, 0xb0a: 0x100f, 0xb0b: 0x0637,
+       0xb0c: 0x063b, 0xb0d: 0x1769, 0xb0e: 0x1023, 0xb0f: 0x102b, 0xb10: 0x1037, 0xb11: 0x063f,
+       0xb12: 0x176e, 0xb13: 0x105b, 0xb14: 0x1773, 0xb15: 0x1778, 0xb16: 0x107b, 0xb17: 0x1093,
+       0xb18: 0x0643, 0xb19: 0x109b, 0xb1a: 0x109f, 0xb1b: 0x10a3, 0xb1c: 0x177d, 0xb1d: 0x1782,
+       0xb1e: 0x1782, 0xb1f: 0x10bb, 0xb20: 0x0647, 0xb21: 0x1787, 0xb22: 0x10cf, 0xb23: 0x10d3,
+       0xb24: 0x064b, 0xb25: 0x178c, 0xb26: 0x10ef, 0xb27: 0x064f, 0xb28: 0x10ff, 0xb29: 0x10f7,
+       0xb2a: 0x1107, 0xb2b: 0x1796, 0xb2c: 0x111f, 0xb2d: 0x0653, 0xb2e: 0x112b, 0xb2f: 0x1133,
+       0xb30: 0x1143, 0xb31: 0x0657, 0xb32: 0x17a0, 0xb33: 0x17a5, 0xb34: 0x065b, 0xb35: 0x17aa,
+       0xb36: 0x115b, 0xb37: 0x17af, 0xb38: 0x1167, 0xb39: 0x1173, 0xb3a: 0x117b, 0xb3b: 0x17b4,
+       0xb3c: 0x17b9, 0xb3d: 0x118f, 0xb3e: 0x17be, 0xb3f: 0x1197,
+       // Block 0x2d, offset 0xb40
+       0xb40: 0x16ce, 0xb41: 0x065f, 0xb42: 0x11af, 0xb43: 0x11b3, 0xb44: 0x0667, 0xb45: 0x11b7,
+       0xb46: 0x0a33, 0xb47: 0x17c3, 0xb48: 0x17c8, 0xb49: 0x16d3, 0xb4a: 0x16d8, 0xb4b: 0x11d7,
+       0xb4c: 0x11db, 0xb4d: 0x13f3, 0xb4e: 0x066b, 0xb4f: 0x1207, 0xb50: 0x1203, 0xb51: 0x120b,
+       0xb52: 0x083f, 0xb53: 0x120f, 0xb54: 0x1213, 0xb55: 0x1217, 0xb56: 0x121f, 0xb57: 0x17cd,
+       0xb58: 0x121b, 0xb59: 0x1223, 0xb5a: 0x1237, 0xb5b: 0x123b, 0xb5c: 0x1227, 0xb5d: 0x123f,
+       0xb5e: 0x1253, 0xb5f: 0x1267, 0xb60: 0x1233, 0xb61: 0x1247, 0xb62: 0x124b, 0xb63: 0x124f,
+       0xb64: 0x17d2, 0xb65: 0x17dc, 0xb66: 0x17d7, 0xb67: 0x066f, 0xb68: 0x126f, 0xb69: 0x1273,
+       0xb6a: 0x127b, 0xb6b: 0x17f0, 0xb6c: 0x127f, 0xb6d: 0x17e1, 0xb6e: 0x0673, 0xb6f: 0x0677,
+       0xb70: 0x17e6, 0xb71: 0x17eb, 0xb72: 0x067b, 0xb73: 0x129f, 0xb74: 0x12a3, 0xb75: 0x12a7,
+       0xb76: 0x12ab, 0xb77: 0x12b7, 0xb78: 0x12b3, 0xb79: 0x12bf, 0xb7a: 0x12bb, 0xb7b: 0x12cb,
+       0xb7c: 0x12c3, 0xb7d: 0x12c7, 0xb7e: 0x12cf, 0xb7f: 0x067f,
+       // Block 0x2e, offset 0xb80
+       0xb80: 0x12d7, 0xb81: 0x12db, 0xb82: 0x0683, 0xb83: 0x12eb, 0xb84: 0x12ef, 0xb85: 0x17f5,
+       0xb86: 0x12fb, 0xb87: 0x12ff, 0xb88: 0x0687, 0xb89: 0x130b, 0xb8a: 0x05bb, 0xb8b: 0x17fa,
+       0xb8c: 0x17ff, 0xb8d: 0x068b, 0xb8e: 0x068f, 0xb8f: 0x1337, 0xb90: 0x134f, 0xb91: 0x136b,
+       0xb92: 0x137b, 0xb93: 0x1804, 0xb94: 0x138f, 0xb95: 0x1393, 0xb96: 0x13ab, 0xb97: 0x13b7,
+       0xb98: 0x180e, 0xb99: 0x1660, 0xb9a: 0x13c3, 0xb9b: 0x13bf, 0xb9c: 0x13cb, 0xb9d: 0x1665,
+       0xb9e: 0x13d7, 0xb9f: 0x13e3, 0xba0: 0x1813, 0xba1: 0x1818, 0xba2: 0x1423, 0xba3: 0x142f,
+       0xba4: 0x1437, 0xba5: 0x181d, 0xba6: 0x143b, 0xba7: 0x1467, 0xba8: 0x1473, 0xba9: 0x1477,
+       0xbaa: 0x146f, 0xbab: 0x1483, 0xbac: 0x1487, 0xbad: 0x1822, 0xbae: 0x1493, 0xbaf: 0x0693,
+       0xbb0: 0x149b, 0xbb1: 0x1827, 0xbb2: 0x0697, 0xbb3: 0x14d3, 0xbb4: 0x0ac3, 0xbb5: 0x14eb,
+       0xbb6: 0x182c, 0xbb7: 0x1836, 0xbb8: 0x069b, 0xbb9: 0x069f, 0xbba: 0x1513, 0xbbb: 0x183b,
+       0xbbc: 0x06a3, 0xbbd: 0x1840, 0xbbe: 0x152b, 0xbbf: 0x152b,
+       // Block 0x2f, offset 0xbc0
+       0xbc0: 0x1533, 0xbc1: 0x1845, 0xbc2: 0x154b, 0xbc3: 0x06a7, 0xbc4: 0x155b, 0xbc5: 0x1567,
+       0xbc6: 0x156f, 0xbc7: 0x1577, 0xbc8: 0x06ab, 0xbc9: 0x184a, 0xbca: 0x158b, 0xbcb: 0x15a7,
+       0xbcc: 0x15b3, 0xbcd: 0x06af, 0xbce: 0x06b3, 0xbcf: 0x15b7, 0xbd0: 0x184f, 0xbd1: 0x06b7,
+       0xbd2: 0x1854, 0xbd3: 0x1859, 0xbd4: 0x185e, 0xbd5: 0x15db, 0xbd6: 0x06bb, 0xbd7: 0x15ef,
+       0xbd8: 0x15f7, 0xbd9: 0x15fb, 0xbda: 0x1603, 0xbdb: 0x160b, 0xbdc: 0x1613, 0xbdd: 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: 0x2e, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x2f, 0xc7: 0x04,
+       0xc8: 0x05, 0xca: 0x30, 0xcb: 0x31, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x32,
+       0xd0: 0x09, 0xd1: 0x33, 0xd2: 0x34, 0xd3: 0x0a, 0xd6: 0x0b, 0xd7: 0x35,
+       0xd8: 0x36, 0xd9: 0x0c, 0xdb: 0x37, 0xdc: 0x38, 0xdd: 0x39, 0xdf: 0x3a,
+       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: 0x3b, 0x121: 0x3c, 0x123: 0x0d, 0x124: 0x3d, 0x125: 0x3e, 0x126: 0x3f, 0x127: 0x40,
+       0x128: 0x41, 0x129: 0x42, 0x12a: 0x43, 0x12b: 0x44, 0x12c: 0x3f, 0x12d: 0x45, 0x12e: 0x46, 0x12f: 0x47,
+       0x131: 0x48, 0x132: 0x49, 0x133: 0x4a, 0x134: 0x4b, 0x135: 0x4c, 0x137: 0x4d,
+       0x138: 0x4e, 0x139: 0x4f, 0x13a: 0x50, 0x13b: 0x51, 0x13c: 0x52, 0x13d: 0x53, 0x13e: 0x54, 0x13f: 0x55,
+       // Block 0x5, offset 0x140
+       0x140: 0x56, 0x142: 0x57, 0x144: 0x58, 0x145: 0x59, 0x146: 0x5a, 0x147: 0x5b,
+       0x14d: 0x5c,
+       0x15c: 0x5d, 0x15f: 0x5e,
+       0x162: 0x5f, 0x164: 0x60,
+       0x168: 0x61, 0x169: 0x62, 0x16a: 0x63, 0x16c: 0x0e, 0x16d: 0x64, 0x16e: 0x65, 0x16f: 0x66,
+       0x170: 0x67, 0x173: 0x68, 0x177: 0x0f,
+       0x178: 0x10, 0x179: 0x11, 0x17a: 0x12, 0x17b: 0x13, 0x17c: 0x14, 0x17d: 0x15, 0x17e: 0x16, 0x17f: 0x17,
+       // Block 0x6, offset 0x180
+       0x180: 0x69, 0x183: 0x6a, 0x184: 0x6b, 0x186: 0x6c, 0x187: 0x6d,
+       0x188: 0x6e, 0x189: 0x18, 0x18a: 0x19, 0x18b: 0x6f, 0x18c: 0x70,
+       0x1ab: 0x71,
+       0x1b3: 0x72, 0x1b5: 0x73, 0x1b7: 0x74,
+       // Block 0x7, offset 0x1c0
+       0x1c0: 0x75, 0x1c1: 0x1a, 0x1c2: 0x1b, 0x1c3: 0x1c, 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: 0x1d, 0x325: 0x1e, 0x326: 0x1f, 0x327: 0x20,
+       0x328: 0x21, 0x329: 0x22, 0x32a: 0x23, 0x32b: 0x24, 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,
+       0x374: 0xa1,
+       0x37d: 0xa2,
+       // Block 0xe, offset 0x380
+       0x381: 0xa3, 0x382: 0xa4, 0x384: 0xa5, 0x385: 0x82, 0x387: 0xa6,
+       0x388: 0xa7, 0x38b: 0xa8, 0x38c: 0xa9, 0x38d: 0xaa,
+       0x391: 0xab, 0x392: 0xac, 0x393: 0xad, 0x396: 0xae, 0x397: 0xaf,
+       0x398: 0x73, 0x39a: 0xb0, 0x39c: 0xb1,
+       0x3a0: 0xb2,
+       0x3a8: 0xb3, 0x3a9: 0xb4, 0x3aa: 0xb5,
+       0x3b0: 0x73, 0x3b5: 0xb6, 0x3b6: 0xb7,
+       // Block 0xf, offset 0x3c0
+       0x3eb: 0xb8, 0x3ec: 0xb9,
+       // Block 0x10, offset 0x400
+       0x432: 0xba,
+       // Block 0x11, offset 0x440
+       0x445: 0xbb, 0x446: 0xbc, 0x447: 0xbd,
+       0x449: 0xbe,
+       // Block 0x12, offset 0x480
+       0x480: 0xbf,
+       0x4a3: 0xc0, 0x4a5: 0xc1,
+       // Block 0x13, offset 0x4c0
+       0x4c8: 0xc2,
+       // Block 0x14, offset 0x500
+       0x520: 0x25, 0x521: 0x26, 0x522: 0x27, 0x523: 0x28, 0x524: 0x29, 0x525: 0x2a, 0x526: 0x2b, 0x527: 0x2c,
+       0x528: 0x2d,
+       // Block 0x15, offset 0x540
+       0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d,
+       0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11,
+       0x56f: 0x12,
+}
+
+// nfcSparseOffset: 149 entries, 298 bytes
+var nfcSparseOffset = []uint16{0x0, 0x5, 0x9, 0xb, 0xd, 0x18, 0x28, 0x2a, 0x2f, 0x3a, 0x49, 0x56, 0x5e, 0x63, 0x68, 0x6a, 0x72, 0x79, 0x7c, 0x84, 0x88, 0x8c, 0x8e, 0x90, 0x99, 0x9d, 0xa4, 0xa9, 0xac, 0xb6, 0xb9, 0xc0, 0xc8, 0xcb, 0xcd, 0xcf, 0xd1, 0xd6, 0xe7, 0xf3, 0xf5, 0xfb, 0xfd, 0xff, 0x101, 0x103, 0x105, 0x107, 0x10a, 0x10d, 0x10f, 0x112, 0x115, 0x119, 0x11e, 0x127, 0x129, 0x12c, 0x12e, 0x139, 0x13d, 0x14b, 0x14e, 0x154, 0x15a, 0x165, 0x169, 0x16b, 0x16d, 0x16f, 0x171, 0x173, 0x179, 0x17d, 0x17f, 0x181, 0x189, 0x18d, 0x190, 0x192, 0x194, 0x196, 0x199, 0x19b, 0x19d, 0x19f, 0x1a1, 0x1a7, 0x1aa, 0x1ac, 0x1b3, 0x1b9, 0x1bf, 0x1c7, 0x1cd, 0x1d3, 0x1d9, 0x1dd, 0x1eb, 0x1f4, 0x1f7, 0x1fa, 0x1fc, 0x1ff, 0x201, 0x205, 0x20a, 0x20c, 0x20e, 0x213, 0x219, 0x21b, 0x21d, 0x21f, 0x225, 0x228, 0x22a, 0x230, 0x233, 0x23b, 0x242, 0x245, 0x248, 0x24a, 0x24d, 0x255, 0x259, 0x260, 0x263, 0x269, 0x26b, 0x26e, 0x270, 0x273, 0x275, 0x277, 0x279, 0x27c, 0x27e, 0x280, 0x282, 0x284, 0x291, 0x29b, 0x29d, 0x29f, 0x2a5, 0x2a7, 0x2aa}
+
+// nfcSparseValues: 684 entries, 2736 bytes
+var nfcSparseValues = [684]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: 0x46e2, lo: 0xa0, hi: 0xa1},
+       {value: 0x4714, 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: 0x4840, lo: 0x8a, hi: 0x8a},
+       {value: 0x485e, lo: 0x8b, hi: 0x8b},
+       {value: 0x36c7, lo: 0x8c, hi: 0x8c},
+       {value: 0x36df, lo: 0x8d, hi: 0x8d},
+       {value: 0x4876, 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: 0x04},
+       {value: 0x8132, lo: 0xab, hi: 0xb1},
+       {value: 0x812d, lo: 0xb2, hi: 0xb2},
+       {value: 0x8132, lo: 0xb3, hi: 0xb3},
+       {value: 0x812d, lo: 0xbd, hi: 0xbd},
+       // Block 0xd, offset 0x63
+       {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 0x68
+       {value: 0x0000, lo: 0x01},
+       {value: 0x812d, lo: 0x99, hi: 0x9b},
+       // Block 0xf, offset 0x6a
+       {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 0x72
+       {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: 0x451c, lo: 0x98, hi: 0x9f},
+       // Block 0x11, offset 0x79
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8102, lo: 0xbc, hi: 0xbc},
+       {value: 0x9900, lo: 0xbe, hi: 0xbe},
+       // Block 0x12, offset 0x7c
+       {value: 0x0008, lo: 0x07},
+       {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: 0x455c, lo: 0x9c, hi: 0x9d},
+       {value: 0x456c, lo: 0x9f, hi: 0x9f},
+       {value: 0x8132, lo: 0xbe, hi: 0xbe},
+       // Block 0x13, offset 0x84
+       {value: 0x0000, lo: 0x03},
+       {value: 0x4594, lo: 0xb3, hi: 0xb3},
+       {value: 0x459c, lo: 0xb6, hi: 0xb6},
+       {value: 0x8102, lo: 0xbc, hi: 0xbc},
+       // Block 0x14, offset 0x88
+       {value: 0x0008, lo: 0x03},
+       {value: 0x8104, lo: 0x8d, hi: 0x8d},
+       {value: 0x4574, lo: 0x99, hi: 0x9b},
+       {value: 0x458c, lo: 0x9e, hi: 0x9e},
+       // Block 0x15, offset 0x8c
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8102, lo: 0xbc, hi: 0xbc},
+       // Block 0x16, offset 0x8e
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8104, lo: 0x8d, hi: 0x8d},
+       // Block 0x17, offset 0x90
+       {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: 0x45a4, lo: 0x9c, hi: 0x9c},
+       {value: 0x45ac, lo: 0x9d, hi: 0x9d},
+       // Block 0x18, offset 0x99
+       {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 0x9d
+       {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 0xa4
+       {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 0xa9
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8102, lo: 0xbc, hi: 0xbc},
+       {value: 0xa000, lo: 0xbf, hi: 0xbf},
+       // Block 0x1c, offset 0xac
+       {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 0xb6
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8104, lo: 0xbb, hi: 0xbc},
+       {value: 0x9900, lo: 0xbe, hi: 0xbe},
+       // Block 0x1e, offset 0xb9
+       {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 0xc0
+       {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 0xc8
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8122, lo: 0xb8, hi: 0xb9},
+       {value: 0x8104, lo: 0xba, hi: 0xba},
+       // Block 0x21, offset 0xcb
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8123, lo: 0x88, hi: 0x8b},
+       // Block 0x22, offset 0xcd
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8124, lo: 0xb8, hi: 0xb9},
+       // Block 0x23, offset 0xcf
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8125, lo: 0x88, hi: 0x8b},
+       // Block 0x24, offset 0xd1
+       {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 0x25, offset 0xd6
+       {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: 0x4a84, lo: 0xb3, hi: 0xb3},
+       {value: 0x8128, lo: 0xb4, hi: 0xb4},
+       {value: 0x4a8d, lo: 0xb5, hi: 0xb5},
+       {value: 0x45b4, lo: 0xb6, hi: 0xb6},
+       {value: 0x8200, lo: 0xb7, hi: 0xb7},
+       {value: 0x45bc, lo: 0xb8, hi: 0xb8},
+       {value: 0x8200, lo: 0xb9, hi: 0xb9},
+       {value: 0x8127, lo: 0xba, hi: 0xbd},
+       // Block 0x26, offset 0xe7
+       {value: 0x0000, lo: 0x0b},
+       {value: 0x8127, lo: 0x80, hi: 0x80},
+       {value: 0x4a96, 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 0xf3
+       {value: 0x0000, lo: 0x01},
+       {value: 0x812d, lo: 0x86, hi: 0x86},
+       // Block 0x28, offset 0xf5
+       {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 0xfb
+       {value: 0x0000, lo: 0x01},
+       {value: 0x812d, lo: 0x8d, hi: 0x8d},
+       // Block 0x2a, offset 0xfd
+       {value: 0x0000, lo: 0x01},
+       {value: 0xa000, lo: 0x80, hi: 0x92},
+       // Block 0x2b, offset 0xff
+       {value: 0x0000, lo: 0x01},
+       {value: 0xb900, lo: 0xa1, hi: 0xb5},
+       // Block 0x2c, offset 0x101
+       {value: 0x0000, lo: 0x01},
+       {value: 0x9900, lo: 0xa8, hi: 0xbf},
+       // Block 0x2d, offset 0x103
+       {value: 0x0000, lo: 0x01},
+       {value: 0x9900, lo: 0x80, hi: 0x82},
+       // Block 0x2e, offset 0x105
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8132, lo: 0x9d, hi: 0x9f},
+       // Block 0x2f, offset 0x107
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8104, lo: 0x94, hi: 0x94},
+       {value: 0x8104, lo: 0xb4, hi: 0xb4},
+       // Block 0x30, offset 0x10a
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8104, lo: 0x92, hi: 0x92},
+       {value: 0x8132, lo: 0x9d, hi: 0x9d},
+       // Block 0x31, offset 0x10d
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8131, lo: 0xa9, hi: 0xa9},
+       // Block 0x32, offset 0x10f
+       {value: 0x0004, lo: 0x02},
+       {value: 0x812e, lo: 0xb9, hi: 0xba},
+       {value: 0x812d, lo: 0xbb, hi: 0xbb},
+       // Block 0x33, offset 0x112
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8132, lo: 0x97, hi: 0x97},
+       {value: 0x812d, lo: 0x98, hi: 0x98},
+       // Block 0x34, offset 0x115
+       {value: 0x0000, lo: 0x03},
+       {value: 0x8104, lo: 0xa0, hi: 0xa0},
+       {value: 0x8132, lo: 0xb5, hi: 0xbc},
+       {value: 0x812d, lo: 0xbf, hi: 0xbf},
+       // Block 0x35, offset 0x119
+       {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 0x36, offset 0x11e
+       {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 0x37, offset 0x127
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8104, lo: 0xaa, hi: 0xab},
+       // Block 0x38, offset 0x129
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8102, lo: 0xa6, hi: 0xa6},
+       {value: 0x8104, lo: 0xb2, hi: 0xb3},
+       // Block 0x39, offset 0x12c
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8102, lo: 0xb7, hi: 0xb7},
+       // Block 0x3a, offset 0x12e
+       {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 0x3b, offset 0x139
+       {value: 0x0004, lo: 0x03},
+       {value: 0x0433, lo: 0x80, hi: 0x81},
+       {value: 0x8100, lo: 0x97, hi: 0x97},
+       {value: 0x8100, lo: 0xbe, hi: 0xbe},
+       // Block 0x3c, offset 0x13d
+       {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 0x3d, offset 0x14b
+       {value: 0x427b, lo: 0x02},
+       {value: 0x01b8, lo: 0xa6, hi: 0xa6},
+       {value: 0x0057, lo: 0xaa, hi: 0xab},
+       // Block 0x3e, offset 0x14e
+       {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 0x3f, offset 0x154
+       {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 0x40, offset 0x15a
+       {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 0x41, offset 0x165
+       {value: 0x0007, lo: 0x03},
+       {value: 0x3c68, lo: 0xa0, hi: 0xa1},
+       {value: 0x3c92, lo: 0xa2, hi: 0xa3},
+       {value: 0x3cbc, lo: 0xaa, hi: 0xad},
+       // Block 0x42, offset 0x169
+       {value: 0x0004, lo: 0x01},
+       {value: 0x048b, lo: 0xa9, hi: 0xaa},
+       // Block 0x43, offset 0x16b
+       {value: 0x0000, lo: 0x01},
+       {value: 0x44dd, lo: 0x9c, hi: 0x9c},
+       // Block 0x44, offset 0x16d
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8132, lo: 0xaf, hi: 0xb1},
+       // Block 0x45, offset 0x16f
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8104, lo: 0xbf, hi: 0xbf},
+       // Block 0x46, offset 0x171
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8132, lo: 0xa0, hi: 0xbf},
+       // Block 0x47, offset 0x173
+       {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 0x48, offset 0x179
+       {value: 0x0000, lo: 0x03},
+       {value: 0x4a9f, lo: 0xb3, hi: 0xb3},
+       {value: 0x4a9f, lo: 0xb5, hi: 0xb6},
+       {value: 0x4a9f, lo: 0xba, hi: 0xbf},
+       // Block 0x49, offset 0x17d
+       {value: 0x0000, lo: 0x01},
+       {value: 0x4a9f, lo: 0x8f, hi: 0xa3},
+       // Block 0x4a, offset 0x17f
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8100, lo: 0xae, hi: 0xbe},
+       // Block 0x4b, offset 0x181
+       {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 0x4c, offset 0x189
+       {value: 0x0000, lo: 0x03},
+       {value: 0x8100, lo: 0x80, hi: 0x80},
+       {value: 0x8100, lo: 0x8b, hi: 0x8b},
+       {value: 0x8100, lo: 0x8e, hi: 0x8e},
+       // Block 0x4d, offset 0x18d
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8132, lo: 0xaf, hi: 0xaf},
+       {value: 0x8132, lo: 0xb4, hi: 0xbd},
+       // Block 0x4e, offset 0x190
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8132, lo: 0x9e, hi: 0x9f},
+       // Block 0x4f, offset 0x192
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8132, lo: 0xb0, hi: 0xb1},
+       // Block 0x50, offset 0x194
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8104, lo: 0x86, hi: 0x86},
+       // Block 0x51, offset 0x196
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8104, lo: 0x84, hi: 0x84},
+       {value: 0x8132, lo: 0xa0, hi: 0xb1},
+       // Block 0x52, offset 0x199
+       {value: 0x0000, lo: 0x01},
+       {value: 0x812d, lo: 0xab, hi: 0xad},
+       // Block 0x53, offset 0x19b
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8104, lo: 0x93, hi: 0x93},
+       // Block 0x54, offset 0x19d
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8102, lo: 0xb3, hi: 0xb3},
+       // Block 0x55, offset 0x19f
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8104, lo: 0x80, hi: 0x80},
+       // Block 0x56, offset 0x1a1
+       {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 0x57, offset 0x1a7
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8132, lo: 0x81, hi: 0x81},
+       {value: 0x8104, lo: 0xb6, hi: 0xb6},
+       // Block 0x58, offset 0x1aa
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8104, lo: 0xad, hi: 0xad},
+       // Block 0x59, offset 0x1ac
+       {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 0x5a, offset 0x1b3
+       {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 0x5b, offset 0x1b9
+       {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 0x5c, offset 0x1bf
+       {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 0x5d, offset 0x1c7
+       {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 0x5e, offset 0x1cd
+       {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 0x5f, offset 0x1d3
+       {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 0x60, offset 0x1d9
+       {value: 0x0000, lo: 0x03},
+       {value: 0xc600, lo: 0x80, hi: 0x87},
+       {value: 0xe500, lo: 0x88, hi: 0x88},
+       {value: 0xc600, lo: 0x89, hi: 0xa3},
+       // Block 0x61, offset 0x1dd
+       {value: 0x0006, lo: 0x0d},
+       {value: 0x4390, lo: 0x9d, hi: 0x9d},
+       {value: 0x8115, lo: 0x9e, hi: 0x9e},
+       {value: 0x4402, lo: 0x9f, hi: 0x9f},
+       {value: 0x43f0, lo: 0xaa, hi: 0xab},
+       {value: 0x44f4, lo: 0xac, hi: 0xac},
+       {value: 0x44fc, lo: 0xad, hi: 0xad},
+       {value: 0x4348, lo: 0xae, hi: 0xb1},
+       {value: 0x4366, lo: 0xb2, hi: 0xb4},
+       {value: 0x437e, lo: 0xb5, hi: 0xb6},
+       {value: 0x438a, lo: 0xb8, hi: 0xb8},
+       {value: 0x4396, lo: 0xb9, hi: 0xbb},
+       {value: 0x43ae, lo: 0xbc, hi: 0xbc},
+       {value: 0x43b4, lo: 0xbe, hi: 0xbe},
+       // Block 0x62, offset 0x1eb
+       {value: 0x0006, lo: 0x08},
+       {value: 0x43ba, lo: 0x80, hi: 0x81},
+       {value: 0x43c6, lo: 0x83, hi: 0x84},
+       {value: 0x43d8, lo: 0x86, hi: 0x89},
+       {value: 0x43fc, lo: 0x8a, hi: 0x8a},
+       {value: 0x4378, lo: 0x8b, hi: 0x8b},
+       {value: 0x4360, lo: 0x8c, hi: 0x8c},
+       {value: 0x43a8, lo: 0x8d, hi: 0x8d},
+       {value: 0x43d2, lo: 0x8e, hi: 0x8e},
+       // Block 0x63, offset 0x1f4
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8100, lo: 0xa4, hi: 0xa5},
+       {value: 0x8100, lo: 0xb0, hi: 0xb1},
+       // Block 0x64, offset 0x1f7
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8100, lo: 0x9b, hi: 0x9d},
+       {value: 0x8200, lo: 0x9e, hi: 0xa3},
+       // Block 0x65, offset 0x1fa
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8100, lo: 0x90, hi: 0x90},
+       // Block 0x66, offset 0x1fc
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8100, lo: 0x99, hi: 0x99},
+       {value: 0x8200, lo: 0xb2, hi: 0xb4},
+       // Block 0x67, offset 0x1ff
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8100, lo: 0xbc, hi: 0xbd},
+       // Block 0x68, offset 0x201
+       {value: 0x0000, lo: 0x03},
+       {value: 0x8132, lo: 0xa0, hi: 0xa6},
+       {value: 0x812d, lo: 0xa7, hi: 0xad},
+       {value: 0x8132, lo: 0xae, hi: 0xaf},
+       // Block 0x69, offset 0x205
+       {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 0x6a, offset 0x20a
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8100, lo: 0x81, hi: 0x8c},
+       // Block 0x6b, offset 0x20c
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8100, lo: 0xb5, hi: 0xba},
+       // Block 0x6c, offset 0x20e
+       {value: 0x0000, lo: 0x04},
+       {value: 0x4a9f, lo: 0x9e, hi: 0x9f},
+       {value: 0x4a9f, lo: 0xa3, hi: 0xa3},
+       {value: 0x4a9f, lo: 0xa5, hi: 0xa6},
+       {value: 0x4a9f, lo: 0xaa, hi: 0xaf},
+       // Block 0x6d, offset 0x213
+       {value: 0x0000, lo: 0x05},
+       {value: 0x4a9f, lo: 0x82, hi: 0x87},
+       {value: 0x4a9f, lo: 0x8a, hi: 0x8f},
+       {value: 0x4a9f, lo: 0x92, hi: 0x97},
+       {value: 0x4a9f, lo: 0x9a, hi: 0x9c},
+       {value: 0x8100, lo: 0xa3, hi: 0xa3},
+       // Block 0x6e, offset 0x219
+       {value: 0x0000, lo: 0x01},
+       {value: 0x812d, lo: 0xbd, hi: 0xbd},
+       // Block 0x6f, offset 0x21b
+       {value: 0x0000, lo: 0x01},
+       {value: 0x812d, lo: 0xa0, hi: 0xa0},
+       // Block 0x70, offset 0x21d
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8132, lo: 0xb6, hi: 0xba},
+       // Block 0x71, offset 0x21f
+       {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 0x72, offset 0x225
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8132, lo: 0xa5, hi: 0xa5},
+       {value: 0x812d, lo: 0xa6, hi: 0xa6},
+       // Block 0x73, offset 0x228
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8132, lo: 0xa4, hi: 0xa7},
+       // Block 0x74, offset 0x22a
+       {value: 0x0000, lo: 0x05},
+       {value: 0x812d, lo: 0x86, hi: 0x87},
+       {value: 0x8132, lo: 0x88, hi: 0x8a},
+       {value: 0x812d, lo: 0x8b, hi: 0x8b},
+       {value: 0x8132, lo: 0x8c, hi: 0x8c},
+       {value: 0x812d, lo: 0x8d, hi: 0x90},
+       // Block 0x75, offset 0x230
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8104, lo: 0x86, hi: 0x86},
+       {value: 0x8104, lo: 0xbf, hi: 0xbf},
+       // Block 0x76, offset 0x233
+       {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 0x23b
+       {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 0x242
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8104, lo: 0x80, hi: 0x80},
+       {value: 0x8102, lo: 0x8a, hi: 0x8a},
+       // Block 0x79, offset 0x245
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8104, lo: 0xb5, hi: 0xb5},
+       {value: 0x8102, lo: 0xb6, hi: 0xb6},
+       // Block 0x7a, offset 0x248
+       {value: 0x0002, lo: 0x01},
+       {value: 0x8102, lo: 0xa9, hi: 0xaa},
+       // Block 0x7b, offset 0x24a
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8102, lo: 0xbb, hi: 0xbc},
+       {value: 0x9900, lo: 0xbe, hi: 0xbe},
+       // Block 0x7c, offset 0x24d
+       {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 0x7d, offset 0x255
+       {value: 0x0000, lo: 0x03},
+       {value: 0x8104, lo: 0x82, hi: 0x82},
+       {value: 0x8102, lo: 0x86, hi: 0x86},
+       {value: 0x8132, lo: 0x9e, hi: 0x9e},
+       // Block 0x7e, offset 0x259
+       {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 0x7f, offset 0x260
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8104, lo: 0x82, hi: 0x82},
+       {value: 0x8102, lo: 0x83, hi: 0x83},
+       // Block 0x80, offset 0x263
+       {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 0x81, offset 0x269
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8102, lo: 0x80, hi: 0x80},
+       // Block 0x82, offset 0x26b
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8104, lo: 0xb6, hi: 0xb6},
+       {value: 0x8102, lo: 0xb7, hi: 0xb7},
+       // Block 0x83, offset 0x26e
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8104, lo: 0xab, hi: 0xab},
+       // Block 0x84, offset 0x270
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8104, lo: 0xb9, hi: 0xb9},
+       {value: 0x8102, lo: 0xba, hi: 0xba},
+       // Block 0x85, offset 0x273
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8104, lo: 0xb4, hi: 0xb4},
+       // Block 0x86, offset 0x275
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8104, lo: 0x87, hi: 0x87},
+       // Block 0x87, offset 0x277
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8104, lo: 0x99, hi: 0x99},
+       // Block 0x88, offset 0x279
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8102, lo: 0x82, hi: 0x82},
+       {value: 0x8104, lo: 0x84, hi: 0x85},
+       // Block 0x89, offset 0x27c
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8104, lo: 0x97, hi: 0x97},
+       // Block 0x8a, offset 0x27e
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8101, lo: 0xb0, hi: 0xb4},
+       // Block 0x8b, offset 0x280
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8132, lo: 0xb0, hi: 0xb6},
+       // Block 0x8c, offset 0x282
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8101, lo: 0x9e, hi: 0x9e},
+       // Block 0x8d, offset 0x284
+       {value: 0x0000, lo: 0x0c},
+       {value: 0x45cc, lo: 0x9e, hi: 0x9e},
+       {value: 0x45d6, lo: 0x9f, hi: 0x9f},
+       {value: 0x460a, lo: 0xa0, hi: 0xa0},
+       {value: 0x4618, lo: 0xa1, hi: 0xa1},
+       {value: 0x4626, lo: 0xa2, hi: 0xa2},
+       {value: 0x4634, lo: 0xa3, hi: 0xa3},
+       {value: 0x4642, 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 0x8e, offset 0x291
+       {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: 0x45e0, lo: 0xbb, hi: 0xbb},
+       {value: 0x45ea, lo: 0xbc, hi: 0xbc},
+       {value: 0x4650, lo: 0xbd, hi: 0xbd},
+       {value: 0x466c, lo: 0xbe, hi: 0xbe},
+       {value: 0x465e, lo: 0xbf, hi: 0xbf},
+       // Block 0x8f, offset 0x29b
+       {value: 0x0000, lo: 0x01},
+       {value: 0x467a, lo: 0x80, hi: 0x80},
+       // Block 0x90, offset 0x29d
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8132, lo: 0x82, hi: 0x84},
+       // Block 0x91, offset 0x29f
+       {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 0x92, offset 0x2a5
+       {value: 0x0000, lo: 0x01},
+       {value: 0x812d, lo: 0x90, hi: 0x96},
+       // Block 0x93, offset 0x2a7
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8132, lo: 0x84, hi: 0x89},
+       {value: 0x8102, lo: 0x8a, hi: 0x8a},
+       // Block 0x94, offset 0x2aa
+       {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: 17248 bytes (16.84 KiB). Checksum: 4fb368372b6b1b27.
+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 < 92:
+               return uint16(nfkcValues[n<<6+uint32(b)])
+       default:
+               n -= 92
+               return uint16(nfkcSparse.lookup(n, b))
+       }
+}
+
+// nfkcValues: 94 blocks, 6016 entries, 12032 bytes
+// The third block is the zero block.
+var nfkcValues = [6016]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: 0x4688, 0xc3: 0x2f79, 0xc4: 0x4697, 0xc5: 0x469c,
+       0xc6: 0xa000, 0xc7: 0x46a6, 0xc8: 0x2fe2, 0xc9: 0x2fe7, 0xca: 0x46ab, 0xcb: 0x2ffb,
+       0xcc: 0x306e, 0xcd: 0x3073, 0xce: 0x3078, 0xcf: 0x46bf, 0xd1: 0x3104,
+       0xd2: 0x3127, 0xd3: 0x312c, 0xd4: 0x46c9, 0xd5: 0x46ce, 0xd6: 0x46dd,
+       0xd8: 0xa000, 0xd9: 0x31b3, 0xda: 0x31b8, 0xdb: 0x31bd, 0xdc: 0x470f, 0xdd: 0x3235,
+       0xe0: 0x327b, 0xe1: 0x3280, 0xe2: 0x4719, 0xe3: 0x3285,
+       0xe4: 0x4728, 0xe5: 0x472d, 0xe6: 0xa000, 0xe7: 0x4737, 0xe8: 0x32ee, 0xe9: 0x32f3,
+       0xea: 0x473c, 0xeb: 0x3307, 0xec: 0x337f, 0xed: 0x3384, 0xee: 0x3389, 0xef: 0x4750,
+       0xf1: 0x3415, 0xf2: 0x3438, 0xf3: 0x343d, 0xf4: 0x475a, 0xf5: 0x475f,
+       0xf6: 0x476e, 0xf8: 0xa000, 0xf9: 0x34c9, 0xfa: 0x34ce, 0xfb: 0x34d3,
+       0xfc: 0x47a0, 0xfd: 0x3550, 0xff: 0x3569,
+       // Block 0x4, offset 0x100
+       0x100: 0x2f7e, 0x101: 0x328a, 0x102: 0x468d, 0x103: 0x471e, 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: 0x46b0, 0x113: 0x4741, 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: 0x46d3, 0x14d: 0x4764, 0x14e: 0x3131, 0x14f: 0x3442, 0x150: 0x313b, 0x151: 0x344c,
+       0x154: 0x3159, 0x155: 0x346a, 0x156: 0x3172, 0x157: 0x3483,
+       0x158: 0x3163, 0x159: 0x3474, 0x15a: 0x46f6, 0x15b: 0x4787, 0x15c: 0x317c, 0x15d: 0x348d,
+       0x15e: 0x318b, 0x15f: 0x349c, 0x160: 0x46fb, 0x161: 0x478c, 0x162: 0x31a4, 0x163: 0x34ba,
+       0x164: 0x3195, 0x165: 0x34ab, 0x168: 0x4705, 0x169: 0x4796,
+       0x16a: 0x470a, 0x16b: 0x479b, 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: 0x46ec, 0x1ab: 0x477d, 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: 0x4692, 0x1e7: 0x4723, 0x1e8: 0x46ba, 0x1e9: 0x474b,
+       0x1ea: 0x395f, 0x1eb: 0x3aee, 0x1ec: 0x393c, 0x1ed: 0x3acb, 0x1ee: 0x46d8, 0x1ef: 0x4769,
+       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: 0x49ae, 0x241: 0x49b3, 0x242: 0x9932, 0x243: 0x49b8, 0x244: 0x4a71, 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: 0x447b,
+       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: 0x47fe, 0x2ad: 0x3697, 0x2ae: 0x4828, 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: 0x4840, 0x2cb: 0x485e,
+       0x2cc: 0x36c7, 0x2cd: 0x36df, 0x2ce: 0x4876, 0x2d0: 0x01be, 0x2d1: 0x01d0,
+       0x2d2: 0x01ac, 0x2d3: 0x430c, 0x2d4: 0x4312, 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
+       0x413: 0x812d, 0x414: 0x8132, 0x415: 0x8132, 0x416: 0x8132, 0x417: 0x8132,
+       0x418: 0x8132, 0x419: 0x8132, 0x41a: 0x8132, 0x41b: 0x8132, 0x41c: 0x8132, 0x41d: 0x8132,
+       0x41e: 0x8132, 0x41f: 0x8132, 0x420: 0x8132, 0x421: 0x8132, 0x423: 0x812d,
+       0x424: 0x8132, 0x425: 0x8132, 0x426: 0x812d, 0x427: 0x8132, 0x428: 0x8132, 0x429: 0x812d,
+       0x42a: 0x8132, 0x42b: 0x8132, 0x42c: 0x8132, 0x42d: 0x812d, 0x42e: 0x812d, 0x42f: 0x812d,
+       0x430: 0x8116, 0x431: 0x8117, 0x432: 0x8118, 0x433: 0x8132, 0x434: 0x8132, 0x435: 0x8132,
+       0x436: 0x812d, 0x437: 0x8132, 0x438: 0x8132, 0x439: 0x812d, 0x43a: 0x812d, 0x43b: 0x8132,
+       0x43c: 0x8132, 0x43d: 0x8132, 0x43e: 0x8132, 0x43f: 0x8132,
+       // Block 0x11, offset 0x440
+       0x445: 0xa000,
+       0x446: 0x2d26, 0x447: 0xa000, 0x448: 0x2d2e, 0x449: 0xa000, 0x44a: 0x2d36, 0x44b: 0xa000,
+       0x44c: 0x2d3e, 0x44d: 0xa000, 0x44e: 0x2d46, 0x451: 0xa000,
+       0x452: 0x2d4e,
+       0x474: 0x8102, 0x475: 0x9900,
+       0x47a: 0xa000, 0x47b: 0x2d56,
+       0x47c: 0xa000, 0x47d: 0x2d5e, 0x47e: 0xa000, 0x47f: 0xa000,
+       // Block 0x12, offset 0x480
+       0x480: 0x0069, 0x481: 0x006b, 0x482: 0x006f, 0x483: 0x0083, 0x484: 0x00f5, 0x485: 0x00f8,
+       0x486: 0x0413, 0x487: 0x0085, 0x488: 0x0089, 0x489: 0x008b, 0x48a: 0x0104, 0x48b: 0x0107,
+       0x48c: 0x010a, 0x48d: 0x008f, 0x48f: 0x0097, 0x490: 0x009b, 0x491: 0x00e0,
+       0x492: 0x009f, 0x493: 0x00fe, 0x494: 0x0417, 0x495: 0x041b, 0x496: 0x00a1, 0x497: 0x00a9,
+       0x498: 0x00ab, 0x499: 0x0423, 0x49a: 0x012b, 0x49b: 0x00ad, 0x49c: 0x0427, 0x49d: 0x01be,
+       0x49e: 0x01c1, 0x49f: 0x01c4, 0x4a0: 0x01fa, 0x4a1: 0x01fd, 0x4a2: 0x0093, 0x4a3: 0x00a5,
+       0x4a4: 0x00ab, 0x4a5: 0x00ad, 0x4a6: 0x01be, 0x4a7: 0x01c1, 0x4a8: 0x01eb, 0x4a9: 0x01fa,
+       0x4aa: 0x01fd,
+       0x4b8: 0x020c,
+       // Block 0x13, offset 0x4c0
+       0x4db: 0x00fb, 0x4dc: 0x0087, 0x4dd: 0x0101,
+       0x4de: 0x00d4, 0x4df: 0x010a, 0x4e0: 0x008d, 0x4e1: 0x010d, 0x4e2: 0x0110, 0x4e3: 0x0116,
+       0x4e4: 0x011c, 0x4e5: 0x011f, 0x4e6: 0x0122, 0x4e7: 0x042b, 0x4e8: 0x016a, 0x4e9: 0x0128,
+       0x4ea: 0x042f, 0x4eb: 0x016d, 0x4ec: 0x0131, 0x4ed: 0x012e, 0x4ee: 0x0134, 0x4ef: 0x0137,
+       0x4f0: 0x013a, 0x4f1: 0x013d, 0x4f2: 0x0140, 0x4f3: 0x014c, 0x4f4: 0x014f, 0x4f5: 0x00ec,
+       0x4f6: 0x0152, 0x4f7: 0x0155, 0x4f8: 0x041f, 0x4f9: 0x0158, 0x4fa: 0x015b, 0x4fb: 0x00b5,
+       0x4fc: 0x015e, 0x4fd: 0x0161, 0x4fe: 0x0164, 0x4ff: 0x01d0,
+       // Block 0x14, offset 0x500
+       0x500: 0x8132, 0x501: 0x8132, 0x502: 0x812d, 0x503: 0x8132, 0x504: 0x8132, 0x505: 0x8132,
+       0x506: 0x8132, 0x507: 0x8132, 0x508: 0x8132, 0x509: 0x8132, 0x50a: 0x812d, 0x50b: 0x8132,
+       0x50c: 0x8132, 0x50d: 0x8135, 0x50e: 0x812a, 0x50f: 0x812d, 0x510: 0x8129, 0x511: 0x8132,
+       0x512: 0x8132, 0x513: 0x8132, 0x514: 0x8132, 0x515: 0x8132, 0x516: 0x8132, 0x517: 0x8132,
+       0x518: 0x8132, 0x519: 0x8132, 0x51a: 0x8132, 0x51b: 0x8132, 0x51c: 0x8132, 0x51d: 0x8132,
+       0x51e: 0x8132, 0x51f: 0x8132, 0x520: 0x8132, 0x521: 0x8132, 0x522: 0x8132, 0x523: 0x8132,
+       0x524: 0x8132, 0x525: 0x8132, 0x526: 0x8132, 0x527: 0x8132, 0x528: 0x8132, 0x529: 0x8132,
+       0x52a: 0x8132, 0x52b: 0x8132, 0x52c: 0x8132, 0x52d: 0x8132, 0x52e: 0x8132, 0x52f: 0x8132,
+       0x530: 0x8132, 0x531: 0x8132, 0x532: 0x8132, 0x533: 0x8132, 0x534: 0x8132, 0x535: 0x8132,
+       0x536: 0x8133, 0x537: 0x8131, 0x538: 0x8131, 0x539: 0x812d, 0x53b: 0x8132,
+       0x53c: 0x8134, 0x53d: 0x812d, 0x53e: 0x8132, 0x53f: 0x812d,
+       // Block 0x15, offset 0x540
+       0x540: 0x2f97, 0x541: 0x32a3, 0x542: 0x2fa1, 0x543: 0x32ad, 0x544: 0x2fa6, 0x545: 0x32b2,
+       0x546: 0x2fab, 0x547: 0x32b7, 0x548: 0x38cc, 0x549: 0x3a5b, 0x54a: 0x2fc4, 0x54b: 0x32d0,
+       0x54c: 0x2fce, 0x54d: 0x32da, 0x54e: 0x2fdd, 0x54f: 0x32e9, 0x550: 0x2fd3, 0x551: 0x32df,
+       0x552: 0x2fd8, 0x553: 0x32e4, 0x554: 0x38ef, 0x555: 0x3a7e, 0x556: 0x38f6, 0x557: 0x3a85,
+       0x558: 0x3019, 0x559: 0x3325, 0x55a: 0x301e, 0x55b: 0x332a, 0x55c: 0x3904, 0x55d: 0x3a93,
+       0x55e: 0x3023, 0x55f: 0x332f, 0x560: 0x3032, 0x561: 0x333e, 0x562: 0x3050, 0x563: 0x335c,
+       0x564: 0x305f, 0x565: 0x336b, 0x566: 0x3055, 0x567: 0x3361, 0x568: 0x3064, 0x569: 0x3370,
+       0x56a: 0x3069, 0x56b: 0x3375, 0x56c: 0x30af, 0x56d: 0x33bb, 0x56e: 0x390b, 0x56f: 0x3a9a,
+       0x570: 0x30b9, 0x571: 0x33ca, 0x572: 0x30c3, 0x573: 0x33d4, 0x574: 0x30cd, 0x575: 0x33de,
+       0x576: 0x46c4, 0x577: 0x4755, 0x578: 0x3912, 0x579: 0x3aa1, 0x57a: 0x30e6, 0x57b: 0x33f7,
+       0x57c: 0x30e1, 0x57d: 0x33f2, 0x57e: 0x30eb, 0x57f: 0x33fc,
+       // Block 0x16, offset 0x580
+       0x580: 0x30f0, 0x581: 0x3401, 0x582: 0x30f5, 0x583: 0x3406, 0x584: 0x3109, 0x585: 0x341a,
+       0x586: 0x3113, 0x587: 0x3424, 0x588: 0x3122, 0x589: 0x3433, 0x58a: 0x311d, 0x58b: 0x342e,
+       0x58c: 0x3935, 0x58d: 0x3ac4, 0x58e: 0x3943, 0x58f: 0x3ad2, 0x590: 0x394a, 0x591: 0x3ad9,
+       0x592: 0x3951, 0x593: 0x3ae0, 0x594: 0x314f, 0x595: 0x3460, 0x596: 0x3154, 0x597: 0x3465,
+       0x598: 0x315e, 0x599: 0x346f, 0x59a: 0x46f1, 0x59b: 0x4782, 0x59c: 0x3997, 0x59d: 0x3b26,
+       0x59e: 0x3177, 0x59f: 0x3488, 0x5a0: 0x3181, 0x5a1: 0x3492, 0x5a2: 0x4700, 0x5a3: 0x4791,
+       0x5a4: 0x399e, 0x5a5: 0x3b2d, 0x5a6: 0x39a5, 0x5a7: 0x3b34, 0x5a8: 0x39ac, 0x5a9: 0x3b3b,
+       0x5aa: 0x3190, 0x5ab: 0x34a1, 0x5ac: 0x319a, 0x5ad: 0x34b0, 0x5ae: 0x31ae, 0x5af: 0x34c4,
+       0x5b0: 0x31a9, 0x5b1: 0x34bf, 0x5b2: 0x31ea, 0x5b3: 0x3500, 0x5b4: 0x31f9, 0x5b5: 0x350f,
+       0x5b6: 0x31f4, 0x5b7: 0x350a, 0x5b8: 0x39b3, 0x5b9: 0x3b42, 0x5ba: 0x39ba, 0x5bb: 0x3b49,
+       0x5bc: 0x31fe, 0x5bd: 0x3514, 0x5be: 0x3203, 0x5bf: 0x3519,
+       // Block 0x17, offset 0x5c0
+       0x5c0: 0x3208, 0x5c1: 0x351e, 0x5c2: 0x320d, 0x5c3: 0x3523, 0x5c4: 0x321c, 0x5c5: 0x3532,
+       0x5c6: 0x3217, 0x5c7: 0x352d, 0x5c8: 0x3221, 0x5c9: 0x353c, 0x5ca: 0x3226, 0x5cb: 0x3541,
+       0x5cc: 0x322b, 0x5cd: 0x3546, 0x5ce: 0x3249, 0x5cf: 0x3564, 0x5d0: 0x3262, 0x5d1: 0x3582,
+       0x5d2: 0x3271, 0x5d3: 0x3591, 0x5d4: 0x3276, 0x5d5: 0x3596, 0x5d6: 0x337a, 0x5d7: 0x34a6,
+       0x5d8: 0x3537, 0x5d9: 0x3573, 0x5da: 0x1be0, 0x5db: 0x42d7,
+       0x5e0: 0x46a1, 0x5e1: 0x4732, 0x5e2: 0x2f83, 0x5e3: 0x328f,
+       0x5e4: 0x3878, 0x5e5: 0x3a07, 0x5e6: 0x3871, 0x5e7: 0x3a00, 0x5e8: 0x3886, 0x5e9: 0x3a15,
+       0x5ea: 0x387f, 0x5eb: 0x3a0e, 0x5ec: 0x38be, 0x5ed: 0x3a4d, 0x5ee: 0x3894, 0x5ef: 0x3a23,
+       0x5f0: 0x388d, 0x5f1: 0x3a1c, 0x5f2: 0x38a2, 0x5f3: 0x3a31, 0x5f4: 0x389b, 0x5f5: 0x3a2a,
+       0x5f6: 0x38c5, 0x5f7: 0x3a54, 0x5f8: 0x46b5, 0x5f9: 0x4746, 0x5fa: 0x3000, 0x5fb: 0x330c,
+       0x5fc: 0x2fec, 0x5fd: 0x32f8, 0x5fe: 0x38da, 0x5ff: 0x3a69,
+       // Block 0x18, offset 0x600
+       0x600: 0x38d3, 0x601: 0x3a62, 0x602: 0x38e8, 0x603: 0x3a77, 0x604: 0x38e1, 0x605: 0x3a70,
+       0x606: 0x38fd, 0x607: 0x3a8c, 0x608: 0x3091, 0x609: 0x339d, 0x60a: 0x30a5, 0x60b: 0x33b1,
+       0x60c: 0x46e7, 0x60d: 0x4778, 0x60e: 0x3136, 0x60f: 0x3447, 0x610: 0x3920, 0x611: 0x3aaf,
+       0x612: 0x3919, 0x613: 0x3aa8, 0x614: 0x392e, 0x615: 0x3abd, 0x616: 0x3927, 0x617: 0x3ab6,
+       0x618: 0x3989, 0x619: 0x3b18, 0x61a: 0x396d, 0x61b: 0x3afc, 0x61c: 0x3966, 0x61d: 0x3af5,
+       0x61e: 0x397b, 0x61f: 0x3b0a, 0x620: 0x3974, 0x621: 0x3b03, 0x622: 0x3982, 0x623: 0x3b11,
+       0x624: 0x31e5, 0x625: 0x34fb, 0x626: 0x31c7, 0x627: 0x34dd, 0x628: 0x39e4, 0x629: 0x3b73,
+       0x62a: 0x39dd, 0x62b: 0x3b6c, 0x62c: 0x39f2, 0x62d: 0x3b81, 0x62e: 0x39eb, 0x62f: 0x3b7a,
+       0x630: 0x39f9, 0x631: 0x3b88, 0x632: 0x3230, 0x633: 0x354b, 0x634: 0x3258, 0x635: 0x3578,
+       0x636: 0x3253, 0x637: 0x356e, 0x638: 0x323f, 0x639: 0x355a,
+       // Block 0x19, offset 0x640
+       0x640: 0x4804, 0x641: 0x480a, 0x642: 0x491e, 0x643: 0x4936, 0x644: 0x4926, 0x645: 0x493e,
+       0x646: 0x492e, 0x647: 0x4946, 0x648: 0x47aa, 0x649: 0x47b0, 0x64a: 0x488e, 0x64b: 0x48a6,
+       0x64c: 0x4896, 0x64d: 0x48ae, 0x64e: 0x489e, 0x64f: 0x48b6, 0x650: 0x4816, 0x651: 0x481c,
+       0x652: 0x3db8, 0x653: 0x3dc8, 0x654: 0x3dc0, 0x655: 0x3dd0,
+       0x658: 0x47b6, 0x659: 0x47bc, 0x65a: 0x3ce8, 0x65b: 0x3cf8, 0x65c: 0x3cf0, 0x65d: 0x3d00,
+       0x660: 0x482e, 0x661: 0x4834, 0x662: 0x494e, 0x663: 0x4966,
+       0x664: 0x4956, 0x665: 0x496e, 0x666: 0x495e, 0x667: 0x4976, 0x668: 0x47c2, 0x669: 0x47c8,
+       0x66a: 0x48be, 0x66b: 0x48d6, 0x66c: 0x48c6, 0x66d: 0x48de, 0x66e: 0x48ce, 0x66f: 0x48e6,
+       0x670: 0x4846, 0x671: 0x484c, 0x672: 0x3e18, 0x673: 0x3e30, 0x674: 0x3e20, 0x675: 0x3e38,
+       0x676: 0x3e28, 0x677: 0x3e40, 0x678: 0x47ce, 0x679: 0x47d4, 0x67a: 0x3d18, 0x67b: 0x3d30,
+       0x67c: 0x3d20, 0x67d: 0x3d38, 0x67e: 0x3d28, 0x67f: 0x3d40,
+       // Block 0x1a, offset 0x680
+       0x680: 0x4852, 0x681: 0x4858, 0x682: 0x3e48, 0x683: 0x3e58, 0x684: 0x3e50, 0x685: 0x3e60,
+       0x688: 0x47da, 0x689: 0x47e0, 0x68a: 0x3d48, 0x68b: 0x3d58,
+       0x68c: 0x3d50, 0x68d: 0x3d60, 0x690: 0x4864, 0x691: 0x486a,
+       0x692: 0x3e80, 0x693: 0x3e98, 0x694: 0x3e88, 0x695: 0x3ea0, 0x696: 0x3e90, 0x697: 0x3ea8,
+       0x699: 0x47e6, 0x69b: 0x3d68, 0x69d: 0x3d70,
+       0x69f: 0x3d78, 0x6a0: 0x487c, 0x6a1: 0x4882, 0x6a2: 0x497e, 0x6a3: 0x4996,
+       0x6a4: 0x4986, 0x6a5: 0x499e, 0x6a6: 0x498e, 0x6a7: 0x49a6, 0x6a8: 0x47ec, 0x6a9: 0x47f2,
+       0x6aa: 0x48ee, 0x6ab: 0x4906, 0x6ac: 0x48f6, 0x6ad: 0x490e, 0x6ae: 0x48fe, 0x6af: 0x4916,
+       0x6b0: 0x47f8, 0x6b1: 0x431e, 0x6b2: 0x3691, 0x6b3: 0x4324, 0x6b4: 0x4822, 0x6b5: 0x432a,
+       0x6b6: 0x36a3, 0x6b7: 0x4330, 0x6b8: 0x36c1, 0x6b9: 0x4336, 0x6ba: 0x36d9, 0x6bb: 0x433c,
+       0x6bc: 0x4870, 0x6bd: 0x4342,
+       // Block 0x1b, offset 0x6c0
+       0x6c0: 0x3da0, 0x6c1: 0x3da8, 0x6c2: 0x4184, 0x6c3: 0x41a2, 0x6c4: 0x418e, 0x6c5: 0x41ac,
+       0x6c6: 0x4198, 0x6c7: 0x41b6, 0x6c8: 0x3cd8, 0x6c9: 0x3ce0, 0x6ca: 0x40d0, 0x6cb: 0x40ee,
+       0x6cc: 0x40da, 0x6cd: 0x40f8, 0x6ce: 0x40e4, 0x6cf: 0x4102, 0x6d0: 0x3de8, 0x6d1: 0x3df0,
+       0x6d2: 0x41c0, 0x6d3: 0x41de, 0x6d4: 0x41ca, 0x6d5: 0x41e8, 0x6d6: 0x41d4, 0x6d7: 0x41f2,
+       0x6d8: 0x3d08, 0x6d9: 0x3d10, 0x6da: 0x410c, 0x6db: 0x412a, 0x6dc: 0x4116, 0x6dd: 0x4134,
+       0x6de: 0x4120, 0x6df: 0x413e, 0x6e0: 0x3ec0, 0x6e1: 0x3ec8, 0x6e2: 0x41fc, 0x6e3: 0x421a,
+       0x6e4: 0x4206, 0x6e5: 0x4224, 0x6e6: 0x4210, 0x6e7: 0x422e, 0x6e8: 0x3d80, 0x6e9: 0x3d88,
+       0x6ea: 0x4148, 0x6eb: 0x4166, 0x6ec: 0x4152, 0x6ed: 0x4170, 0x6ee: 0x415c, 0x6ef: 0x417a,
+       0x6f0: 0x3685, 0x6f1: 0x367f, 0x6f2: 0x3d90, 0x6f3: 0x368b, 0x6f4: 0x3d98,
+       0x6f6: 0x4810, 0x6f7: 0x3db0, 0x6f8: 0x35f5, 0x6f9: 0x35ef, 0x6fa: 0x35e3, 0x6fb: 0x42ee,
+       0x6fc: 0x35fb, 0x6fd: 0x4287, 0x6fe: 0x01d3, 0x6ff: 0x4287,
+       // Block 0x1c, offset 0x700
+       0x700: 0x42a0, 0x701: 0x4482, 0x702: 0x3dd8, 0x703: 0x369d, 0x704: 0x3de0,
+       0x706: 0x483a, 0x707: 0x3df8, 0x708: 0x3601, 0x709: 0x42f4, 0x70a: 0x360d, 0x70b: 0x42fa,
+       0x70c: 0x3619, 0x70d: 0x4489, 0x70e: 0x4490, 0x70f: 0x4497, 0x710: 0x36b5, 0x711: 0x36af,
+       0x712: 0x3e00, 0x713: 0x44e4, 0x716: 0x36bb, 0x717: 0x3e10,
+       0x718: 0x3631, 0x719: 0x362b, 0x71a: 0x361f, 0x71b: 0x4300, 0x71d: 0x449e,
+       0x71e: 0x44a5, 0x71f: 0x44ac, 0x720: 0x36eb, 0x721: 0x36e5, 0x722: 0x3e68, 0x723: 0x44ec,
+       0x724: 0x36cd, 0x725: 0x36d3, 0x726: 0x36f1, 0x727: 0x3e78, 0x728: 0x3661, 0x729: 0x365b,
+       0x72a: 0x364f, 0x72b: 0x430c, 0x72c: 0x3649, 0x72d: 0x4474, 0x72e: 0x447b, 0x72f: 0x0081,
+       0x732: 0x3eb0, 0x733: 0x36f7, 0x734: 0x3eb8,
+       0x736: 0x4888, 0x737: 0x3ed0, 0x738: 0x363d, 0x739: 0x4306, 0x73a: 0x366d, 0x73b: 0x4318,
+       0x73c: 0x3679, 0x73d: 0x425a, 0x73e: 0x428c,
+       // Block 0x1d, offset 0x740
+       0x740: 0x1bd8, 0x741: 0x1bdc, 0x742: 0x0047, 0x743: 0x1c54, 0x745: 0x1be8,
+       0x746: 0x1bec, 0x747: 0x00e9, 0x749: 0x1c58, 0x74a: 0x008f, 0x74b: 0x0051,
+       0x74c: 0x0051, 0x74d: 0x0051, 0x74e: 0x0091, 0x74f: 0x00da, 0x750: 0x0053, 0x751: 0x0053,
+       0x752: 0x0059, 0x753: 0x0099, 0x755: 0x005d, 0x756: 0x198d,
+       0x759: 0x0061, 0x75a: 0x0063, 0x75b: 0x0065, 0x75c: 0x0065, 0x75d: 0x0065,
+       0x760: 0x199f, 0x761: 0x1bc8, 0x762: 0x19a8,
+       0x764: 0x0075, 0x766: 0x01b8, 0x768: 0x0075,
+       0x76a: 0x0057, 0x76b: 0x42d2, 0x76c: 0x0045, 0x76d: 0x0047, 0x76f: 0x008b,
+       0x770: 0x004b, 0x771: 0x004d, 0x773: 0x005b, 0x774: 0x009f, 0x775: 0x0215,
+       0x776: 0x0218, 0x777: 0x021b, 0x778: 0x021e, 0x779: 0x0093, 0x77b: 0x1b98,
+       0x77c: 0x01e8, 0x77d: 0x01c1, 0x77e: 0x0179, 0x77f: 0x01a0,
+       // Block 0x1e, offset 0x780
+       0x780: 0x0463, 0x785: 0x0049,
+       0x786: 0x0089, 0x787: 0x008b, 0x788: 0x0093, 0x789: 0x0095,
+       0x790: 0x222e, 0x791: 0x223a,
+       0x792: 0x22ee, 0x793: 0x2216, 0x794: 0x229a, 0x795: 0x2222, 0x796: 0x22a0, 0x797: 0x22b8,
+       0x798: 0x22c4, 0x799: 0x2228, 0x79a: 0x22ca, 0x79b: 0x2234, 0x79c: 0x22be, 0x79d: 0x22d0,
+       0x79e: 0x22d6, 0x79f: 0x1cbc, 0x7a0: 0x0053, 0x7a1: 0x195a, 0x7a2: 0x1ba4, 0x7a3: 0x1963,
+       0x7a4: 0x006d, 0x7a5: 0x19ab, 0x7a6: 0x1bd0, 0x7a7: 0x1d48, 0x7a8: 0x1966, 0x7a9: 0x0071,
+       0x7aa: 0x19b7, 0x7ab: 0x1bd4, 0x7ac: 0x0059, 0x7ad: 0x0047, 0x7ae: 0x0049, 0x7af: 0x005b,
+       0x7b0: 0x0093, 0x7b1: 0x19e4, 0x7b2: 0x1c18, 0x7b3: 0x19ed, 0x7b4: 0x00ad, 0x7b5: 0x1a62,
+       0x7b6: 0x1c4c, 0x7b7: 0x1d5c, 0x7b8: 0x19f0, 0x7b9: 0x00b1, 0x7ba: 0x1a65, 0x7bb: 0x1c50,
+       0x7bc: 0x0099, 0x7bd: 0x0087, 0x7be: 0x0089, 0x7bf: 0x009b,
+       // Block 0x1f, offset 0x7c0
+       0x7c1: 0x3c06, 0x7c3: 0xa000, 0x7c4: 0x3c0d, 0x7c5: 0xa000,
+       0x7c7: 0x3c14, 0x7c8: 0xa000, 0x7c9: 0x3c1b,
+       0x7cd: 0xa000,
+       0x7e0: 0x2f65, 0x7e1: 0xa000, 0x7e2: 0x3c29,
+       0x7e4: 0xa000, 0x7e5: 0xa000,
+       0x7ed: 0x3c22, 0x7ee: 0x2f60, 0x7ef: 0x2f6a,
+       0x7f0: 0x3c30, 0x7f1: 0x3c37, 0x7f2: 0xa000, 0x7f3: 0xa000, 0x7f4: 0x3c3e, 0x7f5: 0x3c45,
+       0x7f6: 0xa000, 0x7f7: 0xa000, 0x7f8: 0x3c4c, 0x7f9: 0x3c53, 0x7fa: 0xa000, 0x7fb: 0xa000,
+       0x7fc: 0xa000, 0x7fd: 0xa000,
+       // Block 0x20, offset 0x800
+       0x800: 0x3c5a, 0x801: 0x3c61, 0x802: 0xa000, 0x803: 0xa000, 0x804: 0x3c76, 0x805: 0x3c7d,
+       0x806: 0xa000, 0x807: 0xa000, 0x808: 0x3c84, 0x809: 0x3c8b,
+       0x811: 0xa000,
+       0x812: 0xa000,
+       0x822: 0xa000,
+       0x828: 0xa000, 0x829: 0xa000,
+       0x82b: 0xa000, 0x82c: 0x3ca0, 0x82d: 0x3ca7, 0x82e: 0x3cae, 0x82f: 0x3cb5,
+       0x832: 0xa000, 0x833: 0xa000, 0x834: 0xa000, 0x835: 0xa000,
+       // Block 0x21, offset 0x840
+       0x860: 0x0023, 0x861: 0x0025, 0x862: 0x0027, 0x863: 0x0029,
+       0x864: 0x002b, 0x865: 0x002d, 0x866: 0x002f, 0x867: 0x0031, 0x868: 0x0033, 0x869: 0x1882,
+       0x86a: 0x1885, 0x86b: 0x1888, 0x86c: 0x188b, 0x86d: 0x188e, 0x86e: 0x1891, 0x86f: 0x1894,
+       0x870: 0x1897, 0x871: 0x189a, 0x872: 0x189d, 0x873: 0x18a6, 0x874: 0x1a68, 0x875: 0x1a6c,
+       0x876: 0x1a70, 0x877: 0x1a74, 0x878: 0x1a78, 0x879: 0x1a7c, 0x87a: 0x1a80, 0x87b: 0x1a84,
+       0x87c: 0x1a88, 0x87d: 0x1c80, 0x87e: 0x1c85, 0x87f: 0x1c8a,
+       // Block 0x22, offset 0x880
+       0x880: 0x1c8f, 0x881: 0x1c94, 0x882: 0x1c99, 0x883: 0x1c9e, 0x884: 0x1ca3, 0x885: 0x1ca8,
+       0x886: 0x1cad, 0x887: 0x1cb2, 0x888: 0x187f, 0x889: 0x18a3, 0x88a: 0x18c7, 0x88b: 0x18eb,
+       0x88c: 0x190f, 0x88d: 0x1918, 0x88e: 0x191e, 0x88f: 0x1924, 0x890: 0x192a, 0x891: 0x1b60,
+       0x892: 0x1b64, 0x893: 0x1b68, 0x894: 0x1b6c, 0x895: 0x1b70, 0x896: 0x1b74, 0x897: 0x1b78,
+       0x898: 0x1b7c, 0x899: 0x1b80, 0x89a: 0x1b84, 0x89b: 0x1b88, 0x89c: 0x1af4, 0x89d: 0x1af8,
+       0x89e: 0x1afc, 0x89f: 0x1b00, 0x8a0: 0x1b04, 0x8a1: 0x1b08, 0x8a2: 0x1b0c, 0x8a3: 0x1b10,
+       0x8a4: 0x1b14, 0x8a5: 0x1b18, 0x8a6: 0x1b1c, 0x8a7: 0x1b20, 0x8a8: 0x1b24, 0x8a9: 0x1b28,
+       0x8aa: 0x1b2c, 0x8ab: 0x1b30, 0x8ac: 0x1b34, 0x8ad: 0x1b38, 0x8ae: 0x1b3c, 0x8af: 0x1b40,
+       0x8b0: 0x1b44, 0x8b1: 0x1b48, 0x8b2: 0x1b4c, 0x8b3: 0x1b50, 0x8b4: 0x1b54, 0x8b5: 0x1b58,
+       0x8b6: 0x0043, 0x8b7: 0x0045, 0x8b8: 0x0047, 0x8b9: 0x0049, 0x8ba: 0x004b, 0x8bb: 0x004d,
+       0x8bc: 0x004f, 0x8bd: 0x0051, 0x8be: 0x0053, 0x8bf: 0x0055,
+       // Block 0x23, offset 0x8c0
+       0x8c0: 0x06bf, 0x8c1: 0x06e3, 0x8c2: 0x06ef, 0x8c3: 0x06ff, 0x8c4: 0x0707, 0x8c5: 0x0713,
+       0x8c6: 0x071b, 0x8c7: 0x0723, 0x8c8: 0x072f, 0x8c9: 0x0783, 0x8ca: 0x079b, 0x8cb: 0x07ab,
+       0x8cc: 0x07bb, 0x8cd: 0x07cb, 0x8ce: 0x07db, 0x8cf: 0x07fb, 0x8d0: 0x07ff, 0x8d1: 0x0803,
+       0x8d2: 0x0837, 0x8d3: 0x085f, 0x8d4: 0x086f, 0x8d5: 0x0877, 0x8d6: 0x087b, 0x8d7: 0x0887,
+       0x8d8: 0x08a3, 0x8d9: 0x08a7, 0x8da: 0x08bf, 0x8db: 0x08c3, 0x8dc: 0x08cb, 0x8dd: 0x08db,
+       0x8de: 0x0977, 0x8df: 0x098b, 0x8e0: 0x09cb, 0x8e1: 0x09df, 0x8e2: 0x09e7, 0x8e3: 0x09eb,
+       0x8e4: 0x09fb, 0x8e5: 0x0a17, 0x8e6: 0x0a43, 0x8e7: 0x0a4f, 0x8e8: 0x0a6f, 0x8e9: 0x0a7b,
+       0x8ea: 0x0a7f, 0x8eb: 0x0a83, 0x8ec: 0x0a9b, 0x8ed: 0x0a9f, 0x8ee: 0x0acb, 0x8ef: 0x0ad7,
+       0x8f0: 0x0adf, 0x8f1: 0x0ae7, 0x8f2: 0x0af7, 0x8f3: 0x0aff, 0x8f4: 0x0b07, 0x8f5: 0x0b33,
+       0x8f6: 0x0b37, 0x8f7: 0x0b3f, 0x8f8: 0x0b43, 0x8f9: 0x0b4b, 0x8fa: 0x0b53, 0x8fb: 0x0b63,
+       0x8fc: 0x0b7f, 0x8fd: 0x0bf7, 0x8fe: 0x0c0b, 0x8ff: 0x0c0f,
+       // Block 0x24, offset 0x900
+       0x900: 0x0c8f, 0x901: 0x0c93, 0x902: 0x0ca7, 0x903: 0x0cab, 0x904: 0x0cb3, 0x905: 0x0cbb,
+       0x906: 0x0cc3, 0x907: 0x0ccf, 0x908: 0x0cf7, 0x909: 0x0d07, 0x90a: 0x0d1b, 0x90b: 0x0d8b,
+       0x90c: 0x0d97, 0x90d: 0x0da7, 0x90e: 0x0db3, 0x90f: 0x0dbf, 0x910: 0x0dc7, 0x911: 0x0dcb,
+       0x912: 0x0dcf, 0x913: 0x0dd3, 0x914: 0x0dd7, 0x915: 0x0e8f, 0x916: 0x0ed7, 0x917: 0x0ee3,
+       0x918: 0x0ee7, 0x919: 0x0eeb, 0x91a: 0x0eef, 0x91b: 0x0ef7, 0x91c: 0x0efb, 0x91d: 0x0f0f,
+       0x91e: 0x0f2b, 0x91f: 0x0f33, 0x920: 0x0f73, 0x921: 0x0f77, 0x922: 0x0f7f, 0x923: 0x0f83,
+       0x924: 0x0f8b, 0x925: 0x0f8f, 0x926: 0x0fb3, 0x927: 0x0fb7, 0x928: 0x0fd3, 0x929: 0x0fd7,
+       0x92a: 0x0fdb, 0x92b: 0x0fdf, 0x92c: 0x0ff3, 0x92d: 0x1017, 0x92e: 0x101b, 0x92f: 0x101f,
+       0x930: 0x1043, 0x931: 0x1083, 0x932: 0x1087, 0x933: 0x10a7, 0x934: 0x10b7, 0x935: 0x10bf,
+       0x936: 0x10df, 0x937: 0x1103, 0x938: 0x1147, 0x939: 0x114f, 0x93a: 0x1163, 0x93b: 0x116f,
+       0x93c: 0x1177, 0x93d: 0x117f, 0x93e: 0x1183, 0x93f: 0x1187,
+       // Block 0x25, offset 0x940
+       0x940: 0x119f, 0x941: 0x11a3, 0x942: 0x11bf, 0x943: 0x11c7, 0x944: 0x11cf, 0x945: 0x11d3,
+       0x946: 0x11df, 0x947: 0x11e7, 0x948: 0x11eb, 0x949: 0x11ef, 0x94a: 0x11f7, 0x94b: 0x11fb,
+       0x94c: 0x129b, 0x94d: 0x12af, 0x94e: 0x12e3, 0x94f: 0x12e7, 0x950: 0x12ef, 0x951: 0x131b,
+       0x952: 0x1323, 0x953: 0x132b, 0x954: 0x1333, 0x955: 0x136f, 0x956: 0x1373, 0x957: 0x137b,
+       0x958: 0x137f, 0x959: 0x1383, 0x95a: 0x13af, 0x95b: 0x13b3, 0x95c: 0x13bb, 0x95d: 0x13cf,
+       0x95e: 0x13d3, 0x95f: 0x13ef, 0x960: 0x13f7, 0x961: 0x13fb, 0x962: 0x141f, 0x963: 0x143f,
+       0x964: 0x1453, 0x965: 0x1457, 0x966: 0x145f, 0x967: 0x148b, 0x968: 0x148f, 0x969: 0x149f,
+       0x96a: 0x14c3, 0x96b: 0x14cf, 0x96c: 0x14df, 0x96d: 0x14f7, 0x96e: 0x14ff, 0x96f: 0x1503,
+       0x970: 0x1507, 0x971: 0x150b, 0x972: 0x1517, 0x973: 0x151b, 0x974: 0x1523, 0x975: 0x153f,
+       0x976: 0x1543, 0x977: 0x1547, 0x978: 0x155f, 0x979: 0x1563, 0x97a: 0x156b, 0x97b: 0x157f,
+       0x97c: 0x1583, 0x97d: 0x1587, 0x97e: 0x158f, 0x97f: 0x1593,
+       // Block 0x26, offset 0x980
+       0x986: 0xa000, 0x98b: 0xa000,
+       0x98c: 0x3f08, 0x98d: 0xa000, 0x98e: 0x3f10, 0x98f: 0xa000, 0x990: 0x3f18, 0x991: 0xa000,
+       0x992: 0x3f20, 0x993: 0xa000, 0x994: 0x3f28, 0x995: 0xa000, 0x996: 0x3f30, 0x997: 0xa000,
+       0x998: 0x3f38, 0x999: 0xa000, 0x99a: 0x3f40, 0x99b: 0xa000, 0x99c: 0x3f48, 0x99d: 0xa000,
+       0x99e: 0x3f50, 0x99f: 0xa000, 0x9a0: 0x3f58, 0x9a1: 0xa000, 0x9a2: 0x3f60,
+       0x9a4: 0xa000, 0x9a5: 0x3f68, 0x9a6: 0xa000, 0x9a7: 0x3f70, 0x9a8: 0xa000, 0x9a9: 0x3f78,
+       0x9af: 0xa000,
+       0x9b0: 0x3f80, 0x9b1: 0x3f88, 0x9b2: 0xa000, 0x9b3: 0x3f90, 0x9b4: 0x3f98, 0x9b5: 0xa000,
+       0x9b6: 0x3fa0, 0x9b7: 0x3fa8, 0x9b8: 0xa000, 0x9b9: 0x3fb0, 0x9ba: 0x3fb8, 0x9bb: 0xa000,
+       0x9bc: 0x3fc0, 0x9bd: 0x3fc8,
+       // Block 0x27, offset 0x9c0
+       0x9d4: 0x3f00,
+       0x9d9: 0x9903, 0x9da: 0x9903, 0x9db: 0x42dc, 0x9dc: 0x42e2, 0x9dd: 0xa000,
+       0x9de: 0x3fd0, 0x9df: 0x26b4,
+       0x9e6: 0xa000,
+       0x9eb: 0xa000, 0x9ec: 0x3fe0, 0x9ed: 0xa000, 0x9ee: 0x3fe8, 0x9ef: 0xa000,
+       0x9f0: 0x3ff0, 0x9f1: 0xa000, 0x9f2: 0x3ff8, 0x9f3: 0xa000, 0x9f4: 0x4000, 0x9f5: 0xa000,
+       0x9f6: 0x4008, 0x9f7: 0xa000, 0x9f8: 0x4010, 0x9f9: 0xa000, 0x9fa: 0x4018, 0x9fb: 0xa000,
+       0x9fc: 0x4020, 0x9fd: 0xa000, 0x9fe: 0x4028, 0x9ff: 0xa000,
+       // Block 0x28, offset 0xa00
+       0xa00: 0x4030, 0xa01: 0xa000, 0xa02: 0x4038, 0xa04: 0xa000, 0xa05: 0x4040,
+       0xa06: 0xa000, 0xa07: 0x4048, 0xa08: 0xa000, 0xa09: 0x4050,
+       0xa0f: 0xa000, 0xa10: 0x4058, 0xa11: 0x4060,
+       0xa12: 0xa000, 0xa13: 0x4068, 0xa14: 0x4070, 0xa15: 0xa000, 0xa16: 0x4078, 0xa17: 0x4080,
+       0xa18: 0xa000, 0xa19: 0x4088, 0xa1a: 0x4090, 0xa1b: 0xa000, 0xa1c: 0x4098, 0xa1d: 0x40a0,
+       0xa2f: 0xa000,
+       0xa30: 0xa000, 0xa31: 0xa000, 0xa32: 0xa000, 0xa34: 0x3fd8,
+       0xa37: 0x40a8, 0xa38: 0x40b0, 0xa39: 0x40b8, 0xa3a: 0x40c0,
+       0xa3d: 0xa000, 0xa3e: 0x40c8, 0xa3f: 0x26c9,
+       // Block 0x29, offset 0xa40
+       0xa40: 0x0367, 0xa41: 0x032b, 0xa42: 0x032f, 0xa43: 0x0333, 0xa44: 0x037b, 0xa45: 0x0337,
+       0xa46: 0x033b, 0xa47: 0x033f, 0xa48: 0x0343, 0xa49: 0x0347, 0xa4a: 0x034b, 0xa4b: 0x034f,
+       0xa4c: 0x0353, 0xa4d: 0x0357, 0xa4e: 0x035b, 0xa4f: 0x49bd, 0xa50: 0x49c3, 0xa51: 0x49c9,
+       0xa52: 0x49cf, 0xa53: 0x49d5, 0xa54: 0x49db, 0xa55: 0x49e1, 0xa56: 0x49e7, 0xa57: 0x49ed,
+       0xa58: 0x49f3, 0xa59: 0x49f9, 0xa5a: 0x49ff, 0xa5b: 0x4a05, 0xa5c: 0x4a0b, 0xa5d: 0x4a11,
+       0xa5e: 0x4a17, 0xa5f: 0x4a1d, 0xa60: 0x4a23, 0xa61: 0x4a29, 0xa62: 0x4a2f, 0xa63: 0x4a35,
+       0xa64: 0x03c3, 0xa65: 0x035f, 0xa66: 0x0363, 0xa67: 0x03e7, 0xa68: 0x03eb, 0xa69: 0x03ef,
+       0xa6a: 0x03f3, 0xa6b: 0x03f7, 0xa6c: 0x03fb, 0xa6d: 0x03ff, 0xa6e: 0x036b, 0xa6f: 0x0403,
+       0xa70: 0x0407, 0xa71: 0x036f, 0xa72: 0x0373, 0xa73: 0x0377, 0xa74: 0x037f, 0xa75: 0x0383,
+       0xa76: 0x0387, 0xa77: 0x038b, 0xa78: 0x038f, 0xa79: 0x0393, 0xa7a: 0x0397, 0xa7b: 0x039b,
+       0xa7c: 0x039f, 0xa7d: 0x03a3, 0xa7e: 0x03a7, 0xa7f: 0x03ab,
+       // Block 0x2a, offset 0xa80
+       0xa80: 0x03af, 0xa81: 0x03b3, 0xa82: 0x040b, 0xa83: 0x040f, 0xa84: 0x03b7, 0xa85: 0x03bb,
+       0xa86: 0x03bf, 0xa87: 0x03c7, 0xa88: 0x03cb, 0xa89: 0x03cf, 0xa8a: 0x03d3, 0xa8b: 0x03d7,
+       0xa8c: 0x03db, 0xa8d: 0x03df, 0xa8e: 0x03e3,
+       0xa92: 0x06bf, 0xa93: 0x071b, 0xa94: 0x06cb, 0xa95: 0x097b, 0xa96: 0x06cf, 0xa97: 0x06e7,
+       0xa98: 0x06d3, 0xa99: 0x0f93, 0xa9a: 0x0707, 0xa9b: 0x06db, 0xa9c: 0x06c3, 0xa9d: 0x09ff,
+       0xa9e: 0x098f, 0xa9f: 0x072f,
+       // Block 0x2b, offset 0xac0
+       0xac0: 0x2054, 0xac1: 0x205a, 0xac2: 0x2060, 0xac3: 0x2066, 0xac4: 0x206c, 0xac5: 0x2072,
+       0xac6: 0x2078, 0xac7: 0x207e, 0xac8: 0x2084, 0xac9: 0x208a, 0xaca: 0x2090, 0xacb: 0x2096,
+       0xacc: 0x209c, 0xacd: 0x20a2, 0xace: 0x2726, 0xacf: 0x272f, 0xad0: 0x2738, 0xad1: 0x2741,
+       0xad2: 0x274a, 0xad3: 0x2753, 0xad4: 0x275c, 0xad5: 0x2765, 0xad6: 0x276e, 0xad7: 0x2780,
+       0xad8: 0x2789, 0xad9: 0x2792, 0xada: 0x279b, 0xadb: 0x27a4, 0xadc: 0x2777, 0xadd: 0x2bac,
+       0xade: 0x2aed, 0xae0: 0x20a8, 0xae1: 0x20c0, 0xae2: 0x20b4, 0xae3: 0x2108,
+       0xae4: 0x20c6, 0xae5: 0x20e4, 0xae6: 0x20ae, 0xae7: 0x20de, 0xae8: 0x20ba, 0xae9: 0x20f0,
+       0xaea: 0x2120, 0xaeb: 0x213e, 0xaec: 0x2138, 0xaed: 0x212c, 0xaee: 0x217a, 0xaef: 0x210e,
+       0xaf0: 0x211a, 0xaf1: 0x2132, 0xaf2: 0x2126, 0xaf3: 0x2150, 0xaf4: 0x20fc, 0xaf5: 0x2144,
+       0xaf6: 0x216e, 0xaf7: 0x2156, 0xaf8: 0x20ea, 0xaf9: 0x20cc, 0xafa: 0x2102, 0xafb: 0x2114,
+       0xafc: 0x214a, 0xafd: 0x20d2, 0xafe: 0x2174, 0xaff: 0x20f6,
+       // Block 0x2c, offset 0xb00
+       0xb00: 0x215c, 0xb01: 0x20d8, 0xb02: 0x2162, 0xb03: 0x2168, 0xb04: 0x092f, 0xb05: 0x0b03,
+       0xb06: 0x0ca7, 0xb07: 0x10c7,
+       0xb10: 0x1bc4, 0xb11: 0x18a9,
+       0xb12: 0x18ac, 0xb13: 0x18af, 0xb14: 0x18b2, 0xb15: 0x18b5, 0xb16: 0x18b8, 0xb17: 0x18bb,
+       0xb18: 0x18be, 0xb19: 0x18c1, 0xb1a: 0x18ca, 0xb1b: 0x18cd, 0xb1c: 0x18d0, 0xb1d: 0x18d3,
+       0xb1e: 0x18d6, 0xb1f: 0x18d9, 0xb20: 0x0313, 0xb21: 0x031b, 0xb22: 0x031f, 0xb23: 0x0327,
+       0xb24: 0x032b, 0xb25: 0x032f, 0xb26: 0x0337, 0xb27: 0x033f, 0xb28: 0x0343, 0xb29: 0x034b,
+       0xb2a: 0x034f, 0xb2b: 0x0353, 0xb2c: 0x0357, 0xb2d: 0x035b, 0xb2e: 0x2e18, 0xb2f: 0x2e20,
+       0xb30: 0x2e28, 0xb31: 0x2e30, 0xb32: 0x2e38, 0xb33: 0x2e40, 0xb34: 0x2e48, 0xb35: 0x2e50,
+       0xb36: 0x2e60, 0xb37: 0x2e68, 0xb38: 0x2e70, 0xb39: 0x2e78, 0xb3a: 0x2e80, 0xb3b: 0x2e88,
+       0xb3c: 0x2ed3, 0xb3d: 0x2e9b, 0xb3e: 0x2e58,
+       // Block 0x2d, offset 0xb40
+       0xb40: 0x06bf, 0xb41: 0x071b, 0xb42: 0x06cb, 0xb43: 0x097b, 0xb44: 0x071f, 0xb45: 0x07af,
+       0xb46: 0x06c7, 0xb47: 0x07ab, 0xb48: 0x070b, 0xb49: 0x0887, 0xb4a: 0x0d07, 0xb4b: 0x0e8f,
+       0xb4c: 0x0dd7, 0xb4d: 0x0d1b, 0xb4e: 0x145f, 0xb4f: 0x098b, 0xb50: 0x0ccf, 0xb51: 0x0d4b,
+       0xb52: 0x0d0b, 0xb53: 0x104b, 0xb54: 0x08fb, 0xb55: 0x0f03, 0xb56: 0x1387, 0xb57: 0x105f,
+       0xb58: 0x0843, 0xb59: 0x108f, 0xb5a: 0x0f9b, 0xb5b: 0x0a17, 0xb5c: 0x140f, 0xb5d: 0x077f,
+       0xb5e: 0x08ab, 0xb5f: 0x0df7, 0xb60: 0x1527, 0xb61: 0x0743, 0xb62: 0x07d3, 0xb63: 0x0d9b,
+       0xb64: 0x06cf, 0xb65: 0x06e7, 0xb66: 0x06d3, 0xb67: 0x0adb, 0xb68: 0x08ef, 0xb69: 0x087f,
+       0xb6a: 0x0a57, 0xb6b: 0x0a4b, 0xb6c: 0x0feb, 0xb6d: 0x073f, 0xb6e: 0x139b, 0xb6f: 0x089b,
+       0xb70: 0x09f3, 0xb71: 0x18dc, 0xb72: 0x18df, 0xb73: 0x18e2, 0xb74: 0x18e5, 0xb75: 0x18ee,
+       0xb76: 0x18f1, 0xb77: 0x18f4, 0xb78: 0x18f7, 0xb79: 0x18fa, 0xb7a: 0x18fd, 0xb7b: 0x1900,
+       0xb7c: 0x1903, 0xb7d: 0x1906, 0xb7e: 0x1909, 0xb7f: 0x1912,
+       // Block 0x2e, offset 0xb80
+       0xb80: 0x1cc6, 0xb81: 0x1cd5, 0xb82: 0x1ce4, 0xb83: 0x1cf3, 0xb84: 0x1d02, 0xb85: 0x1d11,
+       0xb86: 0x1d20, 0xb87: 0x1d2f, 0xb88: 0x1d3e, 0xb89: 0x218c, 0xb8a: 0x219e, 0xb8b: 0x21b0,
+       0xb8c: 0x1954, 0xb8d: 0x1c04, 0xb8e: 0x19d2, 0xb8f: 0x1ba8, 0xb90: 0x04cb, 0xb91: 0x04d3,
+       0xb92: 0x04db, 0xb93: 0x04e3, 0xb94: 0x04eb, 0xb95: 0x04ef, 0xb96: 0x04f3, 0xb97: 0x04f7,
+       0xb98: 0x04fb, 0xb99: 0x04ff, 0xb9a: 0x0503, 0xb9b: 0x0507, 0xb9c: 0x050b, 0xb9d: 0x050f,
+       0xb9e: 0x0513, 0xb9f: 0x0517, 0xba0: 0x051b, 0xba1: 0x0523, 0xba2: 0x0527, 0xba3: 0x052b,
+       0xba4: 0x052f, 0xba5: 0x0533, 0xba6: 0x0537, 0xba7: 0x053b, 0xba8: 0x053f, 0xba9: 0x0543,
+       0xbaa: 0x0547, 0xbab: 0x054b, 0xbac: 0x054f, 0xbad: 0x0553, 0xbae: 0x0557, 0xbaf: 0x055b,
+       0xbb0: 0x055f, 0xbb1: 0x0563, 0xbb2: 0x0567, 0xbb3: 0x056f, 0xbb4: 0x0577, 0xbb5: 0x057f,
+       0xbb6: 0x0583, 0xbb7: 0x0587, 0xbb8: 0x058b, 0xbb9: 0x058f, 0xbba: 0x0593, 0xbbb: 0x0597,
+       0xbbc: 0x059b, 0xbbd: 0x059f, 0xbbe: 0x05a3,
+       // Block 0x2f, offset 0xbc0
+       0xbc0: 0x2b0c, 0xbc1: 0x29a8, 0xbc2: 0x2b1c, 0xbc3: 0x2880, 0xbc4: 0x2ee4, 0xbc5: 0x288a,
+       0xbc6: 0x2894, 0xbc7: 0x2f28, 0xbc8: 0x29b5, 0xbc9: 0x289e, 0xbca: 0x28a8, 0xbcb: 0x28b2,
+       0xbcc: 0x29dc, 0xbcd: 0x29e9, 0xbce: 0x29c2, 0xbcf: 0x29cf, 0xbd0: 0x2ea9, 0xbd1: 0x29f6,
+       0xbd2: 0x2a03, 0xbd3: 0x2bbe, 0xbd4: 0x26bb, 0xbd5: 0x2bd1, 0xbd6: 0x2be4, 0xbd7: 0x2b2c,
+       0xbd8: 0x2a10, 0xbd9: 0x2bf7, 0xbda: 0x2c0a, 0xbdb: 0x2a1d, 0xbdc: 0x28bc, 0xbdd: 0x28c6,
+       0xbde: 0x2eb7, 0xbdf: 0x2a2a, 0xbe0: 0x2b3c, 0xbe1: 0x2ef5, 0xbe2: 0x28d0, 0xbe3: 0x28da,
+       0xbe4: 0x2a37, 0xbe5: 0x28e4, 0xbe6: 0x28ee, 0xbe7: 0x26d0, 0xbe8: 0x26d7, 0xbe9: 0x28f8,
+       0xbea: 0x2902, 0xbeb: 0x2c1d, 0xbec: 0x2a44, 0xbed: 0x2b4c, 0xbee: 0x2c30, 0xbef: 0x2a51,
+       0xbf0: 0x2916, 0xbf1: 0x290c, 0xbf2: 0x2f3c, 0xbf3: 0x2a5e, 0xbf4: 0x2c43, 0xbf5: 0x2920,
+       0xbf6: 0x2b5c, 0xbf7: 0x292a, 0xbf8: 0x2a78, 0xbf9: 0x2934, 0xbfa: 0x2a85, 0xbfb: 0x2f06,
+       0xbfc: 0x2a6b, 0xbfd: 0x2b6c, 0xbfe: 0x2a92, 0xbff: 0x26de,
+       // Block 0x30, offset 0xc00
+       0xc00: 0x2f17, 0xc01: 0x293e, 0xc02: 0x2948, 0xc03: 0x2a9f, 0xc04: 0x2952, 0xc05: 0x295c,
+       0xc06: 0x2966, 0xc07: 0x2b7c, 0xc08: 0x2aac, 0xc09: 0x26e5, 0xc0a: 0x2c56, 0xc0b: 0x2e90,
+       0xc0c: 0x2b8c, 0xc0d: 0x2ab9, 0xc0e: 0x2ec5, 0xc0f: 0x2970, 0xc10: 0x297a, 0xc11: 0x2ac6,
+       0xc12: 0x26ec, 0xc13: 0x2ad3, 0xc14: 0x2b9c, 0xc15: 0x26f3, 0xc16: 0x2c69, 0xc17: 0x2984,
+       0xc18: 0x1cb7, 0xc19: 0x1ccb, 0xc1a: 0x1cda, 0xc1b: 0x1ce9, 0xc1c: 0x1cf8, 0xc1d: 0x1d07,
+       0xc1e: 0x1d16, 0xc1f: 0x1d25, 0xc20: 0x1d34, 0xc21: 0x1d43, 0xc22: 0x2192, 0xc23: 0x21a4,
+       0xc24: 0x21b6, 0xc25: 0x21c2, 0xc26: 0x21ce, 0xc27: 0x21da, 0xc28: 0x21e6, 0xc29: 0x21f2,
+       0xc2a: 0x21fe, 0xc2b: 0x220a, 0xc2c: 0x2246, 0xc2d: 0x2252, 0xc2e: 0x225e, 0xc2f: 0x226a,
+       0xc30: 0x2276, 0xc31: 0x1c14, 0xc32: 0x19c6, 0xc33: 0x1936, 0xc34: 0x1be4, 0xc35: 0x1a47,
+       0xc36: 0x1a56, 0xc37: 0x19cc, 0xc38: 0x1bfc, 0xc39: 0x1c00, 0xc3a: 0x1960, 0xc3b: 0x2701,
+       0xc3c: 0x270f, 0xc3d: 0x26fa, 0xc3e: 0x2708, 0xc3f: 0x2ae0,
+       // Block 0x31, offset 0xc40
+       0xc40: 0x1a4a, 0xc41: 0x1a32, 0xc42: 0x1c60, 0xc43: 0x1a1a, 0xc44: 0x19f3, 0xc45: 0x1969,
+       0xc46: 0x1978, 0xc47: 0x1948, 0xc48: 0x1bf0, 0xc49: 0x1d52, 0xc4a: 0x1a4d, 0xc4b: 0x1a35,
+       0xc4c: 0x1c64, 0xc4d: 0x1c70, 0xc4e: 0x1a26, 0xc4f: 0x19fc, 0xc50: 0x1957, 0xc51: 0x1c1c,
+       0xc52: 0x1bb0, 0xc53: 0x1b9c, 0xc54: 0x1bcc, 0xc55: 0x1c74, 0xc56: 0x1a29, 0xc57: 0x19c9,
+       0xc58: 0x19ff, 0xc59: 0x19de, 0xc5a: 0x1a41, 0xc5b: 0x1c78, 0xc5c: 0x1a2c, 0xc5d: 0x19c0,
+       0xc5e: 0x1a02, 0xc5f: 0x1c3c, 0xc60: 0x1bf4, 0xc61: 0x1a14, 0xc62: 0x1c24, 0xc63: 0x1c40,
+       0xc64: 0x1bf8, 0xc65: 0x1a17, 0xc66: 0x1c28, 0xc67: 0x22e8, 0xc68: 0x22fc, 0xc69: 0x1996,
+       0xc6a: 0x1c20, 0xc6b: 0x1bb4, 0xc6c: 0x1ba0, 0xc6d: 0x1c48, 0xc6e: 0x2716, 0xc6f: 0x27ad,
+       0xc70: 0x1a59, 0xc71: 0x1a44, 0xc72: 0x1c7c, 0xc73: 0x1a2f, 0xc74: 0x1a50, 0xc75: 0x1a38,
+       0xc76: 0x1c68, 0xc77: 0x1a1d, 0xc78: 0x19f6, 0xc79: 0x1981, 0xc7a: 0x1a53, 0xc7b: 0x1a3b,
+       0xc7c: 0x1c6c, 0xc7d: 0x1a20, 0xc7e: 0x19f9, 0xc7f: 0x1984,
+       // Block 0x32, offset 0xc80
+       0xc80: 0x1c2c, 0xc81: 0x1bb8, 0xc82: 0x1d4d, 0xc83: 0x1939, 0xc84: 0x19ba, 0xc85: 0x19bd,
+       0xc86: 0x22f5, 0xc87: 0x1b94, 0xc88: 0x19c3, 0xc89: 0x194b, 0xc8a: 0x19e1, 0xc8b: 0x194e,
+       0xc8c: 0x19ea, 0xc8d: 0x196c, 0xc8e: 0x196f, 0xc8f: 0x1a05, 0xc90: 0x1a0b, 0xc91: 0x1a0e,
+       0xc92: 0x1c30, 0xc93: 0x1a11, 0xc94: 0x1a23, 0xc95: 0x1c38, 0xc96: 0x1c44, 0xc97: 0x1990,
+       0xc98: 0x1d57, 0xc99: 0x1bbc, 0xc9a: 0x1993, 0xc9b: 0x1a5c, 0xc9c: 0x19a5, 0xc9d: 0x19b4,
+       0xc9e: 0x22e2, 0xc9f: 0x22dc, 0xca0: 0x1cc1, 0xca1: 0x1cd0, 0xca2: 0x1cdf, 0xca3: 0x1cee,
+       0xca4: 0x1cfd, 0xca5: 0x1d0c, 0xca6: 0x1d1b, 0xca7: 0x1d2a, 0xca8: 0x1d39, 0xca9: 0x2186,
+       0xcaa: 0x2198, 0xcab: 0x21aa, 0xcac: 0x21bc, 0xcad: 0x21c8, 0xcae: 0x21d4, 0xcaf: 0x21e0,
+       0xcb0: 0x21ec, 0xcb1: 0x21f8, 0xcb2: 0x2204, 0xcb3: 0x2240, 0xcb4: 0x224c, 0xcb5: 0x2258,
+       0xcb6: 0x2264, 0xcb7: 0x2270, 0xcb8: 0x227c, 0xcb9: 0x2282, 0xcba: 0x2288, 0xcbb: 0x228e,
+       0xcbc: 0x2294, 0xcbd: 0x22a6, 0xcbe: 0x22ac, 0xcbf: 0x1c10,
+       // Block 0x33, offset 0xcc0
+       0xcc0: 0x1377, 0xcc1: 0x0cfb, 0xcc2: 0x13d3, 0xcc3: 0x139f, 0xcc4: 0x0e57, 0xcc5: 0x06eb,
+       0xcc6: 0x08df, 0xcc7: 0x162b, 0xcc8: 0x162b, 0xcc9: 0x0a0b, 0xcca: 0x145f, 0xccb: 0x0943,
+       0xccc: 0x0a07, 0xccd: 0x0bef, 0xcce: 0x0fcf, 0xccf: 0x115f, 0xcd0: 0x1297, 0xcd1: 0x12d3,
+       0xcd2: 0x1307, 0xcd3: 0x141b, 0xcd4: 0x0d73, 0xcd5: 0x0dff, 0xcd6: 0x0eab, 0xcd7: 0x0f43,
+       0xcd8: 0x125f, 0xcd9: 0x1447, 0xcda: 0x1573, 0xcdb: 0x070f, 0xcdc: 0x08b3, 0xcdd: 0x0d87,
+       0xcde: 0x0ecf, 0xcdf: 0x1293, 0xce0: 0x15c3, 0xce1: 0x0ab3, 0xce2: 0x0e77, 0xce3: 0x1283,
+       0xce4: 0x1317, 0xce5: 0x0c23, 0xce6: 0x11bb, 0xce7: 0x12df, 0xce8: 0x0b1f, 0xce9: 0x0d0f,
+       0xcea: 0x0e17, 0xceb: 0x0f1b, 0xcec: 0x1427, 0xced: 0x074f, 0xcee: 0x07e7, 0xcef: 0x0853,
+       0xcf0: 0x0c8b, 0xcf1: 0x0d7f, 0xcf2: 0x0ecb, 0xcf3: 0x0fef, 0xcf4: 0x1177, 0xcf5: 0x128b,
+       0xcf6: 0x12a3, 0xcf7: 0x13c7, 0xcf8: 0x14ef, 0xcf9: 0x15a3, 0xcfa: 0x15bf, 0xcfb: 0x102b,
+       0xcfc: 0x106b, 0xcfd: 0x1123, 0xcfe: 0x1243, 0xcff: 0x147b,
+       // Block 0x34, offset 0xd00
+       0xd00: 0x15cb, 0xd01: 0x134b, 0xd02: 0x09c7, 0xd03: 0x0b3b, 0xd04: 0x10db, 0xd05: 0x119b,
+       0xd06: 0x0eff, 0xd07: 0x1033, 0xd08: 0x1397, 0xd09: 0x14e7, 0xd0a: 0x09c3, 0xd0b: 0x0a8f,
+       0xd0c: 0x0d77, 0xd0d: 0x0e2b, 0xd0e: 0x0e5f, 0xd0f: 0x1113, 0xd10: 0x113b, 0xd11: 0x14a7,
+       0xd12: 0x084f, 0xd13: 0x11a7, 0xd14: 0x07f3, 0xd15: 0x07ef, 0xd16: 0x1097, 0xd17: 0x1127,
+       0xd18: 0x125b, 0xd19: 0x14af, 0xd1a: 0x1367, 0xd1b: 0x0c27, 0xd1c: 0x0d73, 0xd1d: 0x1357,
+       0xd1e: 0x06f7, 0xd1f: 0x0a63, 0xd20: 0x0b93, 0xd21: 0x0f2f, 0xd22: 0x0faf, 0xd23: 0x0873,
+       0xd24: 0x103b, 0xd25: 0x075f, 0xd26: 0x0b77, 0xd27: 0x06d7, 0xd28: 0x0deb, 0xd29: 0x0ca3,
+       0xd2a: 0x110f, 0xd2b: 0x08c7, 0xd2c: 0x09b3, 0xd2d: 0x0ffb, 0xd2e: 0x1263, 0xd2f: 0x133b,
+       0xd30: 0x0db7, 0xd31: 0x13f7, 0xd32: 0x0de3, 0xd33: 0x0c37, 0xd34: 0x121b, 0xd35: 0x0c57,
+       0xd36: 0x0fab, 0xd37: 0x072b, 0xd38: 0x07a7, 0xd39: 0x07eb, 0xd3a: 0x0d53, 0xd3b: 0x10fb,
+       0xd3c: 0x11f3, 0xd3d: 0x1347, 0xd3e: 0x145b, 0xd3f: 0x085b,
+       // Block 0x35, offset 0xd40
+       0xd40: 0x090f, 0xd41: 0x0a17, 0xd42: 0x0b2f, 0xd43: 0x0cbf, 0xd44: 0x0e7b, 0xd45: 0x103f,
+       0xd46: 0x1497, 0xd47: 0x157b, 0xd48: 0x15cf, 0xd49: 0x15e7, 0xd4a: 0x0837, 0xd4b: 0x0cf3,
+       0xd4c: 0x0da3, 0xd4d: 0x13eb, 0xd4e: 0x0afb, 0xd4f: 0x0bd7, 0xd50: 0x0bf3, 0xd51: 0x0c83,
+       0xd52: 0x0e6b, 0xd53: 0x0eb7, 0xd54: 0x0f67, 0xd55: 0x108b, 0xd56: 0x112f, 0xd57: 0x1193,
+       0xd58: 0x13db, 0xd59: 0x126b, 0xd5a: 0x1403, 0xd5b: 0x147f, 0xd5c: 0x080f, 0xd5d: 0x083b,
+       0xd5e: 0x0923, 0xd5f: 0x0ea7, 0xd60: 0x12f3, 0xd61: 0x133b, 0xd62: 0x0b1b, 0xd63: 0x0b8b,
+       0xd64: 0x0c4f, 0xd65: 0x0daf, 0xd66: 0x10d7, 0xd67: 0x0f23, 0xd68: 0x073b, 0xd69: 0x097f,
+       0xd6a: 0x0a63, 0xd6b: 0x0ac7, 0xd6c: 0x0b97, 0xd6d: 0x0f3f, 0xd6e: 0x0f5b, 0xd6f: 0x116b,
+       0xd70: 0x118b, 0xd71: 0x1463, 0xd72: 0x14e3, 0xd73: 0x14f3, 0xd74: 0x152f, 0xd75: 0x0753,
+       0xd76: 0x107f, 0xd77: 0x144f, 0xd78: 0x14cb, 0xd79: 0x0baf, 0xd7a: 0x0717, 0xd7b: 0x0777,
+       0xd7c: 0x0a67, 0xd7d: 0x0a87, 0xd7e: 0x0caf, 0xd7f: 0x0d73,
+       // Block 0x36, offset 0xd80
+       0xd80: 0x0ec3, 0xd81: 0x0fcb, 0xd82: 0x1277, 0xd83: 0x1417, 0xd84: 0x1623, 0xd85: 0x0ce3,
+       0xd86: 0x14a3, 0xd87: 0x0833, 0xd88: 0x0d2f, 0xd89: 0x0d3b, 0xd8a: 0x0e0f, 0xd8b: 0x0e47,
+       0xd8c: 0x0f4b, 0xd8d: 0x0fa7, 0xd8e: 0x1027, 0xd8f: 0x110b, 0xd90: 0x153b, 0xd91: 0x07af,
+       0xd92: 0x0c03, 0xd93: 0x14b3, 0xd94: 0x0767, 0xd95: 0x0aab, 0xd96: 0x0e2f, 0xd97: 0x13df,
+       0xd98: 0x0b67, 0xd99: 0x0bb7, 0xd9a: 0x0d43, 0xd9b: 0x0f2f, 0xd9c: 0x14bb, 0xd9d: 0x0817,
+       0xd9e: 0x08ff, 0xd9f: 0x0a97, 0xda0: 0x0cd3, 0xda1: 0x0d1f, 0xda2: 0x0d5f, 0xda3: 0x0df3,
+       0xda4: 0x0f47, 0xda5: 0x0fbb, 0xda6: 0x1157, 0xda7: 0x12f7, 0xda8: 0x1303, 0xda9: 0x1457,
+       0xdaa: 0x14d7, 0xdab: 0x0883, 0xdac: 0x0e4b, 0xdad: 0x0903, 0xdae: 0x0ec7, 0xdaf: 0x0f6b,
+       0xdb0: 0x1287, 0xdb1: 0x14bf, 0xdb2: 0x15ab, 0xdb3: 0x15d3, 0xdb4: 0x0d37, 0xdb5: 0x0e27,
+       0xdb6: 0x11c3, 0xdb7: 0x10b7, 0xdb8: 0x10c3, 0xdb9: 0x10e7, 0xdba: 0x0f17, 0xdbb: 0x0e9f,
+       0xdbc: 0x1363, 0xdbd: 0x0733, 0xdbe: 0x122b, 0xdbf: 0x081b,
+       // Block 0x37, offset 0xdc0
+       0xdc0: 0x080b, 0xdc1: 0x0b0b, 0xdc2: 0x0c2b, 0xdc3: 0x10f3, 0xdc4: 0x0a53, 0xdc5: 0x0e03,
+       0xdc6: 0x0cef, 0xdc7: 0x13e7, 0xdc8: 0x12e7, 0xdc9: 0x14ab, 0xdca: 0x1323, 0xdcb: 0x0b27,
+       0xdcc: 0x0787, 0xdcd: 0x095b, 0xdd0: 0x09af,
+       0xdd2: 0x0cdf, 0xdd5: 0x07f7, 0xdd6: 0x0f1f, 0xdd7: 0x0fe3,
+       0xdd8: 0x1047, 0xdd9: 0x1063, 0xdda: 0x1067, 0xddb: 0x107b, 0xddc: 0x14fb, 0xddd: 0x10eb,
+       0xdde: 0x116f, 0xde0: 0x128f, 0xde2: 0x1353,
+       0xde5: 0x1407, 0xde6: 0x1433,
+       0xdea: 0x154f, 0xdeb: 0x1553, 0xdec: 0x1557, 0xded: 0x15bb, 0xdee: 0x142b, 0xdef: 0x14c7,
+       0xdf0: 0x0757, 0xdf1: 0x077b, 0xdf2: 0x078f, 0xdf3: 0x084b, 0xdf4: 0x0857, 0xdf5: 0x0897,
+       0xdf6: 0x094b, 0xdf7: 0x0967, 0xdf8: 0x096f, 0xdf9: 0x09ab, 0xdfa: 0x09b7, 0xdfb: 0x0a93,
+       0xdfc: 0x0a9b, 0xdfd: 0x0ba3, 0xdfe: 0x0bcb, 0xdff: 0x0bd3,
+       // Block 0x38, offset 0xe00
+       0xe00: 0x0beb, 0xe01: 0x0c97, 0xe02: 0x0cc7, 0xe03: 0x0ce7, 0xe04: 0x0d57, 0xe05: 0x0e1b,
+       0xe06: 0x0e37, 0xe07: 0x0e67, 0xe08: 0x0ebb, 0xe09: 0x0edb, 0xe0a: 0x0f4f, 0xe0b: 0x102f,
+       0xe0c: 0x104b, 0xe0d: 0x1053, 0xe0e: 0x104f, 0xe0f: 0x1057, 0xe10: 0x105b, 0xe11: 0x105f,
+       0xe12: 0x1073, 0xe13: 0x1077, 0xe14: 0x109b, 0xe15: 0x10af, 0xe16: 0x10cb, 0xe17: 0x112f,
+       0xe18: 0x1137, 0xe19: 0x113f, 0xe1a: 0x1153, 0xe1b: 0x117b, 0xe1c: 0x11cb, 0xe1d: 0x11ff,
+       0xe1e: 0x11ff, 0xe1f: 0x1267, 0xe20: 0x130f, 0xe21: 0x1327, 0xe22: 0x135b, 0xe23: 0x135f,
+       0xe24: 0x13a3, 0xe25: 0x13a7, 0xe26: 0x13ff, 0xe27: 0x1407, 0xe28: 0x14db, 0xe29: 0x151f,
+       0xe2a: 0x1537, 0xe2b: 0x0b9b, 0xe2c: 0x171e, 0xe2d: 0x11e3,
+       0xe30: 0x06df, 0xe31: 0x07e3, 0xe32: 0x07a3, 0xe33: 0x074b, 0xe34: 0x078b, 0xe35: 0x07b7,
+       0xe36: 0x0847, 0xe37: 0x0863, 0xe38: 0x094b, 0xe39: 0x0937, 0xe3a: 0x0947, 0xe3b: 0x0963,
+       0xe3c: 0x09af, 0xe3d: 0x09bf, 0xe3e: 0x0a03, 0xe3f: 0x0a0f,
+       // Block 0x39, offset 0xe40
+       0xe40: 0x0a2b, 0xe41: 0x0a3b, 0xe42: 0x0b23, 0xe43: 0x0b2b, 0xe44: 0x0b5b, 0xe45: 0x0b7b,
+       0xe46: 0x0bab, 0xe47: 0x0bc3, 0xe48: 0x0bb3, 0xe49: 0x0bd3, 0xe4a: 0x0bc7, 0xe4b: 0x0beb,
+       0xe4c: 0x0c07, 0xe4d: 0x0c5f, 0xe4e: 0x0c6b, 0xe4f: 0x0c73, 0xe50: 0x0c9b, 0xe51: 0x0cdf,
+       0xe52: 0x0d0f, 0xe53: 0x0d13, 0xe54: 0x0d27, 0xe55: 0x0da7, 0xe56: 0x0db7, 0xe57: 0x0e0f,
+       0xe58: 0x0e5b, 0xe59: 0x0e53, 0xe5a: 0x0e67, 0xe5b: 0x0e83, 0xe5c: 0x0ebb, 0xe5d: 0x1013,
+       0xe5e: 0x0edf, 0xe5f: 0x0f13, 0xe60: 0x0f1f, 0xe61: 0x0f5f, 0xe62: 0x0f7b, 0xe63: 0x0f9f,
+       0xe64: 0x0fc3, 0xe65: 0x0fc7, 0xe66: 0x0fe3, 0xe67: 0x0fe7, 0xe68: 0x0ff7, 0xe69: 0x100b,
+       0xe6a: 0x1007, 0xe6b: 0x1037, 0xe6c: 0x10b3, 0xe6d: 0x10cb, 0xe6e: 0x10e3, 0xe6f: 0x111b,
+       0xe70: 0x112f, 0xe71: 0x114b, 0xe72: 0x117b, 0xe73: 0x122f, 0xe74: 0x1257, 0xe75: 0x12cb,
+       0xe76: 0x1313, 0xe77: 0x131f, 0xe78: 0x1327, 0xe79: 0x133f, 0xe7a: 0x1353, 0xe7b: 0x1343,
+       0xe7c: 0x135b, 0xe7d: 0x1357, 0xe7e: 0x134f, 0xe7f: 0x135f,
+       // Block 0x3a, offset 0xe80
+       0xe80: 0x136b, 0xe81: 0x13a7, 0xe82: 0x13e3, 0xe83: 0x1413, 0xe84: 0x144b, 0xe85: 0x146b,
+       0xe86: 0x14b7, 0xe87: 0x14db, 0xe88: 0x14fb, 0xe89: 0x150f, 0xe8a: 0x151f, 0xe8b: 0x152b,
+       0xe8c: 0x1537, 0xe8d: 0x158b, 0xe8e: 0x162b, 0xe8f: 0x16b5, 0xe90: 0x16b0, 0xe91: 0x16e2,
+       0xe92: 0x0607, 0xe93: 0x062f, 0xe94: 0x0633, 0xe95: 0x1764, 0xe96: 0x1791, 0xe97: 0x1809,
+       0xe98: 0x1617, 0xe99: 0x1627,
+       // Block 0x3b, offset 0xec0
+       0xec0: 0x19d5, 0xec1: 0x19d8, 0xec2: 0x19db, 0xec3: 0x1c08, 0xec4: 0x1c0c, 0xec5: 0x1a5f,
+       0xec6: 0x1a5f,
+       0xed3: 0x1d75, 0xed4: 0x1d66, 0xed5: 0x1d6b, 0xed6: 0x1d7a, 0xed7: 0x1d70,
+       0xedd: 0x4390,
+       0xede: 0x8115, 0xedf: 0x4402, 0xee0: 0x022d, 0xee1: 0x0215, 0xee2: 0x021e, 0xee3: 0x0221,
+       0xee4: 0x0224, 0xee5: 0x0227, 0xee6: 0x022a, 0xee7: 0x0230, 0xee8: 0x0233, 0xee9: 0x0017,
+       0xeea: 0x43f0, 0xeeb: 0x43f6, 0xeec: 0x44f4, 0xeed: 0x44fc, 0xeee: 0x4348, 0xeef: 0x434e,
+       0xef0: 0x4354, 0xef1: 0x435a, 0xef2: 0x4366, 0xef3: 0x436c, 0xef4: 0x4372, 0xef5: 0x437e,
+       0xef6: 0x4384, 0xef8: 0x438a, 0xef9: 0x4396, 0xefa: 0x439c, 0xefb: 0x43a2,
+       0xefc: 0x43ae, 0xefe: 0x43b4,
+       // Block 0x3c, offset 0xf00
+       0xf00: 0x43ba, 0xf01: 0x43c0, 0xf03: 0x43c6, 0xf04: 0x43cc,
+       0xf06: 0x43d8, 0xf07: 0x43de, 0xf08: 0x43e4, 0xf09: 0x43ea, 0xf0a: 0x43fc, 0xf0b: 0x4378,
+       0xf0c: 0x4360, 0xf0d: 0x43a8, 0xf0e: 0x43d2, 0xf0f: 0x1d7f, 0xf10: 0x0299, 0xf11: 0x0299,
+       0xf12: 0x02a2, 0xf13: 0x02a2, 0xf14: 0x02a2, 0xf15: 0x02a2, 0xf16: 0x02a5, 0xf17: 0x02a5,
+       0xf18: 0x02a5, 0xf19: 0x02a5, 0xf1a: 0x02ab, 0xf1b: 0x02ab, 0xf1c: 0x02ab, 0xf1d: 0x02ab,
+       0xf1e: 0x029f, 0xf1f: 0x029f, 0xf20: 0x029f, 0xf21: 0x029f, 0xf22: 0x02a8, 0xf23: 0x02a8,
+       0xf24: 0x02a8, 0xf25: 0x02a8, 0xf26: 0x029c, 0xf27: 0x029c, 0xf28: 0x029c, 0xf29: 0x029c,
+       0xf2a: 0x02cf, 0xf2b: 0x02cf, 0xf2c: 0x02cf, 0xf2d: 0x02cf, 0xf2e: 0x02d2, 0xf2f: 0x02d2,
+       0xf30: 0x02d2, 0xf31: 0x02d2, 0xf32: 0x02b1, 0xf33: 0x02b1, 0xf34: 0x02b1, 0xf35: 0x02b1,
+       0xf36: 0x02ae, 0xf37: 0x02ae, 0xf38: 0x02ae, 0xf39: 0x02ae, 0xf3a: 0x02b4, 0xf3b: 0x02b4,
+       0xf3c: 0x02b4, 0xf3d: 0x02b4, 0xf3e: 0x02b7, 0xf3f: 0x02b7,
+       // Block 0x3d, offset 0xf40
+       0xf40: 0x02b7, 0xf41: 0x02b7, 0xf42: 0x02c0, 0xf43: 0x02c0, 0xf44: 0x02bd, 0xf45: 0x02bd,
+       0xf46: 0x02c3, 0xf47: 0x02c3, 0xf48: 0x02ba, 0xf49: 0x02ba, 0xf4a: 0x02c9, 0xf4b: 0x02c9,
+       0xf4c: 0x02c6, 0xf4d: 0x02c6, 0xf4e: 0x02d5, 0xf4f: 0x02d5, 0xf50: 0x02d5, 0xf51: 0x02d5,
+       0xf52: 0x02db, 0xf53: 0x02db, 0xf54: 0x02db, 0xf55: 0x02db, 0xf56: 0x02e1, 0xf57: 0x02e1,
+       0xf58: 0x02e1, 0xf59: 0x02e1, 0xf5a: 0x02de, 0xf5b: 0x02de, 0xf5c: 0x02de, 0xf5d: 0x02de,
+       0xf5e: 0x02e4, 0xf5f: 0x02e4, 0xf60: 0x02e7, 0xf61: 0x02e7, 0xf62: 0x02e7, 0xf63: 0x02e7,
+       0xf64: 0x446e, 0xf65: 0x446e, 0xf66: 0x02ed, 0xf67: 0x02ed, 0xf68: 0x02ed, 0xf69: 0x02ed,
+       0xf6a: 0x02ea, 0xf6b: 0x02ea, 0xf6c: 0x02ea, 0xf6d: 0x02ea, 0xf6e: 0x0308, 0xf6f: 0x0308,
+       0xf70: 0x4468, 0xf71: 0x4468,
+       // Block 0x3e, offset 0xf80
+       0xf93: 0x02d8, 0xf94: 0x02d8, 0xf95: 0x02d8, 0xf96: 0x02d8, 0xf97: 0x02f6,
+       0xf98: 0x02f6, 0xf99: 0x02f3, 0xf9a: 0x02f3, 0xf9b: 0x02f9, 0xf9c: 0x02f9, 0xf9d: 0x204f,
+       0xf9e: 0x02ff, 0xf9f: 0x02ff, 0xfa0: 0x02f0, 0xfa1: 0x02f0, 0xfa2: 0x02fc, 0xfa3: 0x02fc,
+       0xfa4: 0x0305, 0xfa5: 0x0305, 0xfa6: 0x0305, 0xfa7: 0x0305, 0xfa8: 0x028d, 0xfa9: 0x028d,
+       0xfaa: 0x25aa, 0xfab: 0x25aa, 0xfac: 0x261a, 0xfad: 0x261a, 0xfae: 0x25e9, 0xfaf: 0x25e9,
+       0xfb0: 0x2605, 0xfb1: 0x2605, 0xfb2: 0x25fe, 0xfb3: 0x25fe, 0xfb4: 0x260c, 0xfb5: 0x260c,
+       0xfb6: 0x2613, 0xfb7: 0x2613, 0xfb8: 0x2613, 0xfb9: 0x25f0, 0xfba: 0x25f0, 0xfbb: 0x25f0,
+       0xfbc: 0x0302, 0xfbd: 0x0302, 0xfbe: 0x0302, 0xfbf: 0x0302,
+       // Block 0x3f, offset 0xfc0
+       0xfc0: 0x25b1, 0xfc1: 0x25b8, 0xfc2: 0x25d4, 0xfc3: 0x25f0, 0xfc4: 0x25f7, 0xfc5: 0x1d89,
+       0xfc6: 0x1d8e, 0xfc7: 0x1d93, 0xfc8: 0x1da2, 0xfc9: 0x1db1, 0xfca: 0x1db6, 0xfcb: 0x1dbb,
+       0xfcc: 0x1dc0, 0xfcd: 0x1dc5, 0xfce: 0x1dd4, 0xfcf: 0x1de3, 0xfd0: 0x1de8, 0xfd1: 0x1ded,
+       0xfd2: 0x1dfc, 0xfd3: 0x1e0b, 0xfd4: 0x1e10, 0xfd5: 0x1e15, 0xfd6: 0x1e1a, 0xfd7: 0x1e29,
+       0xfd8: 0x1e2e, 0xfd9: 0x1e3d, 0xfda: 0x1e42, 0xfdb: 0x1e47, 0xfdc: 0x1e56, 0xfdd: 0x1e5b,
+       0xfde: 0x1e60, 0xfdf: 0x1e6a, 0xfe0: 0x1ea6, 0xfe1: 0x1eb5, 0xfe2: 0x1ec4, 0xfe3: 0x1ec9,
+       0xfe4: 0x1ece, 0xfe5: 0x1ed8, 0xfe6: 0x1ee7, 0xfe7: 0x1eec, 0xfe8: 0x1efb, 0xfe9: 0x1f00,
+       0xfea: 0x1f05, 0xfeb: 0x1f14, 0xfec: 0x1f19, 0xfed: 0x1f28, 0xfee: 0x1f2d, 0xfef: 0x1f32,
+       0xff0: 0x1f37, 0xff1: 0x1f3c, 0xff2: 0x1f41, 0xff3: 0x1f46, 0xff4: 0x1f4b, 0xff5: 0x1f50,
+       0xff6: 0x1f55, 0xff7: 0x1f5a, 0xff8: 0x1f5f, 0xff9: 0x1f64, 0xffa: 0x1f69, 0xffb: 0x1f6e,
+       0xffc: 0x1f73, 0xffd: 0x1f78, 0xffe: 0x1f7d, 0xfff: 0x1f87,
+       // Block 0x40, offset 0x1000
+       0x1000: 0x1f8c, 0x1001: 0x1f91, 0x1002: 0x1f96, 0x1003: 0x1fa0, 0x1004: 0x1fa5, 0x1005: 0x1faf,
+       0x1006: 0x1fb4, 0x1007: 0x1fb9, 0x1008: 0x1fbe, 0x1009: 0x1fc3, 0x100a: 0x1fc8, 0x100b: 0x1fcd,
+       0x100c: 0x1fd2, 0x100d: 0x1fd7, 0x100e: 0x1fe6, 0x100f: 0x1ff5, 0x1010: 0x1ffa, 0x1011: 0x1fff,
+       0x1012: 0x2004, 0x1013: 0x2009, 0x1014: 0x200e, 0x1015: 0x2018, 0x1016: 0x201d, 0x1017: 0x2022,
+       0x1018: 0x2031, 0x1019: 0x2040, 0x101a: 0x2045, 0x101b: 0x4420, 0x101c: 0x4426, 0x101d: 0x445c,
+       0x101e: 0x44b3, 0x101f: 0x44ba, 0x1020: 0x44c1, 0x1021: 0x44c8, 0x1022: 0x44cf, 0x1023: 0x44d6,
+       0x1024: 0x25c6, 0x1025: 0x25cd, 0x1026: 0x25d4, 0x1027: 0x25db, 0x1028: 0x25f0, 0x1029: 0x25f7,
+       0x102a: 0x1d98, 0x102b: 0x1d9d, 0x102c: 0x1da2, 0x102d: 0x1da7, 0x102e: 0x1db1, 0x102f: 0x1db6,
+       0x1030: 0x1dca, 0x1031: 0x1dcf, 0x1032: 0x1dd4, 0x1033: 0x1dd9, 0x1034: 0x1de3, 0x1035: 0x1de8,
+       0x1036: 0x1df2, 0x1037: 0x1df7, 0x1038: 0x1dfc, 0x1039: 0x1e01, 0x103a: 0x1e0b, 0x103b: 0x1e10,
+       0x103c: 0x1f3c, 0x103d: 0x1f41, 0x103e: 0x1f50, 0x103f: 0x1f55,
+       // Block 0x41, offset 0x1040
+       0x1040: 0x1f5a, 0x1041: 0x1f6e, 0x1042: 0x1f73, 0x1043: 0x1f78, 0x1044: 0x1f7d, 0x1045: 0x1f96,
+       0x1046: 0x1fa0, 0x1047: 0x1fa5, 0x1048: 0x1faa, 0x1049: 0x1fbe, 0x104a: 0x1fdc, 0x104b: 0x1fe1,
+       0x104c: 0x1fe6, 0x104d: 0x1feb, 0x104e: 0x1ff5, 0x104f: 0x1ffa, 0x1050: 0x445c, 0x1051: 0x2027,
+       0x1052: 0x202c, 0x1053: 0x2031, 0x1054: 0x2036, 0x1055: 0x2040, 0x1056: 0x2045, 0x1057: 0x25b1,
+       0x1058: 0x25b8, 0x1059: 0x25bf, 0x105a: 0x25d4, 0x105b: 0x25e2, 0x105c: 0x1d89, 0x105d: 0x1d8e,
+       0x105e: 0x1d93, 0x105f: 0x1da2, 0x1060: 0x1dac, 0x1061: 0x1dbb, 0x1062: 0x1dc0, 0x1063: 0x1dc5,
+       0x1064: 0x1dd4, 0x1065: 0x1dde, 0x1066: 0x1dfc, 0x1067: 0x1e15, 0x1068: 0x1e1a, 0x1069: 0x1e29,
+       0x106a: 0x1e2e, 0x106b: 0x1e3d, 0x106c: 0x1e47, 0x106d: 0x1e56, 0x106e: 0x1e5b, 0x106f: 0x1e60,
+       0x1070: 0x1e6a, 0x1071: 0x1ea6, 0x1072: 0x1eab, 0x1073: 0x1eb5, 0x1074: 0x1ec4, 0x1075: 0x1ec9,
+       0x1076: 0x1ece, 0x1077: 0x1ed8, 0x1078: 0x1ee7, 0x1079: 0x1efb, 0x107a: 0x1f00, 0x107b: 0x1f05,
+       0x107c: 0x1f14, 0x107d: 0x1f19, 0x107e: 0x1f28, 0x107f: 0x1f2d,
+       // Block 0x42, offset 0x1080
+       0x1080: 0x1f32, 0x1081: 0x1f37, 0x1082: 0x1f46, 0x1083: 0x1f4b, 0x1084: 0x1f5f, 0x1085: 0x1f64,
+       0x1086: 0x1f69, 0x1087: 0x1f6e, 0x1088: 0x1f73, 0x1089: 0x1f87, 0x108a: 0x1f8c, 0x108b: 0x1f91,
+       0x108c: 0x1f96, 0x108d: 0x1f9b, 0x108e: 0x1faf, 0x108f: 0x1fb4, 0x1090: 0x1fb9, 0x1091: 0x1fbe,
+       0x1092: 0x1fcd, 0x1093: 0x1fd2, 0x1094: 0x1fd7, 0x1095: 0x1fe6, 0x1096: 0x1ff0, 0x1097: 0x1fff,
+       0x1098: 0x2004, 0x1099: 0x4450, 0x109a: 0x2018, 0x109b: 0x201d, 0x109c: 0x2022, 0x109d: 0x2031,
+       0x109e: 0x203b, 0x109f: 0x25d4, 0x10a0: 0x25e2, 0x10a1: 0x1da2, 0x10a2: 0x1dac, 0x10a3: 0x1dd4,
+       0x10a4: 0x1dde, 0x10a5: 0x1dfc, 0x10a6: 0x1e06, 0x10a7: 0x1e6a, 0x10a8: 0x1e6f, 0x10a9: 0x1e92,
+       0x10aa: 0x1e97, 0x10ab: 0x1f6e, 0x10ac: 0x1f73, 0x10ad: 0x1f96, 0x10ae: 0x1fe6, 0x10af: 0x1ff0,
+       0x10b0: 0x2031, 0x10b1: 0x203b, 0x10b2: 0x4504, 0x10b3: 0x450c, 0x10b4: 0x4514, 0x10b5: 0x1ef1,
+       0x10b6: 0x1ef6, 0x10b7: 0x1f0a, 0x10b8: 0x1f0f, 0x10b9: 0x1f1e, 0x10ba: 0x1f23, 0x10bb: 0x1e74,
+       0x10bc: 0x1e79, 0x10bd: 0x1e9c, 0x10be: 0x1ea1, 0x10bf: 0x1e33,
+       // Block 0x43, offset 0x10c0
+       0x10c0: 0x1e38, 0x10c1: 0x1e1f, 0x10c2: 0x1e24, 0x10c3: 0x1e4c, 0x10c4: 0x1e51, 0x10c5: 0x1eba,
+       0x10c6: 0x1ebf, 0x10c7: 0x1edd, 0x10c8: 0x1ee2, 0x10c9: 0x1e7e, 0x10ca: 0x1e83, 0x10cb: 0x1e88,
+       0x10cc: 0x1e92, 0x10cd: 0x1e8d, 0x10ce: 0x1e65, 0x10cf: 0x1eb0, 0x10d0: 0x1ed3, 0x10d1: 0x1ef1,
+       0x10d2: 0x1ef6, 0x10d3: 0x1f0a, 0x10d4: 0x1f0f, 0x10d5: 0x1f1e, 0x10d6: 0x1f23, 0x10d7: 0x1e74,
+       0x10d8: 0x1e79, 0x10d9: 0x1e9c, 0x10da: 0x1ea1, 0x10db: 0x1e33, 0x10dc: 0x1e38, 0x10dd: 0x1e1f,
+       0x10de: 0x1e24, 0x10df: 0x1e4c, 0x10e0: 0x1e51, 0x10e1: 0x1eba, 0x10e2: 0x1ebf, 0x10e3: 0x1edd,
+       0x10e4: 0x1ee2, 0x10e5: 0x1e7e, 0x10e6: 0x1e83, 0x10e7: 0x1e88, 0x10e8: 0x1e92, 0x10e9: 0x1e8d,
+       0x10ea: 0x1e65, 0x10eb: 0x1eb0, 0x10ec: 0x1ed3, 0x10ed: 0x1e7e, 0x10ee: 0x1e83, 0x10ef: 0x1e88,
+       0x10f0: 0x1e92, 0x10f1: 0x1e6f, 0x10f2: 0x1e97, 0x10f3: 0x1eec, 0x10f4: 0x1e56, 0x10f5: 0x1e5b,
+       0x10f6: 0x1e60, 0x10f7: 0x1e7e, 0x10f8: 0x1e83, 0x10f9: 0x1e88, 0x10fa: 0x1eec, 0x10fb: 0x1efb,
+       0x10fc: 0x4408, 0x10fd: 0x4408,
+       // Block 0x44, offset 0x1100
+       0x1110: 0x2311, 0x1111: 0x2326,
+       0x1112: 0x2326, 0x1113: 0x232d, 0x1114: 0x2334, 0x1115: 0x2349, 0x1116: 0x2350, 0x1117: 0x2357,
+       0x1118: 0x237a, 0x1119: 0x237a, 0x111a: 0x239d, 0x111b: 0x2396, 0x111c: 0x23b2, 0x111d: 0x23a4,
+       0x111e: 0x23ab, 0x111f: 0x23ce, 0x1120: 0x23ce, 0x1121: 0x23c7, 0x1122: 0x23d5, 0x1123: 0x23d5,
+       0x1124: 0x23ff, 0x1125: 0x23ff, 0x1126: 0x241b, 0x1127: 0x23e3, 0x1128: 0x23e3, 0x1129: 0x23dc,
+       0x112a: 0x23f1, 0x112b: 0x23f1, 0x112c: 0x23f8, 0x112d: 0x23f8, 0x112e: 0x2422, 0x112f: 0x2430,
+       0x1130: 0x2430, 0x1131: 0x2437, 0x1132: 0x2437, 0x1133: 0x243e, 0x1134: 0x2445, 0x1135: 0x244c,
+       0x1136: 0x2453, 0x1137: 0x2453, 0x1138: 0x245a, 0x1139: 0x2468, 0x113a: 0x2476, 0x113b: 0x246f,
+       0x113c: 0x247d, 0x113d: 0x247d, 0x113e: 0x2492, 0x113f: 0x2499,
+       // Block 0x45, offset 0x1140
+       0x1140: 0x24ca, 0x1141: 0x24d8, 0x1142: 0x24d1, 0x1143: 0x24b5, 0x1144: 0x24b5, 0x1145: 0x24df,
+       0x1146: 0x24df, 0x1147: 0x24e6, 0x1148: 0x24e6, 0x1149: 0x2510, 0x114a: 0x2517, 0x114b: 0x251e,
+       0x114c: 0x24f4, 0x114d: 0x2502, 0x114e: 0x2525, 0x114f: 0x252c,
+       0x1152: 0x24fb, 0x1153: 0x2580, 0x1154: 0x2587, 0x1155: 0x255d, 0x1156: 0x2564, 0x1157: 0x2548,
+       0x1158: 0x2548, 0x1159: 0x254f, 0x115a: 0x2579, 0x115b: 0x2572, 0x115c: 0x259c, 0x115d: 0x259c,
+       0x115e: 0x230a, 0x115f: 0x231f, 0x1160: 0x2318, 0x1161: 0x2342, 0x1162: 0x233b, 0x1163: 0x2365,
+       0x1164: 0x235e, 0x1165: 0x2388, 0x1166: 0x236c, 0x1167: 0x2381, 0x1168: 0x23b9, 0x1169: 0x2406,
+       0x116a: 0x23ea, 0x116b: 0x2429, 0x116c: 0x24c3, 0x116d: 0x24ed, 0x116e: 0x2595, 0x116f: 0x258e,
+       0x1170: 0x25a3, 0x1171: 0x253a, 0x1172: 0x24a0, 0x1173: 0x256b, 0x1174: 0x2492, 0x1175: 0x24ca,
+       0x1176: 0x2461, 0x1177: 0x24ae, 0x1178: 0x2541, 0x1179: 0x2533, 0x117a: 0x24bc, 0x117b: 0x24a7,
+       0x117c: 0x24bc, 0x117d: 0x2541, 0x117e: 0x2373, 0x117f: 0x238f,
+       // Block 0x46, offset 0x1180
+       0x1180: 0x2509, 0x1181: 0x2484, 0x1182: 0x2303, 0x1183: 0x24a7, 0x1184: 0x244c, 0x1185: 0x241b,
+       0x1186: 0x23c0, 0x1187: 0x2556,
+       0x11b0: 0x2414, 0x11b1: 0x248b, 0x11b2: 0x27bf, 0x11b3: 0x27b6, 0x11b4: 0x27ec, 0x11b5: 0x27da,
+       0x11b6: 0x27c8, 0x11b7: 0x27e3, 0x11b8: 0x27f5, 0x11b9: 0x240d, 0x11ba: 0x2c7c, 0x11bb: 0x2afc,
+       0x11bc: 0x27d1,
+       // Block 0x47, offset 0x11c0
+       0x11d0: 0x0019, 0x11d1: 0x0483,
+       0x11d2: 0x0487, 0x11d3: 0x0035, 0x11d4: 0x0037, 0x11d5: 0x0003, 0x11d6: 0x003f, 0x11d7: 0x04bf,
+       0x11d8: 0x04c3, 0x11d9: 0x1b5c,
+       0x11e0: 0x8132, 0x11e1: 0x8132, 0x11e2: 0x8132, 0x11e3: 0x8132,
+       0x11e4: 0x8132, 0x11e5: 0x8132, 0x11e6: 0x8132, 0x11e7: 0x812d, 0x11e8: 0x812d, 0x11e9: 0x812d,
+       0x11ea: 0x812d, 0x11eb: 0x812d, 0x11ec: 0x812d, 0x11ed: 0x812d, 0x11ee: 0x8132, 0x11ef: 0x8132,
+       0x11f0: 0x1873, 0x11f1: 0x0443, 0x11f2: 0x043f, 0x11f3: 0x007f, 0x11f4: 0x007f, 0x11f5: 0x0011,
+       0x11f6: 0x0013, 0x11f7: 0x00b7, 0x11f8: 0x00bb, 0x11f9: 0x04b7, 0x11fa: 0x04bb, 0x11fb: 0x04ab,
+       0x11fc: 0x04af, 0x11fd: 0x0493, 0x11fe: 0x0497, 0x11ff: 0x048b,
+       // Block 0x48, offset 0x1200
+       0x1200: 0x048f, 0x1201: 0x049b, 0x1202: 0x049f, 0x1203: 0x04a3, 0x1204: 0x04a7,
+       0x1207: 0x0077, 0x1208: 0x007b, 0x1209: 0x4269, 0x120a: 0x4269, 0x120b: 0x4269,
+       0x120c: 0x4269, 0x120d: 0x007f, 0x120e: 0x007f, 0x120f: 0x007f, 0x1210: 0x0019, 0x1211: 0x0483,
+       0x1212: 0x001d, 0x1214: 0x0037, 0x1215: 0x0035, 0x1216: 0x003f, 0x1217: 0x0003,
+       0x1218: 0x0443, 0x1219: 0x0011, 0x121a: 0x0013, 0x121b: 0x00b7, 0x121c: 0x00bb, 0x121d: 0x04b7,
+       0x121e: 0x04bb, 0x121f: 0x0007, 0x1220: 0x000d, 0x1221: 0x0015, 0x1222: 0x0017, 0x1223: 0x001b,
+       0x1224: 0x0039, 0x1225: 0x003d, 0x1226: 0x003b, 0x1228: 0x0079, 0x1229: 0x0009,
+       0x122a: 0x000b, 0x122b: 0x0041,
+       0x1230: 0x42aa, 0x1231: 0x442c, 0x1232: 0x42af, 0x1234: 0x42b4,
+       0x1236: 0x42b9, 0x1237: 0x4432, 0x1238: 0x42be, 0x1239: 0x4438, 0x123a: 0x42c3, 0x123b: 0x443e,
+       0x123c: 0x42c8, 0x123d: 0x4444, 0x123e: 0x42cd, 0x123f: 0x444a,
+       // Block 0x49, offset 0x1240
+       0x1240: 0x0236, 0x1241: 0x440e, 0x1242: 0x440e, 0x1243: 0x4414, 0x1244: 0x4414, 0x1245: 0x4456,
+       0x1246: 0x4456, 0x1247: 0x441a, 0x1248: 0x441a, 0x1249: 0x4462, 0x124a: 0x4462, 0x124b: 0x4462,
+       0x124c: 0x4462, 0x124d: 0x0239, 0x124e: 0x0239, 0x124f: 0x023c, 0x1250: 0x023c, 0x1251: 0x023c,
+       0x1252: 0x023c, 0x1253: 0x023f, 0x1254: 0x023f, 0x1255: 0x0242, 0x1256: 0x0242, 0x1257: 0x0242,
+       0x1258: 0x0242, 0x1259: 0x0245, 0x125a: 0x0245, 0x125b: 0x0245, 0x125c: 0x0245, 0x125d: 0x0248,
+       0x125e: 0x0248, 0x125f: 0x0248, 0x1260: 0x0248, 0x1261: 0x024b, 0x1262: 0x024b, 0x1263: 0x024b,
+       0x1264: 0x024b, 0x1265: 0x024e, 0x1266: 0x024e, 0x1267: 0x024e, 0x1268: 0x024e, 0x1269: 0x0251,
+       0x126a: 0x0251, 0x126b: 0x0254, 0x126c: 0x0254, 0x126d: 0x0257, 0x126e: 0x0257, 0x126f: 0x025a,
+       0x1270: 0x025a, 0x1271: 0x025d, 0x1272: 0x025d, 0x1273: 0x025d, 0x1274: 0x025d, 0x1275: 0x0260,
+       0x1276: 0x0260, 0x1277: 0x0260, 0x1278: 0x0260, 0x1279: 0x0263, 0x127a: 0x0263, 0x127b: 0x0263,
+       0x127c: 0x0263, 0x127d: 0x0266, 0x127e: 0x0266, 0x127f: 0x0266,
+       // Block 0x4a, offset 0x1280
+       0x1280: 0x0266, 0x1281: 0x0269, 0x1282: 0x0269, 0x1283: 0x0269, 0x1284: 0x0269, 0x1285: 0x026c,
+       0x1286: 0x026c, 0x1287: 0x026c, 0x1288: 0x026c, 0x1289: 0x026f, 0x128a: 0x026f, 0x128b: 0x026f,
+       0x128c: 0x026f, 0x128d: 0x0272, 0x128e: 0x0272, 0x128f: 0x0272, 0x1290: 0x0272, 0x1291: 0x0275,
+       0x1292: 0x0275, 0x1293: 0x0275, 0x1294: 0x0275, 0x1295: 0x0278, 0x1296: 0x0278, 0x1297: 0x0278,
+       0x1298: 0x0278, 0x1299: 0x027b, 0x129a: 0x027b, 0x129b: 0x027b, 0x129c: 0x027b, 0x129d: 0x027e,
+       0x129e: 0x027e, 0x129f: 0x027e, 0x12a0: 0x027e, 0x12a1: 0x0281, 0x12a2: 0x0281, 0x12a3: 0x0281,
+       0x12a4: 0x0281, 0x12a5: 0x0284, 0x12a6: 0x0284, 0x12a7: 0x0284, 0x12a8: 0x0284, 0x12a9: 0x0287,
+       0x12aa: 0x0287, 0x12ab: 0x0287, 0x12ac: 0x0287, 0x12ad: 0x028a, 0x12ae: 0x028a, 0x12af: 0x028d,
+       0x12b0: 0x028d, 0x12b1: 0x0290, 0x12b2: 0x0290, 0x12b3: 0x0290, 0x12b4: 0x0290, 0x12b5: 0x2e00,
+       0x12b6: 0x2e00, 0x12b7: 0x2e08, 0x12b8: 0x2e08, 0x12b9: 0x2e10, 0x12ba: 0x2e10, 0x12bb: 0x1f82,
+       0x12bc: 0x1f82,
+       // Block 0x4b, offset 0x12c0
+       0x12c0: 0x0081, 0x12c1: 0x0083, 0x12c2: 0x0085, 0x12c3: 0x0087, 0x12c4: 0x0089, 0x12c5: 0x008b,
+       0x12c6: 0x008d, 0x12c7: 0x008f, 0x12c8: 0x0091, 0x12c9: 0x0093, 0x12ca: 0x0095, 0x12cb: 0x0097,
+       0x12cc: 0x0099, 0x12cd: 0x009b, 0x12ce: 0x009d, 0x12cf: 0x009f, 0x12d0: 0x00a1, 0x12d1: 0x00a3,
+       0x12d2: 0x00a5, 0x12d3: 0x00a7, 0x12d4: 0x00a9, 0x12d5: 0x00ab, 0x12d6: 0x00ad, 0x12d7: 0x00af,
+       0x12d8: 0x00b1, 0x12d9: 0x00b3, 0x12da: 0x00b5, 0x12db: 0x00b7, 0x12dc: 0x00b9, 0x12dd: 0x00bb,
+       0x12de: 0x00bd, 0x12df: 0x0477, 0x12e0: 0x047b, 0x12e1: 0x0487, 0x12e2: 0x049b, 0x12e3: 0x049f,
+       0x12e4: 0x0483, 0x12e5: 0x05ab, 0x12e6: 0x05a3, 0x12e7: 0x04c7, 0x12e8: 0x04cf, 0x12e9: 0x04d7,
+       0x12ea: 0x04df, 0x12eb: 0x04e7, 0x12ec: 0x056b, 0x12ed: 0x0573, 0x12ee: 0x057b, 0x12ef: 0x051f,
+       0x12f0: 0x05af, 0x12f1: 0x04cb, 0x12f2: 0x04d3, 0x12f3: 0x04db, 0x12f4: 0x04e3, 0x12f5: 0x04eb,
+       0x12f6: 0x04ef, 0x12f7: 0x04f3, 0x12f8: 0x04f7, 0x12f9: 0x04fb, 0x12fa: 0x04ff, 0x12fb: 0x0503,
+       0x12fc: 0x0507, 0x12fd: 0x050b, 0x12fe: 0x050f, 0x12ff: 0x0513,
+       // Block 0x4c, offset 0x1300
+       0x1300: 0x0517, 0x1301: 0x051b, 0x1302: 0x0523, 0x1303: 0x0527, 0x1304: 0x052b, 0x1305: 0x052f,
+       0x1306: 0x0533, 0x1307: 0x0537, 0x1308: 0x053b, 0x1309: 0x053f, 0x130a: 0x0543, 0x130b: 0x0547,
+       0x130c: 0x054b, 0x130d: 0x054f, 0x130e: 0x0553, 0x130f: 0x0557, 0x1310: 0x055b, 0x1311: 0x055f,
+       0x1312: 0x0563, 0x1313: 0x0567, 0x1314: 0x056f, 0x1315: 0x0577, 0x1316: 0x057f, 0x1317: 0x0583,
+       0x1318: 0x0587, 0x1319: 0x058b, 0x131a: 0x058f, 0x131b: 0x0593, 0x131c: 0x0597, 0x131d: 0x05a7,
+       0x131e: 0x4a78, 0x131f: 0x4a7e, 0x1320: 0x03c3, 0x1321: 0x0313, 0x1322: 0x0317, 0x1323: 0x4a3b,
+       0x1324: 0x031b, 0x1325: 0x4a41, 0x1326: 0x4a47, 0x1327: 0x031f, 0x1328: 0x0323, 0x1329: 0x0327,
+       0x132a: 0x4a4d, 0x132b: 0x4a53, 0x132c: 0x4a59, 0x132d: 0x4a5f, 0x132e: 0x4a65, 0x132f: 0x4a6b,
+       0x1330: 0x0367, 0x1331: 0x032b, 0x1332: 0x032f, 0x1333: 0x0333, 0x1334: 0x037b, 0x1335: 0x0337,
+       0x1336: 0x033b, 0x1337: 0x033f, 0x1338: 0x0343, 0x1339: 0x0347, 0x133a: 0x034b, 0x133b: 0x034f,
+       0x133c: 0x0353, 0x133d: 0x0357, 0x133e: 0x035b,
+       // Block 0x4d, offset 0x1340
+       0x1342: 0x49bd, 0x1343: 0x49c3, 0x1344: 0x49c9, 0x1345: 0x49cf,
+       0x1346: 0x49d5, 0x1347: 0x49db, 0x134a: 0x49e1, 0x134b: 0x49e7,
+       0x134c: 0x49ed, 0x134d: 0x49f3, 0x134e: 0x49f9, 0x134f: 0x49ff,
+       0x1352: 0x4a05, 0x1353: 0x4a0b, 0x1354: 0x4a11, 0x1355: 0x4a17, 0x1356: 0x4a1d, 0x1357: 0x4a23,
+       0x135a: 0x4a29, 0x135b: 0x4a2f, 0x135c: 0x4a35,
+       0x1360: 0x00bf, 0x1361: 0x00c2, 0x1362: 0x00cb, 0x1363: 0x4264,
+       0x1364: 0x00c8, 0x1365: 0x00c5, 0x1366: 0x0447, 0x1368: 0x046b, 0x1369: 0x044b,
+       0x136a: 0x044f, 0x136b: 0x0453, 0x136c: 0x0457, 0x136d: 0x046f, 0x136e: 0x0473,
+       // Block 0x4e, offset 0x1380
+       0x1380: 0x0063, 0x1381: 0x0065, 0x1382: 0x0067, 0x1383: 0x0069, 0x1384: 0x006b, 0x1385: 0x006d,
+       0x1386: 0x006f, 0x1387: 0x0071, 0x1388: 0x0073, 0x1389: 0x0075, 0x138a: 0x0083, 0x138b: 0x0085,
+       0x138c: 0x0087, 0x138d: 0x0089, 0x138e: 0x008b, 0x138f: 0x008d, 0x1390: 0x008f, 0x1391: 0x0091,
+       0x1392: 0x0093, 0x1393: 0x0095, 0x1394: 0x0097, 0x1395: 0x0099, 0x1396: 0x009b, 0x1397: 0x009d,
+       0x1398: 0x009f, 0x1399: 0x00a1, 0x139a: 0x00a3, 0x139b: 0x00a5, 0x139c: 0x00a7, 0x139d: 0x00a9,
+       0x139e: 0x00ab, 0x139f: 0x00ad, 0x13a0: 0x00af, 0x13a1: 0x00b1, 0x13a2: 0x00b3, 0x13a3: 0x00b5,
+       0x13a4: 0x00dd, 0x13a5: 0x00f2, 0x13a8: 0x0173, 0x13a9: 0x0176,
+       0x13aa: 0x0179, 0x13ab: 0x017c, 0x13ac: 0x017f, 0x13ad: 0x0182, 0x13ae: 0x0185, 0x13af: 0x0188,
+       0x13b0: 0x018b, 0x13b1: 0x018e, 0x13b2: 0x0191, 0x13b3: 0x0194, 0x13b4: 0x0197, 0x13b5: 0x019a,
+       0x13b6: 0x019d, 0x13b7: 0x01a0, 0x13b8: 0x01a3, 0x13b9: 0x0188, 0x13ba: 0x01a6, 0x13bb: 0x01a9,
+       0x13bc: 0x01ac, 0x13bd: 0x01af, 0x13be: 0x01b2, 0x13bf: 0x01b5,
+       // Block 0x4f, offset 0x13c0
+       0x13c0: 0x01fd, 0x13c1: 0x0200, 0x13c2: 0x0203, 0x13c3: 0x045b, 0x13c4: 0x01c7, 0x13c5: 0x01d0,
+       0x13c6: 0x01d6, 0x13c7: 0x01fa, 0x13c8: 0x01eb, 0x13c9: 0x01e8, 0x13ca: 0x0206, 0x13cb: 0x0209,
+       0x13ce: 0x0021, 0x13cf: 0x0023, 0x13d0: 0x0025, 0x13d1: 0x0027,
+       0x13d2: 0x0029, 0x13d3: 0x002b, 0x13d4: 0x002d, 0x13d5: 0x002f, 0x13d6: 0x0031, 0x13d7: 0x0033,
+       0x13d8: 0x0021, 0x13d9: 0x0023, 0x13da: 0x0025, 0x13db: 0x0027, 0x13dc: 0x0029, 0x13dd: 0x002b,
+       0x13de: 0x002d, 0x13df: 0x002f, 0x13e0: 0x0031, 0x13e1: 0x0033, 0x13e2: 0x0021, 0x13e3: 0x0023,
+       0x13e4: 0x0025, 0x13e5: 0x0027, 0x13e6: 0x0029, 0x13e7: 0x002b, 0x13e8: 0x002d, 0x13e9: 0x002f,
+       0x13ea: 0x0031, 0x13eb: 0x0033, 0x13ec: 0x0021, 0x13ed: 0x0023, 0x13ee: 0x0025, 0x13ef: 0x0027,
+       0x13f0: 0x0029, 0x13f1: 0x002b, 0x13f2: 0x002d, 0x13f3: 0x002f, 0x13f4: 0x0031, 0x13f5: 0x0033,
+       0x13f6: 0x0021, 0x13f7: 0x0023, 0x13f8: 0x0025, 0x13f9: 0x0027, 0x13fa: 0x0029, 0x13fb: 0x002b,
+       0x13fc: 0x002d, 0x13fd: 0x002f, 0x13fe: 0x0031, 0x13ff: 0x0033,
+       // Block 0x50, offset 0x1400
+       0x1400: 0x0239, 0x1401: 0x023c, 0x1402: 0x0248, 0x1403: 0x0251, 0x1405: 0x028a,
+       0x1406: 0x025a, 0x1407: 0x024b, 0x1408: 0x0269, 0x1409: 0x0290, 0x140a: 0x027b, 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, 0x141c: 0x0293, 0x141d: 0x02e4,
+       0x141e: 0x02cc, 0x141f: 0x0296, 0x1421: 0x023c, 0x1422: 0x0248,
+       0x1424: 0x0287, 0x1427: 0x024b, 0x1429: 0x0290,
+       0x142a: 0x027b, 0x142b: 0x027e, 0x142c: 0x0281, 0x142d: 0x0284, 0x142e: 0x025d, 0x142f: 0x026f,
+       0x1430: 0x0275, 0x1431: 0x0263, 0x1432: 0x0278, 0x1434: 0x0260, 0x1435: 0x0242,
+       0x1436: 0x0245, 0x1437: 0x024e, 0x1439: 0x0266, 0x143b: 0x0272,
+       // Block 0x51, offset 0x1440
+       0x1442: 0x0248,
+       0x1447: 0x024b, 0x1449: 0x0290, 0x144b: 0x027e,
+       0x144d: 0x0284, 0x144e: 0x025d, 0x144f: 0x026f, 0x1451: 0x0263,
+       0x1452: 0x0278, 0x1454: 0x0260, 0x1457: 0x024e,
+       0x1459: 0x0266, 0x145b: 0x0272, 0x145d: 0x02e4,
+       0x145f: 0x0296, 0x1461: 0x023c, 0x1462: 0x0248,
+       0x1464: 0x0287, 0x1467: 0x024b, 0x1468: 0x0269, 0x1469: 0x0290,
+       0x146a: 0x027b, 0x146c: 0x0281, 0x146d: 0x0284, 0x146e: 0x025d, 0x146f: 0x026f,
+       0x1470: 0x0275, 0x1471: 0x0263, 0x1472: 0x0278, 0x1474: 0x0260, 0x1475: 0x0242,
+       0x1476: 0x0245, 0x1477: 0x024e, 0x1479: 0x0266, 0x147a: 0x026c, 0x147b: 0x0272,
+       0x147c: 0x0293, 0x147e: 0x02cc,
+       // Block 0x52, offset 0x1480
+       0x1480: 0x0239, 0x1481: 0x023c, 0x1482: 0x0248, 0x1483: 0x0251, 0x1484: 0x0287, 0x1485: 0x028a,
+       0x1486: 0x025a, 0x1487: 0x024b, 0x1488: 0x0269, 0x1489: 0x0290, 0x148b: 0x027e,
+       0x148c: 0x0281, 0x148d: 0x0284, 0x148e: 0x025d, 0x148f: 0x026f, 0x1490: 0x0275, 0x1491: 0x0263,
+       0x1492: 0x0278, 0x1493: 0x0257, 0x1494: 0x0260, 0x1495: 0x0242, 0x1496: 0x0245, 0x1497: 0x024e,
+       0x1498: 0x0254, 0x1499: 0x0266, 0x149a: 0x026c, 0x149b: 0x0272,
+       0x14a1: 0x023c, 0x14a2: 0x0248, 0x14a3: 0x0251,
+       0x14a5: 0x028a, 0x14a6: 0x025a, 0x14a7: 0x024b, 0x14a8: 0x0269, 0x14a9: 0x0290,
+       0x14ab: 0x027e, 0x14ac: 0x0281, 0x14ad: 0x0284, 0x14ae: 0x025d, 0x14af: 0x026f,
+       0x14b0: 0x0275, 0x14b1: 0x0263, 0x14b2: 0x0278, 0x14b3: 0x0257, 0x14b4: 0x0260, 0x14b5: 0x0242,
+       0x14b6: 0x0245, 0x14b7: 0x024e, 0x14b8: 0x0254, 0x14b9: 0x0266, 0x14ba: 0x026c, 0x14bb: 0x0272,
+       // Block 0x53, offset 0x14c0
+       0x14c0: 0x1879, 0x14c1: 0x1876, 0x14c2: 0x187c, 0x14c3: 0x18a0, 0x14c4: 0x18c4, 0x14c5: 0x18e8,
+       0x14c6: 0x190c, 0x14c7: 0x1915, 0x14c8: 0x191b, 0x14c9: 0x1921, 0x14ca: 0x1927,
+       0x14d0: 0x1a8c, 0x14d1: 0x1a90,
+       0x14d2: 0x1a94, 0x14d3: 0x1a98, 0x14d4: 0x1a9c, 0x14d5: 0x1aa0, 0x14d6: 0x1aa4, 0x14d7: 0x1aa8,
+       0x14d8: 0x1aac, 0x14d9: 0x1ab0, 0x14da: 0x1ab4, 0x14db: 0x1ab8, 0x14dc: 0x1abc, 0x14dd: 0x1ac0,
+       0x14de: 0x1ac4, 0x14df: 0x1ac8, 0x14e0: 0x1acc, 0x14e1: 0x1ad0, 0x14e2: 0x1ad4, 0x14e3: 0x1ad8,
+       0x14e4: 0x1adc, 0x14e5: 0x1ae0, 0x14e6: 0x1ae4, 0x14e7: 0x1ae8, 0x14e8: 0x1aec, 0x14e9: 0x1af0,
+       0x14ea: 0x271e, 0x14eb: 0x0047, 0x14ec: 0x0065, 0x14ed: 0x193c, 0x14ee: 0x19b1,
+       0x14f0: 0x0043, 0x14f1: 0x0045, 0x14f2: 0x0047, 0x14f3: 0x0049, 0x14f4: 0x004b, 0x14f5: 0x004d,
+       0x14f6: 0x004f, 0x14f7: 0x0051, 0x14f8: 0x0053, 0x14f9: 0x0055, 0x14fa: 0x0057, 0x14fb: 0x0059,
+       0x14fc: 0x005b, 0x14fd: 0x005d, 0x14fe: 0x005f, 0x14ff: 0x0061,
+       // Block 0x54, offset 0x1500
+       0x1500: 0x26ad, 0x1501: 0x26c2, 0x1502: 0x0503,
+       0x1510: 0x0c0f, 0x1511: 0x0a47,
+       0x1512: 0x08d3, 0x1513: 0x45c4, 0x1514: 0x071b, 0x1515: 0x09ef, 0x1516: 0x132f, 0x1517: 0x09ff,
+       0x1518: 0x0727, 0x1519: 0x0cd7, 0x151a: 0x0eaf, 0x151b: 0x0caf, 0x151c: 0x0827, 0x151d: 0x0b6b,
+       0x151e: 0x07bf, 0x151f: 0x0cb7, 0x1520: 0x0813, 0x1521: 0x1117, 0x1522: 0x0f83, 0x1523: 0x138b,
+       0x1524: 0x09d3, 0x1525: 0x090b, 0x1526: 0x0e63, 0x1527: 0x0c1b, 0x1528: 0x0c47, 0x1529: 0x06bf,
+       0x152a: 0x06cb, 0x152b: 0x140b, 0x152c: 0x0adb, 0x152d: 0x06e7, 0x152e: 0x08ef, 0x152f: 0x0c3b,
+       0x1530: 0x13b3, 0x1531: 0x0c13, 0x1532: 0x106f, 0x1533: 0x10ab, 0x1534: 0x08f7, 0x1535: 0x0e43,
+       0x1536: 0x0d0b, 0x1537: 0x0d07, 0x1538: 0x0f97, 0x1539: 0x082b, 0x153a: 0x0957, 0x153b: 0x1443,
+       // Block 0x55, offset 0x1540
+       0x1540: 0x06fb, 0x1541: 0x06f3, 0x1542: 0x0703, 0x1543: 0x1647, 0x1544: 0x0747, 0x1545: 0x0757,
+       0x1546: 0x075b, 0x1547: 0x0763, 0x1548: 0x076b, 0x1549: 0x076f, 0x154a: 0x077b, 0x154b: 0x0773,
+       0x154c: 0x05b3, 0x154d: 0x165b, 0x154e: 0x078f, 0x154f: 0x0793, 0x1550: 0x0797, 0x1551: 0x07b3,
+       0x1552: 0x164c, 0x1553: 0x05b7, 0x1554: 0x079f, 0x1555: 0x07bf, 0x1556: 0x1656, 0x1557: 0x07cf,
+       0x1558: 0x07d7, 0x1559: 0x0737, 0x155a: 0x07df, 0x155b: 0x07e3, 0x155c: 0x1831, 0x155d: 0x07ff,
+       0x155e: 0x0807, 0x155f: 0x05bf, 0x1560: 0x081f, 0x1561: 0x0823, 0x1562: 0x082b, 0x1563: 0x082f,
+       0x1564: 0x05c3, 0x1565: 0x0847, 0x1566: 0x084b, 0x1567: 0x0857, 0x1568: 0x0863, 0x1569: 0x0867,
+       0x156a: 0x086b, 0x156b: 0x0873, 0x156c: 0x0893, 0x156d: 0x0897, 0x156e: 0x089f, 0x156f: 0x08af,
+       0x1570: 0x08b7, 0x1571: 0x08bb, 0x1572: 0x08bb, 0x1573: 0x08bb, 0x1574: 0x166a, 0x1575: 0x0e93,
+       0x1576: 0x08cf, 0x1577: 0x08d7, 0x1578: 0x166f, 0x1579: 0x08e3, 0x157a: 0x08eb, 0x157b: 0x08f3,
+       0x157c: 0x091b, 0x157d: 0x0907, 0x157e: 0x0913, 0x157f: 0x0917,
+       // Block 0x56, offset 0x1580
+       0x1580: 0x091f, 0x1581: 0x0927, 0x1582: 0x092b, 0x1583: 0x0933, 0x1584: 0x093b, 0x1585: 0x093f,
+       0x1586: 0x093f, 0x1587: 0x0947, 0x1588: 0x094f, 0x1589: 0x0953, 0x158a: 0x095f, 0x158b: 0x0983,
+       0x158c: 0x0967, 0x158d: 0x0987, 0x158e: 0x096b, 0x158f: 0x0973, 0x1590: 0x080b, 0x1591: 0x09cf,
+       0x1592: 0x0997, 0x1593: 0x099b, 0x1594: 0x099f, 0x1595: 0x0993, 0x1596: 0x09a7, 0x1597: 0x09a3,
+       0x1598: 0x09bb, 0x1599: 0x1674, 0x159a: 0x09d7, 0x159b: 0x09db, 0x159c: 0x09e3, 0x159d: 0x09ef,
+       0x159e: 0x09f7, 0x159f: 0x0a13, 0x15a0: 0x1679, 0x15a1: 0x167e, 0x15a2: 0x0a1f, 0x15a3: 0x0a23,
+       0x15a4: 0x0a27, 0x15a5: 0x0a1b, 0x15a6: 0x0a2f, 0x15a7: 0x05c7, 0x15a8: 0x05cb, 0x15a9: 0x0a37,
+       0x15aa: 0x0a3f, 0x15ab: 0x0a3f, 0x15ac: 0x1683, 0x15ad: 0x0a5b, 0x15ae: 0x0a5f, 0x15af: 0x0a63,
+       0x15b0: 0x0a6b, 0x15b1: 0x1688, 0x15b2: 0x0a73, 0x15b3: 0x0a77, 0x15b4: 0x0b4f, 0x15b5: 0x0a7f,
+       0x15b6: 0x05cf, 0x15b7: 0x0a8b, 0x15b8: 0x0a9b, 0x15b9: 0x0aa7, 0x15ba: 0x0aa3, 0x15bb: 0x1692,
+       0x15bc: 0x0aaf, 0x15bd: 0x1697, 0x15be: 0x0abb, 0x15bf: 0x0ab7,
+       // Block 0x57, offset 0x15c0
+       0x15c0: 0x0abf, 0x15c1: 0x0acf, 0x15c2: 0x0ad3, 0x15c3: 0x05d3, 0x15c4: 0x0ae3, 0x15c5: 0x0aeb,
+       0x15c6: 0x0aef, 0x15c7: 0x0af3, 0x15c8: 0x05d7, 0x15c9: 0x169c, 0x15ca: 0x05db, 0x15cb: 0x0b0f,
+       0x15cc: 0x0b13, 0x15cd: 0x0b17, 0x15ce: 0x0b1f, 0x15cf: 0x1863, 0x15d0: 0x0b37, 0x15d1: 0x16a6,
+       0x15d2: 0x16a6, 0x15d3: 0x11d7, 0x15d4: 0x0b47, 0x15d5: 0x0b47, 0x15d6: 0x05df, 0x15d7: 0x16c9,
+       0x15d8: 0x179b, 0x15d9: 0x0b57, 0x15da: 0x0b5f, 0x15db: 0x05e3, 0x15dc: 0x0b73, 0x15dd: 0x0b83,
+       0x15de: 0x0b87, 0x15df: 0x0b8f, 0x15e0: 0x0b9f, 0x15e1: 0x05eb, 0x15e2: 0x05e7, 0x15e3: 0x0ba3,
+       0x15e4: 0x16ab, 0x15e5: 0x0ba7, 0x15e6: 0x0bbb, 0x15e7: 0x0bbf, 0x15e8: 0x0bc3, 0x15e9: 0x0bbf,
+       0x15ea: 0x0bcf, 0x15eb: 0x0bd3, 0x15ec: 0x0be3, 0x15ed: 0x0bdb, 0x15ee: 0x0bdf, 0x15ef: 0x0be7,
+       0x15f0: 0x0beb, 0x15f1: 0x0bef, 0x15f2: 0x0bfb, 0x15f3: 0x0bff, 0x15f4: 0x0c17, 0x15f5: 0x0c1f,
+       0x15f6: 0x0c2f, 0x15f7: 0x0c43, 0x15f8: 0x16ba, 0x15f9: 0x0c3f, 0x15fa: 0x0c33, 0x15fb: 0x0c4b,
+       0x15fc: 0x0c53, 0x15fd: 0x0c67, 0x15fe: 0x16bf, 0x15ff: 0x0c6f,
+       // Block 0x58, offset 0x1600
+       0x1600: 0x0c63, 0x1601: 0x0c5b, 0x1602: 0x05ef, 0x1603: 0x0c77, 0x1604: 0x0c7f, 0x1605: 0x0c87,
+       0x1606: 0x0c7b, 0x1607: 0x05f3, 0x1608: 0x0c97, 0x1609: 0x0c9f, 0x160a: 0x16c4, 0x160b: 0x0ccb,
+       0x160c: 0x0cff, 0x160d: 0x0cdb, 0x160e: 0x05ff, 0x160f: 0x0ce7, 0x1610: 0x05fb, 0x1611: 0x05f7,
+       0x1612: 0x07c3, 0x1613: 0x07c7, 0x1614: 0x0d03, 0x1615: 0x0ceb, 0x1616: 0x11ab, 0x1617: 0x0663,
+       0x1618: 0x0d0f, 0x1619: 0x0d13, 0x161a: 0x0d17, 0x161b: 0x0d2b, 0x161c: 0x0d23, 0x161d: 0x16dd,
+       0x161e: 0x0603, 0x161f: 0x0d3f, 0x1620: 0x0d33, 0x1621: 0x0d4f, 0x1622: 0x0d57, 0x1623: 0x16e7,
+       0x1624: 0x0d5b, 0x1625: 0x0d47, 0x1626: 0x0d63, 0x1627: 0x0607, 0x1628: 0x0d67, 0x1629: 0x0d6b,
+       0x162a: 0x0d6f, 0x162b: 0x0d7b, 0x162c: 0x16ec, 0x162d: 0x0d83, 0x162e: 0x060b, 0x162f: 0x0d8f,
+       0x1630: 0x16f1, 0x1631: 0x0d93, 0x1632: 0x060f, 0x1633: 0x0d9f, 0x1634: 0x0dab, 0x1635: 0x0db7,
+       0x1636: 0x0dbb, 0x1637: 0x16f6, 0x1638: 0x168d, 0x1639: 0x16fb, 0x163a: 0x0ddb, 0x163b: 0x1700,
+       0x163c: 0x0de7, 0x163d: 0x0def, 0x163e: 0x0ddf, 0x163f: 0x0dfb,
+       // Block 0x59, offset 0x1640
+       0x1640: 0x0e0b, 0x1641: 0x0e1b, 0x1642: 0x0e0f, 0x1643: 0x0e13, 0x1644: 0x0e1f, 0x1645: 0x0e23,
+       0x1646: 0x1705, 0x1647: 0x0e07, 0x1648: 0x0e3b, 0x1649: 0x0e3f, 0x164a: 0x0613, 0x164b: 0x0e53,
+       0x164c: 0x0e4f, 0x164d: 0x170a, 0x164e: 0x0e33, 0x164f: 0x0e6f, 0x1650: 0x170f, 0x1651: 0x1714,
+       0x1652: 0x0e73, 0x1653: 0x0e87, 0x1654: 0x0e83, 0x1655: 0x0e7f, 0x1656: 0x0617, 0x1657: 0x0e8b,
+       0x1658: 0x0e9b, 0x1659: 0x0e97, 0x165a: 0x0ea3, 0x165b: 0x1651, 0x165c: 0x0eb3, 0x165d: 0x1719,
+       0x165e: 0x0ebf, 0x165f: 0x1723, 0x1660: 0x0ed3, 0x1661: 0x0edf, 0x1662: 0x0ef3, 0x1663: 0x1728,
+       0x1664: 0x0f07, 0x1665: 0x0f0b, 0x1666: 0x172d, 0x1667: 0x1732, 0x1668: 0x0f27, 0x1669: 0x0f37,
+       0x166a: 0x061b, 0x166b: 0x0f3b, 0x166c: 0x061f, 0x166d: 0x061f, 0x166e: 0x0f53, 0x166f: 0x0f57,
+       0x1670: 0x0f5f, 0x1671: 0x0f63, 0x1672: 0x0f6f, 0x1673: 0x0623, 0x1674: 0x0f87, 0x1675: 0x1737,
+       0x1676: 0x0fa3, 0x1677: 0x173c, 0x1678: 0x0faf, 0x1679: 0x16a1, 0x167a: 0x0fbf, 0x167b: 0x1741,
+       0x167c: 0x1746, 0x167d: 0x174b, 0x167e: 0x0627, 0x167f: 0x062b,
+       // Block 0x5a, offset 0x1680
+       0x1680: 0x0ff7, 0x1681: 0x1755, 0x1682: 0x1750, 0x1683: 0x175a, 0x1684: 0x175f, 0x1685: 0x0fff,
+       0x1686: 0x1003, 0x1687: 0x1003, 0x1688: 0x100b, 0x1689: 0x0633, 0x168a: 0x100f, 0x168b: 0x0637,
+       0x168c: 0x063b, 0x168d: 0x1769, 0x168e: 0x1023, 0x168f: 0x102b, 0x1690: 0x1037, 0x1691: 0x063f,
+       0x1692: 0x176e, 0x1693: 0x105b, 0x1694: 0x1773, 0x1695: 0x1778, 0x1696: 0x107b, 0x1697: 0x1093,
+       0x1698: 0x0643, 0x1699: 0x109b, 0x169a: 0x109f, 0x169b: 0x10a3, 0x169c: 0x177d, 0x169d: 0x1782,
+       0x169e: 0x1782, 0x169f: 0x10bb, 0x16a0: 0x0647, 0x16a1: 0x1787, 0x16a2: 0x10cf, 0x16a3: 0x10d3,
+       0x16a4: 0x064b, 0x16a5: 0x178c, 0x16a6: 0x10ef, 0x16a7: 0x064f, 0x16a8: 0x10ff, 0x16a9: 0x10f7,
+       0x16aa: 0x1107, 0x16ab: 0x1796, 0x16ac: 0x111f, 0x16ad: 0x0653, 0x16ae: 0x112b, 0x16af: 0x1133,
+       0x16b0: 0x1143, 0x16b1: 0x0657, 0x16b2: 0x17a0, 0x16b3: 0x17a5, 0x16b4: 0x065b, 0x16b5: 0x17aa,
+       0x16b6: 0x115b, 0x16b7: 0x17af, 0x16b8: 0x1167, 0x16b9: 0x1173, 0x16ba: 0x117b, 0x16bb: 0x17b4,
+       0x16bc: 0x17b9, 0x16bd: 0x118f, 0x16be: 0x17be, 0x16bf: 0x1197,
+       // Block 0x5b, offset 0x16c0
+       0x16c0: 0x16ce, 0x16c1: 0x065f, 0x16c2: 0x11af, 0x16c3: 0x11b3, 0x16c4: 0x0667, 0x16c5: 0x11b7,
+       0x16c6: 0x0a33, 0x16c7: 0x17c3, 0x16c8: 0x17c8, 0x16c9: 0x16d3, 0x16ca: 0x16d8, 0x16cb: 0x11d7,
+       0x16cc: 0x11db, 0x16cd: 0x13f3, 0x16ce: 0x066b, 0x16cf: 0x1207, 0x16d0: 0x1203, 0x16d1: 0x120b,
+       0x16d2: 0x083f, 0x16d3: 0x120f, 0x16d4: 0x1213, 0x16d5: 0x1217, 0x16d6: 0x121f, 0x16d7: 0x17cd,
+       0x16d8: 0x121b, 0x16d9: 0x1223, 0x16da: 0x1237, 0x16db: 0x123b, 0x16dc: 0x1227, 0x16dd: 0x123f,
+       0x16de: 0x1253, 0x16df: 0x1267, 0x16e0: 0x1233, 0x16e1: 0x1247, 0x16e2: 0x124b, 0x16e3: 0x124f,
+       0x16e4: 0x17d2, 0x16e5: 0x17dc, 0x16e6: 0x17d7, 0x16e7: 0x066f, 0x16e8: 0x126f, 0x16e9: 0x1273,
+       0x16ea: 0x127b, 0x16eb: 0x17f0, 0x16ec: 0x127f, 0x16ed: 0x17e1, 0x16ee: 0x0673, 0x16ef: 0x0677,
+       0x16f0: 0x17e6, 0x16f1: 0x17eb, 0x16f2: 0x067b, 0x16f3: 0x129f, 0x16f4: 0x12a3, 0x16f5: 0x12a7,
+       0x16f6: 0x12ab, 0x16f7: 0x12b7, 0x16f8: 0x12b3, 0x16f9: 0x12bf, 0x16fa: 0x12bb, 0x16fb: 0x12cb,
+       0x16fc: 0x12c3, 0x16fd: 0x12c7, 0x16fe: 0x12cf, 0x16ff: 0x067f,
+       // Block 0x5c, offset 0x1700
+       0x1700: 0x12d7, 0x1701: 0x12db, 0x1702: 0x0683, 0x1703: 0x12eb, 0x1704: 0x12ef, 0x1705: 0x17f5,
+       0x1706: 0x12fb, 0x1707: 0x12ff, 0x1708: 0x0687, 0x1709: 0x130b, 0x170a: 0x05bb, 0x170b: 0x17fa,
+       0x170c: 0x17ff, 0x170d: 0x068b, 0x170e: 0x068f, 0x170f: 0x1337, 0x1710: 0x134f, 0x1711: 0x136b,
+       0x1712: 0x137b, 0x1713: 0x1804, 0x1714: 0x138f, 0x1715: 0x1393, 0x1716: 0x13ab, 0x1717: 0x13b7,
+       0x1718: 0x180e, 0x1719: 0x1660, 0x171a: 0x13c3, 0x171b: 0x13bf, 0x171c: 0x13cb, 0x171d: 0x1665,
+       0x171e: 0x13d7, 0x171f: 0x13e3, 0x1720: 0x1813, 0x1721: 0x1818, 0x1722: 0x1423, 0x1723: 0x142f,
+       0x1724: 0x1437, 0x1725: 0x181d, 0x1726: 0x143b, 0x1727: 0x1467, 0x1728: 0x1473, 0x1729: 0x1477,
+       0x172a: 0x146f, 0x172b: 0x1483, 0x172c: 0x1487, 0x172d: 0x1822, 0x172e: 0x1493, 0x172f: 0x0693,
+       0x1730: 0x149b, 0x1731: 0x1827, 0x1732: 0x0697, 0x1733: 0x14d3, 0x1734: 0x0ac3, 0x1735: 0x14eb,
+       0x1736: 0x182c, 0x1737: 0x1836, 0x1738: 0x069b, 0x1739: 0x069f, 0x173a: 0x1513, 0x173b: 0x183b,
+       0x173c: 0x06a3, 0x173d: 0x1840, 0x173e: 0x152b, 0x173f: 0x152b,
+       // Block 0x5d, offset 0x1740
+       0x1740: 0x1533, 0x1741: 0x1845, 0x1742: 0x154b, 0x1743: 0x06a7, 0x1744: 0x155b, 0x1745: 0x1567,
+       0x1746: 0x156f, 0x1747: 0x1577, 0x1748: 0x06ab, 0x1749: 0x184a, 0x174a: 0x158b, 0x174b: 0x15a7,
+       0x174c: 0x15b3, 0x174d: 0x06af, 0x174e: 0x06b3, 0x174f: 0x15b7, 0x1750: 0x184f, 0x1751: 0x06b7,
+       0x1752: 0x1854, 0x1753: 0x1859, 0x1754: 0x185e, 0x1755: 0x15db, 0x1756: 0x06bb, 0x1757: 0x15ef,
+       0x1758: 0x15f7, 0x1759: 0x15fb, 0x175a: 0x1603, 0x175b: 0x160b, 0x175c: 0x1613, 0x175d: 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: 0x5c, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x5d, 0xc7: 0x04,
+       0xc8: 0x05, 0xca: 0x5e, 0xcb: 0x5f, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x09,
+       0xd0: 0x0a, 0xd1: 0x60, 0xd2: 0x61, 0xd3: 0x0b, 0xd6: 0x0c, 0xd7: 0x62,
+       0xd8: 0x63, 0xd9: 0x0d, 0xdb: 0x64, 0xdc: 0x65, 0xdd: 0x66, 0xdf: 0x67,
+       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: 0x68, 0x121: 0x69, 0x123: 0x0e, 0x124: 0x6a, 0x125: 0x6b, 0x126: 0x6c, 0x127: 0x6d,
+       0x128: 0x6e, 0x129: 0x6f, 0x12a: 0x70, 0x12b: 0x71, 0x12c: 0x6c, 0x12d: 0x72, 0x12e: 0x73, 0x12f: 0x74,
+       0x131: 0x75, 0x132: 0x76, 0x133: 0x77, 0x134: 0x78, 0x135: 0x79, 0x137: 0x7a,
+       0x138: 0x7b, 0x139: 0x7c, 0x13a: 0x7d, 0x13b: 0x7e, 0x13c: 0x7f, 0x13d: 0x80, 0x13e: 0x81, 0x13f: 0x82,
+       // Block 0x5, offset 0x140
+       0x140: 0x83, 0x142: 0x84, 0x143: 0x85, 0x144: 0x86, 0x145: 0x87, 0x146: 0x88, 0x147: 0x89,
+       0x14d: 0x8a,
+       0x15c: 0x8b, 0x15f: 0x8c,
+       0x162: 0x8d, 0x164: 0x8e,
+       0x168: 0x8f, 0x169: 0x90, 0x16a: 0x91, 0x16c: 0x0f, 0x16d: 0x92, 0x16e: 0x93, 0x16f: 0x94,
+       0x170: 0x95, 0x173: 0x96, 0x174: 0x97, 0x175: 0x10, 0x176: 0x11, 0x177: 0x12,
+       0x178: 0x13, 0x179: 0x14, 0x17a: 0x15, 0x17b: 0x16, 0x17c: 0x17, 0x17d: 0x18, 0x17e: 0x19, 0x17f: 0x1a,
+       // Block 0x6, offset 0x180
+       0x180: 0x98, 0x181: 0x99, 0x182: 0x9a, 0x183: 0x9b, 0x184: 0x1b, 0x185: 0x1c, 0x186: 0x9c, 0x187: 0x9d,
+       0x188: 0x9e, 0x189: 0x1d, 0x18a: 0x1e, 0x18b: 0x9f, 0x18c: 0xa0,
+       0x191: 0x1f, 0x192: 0x20, 0x193: 0xa1,
+       0x1a8: 0xa2, 0x1a9: 0xa3, 0x1ab: 0xa4,
+       0x1b1: 0xa5, 0x1b3: 0xa6, 0x1b5: 0xa7, 0x1b7: 0xa8,
+       0x1ba: 0xa9, 0x1bb: 0xaa, 0x1bc: 0x21, 0x1bd: 0x22, 0x1be: 0x23, 0x1bf: 0xab,
+       // Block 0x7, offset 0x1c0
+       0x1c0: 0xac, 0x1c1: 0x24, 0x1c2: 0x25, 0x1c3: 0x26, 0x1c4: 0xad, 0x1c5: 0x27, 0x1c6: 0x28,
+       0x1c8: 0x29, 0x1c9: 0x2a, 0x1ca: 0x2b, 0x1cb: 0x2c, 0x1cc: 0x2d, 0x1cd: 0x2e, 0x1ce: 0x2f, 0x1cf: 0x30,
+       // 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: 0x31, 0x325: 0x32, 0x326: 0x33, 0x327: 0x34,
+       0x328: 0x35, 0x329: 0x36, 0x32a: 0x37, 0x32b: 0x38, 0x32c: 0x39, 0x32d: 0x3a, 0x32e: 0x3b, 0x32f: 0x3c,
+       0x330: 0x3d, 0x331: 0x3e, 0x332: 0x3f, 0x333: 0x40, 0x334: 0x41, 0x335: 0x42, 0x336: 0x43, 0x337: 0x44,
+       0x338: 0x45, 0x339: 0x46, 0x33a: 0x47, 0x33b: 0x48, 0x33c: 0xc5, 0x33d: 0x49, 0x33e: 0x4a, 0x33f: 0x4b,
+       // Block 0xd, offset 0x340
+       0x347: 0xc6,
+       0x34b: 0xc7, 0x34d: 0xc8,
+       0x368: 0xc9, 0x36b: 0xca,
+       0x374: 0xcb,
+       0x37d: 0xcc,
+       // Block 0xe, offset 0x380
+       0x381: 0xcd, 0x382: 0xce, 0x384: 0xcf, 0x385: 0xb7, 0x387: 0xd0,
+       0x388: 0xd1, 0x38b: 0xd2, 0x38c: 0xd3, 0x38d: 0xd4,
+       0x391: 0xd5, 0x392: 0xd6, 0x393: 0xd7, 0x396: 0xd8, 0x397: 0xd9,
+       0x398: 0xda, 0x39a: 0xdb, 0x39c: 0xdc,
+       0x3a0: 0xdd,
+       0x3a8: 0xde, 0x3a9: 0xdf, 0x3aa: 0xe0,
+       0x3b0: 0xda, 0x3b5: 0xe1, 0x3b6: 0xe2,
+       // Block 0xf, offset 0x3c0
+       0x3eb: 0xe3, 0x3ec: 0xe4,
+       // Block 0x10, offset 0x400
+       0x432: 0xe5,
+       // Block 0x11, offset 0x440
+       0x445: 0xe6, 0x446: 0xe7, 0x447: 0xe8,
+       0x449: 0xe9,
+       0x450: 0xea, 0x451: 0xeb, 0x452: 0xec, 0x453: 0xed, 0x454: 0xee, 0x455: 0xef, 0x456: 0xf0, 0x457: 0xf1,
+       0x458: 0xf2, 0x459: 0xf3, 0x45a: 0x4c, 0x45b: 0xf4, 0x45c: 0xf5, 0x45d: 0xf6, 0x45e: 0xf7, 0x45f: 0x4d,
+       // Block 0x12, offset 0x480
+       0x480: 0xf8,
+       0x4a3: 0xf9, 0x4a5: 0xfa,
+       0x4b8: 0x4e, 0x4b9: 0x4f, 0x4ba: 0x50,
+       // Block 0x13, offset 0x4c0
+       0x4c4: 0x51, 0x4c5: 0xfb, 0x4c6: 0xfc,
+       0x4c8: 0x52, 0x4c9: 0xfd,
+       // Block 0x14, offset 0x500
+       0x520: 0x53, 0x521: 0x54, 0x522: 0x55, 0x523: 0x56, 0x524: 0x57, 0x525: 0x58, 0x526: 0x59, 0x527: 0x5a,
+       0x528: 0x5b,
+       // Block 0x15, offset 0x540
+       0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d,
+       0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11,
+       0x56f: 0x12,
+}
+
+// nfkcSparseOffset: 162 entries, 324 bytes
+var nfkcSparseOffset = []uint16{0x0, 0xe, 0x12, 0x1b, 0x25, 0x35, 0x37, 0x3c, 0x47, 0x56, 0x63, 0x6b, 0x70, 0x75, 0x77, 0x7f, 0x86, 0x89, 0x91, 0x95, 0x99, 0x9b, 0x9d, 0xa6, 0xaa, 0xb1, 0xb6, 0xb9, 0xc3, 0xc6, 0xcd, 0xd5, 0xd9, 0xdb, 0xde, 0xe2, 0xe8, 0xf9, 0x105, 0x107, 0x10d, 0x10f, 0x111, 0x113, 0x115, 0x117, 0x119, 0x11b, 0x11e, 0x121, 0x123, 0x126, 0x129, 0x12d, 0x132, 0x13b, 0x13d, 0x140, 0x142, 0x14d, 0x158, 0x166, 0x174, 0x184, 0x192, 0x199, 0x19f, 0x1ae, 0x1b2, 0x1b4, 0x1b8, 0x1ba, 0x1bd, 0x1bf, 0x1c2, 0x1c4, 0x1c7, 0x1c9, 0x1cb, 0x1cd, 0x1d9, 0x1e3, 0x1ed, 0x1f0, 0x1f4, 0x1f6, 0x1f8, 0x1fa, 0x1fc, 0x1ff, 0x201, 0x203, 0x205, 0x207, 0x20d, 0x210, 0x214, 0x216, 0x21d, 0x223, 0x229, 0x231, 0x237, 0x23d, 0x243, 0x247, 0x249, 0x24b, 0x24d, 0x24f, 0x255, 0x258, 0x25a, 0x260, 0x263, 0x26b, 0x272, 0x275, 0x278, 0x27a, 0x27d, 0x285, 0x289, 0x290, 0x293, 0x299, 0x29b, 0x29d, 0x2a0, 0x2a2, 0x2a5, 0x2a7, 0x2a9, 0x2ab, 0x2ae, 0x2b0, 0x2b2, 0x2b4, 0x2b6, 0x2c3, 0x2cd, 0x2cf, 0x2d1, 0x2d5, 0x2da, 0x2e6, 0x2eb, 0x2f4, 0x2fa, 0x2ff, 0x303, 0x308, 0x30c, 0x31c, 0x32a, 0x338, 0x346, 0x34c, 0x34e, 0x351, 0x35b, 0x35d}
+
+// nfkcSparseValues: 871 entries, 3484 bytes
+var nfkcSparseValues = [871]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: 0x46e2, lo: 0xa0, hi: 0xa1},
+       {value: 0x4714, 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: 0x04},
+       {value: 0x8132, lo: 0xab, hi: 0xb1},
+       {value: 0x812d, lo: 0xb2, hi: 0xb2},
+       {value: 0x8132, lo: 0xb3, hi: 0xb3},
+       {value: 0x812d, lo: 0xbd, hi: 0xbd},
+       // Block 0xc, offset 0x70
+       {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 0x75
+       {value: 0x0000, lo: 0x01},
+       {value: 0x812d, lo: 0x99, hi: 0x9b},
+       // Block 0xe, offset 0x77
+       {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 0xf, offset 0x7f
+       {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: 0x451c, lo: 0x98, hi: 0x9f},
+       // Block 0x10, offset 0x86
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8102, lo: 0xbc, hi: 0xbc},
+       {value: 0x9900, lo: 0xbe, hi: 0xbe},
+       // Block 0x11, offset 0x89
+       {value: 0x0008, lo: 0x07},
+       {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: 0x455c, lo: 0x9c, hi: 0x9d},
+       {value: 0x456c, lo: 0x9f, hi: 0x9f},
+       {value: 0x8132, lo: 0xbe, hi: 0xbe},
+       // Block 0x12, offset 0x91
+       {value: 0x0000, lo: 0x03},
+       {value: 0x4594, lo: 0xb3, hi: 0xb3},
+       {value: 0x459c, lo: 0xb6, hi: 0xb6},
+       {value: 0x8102, lo: 0xbc, hi: 0xbc},
+       // Block 0x13, offset 0x95
+       {value: 0x0008, lo: 0x03},
+       {value: 0x8104, lo: 0x8d, hi: 0x8d},
+       {value: 0x4574, lo: 0x99, hi: 0x9b},
+       {value: 0x458c, lo: 0x9e, hi: 0x9e},
+       // Block 0x14, offset 0x99
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8102, lo: 0xbc, hi: 0xbc},
+       // Block 0x15, offset 0x9b
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8104, lo: 0x8d, hi: 0x8d},
+       // Block 0x16, offset 0x9d
+       {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: 0x45a4, lo: 0x9c, hi: 0x9c},
+       {value: 0x45ac, lo: 0x9d, hi: 0x9d},
+       // Block 0x17, offset 0xa6
+       {value: 0x0000, lo: 0x03},
+       {value: 0xa000, lo: 0x92, hi: 0x92},
+       {value: 0x2cc6, lo: 0x94, hi: 0x94},
+       {value: 0x9900, lo: 0xbe, hi: 0xbe},
+       // Block 0x18, offset 0xaa
+       {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 0x19, offset 0xb1
+       {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 0x1a, offset 0xb6
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8102, lo: 0xbc, hi: 0xbc},
+       {value: 0xa000, lo: 0xbf, hi: 0xbf},
+       // Block 0x1b, offset 0xb9
+       {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 0x1c, offset 0xc3
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8104, lo: 0xbb, hi: 0xbc},
+       {value: 0x9900, lo: 0xbe, hi: 0xbe},
+       // Block 0x1d, offset 0xc6
+       {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 0x1e, offset 0xcd
+       {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 0x1f, offset 0xd5
+       {value: 0x0000, lo: 0x03},
+       {value: 0x2621, lo: 0xb3, hi: 0xb3},
+       {value: 0x8122, lo: 0xb8, hi: 0xb9},
+       {value: 0x8104, lo: 0xba, hi: 0xba},
+       // Block 0x20, offset 0xd9
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8123, lo: 0x88, hi: 0x8b},
+       // Block 0x21, offset 0xdb
+       {value: 0x0000, lo: 0x02},
+       {value: 0x2636, lo: 0xb3, hi: 0xb3},
+       {value: 0x8124, lo: 0xb8, hi: 0xb9},
+       // Block 0x22, offset 0xde
+       {value: 0x0000, lo: 0x03},
+       {value: 0x8125, lo: 0x88, hi: 0x8b},
+       {value: 0x2628, lo: 0x9c, hi: 0x9c},
+       {value: 0x262f, lo: 0x9d, hi: 0x9d},
+       // Block 0x23, offset 0xe2
+       {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 0x24, offset 0xe8
+       {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: 0x4a84, lo: 0xb3, hi: 0xb3},
+       {value: 0x8128, lo: 0xb4, hi: 0xb4},
+       {value: 0x4a8d, lo: 0xb5, hi: 0xb5},
+       {value: 0x45b4, lo: 0xb6, hi: 0xb6},
+       {value: 0x45f4, lo: 0xb7, hi: 0xb7},
+       {value: 0x45bc, lo: 0xb8, hi: 0xb8},
+       {value: 0x45ff, lo: 0xb9, hi: 0xb9},
+       {value: 0x8127, lo: 0xba, hi: 0xbd},
+       // Block 0x25, offset 0xf9
+       {value: 0x0000, lo: 0x0b},
+       {value: 0x8127, lo: 0x80, hi: 0x80},
+       {value: 0x4a96, 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 0x26, offset 0x105
+       {value: 0x0000, lo: 0x01},
+       {value: 0x812d, lo: 0x86, hi: 0x86},
+       // Block 0x27, offset 0x107
+       {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 0x28, offset 0x10d
+       {value: 0x0000, lo: 0x01},
+       {value: 0x812d, lo: 0x8d, hi: 0x8d},
+       // Block 0x29, offset 0x10f
+       {value: 0x0000, lo: 0x01},
+       {value: 0x030f, lo: 0xbc, hi: 0xbc},
+       // Block 0x2a, offset 0x111
+       {value: 0x0000, lo: 0x01},
+       {value: 0xa000, lo: 0x80, hi: 0x92},
+       // Block 0x2b, offset 0x113
+       {value: 0x0000, lo: 0x01},
+       {value: 0xb900, lo: 0xa1, hi: 0xb5},
+       // Block 0x2c, offset 0x115
+       {value: 0x0000, lo: 0x01},
+       {value: 0x9900, lo: 0xa8, hi: 0xbf},
+       // Block 0x2d, offset 0x117
+       {value: 0x0000, lo: 0x01},
+       {value: 0x9900, lo: 0x80, hi: 0x82},
+       // Block 0x2e, offset 0x119
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8132, lo: 0x9d, hi: 0x9f},
+       // Block 0x2f, offset 0x11b
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8104, lo: 0x94, hi: 0x94},
+       {value: 0x8104, lo: 0xb4, hi: 0xb4},
+       // Block 0x30, offset 0x11e
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8104, lo: 0x92, hi: 0x92},
+       {value: 0x8132, lo: 0x9d, hi: 0x9d},
+       // Block 0x31, offset 0x121
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8131, lo: 0xa9, hi: 0xa9},
+       // Block 0x32, offset 0x123
+       {value: 0x0004, lo: 0x02},
+       {value: 0x812e, lo: 0xb9, hi: 0xba},
+       {value: 0x812d, lo: 0xbb, hi: 0xbb},
+       // Block 0x33, offset 0x126
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8132, lo: 0x97, hi: 0x97},
+       {value: 0x812d, lo: 0x98, hi: 0x98},
+       // Block 0x34, offset 0x129
+       {value: 0x0000, lo: 0x03},
+       {value: 0x8104, lo: 0xa0, hi: 0xa0},
+       {value: 0x8132, lo: 0xb5, hi: 0xbc},
+       {value: 0x812d, lo: 0xbf, hi: 0xbf},
+       // Block 0x35, offset 0x12d
+       {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 0x36, offset 0x132
+       {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 0x37, offset 0x13b
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8104, lo: 0xaa, hi: 0xab},
+       // Block 0x38, offset 0x13d
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8102, lo: 0xa6, hi: 0xa6},
+       {value: 0x8104, lo: 0xb2, hi: 0xb3},
+       // Block 0x39, offset 0x140
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8102, lo: 0xb7, hi: 0xb7},
+       // Block 0x3a, offset 0x142
+       {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 0x3b, offset 0x14d
+       {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 0x3c, offset 0x158
+       {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 0x3d, offset 0x166
+       {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 0x3e, offset 0x174
+       {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 0x3f, offset 0x184
+       {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 0x40, offset 0x192
+       {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 0x41, offset 0x199
+       {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 0x19f
+       {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 0x43, offset 0x1ae
+       {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 0x1b2
+       {value: 0x0004, lo: 0x01},
+       {value: 0x048b, lo: 0xa9, hi: 0xaa},
+       // Block 0x45, offset 0x1b4
+       {value: 0x0002, lo: 0x03},
+       {value: 0x0057, lo: 0x80, hi: 0x8f},
+       {value: 0x0083, lo: 0x90, hi: 0xa9},
+       {value: 0x0021, lo: 0xaa, hi: 0xaa},
+       // Block 0x46, offset 0x1b8
+       {value: 0x0000, lo: 0x01},
+       {value: 0x299b, lo: 0x8c, hi: 0x8c},
+       // Block 0x47, offset 0x1ba
+       {value: 0x0263, lo: 0x02},
+       {value: 0x1b8c, lo: 0xb4, hi: 0xb4},
+       {value: 0x192d, lo: 0xb5, hi: 0xb6},
+       // Block 0x48, offset 0x1bd
+       {value: 0x0000, lo: 0x01},
+       {value: 0x44dd, lo: 0x9c, hi: 0x9c},
+       // Block 0x49, offset 0x1bf
+       {value: 0x0000, lo: 0x02},
+       {value: 0x0095, lo: 0xbc, hi: 0xbc},
+       {value: 0x006d, lo: 0xbd, hi: 0xbd},
+       // Block 0x4a, offset 0x1c2
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8132, lo: 0xaf, hi: 0xb1},
+       // Block 0x4b, offset 0x1c4
+       {value: 0x0000, lo: 0x02},
+       {value: 0x047f, lo: 0xaf, hi: 0xaf},
+       {value: 0x8104, lo: 0xbf, hi: 0xbf},
+       // Block 0x4c, offset 0x1c7
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8132, lo: 0xa0, hi: 0xbf},
+       // Block 0x4d, offset 0x1c9
+       {value: 0x0000, lo: 0x01},
+       {value: 0x0dc3, lo: 0x9f, hi: 0x9f},
+       // Block 0x4e, offset 0x1cb
+       {value: 0x0000, lo: 0x01},
+       {value: 0x162f, lo: 0xb3, hi: 0xb3},
+       // Block 0x4f, offset 0x1cd
+       {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 0x50, offset 0x1d9
+       {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 0x51, offset 0x1e3
+       {value: 0x0006, lo: 0x09},
+       {value: 0x0313, lo: 0xb1, hi: 0xb1},
+       {value: 0x0317, lo: 0xb2, hi: 0xb2},
+       {value: 0x4a3b, lo: 0xb3, hi: 0xb3},
+       {value: 0x031b, lo: 0xb4, hi: 0xb4},
+       {value: 0x4a41, lo: 0xb5, hi: 0xb6},
+       {value: 0x031f, lo: 0xb7, hi: 0xb7},
+       {value: 0x0323, lo: 0xb8, hi: 0xb8},
+       {value: 0x0327, lo: 0xb9, hi: 0xb9},
+       {value: 0x4a4d, lo: 0xba, hi: 0xbf},
+       // Block 0x52, offset 0x1ed
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8132, lo: 0xaf, hi: 0xaf},
+       {value: 0x8132, lo: 0xb4, hi: 0xbd},
+       // Block 0x53, offset 0x1f0
+       {value: 0x0000, lo: 0x03},
+       {value: 0x020f, lo: 0x9c, hi: 0x9c},
+       {value: 0x0212, lo: 0x9d, hi: 0x9d},
+       {value: 0x8132, lo: 0x9e, hi: 0x9f},
+       // Block 0x54, offset 0x1f4
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8132, lo: 0xb0, hi: 0xb1},
+       // Block 0x55, offset 0x1f6
+       {value: 0x0000, lo: 0x01},
+       {value: 0x163b, lo: 0xb0, hi: 0xb0},
+       // Block 0x56, offset 0x1f8
+       {value: 0x000c, lo: 0x01},
+       {value: 0x00d7, lo: 0xb8, hi: 0xb9},
+       // Block 0x57, offset 0x1fa
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8104, lo: 0x86, hi: 0x86},
+       // Block 0x58, offset 0x1fc
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8104, lo: 0x84, hi: 0x84},
+       {value: 0x8132, lo: 0xa0, hi: 0xb1},
+       // Block 0x59, offset 0x1ff
+       {value: 0x0000, lo: 0x01},
+       {value: 0x812d, lo: 0xab, hi: 0xad},
+       // Block 0x5a, offset 0x201
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8104, lo: 0x93, hi: 0x93},
+       // Block 0x5b, offset 0x203
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8102, lo: 0xb3, hi: 0xb3},
+       // Block 0x5c, offset 0x205
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8104, lo: 0x80, hi: 0x80},
+       // Block 0x5d, offset 0x207
+       {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 0x5e, offset 0x20d
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8132, lo: 0x81, hi: 0x81},
+       {value: 0x8104, lo: 0xb6, hi: 0xb6},
+       // Block 0x5f, offset 0x210
+       {value: 0x0008, lo: 0x03},
+       {value: 0x1637, lo: 0x9c, hi: 0x9d},
+       {value: 0x0125, lo: 0x9e, hi: 0x9e},
+       {value: 0x1643, lo: 0x9f, hi: 0x9f},
+       // Block 0x60, offset 0x214
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8104, lo: 0xad, hi: 0xad},
+       // Block 0x61, offset 0x216
+       {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 0x62, offset 0x21d
+       {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 0x63, offset 0x223
+       {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 0x64, offset 0x229
+       {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 0x65, offset 0x231
+       {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 0x66, offset 0x237
+       {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 0x67, offset 0x23d
+       {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 0x68, offset 0x243
+       {value: 0x0000, lo: 0x03},
+       {value: 0xc600, lo: 0x80, hi: 0x87},
+       {value: 0xe500, lo: 0x88, hi: 0x88},
+       {value: 0xc600, lo: 0x89, hi: 0xa3},
+       // Block 0x69, offset 0x247
+       {value: 0x0002, lo: 0x01},
+       {value: 0x0003, lo: 0x81, hi: 0xbf},
+       // Block 0x6a, offset 0x249
+       {value: 0x0000, lo: 0x01},
+       {value: 0x812d, lo: 0xbd, hi: 0xbd},
+       // Block 0x6b, offset 0x24b
+       {value: 0x0000, lo: 0x01},
+       {value: 0x812d, lo: 0xa0, hi: 0xa0},
+       // Block 0x6c, offset 0x24d
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8132, lo: 0xb6, hi: 0xba},
+       // Block 0x6d, offset 0x24f
+       {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 0x6e, offset 0x255
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8132, lo: 0xa5, hi: 0xa5},
+       {value: 0x812d, lo: 0xa6, hi: 0xa6},
+       // Block 0x6f, offset 0x258
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8132, lo: 0xa4, hi: 0xa7},
+       // Block 0x70, offset 0x25a
+       {value: 0x0000, lo: 0x05},
+       {value: 0x812d, lo: 0x86, hi: 0x87},
+       {value: 0x8132, lo: 0x88, hi: 0x8a},
+       {value: 0x812d, lo: 0x8b, hi: 0x8b},
+       {value: 0x8132, lo: 0x8c, hi: 0x8c},
+       {value: 0x812d, lo: 0x8d, hi: 0x90},
+       // Block 0x71, offset 0x260
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8104, lo: 0x86, hi: 0x86},
+       {value: 0x8104, lo: 0xbf, hi: 0xbf},
+       // Block 0x72, offset 0x263
+       {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 0x26b
+       {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 0x272
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8104, lo: 0x80, hi: 0x80},
+       {value: 0x8102, lo: 0x8a, hi: 0x8a},
+       // Block 0x75, offset 0x275
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8104, lo: 0xb5, hi: 0xb5},
+       {value: 0x8102, lo: 0xb6, hi: 0xb6},
+       // Block 0x76, offset 0x278
+       {value: 0x0002, lo: 0x01},
+       {value: 0x8102, lo: 0xa9, hi: 0xaa},
+       // Block 0x77, offset 0x27a
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8102, lo: 0xbb, hi: 0xbc},
+       {value: 0x9900, lo: 0xbe, hi: 0xbe},
+       // Block 0x78, offset 0x27d
+       {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 0x79, offset 0x285
+       {value: 0x0000, lo: 0x03},
+       {value: 0x8104, lo: 0x82, hi: 0x82},
+       {value: 0x8102, lo: 0x86, hi: 0x86},
+       {value: 0x8132, lo: 0x9e, hi: 0x9e},
+       // Block 0x7a, offset 0x289
+       {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 0x7b, offset 0x290
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8104, lo: 0x82, hi: 0x82},
+       {value: 0x8102, lo: 0x83, hi: 0x83},
+       // Block 0x7c, offset 0x293
+       {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 0x7d, offset 0x299
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8102, lo: 0x80, hi: 0x80},
+       // Block 0x7e, offset 0x29b
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8104, lo: 0xbf, hi: 0xbf},
+       // Block 0x7f, offset 0x29d
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8104, lo: 0xb6, hi: 0xb6},
+       {value: 0x8102, lo: 0xb7, hi: 0xb7},
+       // Block 0x80, offset 0x2a0
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8104, lo: 0xab, hi: 0xab},
+       // Block 0x81, offset 0x2a2
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8104, lo: 0xb9, hi: 0xb9},
+       {value: 0x8102, lo: 0xba, hi: 0xba},
+       // Block 0x82, offset 0x2a5
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8104, lo: 0xb4, hi: 0xb4},
+       // Block 0x83, offset 0x2a7
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8104, lo: 0x87, hi: 0x87},
+       // Block 0x84, offset 0x2a9
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8104, lo: 0x99, hi: 0x99},
+       // Block 0x85, offset 0x2ab
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8102, lo: 0x82, hi: 0x82},
+       {value: 0x8104, lo: 0x84, hi: 0x85},
+       // Block 0x86, offset 0x2ae
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8104, lo: 0x97, hi: 0x97},
+       // Block 0x87, offset 0x2b0
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8101, lo: 0xb0, hi: 0xb4},
+       // Block 0x88, offset 0x2b2
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8132, lo: 0xb0, hi: 0xb6},
+       // Block 0x89, offset 0x2b4
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8101, lo: 0x9e, hi: 0x9e},
+       // Block 0x8a, offset 0x2b6
+       {value: 0x0000, lo: 0x0c},
+       {value: 0x45cc, lo: 0x9e, hi: 0x9e},
+       {value: 0x45d6, lo: 0x9f, hi: 0x9f},
+       {value: 0x460a, lo: 0xa0, hi: 0xa0},
+       {value: 0x4618, lo: 0xa1, hi: 0xa1},
+       {value: 0x4626, lo: 0xa2, hi: 0xa2},
+       {value: 0x4634, lo: 0xa3, hi: 0xa3},
+       {value: 0x4642, 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 0x8b, offset 0x2c3
+       {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: 0x45e0, lo: 0xbb, hi: 0xbb},
+       {value: 0x45ea, lo: 0xbc, hi: 0xbc},
+       {value: 0x4650, lo: 0xbd, hi: 0xbd},
+       {value: 0x466c, lo: 0xbe, hi: 0xbe},
+       {value: 0x465e, lo: 0xbf, hi: 0xbf},
+       // Block 0x8c, offset 0x2cd
+       {value: 0x0000, lo: 0x01},
+       {value: 0x467a, lo: 0x80, hi: 0x80},
+       // Block 0x8d, offset 0x2cf
+       {value: 0x0000, lo: 0x01},
+       {value: 0x8132, lo: 0x82, hi: 0x84},
+       // Block 0x8e, offset 0x2d1
+       {value: 0x0002, lo: 0x03},
+       {value: 0x0043, lo: 0x80, hi: 0x99},
+       {value: 0x0083, lo: 0x9a, hi: 0xb3},
+       {value: 0x0043, lo: 0xb4, hi: 0xbf},
+       // Block 0x8f, offset 0x2d5
+       {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 0x90, offset 0x2da
+       {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 0x91, offset 0x2e6
+       {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 0x92, offset 0x2eb
+       {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 0x93, offset 0x2f4
+       {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 0x94, offset 0x2fa
+       {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 0x95, offset 0x2ff
+       {value: 0x0002, lo: 0x03},
+       {value: 0x008f, lo: 0x80, hi: 0x93},
+       {value: 0x0043, lo: 0x94, hi: 0xad},
+       {value: 0x0083, lo: 0xae, hi: 0xbf},
+       // Block 0x96, offset 0x303
+       {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 0x97, offset 0x308
+       {value: 0x0002, lo: 0x03},
+       {value: 0x004b, lo: 0x80, hi: 0x95},
+       {value: 0x0083, lo: 0x96, hi: 0xaf},
+       {value: 0x0043, lo: 0xb0, hi: 0xbf},
+       // Block 0x98, offset 0x30c
+       {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 0x99, offset 0x31c
+       {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 0x9a, offset 0x32a
+       {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 0x9b, offset 0x338
+       {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 0x9c, offset 0x346
+       {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 0x9d, offset 0x34c
+       {value: 0x0000, lo: 0x01},
+       {value: 0x812d, lo: 0x90, hi: 0x96},
+       // Block 0x9e, offset 0x34e
+       {value: 0x0000, lo: 0x02},
+       {value: 0x8132, lo: 0x84, hi: 0x89},
+       {value: 0x8102, lo: 0x8a, hi: 0x8a},
+       // Block 0x9f, offset 0x351
+       {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 0xa0, offset 0x35b
+       {value: 0x0000, lo: 0x01},
+       {value: 0x193f, lo: 0x90, hi: 0x90},
+       // Block 0xa1, offset 0x35d
+       {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
+var recompMapOnce sync.Once
+
+const recompMapPacked = "" +
+       "\x00A\x03\x00\x00\x00\x00\xc0" + // 0x00410300: 0x000000C0
+       "\x00A\x03\x01\x00\x00\x00\xc1" + // 0x00410301: 0x000000C1
+       "\x00A\x03\x02\x00\x00\x00\xc2" + // 0x00410302: 0x000000C2
+       "\x00A\x03\x03\x00\x00\x00\xc3" + // 0x00410303: 0x000000C3
+       "\x00A\x03\b\x00\x00\x00\xc4" + // 0x00410308: 0x000000C4
+       "\x00A\x03\n\x00\x00\x00\xc5" + // 0x0041030A: 0x000000C5
+       "\x00C\x03'\x00\x00\x00\xc7" + // 0x00430327: 0x000000C7
+       "\x00E\x03\x00\x00\x00\x00\xc8" + // 0x00450300: 0x000000C8
+       "\x00E\x03\x01\x00\x00\x00\xc9" + // 0x00450301: 0x000000C9
+       "\x00E\x03\x02\x00\x00\x00\xca" + // 0x00450302: 0x000000CA
+       "\x00E\x03\b\x00\x00\x00\xcb" + // 0x00450308: 0x000000CB
+       "\x00I\x03\x00\x00\x00\x00\xcc" + // 0x00490300: 0x000000CC
+       "\x00I\x03\x01\x00\x00\x00\xcd" + // 0x00490301: 0x000000CD
+       "\x00I\x03\x02\x00\x00\x00\xce" + // 0x00490302: 0x000000CE
+       "\x00I\x03\b\x00\x00\x00\xcf" + // 0x00490308: 0x000000CF
+       "\x00N\x03\x03\x00\x00\x00\xd1" + // 0x004E0303: 0x000000D1
+       "\x00O\x03\x00\x00\x00\x00\xd2" + // 0x004F0300: 0x000000D2
+       "\x00O\x03\x01\x00\x00\x00\xd3" + // 0x004F0301: 0x000000D3
+       "\x00O\x03\x02\x00\x00\x00\xd4" + // 0x004F0302: 0x000000D4
+       "\x00O\x03\x03\x00\x00\x00\xd5" + // 0x004F0303: 0x000000D5
+       "\x00O\x03\b\x00\x00\x00\xd6" + // 0x004F0308: 0x000000D6
+       "\x00U\x03\x00\x00\x00\x00\xd9" + // 0x00550300: 0x000000D9
+       "\x00U\x03\x01\x00\x00\x00\xda" + // 0x00550301: 0x000000DA
+       "\x00U\x03\x02\x00\x00\x00\xdb" + // 0x00550302: 0x000000DB
+       "\x00U\x03\b\x00\x00\x00\xdc" + // 0x00550308: 0x000000DC
+       "\x00Y\x03\x01\x00\x00\x00\xdd" + // 0x00590301: 0x000000DD
+       "\x00a\x03\x00\x00\x00\x00\xe0" + // 0x00610300: 0x000000E0
+       "\x00a\x03\x01\x00\x00\x00\xe1" + // 0x00610301: 0x000000E1
+       "\x00a\x03\x02\x00\x00\x00\xe2" + // 0x00610302: 0x000000E2
+       "\x00a\x03\x03\x00\x00\x00\xe3" + // 0x00610303: 0x000000E3
+       "\x00a\x03\b\x00\x00\x00\xe4" + // 0x00610308: 0x000000E4
+       "\x00a\x03\n\x00\x00\x00\xe5" + // 0x0061030A: 0x000000E5
+       "\x00c\x03'\x00\x00\x00\xe7" + // 0x00630327: 0x000000E7
+       "\x00e\x03\x00\x00\x00\x00\xe8" + // 0x00650300: 0x000000E8
+       "\x00e\x03\x01\x00\x00\x00\xe9" + // 0x00650301: 0x000000E9
+       "\x00e\x03\x02\x00\x00\x00\xea" + // 0x00650302: 0x000000EA
+       "\x00e\x03\b\x00\x00\x00\xeb" + // 0x00650308: 0x000000EB
+       "\x00i\x03\x00\x00\x00\x00\xec" + // 0x00690300: 0x000000EC
+       "\x00i\x03\x01\x00\x00\x00\xed" + // 0x00690301: 0x000000ED
+       "\x00i\x03\x02\x00\x00\x00\xee" + // 0x00690302: 0x000000EE
+       "\x00i\x03\b\x00\x00\x00\xef" + // 0x00690308: 0x000000EF
+       "\x00n\x03\x03\x00\x00\x00\xf1" + // 0x006E0303: 0x000000F1
+       "\x00o\x03\x00\x00\x00\x00\xf2" + // 0x006F0300: 0x000000F2
+       "\x00o\x03\x01\x00\x00\x00\xf3" + // 0x006F0301: 0x000000F3
+       "\x00o\x03\x02\x00\x00\x00\xf4" + // 0x006F0302: 0x000000F4
+       "\x00o\x03\x03\x00\x00\x00\xf5" + // 0x006F0303: 0x000000F5
+       "\x00o\x03\b\x00\x00\x00\xf6" + // 0x006F0308: 0x000000F6
+       "\x00u\x03\x00\x00\x00\x00\xf9" + // 0x00750300: 0x000000F9
+       "\x00u\x03\x01\x00\x00\x00\xfa" + // 0x00750301: 0x000000FA
+       "\x00u\x03\x02\x00\x00\x00\xfb" + // 0x00750302: 0x000000FB
+       "\x00u\x03\b\x00\x00\x00\xfc" + // 0x00750308: 0x000000FC
+       "\x00y\x03\x01\x00\x00\x00\xfd" + // 0x00790301: 0x000000FD
+       "\x00y\x03\b\x00\x00\x00\xff" + // 0x00790308: 0x000000FF
+       "\x00A\x03\x04\x00\x00\x01\x00" + // 0x00410304: 0x00000100
+       "\x00a\x03\x04\x00\x00\x01\x01" + // 0x00610304: 0x00000101
+       "\x00A\x03\x06\x00\x00\x01\x02" + // 0x00410306: 0x00000102
+       "\x00a\x03\x06\x00\x00\x01\x03" + // 0x00610306: 0x00000103
+       "\x00A\x03(\x00\x00\x01\x04" + // 0x00410328: 0x00000104
+       "\x00a\x03(\x00\x00\x01\x05" + // 0x00610328: 0x00000105
+       "\x00C\x03\x01\x00\x00\x01\x06" + // 0x00430301: 0x00000106
+       "\x00c\x03\x01\x00\x00\x01\a" + // 0x00630301: 0x00000107
+       "\x00C\x03\x02\x00\x00\x01\b" + // 0x00430302: 0x00000108
+       "\x00c\x03\x02\x00\x00\x01\t" + // 0x00630302: 0x00000109
+       "\x00C\x03\a\x00\x00\x01\n" + // 0x00430307: 0x0000010A
+       "\x00c\x03\a\x00\x00\x01\v" + // 0x00630307: 0x0000010B
+       "\x00C\x03\f\x00\x00\x01\f" + // 0x0043030C: 0x0000010C
+       "\x00c\x03\f\x00\x00\x01\r" + // 0x0063030C: 0x0000010D
+       "\x00D\x03\f\x00\x00\x01\x0e" + // 0x0044030C: 0x0000010E
+       "\x00d\x03\f\x00\x00\x01\x0f" + // 0x0064030C: 0x0000010F
+       "\x00E\x03\x04\x00\x00\x01\x12" + // 0x00450304: 0x00000112
+       "\x00e\x03\x04\x00\x00\x01\x13" + // 0x00650304: 0x00000113
+       "\x00E\x03\x06\x00\x00\x01\x14" + // 0x00450306: 0x00000114
+       "\x00e\x03\x06\x00\x00\x01\x15" + // 0x00650306: 0x00000115
+       "\x00E\x03\a\x00\x00\x01\x16" + // 0x00450307: 0x00000116
+       "\x00e\x03\a\x00\x00\x01\x17" + // 0x00650307: 0x00000117
+       "\x00E\x03(\x00\x00\x01\x18" + // 0x00450328: 0x00000118
+       "\x00e\x03(\x00\x00\x01\x19" + // 0x00650328: 0x00000119
+       "\x00E\x03\f\x00\x00\x01\x1a" + // 0x0045030C: 0x0000011A
+       "\x00e\x03\f\x00\x00\x01\x1b" + // 0x0065030C: 0x0000011B
+       "\x00G\x03\x02\x00\x00\x01\x1c" + // 0x00470302: 0x0000011C
+       "\x00g\x03\x02\x00\x00\x01\x1d" + // 0x00670302: 0x0000011D
+       "\x00G\x03\x06\x00\x00\x01\x1e" + // 0x00470306: 0x0000011E
+       "\x00g\x03\x06\x00\x00\x01\x1f" + // 0x00670306: 0x0000011F
+       "\x00G\x03\a\x00\x00\x01 " + // 0x00470307: 0x00000120
+       "\x00g\x03\a\x00\x00\x01!" + // 0x00670307: 0x00000121
+       "\x00G\x03'\x00\x00\x01\"" + // 0x00470327: 0x00000122
+       "\x00g\x03'\x00\x00\x01#" + // 0x00670327: 0x00000123
+       "\x00H\x03\x02\x00\x00\x01$" + // 0x00480302: 0x00000124
+       "\x00h\x03\x02\x00\x00\x01%" + // 0x00680302: 0x00000125
+       "\x00I\x03\x03\x00\x00\x01(" + // 0x00490303: 0x00000128
+       "\x00i\x03\x03\x00\x00\x01)" + // 0x00690303: 0x00000129
+       "\x00I\x03\x04\x00\x00\x01*" + // 0x00490304: 0x0000012A
+       "\x00i\x03\x04\x00\x00\x01+" + // 0x00690304: 0x0000012B
+       "\x00I\x03\x06\x00\x00\x01," + // 0x00490306: 0x0000012C
+       "\x00i\x03\x06\x00\x00\x01-" + // 0x00690306: 0x0000012D
+       "\x00I\x03(\x00\x00\x01." + // 0x00490328: 0x0000012E
+       "\x00i\x03(\x00\x00\x01/" + // 0x00690328: 0x0000012F
+       "\x00I\x03\a\x00\x00\x010" + // 0x00490307: 0x00000130
+       "\x00J\x03\x02\x00\x00\x014" + // 0x004A0302: 0x00000134
+       "\x00j\x03\x02\x00\x00\x015" + // 0x006A0302: 0x00000135
+       "\x00K\x03'\x00\x00\x016" + // 0x004B0327: 0x00000136
+       "\x00k\x03'\x00\x00\x017" + // 0x006B0327: 0x00000137
+       "\x00L\x03\x01\x00\x00\x019" + // 0x004C0301: 0x00000139
+       "\x00l\x03\x01\x00\x00\x01:" + // 0x006C0301: 0x0000013A
+       "\x00L\x03'\x00\x00\x01;" + // 0x004C0327: 0x0000013B
+       "\x00l\x03'\x00\x00\x01<" + // 0x006C0327: 0x0000013C
+       "\x00L\x03\f\x00\x00\x01=" + // 0x004C030C: 0x0000013D
+       "\x00l\x03\f\x00\x00\x01>" + // 0x006C030C: 0x0000013E
+       "\x00N\x03\x01\x00\x00\x01C" + // 0x004E0301: 0x00000143
+       "\x00n\x03\x01\x00\x00\x01D" + // 0x006E0301: 0x00000144
+       "\x00N\x03'\x00\x00\x01E" + // 0x004E0327: 0x00000145
+       "\x00n\x03'\x00\x00\x01F" + // 0x006E0327: 0x00000146
+       "\x00N\x03\f\x00\x00\x01G" + // 0x004E030C: 0x00000147
+       "\x00n\x03\f\x00\x00\x01H" + // 0x006E030C: 0x00000148
+       "\x00O\x03\x04\x00\x00\x01L" + // 0x004F0304: 0x0000014C
+       "\x00o\x03\x04\x00\x00\x01M" + // 0x006F0304: 0x0000014D
+       "\x00O\x03\x06\x00\x00\x01N" + // 0x004F0306: 0x0000014E
+       "\x00o\x03\x06\x00\x00\x01O" + // 0x006F0306: 0x0000014F
+       "\x00O\x03\v\x00\x00\x01P" + // 0x004F030B: 0x00000150
+       "\x00o\x03\v\x00\x00\x01Q" + // 0x006F030B: 0x00000151
+       "\x00R\x03\x01\x00\x00\x01T" + // 0x00520301: 0x00000154
+       "\x00r\x03\x01\x00\x00\x01U" + // 0x00720301: 0x00000155
+       "\x00R\x03'\x00\x00\x01V" + // 0x00520327: 0x00000156
+       "\x00r\x03'\x00\x00\x01W" + // 0x00720327: 0x00000157
+       "\x00R\x03\f\x00\x00\x01X" + // 0x0052030C: 0x00000158
+       "\x00r\x03\f\x00\x00\x01Y" + // 0x0072030C: 0x00000159
+       "\x00S\x03\x01\x00\x00\x01Z" + // 0x00530301: 0x0000015A
+       "\x00s\x03\x01\x00\x00\x01[" + // 0x00730301: 0x0000015B
+       "\x00S\x03\x02\x00\x00\x01\\" + // 0x00530302: 0x0000015C
+       "\x00s\x03\x02\x00\x00\x01]" + // 0x00730302: 0x0000015D
+       "\x00S\x03'\x00\x00\x01^" + // 0x00530327: 0x0000015E
+       "\x00s\x03'\x00\x00\x01_" + // 0x00730327: 0x0000015F
+       "\x00S\x03\f\x00\x00\x01`" + // 0x0053030C: 0x00000160
+       "\x00s\x03\f\x00\x00\x01a" + // 0x0073030C: 0x00000161
+       "\x00T\x03'\x00\x00\x01b" + // 0x00540327: 0x00000162
+       "\x00t\x03'\x00\x00\x01c" + // 0x00740327: 0x00000163
+       "\x00T\x03\f\x00\x00\x01d" + // 0x0054030C: 0x00000164
+       "\x00t\x03\f\x00\x00\x01e" + // 0x0074030C: 0x00000165
+       "\x00U\x03\x03\x00\x00\x01h" + // 0x00550303: 0x00000168
+       "\x00u\x03\x03\x00\x00\x01i" + // 0x00750303: 0x00000169
+       "\x00U\x03\x04\x00\x00\x01j" + // 0x00550304: 0x0000016A
+       "\x00u\x03\x04\x00\x00\x01k" + // 0x00750304: 0x0000016B
+       "\x00U\x03\x06\x00\x00\x01l" + // 0x00550306: 0x0000016C
+       "\x00u\x03\x06\x00\x00\x01m" + // 0x00750306: 0x0000016D
+       "\x00U\x03\n\x00\x00\x01n" + // 0x0055030A: 0x0000016E
+       "\x00u\x03\n\x00\x00\x01o" + // 0x0075030A: 0x0000016F
+       "\x00U\x03\v\x00\x00\x01p" + // 0x0055030B: 0x00000170
+       "\x00u\x03\v\x00\x00\x01q" + // 0x0075030B: 0x00000171
+       "\x00U\x03(\x00\x00\x01r" + // 0x00550328: 0x00000172
+       "\x00u\x03(\x00\x00\x01s" + // 0x00750328: 0x00000173
+       "\x00W\x03\x02\x00\x00\x01t" + // 0x00570302: 0x00000174
+       "\x00w\x03\x02\x00\x00\x01u" + // 0x00770302: 0x00000175
+       "\x00Y\x03\x02\x00\x00\x01v" + // 0x00590302: 0x00000176
+       "\x00y\x03\x02\x00\x00\x01w" + // 0x00790302: 0x00000177
+       "\x00Y\x03\b\x00\x00\x01x" + // 0x00590308: 0x00000178
+       "\x00Z\x03\x01\x00\x00\x01y" + // 0x005A0301: 0x00000179
+       "\x00z\x03\x01\x00\x00\x01z" + // 0x007A0301: 0x0000017A
+       "\x00Z\x03\a\x00\x00\x01{" + // 0x005A0307: 0x0000017B
+       "\x00z\x03\a\x00\x00\x01|" + // 0x007A0307: 0x0000017C
+       "\x00Z\x03\f\x00\x00\x01}" + // 0x005A030C: 0x0000017D
+       "\x00z\x03\f\x00\x00\x01~" + // 0x007A030C: 0x0000017E
+       "\x00O\x03\x1b\x00\x00\x01\xa0" + // 0x004F031B: 0x000001A0
+       "\x00o\x03\x1b\x00\x00\x01\xa1" + // 0x006F031B: 0x000001A1
+       "\x00U\x03\x1b\x00\x00\x01\xaf" + // 0x0055031B: 0x000001AF
+       "\x00u\x03\x1b\x00\x00\x01\xb0" + // 0x0075031B: 0x000001B0
+       "\x00A\x03\f\x00\x00\x01\xcd" + // 0x0041030C: 0x000001CD
+       "\x00a\x03\f\x00\x00\x01\xce" + // 0x0061030C: 0x000001CE
+       "\x00I\x03\f\x00\x00\x01\xcf" + // 0x0049030C: 0x000001CF
+       "\x00i\x03\f\x00\x00\x01\xd0" + // 0x0069030C: 0x000001D0
+       "\x00O\x03\f\x00\x00\x01\xd1" + // 0x004F030C: 0x000001D1
+       "\x00o\x03\f\x00\x00\x01\xd2" + // 0x006F030C: 0x000001D2
+       "\x00U\x03\f\x00\x00\x01\xd3" + // 0x0055030C: 0x000001D3
+       "\x00u\x03\f\x00\x00\x01\xd4" + // 0x0075030C: 0x000001D4
+       "\x00\xdc\x03\x04\x00\x00\x01\xd5" + // 0x00DC0304: 0x000001D5
+       "\x00\xfc\x03\x04\x00\x00\x01\xd6" + // 0x00FC0304: 0x000001D6
+       "\x00\xdc\x03\x01\x00\x00\x01\xd7" + // 0x00DC0301: 0x000001D7
+       "\x00\xfc\x03\x01\x00\x00\x01\xd8" + // 0x00FC0301: 0x000001D8
+       "\x00\xdc\x03\f\x00\x00\x01\xd9" + // 0x00DC030C: 0x000001D9
+       "\x00\xfc\x03\f\x00\x00\x01\xda" + // 0x00FC030C: 0x000001DA
+       "\x00\xdc\x03\x00\x00\x00\x01\xdb" + // 0x00DC0300: 0x000001DB
+       "\x00\xfc\x03\x00\x00\x00\x01\xdc" + // 0x00FC0300: 0x000001DC
+       "\x00\xc4\x03\x04\x00\x00\x01\xde" + // 0x00C40304: 0x000001DE
+       "\x00\xe4\x03\x04\x00\x00\x01\xdf" + // 0x00E40304: 0x000001DF
+       "\x02&\x03\x04\x00\x00\x01\xe0" + // 0x02260304: 0x000001E0
+       "\x02'\x03\x04\x00\x00\x01\xe1" + // 0x02270304: 0x000001E1
+       "\x00\xc6\x03\x04\x00\x00\x01\xe2" + // 0x00C60304: 0x000001E2
+       "\x00\xe6\x03\x04\x00\x00\x01\xe3" + // 0x00E60304: 0x000001E3
+       "\x00G\x03\f\x00\x00\x01\xe6" + // 0x0047030C: 0x000001E6
+       "\x00g\x03\f\x00\x00\x01\xe7" + // 0x0067030C: 0x000001E7
+       "\x00K\x03\f\x00\x00\x01\xe8" + // 0x004B030C: 0x000001E8
+       "\x00k\x03\f\x00\x00\x01\xe9" + // 0x006B030C: 0x000001E9
+       "\x00O\x03(\x00\x00\x01\xea" + // 0x004F0328: 0x000001EA
+       "\x00o\x03(\x00\x00\x01\xeb" + // 0x006F0328: 0x000001EB
+       "\x01\xea\x03\x04\x00\x00\x01\xec" + // 0x01EA0304: 0x000001EC
+       "\x01\xeb\x03\x04\x00\x00\x01\xed" + // 0x01EB0304: 0x000001ED
+       "\x01\xb7\x03\f\x00\x00\x01\xee" + // 0x01B7030C: 0x000001EE
+       "\x02\x92\x03\f\x00\x00\x01\xef" + // 0x0292030C: 0x000001EF
+       "\x00j\x03\f\x00\x00\x01\xf0" + // 0x006A030C: 0x000001F0
+       "\x00G\x03\x01\x00\x00\x01\xf4" + // 0x00470301: 0x000001F4
+       "\x00g\x03\x01\x00\x00\x01\xf5" + // 0x00670301: 0x000001F5
+       "\x00N\x03\x00\x00\x00\x01\xf8" + // 0x004E0300: 0x000001F8
+       "\x00n\x03\x00\x00\x00\x01\xf9" + // 0x006E0300: 0x000001F9
+       "\x00\xc5\x03\x01\x00\x00\x01\xfa" + // 0x00C50301: 0x000001FA
+       "\x00\xe5\x03\x01\x00\x00\x01\xfb" + // 0x00E50301: 0x000001FB
+       "\x00\xc6\x03\x01\x00\x00\x01\xfc" + // 0x00C60301: 0x000001FC
+       "\x00\xe6\x03\x01\x00\x00\x01\xfd" + // 0x00E60301: 0x000001FD
+       "\x00\xd8\x03\x01\x00\x00\x01\xfe" + // 0x00D80301: 0x000001FE
+       "\x00\xf8\x03\x01\x00\x00\x01\xff" + // 0x00F80301: 0x000001FF
+       "\x00A\x03\x0f\x00\x00\x02\x00" + // 0x0041030F: 0x00000200
+       "\x00a\x03\x0f\x00\x00\x02\x01" + // 0x0061030F: 0x00000201
+       "\x00A\x03\x11\x00\x00\x02\x02" + // 0x00410311: 0x00000202
+       "\x00a\x03\x11\x00\x00\x02\x03" + // 0x00610311: 0x00000203
+       "\x00E\x03\x0f\x00\x00\x02\x04" + // 0x0045030F: 0x00000204
+       "\x00e\x03\x0f\x00\x00\x02\x05" + // 0x0065030F: 0x00000205
+       "\x00E\x03\x11\x00\x00\x02\x06" + // 0x00450311: 0x00000206
+       "\x00e\x03\x11\x00\x00\x02\a" + // 0x00650311: 0x00000207
+       "\x00I\x03\x0f\x00\x00\x02\b" + // 0x0049030F: 0x00000208
+       "\x00i\x03\x0f\x00\x00\x02\t" + // 0x0069030F: 0x00000209
+       "\x00I\x03\x11\x00\x00\x02\n" + // 0x00490311: 0x0000020A
+       "\x00i\x03\x11\x00\x00\x02\v" + // 0x00690311: 0x0000020B
+       "\x00O\x03\x0f\x00\x00\x02\f" + // 0x004F030F: 0x0000020C
+       "\x00o\x03\x0f\x00\x00\x02\r" + // 0x006F030F: 0x0000020D
+       "\x00O\x03\x11\x00\x00\x02\x0e" + // 0x004F0311: 0x0000020E
+       "\x00o\x03\x11\x00\x00\x02\x0f" + // 0x006F0311: 0x0000020F
+       "\x00R\x03\x0f\x00\x00\x02\x10" + // 0x0052030F: 0x00000210
+       "\x00r\x03\x0f\x00\x00\x02\x11" + // 0x0072030F: 0x00000211
+       "\x00R\x03\x11\x00\x00\x02\x12" + // 0x00520311: 0x00000212
+       "\x00r\x03\x11\x00\x00\x02\x13" + // 0x00720311: 0x00000213
+       "\x00U\x03\x0f\x00\x00\x02\x14" + // 0x0055030F: 0x00000214
+       "\x00u\x03\x0f\x00\x00\x02\x15" + // 0x0075030F: 0x00000215
+       "\x00U\x03\x11\x00\x00\x02\x16" + // 0x00550311: 0x00000216
+       "\x00u\x03\x11\x00\x00\x02\x17" + // 0x00750311: 0x00000217
+       "\x00S\x03&\x00\x00\x02\x18" + // 0x00530326: 0x00000218
+       "\x00s\x03&\x00\x00\x02\x19" + // 0x00730326: 0x00000219
+       "\x00T\x03&\x00\x00\x02\x1a" + // 0x00540326: 0x0000021A
+       "\x00t\x03&\x00\x00\x02\x1b" + // 0x00740326: 0x0000021B
+       "\x00H\x03\f\x00\x00\x02\x1e" + // 0x0048030C: 0x0000021E
+       "\x00h\x03\f\x00\x00\x02\x1f" + // 0x0068030C: 0x0000021F
+       "\x00A\x03\a\x00\x00\x02&" + // 0x00410307: 0x00000226
+       "\x00a\x03\a\x00\x00\x02'" + // 0x00610307: 0x00000227
+       "\x00E\x03'\x00\x00\x02(" + // 0x00450327: 0x00000228
+       "\x00e\x03'\x00\x00\x02)" + // 0x00650327: 0x00000229
+       "\x00\xd6\x03\x04\x00\x00\x02*" + // 0x00D60304: 0x0000022A
+       "\x00\xf6\x03\x04\x00\x00\x02+" + // 0x00F60304: 0x0000022B
+       "\x00\xd5\x03\x04\x00\x00\x02," + // 0x00D50304: 0x0000022C
+       "\x00\xf5\x03\x04\x00\x00\x02-" + // 0x00F50304: 0x0000022D
+       "\x00O\x03\a\x00\x00\x02." + // 0x004F0307: 0x0000022E
+       "\x00o\x03\a\x00\x00\x02/" + // 0x006F0307: 0x0000022F
+       "\x02.\x03\x04\x00\x00\x020" + // 0x022E0304: 0x00000230
+       "\x02/\x03\x04\x00\x00\x021" + // 0x022F0304: 0x00000231
+       "\x00Y\x03\x04\x00\x00\x022" + // 0x00590304: 0x00000232
+       "\x00y\x03\x04\x00\x00\x023" + // 0x00790304: 0x00000233
+       "\x00\xa8\x03\x01\x00\x00\x03\x85" + // 0x00A80301: 0x00000385
+       "\x03\x91\x03\x01\x00\x00\x03\x86" + // 0x03910301: 0x00000386
+       "\x03\x95\x03\x01\x00\x00\x03\x88" + // 0x03950301: 0x00000388
+       "\x03\x97\x03\x01\x00\x00\x03\x89" + // 0x03970301: 0x00000389
+       "\x03\x99\x03\x01\x00\x00\x03\x8a" + // 0x03990301: 0x0000038A
+       "\x03\x9f\x03\x01\x00\x00\x03\x8c" + // 0x039F0301: 0x0000038C
+       "\x03\xa5\x03\x01\x00\x00\x03\x8e" + // 0x03A50301: 0x0000038E
+       "\x03\xa9\x03\x01\x00\x00\x03\x8f" + // 0x03A90301: 0x0000038F
+       "\x03\xca\x03\x01\x00\x00\x03\x90" + // 0x03CA0301: 0x00000390
+       "\x03\x99\x03\b\x00\x00\x03\xaa" + // 0x03990308: 0x000003AA
+       "\x03\xa5\x03\b\x00\x00\x03\xab" + // 0x03A50308: 0x000003AB
+       "\x03\xb1\x03\x01\x00\x00\x03\xac" + // 0x03B10301: 0x000003AC
+       "\x03\xb5\x03\x01\x00\x00\x03\xad" + // 0x03B50301: 0x000003AD
+       "\x03\xb7\x03\x01\x00\x00\x03\xae" + // 0x03B70301: 0x000003AE
+       "\x03\xb9\x03\x01\x00\x00\x03\xaf" + // 0x03B90301: 0x000003AF
+       "\x03\xcb\x03\x01\x00\x00\x03\xb0" + // 0x03CB0301: 0x000003B0
+       "\x03\xb9\x03\b\x00\x00\x03\xca" + // 0x03B90308: 0x000003CA
+       "\x03\xc5\x03\b\x00\x00\x03\xcb" + // 0x03C50308: 0x000003CB
+       "\x03\xbf\x03\x01\x00\x00\x03\xcc" + // 0x03BF0301: 0x000003CC
+       "\x03\xc5\x03\x01\x00\x00\x03\xcd" + // 0x03C50301: 0x000003CD
+       "\x03\xc9\x03\x01\x00\x00\x03\xce" + // 0x03C90301: 0x000003CE
+       "\x03\xd2\x03\x01\x00\x00\x03\xd3" + // 0x03D20301: 0x000003D3
+       "\x03\xd2\x03\b\x00\x00\x03\xd4" + // 0x03D20308: 0x000003D4
+       "\x04\x15\x03\x00\x00\x00\x04\x00" + // 0x04150300: 0x00000400
+       "\x04\x15\x03\b\x00\x00\x04\x01" + // 0x04150308: 0x00000401
+       "\x04\x13\x03\x01\x00\x00\x04\x03" + // 0x04130301: 0x00000403
+       "\x04\x06\x03\b\x00\x00\x04\a" + // 0x04060308: 0x00000407
+       "\x04\x1a\x03\x01\x00\x00\x04\f" + // 0x041A0301: 0x0000040C
+       "\x04\x18\x03\x00\x00\x00\x04\r" + // 0x04180300: 0x0000040D
+       "\x04#\x03\x06\x00\x00\x04\x0e" + // 0x04230306: 0x0000040E
+       "\x04\x18\x03\x06\x00\x00\x04\x19" + // 0x04180306: 0x00000419
+       "\x048\x03\x06\x00\x00\x049" + // 0x04380306: 0x00000439
+       "\x045\x03\x00\x00\x00\x04P" + // 0x04350300: 0x00000450
+       "\x045\x03\b\x00\x00\x04Q" + // 0x04350308: 0x00000451
+       "\x043\x03\x01\x00\x00\x04S" + // 0x04330301: 0x00000453
+       "\x04V\x03\b\x00\x00\x04W" + // 0x04560308: 0x00000457
+       "\x04:\x03\x01\x00\x00\x04\\" + // 0x043A0301: 0x0000045C
+       "\x048\x03\x00\x00\x00\x04]" + // 0x04380300: 0x0000045D
+       "\x04C\x03\x06\x00\x00\x04^" + // 0x04430306: 0x0000045E
+       "\x04t\x03\x0f\x00\x00\x04v" + // 0x0474030F: 0x00000476
+       "\x04u\x03\x0f\x00\x00\x04w" + // 0x0475030F: 0x00000477
+       "\x04\x16\x03\x06\x00\x00\x04\xc1" + // 0x04160306: 0x000004C1
+       "\x046\x03\x06\x00\x00\x04\xc2" + // 0x04360306: 0x000004C2
+       "\x04\x10\x03\x06\x00\x00\x04\xd0" + // 0x04100306: 0x000004D0
+       "\x040\x03\x06\x00\x00\x04\xd1" + // 0x04300306: 0x000004D1
+       "\x04\x10\x03\b\x00\x00\x04\xd2" + // 0x04100308: 0x000004D2
+       "\x040\x03\b\x00\x00\x04\xd3" + // 0x04300308: 0x000004D3
+       "\x04\x15\x03\x06\x00\x00\x04\xd6" + // 0x04150306: 0x000004D6
+       "\x045\x03\x06\x00\x00\x04\xd7" + // 0x04350306: 0x000004D7
+       "\x04\xd8\x03\b\x00\x00\x04\xda" + // 0x04D80308: 0x000004DA
+       "\x04\xd9\x03\b\x00\x00\x04\xdb" + // 0x04D90308: 0x000004DB
+       "\x04\x16\x03\b\x00\x00\x04\xdc" + // 0x04160308: 0x000004DC
+       "\x046\x03\b\x00\x00\x04\xdd" + // 0x04360308: 0x000004DD
+       "\x04\x17\x03\b\x00\x00\x04\xde" + // 0x04170308: 0x000004DE
+       "\x047\x03\b\x00\x00\x04\xdf" + // 0x04370308: 0x000004DF
+       "\x04\x18\x03\x04\x00\x00\x04\xe2" + // 0x04180304: 0x000004E2
+       "\x048\x03\x04\x00\x00\x04\xe3" + // 0x04380304: 0x000004E3
+       "\x04\x18\x03\b\x00\x00\x04\xe4" + // 0x04180308: 0x000004E4
+       "\x048\x03\b\x00\x00\x04\xe5" + // 0x04380308: 0x000004E5
+       "\x04\x1e\x03\b\x00\x00\x04\xe6" + // 0x041E0308: 0x000004E6
+       "\x04>\x03\b\x00\x00\x04\xe7" + // 0x043E0308: 0x000004E7
+       "\x04\xe8\x03\b\x00\x00\x04\xea" + // 0x04E80308: 0x000004EA
+       "\x04\xe9\x03\b\x00\x00\x04\xeb" + // 0x04E90308: 0x000004EB
+       "\x04-\x03\b\x00\x00\x04\xec" + // 0x042D0308: 0x000004EC
+       "\x04M\x03\b\x00\x00\x04\xed" + // 0x044D0308: 0x000004ED
+       "\x04#\x03\x04\x00\x00\x04\xee" + // 0x04230304: 0x000004EE
+       "\x04C\x03\x04\x00\x00\x04\xef" + // 0x04430304: 0x000004EF
+       "\x04#\x03\b\x00\x00\x04\xf0" + // 0x04230308: 0x000004F0
+       "\x04C\x03\b\x00\x00\x04\xf1" + // 0x04430308: 0x000004F1
+       "\x04#\x03\v\x00\x00\x04\xf2" + // 0x0423030B: 0x000004F2
+       "\x04C\x03\v\x00\x00\x04\xf3" + // 0x0443030B: 0x000004F3
+       "\x04'\x03\b\x00\x00\x04\xf4" + // 0x04270308: 0x000004F4
+       "\x04G\x03\b\x00\x00\x04\xf5" + // 0x04470308: 0x000004F5
+       "\x04+\x03\b\x00\x00\x04\xf8" + // 0x042B0308: 0x000004F8
+       "\x04K\x03\b\x00\x00\x04\xf9" + // 0x044B0308: 0x000004F9
+       "\x06'\x06S\x00\x00\x06\"" + // 0x06270653: 0x00000622
+       "\x06'\x06T\x00\x00\x06#" + // 0x06270654: 0x00000623
+       "\x06H\x06T\x00\x00\x06$" + // 0x06480654: 0x00000624
+       "\x06'\x06U\x00\x00\x06%" + // 0x06270655: 0x00000625
+       "\x06J\x06T\x00\x00\x06&" + // 0x064A0654: 0x00000626
+       "\x06\xd5\x06T\x00\x00\x06\xc0" + // 0x06D50654: 0x000006C0
+       "\x06\xc1\x06T\x00\x00\x06\xc2" + // 0x06C10654: 0x000006C2
+       "\x06\xd2\x06T\x00\x00\x06\xd3" + // 0x06D20654: 0x000006D3
+       "\t(\t<\x00\x00\t)" + // 0x0928093C: 0x00000929
+       "\t0\t<\x00\x00\t1" + // 0x0930093C: 0x00000931
+       "\t3\t<\x00\x00\t4" + // 0x0933093C: 0x00000934
+       "\t\xc7\t\xbe\x00\x00\t\xcb" + // 0x09C709BE: 0x000009CB
+       "\t\xc7\t\xd7\x00\x00\t\xcc" + // 0x09C709D7: 0x000009CC
+       "\vG\vV\x00\x00\vH" + // 0x0B470B56: 0x00000B48
+       "\vG\v>\x00\x00\vK" + // 0x0B470B3E: 0x00000B4B
+       "\vG\vW\x00\x00\vL" + // 0x0B470B57: 0x00000B4C
+       "\v\x92\v\xd7\x00\x00\v\x94" + // 0x0B920BD7: 0x00000B94
+       "\v\xc6\v\xbe\x00\x00\v\xca" + // 0x0BC60BBE: 0x00000BCA
+       "\v\xc7\v\xbe\x00\x00\v\xcb" + // 0x0BC70BBE: 0x00000BCB
+       "\v\xc6\v\xd7\x00\x00\v\xcc" + // 0x0BC60BD7: 0x00000BCC
+       "\fF\fV\x00\x00\fH" + // 0x0C460C56: 0x00000C48
+       "\f\xbf\f\xd5\x00\x00\f\xc0" + // 0x0CBF0CD5: 0x00000CC0
+       "\f\xc6\f\xd5\x00\x00\f\xc7" + // 0x0CC60CD5: 0x00000CC7
+       "\f\xc6\f\xd6\x00\x00\f\xc8" + // 0x0CC60CD6: 0x00000CC8
+       "\f\xc6\f\xc2\x00\x00\f\xca" + // 0x0CC60CC2: 0x00000CCA
+       "\f\xca\f\xd5\x00\x00\f\xcb" + // 0x0CCA0CD5: 0x00000CCB
+       "\rF\r>\x00\x00\rJ" + // 0x0D460D3E: 0x00000D4A
+       "\rG\r>\x00\x00\rK" + // 0x0D470D3E: 0x00000D4B
+       "\rF\rW\x00\x00\rL" + // 0x0D460D57: 0x00000D4C
+       "\r\xd9\r\xca\x00\x00\r\xda" + // 0x0DD90DCA: 0x00000DDA
+       "\r\xd9\r\xcf\x00\x00\r\xdc" + // 0x0DD90DCF: 0x00000DDC
+       "\r\xdc\r\xca\x00\x00\r\xdd" + // 0x0DDC0DCA: 0x00000DDD
+       "\r\xd9\r\xdf\x00\x00\r\xde" + // 0x0DD90DDF: 0x00000DDE
+       "\x10%\x10.\x00\x00\x10&" + // 0x1025102E: 0x00001026
+       "\x1b\x05\x1b5\x00\x00\x1b\x06" + // 0x1B051B35: 0x00001B06
+       "\x1b\a\x1b5\x00\x00\x1b\b" + // 0x1B071B35: 0x00001B08
+       "\x1b\t\x1b5\x00\x00\x1b\n" + // 0x1B091B35: 0x00001B0A
+       "\x1b\v\x1b5\x00\x00\x1b\f" + // 0x1B0B1B35: 0x00001B0C
+       "\x1b\r\x1b5\x00\x00\x1b\x0e" + // 0x1B0D1B35: 0x00001B0E
+       "\x1b\x11\x1b5\x00\x00\x1b\x12" + // 0x1B111B35: 0x00001B12
+       "\x1b:\x1b5\x00\x00\x1b;" + // 0x1B3A1B35: 0x00001B3B
+       "\x1b<\x1b5\x00\x00\x1b=" + // 0x1B3C1B35: 0x00001B3D
+       "\x1b>\x1b5\x00\x00\x1b@" + // 0x1B3E1B35: 0x00001B40
+       "\x1b?\x1b5\x00\x00\x1bA" + // 0x1B3F1B35: 0x00001B41
+       "\x1bB\x1b5\x00\x00\x1bC" + // 0x1B421B35: 0x00001B43
+       "\x00A\x03%\x00\x00\x1e\x00" + // 0x00410325: 0x00001E00
+       "\x00a\x03%\x00\x00\x1e\x01" + // 0x00610325: 0x00001E01
+       "\x00B\x03\a\x00\x00\x1e\x02" + // 0x00420307: 0x00001E02
+       "\x00b\x03\a\x00\x00\x1e\x03" + // 0x00620307: 0x00001E03
+       "\x00B\x03#\x00\x00\x1e\x04" + // 0x00420323: 0x00001E04
+       "\x00b\x03#\x00\x00\x1e\x05" + // 0x00620323: 0x00001E05
+       "\x00B\x031\x00\x00\x1e\x06" + // 0x00420331: 0x00001E06
+       "\x00b\x031\x00\x00\x1e\a" + // 0x00620331: 0x00001E07
+       "\x00\xc7\x03\x01\x00\x00\x1e\b" + // 0x00C70301: 0x00001E08
+       "\x00\xe7\x03\x01\x00\x00\x1e\t" + // 0x00E70301: 0x00001E09
+       "\x00D\x03\a\x00\x00\x1e\n" + // 0x00440307: 0x00001E0A
+       "\x00d\x03\a\x00\x00\x1e\v" + // 0x00640307: 0x00001E0B
+       "\x00D\x03#\x00\x00\x1e\f" + // 0x00440323: 0x00001E0C
+       "\x00d\x03#\x00\x00\x1e\r" + // 0x00640323: 0x00001E0D
+       "\x00D\x031\x00\x00\x1e\x0e" + // 0x00440331: 0x00001E0E
+       "\x00d\x031\x00\x00\x1e\x0f" + // 0x00640331: 0x00001E0F
+       "\x00D\x03'\x00\x00\x1e\x10" + // 0x00440327: 0x00001E10
+       "\x00d\x03'\x00\x00\x1e\x11" + // 0x00640327: 0x00001E11
+       "\x00D\x03-\x00\x00\x1e\x12" + // 0x0044032D: 0x00001E12
+       "\x00d\x03-\x00\x00\x1e\x13" + // 0x0064032D: 0x00001E13
+       "\x01\x12\x03\x00\x00\x00\x1e\x14" + // 0x01120300: 0x00001E14
+       "\x01\x13\x03\x00\x00\x00\x1e\x15" + // 0x01130300: 0x00001E15
+       "\x01\x12\x03\x01\x00\x00\x1e\x16" + // 0x01120301: 0x00001E16
+       "\x01\x13\x03\x01\x00\x00\x1e\x17" + // 0x01130301: 0x00001E17
+       "\x00E\x03-\x00\x00\x1e\x18" + // 0x0045032D: 0x00001E18
+       "\x00e\x03-\x00\x00\x1e\x19" + // 0x0065032D: 0x00001E19
+       "\x00E\x030\x00\x00\x1e\x1a" + // 0x00450330: 0x00001E1A
+       "\x00e\x030\x00\x00\x1e\x1b" + // 0x00650330: 0x00001E1B
+       "\x02(\x03\x06\x00\x00\x1e\x1c" + // 0x02280306: 0x00001E1C
+       "\x02)\x03\x06\x00\x00\x1e\x1d" + // 0x02290306: 0x00001E1D
+       "\x00F\x03\a\x00\x00\x1e\x1e" + // 0x00460307: 0x00001E1E
+       "\x00f\x03\a\x00\x00\x1e\x1f" + // 0x00660307: 0x00001E1F
+       "\x00G\x03\x04\x00\x00\x1e " + // 0x00470304: 0x00001E20
+       "\x00g\x03\x04\x00\x00\x1e!" + // 0x00670304: 0x00001E21
+       "\x00H\x03\a\x00\x00\x1e\"" + // 0x00480307: 0x00001E22
+       "\x00h\x03\a\x00\x00\x1e#" + // 0x00680307: 0x00001E23
+       "\x00H\x03#\x00\x00\x1e$" + // 0x00480323: 0x00001E24
+       "\x00h\x03#\x00\x00\x1e%" + // 0x00680323: 0x00001E25
+       "\x00H\x03\b\x00\x00\x1e&" + // 0x00480308: 0x00001E26
+       "\x00h\x03\b\x00\x00\x1e'" + // 0x00680308: 0x00001E27
+       "\x00H\x03'\x00\x00\x1e(" + // 0x00480327: 0x00001E28
+       "\x00h\x03'\x00\x00\x1e)" + // 0x00680327: 0x00001E29
+       "\x00H\x03.\x00\x00\x1e*" + // 0x0048032E: 0x00001E2A
+       "\x00h\x03.\x00\x00\x1e+" + // 0x0068032E: 0x00001E2B
+       "\x00I\x030\x00\x00\x1e," + // 0x00490330: 0x00001E2C
+       "\x00i\x030\x00\x00\x1e-" + // 0x00690330: 0x00001E2D
+       "\x00\xcf\x03\x01\x00\x00\x1e." + // 0x00CF0301: 0x00001E2E
+       "\x00\xef\x03\x01\x00\x00\x1e/" + // 0x00EF0301: 0x00001E2F
+       "\x00K\x03\x01\x00\x00\x1e0" + // 0x004B0301: 0x00001E30
+       "\x00k\x03\x01\x00\x00\x1e1" + // 0x006B0301: 0x00001E31
+       "\x00K\x03#\x00\x00\x1e2" + // 0x004B0323: 0x00001E32
+       "\x00k\x03#\x00\x00\x1e3" + // 0x006B0323: 0x00001E33
+       "\x00K\x031\x00\x00\x1e4" + // 0x004B0331: 0x00001E34
+       "\x00k\x031\x00\x00\x1e5" + // 0x006B0331: 0x00001E35
+       "\x00L\x03#\x00\x00\x1e6" + // 0x004C0323: 0x00001E36
+       "\x00l\x03#\x00\x00\x1e7" + // 0x006C0323: 0x00001E37
+       "\x1e6\x03\x04\x00\x00\x1e8" + // 0x1E360304: 0x00001E38
+       "\x1e7\x03\x04\x00\x00\x1e9" + // 0x1E370304: 0x00001E39
+       "\x00L\x031\x00\x00\x1e:" + // 0x004C0331: 0x00001E3A
+       "\x00l\x031\x00\x00\x1e;" + // 0x006C0331: 0x00001E3B
+       "\x00L\x03-\x00\x00\x1e<" + // 0x004C032D: 0x00001E3C
+       "\x00l\x03-\x00\x00\x1e=" + // 0x006C032D: 0x00001E3D
+       "\x00M\x03\x01\x00\x00\x1e>" + // 0x004D0301: 0x00001E3E
+       "\x00m\x03\x01\x00\x00\x1e?" + // 0x006D0301: 0x00001E3F
+       "\x00M\x03\a\x00\x00\x1e@" + // 0x004D0307: 0x00001E40
+       "\x00m\x03\a\x00\x00\x1eA" + // 0x006D0307: 0x00001E41
+       "\x00M\x03#\x00\x00\x1eB" + // 0x004D0323: 0x00001E42
+       "\x00m\x03#\x00\x00\x1eC" + // 0x006D0323: 0x00001E43
+       "\x00N\x03\a\x00\x00\x1eD" + // 0x004E0307: 0x00001E44
+       "\x00n\x03\a\x00\x00\x1eE" + // 0x006E0307: 0x00001E45
+       "\x00N\x03#\x00\x00\x1eF" + // 0x004E0323: 0x00001E46
+       "\x00n\x03#\x00\x00\x1eG" + // 0x006E0323: 0x00001E47
+       "\x00N\x031\x00\x00\x1eH" + // 0x004E0331: 0x00001E48
+       "\x00n\x031\x00\x00\x1eI" + // 0x006E0331: 0x00001E49
+       "\x00N\x03-\x00\x00\x1eJ" + // 0x004E032D: 0x00001E4A
+       "\x00n\x03-\x00\x00\x1eK" + // 0x006E032D: 0x00001E4B
+       "\x00\xd5\x03\x01\x00\x00\x1eL" + // 0x00D50301: 0x00001E4C
+       "\x00\xf5\x03\x01\x00\x00\x1eM" + // 0x00F50301: 0x00001E4D
+       "\x00\xd5\x03\b\x00\x00\x1eN" + // 0x00D50308: 0x00001E4E
+       "\x00\xf5\x03\b\x00\x00\x1eO" + // 0x00F50308: 0x00001E4F
+       "\x01L\x03\x00\x00\x00\x1eP" + // 0x014C0300: 0x00001E50
+       "\x01M\x03\x00\x00\x00\x1eQ" + // 0x014D0300: 0x00001E51
+       "\x01L\x03\x01\x00\x00\x1eR" + // 0x014C0301: 0x00001E52
+       "\x01M\x03\x01\x00\x00\x1eS" + // 0x014D0301: 0x00001E53
+       "\x00P\x03\x01\x00\x00\x1eT" + // 0x00500301: 0x00001E54
+       "\x00p\x03\x01\x00\x00\x1eU" + // 0x00700301: 0x00001E55
+       "\x00P\x03\a\x00\x00\x1eV" + // 0x00500307: 0x00001E56
+       "\x00p\x03\a\x00\x00\x1eW" + // 0x00700307: 0x00001E57
+       "\x00R\x03\a\x00\x00\x1eX" + // 0x00520307: 0x00001E58
+       "\x00r\x03\a\x00\x00\x1eY" + // 0x00720307: 0x00001E59
+       "\x00R\x03#\x00\x00\x1eZ" + // 0x00520323: 0x00001E5A
+       "\x00r\x03#\x00\x00\x1e[" + // 0x00720323: 0x00001E5B
+       "\x1eZ\x03\x04\x00\x00\x1e\\" + // 0x1E5A0304: 0x00001E5C
+       "\x1e[\x03\x04\x00\x00\x1e]" + // 0x1E5B0304: 0x00001E5D
+       "\x00R\x031\x00\x00\x1e^" + // 0x00520331: 0x00001E5E
+       "\x00r\x031\x00\x00\x1e_" + // 0x00720331: 0x00001E5F
+       "\x00S\x03\a\x00\x00\x1e`" + // 0x00530307: 0x00001E60
+       "\x00s\x03\a\x00\x00\x1ea" + // 0x00730307: 0x00001E61
+       "\x00S\x03#\x00\x00\x1eb" + // 0x00530323: 0x00001E62
+       "\x00s\x03#\x00\x00\x1ec" + // 0x00730323: 0x00001E63
+       "\x01Z\x03\a\x00\x00\x1ed" + // 0x015A0307: 0x00001E64
+       "\x01[\x03\a\x00\x00\x1ee" + // 0x015B0307: 0x00001E65
+       "\x01`\x03\a\x00\x00\x1ef" + // 0x01600307: 0x00001E66
+       "\x01a\x03\a\x00\x00\x1eg" + // 0x01610307: 0x00001E67
+       "\x1eb\x03\a\x00\x00\x1eh" + // 0x1E620307: 0x00001E68
+       "\x1ec\x03\a\x00\x00\x1ei" + // 0x1E630307: 0x00001E69
+       "\x00T\x03\a\x00\x00\x1ej" + // 0x00540307: 0x00001E6A
+       "\x00t\x03\a\x00\x00\x1ek" + // 0x00740307: 0x00001E6B
+       "\x00T\x03#\x00\x00\x1el" + // 0x00540323: 0x00001E6C
+       "\x00t\x03#\x00\x00\x1em" + // 0x00740323: 0x00001E6D
+       "\x00T\x031\x00\x00\x1en" + // 0x00540331: 0x00001E6E
+       "\x00t\x031\x00\x00\x1eo" + // 0x00740331: 0x00001E6F
+       "\x00T\x03-\x00\x00\x1ep" + // 0x0054032D: 0x00001E70
+       "\x00t\x03-\x00\x00\x1eq" + // 0x0074032D: 0x00001E71
+       "\x00U\x03$\x00\x00\x1er" + // 0x00550324: 0x00001E72
+       "\x00u\x03$\x00\x00\x1es" + // 0x00750324: 0x00001E73
+       "\x00U\x030\x00\x00\x1et" + // 0x00550330: 0x00001E74
+       "\x00u\x030\x00\x00\x1eu" + // 0x00750330: 0x00001E75
+       "\x00U\x03-\x00\x00\x1ev" + // 0x0055032D: 0x00001E76
+       "\x00u\x03-\x00\x00\x1ew" + // 0x0075032D: 0x00001E77
+       "\x01h\x03\x01\x00\x00\x1ex" + // 0x01680301: 0x00001E78
+       "\x01i\x03\x01\x00\x00\x1ey" + // 0x01690301: 0x00001E79
+       "\x01j\x03\b\x00\x00\x1ez" + // 0x016A0308: 0x00001E7A
+       "\x01k\x03\b\x00\x00\x1e{" + // 0x016B0308: 0x00001E7B
+       "\x00V\x03\x03\x00\x00\x1e|" + // 0x00560303: 0x00001E7C
+       "\x00v\x03\x03\x00\x00\x1e}" + // 0x00760303: 0x00001E7D
+       "\x00V\x03#\x00\x00\x1e~" + // 0x00560323: 0x00001E7E
+       "\x00v\x03#\x00\x00\x1e\u007f" + // 0x00760323: 0x00001E7F
+       "\x00W\x03\x00\x00\x00\x1e\x80" + // 0x00570300: 0x00001E80
+       "\x00w\x03\x00\x00\x00\x1e\x81" + // 0x00770300: 0x00001E81
+       "\x00W\x03\x01\x00\x00\x1e\x82" + // 0x00570301: 0x00001E82
+       "\x00w\x03\x01\x00\x00\x1e\x83" + // 0x00770301: 0x00001E83
+       "\x00W\x03\b\x00\x00\x1e\x84" + // 0x00570308: 0x00001E84
+       "\x00w\x03\b\x00\x00\x1e\x85" + // 0x00770308: 0x00001E85
+       "\x00W\x03\a\x00\x00\x1e\x86" + // 0x00570307: 0x00001E86
+       "\x00w\x03\a\x00\x00\x1e\x87" + // 0x00770307: 0x00001E87
+       "\x00W\x03#\x00\x00\x1e\x88" + // 0x00570323: 0x00001E88
+       "\x00w\x03#\x00\x00\x1e\x89" + // 0x00770323: 0x00001E89
+       "\x00X\x03\a\x00\x00\x1e\x8a" + // 0x00580307: 0x00001E8A
+       "\x00x\x03\a\x00\x00\x1e\x8b" + // 0x00780307: 0x00001E8B
+       "\x00X\x03\b\x00\x00\x1e\x8c" + // 0x00580308: 0x00001E8C
+       "\x00x\x03\b\x00\x00\x1e\x8d" + // 0x00780308: 0x00001E8D
+       "\x00Y\x03\a\x00\x00\x1e\x8e" + // 0x00590307: 0x00001E8E
+       "\x00y\x03\a\x00\x00\x1e\x8f" + // 0x00790307: 0x00001E8F
+       "\x00Z\x03\x02\x00\x00\x1e\x90" + // 0x005A0302: 0x00001E90
+       "\x00z\x03\x02\x00\x00\x1e\x91" + // 0x007A0302: 0x00001E91
+       "\x00Z\x03#\x00\x00\x1e\x92" + // 0x005A0323: 0x00001E92
+       "\x00z\x03#\x00\x00\x1e\x93" + // 0x007A0323: 0x00001E93
+       "\x00Z\x031\x00\x00\x1e\x94" + // 0x005A0331: 0x00001E94
+       "\x00z\x031\x00\x00\x1e\x95" + // 0x007A0331: 0x00001E95
+       "\x00h\x031\x00\x00\x1e\x96" + // 0x00680331: 0x00001E96
+       "\x00t\x03\b\x00\x00\x1e\x97" + // 0x00740308: 0x00001E97
+       "\x00w\x03\n\x00\x00\x1e\x98" + // 0x0077030A: 0x00001E98
+       "\x00y\x03\n\x00\x00\x1e\x99" + // 0x0079030A: 0x00001E99
+       "\x01\u007f\x03\a\x00\x00\x1e\x9b" + // 0x017F0307: 0x00001E9B
+       "\x00A\x03#\x00\x00\x1e\xa0" + // 0x00410323: 0x00001EA0
+       "\x00a\x03#\x00\x00\x1e\xa1" + // 0x00610323: 0x00001EA1
+       "\x00A\x03\t\x00\x00\x1e\xa2" + // 0x00410309: 0x00001EA2
+       "\x00a\x03\t\x00\x00\x1e\xa3" + // 0x00610309: 0x00001EA3
+       "\x00\xc2\x03\x01\x00\x00\x1e\xa4" + // 0x00C20301: 0x00001EA4
+       "\x00\xe2\x03\x01\x00\x00\x1e\xa5" + // 0x00E20301: 0x00001EA5
+       "\x00\xc2\x03\x00\x00\x00\x1e\xa6" + // 0x00C20300: 0x00001EA6
+       "\x00\xe2\x03\x00\x00\x00\x1e\xa7" + // 0x00E20300: 0x00001EA7
+       "\x00\xc2\x03\t\x00\x00\x1e\xa8" + // 0x00C20309: 0x00001EA8
+       "\x00\xe2\x03\t\x00\x00\x1e\xa9" + // 0x00E20309: 0x00001EA9
+       "\x00\xc2\x03\x03\x00\x00\x1e\xaa" + // 0x00C20303: 0x00001EAA
+       "\x00\xe2\x03\x03\x00\x00\x1e\xab" + // 0x00E20303: 0x00001EAB
+       "\x1e\xa0\x03\x02\x00\x00\x1e\xac" + // 0x1EA00302: 0x00001EAC
+       "\x1e\xa1\x03\x02\x00\x00\x1e\xad" + // 0x1EA10302: 0x00001EAD
+       "\x01\x02\x03\x01\x00\x00\x1e\xae" + // 0x01020301: 0x00001EAE
+       "\x01\x03\x03\x01\x00\x00\x1e\xaf" + // 0x01030301: 0x00001EAF
+       "\x01\x02\x03\x00\x00\x00\x1e\xb0" + // 0x01020300: 0x00001EB0
+       "\x01\x03\x03\x00\x00\x00\x1e\xb1" + // 0x01030300: 0x00001EB1
+       "\x01\x02\x03\t\x00\x00\x1e\xb2" + // 0x01020309: 0x00001EB2
+       "\x01\x03\x03\t\x00\x00\x1e\xb3" + // 0x01030309: 0x00001EB3
+       "\x01\x02\x03\x03\x00\x00\x1e\xb4" + // 0x01020303: 0x00001EB4
+       "\x01\x03\x03\x03\x00\x00\x1e\xb5" + // 0x01030303: 0x00001EB5
+       "\x1e\xa0\x03\x06\x00\x00\x1e\xb6" + // 0x1EA00306: 0x00001EB6
+       "\x1e\xa1\x03\x06\x00\x00\x1e\xb7" + // 0x1EA10306: 0x00001EB7
+       "\x00E\x03#\x00\x00\x1e\xb8" + // 0x00450323: 0x00001EB8
+       "\x00e\x03#\x00\x00\x1e\xb9" + // 0x00650323: 0x00001EB9
+       "\x00E\x03\t\x00\x00\x1e\xba" + // 0x00450309: 0x00001EBA
+       "\x00e\x03\t\x00\x00\x1e\xbb" + // 0x00650309: 0x00001EBB
+       "\x00E\x03\x03\x00\x00\x1e\xbc" + // 0x00450303: 0x00001EBC
+       "\x00e\x03\x03\x00\x00\x1e\xbd" + // 0x00650303: 0x00001EBD
+       "\x00\xca\x03\x01\x00\x00\x1e\xbe" + // 0x00CA0301: 0x00001EBE
+       "\x00\xea\x03\x01\x00\x00\x1e\xbf" + // 0x00EA0301: 0x00001EBF
+       "\x00\xca\x03\x00\x00\x00\x1e\xc0" + // 0x00CA0300: 0x00001EC0
+       "\x00\xea\x03\x00\x00\x00\x1e\xc1" + // 0x00EA0300: 0x00001EC1
+       "\x00\xca\x03\t\x00\x00\x1e\xc2" + // 0x00CA0309: 0x00001EC2
+       "\x00\xea\x03\t\x00\x00\x1e\xc3" + // 0x00EA0309: 0x00001EC3
+       "\x00\xca\x03\x03\x00\x00\x1e\xc4" + // 0x00CA0303: 0x00001EC4
+       "\x00\xea\x03\x03\x00\x00\x1e\xc5" + // 0x00EA0303: 0x00001EC5
+       "\x1e\xb8\x03\x02\x00\x00\x1e\xc6" + // 0x1EB80302: 0x00001EC6
+       "\x1e\xb9\x03\x02\x00\x00\x1e\xc7" + // 0x1EB90302: 0x00001EC7
+       "\x00I\x03\t\x00\x00\x1e\xc8" + // 0x00490309: 0x00001EC8
+       "\x00i\x03\t\x00\x00\x1e\xc9" + // 0x00690309: 0x00001EC9
+       "\x00I\x03#\x00\x00\x1e\xca" + // 0x00490323: 0x00001ECA
+       "\x00i\x03#\x00\x00\x1e\xcb" + // 0x00690323: 0x00001ECB
+       "\x00O\x03#\x00\x00\x1e\xcc" + // 0x004F0323: 0x00001ECC
+       "\x00o\x03#\x00\x00\x1e\xcd" + // 0x006F0323: 0x00001ECD
+       "\x00O\x03\t\x00\x00\x1e\xce" + // 0x004F0309: 0x00001ECE
+       "\x00o\x03\t\x00\x00\x1e\xcf" + // 0x006F0309: 0x00001ECF
+       "\x00\xd4\x03\x01\x00\x00\x1e\xd0" + // 0x00D40301: 0x00001ED0
+       "\x00\xf4\x03\x01\x00\x00\x1e\xd1" + // 0x00F40301: 0x00001ED1
+       "\x00\xd4\x03\x00\x00\x00\x1e\xd2" + // 0x00D40300: 0x00001ED2
+       "\x00\xf4\x03\x00\x00\x00\x1e\xd3" + // 0x00F40300: 0x00001ED3
+       "\x00\xd4\x03\t\x00\x00\x1e\xd4" + // 0x00D40309: 0x00001ED4
+       "\x00\xf4\x03\t\x00\x00\x1e\xd5" + // 0x00F40309: 0x00001ED5
+       "\x00\xd4\x03\x03\x00\x00\x1e\xd6" + // 0x00D40303: 0x00001ED6
+       "\x00\xf4\x03\x03\x00\x00\x1e\xd7" + // 0x00F40303: 0x00001ED7
+       "\x1e\xcc\x03\x02\x00\x00\x1e\xd8" + // 0x1ECC0302: 0x00001ED8
+       "\x1e\xcd\x03\x02\x00\x00\x1e\xd9" + // 0x1ECD0302: 0x00001ED9
+       "\x01\xa0\x03\x01\x00\x00\x1e\xda" + // 0x01A00301: 0x00001EDA
+       "\x01\xa1\x03\x01\x00\x00\x1e\xdb" + // 0x01A10301: 0x00001EDB
+       "\x01\xa0\x03\x00\x00\x00\x1e\xdc" + // 0x01A00300: 0x00001EDC
+       "\x01\xa1\x03\x00\x00\x00\x1e\xdd" + // 0x01A10300: 0x00001EDD
+       "\x01\xa0\x03\t\x00\x00\x1e\xde" + // 0x01A00309: 0x00001EDE
+       "\x01\xa1\x03\t\x00\x00\x1e\xdf" + // 0x01A10309: 0x00001EDF
+       "\x01\xa0\x03\x03\x00\x00\x1e\xe0" + // 0x01A00303: 0x00001EE0
+       "\x01\xa1\x03\x03\x00\x00\x1e\xe1" + // 0x01A10303: 0x00001EE1
+       "\x01\xa0\x03#\x00\x00\x1e\xe2" + // 0x01A00323: 0x00001EE2
+       "\x01\xa1\x03#\x00\x00\x1e\xe3" + // 0x01A10323: 0x00001EE3
+       "\x00U\x03#\x00\x00\x1e\xe4" + // 0x00550323: 0x00001EE4
+       "\x00u\x03#\x00\x00\x1e\xe5" + // 0x00750323: 0x00001EE5
+       "\x00U\x03\t\x00\x00\x1e\xe6" + // 0x00550309: 0x00001EE6
+       "\x00u\x03\t\x00\x00\x1e\xe7" + // 0x00750309: 0x00001EE7
+       "\x01\xaf\x03\x01\x00\x00\x1e\xe8" + // 0x01AF0301: 0x00001EE8
+       "\x01\xb0\x03\x01\x00\x00\x1e\xe9" + // 0x01B00301: 0x00001EE9
+       "\x01\xaf\x03\x00\x00\x00\x1e\xea" + // 0x01AF0300: 0x00001EEA
+       "\x01\xb0\x03\x00\x00\x00\x1e\xeb" + // 0x01B00300: 0x00001EEB
+       "\x01\xaf\x03\t\x00\x00\x1e\xec" + // 0x01AF0309: 0x00001EEC
+       "\x01\xb0\x03\t\x00\x00\x1e\xed" + // 0x01B00309: 0x00001EED
+       "\x01\xaf\x03\x03\x00\x00\x1e\xee" + // 0x01AF0303: 0x00001EEE
+       "\x01\xb0\x03\x03\x00\x00\x1e\xef" + // 0x01B00303: 0x00001EEF
+       "\x01\xaf\x03#\x00\x00\x1e\xf0" + // 0x01AF0323: 0x00001EF0
+       "\x01\xb0\x03#\x00\x00\x1e\xf1" + // 0x01B00323: 0x00001EF1
+       "\x00Y\x03\x00\x00\x00\x1e\xf2" + // 0x00590300: 0x00001EF2
+       "\x00y\x03\x00\x00\x00\x1e\xf3" + // 0x00790300: 0x00001EF3
+       "\x00Y\x03#\x00\x00\x1e\xf4" + // 0x00590323: 0x00001EF4
+       "\x00y\x03#\x00\x00\x1e\xf5" + // 0x00790323: 0x00001EF5
+       "\x00Y\x03\t\x00\x00\x1e\xf6" + // 0x00590309: 0x00001EF6
+       "\x00y\x03\t\x00\x00\x1e\xf7" + // 0x00790309: 0x00001EF7
+       "\x00Y\x03\x03\x00\x00\x1e\xf8" + // 0x00590303: 0x00001EF8
+       "\x00y\x03\x03\x00\x00\x1e\xf9" + // 0x00790303: 0x00001EF9
+       "\x03\xb1\x03\x13\x00\x00\x1f\x00" + // 0x03B10313: 0x00001F00
+       "\x03\xb1\x03\x14\x00\x00\x1f\x01" + // 0x03B10314: 0x00001F01
+       "\x1f\x00\x03\x00\x00\x00\x1f\x02" + // 0x1F000300: 0x00001F02
+       "\x1f\x01\x03\x00\x00\x00\x1f\x03" + // 0x1F010300: 0x00001F03
+       "\x1f\x00\x03\x01\x00\x00\x1f\x04" + // 0x1F000301: 0x00001F04
+       "\x1f\x01\x03\x01\x00\x00\x1f\x05" + // 0x1F010301: 0x00001F05
+       "\x1f\x00\x03B\x00\x00\x1f\x06" + // 0x1F000342: 0x00001F06
+       "\x1f\x01\x03B\x00\x00\x1f\a" + // 0x1F010342: 0x00001F07
+       "\x03\x91\x03\x13\x00\x00\x1f\b" + // 0x03910313: 0x00001F08
+       "\x03\x91\x03\x14\x00\x00\x1f\t" + // 0x03910314: 0x00001F09
+       "\x1f\b\x03\x00\x00\x00\x1f\n" + // 0x1F080300: 0x00001F0A
+       "\x1f\t\x03\x00\x00\x00\x1f\v" + // 0x1F090300: 0x00001F0B
+       "\x1f\b\x03\x01\x00\x00\x1f\f" + // 0x1F080301: 0x00001F0C
+       "\x1f\t\x03\x01\x00\x00\x1f\r" + // 0x1F090301: 0x00001F0D
+       "\x1f\b\x03B\x00\x00\x1f\x0e" + // 0x1F080342: 0x00001F0E
+       "\x1f\t\x03B\x00\x00\x1f\x0f" + // 0x1F090342: 0x00001F0F
+       "\x03\xb5\x03\x13\x00\x00\x1f\x10" + // 0x03B50313: 0x00001F10
+       "\x03\xb5\x03\x14\x00\x00\x1f\x11" + // 0x03B50314: 0x00001F11
+       "\x1f\x10\x03\x00\x00\x00\x1f\x12" + // 0x1F100300: 0x00001F12
+       "\x1f\x11\x03\x00\x00\x00\x1f\x13" + // 0x1F110300: 0x00001F13
+       "\x1f\x10\x03\x01\x00\x00\x1f\x14" + // 0x1F100301: 0x00001F14
+       "\x1f\x11\x03\x01\x00\x00\x1f\x15" + // 0x1F110301: 0x00001F15
+       "\x03\x95\x03\x13\x00\x00\x1f\x18" + // 0x03950313: 0x00001F18
+       "\x03\x95\x03\x14\x00\x00\x1f\x19" + // 0x03950314: 0x00001F19
+       "\x1f\x18\x03\x00\x00\x00\x1f\x1a" + // 0x1F180300: 0x00001F1A
+       "\x1f\x19\x03\x00\x00\x00\x1f\x1b" + // 0x1F190300: 0x00001F1B
+       "\x1f\x18\x03\x01\x00\x00\x1f\x1c" + // 0x1F180301: 0x00001F1C
+       "\x1f\x19\x03\x01\x00\x00\x1f\x1d" + // 0x1F190301: 0x00001F1D
+       "\x03\xb7\x03\x13\x00\x00\x1f " + // 0x03B70313: 0x00001F20
+       "\x03\xb7\x03\x14\x00\x00\x1f!" + // 0x03B70314: 0x00001F21
+       "\x1f \x03\x00\x00\x00\x1f\"" + // 0x1F200300: 0x00001F22
+       "\x1f!\x03\x00\x00\x00\x1f#" + // 0x1F210300: 0x00001F23
+       "\x1f \x03\x01\x00\x00\x1f$" + // 0x1F200301: 0x00001F24
+       "\x1f!\x03\x01\x00\x00\x1f%" + // 0x1F210301: 0x00001F25
+       "\x1f \x03B\x00\x00\x1f&" + // 0x1F200342: 0x00001F26
+       "\x1f!\x03B\x00\x00\x1f'" + // 0x1F210342: 0x00001F27
+       "\x03\x97\x03\x13\x00\x00\x1f(" + // 0x03970313: 0x00001F28
+       "\x03\x97\x03\x14\x00\x00\x1f)" + // 0x03970314: 0x00001F29
+       "\x1f(\x03\x00\x00\x00\x1f*" + // 0x1F280300: 0x00001F2A
+       "\x1f)\x03\x00\x00\x00\x1f+" + // 0x1F290300: 0x00001F2B
+       "\x1f(\x03\x01\x00\x00\x1f," + // 0x1F280301: 0x00001F2C
+       "\x1f)\x03\x01\x00\x00\x1f-" + // 0x1F290301: 0x00001F2D
+       "\x1f(\x03B\x00\x00\x1f." + // 0x1F280342: 0x00001F2E
+       "\x1f)\x03B\x00\x00\x1f/" + // 0x1F290342: 0x00001F2F
+       "\x03\xb9\x03\x13\x00\x00\x1f0" + // 0x03B90313: 0x00001F30
+       "\x03\xb9\x03\x14\x00\x00\x1f1" + // 0x03B90314: 0x00001F31
+       "\x1f0\x03\x00\x00\x00\x1f2" + // 0x1F300300: 0x00001F32
+       "\x1f1\x03\x00\x00\x00\x1f3" + // 0x1F310300: 0x00001F33
+       "\x1f0\x03\x01\x00\x00\x1f4" + // 0x1F300301: 0x00001F34
+       "\x1f1\x03\x01\x00\x00\x1f5" + // 0x1F310301: 0x00001F35
+       "\x1f0\x03B\x00\x00\x1f6" + // 0x1F300342: 0x00001F36
+       "\x1f1\x03B\x00\x00\x1f7" + // 0x1F310342: 0x00001F37
+       "\x03\x99\x03\x13\x00\x00\x1f8" + // 0x03990313: 0x00001F38
+       "\x03\x99\x03\x14\x00\x00\x1f9" + // 0x03990314: 0x00001F39
+       "\x1f8\x03\x00\x00\x00\x1f:" + // 0x1F380300: 0x00001F3A
+       "\x1f9\x03\x00\x00\x00\x1f;" + // 0x1F390300: 0x00001F3B
+       "\x1f8\x03\x01\x00\x00\x1f<" + // 0x1F380301: 0x00001F3C
+       "\x1f9\x03\x01\x00\x00\x1f=" + // 0x1F390301: 0x00001F3D
+       "\x1f8\x03B\x00\x00\x1f>" + // 0x1F380342: 0x00001F3E
+       "\x1f9\x03B\x00\x00\x1f?" + // 0x1F390342: 0x00001F3F
+       "\x03\xbf\x03\x13\x00\x00\x1f@" + // 0x03BF0313: 0x00001F40
+       "\x03\xbf\x03\x14\x00\x00\x1fA" + // 0x03BF0314: 0x00001F41
+       "\x1f@\x03\x00\x00\x00\x1fB" + // 0x1F400300: 0x00001F42
+       "\x1fA\x03\x00\x00\x00\x1fC" + // 0x1F410300: 0x00001F43
+       "\x1f@\x03\x01\x00\x00\x1fD" + // 0x1F400301: 0x00001F44
+       "\x1fA\x03\x01\x00\x00\x1fE" + // 0x1F410301: 0x00001F45
+       "\x03\x9f\x03\x13\x00\x00\x1fH" + // 0x039F0313: 0x00001F48
+       "\x03\x9f\x03\x14\x00\x00\x1fI" + // 0x039F0314: 0x00001F49
+       "\x1fH\x03\x00\x00\x00\x1fJ" + // 0x1F480300: 0x00001F4A
+       "\x1fI\x03\x00\x00\x00\x1fK" + // 0x1F490300: 0x00001F4B
+       "\x1fH\x03\x01\x00\x00\x1fL" + // 0x1F480301: 0x00001F4C
+       "\x1fI\x03\x01\x00\x00\x1fM" + // 0x1F490301: 0x00001F4D
+       "\x03\xc5\x03\x13\x00\x00\x1fP" + // 0x03C50313: 0x00001F50
+       "\x03\xc5\x03\x14\x00\x00\x1fQ" + // 0x03C50314: 0x00001F51
+       "\x1fP\x03\x00\x00\x00\x1fR" + // 0x1F500300: 0x00001F52
+       "\x1fQ\x03\x00\x00\x00\x1fS" + // 0x1F510300: 0x00001F53
+       "\x1fP\x03\x01\x00\x00\x1fT" + // 0x1F500301: 0x00001F54
+       "\x1fQ\x03\x01\x00\x00\x1fU" + // 0x1F510301: 0x00001F55
+       "\x1fP\x03B\x00\x00\x1fV" + // 0x1F500342: 0x00001F56
+       "\x1fQ\x03B\x00\x00\x1fW" + // 0x1F510342: 0x00001F57
+       "\x03\xa5\x03\x14\x00\x00\x1fY" + // 0x03A50314: 0x00001F59
+       "\x1fY\x03\x00\x00\x00\x1f[" + // 0x1F590300: 0x00001F5B
+       "\x1fY\x03\x01\x00\x00\x1f]" + // 0x1F590301: 0x00001F5D
+       "\x1fY\x03B\x00\x00\x1f_" + // 0x1F590342: 0x00001F5F
+       "\x03\xc9\x03\x13\x00\x00\x1f`" + // 0x03C90313: 0x00001F60
+       "\x03\xc9\x03\x14\x00\x00\x1fa" + // 0x03C90314: 0x00001F61
+       "\x1f`\x03\x00\x00\x00\x1fb" + // 0x1F600300: 0x00001F62
+       "\x1fa\x03\x00\x00\x00\x1fc" + // 0x1F610300: 0x00001F63
+       "\x1f`\x03\x01\x00\x00\x1fd" + // 0x1F600301: 0x00001F64
+       "\x1fa\x03\x01\x00\x00\x1fe" + // 0x1F610301: 0x00001F65
+       "\x1f`\x03B\x00\x00\x1ff" + // 0x1F600342: 0x00001F66
+       "\x1fa\x03B\x00\x00\x1fg" + // 0x1F610342: 0x00001F67
+       "\x03\xa9\x03\x13\x00\x00\x1fh" + // 0x03A90313: 0x00001F68
+       "\x03\xa9\x03\x14\x00\x00\x1fi" + // 0x03A90314: 0x00001F69
+       "\x1fh\x03\x00\x00\x00\x1fj" + // 0x1F680300: 0x00001F6A
+       "\x1fi\x03\x00\x00\x00\x1fk" + // 0x1F690300: 0x00001F6B
+       "\x1fh\x03\x01\x00\x00\x1fl" + // 0x1F680301: 0x00001F6C
+       "\x1fi\x03\x01\x00\x00\x1fm" + // 0x1F690301: 0x00001F6D
+       "\x1fh\x03B\x00\x00\x1fn" + // 0x1F680342: 0x00001F6E
+       "\x1fi\x03B\x00\x00\x1fo" + // 0x1F690342: 0x00001F6F
+       "\x03\xb1\x03\x00\x00\x00\x1fp" + // 0x03B10300: 0x00001F70
+       "\x03\xb5\x03\x00\x00\x00\x1fr" + // 0x03B50300: 0x00001F72
+       "\x03\xb7\x03\x00\x00\x00\x1ft" + // 0x03B70300: 0x00001F74
+       "\x03\xb9\x03\x00\x00\x00\x1fv" + // 0x03B90300: 0x00001F76
+       "\x03\xbf\x03\x00\x00\x00\x1fx" + // 0x03BF0300: 0x00001F78
+       "\x03\xc5\x03\x00\x00\x00\x1fz" + // 0x03C50300: 0x00001F7A
+       "\x03\xc9\x03\x00\x00\x00\x1f|" + // 0x03C90300: 0x00001F7C
+       "\x1f\x00\x03E\x00\x00\x1f\x80" + // 0x1F000345: 0x00001F80
+       "\x1f\x01\x03E\x00\x00\x1f\x81" + // 0x1F010345: 0x00001F81
+       "\x1f\x02\x03E\x00\x00\x1f\x82" + // 0x1F020345: 0x00001F82
+       "\x1f\x03\x03E\x00\x00\x1f\x83" + // 0x1F030345: 0x00001F83
+       "\x1f\x04\x03E\x00\x00\x1f\x84" + // 0x1F040345: 0x00001F84
+       "\x1f\x05\x03E\x00\x00\x1f\x85" + // 0x1F050345: 0x00001F85
+       "\x1f\x06\x03E\x00\x00\x1f\x86" + // 0x1F060345: 0x00001F86
+       "\x1f\a\x03E\x00\x00\x1f\x87" + // 0x1F070345: 0x00001F87
+       "\x1f\b\x03E\x00\x00\x1f\x88" + // 0x1F080345: 0x00001F88
+       "\x1f\t\x03E\x00\x00\x1f\x89" + // 0x1F090345: 0x00001F89
+       "\x1f\n\x03E\x00\x00\x1f\x8a" + // 0x1F0A0345: 0x00001F8A
+       "\x1f\v\x03E\x00\x00\x1f\x8b" + // 0x1F0B0345: 0x00001F8B
+       "\x1f\f\x03E\x00\x00\x1f\x8c" + // 0x1F0C0345: 0x00001F8C
+       "\x1f\r\x03E\x00\x00\x1f\x8d" + // 0x1F0D0345: 0x00001F8D
+       "\x1f\x0e\x03E\x00\x00\x1f\x8e" + // 0x1F0E0345: 0x00001F8E
+       "\x1f\x0f\x03E\x00\x00\x1f\x8f" + // 0x1F0F0345: 0x00001F8F
+       "\x1f \x03E\x00\x00\x1f\x90" + // 0x1F200345: 0x00001F90
+       "\x1f!\x03E\x00\x00\x1f\x91" + // 0x1F210345: 0x00001F91
+       "\x1f\"\x03E\x00\x00\x1f\x92" + // 0x1F220345: 0x00001F92
+       "\x1f#\x03E\x00\x00\x1f\x93" + // 0x1F230345: 0x00001F93
+       "\x1f$\x03E\x00\x00\x1f\x94" + // 0x1F240345: 0x00001F94
+       "\x1f%\x03E\x00\x00\x1f\x95" + // 0x1F250345: 0x00001F95
+       "\x1f&\x03E\x00\x00\x1f\x96" + // 0x1F260345: 0x00001F96
+       "\x1f'\x03E\x00\x00\x1f\x97" + // 0x1F270345: 0x00001F97
+       "\x1f(\x03E\x00\x00\x1f\x98" + // 0x1F280345: 0x00001F98
+       "\x1f)\x03E\x00\x00\x1f\x99" + // 0x1F290345: 0x00001F99
+       "\x1f*\x03E\x00\x00\x1f\x9a" + // 0x1F2A0345: 0x00001F9A
+       "\x1f+\x03E\x00\x00\x1f\x9b" + // 0x1F2B0345: 0x00001F9B
+       "\x1f,\x03E\x00\x00\x1f\x9c" + // 0x1F2C0345: 0x00001F9C
+       "\x1f-\x03E\x00\x00\x1f\x9d" + // 0x1F2D0345: 0x00001F9D
+       "\x1f.\x03E\x00\x00\x1f\x9e" + // 0x1F2E0345: 0x00001F9E
+       "\x1f/\x03E\x00\x00\x1f\x9f" + // 0x1F2F0345: 0x00001F9F
+       "\x1f`\x03E\x00\x00\x1f\xa0" + // 0x1F600345: 0x00001FA0
+       "\x1fa\x03E\x00\x00\x1f\xa1" + // 0x1F610345: 0x00001FA1
+       "\x1fb\x03E\x00\x00\x1f\xa2" + // 0x1F620345: 0x00001FA2
+       "\x1fc\x03E\x00\x00\x1f\xa3" + // 0x1F630345: 0x00001FA3
+       "\x1fd\x03E\x00\x00\x1f\xa4" + // 0x1F640345: 0x00001FA4
+       "\x1fe\x03E\x00\x00\x1f\xa5" + // 0x1F650345: 0x00001FA5
+       "\x1ff\x03E\x00\x00\x1f\xa6" + // 0x1F660345: 0x00001FA6
+       "\x1fg\x03E\x00\x00\x1f\xa7" + // 0x1F670345: 0x00001FA7
+       "\x1fh\x03E\x00\x00\x1f\xa8" + // 0x1F680345: 0x00001FA8
+       "\x1fi\x03E\x00\x00\x1f\xa9" + // 0x1F690345: 0x00001FA9
+       "\x1fj\x03E\x00\x00\x1f\xaa" + // 0x1F6A0345: 0x00001FAA
+       "\x1fk\x03E\x00\x00\x1f\xab" + // 0x1F6B0345: 0x00001FAB
+       "\x1fl\x03E\x00\x00\x1f\xac" + // 0x1F6C0345: 0x00001FAC
+       "\x1fm\x03E\x00\x00\x1f\xad" + // 0x1F6D0345: 0x00001FAD
+       "\x1fn\x03E\x00\x00\x1f\xae" + // 0x1F6E0345: 0x00001FAE
+       "\x1fo\x03E\x00\x00\x1f\xaf" + // 0x1F6F0345: 0x00001FAF
+       "\x03\xb1\x03\x06\x00\x00\x1f\xb0" + // 0x03B10306: 0x00001FB0
+       "\x03\xb1\x03\x04\x00\x00\x1f\xb1" + // 0x03B10304: 0x00001FB1
+       "\x1fp\x03E\x00\x00\x1f\xb2" + // 0x1F700345: 0x00001FB2
+       "\x03\xb1\x03E\x00\x00\x1f\xb3" + // 0x03B10345: 0x00001FB3
+       "\x03\xac\x03E\x00\x00\x1f\xb4" + // 0x03AC0345: 0x00001FB4
+       "\x03\xb1\x03B\x00\x00\x1f\xb6" + // 0x03B10342: 0x00001FB6
+       "\x1f\xb6\x03E\x00\x00\x1f\xb7" + // 0x1FB60345: 0x00001FB7
+       "\x03\x91\x03\x06\x00\x00\x1f\xb8" + // 0x03910306: 0x00001FB8
+       "\x03\x91\x03\x04\x00\x00\x1f\xb9" + // 0x03910304: 0x00001FB9
+       "\x03\x91\x03\x00\x00\x00\x1f\xba" + // 0x03910300: 0x00001FBA
+       "\x03\x91\x03E\x00\x00\x1f\xbc" + // 0x03910345: 0x00001FBC
+       "\x00\xa8\x03B\x00\x00\x1f\xc1" + // 0x00A80342: 0x00001FC1
+       "\x1ft\x03E\x00\x00\x1f\xc2" + // 0x1F740345: 0x00001FC2
+       "\x03\xb7\x03E\x00\x00\x1f\xc3" + // 0x03B70345: 0x00001FC3
+       "\x03\xae\x03E\x00\x00\x1f\xc4" + // 0x03AE0345: 0x00001FC4
+       "\x03\xb7\x03B\x00\x00\x1f\xc6" + // 0x03B70342: 0x00001FC6
+       "\x1f\xc6\x03E\x00\x00\x1f\xc7" + // 0x1FC60345: 0x00001FC7
+       "\x03\x95\x03\x00\x00\x00\x1f\xc8" + // 0x03950300: 0x00001FC8
+       "\x03\x97\x03\x00\x00\x00\x1f\xca" + // 0x03970300: 0x00001FCA
+       "\x03\x97\x03E\x00\x00\x1f\xcc" + // 0x03970345: 0x00001FCC
+       "\x1f\xbf\x03\x00\x00\x00\x1f\xcd" + // 0x1FBF0300: 0x00001FCD
+       "\x1f\xbf\x03\x01\x00\x00\x1f\xce" + // 0x1FBF0301: 0x00001FCE
+       "\x1f\xbf\x03B\x00\x00\x1f\xcf" + // 0x1FBF0342: 0x00001FCF
+       "\x03\xb9\x03\x06\x00\x00\x1f\xd0" + // 0x03B90306: 0x00001FD0
+       "\x03\xb9\x03\x04\x00\x00\x1f\xd1" + // 0x03B90304: 0x00001FD1
+       "\x03\xca\x03\x00\x00\x00\x1f\xd2" + // 0x03CA0300: 0x00001FD2
+       "\x03\xb9\x03B\x00\x00\x1f\xd6" + // 0x03B90342: 0x00001FD6
+       "\x03\xca\x03B\x00\x00\x1f\xd7" + // 0x03CA0342: 0x00001FD7
+       "\x03\x99\x03\x06\x00\x00\x1f\xd8" + // 0x03990306: 0x00001FD8
+       "\x03\x99\x03\x04\x00\x00\x1f\xd9" + // 0x03990304: 0x00001FD9
+       "\x03\x99\x03\x00\x00\x00\x1f\xda" + // 0x03990300: 0x00001FDA
+       "\x1f\xfe\x03\x00\x00\x00\x1f\xdd" + // 0x1FFE0300: 0x00001FDD
+       "\x1f\xfe\x03\x01\x00\x00\x1f\xde" + // 0x1FFE0301: 0x00001FDE
+       "\x1f\xfe\x03B\x00\x00\x1f\xdf" + // 0x1FFE0342: 0x00001FDF
+       "\x03\xc5\x03\x06\x00\x00\x1f\xe0" + // 0x03C50306: 0x00001FE0
+       "\x03\xc5\x03\x04\x00\x00\x1f\xe1" + // 0x03C50304: 0x00001FE1
+       "\x03\xcb\x03\x00\x00\x00\x1f\xe2" + // 0x03CB0300: 0x00001FE2
+       "\x03\xc1\x03\x13\x00\x00\x1f\xe4" + // 0x03C10313: 0x00001FE4
+       "\x03\xc1\x03\x14\x00\x00\x1f\xe5" + // 0x03C10314: 0x00001FE5
+       "\x03\xc5\x03B\x00\x00\x1f\xe6" + // 0x03C50342: 0x00001FE6
+       "\x03\xcb\x03B\x00\x00\x1f\xe7" + // 0x03CB0342: 0x00001FE7
+       "\x03\xa5\x03\x06\x00\x00\x1f\xe8" + // 0x03A50306: 0x00001FE8
+       "\x03\xa5\x03\x04\x00\x00\x1f\xe9" + // 0x03A50304: 0x00001FE9
+       "\x03\xa5\x03\x00\x00\x00\x1f\xea" + // 0x03A50300: 0x00001FEA
+       "\x03\xa1\x03\x14\x00\x00\x1f\xec" + // 0x03A10314: 0x00001FEC
+       "\x00\xa8\x03\x00\x00\x00\x1f\xed" + // 0x00A80300: 0x00001FED
+       "\x1f|\x03E\x00\x00\x1f\xf2" + // 0x1F7C0345: 0x00001FF2
+       "\x03\xc9\x03E\x00\x00\x1f\xf3" + // 0x03C90345: 0x00001FF3
+       "\x03\xce\x03E\x00\x00\x1f\xf4" + // 0x03CE0345: 0x00001FF4
+       "\x03\xc9\x03B\x00\x00\x1f\xf6" + // 0x03C90342: 0x00001FF6
+       "\x1f\xf6\x03E\x00\x00\x1f\xf7" + // 0x1FF60345: 0x00001FF7
+       "\x03\x9f\x03\x00\x00\x00\x1f\xf8" + // 0x039F0300: 0x00001FF8
+       "\x03\xa9\x03\x00\x00\x00\x1f\xfa" + // 0x03A90300: 0x00001FFA
+       "\x03\xa9\x03E\x00\x00\x1f\xfc" + // 0x03A90345: 0x00001FFC
+       "!\x90\x038\x00\x00!\x9a" + // 0x21900338: 0x0000219A
+       "!\x92\x038\x00\x00!\x9b" + // 0x21920338: 0x0000219B
+       "!\x94\x038\x00\x00!\xae" + // 0x21940338: 0x000021AE
+       "!\xd0\x038\x00\x00!\xcd" + // 0x21D00338: 0x000021CD
+       "!\xd4\x038\x00\x00!\xce" + // 0x21D40338: 0x000021CE
+       "!\xd2\x038\x00\x00!\xcf" + // 0x21D20338: 0x000021CF
+       "\"\x03\x038\x00\x00\"\x04" + // 0x22030338: 0x00002204
+       "\"\b\x038\x00\x00\"\t" + // 0x22080338: 0x00002209
+       "\"\v\x038\x00\x00\"\f" + // 0x220B0338: 0x0000220C
+       "\"#\x038\x00\x00\"$" + // 0x22230338: 0x00002224
+       "\"%\x038\x00\x00\"&" + // 0x22250338: 0x00002226
+       "\"<\x038\x00\x00\"A" + // 0x223C0338: 0x00002241
+       "\"C\x038\x00\x00\"D" + // 0x22430338: 0x00002244
+       "\"E\x038\x00\x00\"G" + // 0x22450338: 0x00002247
+       "\"H\x038\x00\x00\"I" + // 0x22480338: 0x00002249
+       "\x00=\x038\x00\x00\"`" + // 0x003D0338: 0x00002260
+       "\"a\x038\x00\x00\"b" + // 0x22610338: 0x00002262
+       "\"M\x038\x00\x00\"m" + // 0x224D0338: 0x0000226D
+       "\x00<\x038\x00\x00\"n" + // 0x003C0338: 0x0000226E
+       "\x00>\x038\x00\x00\"o" + // 0x003E0338: 0x0000226F
+       "\"d\x038\x00\x00\"p" + // 0x22640338: 0x00002270
+       "\"e\x038\x00\x00\"q" + // 0x22650338: 0x00002271
+       "\"r\x038\x00\x00\"t" + // 0x22720338: 0x00002274
+       "\"s\x038\x00\x00\"u" + // 0x22730338: 0x00002275
+       "\"v\x038\x00\x00\"x" + // 0x22760338: 0x00002278
+       "\"w\x038\x00\x00\"y" + // 0x22770338: 0x00002279
+       "\"z\x038\x00\x00\"\x80" + // 0x227A0338: 0x00002280
+       "\"{\x038\x00\x00\"\x81" + // 0x227B0338: 0x00002281
+       "\"\x82\x038\x00\x00\"\x84" + // 0x22820338: 0x00002284
+       "\"\x83\x038\x00\x00\"\x85" + // 0x22830338: 0x00002285
+       "\"\x86\x038\x00\x00\"\x88" + // 0x22860338: 0x00002288
+       "\"\x87\x038\x00\x00\"\x89" + // 0x22870338: 0x00002289
+       "\"\xa2\x038\x00\x00\"\xac" + // 0x22A20338: 0x000022AC
+       "\"\xa8\x038\x00\x00\"\xad" + // 0x22A80338: 0x000022AD
+       "\"\xa9\x038\x00\x00\"\xae" + // 0x22A90338: 0x000022AE
+       "\"\xab\x038\x00\x00\"\xaf" + // 0x22AB0338: 0x000022AF
+       "\"|\x038\x00\x00\"\xe0" + // 0x227C0338: 0x000022E0
+       "\"}\x038\x00\x00\"\xe1" + // 0x227D0338: 0x000022E1
+       "\"\x91\x038\x00\x00\"\xe2" + // 0x22910338: 0x000022E2
+       "\"\x92\x038\x00\x00\"\xe3" + // 0x22920338: 0x000022E3
+       "\"\xb2\x038\x00\x00\"\xea" + // 0x22B20338: 0x000022EA
+       "\"\xb3\x038\x00\x00\"\xeb" + // 0x22B30338: 0x000022EB
+       "\"\xb4\x038\x00\x00\"\xec" + // 0x22B40338: 0x000022EC
+       "\"\xb5\x038\x00\x00\"\xed" + // 0x22B50338: 0x000022ED
+       "0K0\x99\x00\x000L" + // 0x304B3099: 0x0000304C
+       "0M0\x99\x00\x000N" + // 0x304D3099: 0x0000304E
+       "0O0\x99\x00\x000P" + // 0x304F3099: 0x00003050
+       "0Q0\x99\x00\x000R" + // 0x30513099: 0x00003052
+       "0S0\x99\x00\x000T" + // 0x30533099: 0x00003054
+       "0U0\x99\x00\x000V" + // 0x30553099: 0x00003056
+       "0W0\x99\x00\x000X" + // 0x30573099: 0x00003058
+       "0Y0\x99\x00\x000Z" + // 0x30593099: 0x0000305A
+       "0[0\x99\x00\x000\\" + // 0x305B3099: 0x0000305C
+       "0]0\x99\x00\x000^" + // 0x305D3099: 0x0000305E
+       "0_0\x99\x00\x000`" + // 0x305F3099: 0x00003060
+       "0a0\x99\x00\x000b" + // 0x30613099: 0x00003062
+       "0d0\x99\x00\x000e" + // 0x30643099: 0x00003065
+       "0f0\x99\x00\x000g" + // 0x30663099: 0x00003067
+       "0h0\x99\x00\x000i" + // 0x30683099: 0x00003069
+       "0o0\x99\x00\x000p" + // 0x306F3099: 0x00003070
+       "0o0\x9a\x00\x000q" + // 0x306F309A: 0x00003071
+       "0r0\x99\x00\x000s" + // 0x30723099: 0x00003073
+       "0r0\x9a\x00\x000t" + // 0x3072309A: 0x00003074
+       "0u0\x99\x00\x000v" + // 0x30753099: 0x00003076
+       "0u0\x9a\x00\x000w" + // 0x3075309A: 0x00003077
+       "0x0\x99\x00\x000y" + // 0x30783099: 0x00003079
+       "0x0\x9a\x00\x000z" + // 0x3078309A: 0x0000307A
+       "0{0\x99\x00\x000|" + // 0x307B3099: 0x0000307C
+       "0{0\x9a\x00\x000}" + // 0x307B309A: 0x0000307D
+       "0F0\x99\x00\x000\x94" + // 0x30463099: 0x00003094
+       "0\x9d0\x99\x00\x000\x9e" + // 0x309D3099: 0x0000309E
+       "0\xab0\x99\x00\x000\xac" + // 0x30AB3099: 0x000030AC
+       "0\xad0\x99\x00\x000\xae" + // 0x30AD3099: 0x000030AE
+       "0\xaf0\x99\x00\x000\xb0" + // 0x30AF3099: 0x000030B0
+       "0\xb10\x99\x00\x000\xb2" + // 0x30B13099: 0x000030B2
+       "0\xb30\x99\x00\x000\xb4" + // 0x30B33099: 0x000030B4
+       "0\xb50\x99\x00\x000\xb6" + // 0x30B53099: 0x000030B6
+       "0\xb70\x99\x00\x000\xb8" + // 0x30B73099: 0x000030B8
+       "0\xb90\x99\x00\x000\xba" + // 0x30B93099: 0x000030BA
+       "0\xbb0\x99\x00\x000\xbc" + // 0x30BB3099: 0x000030BC
+       "0\xbd0\x99\x00\x000\xbe" + // 0x30BD3099: 0x000030BE
+       "0\xbf0\x99\x00\x000\xc0" + // 0x30BF3099: 0x000030C0
+       "0\xc10\x99\x00\x000\xc2" + // 0x30C13099: 0x000030C2
+       "0\xc40\x99\x00\x000\xc5" + // 0x30C43099: 0x000030C5
+       "0\xc60\x99\x00\x000\xc7" + // 0x30C63099: 0x000030C7
+       "0\xc80\x99\x00\x000\xc9" + // 0x30C83099: 0x000030C9
+       "0\xcf0\x99\x00\x000\xd0" + // 0x30CF3099: 0x000030D0
+       "0\xcf0\x9a\x00\x000\xd1" + // 0x30CF309A: 0x000030D1
+       "0\xd20\x99\x00\x000\xd3" + // 0x30D23099: 0x000030D3
+       "0\xd20\x9a\x00\x000\xd4" + // 0x30D2309A: 0x000030D4
+       "0\xd50\x99\x00\x000\xd6" + // 0x30D53099: 0x000030D6
+       "0\xd50\x9a\x00\x000\xd7" + // 0x30D5309A: 0x000030D7
+       "0\xd80\x99\x00\x000\xd9" + // 0x30D83099: 0x000030D9
+       "0\xd80\x9a\x00\x000\xda" + // 0x30D8309A: 0x000030DA
+       "0\xdb0\x99\x00\x000\xdc" + // 0x30DB3099: 0x000030DC
+       "0\xdb0\x9a\x00\x000\xdd" + // 0x30DB309A: 0x000030DD
+       "0\xa60\x99\x00\x000\xf4" + // 0x30A63099: 0x000030F4
+       "0\xef0\x99\x00\x000\xf7" + // 0x30EF3099: 0x000030F7
+       "0\xf00\x99\x00\x000\xf8" + // 0x30F03099: 0x000030F8
+       "0\xf10\x99\x00\x000\xf9" + // 0x30F13099: 0x000030F9
+       "0\xf20\x99\x00\x000\xfa" + // 0x30F23099: 0x000030FA
+       "0\xfd0\x99\x00\x000\xfe" + // 0x30FD3099: 0x000030FE
+       "\x10\x99\x10\xba\x00\x01\x10\x9a" + // 0x109910BA: 0x0001109A
+       "\x10\x9b\x10\xba\x00\x01\x10\x9c" + // 0x109B10BA: 0x0001109C
+       "\x10\xa5\x10\xba\x00\x01\x10\xab" + // 0x10A510BA: 0x000110AB
+       "\x111\x11'\x00\x01\x11." + // 0x11311127: 0x0001112E
+       "\x112\x11'\x00\x01\x11/" + // 0x11321127: 0x0001112F
+       "\x13G\x13>\x00\x01\x13K" + // 0x1347133E: 0x0001134B
+       "\x13G\x13W\x00\x01\x13L" + // 0x13471357: 0x0001134C
+       "\x14\xb9\x14\xba\x00\x01\x14\xbb" + // 0x14B914BA: 0x000114BB
+       "\x14\xb9\x14\xb0\x00\x01\x14\xbc" + // 0x14B914B0: 0x000114BC
+       "\x14\xb9\x14\xbd\x00\x01\x14\xbe" + // 0x14B914BD: 0x000114BE
+       "\x15\xb8\x15\xaf\x00\x01\x15\xba" + // 0x15B815AF: 0x000115BA
+       "\x15\xb9\x15\xaf\x00\x01\x15\xbb" + // 0x15B915AF: 0x000115BB
+       ""
+       // Total size of tables: 53KB (54514 bytes)
diff --git a/vendor/golang.org/x/text/unicode/norm/tables9.0.0.go b/vendor/golang.org/x/text/unicode/norm/tables9.0.0.go
new file mode 100644 (file)
index 0000000..9429069
--- /dev/null
@@ -0,0 +1,7637 @@
+// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT.
+
+// +build !go1.10
+
+package norm
+
+import "sync"
+
+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       = 0x49AE
+       firstCCCZeroExcept    = 0x4A78
+       firstStarterWithNLead = 0x4A9F
+       lastDecomp            = 0x4AA1
+       maxDecomp             = 0x8000
+)
+
+// decomps: 19105 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, 0x44, 0x20, 0xE3, 0x82,
+       0x99, 0x0D, 0x44, 0x20, 0xE3, 0x82, 0x9A, 0x0D,
+       0x44, 0xC2, 0xA8, 0xCC, 0x81, 0xCA, 0x44, 0xCE,
+       0x91, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0x95, 0xCC,
+       0x81, 0xC9, 0x44, 0xCE, 0x97, 0xCC, 0x81, 0xC9,
+       // Bytes 4300 - 433f
+       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, 0x44, 0xCE, 0xB7, 0xCC, 0x81, 0xC9,
+       0x44, 0xCE, 0xB9, 0xCC, 0x81, 0xC9, 0x44, 0xCE,
+       0xBF, 0xCC, 0x81, 0xC9, 0x44, 0xCF, 0x85, 0xCC,
+       // Bytes 4340 - 437f
+       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, 0xBC, 0x41, 0x44, 0xD7, 0x93, 0xD6,
+       0xBC, 0x41, 0x44, 0xD7, 0x94, 0xD6, 0xBC, 0x41,
+       0x44, 0xD7, 0x95, 0xD6, 0xB9, 0x39, 0x44, 0xD7,
+       // Bytes 4380 - 43bf
+       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, 0x9B, 0xD6, 0xBF, 0x49, 0x44, 0xD7,
+       0x9C, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x9E, 0xD6,
+       0xBC, 0x41, 0x44, 0xD7, 0xA0, 0xD6, 0xBC, 0x41,
+       // Bytes 43c0 - 43ff
+       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, 0x44, 0xD7, 0xA9, 0xD6, 0xBC, 0x41,
+       0x44, 0xD7, 0xA9, 0xD7, 0x81, 0x4D, 0x44, 0xD7,
+       0xA9, 0xD7, 0x82, 0x51, 0x44, 0xD7, 0xAA, 0xD6,
+       // Bytes 4400 - 443f
+       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, 0xB0, 0x79, 0x44, 0xD9, 0x80, 0xD9,
+       0x8B, 0x59, 0x44, 0xD9, 0x80, 0xD9, 0x8E, 0x65,
+       0x44, 0xD9, 0x80, 0xD9, 0x8F, 0x69, 0x44, 0xD9,
+       // Bytes 4440 - 447f
+       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, 0x92, 0xD9, 0x94, 0xC9, 0x44, 0xDB,
+       0x95, 0xD9, 0x94, 0xC9, 0x45, 0x20, 0xCC, 0x88,
+       0xCC, 0x80, 0xCA, 0x45, 0x20, 0xCC, 0x88, 0xCC,
+       // Bytes 4480 - 44bf
+       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, 0x81, 0xCA, 0x45, 0x20, 0xCC, 0x94,
+       0xCD, 0x82, 0xCA, 0x45, 0x20, 0xD9, 0x8C, 0xD9,
+       0x91, 0x72, 0x45, 0x20, 0xD9, 0x8D, 0xD9, 0x91,
+       // Bytes 44c0 - 44ff
+       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, 0x81, 0xCA, 0x46, 0xCF, 0x85, 0xCC,
+       0x88, 0xCC, 0x81, 0xCA, 0x46, 0xD7, 0xA9, 0xD6,
+       0xBC, 0xD7, 0x81, 0x4E, 0x46, 0xD7, 0xA9, 0xD6,
+       // Bytes 4500 - 453f
+       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, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x97,
+       0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x9C,
+       0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xA1,
+       // Bytes 4540 - 457f
+       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, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xAF,
+       0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x96,
+       0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x97,
+       // Bytes 4580 - 45bf
+       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, 0xBC, 0x09, 0x46, 0xE0, 0xAC, 0xA2,
+       0xE0, 0xAC, 0xBC, 0x09, 0x46, 0xE0, 0xBE, 0xB2,
+       0xE0, 0xBE, 0x80, 0x9D, 0x46, 0xE0, 0xBE, 0xB3,
+       // Bytes 45c0 - 45ff
+       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, 0x48, 0xF0, 0x9D, 0x86, 0xBA, 0xF0,
+       0x9D, 0x85, 0xA5, 0xAD, 0x49, 0xE0, 0xBE, 0xB2,
+       0xE0, 0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0x9E, 0x49,
+       // Bytes 4600 - 463f
+       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, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0,
+       0x9D, 0x85, 0xB0, 0xAE, 0x4C, 0xF0, 0x9D, 0x85,
+       0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85,
+       // Bytes 4640 - 467f
+       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, 0xAF, 0xAE, 0x4C, 0xF0, 0x9D, 0x86,
+       0xBA, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85,
+       0xAE, 0xAE, 0x4C, 0xF0, 0x9D, 0x86, 0xBA, 0xF0,
+       // Bytes 4680 - 46bf
+       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, 0xA5, 0x83, 0x45, 0xCC, 0x82, 0xC9,
+       0x83, 0x45, 0xCC, 0x84, 0xC9, 0x83, 0x45, 0xCC,
+       0xA3, 0xB5, 0x83, 0x45, 0xCC, 0xA7, 0xA5, 0x83,
+       // Bytes 46c0 - 46ff
+       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, 0xA3, 0xB5, 0x83, 0x4F, 0xCC, 0xA8,
+       0xA5, 0x83, 0x52, 0xCC, 0xA3, 0xB5, 0x83, 0x53,
+       0xCC, 0x81, 0xC9, 0x83, 0x53, 0xCC, 0x8C, 0xC9,
+       // Bytes 4700 - 473f
+       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, 0xCC, 0x88, 0xC9, 0x83, 0x61, 0xCC,
+       0x8A, 0xC9, 0x83, 0x61, 0xCC, 0xA3, 0xB5, 0x83,
+       0x63, 0xCC, 0xA7, 0xA5, 0x83, 0x65, 0xCC, 0x82,
+       // Bytes 4740 - 477f
+       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, 0x6F, 0xCC, 0x87, 0xC9, 0x83, 0x6F,
+       0xCC, 0x88, 0xC9, 0x83, 0x6F, 0xCC, 0x9B, 0xAD,
+       0x83, 0x6F, 0xCC, 0xA3, 0xB5, 0x83, 0x6F, 0xCC,
+       // Bytes 4780 - 47bf
+       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, 0x84, 0xCE, 0x91, 0xCC, 0x93, 0xC9,
+       0x84, 0xCE, 0x91, 0xCC, 0x94, 0xC9, 0x84, 0xCE,
+       0x95, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0x95, 0xCC,
+       // Bytes 47c0 - 47ff
+       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, 0x94, 0xC9, 0x84, 0xCE, 0xA9, 0xCC,
+       0x93, 0xC9, 0x84, 0xCE, 0xA9, 0xCC, 0x94, 0xC9,
+       0x84, 0xCE, 0xB1, 0xCC, 0x80, 0xC9, 0x84, 0xCE,
+       // Bytes 4800 - 483f
+       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, 0xB7, 0xCC, 0x81, 0xC9, 0x84, 0xCE,
+       0xB7, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB7, 0xCC,
+       0x94, 0xC9, 0x84, 0xCE, 0xB7, 0xCD, 0x82, 0xC9,
+       // Bytes 4840 - 487f
+       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, 0x84, 0xCF, 0x85, 0xCC, 0x94, 0xC9,
+       0x84, 0xCF, 0x89, 0xCC, 0x80, 0xC9, 0x84, 0xCF,
+       0x89, 0xCC, 0x81, 0xC9, 0x84, 0xCF, 0x89, 0xCC,
+       // Bytes 4880 - 48bf
+       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, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE,
+       0x91, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE,
+       0x91, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE,
+       // Bytes 48c0 - 48ff
+       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, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE,
+       0xA9, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE,
+       0xA9, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE,
+       // Bytes 4900 - 493f
+       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, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE,
+       0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE,
+       0xB1, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE,
+       // Bytes 4940 - 497f
+       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, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE,
+       0xB7, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE,
+       0xB7, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCF,
+       // Bytes 4980 - 49bf
+       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, 0x94, 0xCD, 0x82, 0xCA, 0x42, 0xCC,
+       0x80, 0xC9, 0x32, 0x42, 0xCC, 0x81, 0xC9, 0x32,
+       0x42, 0xCC, 0x93, 0xC9, 0x32, 0x43, 0xE1, 0x85,
+       // Bytes 49c0 - 49ff
+       0xA1, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA2, 0x01,
+       0x00, 0x43, 0xE1, 0x85, 0xA3, 0x01, 0x00, 0x43,
+       0xE1, 0x85, 0xA4, 0x01, 0x00, 0x43, 0xE1, 0x85,
+       0xA5, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA6, 0x01,
+       0x00, 0x43, 0xE1, 0x85, 0xA7, 0x01, 0x00, 0x43,
+       0xE1, 0x85, 0xA8, 0x01, 0x00, 0x43, 0xE1, 0x85,
+       0xA9, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAA, 0x01,
+       0x00, 0x43, 0xE1, 0x85, 0xAB, 0x01, 0x00, 0x43,
+       // Bytes 4a00 - 4a3f
+       0xE1, 0x85, 0xAC, 0x01, 0x00, 0x43, 0xE1, 0x85,
+       0xAD, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAE, 0x01,
+       0x00, 0x43, 0xE1, 0x85, 0xAF, 0x01, 0x00, 0x43,
+       0xE1, 0x85, 0xB0, 0x01, 0x00, 0x43, 0xE1, 0x85,
+       0xB1, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xB2, 0x01,
+       0x00, 0x43, 0xE1, 0x85, 0xB3, 0x01, 0x00, 0x43,
+       0xE1, 0x85, 0xB4, 0x01, 0x00, 0x43, 0xE1, 0x85,
+       0xB5, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xAA, 0x01,
+       // Bytes 4a40 - 4a7f
+       0x00, 0x43, 0xE1, 0x86, 0xAC, 0x01, 0x00, 0x43,
+       0xE1, 0x86, 0xAD, 0x01, 0x00, 0x43, 0xE1, 0x86,
+       0xB0, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB1, 0x01,
+       0x00, 0x43, 0xE1, 0x86, 0xB2, 0x01, 0x00, 0x43,
+       0xE1, 0x86, 0xB3, 0x01, 0x00, 0x43, 0xE1, 0x86,
+       0xB4, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB5, 0x01,
+       0x00, 0x44, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x32,
+       0x43, 0xE3, 0x82, 0x99, 0x0D, 0x03, 0x43, 0xE3,
+       // Bytes 4a80 - 4abf
+       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, 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: 51cc525b297fc970.
+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: 0x4688, 0xc3: 0x2f79, 0xc4: 0x4697, 0xc5: 0x469c,
+       0xc6: 0xa000, 0xc7: 0x46a6, 0xc8: 0x2fe2, 0xc9: 0x2fe7, 0xca: 0x46ab, 0xcb: 0x2ffb,
+       0xcc: 0x306e, 0xcd: 0x3073, 0xce: 0x3078, 0xcf: 0x46bf, 0xd1: 0x3104,
+       0xd2: 0x3127, 0xd3: 0x312c, 0xd4: 0x46c9, 0xd5: 0x46ce, 0xd6: 0x46dd,
+       0xd8: 0xa000, 0xd9: 0x31b3, 0xda: 0x31b8, 0xdb: 0x31bd, 0xdc: 0x470f, 0xdd: 0x3235,
+       0xe0: 0x327b, 0xe1: 0x3280, 0xe2: 0x4719, 0xe3: 0x3285,
+       0xe4: 0x4728, 0xe5: 0x472d, 0xe6: 0xa000, 0xe7: 0x4737, 0xe8: 0x32ee, 0xe9: 0x32f3,
+       0xea: 0x473c, 0xeb: 0x3307, 0xec: 0x337f, 0xed: 0x3384, 0xee: 0x3389, 0xef: 0x4750,
+       0xf1: 0x3415, 0xf2: 0x3438, 0xf3: 0x343d, 0xf4: 0x475a, 0xf5: 0x475f,
+       0xf6: 0x476e, 0xf8: 0xa000, 0xf9: 0x34c9, 0xfa: 0x34ce, 0xfb: 0x34d3,
+       0xfc: 0x47a0, 0xfd: 0x3550, 0xff: 0x3569,
+       // Block 0x4, offset 0x100
+       0x100: 0x2f7e, 0x101: 0x328a, 0x102: 0x468d, 0x103: 0x471e, 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: 0x46b0, 0x113: 0x4741, 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: 0x46d3, 0x14d: 0x4764, 0x14e: 0x3131, 0x14f: 0x3442, 0x150: 0x313b, 0x151: 0x344c,
+       0x154: 0x3159, 0x155: 0x346a, 0x156: 0x3172, 0x157: 0x3483,
+       0x158: 0x3163, 0x159: 0x3474, 0x15a: 0x46f6, 0x15b: 0x4787, 0x15c: 0x317c, 0x15d: 0x348d,
+       0x15e: 0x318b, 0x15f: 0x349c, 0x160: 0x46fb, 0x161: 0x478c, 0x162: 0x31a4, 0x163: 0x34ba,
+       0x164: 0x3195, 0x165: 0x34ab, 0x168: 0x4705, 0x169: 0x4796,
+       0x16a: 0x470a, 0x16b: 0x479b, 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: 0x46ec, 0x1ab: 0x477d, 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: 0x4692, 0x1e7: 0x4723, 0x1e8: 0x46ba, 0x1e9: 0x474b,
+       0x1ea: 0x395f, 0x1eb: 0x3aee, 0x1ec: 0x393c, 0x1ed: 0x3acb, 0x1ee: 0x46d8, 0x1ef: 0x4769,
+       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: 0x49ae, 0x241: 0x49b3, 0x242: 0x9932, 0x243: 0x49b8, 0x244: 0x4a71, 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: 0x47fe, 0x2ad: 0x3697, 0x2ae: 0x4828, 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: 0x46c4, 0x437: 0x4755, 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: 0x46f1, 0x45b: 0x4782, 0x45c: 0x3997, 0x45d: 0x3b26,
+       0x45e: 0x3177, 0x45f: 0x3488, 0x460: 0x3181, 0x461: 0x3492, 0x462: 0x4700, 0x463: 0x4791,
+       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: 0x46a1, 0x4a1: 0x4732, 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: 0x46b5, 0x4b9: 0x4746, 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: 0x46e7, 0x4cd: 0x4778, 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: 0x4804, 0x501: 0x480a, 0x502: 0x491e, 0x503: 0x4936, 0x504: 0x4926, 0x505: 0x493e,
+       0x506: 0x492e, 0x507: 0x4946, 0x508: 0x47aa, 0x509: 0x47b0, 0x50a: 0x488e, 0x50b: 0x48a6,
+       0x50c: 0x4896, 0x50d: 0x48ae, 0x50e: 0x489e, 0x50f: 0x48b6, 0x510: 0x4816, 0x511: 0x481c,
+       0x512: 0x3db8, 0x513: 0x3dc8, 0x514: 0x3dc0, 0x515: 0x3dd0,
+       0x518: 0x47b6, 0x519: 0x47bc, 0x51a: 0x3ce8, 0x51b: 0x3cf8, 0x51c: 0x3cf0, 0x51d: 0x3d00,
+       0x520: 0x482e, 0x521: 0x4834, 0x522: 0x494e, 0x523: 0x4966,
+       0x524: 0x4956, 0x525: 0x496e, 0x526: 0x495e, 0x527: 0x4976, 0x528: 0x47c2, 0x529: 0x47c8,
+       0x52a: 0x48be, 0x52b: 0x48d6, 0x52c: 0x48c6, 0x52d: 0x48de, 0x52e: 0x48ce, 0x52f: 0x48e6,
+       0x530: 0x4846, 0x531: 0x484c, 0x532: 0x3e18, 0x533: 0x3e30, 0x534: 0x3e20, 0x535: 0x3e38,
+       0x536: 0x3e28, 0x537: 0x3e40, 0x538: 0x47ce, 0x539: 0x47d4, 0x53a: 0x3d18, 0x53b: 0x3d30,
+       0x53c: 0x3d20, 0x53d: 0x3d38, 0x53e: 0x3d28, 0x53f: 0x3d40,
+       // Block 0x15, offset 0x540
+       0x540: 0x4852, 0x541: 0x4858, 0x542: 0x3e48, 0x543: 0x3e58, 0x544: 0x3e50, 0x545: 0x3e60,
+       0x548: 0x47da, 0x549: 0x47e0, 0x54a: 0x3d48, 0x54b: 0x3d58,
+       0x54c: 0x3d50, 0x54d: 0x3d60, 0x550: 0x4864, 0x551: 0x486a,
+       0x552: 0x3e80, 0x553: 0x3e98, 0x554: 0x3e88, 0x555: 0x3ea0, 0x556: 0x3e90, 0x557: 0x3ea8,
+       0x559: 0x47e6, 0x55b: 0x3d68, 0x55d: 0x3d70,
+       0x55f: 0x3d78, 0x560: 0x487c, 0x561: 0x4882, 0x562: 0x497e, 0x563: 0x4996,
+       0x564: 0x4986, 0x565: 0x499e, 0x566: 0x498e, 0x567: 0x49a6, 0x568: 0x47ec, 0x569: 0x47f2,
+       0x56a: 0x48ee, 0x56b: 0x4906, 0x56c: 0x48f6, 0x56d: 0x490e, 0x56e: 0x48fe, 0x56f: 0x4916,
+       0x570: 0x47f8, 0x571: 0x431e, 0x572: 0x3691, 0x573: 0x4324, 0x574: 0x4822, 0x575: 0x432a,
+       0x576: 0x36a3, 0x577: 0x4330, 0x578: 0x36c1, 0x579: 0x4336, 0x57a: 0x36d9, 0x57b: 0x433c,
+       0x57c: 0x4870, 0x57d: 0x4342,
+       // 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: 0x4810, 0x5b7: 0x3db0, 0x5b8: 0x35f5, 0x5b9: 0x35ef, 0x5ba: 0x35e3, 0x5bb: 0x42ee,
+       0x5bc: 0x35fb, 0x5bd: 0x8100, 0x5be: 0x01d3, 0x5bf: 0xa100,
+       // Block 0x17, offset 0x5c0
+       0x5c0: 0x8100, 0x5c1: 0x35a7, 0x5c2: 0x3dd8, 0x5c3: 0x369d, 0x5c4: 0x3de0,
+       0x5c6: 0x483a, 0x5c7: 0x3df8, 0x5c8: 0x3601, 0x5c9: 0x42f4, 0x5ca: 0x360d, 0x5cb: 0x42fa,
+       0x5cc: 0x3619, 0x5cd: 0x3b8f, 0x5ce: 0x3b96, 0x5cf: 0x3b9d, 0x5d0: 0x36b5, 0x5d1: 0x36af,
+       0x5d2: 0x3e00, 0x5d3: 0x44e4, 0x5d6: 0x36bb, 0x5d7: 0x3e10,
+       0x5d8: 0x3631, 0x5d9: 0x362b, 0x5da: 0x361f, 0x5db: 0x4300, 0x5dd: 0x3ba4,
+       0x5de: 0x3bab, 0x5df: 0x3bb2, 0x5e0: 0x36eb, 0x5e1: 0x36e5, 0x5e2: 0x3e68, 0x5e3: 0x44ec,
+       0x5e4: 0x36cd, 0x5e5: 0x36d3, 0x5e6: 0x36f1, 0x5e7: 0x3e78, 0x5e8: 0x3661, 0x5e9: 0x365b,
+       0x5ea: 0x364f, 0x5eb: 0x430c, 0x5ec: 0x3649, 0x5ed: 0x359b, 0x5ee: 0x42e8, 0x5ef: 0x0081,
+       0x5f2: 0x3eb0, 0x5f3: 0x36f7, 0x5f4: 0x3eb8,
+       0x5f6: 0x4888, 0x5f7: 0x3ed0, 0x5f8: 0x363d, 0x5f9: 0x4306, 0x5fa: 0x366d, 0x5fb: 0x4318,
+       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: 0x46e2, lo: 0xa0, hi: 0xa1},
+       {value: 0x4714, 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: 0x4840, lo: 0x8a, hi: 0x8a},
+       {value: 0x485e, lo: 0x8b, hi: 0x8b},
+       {value: 0x36c7, lo: 0x8c, hi: 0x8c},
+       {value: 0x36df, lo: 0x8d, hi: 0x8d},
+       {value: 0x4876, 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: 0x451c, 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: 0x455c, lo: 0x9c, hi: 0x9d},
+       {value: 0x456c, lo: 0x9f, hi: 0x9f},
+       // Block 0x14, offset 0x93
+       {value: 0x0000, lo: 0x03},
+       {value: 0x4594, lo: 0xb3, hi: 0xb3},
+       {value: 0x459c, 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: 0x4574, lo: 0x99, hi: 0x9b},
+       {value: 0x458c, 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: 0x45a4, lo: 0x9c, hi: 0x9c},
+       {value: 0x45ac, 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: 0x4a84, lo: 0xb3, hi: 0xb3},
+       {value: 0x8128, lo: 0xb4, hi: 0xb4},
+       {value: 0x4a8d, lo: 0xb5, hi: 0xb5},
+       {value: 0x45b4, lo: 0xb6, hi: 0xb6},
+       {value: 0x8200, lo: 0xb7, hi: 0xb7},
+       {value: 0x45bc, 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: 0x4a96, 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: 0x44dd, 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: 0x4a9f, lo: 0xb3, hi: 0xb3},
+       {value: 0x4a9f, lo: 0xb5, hi: 0xb6},
+       {value: 0x4a9f, lo: 0xba, hi: 0xbf},
+       // Block 0x4b, offset 0x19b
+       {value: 0x0000, lo: 0x01},
+       {value: 0x4a9f, 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: 0x4390, lo: 0x9d, hi: 0x9d},
+       {value: 0x8115, lo: 0x9e, hi: 0x9e},
+       {value: 0x4402, lo: 0x9f, hi: 0x9f},
+       {value: 0x43f0, lo: 0xaa, hi: 0xab},
+       {value: 0x44f4, lo: 0xac, hi: 0xac},
+       {value: 0x44fc, lo: 0xad, hi: 0xad},
+       {value: 0x4348, lo: 0xae, hi: 0xb1},
+       {value: 0x4366, lo: 0xb2, hi: 0xb4},
+       {value: 0x437e, lo: 0xb5, hi: 0xb6},
+       {value: 0x438a, lo: 0xb8, hi: 0xb8},
+       {value: 0x4396, lo: 0xb9, hi: 0xbb},
+       {value: 0x43ae, lo: 0xbc, hi: 0xbc},
+       {value: 0x43b4, lo: 0xbe, hi: 0xbe},
+       // Block 0x64, offset 0x209
+       {value: 0x0006, lo: 0x08},
+       {value: 0x43ba, lo: 0x80, hi: 0x81},
+       {value: 0x43c6, lo: 0x83, hi: 0x84},
+       {value: 0x43d8, lo: 0x86, hi: 0x89},
+       {value: 0x43fc, lo: 0x8a, hi: 0x8a},
+       {value: 0x4378, lo: 0x8b, hi: 0x8b},
+       {value: 0x4360, lo: 0x8c, hi: 0x8c},
+       {value: 0x43a8, lo: 0x8d, hi: 0x8d},
+       {value: 0x43d2, 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: 0x4a9f, lo: 0x9e, hi: 0x9f},
+       {value: 0x4a9f, lo: 0xa3, hi: 0xa3},
+       {value: 0x4a9f, lo: 0xa5, hi: 0xa6},
+       {value: 0x4a9f, lo: 0xaa, hi: 0xaf},
+       // Block 0x6f, offset 0x231
+       {value: 0x0000, lo: 0x05},
+       {value: 0x4a9f, lo: 0x82, hi: 0x87},
+       {value: 0x4a9f, lo: 0x8a, hi: 0x8f},
+       {value: 0x4a9f, lo: 0x92, hi: 0x97},
+       {value: 0x4a9f, 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: 0x45cc, lo: 0x9e, hi: 0x9e},
+       {value: 0x45d6, lo: 0x9f, hi: 0x9f},
+       {value: 0x460a, lo: 0xa0, hi: 0xa0},
+       {value: 0x4618, lo: 0xa1, hi: 0xa1},
+       {value: 0x4626, lo: 0xa2, hi: 0xa2},
+       {value: 0x4634, lo: 0xa3, hi: 0xa3},
+       {value: 0x4642, 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: 0x45e0, lo: 0xbb, hi: 0xbb},
+       {value: 0x45ea, lo: 0xbc, hi: 0xbc},
+       {value: 0x4650, lo: 0xbd, hi: 0xbd},
+       {value: 0x466c, lo: 0xbe, hi: 0xbe},
+       {value: 0x465e, lo: 0xbf, hi: 0xbf},
+       // Block 0x88, offset 0x29f
+       {value: 0x0000, lo: 0x01},
+       {value: 0x467a, 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: c3ed54ee046f3c46.
+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: 0x4688, 0xc3: 0x2f79, 0xc4: 0x4697, 0xc5: 0x469c,
+       0xc6: 0xa000, 0xc7: 0x46a6, 0xc8: 0x2fe2, 0xc9: 0x2fe7, 0xca: 0x46ab, 0xcb: 0x2ffb,
+       0xcc: 0x306e, 0xcd: 0x3073, 0xce: 0x3078, 0xcf: 0x46bf, 0xd1: 0x3104,
+       0xd2: 0x3127, 0xd3: 0x312c, 0xd4: 0x46c9, 0xd5: 0x46ce, 0xd6: 0x46dd,
+       0xd8: 0xa000, 0xd9: 0x31b3, 0xda: 0x31b8, 0xdb: 0x31bd, 0xdc: 0x470f, 0xdd: 0x3235,
+       0xe0: 0x327b, 0xe1: 0x3280, 0xe2: 0x4719, 0xe3: 0x3285,
+       0xe4: 0x4728, 0xe5: 0x472d, 0xe6: 0xa000, 0xe7: 0x4737, 0xe8: 0x32ee, 0xe9: 0x32f3,
+       0xea: 0x473c, 0xeb: 0x3307, 0xec: 0x337f, 0xed: 0x3384, 0xee: 0x3389, 0xef: 0x4750,
+       0xf1: 0x3415, 0xf2: 0x3438, 0xf3: 0x343d, 0xf4: 0x475a, 0xf5: 0x475f,
+       0xf6: 0x476e, 0xf8: 0xa000, 0xf9: 0x34c9, 0xfa: 0x34ce, 0xfb: 0x34d3,
+       0xfc: 0x47a0, 0xfd: 0x3550, 0xff: 0x3569,
+       // Block 0x4, offset 0x100
+       0x100: 0x2f7e, 0x101: 0x328a, 0x102: 0x468d, 0x103: 0x471e, 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: 0x46b0, 0x113: 0x4741, 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: 0x46d3, 0x14d: 0x4764, 0x14e: 0x3131, 0x14f: 0x3442, 0x150: 0x313b, 0x151: 0x344c,
+       0x154: 0x3159, 0x155: 0x346a, 0x156: 0x3172, 0x157: 0x3483,
+       0x158: 0x3163, 0x159: 0x3474, 0x15a: 0x46f6, 0x15b: 0x4787, 0x15c: 0x317c, 0x15d: 0x348d,
+       0x15e: 0x318b, 0x15f: 0x349c, 0x160: 0x46fb, 0x161: 0x478c, 0x162: 0x31a4, 0x163: 0x34ba,
+       0x164: 0x3195, 0x165: 0x34ab, 0x168: 0x4705, 0x169: 0x4796,
+       0x16a: 0x470a, 0x16b: 0x479b, 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: 0x46ec, 0x1ab: 0x477d, 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: 0x4692, 0x1e7: 0x4723, 0x1e8: 0x46ba, 0x1e9: 0x474b,
+       0x1ea: 0x395f, 0x1eb: 0x3aee, 0x1ec: 0x393c, 0x1ed: 0x3acb, 0x1ee: 0x46d8, 0x1ef: 0x4769,
+       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: 0x49ae, 0x241: 0x49b3, 0x242: 0x9932, 0x243: 0x49b8, 0x244: 0x4a71, 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: 0x447b,
+       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: 0x47fe, 0x2ad: 0x3697, 0x2ae: 0x4828, 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: 0x4840, 0x2cb: 0x485e,
+       0x2cc: 0x36c7, 0x2cd: 0x36df, 0x2ce: 0x4876, 0x2d0: 0x01be, 0x2d1: 0x01d0,
+       0x2d2: 0x01ac, 0x2d3: 0x430c, 0x2d4: 0x4312, 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: 0x46c4, 0x4f7: 0x4755, 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: 0x46f1, 0x51b: 0x4782, 0x51c: 0x3997, 0x51d: 0x3b26,
+       0x51e: 0x3177, 0x51f: 0x3488, 0x520: 0x3181, 0x521: 0x3492, 0x522: 0x4700, 0x523: 0x4791,
+       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: 0x46a1, 0x561: 0x4732, 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: 0x46b5, 0x579: 0x4746, 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: 0x46e7, 0x58d: 0x4778, 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: 0x4804, 0x5c1: 0x480a, 0x5c2: 0x491e, 0x5c3: 0x4936, 0x5c4: 0x4926, 0x5c5: 0x493e,
+       0x5c6: 0x492e, 0x5c7: 0x4946, 0x5c8: 0x47aa, 0x5c9: 0x47b0, 0x5ca: 0x488e, 0x5cb: 0x48a6,
+       0x5cc: 0x4896, 0x5cd: 0x48ae, 0x5ce: 0x489e, 0x5cf: 0x48b6, 0x5d0: 0x4816, 0x5d1: 0x481c,
+       0x5d2: 0x3db8, 0x5d3: 0x3dc8, 0x5d4: 0x3dc0, 0x5d5: 0x3dd0,
+       0x5d8: 0x47b6, 0x5d9: 0x47bc, 0x5da: 0x3ce8, 0x5db: 0x3cf8, 0x5dc: 0x3cf0, 0x5dd: 0x3d00,
+       0x5e0: 0x482e, 0x5e1: 0x4834, 0x5e2: 0x494e, 0x5e3: 0x4966,
+       0x5e4: 0x4956, 0x5e5: 0x496e, 0x5e6: 0x495e, 0x5e7: 0x4976, 0x5e8: 0x47c2, 0x5e9: 0x47c8,
+       0x5ea: 0x48be, 0x5eb: 0x48d6, 0x5ec: 0x48c6, 0x5ed: 0x48de, 0x5ee: 0x48ce, 0x5ef: 0x48e6,
+       0x5f0: 0x4846, 0x5f1: 0x484c, 0x5f2: 0x3e18, 0x5f3: 0x3e30, 0x5f4: 0x3e20, 0x5f5: 0x3e38,
+       0x5f6: 0x3e28, 0x5f7: 0x3e40, 0x5f8: 0x47ce, 0x5f9: 0x47d4, 0x5fa: 0x3d18, 0x5fb: 0x3d30,
+       0x5fc: 0x3d20, 0x5fd: 0x3d38, 0x5fe: 0x3d28, 0x5ff: 0x3d40,
+       // Block 0x18, offset 0x600
+       0x600: 0x4852, 0x601: 0x4858, 0x602: 0x3e48, 0x603: 0x3e58, 0x604: 0x3e50, 0x605: 0x3e60,
+       0x608: 0x47da, 0x609: 0x47e0, 0x60a: 0x3d48, 0x60b: 0x3d58,
+       0x60c: 0x3d50, 0x60d: 0x3d60, 0x610: 0x4864, 0x611: 0x486a,
+       0x612: 0x3e80, 0x613: 0x3e98, 0x614: 0x3e88, 0x615: 0x3ea0, 0x616: 0x3e90, 0x617: 0x3ea8,
+       0x619: 0x47e6, 0x61b: 0x3d68, 0x61d: 0x3d70,
+       0x61f: 0x3d78, 0x620: 0x487c, 0x621: 0x4882, 0x622: 0x497e, 0x623: 0x4996,
+       0x624: 0x4986, 0x625: 0x499e, 0x626: 0x498e, 0x627: 0x49a6, 0x628: 0x47ec, 0x629: 0x47f2,
+       0x62a: 0x48ee, 0x62b: 0x4906, 0x62c: 0x48f6, 0x62d: 0x490e, 0x62e: 0x48fe, 0x62f: 0x4916,
+       0x630: 0x47f8, 0x631: 0x431e, 0x632: 0x3691, 0x633: 0x4324, 0x634: 0x4822, 0x635: 0x432a,
+       0x636: 0x36a3, 0x637: 0x4330, 0x638: 0x36c1, 0x639: 0x4336, 0x63a: 0x36d9, 0x63b: 0x433c,
+       0x63c: 0x4870, 0x63d: 0x4342,
+       // 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: 0x4810, 0x677: 0x3db0, 0x678: 0x35f5, 0x679: 0x35ef, 0x67a: 0x35e3, 0x67b: 0x42ee,
+       0x67c: 0x35fb, 0x67d: 0x4287, 0x67e: 0x01d3, 0x67f: 0x4287,
+       // Block 0x1a, offset 0x680
+       0x680: 0x42a0, 0x681: 0x4482, 0x682: 0x3dd8, 0x683: 0x369d, 0x684: 0x3de0,
+       0x686: 0x483a, 0x687: 0x3df8, 0x688: 0x3601, 0x689: 0x42f4, 0x68a: 0x360d, 0x68b: 0x42fa,
+       0x68c: 0x3619, 0x68d: 0x4489, 0x68e: 0x4490, 0x68f: 0x4497, 0x690: 0x36b5, 0x691: 0x36af,
+       0x692: 0x3e00, 0x693: 0x44e4, 0x696: 0x36bb, 0x697: 0x3e10,
+       0x698: 0x3631, 0x699: 0x362b, 0x69a: 0x361f, 0x69b: 0x4300, 0x69d: 0x449e,
+       0x69e: 0x44a5, 0x69f: 0x44ac, 0x6a0: 0x36eb, 0x6a1: 0x36e5, 0x6a2: 0x3e68, 0x6a3: 0x44ec,
+       0x6a4: 0x36cd, 0x6a5: 0x36d3, 0x6a6: 0x36f1, 0x6a7: 0x3e78, 0x6a8: 0x3661, 0x6a9: 0x365b,
+       0x6aa: 0x364f, 0x6ab: 0x430c, 0x6ac: 0x3649, 0x6ad: 0x4474, 0x6ae: 0x447b, 0x6af: 0x0081,
+       0x6b2: 0x3eb0, 0x6b3: 0x36f7, 0x6b4: 0x3eb8,
+       0x6b6: 0x4888, 0x6b7: 0x3ed0, 0x6b8: 0x363d, 0x6b9: 0x4306, 0x6ba: 0x366d, 0x6bb: 0x4318,
+       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: 0x42dc, 0x95c: 0x42e2, 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: 0x49bd, 0x9d0: 0x49c3, 0x9d1: 0x49c9,
+       0x9d2: 0x49cf, 0x9d3: 0x49d5, 0x9d4: 0x49db, 0x9d5: 0x49e1, 0x9d6: 0x49e7, 0x9d7: 0x49ed,
+       0x9d8: 0x49f3, 0x9d9: 0x49f9, 0x9da: 0x49ff, 0x9db: 0x4a05, 0x9dc: 0x4a0b, 0x9dd: 0x4a11,
+       0x9de: 0x4a17, 0x9df: 0x4a1d, 0x9e0: 0x4a23, 0x9e1: 0x4a29, 0x9e2: 0x4a2f, 0x9e3: 0x4a35,
+       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: 0x4390,
+       0xe5e: 0x8115, 0xe5f: 0x4402, 0xe60: 0x022d, 0xe61: 0x0215, 0xe62: 0x021e, 0xe63: 0x0221,
+       0xe64: 0x0224, 0xe65: 0x0227, 0xe66: 0x022a, 0xe67: 0x0230, 0xe68: 0x0233, 0xe69: 0x0017,
+       0xe6a: 0x43f0, 0xe6b: 0x43f6, 0xe6c: 0x44f4, 0xe6d: 0x44fc, 0xe6e: 0x4348, 0xe6f: 0x434e,
+       0xe70: 0x4354, 0xe71: 0x435a, 0xe72: 0x4366, 0xe73: 0x436c, 0xe74: 0x4372, 0xe75: 0x437e,
+       0xe76: 0x4384, 0xe78: 0x438a, 0xe79: 0x4396, 0xe7a: 0x439c, 0xe7b: 0x43a2,
+       0xe7c: 0x43ae, 0xe7e: 0x43b4,
+       // Block 0x3a, offset 0xe80
+       0xe80: 0x43ba, 0xe81: 0x43c0, 0xe83: 0x43c6, 0xe84: 0x43cc,
+       0xe86: 0x43d8, 0xe87: 0x43de, 0xe88: 0x43e4, 0xe89: 0x43ea, 0xe8a: 0x43fc, 0xe8b: 0x4378,
+       0xe8c: 0x4360, 0xe8d: 0x43a8, 0xe8e: 0x43d2, 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: 0x446e, 0xee5: 0x446e, 0xee6: 0x02ed, 0xee7: 0x02ed, 0xee8: 0x02ed, 0xee9: 0x02ed,
+       0xeea: 0x02ea, 0xeeb: 0x02ea, 0xeec: 0x02ea, 0xeed: 0x02ea, 0xeee: 0x0308, 0xeef: 0x0308,
+       0xef0: 0x4468, 0xef1: 0x4468,
+       // 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: 0x4420, 0xf9c: 0x4426, 0xf9d: 0x445c,
+       0xf9e: 0x44b3, 0xf9f: 0x44ba, 0xfa0: 0x44c1, 0xfa1: 0x44c8, 0xfa2: 0x44cf, 0xfa3: 0x44d6,
+       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: 0x445c, 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: 0x4450, 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: 0x4504, 0x1033: 0x450c, 0x1034: 0x4514, 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: 0x4408, 0x107d: 0x4408,
+       // 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: 0x442c, 0x11b2: 0x42af, 0x11b4: 0x42b4,
+       0x11b6: 0x42b9, 0x11b7: 0x4432, 0x11b8: 0x42be, 0x11b9: 0x4438, 0x11ba: 0x42c3, 0x11bb: 0x443e,
+       0x11bc: 0x42c8, 0x11bd: 0x4444, 0x11be: 0x42cd, 0x11bf: 0x444a,
+       // Block 0x47, offset 0x11c0
+       0x11c0: 0x0236, 0x11c1: 0x440e, 0x11c2: 0x440e, 0x11c3: 0x4414, 0x11c4: 0x4414, 0x11c5: 0x4456,
+       0x11c6: 0x4456, 0x11c7: 0x441a, 0x11c8: 0x441a, 0x11c9: 0x4462, 0x11ca: 0x4462, 0x11cb: 0x4462,
+       0x11cc: 0x4462, 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: 0x4a78, 0x129f: 0x4a7e, 0x12a0: 0x03c3, 0x12a1: 0x0313, 0x12a2: 0x0317, 0x12a3: 0x4a3b,
+       0x12a4: 0x031b, 0x12a5: 0x4a41, 0x12a6: 0x4a47, 0x12a7: 0x031f, 0x12a8: 0x0323, 0x12a9: 0x0327,
+       0x12aa: 0x4a4d, 0x12ab: 0x4a53, 0x12ac: 0x4a59, 0x12ad: 0x4a5f, 0x12ae: 0x4a65, 0x12af: 0x4a6b,
+       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: 0x49bd, 0x12c3: 0x49c3, 0x12c4: 0x49c9, 0x12c5: 0x49cf,
+       0x12c6: 0x49d5, 0x12c7: 0x49db, 0x12ca: 0x49e1, 0x12cb: 0x49e7,
+       0x12cc: 0x49ed, 0x12cd: 0x49f3, 0x12ce: 0x49f9, 0x12cf: 0x49ff,
+       0x12d2: 0x4a05, 0x12d3: 0x4a0b, 0x12d4: 0x4a11, 0x12d5: 0x4a17, 0x12d6: 0x4a1d, 0x12d7: 0x4a23,
+       0x12da: 0x4a29, 0x12db: 0x4a2f, 0x12dc: 0x4a35,
+       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: 0x45c4, 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: 0x46e2, lo: 0xa0, hi: 0xa1},
+       {value: 0x4714, 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: 0x451c, 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: 0x455c, lo: 0x9c, hi: 0x9d},
+       {value: 0x456c, lo: 0x9f, hi: 0x9f},
+       // Block 0x13, offset 0xa0
+       {value: 0x0000, lo: 0x03},
+       {value: 0x4594, lo: 0xb3, hi: 0xb3},
+       {value: 0x459c, 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: 0x4574, lo: 0x99, hi: 0x9b},
+       {value: 0x458c, 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: 0x45a4, lo: 0x9c, hi: 0x9c},
+       {value: 0x45ac, 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: 0x4a84, lo: 0xb3, hi: 0xb3},
+       {value: 0x8128, lo: 0xb4, hi: 0xb4},
+       {value: 0x4a8d, lo: 0xb5, hi: 0xb5},
+       {value: 0x45b4, lo: 0xb6, hi: 0xb6},
+       {value: 0x45f4, lo: 0xb7, hi: 0xb7},
+       {value: 0x45bc, lo: 0xb8, hi: 0xb8},
+       {value: 0x45ff, 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: 0x4a96, 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: 0x44dd, 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: 0x0006, lo: 0x09},
+       {value: 0x0313, lo: 0xb1, hi: 0xb1},
+       {value: 0x0317, lo: 0xb2, hi: 0xb2},
+       {value: 0x4a3b, lo: 0xb3, hi: 0xb3},
+       {value: 0x031b, lo: 0xb4, hi: 0xb4},
+       {value: 0x4a41, lo: 0xb5, hi: 0xb6},
+       {value: 0x031f, lo: 0xb7, hi: 0xb7},
+       {value: 0x0323, lo: 0xb8, hi: 0xb8},
+       {value: 0x0327, lo: 0xb9, hi: 0xb9},
+       {value: 0x4a4d, 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: 0x45cc, lo: 0x9e, hi: 0x9e},
+       {value: 0x45d6, lo: 0x9f, hi: 0x9f},
+       {value: 0x460a, lo: 0xa0, hi: 0xa0},
+       {value: 0x4618, lo: 0xa1, hi: 0xa1},
+       {value: 0x4626, lo: 0xa2, hi: 0xa2},
+       {value: 0x4634, lo: 0xa3, hi: 0xa3},
+       {value: 0x4642, 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: 0x45e0, lo: 0xbb, hi: 0xbb},
+       {value: 0x45ea, lo: 0xbc, hi: 0xbc},
+       {value: 0x4650, lo: 0xbd, hi: 0xbd},
+       {value: 0x466c, lo: 0xbe, hi: 0xbe},
+       {value: 0x465e, lo: 0xbf, hi: 0xbf},
+       // Block 0x85, offset 0x2d1
+       {value: 0x0000, lo: 0x01},
+       {value: 0x467a, 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
+var recompMapOnce sync.Once
+
+const recompMapPacked = "" +
+       "\x00A\x03\x00\x00\x00\x00\xc0" + // 0x00410300: 0x000000C0
+       "\x00A\x03\x01\x00\x00\x00\xc1" + // 0x00410301: 0x000000C1
+       "\x00A\x03\x02\x00\x00\x00\xc2" + // 0x00410302: 0x000000C2
+       "\x00A\x03\x03\x00\x00\x00\xc3" + // 0x00410303: 0x000000C3
+       "\x00A\x03\b\x00\x00\x00\xc4" + // 0x00410308: 0x000000C4
+       "\x00A\x03\n\x00\x00\x00\xc5" + // 0x0041030A: 0x000000C5
+       "\x00C\x03'\x00\x00\x00\xc7" + // 0x00430327: 0x000000C7
+       "\x00E\x03\x00\x00\x00\x00\xc8" + // 0x00450300: 0x000000C8
+       "\x00E\x03\x01\x00\x00\x00\xc9" + // 0x00450301: 0x000000C9
+       "\x00E\x03\x02\x00\x00\x00\xca" + // 0x00450302: 0x000000CA
+       "\x00E\x03\b\x00\x00\x00\xcb" + // 0x00450308: 0x000000CB
+       "\x00I\x03\x00\x00\x00\x00\xcc" + // 0x00490300: 0x000000CC
+       "\x00I\x03\x01\x00\x00\x00\xcd" + // 0x00490301: 0x000000CD
+       "\x00I\x03\x02\x00\x00\x00\xce" + // 0x00490302: 0x000000CE
+       "\x00I\x03\b\x00\x00\x00\xcf" + // 0x00490308: 0x000000CF
+       "\x00N\x03\x03\x00\x00\x00\xd1" + // 0x004E0303: 0x000000D1
+       "\x00O\x03\x00\x00\x00\x00\xd2" + // 0x004F0300: 0x000000D2
+       "\x00O\x03\x01\x00\x00\x00\xd3" + // 0x004F0301: 0x000000D3
+       "\x00O\x03\x02\x00\x00\x00\xd4" + // 0x004F0302: 0x000000D4
+       "\x00O\x03\x03\x00\x00\x00\xd5" + // 0x004F0303: 0x000000D5
+       "\x00O\x03\b\x00\x00\x00\xd6" + // 0x004F0308: 0x000000D6
+       "\x00U\x03\x00\x00\x00\x00\xd9" + // 0x00550300: 0x000000D9
+       "\x00U\x03\x01\x00\x00\x00\xda" + // 0x00550301: 0x000000DA
+       "\x00U\x03\x02\x00\x00\x00\xdb" + // 0x00550302: 0x000000DB
+       "\x00U\x03\b\x00\x00\x00\xdc" + // 0x00550308: 0x000000DC
+       "\x00Y\x03\x01\x00\x00\x00\xdd" + // 0x00590301: 0x000000DD
+       "\x00a\x03\x00\x00\x00\x00\xe0" + // 0x00610300: 0x000000E0
+       "\x00a\x03\x01\x00\x00\x00\xe1" + // 0x00610301: 0x000000E1
+       "\x00a\x03\x02\x00\x00\x00\xe2" + // 0x00610302: 0x000000E2
+       "\x00a\x03\x03\x00\x00\x00\xe3" + // 0x00610303: 0x000000E3
+       "\x00a\x03\b\x00\x00\x00\xe4" + // 0x00610308: 0x000000E4
+       "\x00a\x03\n\x00\x00\x00\xe5" + // 0x0061030A: 0x000000E5
+       "\x00c\x03'\x00\x00\x00\xe7" + // 0x00630327: 0x000000E7
+       "\x00e\x03\x00\x00\x00\x00\xe8" + // 0x00650300: 0x000000E8
+       "\x00e\x03\x01\x00\x00\x00\xe9" + // 0x00650301: 0x000000E9
+       "\x00e\x03\x02\x00\x00\x00\xea" + // 0x00650302: 0x000000EA
+       "\x00e\x03\b\x00\x00\x00\xeb" + // 0x00650308: 0x000000EB
+       "\x00i\x03\x00\x00\x00\x00\xec" + // 0x00690300: 0x000000EC
+       "\x00i\x03\x01\x00\x00\x00\xed" + // 0x00690301: 0x000000ED
+       "\x00i\x03\x02\x00\x00\x00\xee" + // 0x00690302: 0x000000EE
+       "\x00i\x03\b\x00\x00\x00\xef" + // 0x00690308: 0x000000EF
+       "\x00n\x03\x03\x00\x00\x00\xf1" + // 0x006E0303: 0x000000F1
+       "\x00o\x03\x00\x00\x00\x00\xf2" + // 0x006F0300: 0x000000F2
+       "\x00o\x03\x01\x00\x00\x00\xf3" + // 0x006F0301: 0x000000F3
+       "\x00o\x03\x02\x00\x00\x00\xf4" + // 0x006F0302: 0x000000F4
+       "\x00o\x03\x03\x00\x00\x00\xf5" + // 0x006F0303: 0x000000F5
+       "\x00o\x03\b\x00\x00\x00\xf6" + // 0x006F0308: 0x000000F6
+       "\x00u\x03\x00\x00\x00\x00\xf9" + // 0x00750300: 0x000000F9
+       "\x00u\x03\x01\x00\x00\x00\xfa" + // 0x00750301: 0x000000FA
+       "\x00u\x03\x02\x00\x00\x00\xfb" + // 0x00750302: 0x000000FB
+       "\x00u\x03\b\x00\x00\x00\xfc" + // 0x00750308: 0x000000FC
+       "\x00y\x03\x01\x00\x00\x00\xfd" + // 0x00790301: 0x000000FD
+       "\x00y\x03\b\x00\x00\x00\xff" + // 0x00790308: 0x000000FF
+       "\x00A\x03\x04\x00\x00\x01\x00" + // 0x00410304: 0x00000100
+       "\x00a\x03\x04\x00\x00\x01\x01" + // 0x00610304: 0x00000101
+       "\x00A\x03\x06\x00\x00\x01\x02" + // 0x00410306: 0x00000102
+       "\x00a\x03\x06\x00\x00\x01\x03" + // 0x00610306: 0x00000103
+       "\x00A\x03(\x00\x00\x01\x04" + // 0x00410328: 0x00000104
+       "\x00a\x03(\x00\x00\x01\x05" + // 0x00610328: 0x00000105
+       "\x00C\x03\x01\x00\x00\x01\x06" + // 0x00430301: 0x00000106
+       "\x00c\x03\x01\x00\x00\x01\a" + // 0x00630301: 0x00000107
+       "\x00C\x03\x02\x00\x00\x01\b" + // 0x00430302: 0x00000108
+       "\x00c\x03\x02\x00\x00\x01\t" + // 0x00630302: 0x00000109
+       "\x00C\x03\a\x00\x00\x01\n" + // 0x00430307: 0x0000010A
+       "\x00c\x03\a\x00\x00\x01\v" + // 0x00630307: 0x0000010B
+       "\x00C\x03\f\x00\x00\x01\f" + // 0x0043030C: 0x0000010C
+       "\x00c\x03\f\x00\x00\x01\r" + // 0x0063030C: 0x0000010D
+       "\x00D\x03\f\x00\x00\x01\x0e" + // 0x0044030C: 0x0000010E
+       "\x00d\x03\f\x00\x00\x01\x0f" + // 0x0064030C: 0x0000010F
+       "\x00E\x03\x04\x00\x00\x01\x12" + // 0x00450304: 0x00000112
+       "\x00e\x03\x04\x00\x00\x01\x13" + // 0x00650304: 0x00000113
+       "\x00E\x03\x06\x00\x00\x01\x14" + // 0x00450306: 0x00000114
+       "\x00e\x03\x06\x00\x00\x01\x15" + // 0x00650306: 0x00000115
+       "\x00E\x03\a\x00\x00\x01\x16" + // 0x00450307: 0x00000116
+       "\x00e\x03\a\x00\x00\x01\x17" + // 0x00650307: 0x00000117
+       "\x00E\x03(\x00\x00\x01\x18" + // 0x00450328: 0x00000118
+       "\x00e\x03(\x00\x00\x01\x19" + // 0x00650328: 0x00000119
+       "\x00E\x03\f\x00\x00\x01\x1a" + // 0x0045030C: 0x0000011A
+       "\x00e\x03\f\x00\x00\x01\x1b" + // 0x0065030C: 0x0000011B
+       "\x00G\x03\x02\x00\x00\x01\x1c" + // 0x00470302: 0x0000011C
+       "\x00g\x03\x02\x00\x00\x01\x1d" + // 0x00670302: 0x0000011D
+       "\x00G\x03\x06\x00\x00\x01\x1e" + // 0x00470306: 0x0000011E
+       "\x00g\x03\x06\x00\x00\x01\x1f" + // 0x00670306: 0x0000011F
+       "\x00G\x03\a\x00\x00\x01 " + // 0x00470307: 0x00000120
+       "\x00g\x03\a\x00\x00\x01!" + // 0x00670307: 0x00000121
+       "\x00G\x03'\x00\x00\x01\"" + // 0x00470327: 0x00000122
+       "\x00g\x03'\x00\x00\x01#" + // 0x00670327: 0x00000123
+       "\x00H\x03\x02\x00\x00\x01$" + // 0x00480302: 0x00000124
+       "\x00h\x03\x02\x00\x00\x01%" + // 0x00680302: 0x00000125
+       "\x00I\x03\x03\x00\x00\x01(" + // 0x00490303: 0x00000128
+       "\x00i\x03\x03\x00\x00\x01)" + // 0x00690303: 0x00000129
+       "\x00I\x03\x04\x00\x00\x01*" + // 0x00490304: 0x0000012A
+       "\x00i\x03\x04\x00\x00\x01+" + // 0x00690304: 0x0000012B
+       "\x00I\x03\x06\x00\x00\x01," + // 0x00490306: 0x0000012C
+       "\x00i\x03\x06\x00\x00\x01-" + // 0x00690306: 0x0000012D
+       "\x00I\x03(\x00\x00\x01." + // 0x00490328: 0x0000012E
+       "\x00i\x03(\x00\x00\x01/" + // 0x00690328: 0x0000012F
+       "\x00I\x03\a\x00\x00\x010" + // 0x00490307: 0x00000130
+       "\x00J\x03\x02\x00\x00\x014" + // 0x004A0302: 0x00000134
+       "\x00j\x03\x02\x00\x00\x015" + // 0x006A0302: 0x00000135
+       "\x00K\x03'\x00\x00\x016" + // 0x004B0327: 0x00000136
+       "\x00k\x03'\x00\x00\x017" + // 0x006B0327: 0x00000137
+       "\x00L\x03\x01\x00\x00\x019" + // 0x004C0301: 0x00000139
+       "\x00l\x03\x01\x00\x00\x01:" + // 0x006C0301: 0x0000013A
+       "\x00L\x03'\x00\x00\x01;" + // 0x004C0327: 0x0000013B
+       "\x00l\x03'\x00\x00\x01<" + // 0x006C0327: 0x0000013C
+       "\x00L\x03\f\x00\x00\x01=" + // 0x004C030C: 0x0000013D
+       "\x00l\x03\f\x00\x00\x01>" + // 0x006C030C: 0x0000013E
+       "\x00N\x03\x01\x00\x00\x01C" + // 0x004E0301: 0x00000143
+       "\x00n\x03\x01\x00\x00\x01D" + // 0x006E0301: 0x00000144
+       "\x00N\x03'\x00\x00\x01E" + // 0x004E0327: 0x00000145
+       "\x00n\x03'\x00\x00\x01F" + // 0x006E0327: 0x00000146
+       "\x00N\x03\f\x00\x00\x01G" + // 0x004E030C: 0x00000147
+       "\x00n\x03\f\x00\x00\x01H" + // 0x006E030C: 0x00000148
+       "\x00O\x03\x04\x00\x00\x01L" + // 0x004F0304: 0x0000014C
+       "\x00o\x03\x04\x00\x00\x01M" + // 0x006F0304: 0x0000014D
+       "\x00O\x03\x06\x00\x00\x01N" + // 0x004F0306: 0x0000014E
+       "\x00o\x03\x06\x00\x00\x01O" + // 0x006F0306: 0x0000014F
+       "\x00O\x03\v\x00\x00\x01P" + // 0x004F030B: 0x00000150
+       "\x00o\x03\v\x00\x00\x01Q" + // 0x006F030B: 0x00000151
+       "\x00R\x03\x01\x00\x00\x01T" + // 0x00520301: 0x00000154
+       "\x00r\x03\x01\x00\x00\x01U" + // 0x00720301: 0x00000155
+       "\x00R\x03'\x00\x00\x01V" + // 0x00520327: 0x00000156
+       "\x00r\x03'\x00\x00\x01W" + // 0x00720327: 0x00000157
+       "\x00R\x03\f\x00\x00\x01X" + // 0x0052030C: 0x00000158
+       "\x00r\x03\f\x00\x00\x01Y" + // 0x0072030C: 0x00000159
+       "\x00S\x03\x01\x00\x00\x01Z" + // 0x00530301: 0x0000015A
+       "\x00s\x03\x01\x00\x00\x01[" + // 0x00730301: 0x0000015B
+       "\x00S\x03\x02\x00\x00\x01\\" + // 0x00530302: 0x0000015C
+       "\x00s\x03\x02\x00\x00\x01]" + // 0x00730302: 0x0000015D
+       "\x00S\x03'\x00\x00\x01^" + // 0x00530327: 0x0000015E
+       "\x00s\x03'\x00\x00\x01_" + // 0x00730327: 0x0000015F
+       "\x00S\x03\f\x00\x00\x01`" + // 0x0053030C: 0x00000160
+       "\x00s\x03\f\x00\x00\x01a" + // 0x0073030C: 0x00000161
+       "\x00T\x03'\x00\x00\x01b" + // 0x00540327: 0x00000162
+       "\x00t\x03'\x00\x00\x01c" + // 0x00740327: 0x00000163
+       "\x00T\x03\f\x00\x00\x01d" + // 0x0054030C: 0x00000164
+       "\x00t\x03\f\x00\x00\x01e" + // 0x0074030C: 0x00000165
+       "\x00U\x03\x03\x00\x00\x01h" + // 0x00550303: 0x00000168
+       "\x00u\x03\x03\x00\x00\x01i" + // 0x00750303: 0x00000169
+       "\x00U\x03\x04\x00\x00\x01j" + // 0x00550304: 0x0000016A
+       "\x00u\x03\x04\x00\x00\x01k" + // 0x00750304: 0x0000016B
+       "\x00U\x03\x06\x00\x00\x01l" + // 0x00550306: 0x0000016C
+       "\x00u\x03\x06\x00\x00\x01m" + // 0x00750306: 0x0000016D
+       "\x00U\x03\n\x00\x00\x01n" + // 0x0055030A: 0x0000016E
+       "\x00u\x03\n\x00\x00\x01o" + // 0x0075030A: 0x0000016F
+       "\x00U\x03\v\x00\x00\x01p" + // 0x0055030B: 0x00000170
+       "\x00u\x03\v\x00\x00\x01q" + // 0x0075030B: 0x00000171
+       "\x00U\x03(\x00\x00\x01r" + // 0x00550328: 0x00000172
+       "\x00u\x03(\x00\x00\x01s" + // 0x00750328: 0x00000173
+       "\x00W\x03\x02\x00\x00\x01t" + // 0x00570302: 0x00000174
+       "\x00w\x03\x02\x00\x00\x01u" + // 0x00770302: 0x00000175
+       "\x00Y\x03\x02\x00\x00\x01v" + // 0x00590302: 0x00000176
+       "\x00y\x03\x02\x00\x00\x01w" + // 0x00790302: 0x00000177
+       "\x00Y\x03\b\x00\x00\x01x" + // 0x00590308: 0x00000178
+       "\x00Z\x03\x01\x00\x00\x01y" + // 0x005A0301: 0x00000179
+       "\x00z\x03\x01\x00\x00\x01z" + // 0x007A0301: 0x0000017A
+       "\x00Z\x03\a\x00\x00\x01{" + // 0x005A0307: 0x0000017B
+       "\x00z\x03\a\x00\x00\x01|" + // 0x007A0307: 0x0000017C
+       "\x00Z\x03\f\x00\x00\x01}" + // 0x005A030C: 0x0000017D
+       "\x00z\x03\f\x00\x00\x01~" + // 0x007A030C: 0x0000017E
+       "\x00O\x03\x1b\x00\x00\x01\xa0" + // 0x004F031B: 0x000001A0
+       "\x00o\x03\x1b\x00\x00\x01\xa1" + // 0x006F031B: 0x000001A1
+       "\x00U\x03\x1b\x00\x00\x01\xaf" + // 0x0055031B: 0x000001AF
+       "\x00u\x03\x1b\x00\x00\x01\xb0" + // 0x0075031B: 0x000001B0
+       "\x00A\x03\f\x00\x00\x01\xcd" + // 0x0041030C: 0x000001CD
+       "\x00a\x03\f\x00\x00\x01\xce" + // 0x0061030C: 0x000001CE
+       "\x00I\x03\f\x00\x00\x01\xcf" + // 0x0049030C: 0x000001CF
+       "\x00i\x03\f\x00\x00\x01\xd0" + // 0x0069030C: 0x000001D0
+       "\x00O\x03\f\x00\x00\x01\xd1" + // 0x004F030C: 0x000001D1
+       "\x00o\x03\f\x00\x00\x01\xd2" + // 0x006F030C: 0x000001D2
+       "\x00U\x03\f\x00\x00\x01\xd3" + // 0x0055030C: 0x000001D3
+       "\x00u\x03\f\x00\x00\x01\xd4" + // 0x0075030C: 0x000001D4
+       "\x00\xdc\x03\x04\x00\x00\x01\xd5" + // 0x00DC0304: 0x000001D5
+       "\x00\xfc\x03\x04\x00\x00\x01\xd6" + // 0x00FC0304: 0x000001D6
+       "\x00\xdc\x03\x01\x00\x00\x01\xd7" + // 0x00DC0301: 0x000001D7
+       "\x00\xfc\x03\x01\x00\x00\x01\xd8" + // 0x00FC0301: 0x000001D8
+       "\x00\xdc\x03\f\x00\x00\x01\xd9" + // 0x00DC030C: 0x000001D9
+       "\x00\xfc\x03\f\x00\x00\x01\xda" + // 0x00FC030C: 0x000001DA
+       "\x00\xdc\x03\x00\x00\x00\x01\xdb" + // 0x00DC0300: 0x000001DB
+       "\x00\xfc\x03\x00\x00\x00\x01\xdc" + // 0x00FC0300: 0x000001DC
+       "\x00\xc4\x03\x04\x00\x00\x01\xde" + // 0x00C40304: 0x000001DE
+       "\x00\xe4\x03\x04\x00\x00\x01\xdf" + // 0x00E40304: 0x000001DF
+       "\x02&\x03\x04\x00\x00\x01\xe0" + // 0x02260304: 0x000001E0
+       "\x02'\x03\x04\x00\x00\x01\xe1" + // 0x02270304: 0x000001E1
+       "\x00\xc6\x03\x04\x00\x00\x01\xe2" + // 0x00C60304: 0x000001E2
+       "\x00\xe6\x03\x04\x00\x00\x01\xe3" + // 0x00E60304: 0x000001E3
+       "\x00G\x03\f\x00\x00\x01\xe6" + // 0x0047030C: 0x000001E6
+       "\x00g\x03\f\x00\x00\x01\xe7" + // 0x0067030C: 0x000001E7
+       "\x00K\x03\f\x00\x00\x01\xe8" + // 0x004B030C: 0x000001E8
+       "\x00k\x03\f\x00\x00\x01\xe9" + // 0x006B030C: 0x000001E9
+       "\x00O\x03(\x00\x00\x01\xea" + // 0x004F0328: 0x000001EA
+       "\x00o\x03(\x00\x00\x01\xeb" + // 0x006F0328: 0x000001EB
+       "\x01\xea\x03\x04\x00\x00\x01\xec" + // 0x01EA0304: 0x000001EC
+       "\x01\xeb\x03\x04\x00\x00\x01\xed" + // 0x01EB0304: 0x000001ED
+       "\x01\xb7\x03\f\x00\x00\x01\xee" + // 0x01B7030C: 0x000001EE
+       "\x02\x92\x03\f\x00\x00\x01\xef" + // 0x0292030C: 0x000001EF
+       "\x00j\x03\f\x00\x00\x01\xf0" + // 0x006A030C: 0x000001F0
+       "\x00G\x03\x01\x00\x00\x01\xf4" + // 0x00470301: 0x000001F4
+       "\x00g\x03\x01\x00\x00\x01\xf5" + // 0x00670301: 0x000001F5
+       "\x00N\x03\x00\x00\x00\x01\xf8" + // 0x004E0300: 0x000001F8
+       "\x00n\x03\x00\x00\x00\x01\xf9" + // 0x006E0300: 0x000001F9
+       "\x00\xc5\x03\x01\x00\x00\x01\xfa" + // 0x00C50301: 0x000001FA
+       "\x00\xe5\x03\x01\x00\x00\x01\xfb" + // 0x00E50301: 0x000001FB
+       "\x00\xc6\x03\x01\x00\x00\x01\xfc" + // 0x00C60301: 0x000001FC
+       "\x00\xe6\x03\x01\x00\x00\x01\xfd" + // 0x00E60301: 0x000001FD
+       "\x00\xd8\x03\x01\x00\x00\x01\xfe" + // 0x00D80301: 0x000001FE
+       "\x00\xf8\x03\x01\x00\x00\x01\xff" + // 0x00F80301: 0x000001FF
+       "\x00A\x03\x0f\x00\x00\x02\x00" + // 0x0041030F: 0x00000200
+       "\x00a\x03\x0f\x00\x00\x02\x01" + // 0x0061030F: 0x00000201
+       "\x00A\x03\x11\x00\x00\x02\x02" + // 0x00410311: 0x00000202
+       "\x00a\x03\x11\x00\x00\x02\x03" + // 0x00610311: 0x00000203
+       "\x00E\x03\x0f\x00\x00\x02\x04" + // 0x0045030F: 0x00000204
+       "\x00e\x03\x0f\x00\x00\x02\x05" + // 0x0065030F: 0x00000205
+       "\x00E\x03\x11\x00\x00\x02\x06" + // 0x00450311: 0x00000206
+       "\x00e\x03\x11\x00\x00\x02\a" + // 0x00650311: 0x00000207
+       "\x00I\x03\x0f\x00\x00\x02\b" + // 0x0049030F: 0x00000208
+       "\x00i\x03\x0f\x00\x00\x02\t" + // 0x0069030F: 0x00000209
+       "\x00I\x03\x11\x00\x00\x02\n" + // 0x00490311: 0x0000020A
+       "\x00i\x03\x11\x00\x00\x02\v" + // 0x00690311: 0x0000020B
+       "\x00O\x03\x0f\x00\x00\x02\f" + // 0x004F030F: 0x0000020C
+       "\x00o\x03\x0f\x00\x00\x02\r" + // 0x006F030F: 0x0000020D
+       "\x00O\x03\x11\x00\x00\x02\x0e" + // 0x004F0311: 0x0000020E
+       "\x00o\x03\x11\x00\x00\x02\x0f" + // 0x006F0311: 0x0000020F
+       "\x00R\x03\x0f\x00\x00\x02\x10" + // 0x0052030F: 0x00000210
+       "\x00r\x03\x0f\x00\x00\x02\x11" + // 0x0072030F: 0x00000211
+       "\x00R\x03\x11\x00\x00\x02\x12" + // 0x00520311: 0x00000212
+       "\x00r\x03\x11\x00\x00\x02\x13" + // 0x00720311: 0x00000213
+       "\x00U\x03\x0f\x00\x00\x02\x14" + // 0x0055030F: 0x00000214
+       "\x00u\x03\x0f\x00\x00\x02\x15" + // 0x0075030F: 0x00000215
+       "\x00U\x03\x11\x00\x00\x02\x16" + // 0x00550311: 0x00000216
+       "\x00u\x03\x11\x00\x00\x02\x17" + // 0x00750311: 0x00000217
+       "\x00S\x03&\x00\x00\x02\x18" + // 0x00530326: 0x00000218
+       "\x00s\x03&\x00\x00\x02\x19" + // 0x00730326: 0x00000219
+       "\x00T\x03&\x00\x00\x02\x1a" + // 0x00540326: 0x0000021A
+       "\x00t\x03&\x00\x00\x02\x1b" + // 0x00740326: 0x0000021B
+       "\x00H\x03\f\x00\x00\x02\x1e" + // 0x0048030C: 0x0000021E
+       "\x00h\x03\f\x00\x00\x02\x1f" + // 0x0068030C: 0x0000021F
+       "\x00A\x03\a\x00\x00\x02&" + // 0x00410307: 0x00000226
+       "\x00a\x03\a\x00\x00\x02'" + // 0x00610307: 0x00000227
+       "\x00E\x03'\x00\x00\x02(" + // 0x00450327: 0x00000228
+       "\x00e\x03'\x00\x00\x02)" + // 0x00650327: 0x00000229
+       "\x00\xd6\x03\x04\x00\x00\x02*" + // 0x00D60304: 0x0000022A
+       "\x00\xf6\x03\x04\x00\x00\x02+" + // 0x00F60304: 0x0000022B
+       "\x00\xd5\x03\x04\x00\x00\x02," + // 0x00D50304: 0x0000022C
+       "\x00\xf5\x03\x04\x00\x00\x02-" + // 0x00F50304: 0x0000022D
+       "\x00O\x03\a\x00\x00\x02." + // 0x004F0307: 0x0000022E
+       "\x00o\x03\a\x00\x00\x02/" + // 0x006F0307: 0x0000022F
+       "\x02.\x03\x04\x00\x00\x020" + // 0x022E0304: 0x00000230
+       "\x02/\x03\x04\x00\x00\x021" + // 0x022F0304: 0x00000231
+       "\x00Y\x03\x04\x00\x00\x022" + // 0x00590304: 0x00000232
+       "\x00y\x03\x04\x00\x00\x023" + // 0x00790304: 0x00000233
+       "\x00\xa8\x03\x01\x00\x00\x03\x85" + // 0x00A80301: 0x00000385
+       "\x03\x91\x03\x01\x00\x00\x03\x86" + // 0x03910301: 0x00000386
+       "\x03\x95\x03\x01\x00\x00\x03\x88" + // 0x03950301: 0x00000388
+       "\x03\x97\x03\x01\x00\x00\x03\x89" + // 0x03970301: 0x00000389
+       "\x03\x99\x03\x01\x00\x00\x03\x8a" + // 0x03990301: 0x0000038A
+       "\x03\x9f\x03\x01\x00\x00\x03\x8c" + // 0x039F0301: 0x0000038C
+       "\x03\xa5\x03\x01\x00\x00\x03\x8e" + // 0x03A50301: 0x0000038E
+       "\x03\xa9\x03\x01\x00\x00\x03\x8f" + // 0x03A90301: 0x0000038F
+       "\x03\xca\x03\x01\x00\x00\x03\x90" + // 0x03CA0301: 0x00000390
+       "\x03\x99\x03\b\x00\x00\x03\xaa" + // 0x03990308: 0x000003AA
+       "\x03\xa5\x03\b\x00\x00\x03\xab" + // 0x03A50308: 0x000003AB
+       "\x03\xb1\x03\x01\x00\x00\x03\xac" + // 0x03B10301: 0x000003AC
+       "\x03\xb5\x03\x01\x00\x00\x03\xad" + // 0x03B50301: 0x000003AD
+       "\x03\xb7\x03\x01\x00\x00\x03\xae" + // 0x03B70301: 0x000003AE
+       "\x03\xb9\x03\x01\x00\x00\x03\xaf" + // 0x03B90301: 0x000003AF
+       "\x03\xcb\x03\x01\x00\x00\x03\xb0" + // 0x03CB0301: 0x000003B0
+       "\x03\xb9\x03\b\x00\x00\x03\xca" + // 0x03B90308: 0x000003CA
+       "\x03\xc5\x03\b\x00\x00\x03\xcb" + // 0x03C50308: 0x000003CB
+       "\x03\xbf\x03\x01\x00\x00\x03\xcc" + // 0x03BF0301: 0x000003CC
+       "\x03\xc5\x03\x01\x00\x00\x03\xcd" + // 0x03C50301: 0x000003CD
+       "\x03\xc9\x03\x01\x00\x00\x03\xce" + // 0x03C90301: 0x000003CE
+       "\x03\xd2\x03\x01\x00\x00\x03\xd3" + // 0x03D20301: 0x000003D3
+       "\x03\xd2\x03\b\x00\x00\x03\xd4" + // 0x03D20308: 0x000003D4
+       "\x04\x15\x03\x00\x00\x00\x04\x00" + // 0x04150300: 0x00000400
+       "\x04\x15\x03\b\x00\x00\x04\x01" + // 0x04150308: 0x00000401
+       "\x04\x13\x03\x01\x00\x00\x04\x03" + // 0x04130301: 0x00000403
+       "\x04\x06\x03\b\x00\x00\x04\a" + // 0x04060308: 0x00000407
+       "\x04\x1a\x03\x01\x00\x00\x04\f" + // 0x041A0301: 0x0000040C
+       "\x04\x18\x03\x00\x00\x00\x04\r" + // 0x04180300: 0x0000040D
+       "\x04#\x03\x06\x00\x00\x04\x0e" + // 0x04230306: 0x0000040E
+       "\x04\x18\x03\x06\x00\x00\x04\x19" + // 0x04180306: 0x00000419
+       "\x048\x03\x06\x00\x00\x049" + // 0x04380306: 0x00000439
+       "\x045\x03\x00\x00\x00\x04P" + // 0x04350300: 0x00000450
+       "\x045\x03\b\x00\x00\x04Q" + // 0x04350308: 0x00000451
+       "\x043\x03\x01\x00\x00\x04S" + // 0x04330301: 0x00000453
+       "\x04V\x03\b\x00\x00\x04W" + // 0x04560308: 0x00000457
+       "\x04:\x03\x01\x00\x00\x04\\" + // 0x043A0301: 0x0000045C
+       "\x048\x03\x00\x00\x00\x04]" + // 0x04380300: 0x0000045D
+       "\x04C\x03\x06\x00\x00\x04^" + // 0x04430306: 0x0000045E
+       "\x04t\x03\x0f\x00\x00\x04v" + // 0x0474030F: 0x00000476
+       "\x04u\x03\x0f\x00\x00\x04w" + // 0x0475030F: 0x00000477
+       "\x04\x16\x03\x06\x00\x00\x04\xc1" + // 0x04160306: 0x000004C1
+       "\x046\x03\x06\x00\x00\x04\xc2" + // 0x04360306: 0x000004C2
+       "\x04\x10\x03\x06\x00\x00\x04\xd0" + // 0x04100306: 0x000004D0
+       "\x040\x03\x06\x00\x00\x04\xd1" + // 0x04300306: 0x000004D1
+       "\x04\x10\x03\b\x00\x00\x04\xd2" + // 0x04100308: 0x000004D2
+       "\x040\x03\b\x00\x00\x04\xd3" + // 0x04300308: 0x000004D3
+       "\x04\x15\x03\x06\x00\x00\x04\xd6" + // 0x04150306: 0x000004D6
+       "\x045\x03\x06\x00\x00\x04\xd7" + // 0x04350306: 0x000004D7
+       "\x04\xd8\x03\b\x00\x00\x04\xda" + // 0x04D80308: 0x000004DA
+       "\x04\xd9\x03\b\x00\x00\x04\xdb" + // 0x04D90308: 0x000004DB
+       "\x04\x16\x03\b\x00\x00\x04\xdc" + // 0x04160308: 0x000004DC
+       "\x046\x03\b\x00\x00\x04\xdd" + // 0x04360308: 0x000004DD
+       "\x04\x17\x03\b\x00\x00\x04\xde" + // 0x04170308: 0x000004DE
+       "\x047\x03\b\x00\x00\x04\xdf" + // 0x04370308: 0x000004DF
+       "\x04\x18\x03\x04\x00\x00\x04\xe2" + // 0x04180304: 0x000004E2
+       "\x048\x03\x04\x00\x00\x04\xe3" + // 0x04380304: 0x000004E3
+       "\x04\x18\x03\b\x00\x00\x04\xe4" + // 0x04180308: 0x000004E4
+       "\x048\x03\b\x00\x00\x04\xe5" + // 0x04380308: 0x000004E5
+       "\x04\x1e\x03\b\x00\x00\x04\xe6" + // 0x041E0308: 0x000004E6
+       "\x04>\x03\b\x00\x00\x04\xe7" + // 0x043E0308: 0x000004E7
+       "\x04\xe8\x03\b\x00\x00\x04\xea" + // 0x04E80308: 0x000004EA
+       "\x04\xe9\x03\b\x00\x00\x04\xeb" + // 0x04E90308: 0x000004EB
+       "\x04-\x03\b\x00\x00\x04\xec" + // 0x042D0308: 0x000004EC
+       "\x04M\x03\b\x00\x00\x04\xed" + // 0x044D0308: 0x000004ED
+       "\x04#\x03\x04\x00\x00\x04\xee" + // 0x04230304: 0x000004EE
+       "\x04C\x03\x04\x00\x00\x04\xef" + // 0x04430304: 0x000004EF
+       "\x04#\x03\b\x00\x00\x04\xf0" + // 0x04230308: 0x000004F0
+       "\x04C\x03\b\x00\x00\x04\xf1" + // 0x04430308: 0x000004F1
+       "\x04#\x03\v\x00\x00\x04\xf2" + // 0x0423030B: 0x000004F2
+       "\x04C\x03\v\x00\x00\x04\xf3" + // 0x0443030B: 0x000004F3
+       "\x04'\x03\b\x00\x00\x04\xf4" + // 0x04270308: 0x000004F4
+       "\x04G\x03\b\x00\x00\x04\xf5" + // 0x04470308: 0x000004F5
+       "\x04+\x03\b\x00\x00\x04\xf8" + // 0x042B0308: 0x000004F8
+       "\x04K\x03\b\x00\x00\x04\xf9" + // 0x044B0308: 0x000004F9
+       "\x06'\x06S\x00\x00\x06\"" + // 0x06270653: 0x00000622
+       "\x06'\x06T\x00\x00\x06#" + // 0x06270654: 0x00000623
+       "\x06H\x06T\x00\x00\x06$" + // 0x06480654: 0x00000624
+       "\x06'\x06U\x00\x00\x06%" + // 0x06270655: 0x00000625
+       "\x06J\x06T\x00\x00\x06&" + // 0x064A0654: 0x00000626
+       "\x06\xd5\x06T\x00\x00\x06\xc0" + // 0x06D50654: 0x000006C0
+       "\x06\xc1\x06T\x00\x00\x06\xc2" + // 0x06C10654: 0x000006C2
+       "\x06\xd2\x06T\x00\x00\x06\xd3" + // 0x06D20654: 0x000006D3
+       "\t(\t<\x00\x00\t)" + // 0x0928093C: 0x00000929
+       "\t0\t<\x00\x00\t1" + // 0x0930093C: 0x00000931
+       "\t3\t<\x00\x00\t4" + // 0x0933093C: 0x00000934
+       "\t\xc7\t\xbe\x00\x00\t\xcb" + // 0x09C709BE: 0x000009CB
+       "\t\xc7\t\xd7\x00\x00\t\xcc" + // 0x09C709D7: 0x000009CC
+       "\vG\vV\x00\x00\vH" + // 0x0B470B56: 0x00000B48
+       "\vG\v>\x00\x00\vK" + // 0x0B470B3E: 0x00000B4B
+       "\vG\vW\x00\x00\vL" + // 0x0B470B57: 0x00000B4C
+       "\v\x92\v\xd7\x00\x00\v\x94" + // 0x0B920BD7: 0x00000B94
+       "\v\xc6\v\xbe\x00\x00\v\xca" + // 0x0BC60BBE: 0x00000BCA
+       "\v\xc7\v\xbe\x00\x00\v\xcb" + // 0x0BC70BBE: 0x00000BCB
+       "\v\xc6\v\xd7\x00\x00\v\xcc" + // 0x0BC60BD7: 0x00000BCC
+       "\fF\fV\x00\x00\fH" + // 0x0C460C56: 0x00000C48
+       "\f\xbf\f\xd5\x00\x00\f\xc0" + // 0x0CBF0CD5: 0x00000CC0
+       "\f\xc6\f\xd5\x00\x00\f\xc7" + // 0x0CC60CD5: 0x00000CC7
+       "\f\xc6\f\xd6\x00\x00\f\xc8" + // 0x0CC60CD6: 0x00000CC8
+       "\f\xc6\f\xc2\x00\x00\f\xca" + // 0x0CC60CC2: 0x00000CCA
+       "\f\xca\f\xd5\x00\x00\f\xcb" + // 0x0CCA0CD5: 0x00000CCB
+       "\rF\r>\x00\x00\rJ" + // 0x0D460D3E: 0x00000D4A
+       "\rG\r>\x00\x00\rK" + // 0x0D470D3E: 0x00000D4B
+       "\rF\rW\x00\x00\rL" + // 0x0D460D57: 0x00000D4C
+       "\r\xd9\r\xca\x00\x00\r\xda" + // 0x0DD90DCA: 0x00000DDA
+       "\r\xd9\r\xcf\x00\x00\r\xdc" + // 0x0DD90DCF: 0x00000DDC
+       "\r\xdc\r\xca\x00\x00\r\xdd" + // 0x0DDC0DCA: 0x00000DDD
+       "\r\xd9\r\xdf\x00\x00\r\xde" + // 0x0DD90DDF: 0x00000DDE
+       "\x10%\x10.\x00\x00\x10&" + // 0x1025102E: 0x00001026
+       "\x1b\x05\x1b5\x00\x00\x1b\x06" + // 0x1B051B35: 0x00001B06
+       "\x1b\a\x1b5\x00\x00\x1b\b" + // 0x1B071B35: 0x00001B08
+       "\x1b\t\x1b5\x00\x00\x1b\n" + // 0x1B091B35: 0x00001B0A
+       "\x1b\v\x1b5\x00\x00\x1b\f" + // 0x1B0B1B35: 0x00001B0C
+       "\x1b\r\x1b5\x00\x00\x1b\x0e" + // 0x1B0D1B35: 0x00001B0E
+       "\x1b\x11\x1b5\x00\x00\x1b\x12" + // 0x1B111B35: 0x00001B12
+       "\x1b:\x1b5\x00\x00\x1b;" + // 0x1B3A1B35: 0x00001B3B
+       "\x1b<\x1b5\x00\x00\x1b=" + // 0x1B3C1B35: 0x00001B3D
+       "\x1b>\x1b5\x00\x00\x1b@" + // 0x1B3E1B35: 0x00001B40
+       "\x1b?\x1b5\x00\x00\x1bA" + // 0x1B3F1B35: 0x00001B41
+       "\x1bB\x1b5\x00\x00\x1bC" + // 0x1B421B35: 0x00001B43
+       "\x00A\x03%\x00\x00\x1e\x00" + // 0x00410325: 0x00001E00
+       "\x00a\x03%\x00\x00\x1e\x01" + // 0x00610325: 0x00001E01
+       "\x00B\x03\a\x00\x00\x1e\x02" + // 0x00420307: 0x00001E02
+       "\x00b\x03\a\x00\x00\x1e\x03" + // 0x00620307: 0x00001E03
+       "\x00B\x03#\x00\x00\x1e\x04" + // 0x00420323: 0x00001E04
+       "\x00b\x03#\x00\x00\x1e\x05" + // 0x00620323: 0x00001E05
+       "\x00B\x031\x00\x00\x1e\x06" + // 0x00420331: 0x00001E06
+       "\x00b\x031\x00\x00\x1e\a" + // 0x00620331: 0x00001E07
+       "\x00\xc7\x03\x01\x00\x00\x1e\b" + // 0x00C70301: 0x00001E08
+       "\x00\xe7\x03\x01\x00\x00\x1e\t" + // 0x00E70301: 0x00001E09
+       "\x00D\x03\a\x00\x00\x1e\n" + // 0x00440307: 0x00001E0A
+       "\x00d\x03\a\x00\x00\x1e\v" + // 0x00640307: 0x00001E0B
+       "\x00D\x03#\x00\x00\x1e\f" + // 0x00440323: 0x00001E0C
+       "\x00d\x03#\x00\x00\x1e\r" + // 0x00640323: 0x00001E0D
+       "\x00D\x031\x00\x00\x1e\x0e" + // 0x00440331: 0x00001E0E
+       "\x00d\x031\x00\x00\x1e\x0f" + // 0x00640331: 0x00001E0F
+       "\x00D\x03'\x00\x00\x1e\x10" + // 0x00440327: 0x00001E10
+       "\x00d\x03'\x00\x00\x1e\x11" + // 0x00640327: 0x00001E11
+       "\x00D\x03-\x00\x00\x1e\x12" + // 0x0044032D: 0x00001E12
+       "\x00d\x03-\x00\x00\x1e\x13" + // 0x0064032D: 0x00001E13
+       "\x01\x12\x03\x00\x00\x00\x1e\x14" + // 0x01120300: 0x00001E14
+       "\x01\x13\x03\x00\x00\x00\x1e\x15" + // 0x01130300: 0x00001E15
+       "\x01\x12\x03\x01\x00\x00\x1e\x16" + // 0x01120301: 0x00001E16
+       "\x01\x13\x03\x01\x00\x00\x1e\x17" + // 0x01130301: 0x00001E17
+       "\x00E\x03-\x00\x00\x1e\x18" + // 0x0045032D: 0x00001E18
+       "\x00e\x03-\x00\x00\x1e\x19" + // 0x0065032D: 0x00001E19
+       "\x00E\x030\x00\x00\x1e\x1a" + // 0x00450330: 0x00001E1A
+       "\x00e\x030\x00\x00\x1e\x1b" + // 0x00650330: 0x00001E1B
+       "\x02(\x03\x06\x00\x00\x1e\x1c" + // 0x02280306: 0x00001E1C
+       "\x02)\x03\x06\x00\x00\x1e\x1d" + // 0x02290306: 0x00001E1D
+       "\x00F\x03\a\x00\x00\x1e\x1e" + // 0x00460307: 0x00001E1E
+       "\x00f\x03\a\x00\x00\x1e\x1f" + // 0x00660307: 0x00001E1F
+       "\x00G\x03\x04\x00\x00\x1e " + // 0x00470304: 0x00001E20
+       "\x00g\x03\x04\x00\x00\x1e!" + // 0x00670304: 0x00001E21
+       "\x00H\x03\a\x00\x00\x1e\"" + // 0x00480307: 0x00001E22
+       "\x00h\x03\a\x00\x00\x1e#" + // 0x00680307: 0x00001E23
+       "\x00H\x03#\x00\x00\x1e$" + // 0x00480323: 0x00001E24
+       "\x00h\x03#\x00\x00\x1e%" + // 0x00680323: 0x00001E25
+       "\x00H\x03\b\x00\x00\x1e&" + // 0x00480308: 0x00001E26
+       "\x00h\x03\b\x00\x00\x1e'" + // 0x00680308: 0x00001E27
+       "\x00H\x03'\x00\x00\x1e(" + // 0x00480327: 0x00001E28
+       "\x00h\x03'\x00\x00\x1e)" + // 0x00680327: 0x00001E29
+       "\x00H\x03.\x00\x00\x1e*" + // 0x0048032E: 0x00001E2A
+       "\x00h\x03.\x00\x00\x1e+" + // 0x0068032E: 0x00001E2B
+       "\x00I\x030\x00\x00\x1e," + // 0x00490330: 0x00001E2C
+       "\x00i\x030\x00\x00\x1e-" + // 0x00690330: 0x00001E2D
+       "\x00\xcf\x03\x01\x00\x00\x1e." + // 0x00CF0301: 0x00001E2E
+       "\x00\xef\x03\x01\x00\x00\x1e/" + // 0x00EF0301: 0x00001E2F
+       "\x00K\x03\x01\x00\x00\x1e0" + // 0x004B0301: 0x00001E30
+       "\x00k\x03\x01\x00\x00\x1e1" + // 0x006B0301: 0x00001E31
+       "\x00K\x03#\x00\x00\x1e2" + // 0x004B0323: 0x00001E32
+       "\x00k\x03#\x00\x00\x1e3" + // 0x006B0323: 0x00001E33
+       "\x00K\x031\x00\x00\x1e4" + // 0x004B0331: 0x00001E34
+       "\x00k\x031\x00\x00\x1e5" + // 0x006B0331: 0x00001E35
+       "\x00L\x03#\x00\x00\x1e6" + // 0x004C0323: 0x00001E36
+       "\x00l\x03#\x00\x00\x1e7" + // 0x006C0323: 0x00001E37
+       "\x1e6\x03\x04\x00\x00\x1e8" + // 0x1E360304: 0x00001E38
+       "\x1e7\x03\x04\x00\x00\x1e9" + // 0x1E370304: 0x00001E39
+       "\x00L\x031\x00\x00\x1e:" + // 0x004C0331: 0x00001E3A
+       "\x00l\x031\x00\x00\x1e;" + // 0x006C0331: 0x00001E3B
+       "\x00L\x03-\x00\x00\x1e<" + // 0x004C032D: 0x00001E3C
+       "\x00l\x03-\x00\x00\x1e=" + // 0x006C032D: 0x00001E3D
+       "\x00M\x03\x01\x00\x00\x1e>" + // 0x004D0301: 0x00001E3E
+       "\x00m\x03\x01\x00\x00\x1e?" + // 0x006D0301: 0x00001E3F
+       "\x00M\x03\a\x00\x00\x1e@" + // 0x004D0307: 0x00001E40
+       "\x00m\x03\a\x00\x00\x1eA" + // 0x006D0307: 0x00001E41
+       "\x00M\x03#\x00\x00\x1eB" + // 0x004D0323: 0x00001E42
+       "\x00m\x03#\x00\x00\x1eC" + // 0x006D0323: 0x00001E43
+       "\x00N\x03\a\x00\x00\x1eD" + // 0x004E0307: 0x00001E44
+       "\x00n\x03\a\x00\x00\x1eE" + // 0x006E0307: 0x00001E45
+       "\x00N\x03#\x00\x00\x1eF" + // 0x004E0323: 0x00001E46
+       "\x00n\x03#\x00\x00\x1eG" + // 0x006E0323: 0x00001E47
+       "\x00N\x031\x00\x00\x1eH" + // 0x004E0331: 0x00001E48
+       "\x00n\x031\x00\x00\x1eI" + // 0x006E0331: 0x00001E49
+       "\x00N\x03-\x00\x00\x1eJ" + // 0x004E032D: 0x00001E4A
+       "\x00n\x03-\x00\x00\x1eK" + // 0x006E032D: 0x00001E4B
+       "\x00\xd5\x03\x01\x00\x00\x1eL" + // 0x00D50301: 0x00001E4C
+       "\x00\xf5\x03\x01\x00\x00\x1eM" + // 0x00F50301: 0x00001E4D
+       "\x00\xd5\x03\b\x00\x00\x1eN" + // 0x00D50308: 0x00001E4E
+       "\x00\xf5\x03\b\x00\x00\x1eO" + // 0x00F50308: 0x00001E4F
+       "\x01L\x03\x00\x00\x00\x1eP" + // 0x014C0300: 0x00001E50
+       "\x01M\x03\x00\x00\x00\x1eQ" + // 0x014D0300: 0x00001E51
+       "\x01L\x03\x01\x00\x00\x1eR" + // 0x014C0301: 0x00001E52
+       "\x01M\x03\x01\x00\x00\x1eS" + // 0x014D0301: 0x00001E53
+       "\x00P\x03\x01\x00\x00\x1eT" + // 0x00500301: 0x00001E54
+       "\x00p\x03\x01\x00\x00\x1eU" + // 0x00700301: 0x00001E55
+       "\x00P\x03\a\x00\x00\x1eV" + // 0x00500307: 0x00001E56
+       "\x00p\x03\a\x00\x00\x1eW" + // 0x00700307: 0x00001E57
+       "\x00R\x03\a\x00\x00\x1eX" + // 0x00520307: 0x00001E58
+       "\x00r\x03\a\x00\x00\x1eY" + // 0x00720307: 0x00001E59
+       "\x00R\x03#\x00\x00\x1eZ" + // 0x00520323: 0x00001E5A
+       "\x00r\x03#\x00\x00\x1e[" + // 0x00720323: 0x00001E5B
+       "\x1eZ\x03\x04\x00\x00\x1e\\" + // 0x1E5A0304: 0x00001E5C
+       "\x1e[\x03\x04\x00\x00\x1e]" + // 0x1E5B0304: 0x00001E5D
+       "\x00R\x031\x00\x00\x1e^" + // 0x00520331: 0x00001E5E
+       "\x00r\x031\x00\x00\x1e_" + // 0x00720331: 0x00001E5F
+       "\x00S\x03\a\x00\x00\x1e`" + // 0x00530307: 0x00001E60
+       "\x00s\x03\a\x00\x00\x1ea" + // 0x00730307: 0x00001E61
+       "\x00S\x03#\x00\x00\x1eb" + // 0x00530323: 0x00001E62
+       "\x00s\x03#\x00\x00\x1ec" + // 0x00730323: 0x00001E63
+       "\x01Z\x03\a\x00\x00\x1ed" + // 0x015A0307: 0x00001E64
+       "\x01[\x03\a\x00\x00\x1ee" + // 0x015B0307: 0x00001E65
+       "\x01`\x03\a\x00\x00\x1ef" + // 0x01600307: 0x00001E66
+       "\x01a\x03\a\x00\x00\x1eg" + // 0x01610307: 0x00001E67
+       "\x1eb\x03\a\x00\x00\x1eh" + // 0x1E620307: 0x00001E68
+       "\x1ec\x03\a\x00\x00\x1ei" + // 0x1E630307: 0x00001E69
+       "\x00T\x03\a\x00\x00\x1ej" + // 0x00540307: 0x00001E6A
+       "\x00t\x03\a\x00\x00\x1ek" + // 0x00740307: 0x00001E6B
+       "\x00T\x03#\x00\x00\x1el" + // 0x00540323: 0x00001E6C
+       "\x00t\x03#\x00\x00\x1em" + // 0x00740323: 0x00001E6D
+       "\x00T\x031\x00\x00\x1en" + // 0x00540331: 0x00001E6E
+       "\x00t\x031\x00\x00\x1eo" + // 0x00740331: 0x00001E6F
+       "\x00T\x03-\x00\x00\x1ep" + // 0x0054032D: 0x00001E70
+       "\x00t\x03-\x00\x00\x1eq" + // 0x0074032D: 0x00001E71
+       "\x00U\x03$\x00\x00\x1er" + // 0x00550324: 0x00001E72
+       "\x00u\x03$\x00\x00\x1es" + // 0x00750324: 0x00001E73
+       "\x00U\x030\x00\x00\x1et" + // 0x00550330: 0x00001E74
+       "\x00u\x030\x00\x00\x1eu" + // 0x00750330: 0x00001E75
+       "\x00U\x03-\x00\x00\x1ev" + // 0x0055032D: 0x00001E76
+       "\x00u\x03-\x00\x00\x1ew" + // 0x0075032D: 0x00001E77
+       "\x01h\x03\x01\x00\x00\x1ex" + // 0x01680301: 0x00001E78
+       "\x01i\x03\x01\x00\x00\x1ey" + // 0x01690301: 0x00001E79
+       "\x01j\x03\b\x00\x00\x1ez" + // 0x016A0308: 0x00001E7A
+       "\x01k\x03\b\x00\x00\x1e{" + // 0x016B0308: 0x00001E7B
+       "\x00V\x03\x03\x00\x00\x1e|" + // 0x00560303: 0x00001E7C
+       "\x00v\x03\x03\x00\x00\x1e}" + // 0x00760303: 0x00001E7D
+       "\x00V\x03#\x00\x00\x1e~" + // 0x00560323: 0x00001E7E
+       "\x00v\x03#\x00\x00\x1e\u007f" + // 0x00760323: 0x00001E7F
+       "\x00W\x03\x00\x00\x00\x1e\x80" + // 0x00570300: 0x00001E80
+       "\x00w\x03\x00\x00\x00\x1e\x81" + // 0x00770300: 0x00001E81
+       "\x00W\x03\x01\x00\x00\x1e\x82" + // 0x00570301: 0x00001E82
+       "\x00w\x03\x01\x00\x00\x1e\x83" + // 0x00770301: 0x00001E83
+       "\x00W\x03\b\x00\x00\x1e\x84" + // 0x00570308: 0x00001E84
+       "\x00w\x03\b\x00\x00\x1e\x85" + // 0x00770308: 0x00001E85
+       "\x00W\x03\a\x00\x00\x1e\x86" + // 0x00570307: 0x00001E86
+       "\x00w\x03\a\x00\x00\x1e\x87" + // 0x00770307: 0x00001E87
+       "\x00W\x03#\x00\x00\x1e\x88" + // 0x00570323: 0x00001E88
+       "\x00w\x03#\x00\x00\x1e\x89" + // 0x00770323: 0x00001E89
+       "\x00X\x03\a\x00\x00\x1e\x8a" + // 0x00580307: 0x00001E8A
+       "\x00x\x03\a\x00\x00\x1e\x8b" + // 0x00780307: 0x00001E8B
+       "\x00X\x03\b\x00\x00\x1e\x8c" + // 0x00580308: 0x00001E8C
+       "\x00x\x03\b\x00\x00\x1e\x8d" + // 0x00780308: 0x00001E8D
+       "\x00Y\x03\a\x00\x00\x1e\x8e" + // 0x00590307: 0x00001E8E
+       "\x00y\x03\a\x00\x00\x1e\x8f" + // 0x00790307: 0x00001E8F
+       "\x00Z\x03\x02\x00\x00\x1e\x90" + // 0x005A0302: 0x00001E90
+       "\x00z\x03\x02\x00\x00\x1e\x91" + // 0x007A0302: 0x00001E91
+       "\x00Z\x03#\x00\x00\x1e\x92" + // 0x005A0323: 0x00001E92
+       "\x00z\x03#\x00\x00\x1e\x93" + // 0x007A0323: 0x00001E93
+       "\x00Z\x031\x00\x00\x1e\x94" + // 0x005A0331: 0x00001E94
+       "\x00z\x031\x00\x00\x1e\x95" + // 0x007A0331: 0x00001E95
+       "\x00h\x031\x00\x00\x1e\x96" + // 0x00680331: 0x00001E96
+       "\x00t\x03\b\x00\x00\x1e\x97" + // 0x00740308: 0x00001E97
+       "\x00w\x03\n\x00\x00\x1e\x98" + // 0x0077030A: 0x00001E98
+       "\x00y\x03\n\x00\x00\x1e\x99" + // 0x0079030A: 0x00001E99
+       "\x01\u007f\x03\a\x00\x00\x1e\x9b" + // 0x017F0307: 0x00001E9B
+       "\x00A\x03#\x00\x00\x1e\xa0" + // 0x00410323: 0x00001EA0
+       "\x00a\x03#\x00\x00\x1e\xa1" + // 0x00610323: 0x00001EA1
+       "\x00A\x03\t\x00\x00\x1e\xa2" + // 0x00410309: 0x00001EA2
+       "\x00a\x03\t\x00\x00\x1e\xa3" + // 0x00610309: 0x00001EA3
+       "\x00\xc2\x03\x01\x00\x00\x1e\xa4" + // 0x00C20301: 0x00001EA4
+       "\x00\xe2\x03\x01\x00\x00\x1e\xa5" + // 0x00E20301: 0x00001EA5
+       "\x00\xc2\x03\x00\x00\x00\x1e\xa6" + // 0x00C20300: 0x00001EA6
+       "\x00\xe2\x03\x00\x00\x00\x1e\xa7" + // 0x00E20300: 0x00001EA7
+       "\x00\xc2\x03\t\x00\x00\x1e\xa8" + // 0x00C20309: 0x00001EA8
+       "\x00\xe2\x03\t\x00\x00\x1e\xa9" + // 0x00E20309: 0x00001EA9
+       "\x00\xc2\x03\x03\x00\x00\x1e\xaa" + // 0x00C20303: 0x00001EAA
+       "\x00\xe2\x03\x03\x00\x00\x1e\xab" + // 0x00E20303: 0x00001EAB
+       "\x1e\xa0\x03\x02\x00\x00\x1e\xac" + // 0x1EA00302: 0x00001EAC
+       "\x1e\xa1\x03\x02\x00\x00\x1e\xad" + // 0x1EA10302: 0x00001EAD
+       "\x01\x02\x03\x01\x00\x00\x1e\xae" + // 0x01020301: 0x00001EAE
+       "\x01\x03\x03\x01\x00\x00\x1e\xaf" + // 0x01030301: 0x00001EAF
+       "\x01\x02\x03\x00\x00\x00\x1e\xb0" + // 0x01020300: 0x00001EB0
+       "\x01\x03\x03\x00\x00\x00\x1e\xb1" + // 0x01030300: 0x00001EB1
+       "\x01\x02\x03\t\x00\x00\x1e\xb2" + // 0x01020309: 0x00001EB2
+       "\x01\x03\x03\t\x00\x00\x1e\xb3" + // 0x01030309: 0x00001EB3
+       "\x01\x02\x03\x03\x00\x00\x1e\xb4" + // 0x01020303: 0x00001EB4
+       "\x01\x03\x03\x03\x00\x00\x1e\xb5" + // 0x01030303: 0x00001EB5
+       "\x1e\xa0\x03\x06\x00\x00\x1e\xb6" + // 0x1EA00306: 0x00001EB6
+       "\x1e\xa1\x03\x06\x00\x00\x1e\xb7" + // 0x1EA10306: 0x00001EB7
+       "\x00E\x03#\x00\x00\x1e\xb8" + // 0x00450323: 0x00001EB8
+       "\x00e\x03#\x00\x00\x1e\xb9" + // 0x00650323: 0x00001EB9
+       "\x00E\x03\t\x00\x00\x1e\xba" + // 0x00450309: 0x00001EBA
+       "\x00e\x03\t\x00\x00\x1e\xbb" + // 0x00650309: 0x00001EBB
+       "\x00E\x03\x03\x00\x00\x1e\xbc" + // 0x00450303: 0x00001EBC
+       "\x00e\x03\x03\x00\x00\x1e\xbd" + // 0x00650303: 0x00001EBD
+       "\x00\xca\x03\x01\x00\x00\x1e\xbe" + // 0x00CA0301: 0x00001EBE
+       "\x00\xea\x03\x01\x00\x00\x1e\xbf" + // 0x00EA0301: 0x00001EBF
+       "\x00\xca\x03\x00\x00\x00\x1e\xc0" + // 0x00CA0300: 0x00001EC0
+       "\x00\xea\x03\x00\x00\x00\x1e\xc1" + // 0x00EA0300: 0x00001EC1
+       "\x00\xca\x03\t\x00\x00\x1e\xc2" + // 0x00CA0309: 0x00001EC2
+       "\x00\xea\x03\t\x00\x00\x1e\xc3" + // 0x00EA0309: 0x00001EC3
+       "\x00\xca\x03\x03\x00\x00\x1e\xc4" + // 0x00CA0303: 0x00001EC4
+       "\x00\xea\x03\x03\x00\x00\x1e\xc5" + // 0x00EA0303: 0x00001EC5
+       "\x1e\xb8\x03\x02\x00\x00\x1e\xc6" + // 0x1EB80302: 0x00001EC6
+       "\x1e\xb9\x03\x02\x00\x00\x1e\xc7" + // 0x1EB90302: 0x00001EC7
+       "\x00I\x03\t\x00\x00\x1e\xc8" + // 0x00490309: 0x00001EC8
+       "\x00i\x03\t\x00\x00\x1e\xc9" + // 0x00690309: 0x00001EC9
+       "\x00I\x03#\x00\x00\x1e\xca" + // 0x00490323: 0x00001ECA
+       "\x00i\x03#\x00\x00\x1e\xcb" + // 0x00690323: 0x00001ECB
+       "\x00O\x03#\x00\x00\x1e\xcc" + // 0x004F0323: 0x00001ECC
+       "\x00o\x03#\x00\x00\x1e\xcd" + // 0x006F0323: 0x00001ECD
+       "\x00O\x03\t\x00\x00\x1e\xce" + // 0x004F0309: 0x00001ECE
+       "\x00o\x03\t\x00\x00\x1e\xcf" + // 0x006F0309: 0x00001ECF
+       "\x00\xd4\x03\x01\x00\x00\x1e\xd0" + // 0x00D40301: 0x00001ED0
+       "\x00\xf4\x03\x01\x00\x00\x1e\xd1" + // 0x00F40301: 0x00001ED1
+       "\x00\xd4\x03\x00\x00\x00\x1e\xd2" + // 0x00D40300: 0x00001ED2
+       "\x00\xf4\x03\x00\x00\x00\x1e\xd3" + // 0x00F40300: 0x00001ED3
+       "\x00\xd4\x03\t\x00\x00\x1e\xd4" + // 0x00D40309: 0x00001ED4
+       "\x00\xf4\x03\t\x00\x00\x1e\xd5" + // 0x00F40309: 0x00001ED5
+       "\x00\xd4\x03\x03\x00\x00\x1e\xd6" + // 0x00D40303: 0x00001ED6
+       "\x00\xf4\x03\x03\x00\x00\x1e\xd7" + // 0x00F40303: 0x00001ED7
+       "\x1e\xcc\x03\x02\x00\x00\x1e\xd8" + // 0x1ECC0302: 0x00001ED8
+       "\x1e\xcd\x03\x02\x00\x00\x1e\xd9" + // 0x1ECD0302: 0x00001ED9
+       "\x01\xa0\x03\x01\x00\x00\x1e\xda" + // 0x01A00301: 0x00001EDA
+       "\x01\xa1\x03\x01\x00\x00\x1e\xdb" + // 0x01A10301: 0x00001EDB
+       "\x01\xa0\x03\x00\x00\x00\x1e\xdc" + // 0x01A00300: 0x00001EDC
+       "\x01\xa1\x03\x00\x00\x00\x1e\xdd" + // 0x01A10300: 0x00001EDD
+       "\x01\xa0\x03\t\x00\x00\x1e\xde" + // 0x01A00309: 0x00001EDE
+       "\x01\xa1\x03\t\x00\x00\x1e\xdf" + // 0x01A10309: 0x00001EDF
+       "\x01\xa0\x03\x03\x00\x00\x1e\xe0" + // 0x01A00303: 0x00001EE0
+       "\x01\xa1\x03\x03\x00\x00\x1e\xe1" + // 0x01A10303: 0x00001EE1
+       "\x01\xa0\x03#\x00\x00\x1e\xe2" + // 0x01A00323: 0x00001EE2
+       "\x01\xa1\x03#\x00\x00\x1e\xe3" + // 0x01A10323: 0x00001EE3
+       "\x00U\x03#\x00\x00\x1e\xe4" + // 0x00550323: 0x00001EE4
+       "\x00u\x03#\x00\x00\x1e\xe5" + // 0x00750323: 0x00001EE5
+       "\x00U\x03\t\x00\x00\x1e\xe6" + // 0x00550309: 0x00001EE6
+       "\x00u\x03\t\x00\x00\x1e\xe7" + // 0x00750309: 0x00001EE7
+       "\x01\xaf\x03\x01\x00\x00\x1e\xe8" + // 0x01AF0301: 0x00001EE8
+       "\x01\xb0\x03\x01\x00\x00\x1e\xe9" + // 0x01B00301: 0x00001EE9
+       "\x01\xaf\x03\x00\x00\x00\x1e\xea" + // 0x01AF0300: 0x00001EEA
+       "\x01\xb0\x03\x00\x00\x00\x1e\xeb" + // 0x01B00300: 0x00001EEB
+       "\x01\xaf\x03\t\x00\x00\x1e\xec" + // 0x01AF0309: 0x00001EEC
+       "\x01\xb0\x03\t\x00\x00\x1e\xed" + // 0x01B00309: 0x00001EED
+       "\x01\xaf\x03\x03\x00\x00\x1e\xee" + // 0x01AF0303: 0x00001EEE
+       "\x01\xb0\x03\x03\x00\x00\x1e\xef" + // 0x01B00303: 0x00001EEF
+       "\x01\xaf\x03#\x00\x00\x1e\xf0" + // 0x01AF0323: 0x00001EF0
+       "\x01\xb0\x03#\x00\x00\x1e\xf1" + // 0x01B00323: 0x00001EF1
+       "\x00Y\x03\x00\x00\x00\x1e\xf2" + // 0x00590300: 0x00001EF2
+       "\x00y\x03\x00\x00\x00\x1e\xf3" + // 0x00790300: 0x00001EF3
+       "\x00Y\x03#\x00\x00\x1e\xf4" + // 0x00590323: 0x00001EF4
+       "\x00y\x03#\x00\x00\x1e\xf5" + // 0x00790323: 0x00001EF5
+       "\x00Y\x03\t\x00\x00\x1e\xf6" + // 0x00590309: 0x00001EF6
+       "\x00y\x03\t\x00\x00\x1e\xf7" + // 0x00790309: 0x00001EF7
+       "\x00Y\x03\x03\x00\x00\x1e\xf8" + // 0x00590303: 0x00001EF8
+       "\x00y\x03\x03\x00\x00\x1e\xf9" + // 0x00790303: 0x00001EF9
+       "\x03\xb1\x03\x13\x00\x00\x1f\x00" + // 0x03B10313: 0x00001F00
+       "\x03\xb1\x03\x14\x00\x00\x1f\x01" + // 0x03B10314: 0x00001F01
+       "\x1f\x00\x03\x00\x00\x00\x1f\x02" + // 0x1F000300: 0x00001F02
+       "\x1f\x01\x03\x00\x00\x00\x1f\x03" + // 0x1F010300: 0x00001F03
+       "\x1f\x00\x03\x01\x00\x00\x1f\x04" + // 0x1F000301: 0x00001F04
+       "\x1f\x01\x03\x01\x00\x00\x1f\x05" + // 0x1F010301: 0x00001F05
+       "\x1f\x00\x03B\x00\x00\x1f\x06" + // 0x1F000342: 0x00001F06
+       "\x1f\x01\x03B\x00\x00\x1f\a" + // 0x1F010342: 0x00001F07
+       "\x03\x91\x03\x13\x00\x00\x1f\b" + // 0x03910313: 0x00001F08
+       "\x03\x91\x03\x14\x00\x00\x1f\t" + // 0x03910314: 0x00001F09
+       "\x1f\b\x03\x00\x00\x00\x1f\n" + // 0x1F080300: 0x00001F0A
+       "\x1f\t\x03\x00\x00\x00\x1f\v" + // 0x1F090300: 0x00001F0B
+       "\x1f\b\x03\x01\x00\x00\x1f\f" + // 0x1F080301: 0x00001F0C
+       "\x1f\t\x03\x01\x00\x00\x1f\r" + // 0x1F090301: 0x00001F0D
+       "\x1f\b\x03B\x00\x00\x1f\x0e" + // 0x1F080342: 0x00001F0E
+       "\x1f\t\x03B\x00\x00\x1f\x0f" + // 0x1F090342: 0x00001F0F
+       "\x03\xb5\x03\x13\x00\x00\x1f\x10" + // 0x03B50313: 0x00001F10
+       "\x03\xb5\x03\x14\x00\x00\x1f\x11" + // 0x03B50314: 0x00001F11
+       "\x1f\x10\x03\x00\x00\x00\x1f\x12" + // 0x1F100300: 0x00001F12
+       "\x1f\x11\x03\x00\x00\x00\x1f\x13" + // 0x1F110300: 0x00001F13
+       "\x1f\x10\x03\x01\x00\x00\x1f\x14" + // 0x1F100301: 0x00001F14
+       "\x1f\x11\x03\x01\x00\x00\x1f\x15" + // 0x1F110301: 0x00001F15
+       "\x03\x95\x03\x13\x00\x00\x1f\x18" + // 0x03950313: 0x00001F18
+       "\x03\x95\x03\x14\x00\x00\x1f\x19" + // 0x03950314: 0x00001F19
+       "\x1f\x18\x03\x00\x00\x00\x1f\x1a" + // 0x1F180300: 0x00001F1A
+       "\x1f\x19\x03\x00\x00\x00\x1f\x1b" + // 0x1F190300: 0x00001F1B
+       "\x1f\x18\x03\x01\x00\x00\x1f\x1c" + // 0x1F180301: 0x00001F1C
+       "\x1f\x19\x03\x01\x00\x00\x1f\x1d" + // 0x1F190301: 0x00001F1D
+       "\x03\xb7\x03\x13\x00\x00\x1f " + // 0x03B70313: 0x00001F20
+       "\x03\xb7\x03\x14\x00\x00\x1f!" + // 0x03B70314: 0x00001F21
+       "\x1f \x03\x00\x00\x00\x1f\"" + // 0x1F200300: 0x00001F22
+       "\x1f!\x03\x00\x00\x00\x1f#" + // 0x1F210300: 0x00001F23
+       "\x1f \x03\x01\x00\x00\x1f$" + // 0x1F200301: 0x00001F24
+       "\x1f!\x03\x01\x00\x00\x1f%" + // 0x1F210301: 0x00001F25
+       "\x1f \x03B\x00\x00\x1f&" + // 0x1F200342: 0x00001F26
+       "\x1f!\x03B\x00\x00\x1f'" + // 0x1F210342: 0x00001F27
+       "\x03\x97\x03\x13\x00\x00\x1f(" + // 0x03970313: 0x00001F28
+       "\x03\x97\x03\x14\x00\x00\x1f)" + // 0x03970314: 0x00001F29
+       "\x1f(\x03\x00\x00\x00\x1f*" + // 0x1F280300: 0x00001F2A
+       "\x1f)\x03\x00\x00\x00\x1f+" + // 0x1F290300: 0x00001F2B
+       "\x1f(\x03\x01\x00\x00\x1f," + // 0x1F280301: 0x00001F2C
+       "\x1f)\x03\x01\x00\x00\x1f-" + // 0x1F290301: 0x00001F2D
+       "\x1f(\x03B\x00\x00\x1f." + // 0x1F280342: 0x00001F2E
+       "\x1f)\x03B\x00\x00\x1f/" + // 0x1F290342: 0x00001F2F
+       "\x03\xb9\x03\x13\x00\x00\x1f0" + // 0x03B90313: 0x00001F30
+       "\x03\xb9\x03\x14\x00\x00\x1f1" + // 0x03B90314: 0x00001F31
+       "\x1f0\x03\x00\x00\x00\x1f2" + // 0x1F300300: 0x00001F32
+       "\x1f1\x03\x00\x00\x00\x1f3" + // 0x1F310300: 0x00001F33
+       "\x1f0\x03\x01\x00\x00\x1f4" + // 0x1F300301: 0x00001F34
+       "\x1f1\x03\x01\x00\x00\x1f5" + // 0x1F310301: 0x00001F35
+       "\x1f0\x03B\x00\x00\x1f6" + // 0x1F300342: 0x00001F36
+       "\x1f1\x03B\x00\x00\x1f7" + // 0x1F310342: 0x00001F37
+       "\x03\x99\x03\x13\x00\x00\x1f8" + // 0x03990313: 0x00001F38
+       "\x03\x99\x03\x14\x00\x00\x1f9" + // 0x03990314: 0x00001F39
+       "\x1f8\x03\x00\x00\x00\x1f:" + // 0x1F380300: 0x00001F3A
+       "\x1f9\x03\x00\x00\x00\x1f;" + // 0x1F390300: 0x00001F3B
+       "\x1f8\x03\x01\x00\x00\x1f<" + // 0x1F380301: 0x00001F3C
+       "\x1f9\x03\x01\x00\x00\x1f=" + // 0x1F390301: 0x00001F3D
+       "\x1f8\x03B\x00\x00\x1f>" + // 0x1F380342: 0x00001F3E
+       "\x1f9\x03B\x00\x00\x1f?" + // 0x1F390342: 0x00001F3F
+       "\x03\xbf\x03\x13\x00\x00\x1f@" + // 0x03BF0313: 0x00001F40
+       "\x03\xbf\x03\x14\x00\x00\x1fA" + // 0x03BF0314: 0x00001F41
+       "\x1f@\x03\x00\x00\x00\x1fB" + // 0x1F400300: 0x00001F42
+       "\x1fA\x03\x00\x00\x00\x1fC" + // 0x1F410300: 0x00001F43
+       "\x1f@\x03\x01\x00\x00\x1fD" + // 0x1F400301: 0x00001F44
+       "\x1fA\x03\x01\x00\x00\x1fE" + // 0x1F410301: 0x00001F45
+       "\x03\x9f\x03\x13\x00\x00\x1fH" + // 0x039F0313: 0x00001F48
+       "\x03\x9f\x03\x14\x00\x00\x1fI" + // 0x039F0314: 0x00001F49
+       "\x1fH\x03\x00\x00\x00\x1fJ" + // 0x1F480300: 0x00001F4A
+       "\x1fI\x03\x00\x00\x00\x1fK" + // 0x1F490300: 0x00001F4B
+       "\x1fH\x03\x01\x00\x00\x1fL" + // 0x1F480301: 0x00001F4C
+       "\x1fI\x03\x01\x00\x00\x1fM" + // 0x1F490301: 0x00001F4D
+       "\x03\xc5\x03\x13\x00\x00\x1fP" + // 0x03C50313: 0x00001F50
+       "\x03\xc5\x03\x14\x00\x00\x1fQ" + // 0x03C50314: 0x00001F51
+       "\x1fP\x03\x00\x00\x00\x1fR" + // 0x1F500300: 0x00001F52
+       "\x1fQ\x03\x00\x00\x00\x1fS" + // 0x1F510300: 0x00001F53
+       "\x1fP\x03\x01\x00\x00\x1fT" + // 0x1F500301: 0x00001F54
+       "\x1fQ\x03\x01\x00\x00\x1fU" + // 0x1F510301: 0x00001F55
+       "\x1fP\x03B\x00\x00\x1fV" + // 0x1F500342: 0x00001F56
+       "\x1fQ\x03B\x00\x00\x1fW" + // 0x1F510342: 0x00001F57
+       "\x03\xa5\x03\x14\x00\x00\x1fY" + // 0x03A50314: 0x00001F59
+       "\x1fY\x03\x00\x00\x00\x1f[" + // 0x1F590300: 0x00001F5B
+       "\x1fY\x03\x01\x00\x00\x1f]" + // 0x1F590301: 0x00001F5D
+       "\x1fY\x03B\x00\x00\x1f_" + // 0x1F590342: 0x00001F5F
+       "\x03\xc9\x03\x13\x00\x00\x1f`" + // 0x03C90313: 0x00001F60
+       "\x03\xc9\x03\x14\x00\x00\x1fa" + // 0x03C90314: 0x00001F61
+       "\x1f`\x03\x00\x00\x00\x1fb" + // 0x1F600300: 0x00001F62
+       "\x1fa\x03\x00\x00\x00\x1fc" + // 0x1F610300: 0x00001F63
+       "\x1f`\x03\x01\x00\x00\x1fd" + // 0x1F600301: 0x00001F64
+       "\x1fa\x03\x01\x00\x00\x1fe" + // 0x1F610301: 0x00001F65
+       "\x1f`\x03B\x00\x00\x1ff" + // 0x1F600342: 0x00001F66
+       "\x1fa\x03B\x00\x00\x1fg" + // 0x1F610342: 0x00001F67
+       "\x03\xa9\x03\x13\x00\x00\x1fh" + // 0x03A90313: 0x00001F68
+       "\x03\xa9\x03\x14\x00\x00\x1fi" + // 0x03A90314: 0x00001F69
+       "\x1fh\x03\x00\x00\x00\x1fj" + // 0x1F680300: 0x00001F6A
+       "\x1fi\x03\x00\x00\x00\x1fk" + // 0x1F690300: 0x00001F6B
+       "\x1fh\x03\x01\x00\x00\x1fl" + // 0x1F680301: 0x00001F6C
+       "\x1fi\x03\x01\x00\x00\x1fm" + // 0x1F690301: 0x00001F6D
+       "\x1fh\x03B\x00\x00\x1fn" + // 0x1F680342: 0x00001F6E
+       "\x1fi\x03B\x00\x00\x1fo" + // 0x1F690342: 0x00001F6F
+       "\x03\xb1\x03\x00\x00\x00\x1fp" + // 0x03B10300: 0x00001F70
+       "\x03\xb5\x03\x00\x00\x00\x1fr" + // 0x03B50300: 0x00001F72
+       "\x03\xb7\x03\x00\x00\x00\x1ft" + // 0x03B70300: 0x00001F74
+       "\x03\xb9\x03\x00\x00\x00\x1fv" + // 0x03B90300: 0x00001F76
+       "\x03\xbf\x03\x00\x00\x00\x1fx" + // 0x03BF0300: 0x00001F78
+       "\x03\xc5\x03\x00\x00\x00\x1fz" + // 0x03C50300: 0x00001F7A
+       "\x03\xc9\x03\x00\x00\x00\x1f|" + // 0x03C90300: 0x00001F7C
+       "\x1f\x00\x03E\x00\x00\x1f\x80" + // 0x1F000345: 0x00001F80
+       "\x1f\x01\x03E\x00\x00\x1f\x81" + // 0x1F010345: 0x00001F81
+       "\x1f\x02\x03E\x00\x00\x1f\x82" + // 0x1F020345: 0x00001F82
+       "\x1f\x03\x03E\x00\x00\x1f\x83" + // 0x1F030345: 0x00001F83
+       "\x1f\x04\x03E\x00\x00\x1f\x84" + // 0x1F040345: 0x00001F84
+       "\x1f\x05\x03E\x00\x00\x1f\x85" + // 0x1F050345: 0x00001F85
+       "\x1f\x06\x03E\x00\x00\x1f\x86" + // 0x1F060345: 0x00001F86
+       "\x1f\a\x03E\x00\x00\x1f\x87" + // 0x1F070345: 0x00001F87
+       "\x1f\b\x03E\x00\x00\x1f\x88" + // 0x1F080345: 0x00001F88
+       "\x1f\t\x03E\x00\x00\x1f\x89" + // 0x1F090345: 0x00001F89
+       "\x1f\n\x03E\x00\x00\x1f\x8a" + // 0x1F0A0345: 0x00001F8A
+       "\x1f\v\x03E\x00\x00\x1f\x8b" + // 0x1F0B0345: 0x00001F8B
+       "\x1f\f\x03E\x00\x00\x1f\x8c" + // 0x1F0C0345: 0x00001F8C
+       "\x1f\r\x03E\x00\x00\x1f\x8d" + // 0x1F0D0345: 0x00001F8D
+       "\x1f\x0e\x03E\x00\x00\x1f\x8e" + // 0x1F0E0345: 0x00001F8E
+       "\x1f\x0f\x03E\x00\x00\x1f\x8f" + // 0x1F0F0345: 0x00001F8F
+       "\x1f \x03E\x00\x00\x1f\x90" + // 0x1F200345: 0x00001F90
+       "\x1f!\x03E\x00\x00\x1f\x91" + // 0x1F210345: 0x00001F91
+       "\x1f\"\x03E\x00\x00\x1f\x92" + // 0x1F220345: 0x00001F92
+       "\x1f#\x03E\x00\x00\x1f\x93" + // 0x1F230345: 0x00001F93
+       "\x1f$\x03E\x00\x00\x1f\x94" + // 0x1F240345: 0x00001F94
+       "\x1f%\x03E\x00\x00\x1f\x95" + // 0x1F250345: 0x00001F95
+       "\x1f&\x03E\x00\x00\x1f\x96" + // 0x1F260345: 0x00001F96
+       "\x1f'\x03E\x00\x00\x1f\x97" + // 0x1F270345: 0x00001F97
+       "\x1f(\x03E\x00\x00\x1f\x98" + // 0x1F280345: 0x00001F98
+       "\x1f)\x03E\x00\x00\x1f\x99" + // 0x1F290345: 0x00001F99
+       "\x1f*\x03E\x00\x00\x1f\x9a" + // 0x1F2A0345: 0x00001F9A
+       "\x1f+\x03E\x00\x00\x1f\x9b" + // 0x1F2B0345: 0x00001F9B
+       "\x1f,\x03E\x00\x00\x1f\x9c" + // 0x1F2C0345: 0x00001F9C
+       "\x1f-\x03E\x00\x00\x1f\x9d" + // 0x1F2D0345: 0x00001F9D
+       "\x1f.\x03E\x00\x00\x1f\x9e" + // 0x1F2E0345: 0x00001F9E
+       "\x1f/\x03E\x00\x00\x1f\x9f" + // 0x1F2F0345: 0x00001F9F
+       "\x1f`\x03E\x00\x00\x1f\xa0" + // 0x1F600345: 0x00001FA0
+       "\x1fa\x03E\x00\x00\x1f\xa1" + // 0x1F610345: 0x00001FA1
+       "\x1fb\x03E\x00\x00\x1f\xa2" + // 0x1F620345: 0x00001FA2
+       "\x1fc\x03E\x00\x00\x1f\xa3" + // 0x1F630345: 0x00001FA3
+       "\x1fd\x03E\x00\x00\x1f\xa4" + // 0x1F640345: 0x00001FA4
+       "\x1fe\x03E\x00\x00\x1f\xa5" + // 0x1F650345: 0x00001FA5
+       "\x1ff\x03E\x00\x00\x1f\xa6" + // 0x1F660345: 0x00001FA6
+       "\x1fg\x03E\x00\x00\x1f\xa7" + // 0x1F670345: 0x00001FA7
+       "\x1fh\x03E\x00\x00\x1f\xa8" + // 0x1F680345: 0x00001FA8
+       "\x1fi\x03E\x00\x00\x1f\xa9" + // 0x1F690345: 0x00001FA9
+       "\x1fj\x03E\x00\x00\x1f\xaa" + // 0x1F6A0345: 0x00001FAA
+       "\x1fk\x03E\x00\x00\x1f\xab" + // 0x1F6B0345: 0x00001FAB
+       "\x1fl\x03E\x00\x00\x1f\xac" + // 0x1F6C0345: 0x00001FAC
+       "\x1fm\x03E\x00\x00\x1f\xad" + // 0x1F6D0345: 0x00001FAD
+       "\x1fn\x03E\x00\x00\x1f\xae" + // 0x1F6E0345: 0x00001FAE
+       "\x1fo\x03E\x00\x00\x1f\xaf" + // 0x1F6F0345: 0x00001FAF
+       "\x03\xb1\x03\x06\x00\x00\x1f\xb0" + // 0x03B10306: 0x00001FB0
+       "\x03\xb1\x03\x04\x00\x00\x1f\xb1" + // 0x03B10304: 0x00001FB1
+       "\x1fp\x03E\x00\x00\x1f\xb2" + // 0x1F700345: 0x00001FB2
+       "\x03\xb1\x03E\x00\x00\x1f\xb3" + // 0x03B10345: 0x00001FB3
+       "\x03\xac\x03E\x00\x00\x1f\xb4" + // 0x03AC0345: 0x00001FB4
+       "\x03\xb1\x03B\x00\x00\x1f\xb6" + // 0x03B10342: 0x00001FB6
+       "\x1f\xb6\x03E\x00\x00\x1f\xb7" + // 0x1FB60345: 0x00001FB7
+       "\x03\x91\x03\x06\x00\x00\x1f\xb8" + // 0x03910306: 0x00001FB8
+       "\x03\x91\x03\x04\x00\x00\x1f\xb9" + // 0x03910304: 0x00001FB9
+       "\x03\x91\x03\x00\x00\x00\x1f\xba" + // 0x03910300: 0x00001FBA
+       "\x03\x91\x03E\x00\x00\x1f\xbc" + // 0x03910345: 0x00001FBC
+       "\x00\xa8\x03B\x00\x00\x1f\xc1" + // 0x00A80342: 0x00001FC1
+       "\x1ft\x03E\x00\x00\x1f\xc2" + // 0x1F740345: 0x00001FC2
+       "\x03\xb7\x03E\x00\x00\x1f\xc3" + // 0x03B70345: 0x00001FC3
+       "\x03\xae\x03E\x00\x00\x1f\xc4" + // 0x03AE0345: 0x00001FC4
+       "\x03\xb7\x03B\x00\x00\x1f\xc6" + // 0x03B70342: 0x00001FC6
+       "\x1f\xc6\x03E\x00\x00\x1f\xc7" + // 0x1FC60345: 0x00001FC7
+       "\x03\x95\x03\x00\x00\x00\x1f\xc8" + // 0x03950300: 0x00001FC8
+       "\x03\x97\x03\x00\x00\x00\x1f\xca" + // 0x03970300: 0x00001FCA
+       "\x03\x97\x03E\x00\x00\x1f\xcc" + // 0x03970345: 0x00001FCC
+       "\x1f\xbf\x03\x00\x00\x00\x1f\xcd" + // 0x1FBF0300: 0x00001FCD
+       "\x1f\xbf\x03\x01\x00\x00\x1f\xce" + // 0x1FBF0301: 0x00001FCE
+       "\x1f\xbf\x03B\x00\x00\x1f\xcf" + // 0x1FBF0342: 0x00001FCF
+       "\x03\xb9\x03\x06\x00\x00\x1f\xd0" + // 0x03B90306: 0x00001FD0
+       "\x03\xb9\x03\x04\x00\x00\x1f\xd1" + // 0x03B90304: 0x00001FD1
+       "\x03\xca\x03\x00\x00\x00\x1f\xd2" + // 0x03CA0300: 0x00001FD2
+       "\x03\xb9\x03B\x00\x00\x1f\xd6" + // 0x03B90342: 0x00001FD6
+       "\x03\xca\x03B\x00\x00\x1f\xd7" + // 0x03CA0342: 0x00001FD7
+       "\x03\x99\x03\x06\x00\x00\x1f\xd8" + // 0x03990306: 0x00001FD8
+       "\x03\x99\x03\x04\x00\x00\x1f\xd9" + // 0x03990304: 0x00001FD9
+       "\x03\x99\x03\x00\x00\x00\x1f\xda" + // 0x03990300: 0x00001FDA
+       "\x1f\xfe\x03\x00\x00\x00\x1f\xdd" + // 0x1FFE0300: 0x00001FDD
+       "\x1f\xfe\x03\x01\x00\x00\x1f\xde" + // 0x1FFE0301: 0x00001FDE
+       "\x1f\xfe\x03B\x00\x00\x1f\xdf" + // 0x1FFE0342: 0x00001FDF
+       "\x03\xc5\x03\x06\x00\x00\x1f\xe0" + // 0x03C50306: 0x00001FE0
+       "\x03\xc5\x03\x04\x00\x00\x1f\xe1" + // 0x03C50304: 0x00001FE1
+       "\x03\xcb\x03\x00\x00\x00\x1f\xe2" + // 0x03CB0300: 0x00001FE2
+       "\x03\xc1\x03\x13\x00\x00\x1f\xe4" + // 0x03C10313: 0x00001FE4
+       "\x03\xc1\x03\x14\x00\x00\x1f\xe5" + // 0x03C10314: 0x00001FE5
+       "\x03\xc5\x03B\x00\x00\x1f\xe6" + // 0x03C50342: 0x00001FE6
+       "\x03\xcb\x03B\x00\x00\x1f\xe7" + // 0x03CB0342: 0x00001FE7
+       "\x03\xa5\x03\x06\x00\x00\x1f\xe8" + // 0x03A50306: 0x00001FE8
+       "\x03\xa5\x03\x04\x00\x00\x1f\xe9" + // 0x03A50304: 0x00001FE9
+       "\x03\xa5\x03\x00\x00\x00\x1f\xea" + // 0x03A50300: 0x00001FEA
+       "\x03\xa1\x03\x14\x00\x00\x1f\xec" + // 0x03A10314: 0x00001FEC
+       "\x00\xa8\x03\x00\x00\x00\x1f\xed" + // 0x00A80300: 0x00001FED
+       "\x1f|\x03E\x00\x00\x1f\xf2" + // 0x1F7C0345: 0x00001FF2
+       "\x03\xc9\x03E\x00\x00\x1f\xf3" + // 0x03C90345: 0x00001FF3
+       "\x03\xce\x03E\x00\x00\x1f\xf4" + // 0x03CE0345: 0x00001FF4
+       "\x03\xc9\x03B\x00\x00\x1f\xf6" + // 0x03C90342: 0x00001FF6
+       "\x1f\xf6\x03E\x00\x00\x1f\xf7" + // 0x1FF60345: 0x00001FF7
+       "\x03\x9f\x03\x00\x00\x00\x1f\xf8" + // 0x039F0300: 0x00001FF8
+       "\x03\xa9\x03\x00\x00\x00\x1f\xfa" + // 0x03A90300: 0x00001FFA
+       "\x03\xa9\x03E\x00\x00\x1f\xfc" + // 0x03A90345: 0x00001FFC
+       "!\x90\x038\x00\x00!\x9a" + // 0x21900338: 0x0000219A
+       "!\x92\x038\x00\x00!\x9b" + // 0x21920338: 0x0000219B
+       "!\x94\x038\x00\x00!\xae" + // 0x21940338: 0x000021AE
+       "!\xd0\x038\x00\x00!\xcd" + // 0x21D00338: 0x000021CD
+       "!\xd4\x038\x00\x00!\xce" + // 0x21D40338: 0x000021CE
+       "!\xd2\x038\x00\x00!\xcf" + // 0x21D20338: 0x000021CF
+       "\"\x03\x038\x00\x00\"\x04" + // 0x22030338: 0x00002204
+       "\"\b\x038\x00\x00\"\t" + // 0x22080338: 0x00002209
+       "\"\v\x038\x00\x00\"\f" + // 0x220B0338: 0x0000220C
+       "\"#\x038\x00\x00\"$" + // 0x22230338: 0x00002224
+       "\"%\x038\x00\x00\"&" + // 0x22250338: 0x00002226
+       "\"<\x038\x00\x00\"A" + // 0x223C0338: 0x00002241
+       "\"C\x038\x00\x00\"D" + // 0x22430338: 0x00002244
+       "\"E\x038\x00\x00\"G" + // 0x22450338: 0x00002247
+       "\"H\x038\x00\x00\"I" + // 0x22480338: 0x00002249
+       "\x00=\x038\x00\x00\"`" + // 0x003D0338: 0x00002260
+       "\"a\x038\x00\x00\"b" + // 0x22610338: 0x00002262
+       "\"M\x038\x00\x00\"m" + // 0x224D0338: 0x0000226D
+       "\x00<\x038\x00\x00\"n" + // 0x003C0338: 0x0000226E
+       "\x00>\x038\x00\x00\"o" + // 0x003E0338: 0x0000226F
+       "\"d\x038\x00\x00\"p" + // 0x22640338: 0x00002270
+       "\"e\x038\x00\x00\"q" + // 0x22650338: 0x00002271
+       "\"r\x038\x00\x00\"t" + // 0x22720338: 0x00002274
+       "\"s\x038\x00\x00\"u" + // 0x22730338: 0x00002275
+       "\"v\x038\x00\x00\"x" + // 0x22760338: 0x00002278
+       "\"w\x038\x00\x00\"y" + // 0x22770338: 0x00002279
+       "\"z\x038\x00\x00\"\x80" + // 0x227A0338: 0x00002280
+       "\"{\x038\x00\x00\"\x81" + // 0x227B0338: 0x00002281
+       "\"\x82\x038\x00\x00\"\x84" + // 0x22820338: 0x00002284
+       "\"\x83\x038\x00\x00\"\x85" + // 0x22830338: 0x00002285
+       "\"\x86\x038\x00\x00\"\x88" + // 0x22860338: 0x00002288
+       "\"\x87\x038\x00\x00\"\x89" + // 0x22870338: 0x00002289
+       "\"\xa2\x038\x00\x00\"\xac" + // 0x22A20338: 0x000022AC
+       "\"\xa8\x038\x00\x00\"\xad" + // 0x22A80338: 0x000022AD
+       "\"\xa9\x038\x00\x00\"\xae" + // 0x22A90338: 0x000022AE
+       "\"\xab\x038\x00\x00\"\xaf" + // 0x22AB0338: 0x000022AF
+       "\"|\x038\x00\x00\"\xe0" + // 0x227C0338: 0x000022E0
+       "\"}\x038\x00\x00\"\xe1" + // 0x227D0338: 0x000022E1
+       "\"\x91\x038\x00\x00\"\xe2" + // 0x22910338: 0x000022E2
+       "\"\x92\x038\x00\x00\"\xe3" + // 0x22920338: 0x000022E3
+       "\"\xb2\x038\x00\x00\"\xea" + // 0x22B20338: 0x000022EA
+       "\"\xb3\x038\x00\x00\"\xeb" + // 0x22B30338: 0x000022EB
+       "\"\xb4\x038\x00\x00\"\xec" + // 0x22B40338: 0x000022EC
+       "\"\xb5\x038\x00\x00\"\xed" + // 0x22B50338: 0x000022ED
+       "0K0\x99\x00\x000L" + // 0x304B3099: 0x0000304C
+       "0M0\x99\x00\x000N" + // 0x304D3099: 0x0000304E
+       "0O0\x99\x00\x000P" + // 0x304F3099: 0x00003050
+       "0Q0\x99\x00\x000R" + // 0x30513099: 0x00003052
+       "0S0\x99\x00\x000T" + // 0x30533099: 0x00003054
+       "0U0\x99\x00\x000V" + // 0x30553099: 0x00003056
+       "0W0\x99\x00\x000X" + // 0x30573099: 0x00003058
+       "0Y0\x99\x00\x000Z" + // 0x30593099: 0x0000305A
+       "0[0\x99\x00\x000\\" + // 0x305B3099: 0x0000305C
+       "0]0\x99\x00\x000^" + // 0x305D3099: 0x0000305E
+       "0_0\x99\x00\x000`" + // 0x305F3099: 0x00003060
+       "0a0\x99\x00\x000b" + // 0x30613099: 0x00003062
+       "0d0\x99\x00\x000e" + // 0x30643099: 0x00003065
+       "0f0\x99\x00\x000g" + // 0x30663099: 0x00003067
+       "0h0\x99\x00\x000i" + // 0x30683099: 0x00003069
+       "0o0\x99\x00\x000p" + // 0x306F3099: 0x00003070
+       "0o0\x9a\x00\x000q" + // 0x306F309A: 0x00003071
+       "0r0\x99\x00\x000s" + // 0x30723099: 0x00003073
+       "0r0\x9a\x00\x000t" + // 0x3072309A: 0x00003074
+       "0u0\x99\x00\x000v" + // 0x30753099: 0x00003076
+       "0u0\x9a\x00\x000w" + // 0x3075309A: 0x00003077
+       "0x0\x99\x00\x000y" + // 0x30783099: 0x00003079
+       "0x0\x9a\x00\x000z" + // 0x3078309A: 0x0000307A
+       "0{0\x99\x00\x000|" + // 0x307B3099: 0x0000307C
+       "0{0\x9a\x00\x000}" + // 0x307B309A: 0x0000307D
+       "0F0\x99\x00\x000\x94" + // 0x30463099: 0x00003094
+       "0\x9d0\x99\x00\x000\x9e" + // 0x309D3099: 0x0000309E
+       "0\xab0\x99\x00\x000\xac" + // 0x30AB3099: 0x000030AC
+       "0\xad0\x99\x00\x000\xae" + // 0x30AD3099: 0x000030AE
+       "0\xaf0\x99\x00\x000\xb0" + // 0x30AF3099: 0x000030B0
+       "0\xb10\x99\x00\x000\xb2" + // 0x30B13099: 0x000030B2
+       "0\xb30\x99\x00\x000\xb4" + // 0x30B33099: 0x000030B4
+       "0\xb50\x99\x00\x000\xb6" + // 0x30B53099: 0x000030B6
+       "0\xb70\x99\x00\x000\xb8" + // 0x30B73099: 0x000030B8
+       "0\xb90\x99\x00\x000\xba" + // 0x30B93099: 0x000030BA
+       "0\xbb0\x99\x00\x000\xbc" + // 0x30BB3099: 0x000030BC
+       "0\xbd0\x99\x00\x000\xbe" + // 0x30BD3099: 0x000030BE
+       "0\xbf0\x99\x00\x000\xc0" + // 0x30BF3099: 0x000030C0
+       "0\xc10\x99\x00\x000\xc2" + // 0x30C13099: 0x000030C2
+       "0\xc40\x99\x00\x000\xc5" + // 0x30C43099: 0x000030C5
+       "0\xc60\x99\x00\x000\xc7" + // 0x30C63099: 0x000030C7
+       "0\xc80\x99\x00\x000\xc9" + // 0x30C83099: 0x000030C9
+       "0\xcf0\x99\x00\x000\xd0" + // 0x30CF3099: 0x000030D0
+       "0\xcf0\x9a\x00\x000\xd1" + // 0x30CF309A: 0x000030D1
+       "0\xd20\x99\x00\x000\xd3" + // 0x30D23099: 0x000030D3
+       "0\xd20\x9a\x00\x000\xd4" + // 0x30D2309A: 0x000030D4
+       "0\xd50\x99\x00\x000\xd6" + // 0x30D53099: 0x000030D6
+       "0\xd50\x9a\x00\x000\xd7" + // 0x30D5309A: 0x000030D7
+       "0\xd80\x99\x00\x000\xd9" + // 0x30D83099: 0x000030D9
+       "0\xd80\x9a\x00\x000\xda" + // 0x30D8309A: 0x000030DA
+       "0\xdb0\x99\x00\x000\xdc" + // 0x30DB3099: 0x000030DC
+       "0\xdb0\x9a\x00\x000\xdd" + // 0x30DB309A: 0x000030DD
+       "0\xa60\x99\x00\x000\xf4" + // 0x30A63099: 0x000030F4
+       "0\xef0\x99\x00\x000\xf7" + // 0x30EF3099: 0x000030F7
+       "0\xf00\x99\x00\x000\xf8" + // 0x30F03099: 0x000030F8
+       "0\xf10\x99\x00\x000\xf9" + // 0x30F13099: 0x000030F9
+       "0\xf20\x99\x00\x000\xfa" + // 0x30F23099: 0x000030FA
+       "0\xfd0\x99\x00\x000\xfe" + // 0x30FD3099: 0x000030FE
+       "\x10\x99\x10\xba\x00\x01\x10\x9a" + // 0x109910BA: 0x0001109A
+       "\x10\x9b\x10\xba\x00\x01\x10\x9c" + // 0x109B10BA: 0x0001109C
+       "\x10\xa5\x10\xba\x00\x01\x10\xab" + // 0x10A510BA: 0x000110AB
+       "\x111\x11'\x00\x01\x11." + // 0x11311127: 0x0001112E
+       "\x112\x11'\x00\x01\x11/" + // 0x11321127: 0x0001112F
+       "\x13G\x13>\x00\x01\x13K" + // 0x1347133E: 0x0001134B
+       "\x13G\x13W\x00\x01\x13L" + // 0x13471357: 0x0001134C
+       "\x14\xb9\x14\xba\x00\x01\x14\xbb" + // 0x14B914BA: 0x000114BB
+       "\x14\xb9\x14\xb0\x00\x01\x14\xbc" + // 0x14B914B0: 0x000114BC
+       "\x14\xb9\x14\xbd\x00\x01\x14\xbe" + // 0x14B914BD: 0x000114BE
+       "\x15\xb8\x15\xaf\x00\x01\x15\xba" + // 0x15B815AF: 0x000115BA
+       "\x15\xb9\x15\xaf\x00\x01\x15\xbb" + // 0x15B915AF: 0x000115BB
+       ""
+       // Total size of tables: 53KB (54006 bytes)
diff --git a/vendor/golang.org/x/text/unicode/norm/transform.go b/vendor/golang.org/x/text/unicode/norm/transform.go
new file mode 100644 (file)
index 0000000..a1d366a
--- /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) {
+       // 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), 0, len(b), eof)
+       n := copy(dst, b[:i])
+       if !ok {
+               nDst, nSrc, err = f.transform(dst[n:], src[n:], atEOF)
+               return nDst + n, nSrc + n, err
+       }
+
+       if err == nil && 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 an 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 err == nil && n < rb.nsrc && !atEOF {
+                               err = transform.ErrShortSrc
+                       }
+                       return nDst, nSrc, err
+               }
+       }
+}
diff --git a/vendor/golang.org/x/text/unicode/norm/trie.go b/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
+}
index 3b711a4d56f9d4a0342ea7edac00ec334993f247..24204bb7c7138f42b6534b2b8d2f57fd7c572778 100644 (file)
@@ -34,7 +34,7 @@ github.com/prometheus/client_golang/prometheus/internal
 github.com/prometheus/client_golang/prometheus/promhttp
 # github.com/prometheus/client_model v0.2.0
 github.com/prometheus/client_model/go
-# github.com/prometheus/common v0.9.1
+# github.com/prometheus/common v0.10.0
 github.com/prometheus/common/config
 github.com/prometheus/common/expfmt
 github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg
@@ -51,7 +51,11 @@ golang.org/x/crypto/ed25519
 golang.org/x/crypto/ed25519/internal/edwards25519
 # golang.org/x/net v0.0.0-20190923162816-aa69164e4478
 golang.org/x/net/bpf
+golang.org/x/net/http/httpguts
+golang.org/x/net/http2
+golang.org/x/net/http2/hpack
 golang.org/x/net/icmp
+golang.org/x/net/idna
 golang.org/x/net/internal/iana
 golang.org/x/net/internal/socket
 golang.org/x/net/internal/timeseries
@@ -62,6 +66,11 @@ golang.org/x/net/trace
 # golang.org/x/sys v0.0.0-20200122134326-e047566fdf82
 golang.org/x/sys/unix
 golang.org/x/sys/windows
+# golang.org/x/text v0.3.2
+golang.org/x/text/secure/bidirule
+golang.org/x/text/transform
+golang.org/x/text/unicode/bidi
+golang.org/x/text/unicode/norm
 # gopkg.in/alecthomas/kingpin.v2 v2.2.6
 gopkg.in/alecthomas/kingpin.v2
 # gopkg.in/yaml.v2 v2.2.5